diff --git a/.gitignore b/.gitignore index 64cdf6e1..c8f5f399 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ .gradle /local.properties /.idea/caches +/.idea/copilot /.idea/libraries /.idea/dictionaries /.idea/misc.xml diff --git a/scripts/update_client_api.sh b/scripts/update_client_api.sh new file mode 100755 index 00000000..3c796764 --- /dev/null +++ b/scripts/update_client_api.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +# Check if the current directory is named 'scripts' +ORIG_DIR="$PWD" +CURRENT_DIR=$(basename "$PWD") +if [ "$CURRENT_DIR" != "scripts" ]; then + echo "This script must be run from the directory named 'scripts' in v4-native-ios/scripts" + exit 1 +fi + +# Defining a temporary directory for cloning +TMP_DIR=$(mktemp -d) + +# Function to clean up the temporary directory +cleanup() { + echo "Cleaning up..." + rm -rf "$TMP_DIR" +} + +# Trap to clean up in case of script exit or interruption +trap cleanup EXIT + +# Cloning into the temporary directory and navigating there +git clone git@github.com:dydxprotocol/v4-clients.git "$TMP_DIR/v4-clients" +cd "$TMP_DIR/v4-clients/v4-client-js" + +# If cloning fails, exit the script +if [ $? -ne 0 ]; then + echo "Failed to clone the v4-clients repository. Please check your network connection and repository access." + exit 1 +fi + +# Running npm commands +npm install +npm run build +npm run webpack + +# Check if the target directory for copying exists +TARGET_DIR="$ORIG_DIR/../v4/integration/cosmos/src/main/assets" +echo "$TARGET_DIR" +if [ -d "$TARGET_DIR" ]; then + # Copying the file to the specified location + cp __native__/__ios__/v4-native-client.js "$TARGET_DIR/v4-native-client.js" +else + echo "Target directory $TARGET_DIR does not exist. File not copied." +fi diff --git a/v4/build.gradle b/v4/build.gradle index f79990c5..08b0620e 100644 --- a/v4/build.gradle +++ b/v4/build.gradle @@ -89,7 +89,7 @@ ext { compileSdkVersion = 34 // App dependencies - abacusVersion = '1.4.13' + abacusVersion = '1.4.14' carteraVersion = '0.1.12' kollectionsVersion = '2.0.16' diff --git a/v4/integration/cosmos/src/main/assets/v4-native-client.js b/v4/integration/cosmos/src/main/assets/v4-native-client.js index a06aca76..06686382 100644 --- a/v4/integration/cosmos/src/main/assets/v4-native-client.js +++ b/v4/integration/cosmos/src/main/assets/v4-native-client.js @@ -4654,8 +4654,8 @@ exports.bytesBefore = bytesBefore; // See https://github.com/tendermint/tendermint/blob/f2ada0a604b4c0763bda2f64fac53d506d3beca7/docs/spec/blockchain/encoding.md#public-key-cryptography Object.defineProperty(exports, "__esModule", ({ value: true })); exports.pubkeyToAddress = exports.pubkeyToRawAddress = exports.rawSecp256k1PubkeyToRawAddress = exports.rawEd25519PubkeyToRawAddress = void 0; -const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/index.js"); -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/index.js"); +const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/crypto/build/index.js"); +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); const encoding_2 = __webpack_require__(/*! ./encoding */ "./node_modules/@cosmjs/amino/build/encoding.js"); const pubkeys_1 = __webpack_require__(/*! ./pubkeys */ "./node_modules/@cosmjs/amino/build/pubkeys.js"); function rawEd25519PubkeyToRawAddress(pubkeyData) { @@ -4710,7 +4710,7 @@ exports.pubkeyToAddress = pubkeyToAddress; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.addCoins = exports.parseCoins = exports.coins = exports.coin = void 0; -const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/math/build/index.js"); +const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/math/build/index.js"); /** * Creates a coin. * @@ -4802,9 +4802,9 @@ exports.addCoins = addCoins; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.encodeBech32Pubkey = exports.encodeAminoPubkey = exports.decodeBech32Pubkey = exports.decodeAminoPubkey = exports.encodeEd25519Pubkey = exports.encodeSecp256k1Pubkey = void 0; -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/index.js"); -const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/math/build/index.js"); -const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/utils/build/index.js"); +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/math/build/index.js"); +const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/utils/build/index.js"); const pubkeys_1 = __webpack_require__(/*! ./pubkeys */ "./node_modules/@cosmjs/amino/build/pubkeys.js"); /** * Takes a Secp256k1 public key as raw bytes and returns the Amino JSON @@ -5019,7 +5019,7 @@ exports.encodeBech32Pubkey = encodeBech32Pubkey; "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.executeKdf = exports.makeStdTx = exports.isStdTx = exports.serializeSignDoc = exports.makeSignDoc = exports.encodeSecp256k1Signature = exports.decodeSignature = exports.Secp256k1Wallet = exports.Secp256k1HdWallet = exports.extractKdfConfiguration = exports.pubkeyType = exports.isSinglePubkey = exports.isSecp256k1Pubkey = exports.isMultisigThresholdPubkey = exports.isEd25519Pubkey = exports.makeCosmoshubPath = exports.createMultisigThresholdPubkey = exports.encodeSecp256k1Pubkey = exports.encodeEd25519Pubkey = exports.encodeBech32Pubkey = exports.encodeAminoPubkey = exports.decodeBech32Pubkey = exports.decodeAminoPubkey = exports.parseCoins = exports.coins = exports.coin = exports.addCoins = exports.rawSecp256k1PubkeyToRawAddress = exports.rawEd25519PubkeyToRawAddress = exports.pubkeyToRawAddress = exports.pubkeyToAddress = void 0; +exports.executeKdf = exports.makeStdTx = exports.isStdTx = exports.serializeSignDoc = exports.makeSignDoc = exports.encodeSecp256k1Signature = exports.decodeSignature = exports.Secp256k1Wallet = exports.Secp256k1HdWallet = exports.extractKdfConfiguration = exports.pubkeyType = exports.isSinglePubkey = exports.isSecp256k1Pubkey = exports.isMultisigThresholdPubkey = exports.isEd25519Pubkey = exports.makeCosmoshubPath = exports.omitDefault = exports.createMultisigThresholdPubkey = exports.encodeSecp256k1Pubkey = exports.encodeEd25519Pubkey = exports.encodeBech32Pubkey = exports.encodeAminoPubkey = exports.decodeBech32Pubkey = exports.decodeAminoPubkey = exports.parseCoins = exports.coins = exports.coin = exports.addCoins = exports.rawSecp256k1PubkeyToRawAddress = exports.rawEd25519PubkeyToRawAddress = exports.pubkeyToRawAddress = exports.pubkeyToAddress = void 0; var addresses_1 = __webpack_require__(/*! ./addresses */ "./node_modules/@cosmjs/amino/build/addresses.js"); Object.defineProperty(exports, "pubkeyToAddress", ({ enumerable: true, get: function () { return addresses_1.pubkeyToAddress; } })); Object.defineProperty(exports, "pubkeyToRawAddress", ({ enumerable: true, get: function () { return addresses_1.pubkeyToRawAddress; } })); @@ -5039,6 +5039,8 @@ Object.defineProperty(exports, "encodeEd25519Pubkey", ({ enumerable: true, get: Object.defineProperty(exports, "encodeSecp256k1Pubkey", ({ enumerable: true, get: function () { return encoding_1.encodeSecp256k1Pubkey; } })); var multisig_1 = __webpack_require__(/*! ./multisig */ "./node_modules/@cosmjs/amino/build/multisig.js"); Object.defineProperty(exports, "createMultisigThresholdPubkey", ({ enumerable: true, get: function () { return multisig_1.createMultisigThresholdPubkey; } })); +var omitdefault_1 = __webpack_require__(/*! ./omitdefault */ "./node_modules/@cosmjs/amino/build/omitdefault.js"); +Object.defineProperty(exports, "omitDefault", ({ enumerable: true, get: function () { return omitdefault_1.omitDefault; } })); var paths_1 = __webpack_require__(/*! ./paths */ "./node_modules/@cosmjs/amino/build/paths.js"); Object.defineProperty(exports, "makeCosmoshubPath", ({ enumerable: true, get: function () { return paths_1.makeCosmoshubPath; } })); var pubkeys_1 = __webpack_require__(/*! ./pubkeys */ "./node_modules/@cosmjs/amino/build/pubkeys.js"); @@ -5077,8 +5079,8 @@ Object.defineProperty(exports, "executeKdf", ({ enumerable: true, get: function Object.defineProperty(exports, "__esModule", ({ value: true })); exports.createMultisigThresholdPubkey = exports.compareArrays = void 0; -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/index.js"); -const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/math/build/index.js"); +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/math/build/index.js"); const addresses_1 = __webpack_require__(/*! ./addresses */ "./node_modules/@cosmjs/amino/build/addresses.js"); /** * Compare arrays lexicographically. @@ -5119,6 +5121,39 @@ exports.createMultisigThresholdPubkey = createMultisigThresholdPubkey; /***/ }), +/***/ "./node_modules/@cosmjs/amino/build/omitdefault.js": +/*!*********************************************************!*\ + !*** ./node_modules/@cosmjs/amino/build/omitdefault.js ***! + \*********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.omitDefault = void 0; +/** + * Returns the given input. If the input is the default value + * of protobuf, undefined is retunred. Use this when creating Amino JSON converters. + */ +function omitDefault(input) { + switch (typeof input) { + case "string": + return input === "" ? undefined : input; + case "number": + return input === 0 ? undefined : input; + case "bigint": + return input === BigInt(0) ? undefined : input; + case "boolean": + return !input ? undefined : input; + default: + throw new Error(`Got unsupported type '${typeof input}'`); + } +} +exports.omitDefault = omitDefault; +//# sourceMappingURL=omitdefault.js.map + +/***/ }), + /***/ "./node_modules/@cosmjs/amino/build/paths.js": /*!***************************************************!*\ !*** ./node_modules/@cosmjs/amino/build/paths.js ***! @@ -5129,7 +5164,7 @@ exports.createMultisigThresholdPubkey = createMultisigThresholdPubkey; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.makeCosmoshubPath = void 0; -const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/index.js"); +const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/crypto/build/index.js"); /** * The Cosmos Hub derivation path in the form `m/44'/118'/0'/0/a` * with 0-based account index `a`. @@ -5198,9 +5233,9 @@ exports.isMultisigThresholdPubkey = isMultisigThresholdPubkey; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Secp256k1HdWallet = exports.extractKdfConfiguration = void 0; -const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/index.js"); -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/index.js"); -const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/utils/build/index.js"); +const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/crypto/build/index.js"); +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/utils/build/index.js"); const addresses_1 = __webpack_require__(/*! ./addresses */ "./node_modules/@cosmjs/amino/build/addresses.js"); const paths_1 = __webpack_require__(/*! ./paths */ "./node_modules/@cosmjs/amino/build/paths.js"); const signature_1 = __webpack_require__(/*! ./signature */ "./node_modules/@cosmjs/amino/build/signature.js"); @@ -5249,16 +5284,6 @@ const defaultOptions = { prefix: "cosmos", }; class Secp256k1HdWallet { - constructor(mnemonic, options) { - const hdPaths = options.hdPaths ?? defaultOptions.hdPaths; - const prefix = options.prefix ?? defaultOptions.prefix; - this.secret = mnemonic; - this.seed = options.seed; - this.accounts = hdPaths.map((hdPath) => ({ - hdPath: hdPath, - prefix, - })); - } /** * Restores a wallet from the given BIP39 mnemonic. * @@ -5348,6 +5373,16 @@ class Secp256k1HdWallet { const encryptionKey = await (0, wallet_1.executeKdf)(password, root.kdf); return Secp256k1HdWallet.deserializeWithEncryptionKey(serialization, encryptionKey); } + constructor(mnemonic, options) { + const hdPaths = options.hdPaths ?? defaultOptions.hdPaths; + const prefix = options.prefix ?? defaultOptions.prefix; + this.secret = mnemonic; + this.seed = options.seed; + this.accounts = hdPaths.map((hdPath) => ({ + hdPath: hdPath, + prefix, + })); + } get mnemonic() { return this.secret.toString(); } @@ -5451,8 +5486,8 @@ exports.Secp256k1HdWallet = Secp256k1HdWallet; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Secp256k1Wallet = void 0; -const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/index.js"); -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/index.js"); +const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/crypto/build/index.js"); +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); const addresses_1 = __webpack_require__(/*! ./addresses */ "./node_modules/@cosmjs/amino/build/addresses.js"); const signature_1 = __webpack_require__(/*! ./signature */ "./node_modules/@cosmjs/amino/build/signature.js"); const signdoc_1 = __webpack_require__(/*! ./signdoc */ "./node_modules/@cosmjs/amino/build/signdoc.js"); @@ -5462,11 +5497,6 @@ const signdoc_1 = __webpack_require__(/*! ./signdoc */ "./node_modules/@cosmjs/a * If you want to work with BIP39 mnemonics and multiple accounts, use Secp256k1HdWallet. */ class Secp256k1Wallet { - constructor(privkey, pubkey, prefix) { - this.privkey = privkey; - this.pubkey = pubkey; - this.prefix = prefix; - } /** * Creates a Secp256k1Wallet from the given private key * @@ -5477,6 +5507,11 @@ class Secp256k1Wallet { const uncompressed = (await crypto_1.Secp256k1.makeKeypair(privkey)).pubkey; return new Secp256k1Wallet(privkey, crypto_1.Secp256k1.compressPubkey(uncompressed), prefix); } + constructor(privkey, pubkey, prefix) { + this.privkey = privkey; + this.pubkey = pubkey; + this.prefix = prefix; + } get address() { return (0, encoding_1.toBech32)(this.prefix, (0, addresses_1.rawSecp256k1PubkeyToRawAddress)(this.pubkey)); } @@ -5518,7 +5553,7 @@ exports.Secp256k1Wallet = Secp256k1Wallet; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.decodeSignature = exports.encodeSecp256k1Signature = void 0; /* eslint-disable @typescript-eslint/naming-convention */ -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/index.js"); +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); const encoding_2 = __webpack_require__(/*! ./encoding */ "./node_modules/@cosmjs/amino/build/encoding.js"); const pubkeys_1 = __webpack_require__(/*! ./pubkeys */ "./node_modules/@cosmjs/amino/build/pubkeys.js"); /** @@ -5565,8 +5600,8 @@ exports.decodeSignature = decodeSignature; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.serializeSignDoc = exports.escapeCharacters = exports.makeSignDoc = exports.sortedJsonStringify = void 0; /* eslint-disable @typescript-eslint/naming-convention */ -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/index.js"); -const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/math/build/index.js"); +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/math/build/index.js"); function sortedObject(obj) { if (typeof obj !== "object" || obj === null) { return obj; @@ -5588,7 +5623,7 @@ function sortedJsonStringify(obj) { return JSON.stringify(sortedObject(obj)); } exports.sortedJsonStringify = sortedJsonStringify; -function makeSignDoc(msgs, fee, chainId, memo, accountNumber, sequence) { +function makeSignDoc(msgs, fee, chainId, memo, accountNumber, sequence, timeout_height) { return { chain_id: chainId, account_number: math_1.Uint53.fromString(accountNumber.toString()).toString(), @@ -5596,6 +5631,7 @@ function makeSignDoc(msgs, fee, chainId, memo, accountNumber, sequence) { fee: fee, msgs: msgs, memo: memo || "", + ...(timeout_height && { timeout_height: timeout_height.toString() }), }; } exports.makeSignDoc = makeSignDoc; @@ -5667,8 +5703,8 @@ exports.makeStdTx = makeStdTx; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.decrypt = exports.encrypt = exports.supportedAlgorithms = exports.executeKdf = exports.cosmjsSalt = void 0; -const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/index.js"); -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/index.js"); +const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/crypto/build/index.js"); +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); /** * A fixed salt is chosen to archive a deterministic password to key derivation. * This reduces the scope of a potential rainbow attack to all CosmJS users. @@ -5721,19 +5757,19 @@ exports.decrypt = decrypt; /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/bip39.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/bip39.js ***! - \*******************************************************************************/ +/***/ "./node_modules/@cosmjs/crypto/build/bip39.js": +/*!****************************************************!*\ + !*** ./node_modules/@cosmjs/crypto/build/bip39.js ***! + \****************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Bip39 = exports.EnglishMnemonic = exports.mnemonicToEntropy = exports.entropyToMnemonic = void 0; -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/index.js"); -const pbkdf2_1 = __webpack_require__(/*! ./pbkdf2 */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/pbkdf2.js"); -const sha_1 = __webpack_require__(/*! ./sha */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/sha.js"); +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +const pbkdf2_1 = __webpack_require__(/*! ./pbkdf2 */ "./node_modules/@cosmjs/crypto/build/pbkdf2.js"); +const sha_1 = __webpack_require__(/*! ./sha */ "./node_modules/@cosmjs/crypto/build/sha.js"); const wordlist = [ "abandon", "ability", @@ -7917,10 +7953,10 @@ exports.Bip39 = Bip39; /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/hmac.js": -/*!******************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/hmac.js ***! - \******************************************************************************/ +/***/ "./node_modules/@cosmjs/crypto/build/hmac.js": +/*!***************************************************!*\ + !*** ./node_modules/@cosmjs/crypto/build/hmac.js ***! + \***************************************************/ /***/ (function(__unused_webpack_module, exports) { "use strict"; @@ -7964,47 +8000,47 @@ exports.Hmac = Hmac; /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/index.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/index.js ***! - \*******************************************************************************/ +/***/ "./node_modules/@cosmjs/crypto/build/index.js": +/*!****************************************************!*\ + !*** ./node_modules/@cosmjs/crypto/build/index.js ***! + \****************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.stringToPath = exports.Slip10RawIndex = exports.slip10CurveFromString = exports.Slip10Curve = exports.Slip10 = exports.pathToString = exports.sha512 = exports.Sha512 = exports.sha256 = exports.Sha256 = exports.Secp256k1Signature = exports.ExtendedSecp256k1Signature = exports.Secp256k1 = exports.ripemd160 = exports.Ripemd160 = exports.Random = exports.Xchacha20poly1305Ietf = exports.xchacha20NonceLength = exports.isArgon2idOptions = exports.Ed25519Keypair = exports.Ed25519 = exports.Argon2id = exports.keccak256 = exports.Keccak256 = exports.Hmac = exports.EnglishMnemonic = exports.Bip39 = void 0; -var bip39_1 = __webpack_require__(/*! ./bip39 */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/bip39.js"); +var bip39_1 = __webpack_require__(/*! ./bip39 */ "./node_modules/@cosmjs/crypto/build/bip39.js"); Object.defineProperty(exports, "Bip39", ({ enumerable: true, get: function () { return bip39_1.Bip39; } })); Object.defineProperty(exports, "EnglishMnemonic", ({ enumerable: true, get: function () { return bip39_1.EnglishMnemonic; } })); -var hmac_1 = __webpack_require__(/*! ./hmac */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/hmac.js"); +var hmac_1 = __webpack_require__(/*! ./hmac */ "./node_modules/@cosmjs/crypto/build/hmac.js"); Object.defineProperty(exports, "Hmac", ({ enumerable: true, get: function () { return hmac_1.Hmac; } })); -var keccak_1 = __webpack_require__(/*! ./keccak */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/keccak.js"); +var keccak_1 = __webpack_require__(/*! ./keccak */ "./node_modules/@cosmjs/crypto/build/keccak.js"); Object.defineProperty(exports, "Keccak256", ({ enumerable: true, get: function () { return keccak_1.Keccak256; } })); Object.defineProperty(exports, "keccak256", ({ enumerable: true, get: function () { return keccak_1.keccak256; } })); -var libsodium_1 = __webpack_require__(/*! ./libsodium */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/libsodium.js"); +var libsodium_1 = __webpack_require__(/*! ./libsodium */ "./node_modules/@cosmjs/crypto/build/libsodium.js"); Object.defineProperty(exports, "Argon2id", ({ enumerable: true, get: function () { return libsodium_1.Argon2id; } })); Object.defineProperty(exports, "Ed25519", ({ enumerable: true, get: function () { return libsodium_1.Ed25519; } })); Object.defineProperty(exports, "Ed25519Keypair", ({ enumerable: true, get: function () { return libsodium_1.Ed25519Keypair; } })); Object.defineProperty(exports, "isArgon2idOptions", ({ enumerable: true, get: function () { return libsodium_1.isArgon2idOptions; } })); Object.defineProperty(exports, "xchacha20NonceLength", ({ enumerable: true, get: function () { return libsodium_1.xchacha20NonceLength; } })); Object.defineProperty(exports, "Xchacha20poly1305Ietf", ({ enumerable: true, get: function () { return libsodium_1.Xchacha20poly1305Ietf; } })); -var random_1 = __webpack_require__(/*! ./random */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/random.js"); +var random_1 = __webpack_require__(/*! ./random */ "./node_modules/@cosmjs/crypto/build/random.js"); Object.defineProperty(exports, "Random", ({ enumerable: true, get: function () { return random_1.Random; } })); -var ripemd_1 = __webpack_require__(/*! ./ripemd */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/ripemd.js"); +var ripemd_1 = __webpack_require__(/*! ./ripemd */ "./node_modules/@cosmjs/crypto/build/ripemd.js"); Object.defineProperty(exports, "Ripemd160", ({ enumerable: true, get: function () { return ripemd_1.Ripemd160; } })); Object.defineProperty(exports, "ripemd160", ({ enumerable: true, get: function () { return ripemd_1.ripemd160; } })); -var secp256k1_1 = __webpack_require__(/*! ./secp256k1 */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/secp256k1.js"); +var secp256k1_1 = __webpack_require__(/*! ./secp256k1 */ "./node_modules/@cosmjs/crypto/build/secp256k1.js"); Object.defineProperty(exports, "Secp256k1", ({ enumerable: true, get: function () { return secp256k1_1.Secp256k1; } })); -var secp256k1signature_1 = __webpack_require__(/*! ./secp256k1signature */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/secp256k1signature.js"); +var secp256k1signature_1 = __webpack_require__(/*! ./secp256k1signature */ "./node_modules/@cosmjs/crypto/build/secp256k1signature.js"); Object.defineProperty(exports, "ExtendedSecp256k1Signature", ({ enumerable: true, get: function () { return secp256k1signature_1.ExtendedSecp256k1Signature; } })); Object.defineProperty(exports, "Secp256k1Signature", ({ enumerable: true, get: function () { return secp256k1signature_1.Secp256k1Signature; } })); -var sha_1 = __webpack_require__(/*! ./sha */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/sha.js"); +var sha_1 = __webpack_require__(/*! ./sha */ "./node_modules/@cosmjs/crypto/build/sha.js"); Object.defineProperty(exports, "Sha256", ({ enumerable: true, get: function () { return sha_1.Sha256; } })); Object.defineProperty(exports, "sha256", ({ enumerable: true, get: function () { return sha_1.sha256; } })); Object.defineProperty(exports, "Sha512", ({ enumerable: true, get: function () { return sha_1.Sha512; } })); Object.defineProperty(exports, "sha512", ({ enumerable: true, get: function () { return sha_1.sha512; } })); -var slip10_1 = __webpack_require__(/*! ./slip10 */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/slip10.js"); +var slip10_1 = __webpack_require__(/*! ./slip10 */ "./node_modules/@cosmjs/crypto/build/slip10.js"); Object.defineProperty(exports, "pathToString", ({ enumerable: true, get: function () { return slip10_1.pathToString; } })); Object.defineProperty(exports, "Slip10", ({ enumerable: true, get: function () { return slip10_1.Slip10; } })); Object.defineProperty(exports, "Slip10Curve", ({ enumerable: true, get: function () { return slip10_1.Slip10Curve; } })); @@ -8015,10 +8051,10 @@ Object.defineProperty(exports, "stringToPath", ({ enumerable: true, get: functio /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/keccak.js": -/*!********************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/keccak.js ***! - \********************************************************************************/ +/***/ "./node_modules/@cosmjs/crypto/build/keccak.js": +/*!*****************************************************!*\ + !*** ./node_modules/@cosmjs/crypto/build/keccak.js ***! + \*****************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -8026,7 +8062,7 @@ Object.defineProperty(exports, "stringToPath", ({ enumerable: true, get: functio Object.defineProperty(exports, "__esModule", ({ value: true })); exports.keccak256 = exports.Keccak256 = void 0; const sha3_1 = __webpack_require__(/*! @noble/hashes/sha3 */ "./node_modules/@noble/hashes/sha3.js"); -const utils_1 = __webpack_require__(/*! ./utils */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/utils.js"); +const utils_1 = __webpack_require__(/*! ./utils */ "./node_modules/@cosmjs/crypto/build/utils.js"); class Keccak256 { constructor(firstData) { this.blockSize = 512 / 8; @@ -8053,10 +8089,10 @@ exports.keccak256 = keccak256; /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/libsodium.js": -/*!***********************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/libsodium.js ***! - \***********************************************************************************/ +/***/ "./node_modules/@cosmjs/crypto/build/libsodium.js": +/*!********************************************************!*\ + !*** ./node_modules/@cosmjs/crypto/build/libsodium.js ***! + \********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -8070,8 +8106,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Xchacha20poly1305Ietf = exports.xchacha20NonceLength = exports.Ed25519 = exports.Ed25519Keypair = exports.Argon2id = exports.isArgon2idOptions = void 0; -const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/utils/build/index.js"); -const libsodium_wrappers_1 = __importDefault(__webpack_require__(/*! libsodium-wrappers */ "./node_modules/libsodium-wrappers/dist/modules/libsodium-wrappers.js")); +const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/utils/build/index.js"); +// Using crypto_pwhash requires sumo. Once we migrate to a standalone +// Argon2 implementation, we can use the normal libsodium-wrappers +// again: https://github.com/cosmos/cosmjs/issues/1031 +const libsodium_wrappers_sumo_1 = __importDefault(__webpack_require__(/*! libsodium-wrappers-sumo */ "./node_modules/libsodium-wrappers-sumo/dist/modules-sumo/libsodium-wrappers.js")); function isArgon2idOptions(thing) { if (!(0, utils_1.isNonNullObject)(thing)) return false; @@ -8086,17 +8125,13 @@ function isArgon2idOptions(thing) { exports.isArgon2idOptions = isArgon2idOptions; class Argon2id { static async execute(password, salt, options) { - await libsodium_wrappers_1.default.ready; - return libsodium_wrappers_1.default.crypto_pwhash(options.outputLength, password, salt, // libsodium only supports 16 byte salts and will throw when you don't respect that - options.opsLimit, options.memLimitKib * 1024, libsodium_wrappers_1.default.crypto_pwhash_ALG_ARGON2ID13); + await libsodium_wrappers_sumo_1.default.ready; + return libsodium_wrappers_sumo_1.default.crypto_pwhash(options.outputLength, password, salt, // libsodium only supports 16 byte salts and will throw when you don't respect that + options.opsLimit, options.memLimitKib * 1024, libsodium_wrappers_sumo_1.default.crypto_pwhash_ALG_ARGON2ID13); } } exports.Argon2id = Argon2id; class Ed25519Keypair { - constructor(privkey, pubkey) { - this.privkey = privkey; - this.pubkey = pubkey; - } // a libsodium privkey has the format ` + ` static fromLibsodiumPrivkey(libsodiumPrivkey) { if (libsodiumPrivkey.length !== 64) { @@ -8104,6 +8139,10 @@ class Ed25519Keypair { } return new Ed25519Keypair(libsodiumPrivkey.slice(0, 32), libsodiumPrivkey.slice(32, 64)); } + constructor(privkey, pubkey) { + this.privkey = privkey; + this.pubkey = pubkey; + } toLibsodiumPrivkey() { return new Uint8Array([...this.privkey, ...this.pubkey]); } @@ -8119,17 +8158,17 @@ class Ed25519 { * and diagram on https://blog.mozilla.org/warner/2011/11/29/ed25519-keys/ */ static async makeKeypair(seed) { - await libsodium_wrappers_1.default.ready; - const keypair = libsodium_wrappers_1.default.crypto_sign_seed_keypair(seed); + await libsodium_wrappers_sumo_1.default.ready; + const keypair = libsodium_wrappers_sumo_1.default.crypto_sign_seed_keypair(seed); return Ed25519Keypair.fromLibsodiumPrivkey(keypair.privateKey); } static async createSignature(message, keyPair) { - await libsodium_wrappers_1.default.ready; - return libsodium_wrappers_1.default.crypto_sign_detached(message, keyPair.toLibsodiumPrivkey()); + await libsodium_wrappers_sumo_1.default.ready; + return libsodium_wrappers_sumo_1.default.crypto_sign_detached(message, keyPair.toLibsodiumPrivkey()); } static async verifySignature(signature, message, pubkey) { - await libsodium_wrappers_1.default.ready; - return libsodium_wrappers_1.default.crypto_sign_verify_detached(signature, message, pubkey); + await libsodium_wrappers_sumo_1.default.ready; + return libsodium_wrappers_sumo_1.default.crypto_sign_verify_detached(signature, message, pubkey); } } exports.Ed25519 = Ed25519; @@ -8141,15 +8180,15 @@ exports.Ed25519 = Ed25519; exports.xchacha20NonceLength = 24; class Xchacha20poly1305Ietf { static async encrypt(message, key, nonce) { - await libsodium_wrappers_1.default.ready; + await libsodium_wrappers_sumo_1.default.ready; const additionalData = null; - return libsodium_wrappers_1.default.crypto_aead_xchacha20poly1305_ietf_encrypt(message, additionalData, null, // secret nonce: unused and should be null (https://download.libsodium.org/doc/secret-key_cryptography/aead/chacha20-poly1305/xchacha20-poly1305_construction) + return libsodium_wrappers_sumo_1.default.crypto_aead_xchacha20poly1305_ietf_encrypt(message, additionalData, null, // secret nonce: unused and should be null (https://download.libsodium.org/doc/secret-key_cryptography/aead/chacha20-poly1305/xchacha20-poly1305_construction) nonce, key); } static async decrypt(ciphertext, key, nonce) { - await libsodium_wrappers_1.default.ready; + await libsodium_wrappers_sumo_1.default.ready; const additionalData = null; - return libsodium_wrappers_1.default.crypto_aead_xchacha20poly1305_ietf_decrypt(null, // secret nonce: unused and should be null (https://download.libsodium.org/doc/secret-key_cryptography/aead/chacha20-poly1305/xchacha20-poly1305_construction) + return libsodium_wrappers_sumo_1.default.crypto_aead_xchacha20poly1305_ietf_decrypt(null, // secret nonce: unused and should be null (https://download.libsodium.org/doc/secret-key_cryptography/aead/chacha20-poly1305/xchacha20-poly1305_construction) ciphertext, additionalData, nonce, key); } } @@ -8158,10 +8197,10 @@ exports.Xchacha20poly1305Ietf = Xchacha20poly1305Ietf; /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/pbkdf2.js": -/*!********************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/pbkdf2.js ***! - \********************************************************************************/ +/***/ "./node_modules/@cosmjs/crypto/build/pbkdf2.js": +/*!*****************************************************!*\ + !*** ./node_modules/@cosmjs/crypto/build/pbkdf2.js ***! + \*****************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -8191,7 +8230,7 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.pbkdf2Sha512 = exports.pbkdf2Sha512Noble = exports.pbkdf2Sha512NodeCrypto = exports.pbkdf2Sha512Subtle = exports.getSubtle = exports.getNodeCrypto = void 0; -const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/utils/build/index.js"); +const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/utils/build/index.js"); const pbkdf2_1 = __webpack_require__(/*! @noble/hashes/pbkdf2 */ "./node_modules/@noble/hashes/pbkdf2.js"); const sha512_1 = __webpack_require__(/*! @noble/hashes/sha512 */ "./node_modules/@noble/hashes/sha512.js"); /** @@ -8297,10 +8336,10 @@ exports.pbkdf2Sha512 = pbkdf2Sha512; /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/random.js": -/*!********************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/random.js ***! - \********************************************************************************/ +/***/ "./node_modules/@cosmjs/crypto/build/random.js": +/*!*****************************************************!*\ + !*** ./node_modules/@cosmjs/crypto/build/random.js ***! + \*****************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -8336,10 +8375,10 @@ exports.Random = Random; /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/ripemd.js": -/*!********************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/ripemd.js ***! - \********************************************************************************/ +/***/ "./node_modules/@cosmjs/crypto/build/ripemd.js": +/*!*****************************************************!*\ + !*** ./node_modules/@cosmjs/crypto/build/ripemd.js ***! + \*****************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -8347,7 +8386,7 @@ exports.Random = Random; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.ripemd160 = exports.Ripemd160 = void 0; const ripemd160_1 = __webpack_require__(/*! @noble/hashes/ripemd160 */ "./node_modules/@noble/hashes/ripemd160.js"); -const utils_1 = __webpack_require__(/*! ./utils */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/utils.js"); +const utils_1 = __webpack_require__(/*! ./utils */ "./node_modules/@cosmjs/crypto/build/utils.js"); class Ripemd160 { constructor(firstData) { this.blockSize = 512 / 8; @@ -8374,10 +8413,10 @@ exports.ripemd160 = ripemd160; /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/secp256k1.js": -/*!***********************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/secp256k1.js ***! - \***********************************************************************************/ +/***/ "./node_modules/@cosmjs/crypto/build/secp256k1.js": +/*!********************************************************!*\ + !*** ./node_modules/@cosmjs/crypto/build/secp256k1.js ***! + \********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -8387,10 +8426,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Secp256k1 = void 0; -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/index.js"); +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); const bn_js_1 = __importDefault(__webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js")); const elliptic_1 = __importDefault(__webpack_require__(/*! elliptic */ "./node_modules/elliptic/lib/elliptic.js")); -const secp256k1signature_1 = __webpack_require__(/*! ./secp256k1signature */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/secp256k1signature.js"); +const secp256k1signature_1 = __webpack_require__(/*! ./secp256k1signature */ "./node_modules/@cosmjs/crypto/build/secp256k1signature.js"); const secp256k1 = new elliptic_1.default.ec("secp256k1"); const secp256k1N = new bn_js_1.default("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141", "hex"); class Secp256k1 { @@ -8526,10 +8565,10 @@ exports.Secp256k1 = Secp256k1; /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/secp256k1signature.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/secp256k1signature.js ***! - \********************************************************************************************/ +/***/ "./node_modules/@cosmjs/crypto/build/secp256k1signature.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@cosmjs/crypto/build/secp256k1signature.js ***! + \*****************************************************************/ /***/ (function(__unused_webpack_module, exports) { "use strict"; @@ -8550,18 +8589,6 @@ function trimLeadingNullBytes(inData) { } const derTagInteger = 0x02; class Secp256k1Signature { - constructor(r, s) { - if (r.length > 32 || r.length === 0 || r[0] === 0x00) { - throw new Error("Unsigned integer r must be encoded as unpadded big endian."); - } - if (s.length > 32 || s.length === 0 || s[0] === 0x00) { - throw new Error("Unsigned integer s must be encoded as unpadded big endian."); - } - this.data = { - r: r, - s: s, - }; - } /** * Takes the pair of integers (r, s) as 2x32 byte of binary data. * @@ -8610,6 +8637,18 @@ class Secp256k1Signature { // r/s data can contain leading 0 bytes to express integers being non-negative in DER trimLeadingNullBytes(rData), trimLeadingNullBytes(sData)); } + constructor(r, s) { + if (r.length > 32 || r.length === 0 || r[0] === 0x00) { + throw new Error("Unsigned integer r must be encoded as unpadded big endian."); + } + if (s.length > 32 || s.length === 0 || s[0] === 0x00) { + throw new Error("Unsigned integer s must be encoded as unpadded big endian."); + } + this.data = { + r: r, + s: s, + }; + } r(length) { if (length === undefined) { return this.data.r; @@ -8655,16 +8694,6 @@ exports.Secp256k1Signature = Secp256k1Signature; * A Secp256k1Signature plus the recovery parameter */ class ExtendedSecp256k1Signature extends Secp256k1Signature { - constructor(r, s, recovery) { - super(r, s); - if (!Number.isInteger(recovery)) { - throw new Error("The recovery parameter must be an integer."); - } - if (recovery < 0 || recovery > 4) { - throw new Error("The recovery parameter must be one of 0, 1, 2, 3."); - } - this.recovery = recovery; - } /** * Decode extended signature from the simple fixed length encoding * described in toFixedLength(). @@ -8675,6 +8704,16 @@ class ExtendedSecp256k1Signature extends Secp256k1Signature { } return new ExtendedSecp256k1Signature(trimLeadingNullBytes(data.slice(0, 32)), trimLeadingNullBytes(data.slice(32, 64)), data[64]); } + constructor(r, s, recovery) { + super(r, s); + if (!Number.isInteger(recovery)) { + throw new Error("The recovery parameter must be an integer."); + } + if (recovery < 0 || recovery > 4) { + throw new Error("The recovery parameter must be one of 0, 1, 2, 3."); + } + this.recovery = recovery; + } /** * A simple custom encoding that encodes the extended signature as * r (32 bytes) | s (32 bytes) | recovery param (1 byte) @@ -8689,10 +8728,10 @@ exports.ExtendedSecp256k1Signature = ExtendedSecp256k1Signature; /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/sha.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/sha.js ***! - \*****************************************************************************/ +/***/ "./node_modules/@cosmjs/crypto/build/sha.js": +/*!**************************************************!*\ + !*** ./node_modules/@cosmjs/crypto/build/sha.js ***! + \**************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -8701,7 +8740,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.sha512 = exports.Sha512 = exports.sha256 = exports.Sha256 = void 0; const sha256_1 = __webpack_require__(/*! @noble/hashes/sha256 */ "./node_modules/@noble/hashes/sha256.js"); const sha512_1 = __webpack_require__(/*! @noble/hashes/sha512 */ "./node_modules/@noble/hashes/sha512.js"); -const utils_1 = __webpack_require__(/*! ./utils */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/utils.js"); +const utils_1 = __webpack_require__(/*! ./utils */ "./node_modules/@cosmjs/crypto/build/utils.js"); class Sha256 { constructor(firstData) { this.blockSize = 512 / 8; @@ -8750,10 +8789,10 @@ exports.sha512 = sha512; /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/slip10.js": -/*!********************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/slip10.js ***! - \********************************************************************************/ +/***/ "./node_modules/@cosmjs/crypto/build/slip10.js": +/*!*****************************************************!*\ + !*** ./node_modules/@cosmjs/crypto/build/slip10.js ***! + \*****************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -8763,12 +8802,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.stringToPath = exports.pathToString = exports.Slip10 = exports.Slip10RawIndex = exports.slip10CurveFromString = exports.Slip10Curve = void 0; -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/index.js"); -const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/math/build/index.js"); +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/math/build/index.js"); const bn_js_1 = __importDefault(__webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js")); const elliptic_1 = __importDefault(__webpack_require__(/*! elliptic */ "./node_modules/elliptic/lib/elliptic.js")); -const hmac_1 = __webpack_require__(/*! ./hmac */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/hmac.js"); -const sha_1 = __webpack_require__(/*! ./sha */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/sha.js"); +const hmac_1 = __webpack_require__(/*! ./hmac */ "./node_modules/@cosmjs/crypto/build/hmac.js"); +const sha_1 = __webpack_require__(/*! ./sha */ "./node_modules/@cosmjs/crypto/build/sha.js"); /** * Raw values must match the curve string in SLIP-0010 master key generation * @@ -8946,10 +8985,10 @@ exports.stringToPath = stringToPath; /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/utils.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/crypto/build/utils.js ***! - \*******************************************************************************/ +/***/ "./node_modules/@cosmjs/crypto/build/utils.js": +/*!****************************************************!*\ + !*** ./node_modules/@cosmjs/crypto/build/utils.js ***! + \****************************************************/ /***/ (function(__unused_webpack_module, exports) { "use strict"; @@ -8968,10 +9007,10 @@ exports.toRealUint8Array = toRealUint8Array; /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/ascii.js": -/*!*********************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/ascii.js ***! - \*********************************************************************************/ +/***/ "./node_modules/@cosmjs/encoding/build/ascii.js": +/*!******************************************************!*\ + !*** ./node_modules/@cosmjs/encoding/build/ascii.js ***! + \******************************************************/ /***/ (function(__unused_webpack_module, exports) { "use strict"; @@ -9011,10 +9050,10 @@ exports.fromAscii = fromAscii; /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/base64.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/base64.js ***! - \**********************************************************************************/ +/***/ "./node_modules/@cosmjs/encoding/build/base64.js": +/*!*******************************************************!*\ + !*** ./node_modules/@cosmjs/encoding/build/base64.js ***! + \*******************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -9060,10 +9099,10 @@ exports.fromBase64 = fromBase64; /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/bech32.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/bech32.js ***! - \**********************************************************************************/ +/***/ "./node_modules/@cosmjs/encoding/build/bech32.js": +/*!*******************************************************!*\ + !*** ./node_modules/@cosmjs/encoding/build/bech32.js ***! + \*******************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -9122,10 +9161,10 @@ exports.normalizeBech32 = normalizeBech32; /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/hex.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/hex.js ***! - \*******************************************************************************/ +/***/ "./node_modules/@cosmjs/encoding/build/hex.js": +/*!****************************************************!*\ + !*** ./node_modules/@cosmjs/encoding/build/hex.js ***! + \****************************************************/ /***/ (function(__unused_webpack_module, exports) { "use strict"; @@ -9160,43 +9199,43 @@ exports.fromHex = fromHex; /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/index.js": -/*!*********************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/index.js ***! - \*********************************************************************************/ +/***/ "./node_modules/@cosmjs/encoding/build/index.js": +/*!******************************************************!*\ + !*** ./node_modules/@cosmjs/encoding/build/index.js ***! + \******************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.toUtf8 = exports.fromUtf8 = exports.toRfc3339 = exports.fromRfc3339 = exports.toHex = exports.fromHex = exports.toBech32 = exports.normalizeBech32 = exports.fromBech32 = exports.toBase64 = exports.fromBase64 = exports.toAscii = exports.fromAscii = void 0; -var ascii_1 = __webpack_require__(/*! ./ascii */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/ascii.js"); +var ascii_1 = __webpack_require__(/*! ./ascii */ "./node_modules/@cosmjs/encoding/build/ascii.js"); Object.defineProperty(exports, "fromAscii", ({ enumerable: true, get: function () { return ascii_1.fromAscii; } })); Object.defineProperty(exports, "toAscii", ({ enumerable: true, get: function () { return ascii_1.toAscii; } })); -var base64_1 = __webpack_require__(/*! ./base64 */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/base64.js"); +var base64_1 = __webpack_require__(/*! ./base64 */ "./node_modules/@cosmjs/encoding/build/base64.js"); Object.defineProperty(exports, "fromBase64", ({ enumerable: true, get: function () { return base64_1.fromBase64; } })); Object.defineProperty(exports, "toBase64", ({ enumerable: true, get: function () { return base64_1.toBase64; } })); -var bech32_1 = __webpack_require__(/*! ./bech32 */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/bech32.js"); +var bech32_1 = __webpack_require__(/*! ./bech32 */ "./node_modules/@cosmjs/encoding/build/bech32.js"); Object.defineProperty(exports, "fromBech32", ({ enumerable: true, get: function () { return bech32_1.fromBech32; } })); Object.defineProperty(exports, "normalizeBech32", ({ enumerable: true, get: function () { return bech32_1.normalizeBech32; } })); Object.defineProperty(exports, "toBech32", ({ enumerable: true, get: function () { return bech32_1.toBech32; } })); -var hex_1 = __webpack_require__(/*! ./hex */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/hex.js"); +var hex_1 = __webpack_require__(/*! ./hex */ "./node_modules/@cosmjs/encoding/build/hex.js"); Object.defineProperty(exports, "fromHex", ({ enumerable: true, get: function () { return hex_1.fromHex; } })); Object.defineProperty(exports, "toHex", ({ enumerable: true, get: function () { return hex_1.toHex; } })); -var rfc3339_1 = __webpack_require__(/*! ./rfc3339 */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/rfc3339.js"); +var rfc3339_1 = __webpack_require__(/*! ./rfc3339 */ "./node_modules/@cosmjs/encoding/build/rfc3339.js"); Object.defineProperty(exports, "fromRfc3339", ({ enumerable: true, get: function () { return rfc3339_1.fromRfc3339; } })); Object.defineProperty(exports, "toRfc3339", ({ enumerable: true, get: function () { return rfc3339_1.toRfc3339; } })); -var utf8_1 = __webpack_require__(/*! ./utf8 */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/utf8.js"); +var utf8_1 = __webpack_require__(/*! ./utf8 */ "./node_modules/@cosmjs/encoding/build/utf8.js"); Object.defineProperty(exports, "fromUtf8", ({ enumerable: true, get: function () { return utf8_1.fromUtf8; } })); Object.defineProperty(exports, "toUtf8", ({ enumerable: true, get: function () { return utf8_1.toUtf8; } })); //# sourceMappingURL=index.js.map /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/rfc3339.js": -/*!***********************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/rfc3339.js ***! - \***********************************************************************************/ +/***/ "./node_modules/@cosmjs/encoding/build/rfc3339.js": +/*!********************************************************!*\ + !*** ./node_modules/@cosmjs/encoding/build/rfc3339.js ***! + \********************************************************/ /***/ (function(__unused_webpack_module, exports) { "use strict"; @@ -9235,8 +9274,10 @@ function fromRfc3339(str) { tzOffsetMinutes = +matches[8].substring(4, 6); } const tzOffset = tzOffsetSign * (tzOffsetHours * 60 + tzOffsetMinutes) * 60; // seconds - const timestamp = Date.UTC(year, month - 1, day, hour, minute, second, milliSeconds) - tzOffset * 1000; - return new Date(timestamp); + const date = new Date(); + date.setUTCFullYear(year, month - 1, day); + date.setUTCHours(hour, minute, second, milliSeconds); + return new Date(date.getTime() - tzOffset * 1000); } exports.fromRfc3339 = fromRfc3339; function toRfc3339(date) { @@ -9254,10 +9295,10 @@ exports.toRfc3339 = toRfc3339; /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/utf8.js": -/*!********************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/encoding/build/utf8.js ***! - \********************************************************************************/ +/***/ "./node_modules/@cosmjs/encoding/build/utf8.js": +/*!*****************************************************!*\ + !*** ./node_modules/@cosmjs/encoding/build/utf8.js ***! + \*****************************************************/ /***/ (function(__unused_webpack_module, exports) { "use strict"; @@ -9283,10 +9324,340 @@ exports.fromUtf8 = fromUtf8; /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/math/build/decimal.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/math/build/decimal.js ***! - \*******************************************************************************/ +/***/ "./node_modules/@cosmjs/json-rpc/build/compatibility.js": +/*!**************************************************************!*\ + !*** ./node_modules/@cosmjs/json-rpc/build/compatibility.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.isJsonCompatibleDictionary = exports.isJsonCompatibleArray = exports.isJsonCompatibleValue = void 0; +function isJsonCompatibleValue(value) { + if (typeof value === "string" || + typeof value === "number" || + typeof value === "boolean" || + value === null || + // eslint-disable-next-line @typescript-eslint/no-use-before-define + isJsonCompatibleArray(value) || + // eslint-disable-next-line @typescript-eslint/no-use-before-define + isJsonCompatibleDictionary(value)) { + return true; + } + else { + return false; + } +} +exports.isJsonCompatibleValue = isJsonCompatibleValue; +function isJsonCompatibleArray(value) { + if (!Array.isArray(value)) { + return false; + } + for (const item of value) { + if (!isJsonCompatibleValue(item)) { + return false; + } + } + // all items okay + return true; +} +exports.isJsonCompatibleArray = isJsonCompatibleArray; +function isJsonCompatibleDictionary(data) { + if (typeof data !== "object" || data === null) { + // data must be a non-null object + return false; + } + // Exclude special kind of objects like Array, Date or Uint8Array + // Object.prototype.toString() returns a specified value: + // http://www.ecma-international.org/ecma-262/7.0/index.html#sec-object.prototype.tostring + if (Object.prototype.toString.call(data) !== "[object Object]") { + return false; + } + return Object.values(data).every(isJsonCompatibleValue); +} +exports.isJsonCompatibleDictionary = isJsonCompatibleDictionary; +//# sourceMappingURL=compatibility.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/json-rpc/build/id.js": +/*!***************************************************!*\ + !*** ./node_modules/@cosmjs/json-rpc/build/id.js ***! + \***************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.makeJsonRpcId = void 0; +// Start with 10001 to avoid possible collisions with all hand-selected values like e.g. 1,2,3,42,100 +let counter = 10000; +/** + * Creates a new ID to be used for creating a JSON-RPC request. + * + * Multiple calls of this produce unique values. + * + * The output may be any value compatible to JSON-RPC request IDs with an undefined output format and generation logic. + */ +function makeJsonRpcId() { + return (counter += 1); +} +exports.makeJsonRpcId = makeJsonRpcId; +//# sourceMappingURL=id.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/json-rpc/build/index.js": +/*!******************************************************!*\ + !*** ./node_modules/@cosmjs/json-rpc/build/index.js ***! + \******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.jsonRpcCode = exports.isJsonRpcSuccessResponse = exports.isJsonRpcErrorResponse = exports.parseJsonRpcSuccessResponse = exports.parseJsonRpcResponse = exports.parseJsonRpcRequest = exports.parseJsonRpcId = exports.parseJsonRpcErrorResponse = exports.JsonRpcClient = exports.makeJsonRpcId = void 0; +var id_1 = __webpack_require__(/*! ./id */ "./node_modules/@cosmjs/json-rpc/build/id.js"); +Object.defineProperty(exports, "makeJsonRpcId", ({ enumerable: true, get: function () { return id_1.makeJsonRpcId; } })); +var jsonrpcclient_1 = __webpack_require__(/*! ./jsonrpcclient */ "./node_modules/@cosmjs/json-rpc/build/jsonrpcclient.js"); +Object.defineProperty(exports, "JsonRpcClient", ({ enumerable: true, get: function () { return jsonrpcclient_1.JsonRpcClient; } })); +var parse_1 = __webpack_require__(/*! ./parse */ "./node_modules/@cosmjs/json-rpc/build/parse.js"); +Object.defineProperty(exports, "parseJsonRpcErrorResponse", ({ enumerable: true, get: function () { return parse_1.parseJsonRpcErrorResponse; } })); +Object.defineProperty(exports, "parseJsonRpcId", ({ enumerable: true, get: function () { return parse_1.parseJsonRpcId; } })); +Object.defineProperty(exports, "parseJsonRpcRequest", ({ enumerable: true, get: function () { return parse_1.parseJsonRpcRequest; } })); +Object.defineProperty(exports, "parseJsonRpcResponse", ({ enumerable: true, get: function () { return parse_1.parseJsonRpcResponse; } })); +Object.defineProperty(exports, "parseJsonRpcSuccessResponse", ({ enumerable: true, get: function () { return parse_1.parseJsonRpcSuccessResponse; } })); +var types_1 = __webpack_require__(/*! ./types */ "./node_modules/@cosmjs/json-rpc/build/types.js"); +Object.defineProperty(exports, "isJsonRpcErrorResponse", ({ enumerable: true, get: function () { return types_1.isJsonRpcErrorResponse; } })); +Object.defineProperty(exports, "isJsonRpcSuccessResponse", ({ enumerable: true, get: function () { return types_1.isJsonRpcSuccessResponse; } })); +Object.defineProperty(exports, "jsonRpcCode", ({ enumerable: true, get: function () { return types_1.jsonRpcCode; } })); +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/json-rpc/build/jsonrpcclient.js": +/*!**************************************************************!*\ + !*** ./node_modules/@cosmjs/json-rpc/build/jsonrpcclient.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.JsonRpcClient = void 0; +const stream_1 = __webpack_require__(/*! @cosmjs/stream */ "./node_modules/@cosmjs/stream/build/index.js"); +const types_1 = __webpack_require__(/*! ./types */ "./node_modules/@cosmjs/json-rpc/build/types.js"); +/** + * A thin wrapper that is used to bring together requests and responses by ID. + * + * Using this class is only advised for continous communication channels like + * WebSockets or WebWorker messaging. + */ +class JsonRpcClient { + constructor(connection) { + this.connection = connection; + } + async run(request) { + const filteredStream = this.connection.responseStream.filter((r) => r.id === request.id); + const pendingResponses = (0, stream_1.firstEvent)(filteredStream); + this.connection.sendRequest(request); + const response = await pendingResponses; + if ((0, types_1.isJsonRpcErrorResponse)(response)) { + const error = response.error; + throw new Error(`JSON RPC error: code=${error.code}; message='${error.message}'`); + } + return response; + } +} +exports.JsonRpcClient = JsonRpcClient; +//# sourceMappingURL=jsonrpcclient.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/json-rpc/build/parse.js": +/*!******************************************************!*\ + !*** ./node_modules/@cosmjs/json-rpc/build/parse.js ***! + \******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.parseJsonRpcResponse = exports.parseJsonRpcSuccessResponse = exports.parseJsonRpcErrorResponse = exports.parseJsonRpcRequest = exports.parseJsonRpcId = void 0; +const compatibility_1 = __webpack_require__(/*! ./compatibility */ "./node_modules/@cosmjs/json-rpc/build/compatibility.js"); +/** + * Extracts ID field from request or response object. + * + * Returns `null` when no valid ID was found. + */ +function parseJsonRpcId(data) { + if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) { + throw new Error("Data must be JSON compatible dictionary"); + } + const id = data.id; + if (typeof id !== "number" && typeof id !== "string") { + return null; + } + return id; +} +exports.parseJsonRpcId = parseJsonRpcId; +function parseJsonRpcRequest(data) { + if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) { + throw new Error("Data must be JSON compatible dictionary"); + } + if (data.jsonrpc !== "2.0") { + throw new Error(`Got unexpected jsonrpc version: ${data.jsonrpc}`); + } + const id = parseJsonRpcId(data); + if (id === null) { + throw new Error("Invalid id field"); + } + const method = data.method; + if (typeof method !== "string") { + throw new Error("Invalid method field"); + } + if (!(0, compatibility_1.isJsonCompatibleArray)(data.params) && !(0, compatibility_1.isJsonCompatibleDictionary)(data.params)) { + throw new Error("Invalid params field"); + } + return { + jsonrpc: "2.0", + id: id, + method: method, + params: data.params, + }; +} +exports.parseJsonRpcRequest = parseJsonRpcRequest; +function parseError(error) { + if (typeof error.code !== "number") { + throw new Error("Error property 'code' is not a number"); + } + if (typeof error.message !== "string") { + throw new Error("Error property 'message' is not a string"); + } + let maybeUndefinedData; + if (error.data === undefined) { + maybeUndefinedData = undefined; + } + else if ((0, compatibility_1.isJsonCompatibleValue)(error.data)) { + maybeUndefinedData = error.data; + } + else { + throw new Error("Error property 'data' is defined but not a JSON compatible value."); + } + return { + code: error.code, + message: error.message, + ...(maybeUndefinedData !== undefined ? { data: maybeUndefinedData } : {}), + }; +} +/** Throws if data is not a JsonRpcErrorResponse */ +function parseJsonRpcErrorResponse(data) { + if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) { + throw new Error("Data must be JSON compatible dictionary"); + } + if (data.jsonrpc !== "2.0") { + throw new Error(`Got unexpected jsonrpc version: ${JSON.stringify(data)}`); + } + const id = data.id; + if (typeof id !== "number" && typeof id !== "string" && id !== null) { + throw new Error("Invalid id field"); + } + if (typeof data.error === "undefined" || !(0, compatibility_1.isJsonCompatibleDictionary)(data.error)) { + throw new Error("Invalid error field"); + } + return { + jsonrpc: "2.0", + id: id, + error: parseError(data.error), + }; +} +exports.parseJsonRpcErrorResponse = parseJsonRpcErrorResponse; +/** Throws if data is not a JsonRpcSuccessResponse */ +function parseJsonRpcSuccessResponse(data) { + if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) { + throw new Error("Data must be JSON compatible dictionary"); + } + if (data.jsonrpc !== "2.0") { + throw new Error(`Got unexpected jsonrpc version: ${JSON.stringify(data)}`); + } + const id = data.id; + if (typeof id !== "number" && typeof id !== "string") { + throw new Error("Invalid id field"); + } + if (typeof data.result === "undefined") { + throw new Error("Invalid result field"); + } + const result = data.result; + return { + jsonrpc: "2.0", + id: id, + result: result, + }; +} +exports.parseJsonRpcSuccessResponse = parseJsonRpcSuccessResponse; +/** + * Returns a JsonRpcErrorResponse if input can be parsed as a JSON-RPC error. Otherwise parses + * input as JsonRpcSuccessResponse. Throws if input is neither a valid error nor success response. + */ +function parseJsonRpcResponse(data) { + let response; + try { + response = parseJsonRpcErrorResponse(data); + } + catch (_) { + response = parseJsonRpcSuccessResponse(data); + } + return response; +} +exports.parseJsonRpcResponse = parseJsonRpcResponse; +//# sourceMappingURL=parse.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/json-rpc/build/types.js": +/*!******************************************************!*\ + !*** ./node_modules/@cosmjs/json-rpc/build/types.js ***! + \******************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.jsonRpcCode = exports.isJsonRpcSuccessResponse = exports.isJsonRpcErrorResponse = void 0; +function isJsonRpcErrorResponse(response) { + return typeof response.error === "object"; +} +exports.isJsonRpcErrorResponse = isJsonRpcErrorResponse; +function isJsonRpcSuccessResponse(response) { + return !isJsonRpcErrorResponse(response); +} +exports.isJsonRpcSuccessResponse = isJsonRpcSuccessResponse; +/** + * Error codes as specified in JSON-RPC 2.0 + * + * @see https://www.jsonrpc.org/specification#error_object + */ +exports.jsonRpcCode = { + parseError: -32700, + invalidRequest: -32600, + methodNotFound: -32601, + invalidParams: -32602, + internalError: -32603, + // server error (Reserved for implementation-defined server-errors.): + // -32000 to -32099 + serverError: { + default: -32000, + }, +}; +//# sourceMappingURL=types.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/math/build/decimal.js": +/*!****************************************************!*\ + !*** ./node_modules/@cosmjs/math/build/decimal.js ***! + \****************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -9306,15 +9677,6 @@ const maxFractionalDigits = 100; * Instances of this class are immutable. */ class Decimal { - constructor(atomics, fractionalDigits) { - if (!atomics.match(/^[0-9]+$/)) { - throw new Error("Invalid string format. Only non-negative integers in decimal representation supported."); - } - this.data = { - atomics: new bn_js_1.default(atomics), - fractionalDigits: fractionalDigits, - }; - } static fromUserInput(input, fractionalDigits) { Decimal.verifyFractionalDigits(fractionalDigits); const badCharacter = input.match(/[^0-9.]/); @@ -9399,6 +9761,15 @@ class Decimal { get fractionalDigits() { return this.data.fractionalDigits; } + constructor(atomics, fractionalDigits) { + if (!atomics.match(/^[0-9]+$/)) { + throw new Error("Invalid string format. Only non-negative integers in decimal representation supported."); + } + this.data = { + atomics: new bn_js_1.default(atomics), + fractionalDigits: fractionalDigits, + }; + } /** Creates a new instance with the same value */ clone() { return new Decimal(this.atomics, this.fractionalDigits); @@ -9505,19 +9876,19 @@ exports.Decimal = Decimal; /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/math/build/index.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/math/build/index.js ***! - \*****************************************************************************/ +/***/ "./node_modules/@cosmjs/math/build/index.js": +/*!**************************************************!*\ + !*** ./node_modules/@cosmjs/math/build/index.js ***! + \**************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Uint64 = exports.Uint53 = exports.Uint32 = exports.Int53 = exports.Decimal = void 0; -var decimal_1 = __webpack_require__(/*! ./decimal */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/math/build/decimal.js"); +var decimal_1 = __webpack_require__(/*! ./decimal */ "./node_modules/@cosmjs/math/build/decimal.js"); Object.defineProperty(exports, "Decimal", ({ enumerable: true, get: function () { return decimal_1.Decimal; } })); -var integers_1 = __webpack_require__(/*! ./integers */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/math/build/integers.js"); +var integers_1 = __webpack_require__(/*! ./integers */ "./node_modules/@cosmjs/math/build/integers.js"); Object.defineProperty(exports, "Int53", ({ enumerable: true, get: function () { return integers_1.Int53; } })); Object.defineProperty(exports, "Uint32", ({ enumerable: true, get: function () { return integers_1.Uint32; } })); Object.defineProperty(exports, "Uint53", ({ enumerable: true, get: function () { return integers_1.Uint53; } })); @@ -9526,10 +9897,10 @@ Object.defineProperty(exports, "Uint64", ({ enumerable: true, get: function () { /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/math/build/integers.js": -/*!********************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/math/build/integers.js ***! - \********************************************************************************/ +/***/ "./node_modules/@cosmjs/math/build/integers.js": +/*!*****************************************************!*\ + !*** ./node_modules/@cosmjs/math/build/integers.js ***! + \*****************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -9543,18 +9914,6 @@ exports.Uint64 = exports.Uint53 = exports.Int53 = exports.Uint32 = void 0; const bn_js_1 = __importDefault(__webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js")); const uint64MaxValue = new bn_js_1.default("18446744073709551615", 10, "be"); class Uint32 { - constructor(input) { - if (Number.isNaN(input)) { - throw new Error("Input is not a number"); - } - if (!Number.isInteger(input)) { - throw new Error("Input is not an integer"); - } - if (input < 0 || input > 4294967295) { - throw new Error("Input not in uint32 range: " + input.toString()); - } - this.data = input; - } /** @deprecated use Uint32.fromBytes */ static fromBigEndianBytes(bytes) { return Uint32.fromBytes(bytes); @@ -9585,6 +9944,18 @@ class Uint32 { } return new Uint32(Number.parseInt(str, 10)); } + constructor(input) { + if (Number.isNaN(input)) { + throw new Error("Input is not a number"); + } + if (!Number.isInteger(input)) { + throw new Error("Input is not an integer"); + } + if (input < 0 || input > 4294967295) { + throw new Error("Input not in uint32 range: " + input.toString()); + } + this.data = input; + } toBytesBigEndian() { // Use division instead of shifting since bitwise operators are defined // on SIGNED int32 in JavaScript and we don't want to risk surprises @@ -9617,6 +9988,12 @@ class Uint32 { } exports.Uint32 = Uint32; class Int53 { + static fromString(str) { + if (!str.match(/^-?[0-9]+$/)) { + throw new Error("Invalid string format"); + } + return new Int53(Number.parseInt(str, 10)); + } constructor(input) { if (Number.isNaN(input)) { throw new Error("Input is not a number"); @@ -9629,12 +10006,6 @@ class Int53 { } this.data = input; } - static fromString(str) { - if (!str.match(/^-?[0-9]+$/)) { - throw new Error("Invalid string format"); - } - return new Int53(Number.parseInt(str, 10)); - } toNumber() { return this.data; } @@ -9647,6 +10018,10 @@ class Int53 { } exports.Int53 = Int53; class Uint53 { + static fromString(str) { + const signed = Int53.fromString(str); + return new Uint53(signed.toNumber()); + } constructor(input) { const signed = new Int53(input); if (signed.toNumber() < 0) { @@ -9654,10 +10029,6 @@ class Uint53 { } this.data = signed; } - static fromString(str) { - const signed = Int53.fromString(str); - return new Uint53(signed.toNumber()); - } toNumber() { return this.data.toNumber(); } @@ -9670,15 +10041,6 @@ class Uint53 { } exports.Uint53 = Uint53; class Uint64 { - constructor(data) { - if (data.isNeg()) { - throw new Error("Input is negative"); - } - if (data.gt(uint64MaxValue)) { - throw new Error("Input exceeds uint64 range"); - } - this.data = data; - } /** @deprecated use Uint64.fromBytes */ static fromBytesBigEndian(bytes) { return Uint64.fromBytes(bytes); @@ -9723,6 +10085,15 @@ class Uint64 { } return new Uint64(bigint); } + constructor(data) { + if (data.isNeg()) { + throw new Error("Input is negative"); + } + if (data.gt(uint64MaxValue)) { + throw new Error("Input exceeds uint64 range"); + } + this.data = data; + } toBytesBigEndian() { return Uint8Array.from(this.data.toArray("be", 8)); } @@ -9750,18634 +10121,5444 @@ const _uint64Class = Uint64; /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/utils/build/arrays.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/utils/build/arrays.js ***! - \*******************************************************************************/ +/***/ "./node_modules/@cosmjs/proto-signing/build/coins.js": +/*!***********************************************************!*\ + !*** ./node_modules/@cosmjs/proto-signing/build/coins.js ***! + \***********************************************************/ /***/ (function(__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.arrayContentStartsWith = exports.arrayContentEquals = void 0; -/** - * Compares the content of two arrays-like objects for equality. - * - * Equality is defined as having equal length and element values, where element equality means `===` returning `true`. - * - * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type. - * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type. - */ -function arrayContentEquals(a, b) { - if (a.length !== b.length) - return false; - for (let i = 0; i < a.length; ++i) { - if (a[i] !== b[i]) - return false; - } - return true; -} -exports.arrayContentEquals = arrayContentEquals; +exports.parseCoins = void 0; /** - * Checks if `a` starts with the contents of `b`. - * - * This requires equality of the element values, where element equality means `===` returning `true`. + * Takes a coins list like "819966000ucosm,700000000ustake" and parses it. * - * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type. - * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type. + * This is a Stargate ready version of parseCoins from @cosmjs/amino. + * It supports more denoms. */ -function arrayContentStartsWith(a, b) { - if (a.length < b.length) - return false; - for (let i = 0; i < b.length; ++i) { - if (a[i] !== b[i]) - return false; - } - return true; -} -exports.arrayContentStartsWith = arrayContentStartsWith; -//# sourceMappingURL=arrays.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/utils/build/assert.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/utils/build/assert.js ***! - \*******************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.assertDefinedAndNotNull = exports.assertDefined = exports.assert = void 0; -// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types -function assert(condition, msg) { - if (!condition) { - throw new Error(msg || "condition is not truthy"); - } -} -exports.assert = assert; -function assertDefined(value, msg) { - if (value === undefined) { - throw new Error(msg ?? "value is undefined"); - } -} -exports.assertDefined = assertDefined; -function assertDefinedAndNotNull(value, msg) { - if (value === undefined || value === null) { - throw new Error(msg ?? "value is undefined or null"); - } +function parseCoins(input) { + return input + .replace(/\s/g, "") + .split(",") + .filter(Boolean) + .map((part) => { + // Denom regex from Stargate (https://github.com/cosmos/cosmos-sdk/blob/v0.42.7/types/coin.go#L599-L601) + const match = part.match(/^([0-9]+)([a-zA-Z][a-zA-Z0-9/]{2,127})$/); + if (!match) + throw new Error("Got an invalid coin string"); + return { + amount: match[1].replace(/^0+/, "") || "0", + denom: match[2], + }; + }); } -exports.assertDefinedAndNotNull = assertDefinedAndNotNull; -//# sourceMappingURL=assert.js.map +exports.parseCoins = parseCoins; +//# sourceMappingURL=coins.js.map /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/utils/build/index.js": -/*!******************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/utils/build/index.js ***! - \******************************************************************************/ +/***/ "./node_modules/@cosmjs/proto-signing/build/decode.js": +/*!************************************************************!*\ + !*** ./node_modules/@cosmjs/proto-signing/build/decode.js ***! + \************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isUint8Array = exports.isNonNullObject = exports.isDefined = exports.sleep = exports.assertDefinedAndNotNull = exports.assertDefined = exports.assert = exports.arrayContentStartsWith = exports.arrayContentEquals = void 0; -var arrays_1 = __webpack_require__(/*! ./arrays */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/utils/build/arrays.js"); -Object.defineProperty(exports, "arrayContentEquals", ({ enumerable: true, get: function () { return arrays_1.arrayContentEquals; } })); -Object.defineProperty(exports, "arrayContentStartsWith", ({ enumerable: true, get: function () { return arrays_1.arrayContentStartsWith; } })); -var assert_1 = __webpack_require__(/*! ./assert */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/utils/build/assert.js"); -Object.defineProperty(exports, "assert", ({ enumerable: true, get: function () { return assert_1.assert; } })); -Object.defineProperty(exports, "assertDefined", ({ enumerable: true, get: function () { return assert_1.assertDefined; } })); -Object.defineProperty(exports, "assertDefinedAndNotNull", ({ enumerable: true, get: function () { return assert_1.assertDefinedAndNotNull; } })); -var sleep_1 = __webpack_require__(/*! ./sleep */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/utils/build/sleep.js"); -Object.defineProperty(exports, "sleep", ({ enumerable: true, get: function () { return sleep_1.sleep; } })); -var typechecks_1 = __webpack_require__(/*! ./typechecks */ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/utils/build/typechecks.js"); -Object.defineProperty(exports, "isDefined", ({ enumerable: true, get: function () { return typechecks_1.isDefined; } })); -Object.defineProperty(exports, "isNonNullObject", ({ enumerable: true, get: function () { return typechecks_1.isNonNullObject; } })); -Object.defineProperty(exports, "isUint8Array", ({ enumerable: true, get: function () { return typechecks_1.isUint8Array; } })); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/utils/build/sleep.js": -/*!******************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/utils/build/sleep.js ***! - \******************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.sleep = void 0; -async function sleep(ms) { - return new Promise((resolve) => setTimeout(resolve, ms)); +exports.decodeTxRaw = void 0; +const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/tx/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/tx/v1beta1/tx.js"); +/** + * Takes a serialized TxRaw (the bytes stored in Tendermint) and decodes it into something usable. + */ +function decodeTxRaw(tx) { + const txRaw = tx_1.TxRaw.decode(tx); + return { + authInfo: tx_1.AuthInfo.decode(txRaw.authInfoBytes), + body: tx_1.TxBody.decode(txRaw.bodyBytes), + signatures: txRaw.signatures, + }; } -exports.sleep = sleep; -//# sourceMappingURL=sleep.js.map +exports.decodeTxRaw = decodeTxRaw; +//# sourceMappingURL=decode.js.map /***/ }), -/***/ "./node_modules/@cosmjs/amino/node_modules/@cosmjs/utils/build/typechecks.js": -/*!***********************************************************************************!*\ - !*** ./node_modules/@cosmjs/amino/node_modules/@cosmjs/utils/build/typechecks.js ***! - \***********************************************************************************/ +/***/ "./node_modules/@cosmjs/proto-signing/build/directsecp256k1hdwallet.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/@cosmjs/proto-signing/build/directsecp256k1hdwallet.js ***! + \*****************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isDefined = exports.isUint8Array = exports.isNonNullObject = void 0; -/** - * Checks if data is a non-null object (i.e. matches the TypeScript object type). - * - * Note: this returns true for arrays, which are objects in JavaScript - * even though array and object are different types in JSON. - * - * @see https://www.typescriptlang.org/docs/handbook/basic-types.html#object - */ -// eslint-disable-next-line @typescript-eslint/ban-types -function isNonNullObject(data) { - return typeof data === "object" && data !== null; -} -exports.isNonNullObject = isNonNullObject; +exports.DirectSecp256k1HdWallet = exports.extractKdfConfiguration = void 0; +const amino_1 = __webpack_require__(/*! @cosmjs/amino */ "./node_modules/@cosmjs/amino/build/index.js"); +const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/crypto/build/index.js"); +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/utils/build/index.js"); +const signing_1 = __webpack_require__(/*! ./signing */ "./node_modules/@cosmjs/proto-signing/build/signing.js"); +const wallet_1 = __webpack_require__(/*! ./wallet */ "./node_modules/@cosmjs/proto-signing/build/wallet.js"); +const serializationTypeV1 = "directsecp256k1hdwallet-v1"; /** - * Checks if data is an Uint8Array. Note: Buffer is treated as not a Uint8Array + * A KDF configuration that is not very strong but can be used on the main thread. + * It takes about 1 second in Node.js 16.0.0 and should have similar runtimes in other modern Wasm hosts. */ -function isUint8Array(data) { - if (!isNonNullObject(data)) +const basicPasswordHashingOptions = { + algorithm: "argon2id", + params: { + outputLength: 32, + opsLimit: 24, + memLimitKib: 12 * 1024, + }, +}; +function isDerivationJson(thing) { + if (!(0, utils_1.isNonNullObject)(thing)) return false; - // Avoid instanceof check which is unreliable in some JS environments - // https://medium.com/@simonwarta/limitations-of-the-instanceof-operator-f4bcdbe7a400 - // Use check that was discussed in https://github.com/crypto-browserify/pbkdf2/pull/81 - if (Object.prototype.toString.call(data) !== "[object Uint8Array]") + if (typeof thing.hdPath !== "string") + return false; + if (typeof thing.prefix !== "string") return false; - if (typeof Buffer !== "undefined" && typeof Buffer.isBuffer !== "undefined") { - // Buffer.isBuffer is available at runtime - if (Buffer.isBuffer(data)) - return false; - } return true; } -exports.isUint8Array = isUint8Array; -/** - * Checks if input is not undefined in a TypeScript-friendly way. - * - * This is convenient to use in e.g. `Array.filter` as it will convert - * the type of a `Array` to `Array`. - */ -function isDefined(value) { - return value !== undefined; +function extractKdfConfigurationV1(doc) { + return doc.kdf; } -exports.isDefined = isDefined; -//# sourceMappingURL=typechecks.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/encoding/build/ascii.js": -/*!******************************************************!*\ - !*** ./node_modules/@cosmjs/encoding/build/ascii.js ***! - \******************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromAscii = exports.toAscii = void 0; -function toAscii(input) { - const toNums = (str) => str.split("").map((x) => { - const charCode = x.charCodeAt(0); - // 0x00–0x1F control characters - // 0x20–0x7E printable characters - // 0x7F delete character - // 0x80–0xFF out of 7 bit ascii range - if (charCode < 0x20 || charCode > 0x7e) { - throw new Error("Cannot encode character that is out of printable ASCII range: " + charCode); - } - return charCode; - }); - return Uint8Array.from(toNums(input)); +function extractKdfConfiguration(serialization) { + const root = JSON.parse(serialization); + if (!(0, utils_1.isNonNullObject)(root)) + throw new Error("Root document is not an object."); + switch (root.type) { + case serializationTypeV1: + return extractKdfConfigurationV1(root); + default: + throw new Error("Unsupported serialization type"); + } } -exports.toAscii = toAscii; -function fromAscii(data) { - const fromNums = (listOfNumbers) => listOfNumbers.map((x) => { - // 0x00–0x1F control characters - // 0x20–0x7E printable characters - // 0x7F delete character - // 0x80–0xFF out of 7 bit ascii range - if (x < 0x20 || x > 0x7e) { - throw new Error("Cannot decode character that is out of printable ASCII range: " + x); +exports.extractKdfConfiguration = extractKdfConfiguration; +const defaultOptions = { + bip39Password: "", + hdPaths: [(0, amino_1.makeCosmoshubPath)(0)], + prefix: "cosmos", +}; +/** A wallet for protobuf based signing using SIGN_MODE_DIRECT */ +class DirectSecp256k1HdWallet { + /** + * Restores a wallet from the given BIP39 mnemonic. + * + * @param mnemonic Any valid English mnemonic. + * @param options An optional `DirectSecp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix. + */ + static async fromMnemonic(mnemonic, options = {}) { + const mnemonicChecked = new crypto_1.EnglishMnemonic(mnemonic); + const seed = await crypto_1.Bip39.mnemonicToSeed(mnemonicChecked, options.bip39Password); + return new DirectSecp256k1HdWallet(mnemonicChecked, { + ...options, + seed: seed, + }); + } + /** + * Generates a new wallet with a BIP39 mnemonic of the given length. + * + * @param length The number of words in the mnemonic (12, 15, 18, 21 or 24). + * @param options An optional `DirectSecp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix. + */ + static async generate(length = 12, options = {}) { + const entropyLength = 4 * Math.floor((11 * length) / 33); + const entropy = crypto_1.Random.getBytes(entropyLength); + const mnemonic = crypto_1.Bip39.encode(entropy); + return DirectSecp256k1HdWallet.fromMnemonic(mnemonic.toString(), options); + } + /** + * Restores a wallet from an encrypted serialization. + * + * @param password The user provided password used to generate an encryption key via a KDF. + * This is not normalized internally (see "Unicode normalization" to learn more). + */ + static async deserialize(serialization, password) { + const root = JSON.parse(serialization); + if (!(0, utils_1.isNonNullObject)(root)) + throw new Error("Root document is not an object."); + switch (root.type) { + case serializationTypeV1: + return DirectSecp256k1HdWallet.deserializeTypeV1(serialization, password); + default: + throw new Error("Unsupported serialization type"); } - return String.fromCharCode(x); - }); - return fromNums(Array.from(data)).join(""); -} -exports.fromAscii = fromAscii; -//# sourceMappingURL=ascii.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/encoding/build/base64.js": -/*!*******************************************************!*\ - !*** ./node_modules/@cosmjs/encoding/build/base64.js ***! - \*******************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromBase64 = exports.toBase64 = void 0; -const base64js = __importStar(__webpack_require__(/*! base64-js */ "./node_modules/base64-js/index.js")); -function toBase64(data) { - return base64js.fromByteArray(data); -} -exports.toBase64 = toBase64; -function fromBase64(base64String) { - if (!base64String.match(/^[a-zA-Z0-9+/]*={0,2}$/)) { - throw new Error("Invalid base64 string format"); + /** + * Restores a wallet from an encrypted serialization. + * + * This is an advanced alternative to calling `deserialize(serialization, password)` directly, which allows + * you to offload the KDF execution to a non-UI thread (e.g. in a WebWorker). + * + * The caller is responsible for ensuring the key was derived with the given KDF configuration. This can be + * done using `extractKdfConfiguration(serialization)` and `executeKdf(password, kdfConfiguration)` from this package. + */ + static async deserializeWithEncryptionKey(serialization, encryptionKey) { + const root = JSON.parse(serialization); + if (!(0, utils_1.isNonNullObject)(root)) + throw new Error("Root document is not an object."); + const untypedRoot = root; + switch (untypedRoot.type) { + case serializationTypeV1: { + const decryptedBytes = await (0, wallet_1.decrypt)((0, encoding_1.fromBase64)(untypedRoot.data), encryptionKey, untypedRoot.encryption); + const decryptedDocument = JSON.parse((0, encoding_1.fromUtf8)(decryptedBytes)); + const { mnemonic, accounts } = decryptedDocument; + (0, utils_1.assert)(typeof mnemonic === "string"); + if (!Array.isArray(accounts)) + throw new Error("Property 'accounts' is not an array"); + if (!accounts.every((account) => isDerivationJson(account))) { + throw new Error("Account is not in the correct format."); + } + const firstPrefix = accounts[0].prefix; + if (!accounts.every(({ prefix }) => prefix === firstPrefix)) { + throw new Error("Accounts do not all have the same prefix"); + } + const hdPaths = accounts.map(({ hdPath }) => (0, crypto_1.stringToPath)(hdPath)); + return DirectSecp256k1HdWallet.fromMnemonic(mnemonic, { + hdPaths: hdPaths, + prefix: firstPrefix, + }); + } + default: + throw new Error("Unsupported serialization type"); + } + } + static async deserializeTypeV1(serialization, password) { + const root = JSON.parse(serialization); + if (!(0, utils_1.isNonNullObject)(root)) + throw new Error("Root document is not an object."); + const encryptionKey = await (0, wallet_1.executeKdf)(password, root.kdf); + return DirectSecp256k1HdWallet.deserializeWithEncryptionKey(serialization, encryptionKey); + } + constructor(mnemonic, options) { + const prefix = options.prefix ?? defaultOptions.prefix; + const hdPaths = options.hdPaths ?? defaultOptions.hdPaths; + this.secret = mnemonic; + this.seed = options.seed; + this.accounts = hdPaths.map((hdPath) => ({ + hdPath: hdPath, + prefix: prefix, + })); + } + get mnemonic() { + return this.secret.toString(); + } + async getAccounts() { + const accountsWithPrivkeys = await this.getAccountsWithPrivkeys(); + return accountsWithPrivkeys.map(({ algo, pubkey, address }) => ({ + algo: algo, + pubkey: pubkey, + address: address, + })); + } + async signDirect(signerAddress, signDoc) { + const accounts = await this.getAccountsWithPrivkeys(); + const account = accounts.find(({ address }) => address === signerAddress); + if (account === undefined) { + throw new Error(`Address ${signerAddress} not found in wallet`); + } + const { privkey, pubkey } = account; + const signBytes = (0, signing_1.makeSignBytes)(signDoc); + const hashedMessage = (0, crypto_1.sha256)(signBytes); + const signature = await crypto_1.Secp256k1.createSignature(hashedMessage, privkey); + const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]); + const stdSignature = (0, amino_1.encodeSecp256k1Signature)(pubkey, signatureBytes); + return { + signed: signDoc, + signature: stdSignature, + }; + } + /** + * Generates an encrypted serialization of this wallet. + * + * @param password The user provided password used to generate an encryption key via a KDF. + * This is not normalized internally (see "Unicode normalization" to learn more). + */ + async serialize(password) { + const kdfConfiguration = basicPasswordHashingOptions; + const encryptionKey = await (0, wallet_1.executeKdf)(password, kdfConfiguration); + return this.serializeWithEncryptionKey(encryptionKey, kdfConfiguration); + } + /** + * Generates an encrypted serialization of this wallet. + * + * This is an advanced alternative to calling `serialize(password)` directly, which allows you to + * offload the KDF execution to a non-UI thread (e.g. in a WebWorker). + * + * The caller is responsible for ensuring the key was derived with the given KDF options. If this + * is not the case, the wallet cannot be restored with the original password. + */ + async serializeWithEncryptionKey(encryptionKey, kdfConfiguration) { + const dataToEncrypt = { + mnemonic: this.mnemonic, + accounts: this.accounts.map(({ hdPath, prefix }) => ({ + hdPath: (0, crypto_1.pathToString)(hdPath), + prefix: prefix, + })), + }; + const dataToEncryptRaw = (0, encoding_1.toUtf8)(JSON.stringify(dataToEncrypt)); + const encryptionConfiguration = { + algorithm: wallet_1.supportedAlgorithms.xchacha20poly1305Ietf, + }; + const encryptedData = await (0, wallet_1.encrypt)(dataToEncryptRaw, encryptionKey, encryptionConfiguration); + const out = { + type: serializationTypeV1, + kdf: kdfConfiguration, + encryption: encryptionConfiguration, + data: (0, encoding_1.toBase64)(encryptedData), + }; + return JSON.stringify(out); + } + async getKeyPair(hdPath) { + const { privkey } = crypto_1.Slip10.derivePath(crypto_1.Slip10Curve.Secp256k1, this.seed, hdPath); + const { pubkey } = await crypto_1.Secp256k1.makeKeypair(privkey); + return { + privkey: privkey, + pubkey: crypto_1.Secp256k1.compressPubkey(pubkey), + }; + } + async getAccountsWithPrivkeys() { + return Promise.all(this.accounts.map(async ({ hdPath, prefix }) => { + const { privkey, pubkey } = await this.getKeyPair(hdPath); + const address = (0, encoding_1.toBech32)(prefix, (0, amino_1.rawSecp256k1PubkeyToRawAddress)(pubkey)); + return { + algo: "secp256k1", + privkey: privkey, + pubkey: pubkey, + address: address, + }; + })); } - return base64js.toByteArray(base64String); } -exports.fromBase64 = fromBase64; -//# sourceMappingURL=base64.js.map +exports.DirectSecp256k1HdWallet = DirectSecp256k1HdWallet; +//# sourceMappingURL=directsecp256k1hdwallet.js.map /***/ }), -/***/ "./node_modules/@cosmjs/encoding/build/bech32.js": -/*!*******************************************************!*\ - !*** ./node_modules/@cosmjs/encoding/build/bech32.js ***! - \*******************************************************/ +/***/ "./node_modules/@cosmjs/proto-signing/build/directsecp256k1wallet.js": +/*!***************************************************************************!*\ + !*** ./node_modules/@cosmjs/proto-signing/build/directsecp256k1wallet.js ***! + \***************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.normalizeBech32 = exports.fromBech32 = exports.toBech32 = void 0; -const bech32 = __importStar(__webpack_require__(/*! bech32 */ "./node_modules/bech32/index.js")); -function toBech32(prefix, data, limit) { - const address = bech32.encode(prefix, bech32.toWords(data), limit); - return address; -} -exports.toBech32 = toBech32; -function fromBech32(address, limit = Infinity) { - const decodedAddress = bech32.decode(address, limit); - return { - prefix: decodedAddress.prefix, - data: new Uint8Array(bech32.fromWords(decodedAddress.words)), - }; -} -exports.fromBech32 = fromBech32; +exports.DirectSecp256k1Wallet = void 0; +const amino_1 = __webpack_require__(/*! @cosmjs/amino */ "./node_modules/@cosmjs/amino/build/index.js"); +const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/crypto/build/index.js"); +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +const signing_1 = __webpack_require__(/*! ./signing */ "./node_modules/@cosmjs/proto-signing/build/signing.js"); /** - * Takes a bech32 address and returns a normalized (i.e. lower case) representation of it. + * A wallet that holds a single secp256k1 keypair. * - * The input is validated along the way, which makes this significantly safer than - * using `address.toLowerCase()`. + * If you want to work with BIP39 mnemonics and multiple accounts, use DirectSecp256k1HdWallet. */ -function normalizeBech32(address) { - const { prefix, data } = fromBech32(address); - return toBech32(prefix, data); -} -exports.normalizeBech32 = normalizeBech32; -//# sourceMappingURL=bech32.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/encoding/build/hex.js": -/*!****************************************************!*\ - !*** ./node_modules/@cosmjs/encoding/build/hex.js ***! - \****************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromHex = exports.toHex = void 0; -function toHex(data) { - let out = ""; - for (const byte of data) { - out += ("0" + byte.toString(16)).slice(-2); +class DirectSecp256k1Wallet { + /** + * Creates a DirectSecp256k1Wallet from the given private key + * + * @param privkey The private key. + * @param prefix The bech32 address prefix (human readable part). Defaults to "cosmos". + */ + static async fromKey(privkey, prefix = "cosmos") { + const uncompressed = (await crypto_1.Secp256k1.makeKeypair(privkey)).pubkey; + return new DirectSecp256k1Wallet(privkey, crypto_1.Secp256k1.compressPubkey(uncompressed), prefix); } - return out; -} -exports.toHex = toHex; -function fromHex(hexstring) { - if (hexstring.length % 2 !== 0) { - throw new Error("hex string length must be a multiple of 2"); + constructor(privkey, pubkey, prefix) { + this.privkey = privkey; + this.pubkey = pubkey; + this.prefix = prefix; } - const out = new Uint8Array(hexstring.length / 2); - for (let i = 0; i < out.length; i++) { - const j = 2 * i; - const hexByteAsString = hexstring.slice(j, j + 2); - if (!hexByteAsString.match(/[0-9a-f]{2}/i)) { - throw new Error("hex string contains invalid characters"); + get address() { + return (0, encoding_1.toBech32)(this.prefix, (0, amino_1.rawSecp256k1PubkeyToRawAddress)(this.pubkey)); + } + async getAccounts() { + return [ + { + algo: "secp256k1", + address: this.address, + pubkey: this.pubkey, + }, + ]; + } + async signDirect(address, signDoc) { + const signBytes = (0, signing_1.makeSignBytes)(signDoc); + if (address !== this.address) { + throw new Error(`Address ${address} not found in wallet`); } - out[i] = parseInt(hexByteAsString, 16); + const hashedMessage = (0, crypto_1.sha256)(signBytes); + const signature = await crypto_1.Secp256k1.createSignature(hashedMessage, this.privkey); + const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]); + const stdSignature = (0, amino_1.encodeSecp256k1Signature)(this.pubkey, signatureBytes); + return { + signed: signDoc, + signature: stdSignature, + }; } - return out; } -exports.fromHex = fromHex; -//# sourceMappingURL=hex.js.map +exports.DirectSecp256k1Wallet = DirectSecp256k1Wallet; +//# sourceMappingURL=directsecp256k1wallet.js.map /***/ }), -/***/ "./node_modules/@cosmjs/encoding/build/index.js": -/*!******************************************************!*\ - !*** ./node_modules/@cosmjs/encoding/build/index.js ***! - \******************************************************/ +/***/ "./node_modules/@cosmjs/proto-signing/build/index.js": +/*!***********************************************************!*\ + !*** ./node_modules/@cosmjs/proto-signing/build/index.js ***! + \***********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toUtf8 = exports.fromUtf8 = exports.toRfc3339 = exports.fromRfc3339 = exports.toHex = exports.fromHex = exports.toBech32 = exports.normalizeBech32 = exports.fromBech32 = exports.toBase64 = exports.fromBase64 = exports.toAscii = exports.fromAscii = void 0; -var ascii_1 = __webpack_require__(/*! ./ascii */ "./node_modules/@cosmjs/encoding/build/ascii.js"); -Object.defineProperty(exports, "fromAscii", ({ enumerable: true, get: function () { return ascii_1.fromAscii; } })); -Object.defineProperty(exports, "toAscii", ({ enumerable: true, get: function () { return ascii_1.toAscii; } })); -var base64_1 = __webpack_require__(/*! ./base64 */ "./node_modules/@cosmjs/encoding/build/base64.js"); -Object.defineProperty(exports, "fromBase64", ({ enumerable: true, get: function () { return base64_1.fromBase64; } })); -Object.defineProperty(exports, "toBase64", ({ enumerable: true, get: function () { return base64_1.toBase64; } })); -var bech32_1 = __webpack_require__(/*! ./bech32 */ "./node_modules/@cosmjs/encoding/build/bech32.js"); -Object.defineProperty(exports, "fromBech32", ({ enumerable: true, get: function () { return bech32_1.fromBech32; } })); -Object.defineProperty(exports, "normalizeBech32", ({ enumerable: true, get: function () { return bech32_1.normalizeBech32; } })); -Object.defineProperty(exports, "toBech32", ({ enumerable: true, get: function () { return bech32_1.toBech32; } })); -var hex_1 = __webpack_require__(/*! ./hex */ "./node_modules/@cosmjs/encoding/build/hex.js"); -Object.defineProperty(exports, "fromHex", ({ enumerable: true, get: function () { return hex_1.fromHex; } })); -Object.defineProperty(exports, "toHex", ({ enumerable: true, get: function () { return hex_1.toHex; } })); -var rfc3339_1 = __webpack_require__(/*! ./rfc3339 */ "./node_modules/@cosmjs/encoding/build/rfc3339.js"); -Object.defineProperty(exports, "fromRfc3339", ({ enumerable: true, get: function () { return rfc3339_1.fromRfc3339; } })); -Object.defineProperty(exports, "toRfc3339", ({ enumerable: true, get: function () { return rfc3339_1.toRfc3339; } })); -var utf8_1 = __webpack_require__(/*! ./utf8 */ "./node_modules/@cosmjs/encoding/build/utf8.js"); -Object.defineProperty(exports, "fromUtf8", ({ enumerable: true, get: function () { return utf8_1.fromUtf8; } })); -Object.defineProperty(exports, "toUtf8", ({ enumerable: true, get: function () { return utf8_1.toUtf8; } })); +exports.coins = exports.coin = exports.executeKdf = exports.makeSignDoc = exports.makeSignBytes = exports.makeAuthInfoBytes = exports.isOfflineDirectSigner = exports.Registry = exports.isTxBodyEncodeObject = exports.isTsProtoGeneratedType = exports.isPbjsGeneratedType = exports.encodePubkey = exports.decodePubkey = exports.decodeOptionalPubkey = exports.anyToSinglePubkey = exports.makeCosmoshubPath = exports.DirectSecp256k1Wallet = exports.extractKdfConfiguration = exports.DirectSecp256k1HdWallet = exports.decodeTxRaw = exports.parseCoins = void 0; +// This type happens to be shared between Amino and Direct sign modes +var coins_1 = __webpack_require__(/*! ./coins */ "./node_modules/@cosmjs/proto-signing/build/coins.js"); +Object.defineProperty(exports, "parseCoins", ({ enumerable: true, get: function () { return coins_1.parseCoins; } })); +var decode_1 = __webpack_require__(/*! ./decode */ "./node_modules/@cosmjs/proto-signing/build/decode.js"); +Object.defineProperty(exports, "decodeTxRaw", ({ enumerable: true, get: function () { return decode_1.decodeTxRaw; } })); +var directsecp256k1hdwallet_1 = __webpack_require__(/*! ./directsecp256k1hdwallet */ "./node_modules/@cosmjs/proto-signing/build/directsecp256k1hdwallet.js"); +Object.defineProperty(exports, "DirectSecp256k1HdWallet", ({ enumerable: true, get: function () { return directsecp256k1hdwallet_1.DirectSecp256k1HdWallet; } })); +Object.defineProperty(exports, "extractKdfConfiguration", ({ enumerable: true, get: function () { return directsecp256k1hdwallet_1.extractKdfConfiguration; } })); +var directsecp256k1wallet_1 = __webpack_require__(/*! ./directsecp256k1wallet */ "./node_modules/@cosmjs/proto-signing/build/directsecp256k1wallet.js"); +Object.defineProperty(exports, "DirectSecp256k1Wallet", ({ enumerable: true, get: function () { return directsecp256k1wallet_1.DirectSecp256k1Wallet; } })); +var paths_1 = __webpack_require__(/*! ./paths */ "./node_modules/@cosmjs/proto-signing/build/paths.js"); +Object.defineProperty(exports, "makeCosmoshubPath", ({ enumerable: true, get: function () { return paths_1.makeCosmoshubPath; } })); +var pubkey_1 = __webpack_require__(/*! ./pubkey */ "./node_modules/@cosmjs/proto-signing/build/pubkey.js"); +Object.defineProperty(exports, "anyToSinglePubkey", ({ enumerable: true, get: function () { return pubkey_1.anyToSinglePubkey; } })); +Object.defineProperty(exports, "decodeOptionalPubkey", ({ enumerable: true, get: function () { return pubkey_1.decodeOptionalPubkey; } })); +Object.defineProperty(exports, "decodePubkey", ({ enumerable: true, get: function () { return pubkey_1.decodePubkey; } })); +Object.defineProperty(exports, "encodePubkey", ({ enumerable: true, get: function () { return pubkey_1.encodePubkey; } })); +var registry_1 = __webpack_require__(/*! ./registry */ "./node_modules/@cosmjs/proto-signing/build/registry.js"); +Object.defineProperty(exports, "isPbjsGeneratedType", ({ enumerable: true, get: function () { return registry_1.isPbjsGeneratedType; } })); +Object.defineProperty(exports, "isTsProtoGeneratedType", ({ enumerable: true, get: function () { return registry_1.isTsProtoGeneratedType; } })); +Object.defineProperty(exports, "isTxBodyEncodeObject", ({ enumerable: true, get: function () { return registry_1.isTxBodyEncodeObject; } })); +Object.defineProperty(exports, "Registry", ({ enumerable: true, get: function () { return registry_1.Registry; } })); +var signer_1 = __webpack_require__(/*! ./signer */ "./node_modules/@cosmjs/proto-signing/build/signer.js"); +Object.defineProperty(exports, "isOfflineDirectSigner", ({ enumerable: true, get: function () { return signer_1.isOfflineDirectSigner; } })); +var signing_1 = __webpack_require__(/*! ./signing */ "./node_modules/@cosmjs/proto-signing/build/signing.js"); +Object.defineProperty(exports, "makeAuthInfoBytes", ({ enumerable: true, get: function () { return signing_1.makeAuthInfoBytes; } })); +Object.defineProperty(exports, "makeSignBytes", ({ enumerable: true, get: function () { return signing_1.makeSignBytes; } })); +Object.defineProperty(exports, "makeSignDoc", ({ enumerable: true, get: function () { return signing_1.makeSignDoc; } })); +var wallet_1 = __webpack_require__(/*! ./wallet */ "./node_modules/@cosmjs/proto-signing/build/wallet.js"); +Object.defineProperty(exports, "executeKdf", ({ enumerable: true, get: function () { return wallet_1.executeKdf; } })); +var amino_1 = __webpack_require__(/*! @cosmjs/amino */ "./node_modules/@cosmjs/amino/build/index.js"); +Object.defineProperty(exports, "coin", ({ enumerable: true, get: function () { return amino_1.coin; } })); +Object.defineProperty(exports, "coins", ({ enumerable: true, get: function () { return amino_1.coins; } })); //# sourceMappingURL=index.js.map /***/ }), -/***/ "./node_modules/@cosmjs/encoding/build/rfc3339.js": -/*!********************************************************!*\ - !*** ./node_modules/@cosmjs/encoding/build/rfc3339.js ***! - \********************************************************/ -/***/ (function(__unused_webpack_module, exports) { +/***/ "./node_modules/@cosmjs/proto-signing/build/paths.js": +/*!***********************************************************!*\ + !*** ./node_modules/@cosmjs/proto-signing/build/paths.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toRfc3339 = exports.fromRfc3339 = void 0; -const rfc3339Matcher = /^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2}):(\d{2})(\.\d{1,9})?((?:[+-]\d{2}:\d{2})|Z)$/; -function padded(integer, length = 2) { - return integer.toString().padStart(length, "0"); -} -function fromRfc3339(str) { - const matches = rfc3339Matcher.exec(str); - if (!matches) { - throw new Error("Date string is not in RFC3339 format"); - } - const year = +matches[1]; - const month = +matches[2]; - const day = +matches[3]; - const hour = +matches[4]; - const minute = +matches[5]; - const second = +matches[6]; - // fractional seconds match either undefined or a string like ".1", ".123456789" - const milliSeconds = matches[7] ? Math.floor(+matches[7] * 1000) : 0; - let tzOffsetSign; - let tzOffsetHours; - let tzOffsetMinutes; - // if timezone is undefined, it must be Z or nothing (otherwise the group would have captured). - if (matches[8] === "Z") { - tzOffsetSign = 1; - tzOffsetHours = 0; - tzOffsetMinutes = 0; - } - else { - tzOffsetSign = matches[8].substring(0, 1) === "-" ? -1 : 1; - tzOffsetHours = +matches[8].substring(1, 3); - tzOffsetMinutes = +matches[8].substring(4, 6); - } - const tzOffset = tzOffsetSign * (tzOffsetHours * 60 + tzOffsetMinutes) * 60; // seconds - const timestamp = Date.UTC(year, month - 1, day, hour, minute, second, milliSeconds) - tzOffset * 1000; - return new Date(timestamp); -} -exports.fromRfc3339 = fromRfc3339; -function toRfc3339(date) { - const year = date.getUTCFullYear(); - const month = padded(date.getUTCMonth() + 1); - const day = padded(date.getUTCDate()); - const hour = padded(date.getUTCHours()); - const minute = padded(date.getUTCMinutes()); - const second = padded(date.getUTCSeconds()); - const ms = padded(date.getUTCMilliseconds(), 3); - return `${year}-${month}-${day}T${hour}:${minute}:${second}.${ms}Z`; +exports.makeCosmoshubPath = void 0; +const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/crypto/build/index.js"); +/** + * The Cosmos Hub derivation path in the form `m/44'/118'/0'/0/a` + * with 0-based account index `a`. + */ +function makeCosmoshubPath(a) { + return [ + crypto_1.Slip10RawIndex.hardened(44), + crypto_1.Slip10RawIndex.hardened(118), + crypto_1.Slip10RawIndex.hardened(0), + crypto_1.Slip10RawIndex.normal(0), + crypto_1.Slip10RawIndex.normal(a), + ]; } -exports.toRfc3339 = toRfc3339; -//# sourceMappingURL=rfc3339.js.map +exports.makeCosmoshubPath = makeCosmoshubPath; +//# sourceMappingURL=paths.js.map /***/ }), -/***/ "./node_modules/@cosmjs/encoding/build/utf8.js": -/*!*****************************************************!*\ - !*** ./node_modules/@cosmjs/encoding/build/utf8.js ***! - \*****************************************************/ -/***/ (function(__unused_webpack_module, exports) { +/***/ "./node_modules/@cosmjs/proto-signing/build/pubkey.js": +/*!************************************************************!*\ + !*** ./node_modules/@cosmjs/proto-signing/build/pubkey.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromUtf8 = exports.toUtf8 = void 0; -function toUtf8(str) { - return new TextEncoder().encode(str); -} -exports.toUtf8 = toUtf8; +exports.decodeOptionalPubkey = exports.decodePubkey = exports.anyToSinglePubkey = exports.encodePubkey = void 0; +/* eslint-disable @typescript-eslint/naming-convention */ +const amino_1 = __webpack_require__(/*! @cosmjs/amino */ "./node_modules/@cosmjs/amino/build/index.js"); +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/math/build/index.js"); +const keys_1 = __webpack_require__(/*! cosmjs-types/cosmos/crypto/ed25519/keys */ "./node_modules/cosmjs-types/cosmos/crypto/ed25519/keys.js"); +const keys_2 = __webpack_require__(/*! cosmjs-types/cosmos/crypto/multisig/keys */ "./node_modules/cosmjs-types/cosmos/crypto/multisig/keys.js"); +const keys_3 = __webpack_require__(/*! cosmjs-types/cosmos/crypto/secp256k1/keys */ "./node_modules/cosmjs-types/cosmos/crypto/secp256k1/keys.js"); +const any_1 = __webpack_require__(/*! cosmjs-types/google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); /** - * Takes UTF-8 data and decodes it to a string. + * Takes a pubkey in the Amino JSON object style (type/value wrapper) + * and convertes it into a protobuf `Any`. * - * In lossy mode, the replacement character � is used to substitude invalid - * encodings. By default lossy mode is off and invalid data will lead to exceptions. + * This is the reverse operation to `decodePubkey`. */ -function fromUtf8(data, lossy = false) { - const fatal = !lossy; - return new TextDecoder("utf-8", { fatal }).decode(data); -} -exports.fromUtf8 = fromUtf8; -//# sourceMappingURL=utf8.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/json-rpc/build/compatibility.js": -/*!**************************************************************!*\ - !*** ./node_modules/@cosmjs/json-rpc/build/compatibility.js ***! - \**************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isJsonCompatibleDictionary = exports.isJsonCompatibleArray = exports.isJsonCompatibleValue = void 0; -function isJsonCompatibleValue(value) { - if (typeof value === "string" || - typeof value === "number" || - typeof value === "boolean" || - value === null || - // eslint-disable-next-line @typescript-eslint/no-use-before-define - isJsonCompatibleArray(value) || - // eslint-disable-next-line @typescript-eslint/no-use-before-define - isJsonCompatibleDictionary(value)) { - return true; +function encodePubkey(pubkey) { + if ((0, amino_1.isSecp256k1Pubkey)(pubkey)) { + const pubkeyProto = keys_3.PubKey.fromPartial({ + key: (0, encoding_1.fromBase64)(pubkey.value), + }); + return any_1.Any.fromPartial({ + typeUrl: "/cosmos.crypto.secp256k1.PubKey", + value: Uint8Array.from(keys_3.PubKey.encode(pubkeyProto).finish()), + }); + } + else if ((0, amino_1.isEd25519Pubkey)(pubkey)) { + const pubkeyProto = keys_1.PubKey.fromPartial({ + key: (0, encoding_1.fromBase64)(pubkey.value), + }); + return any_1.Any.fromPartial({ + typeUrl: "/cosmos.crypto.ed25519.PubKey", + value: Uint8Array.from(keys_1.PubKey.encode(pubkeyProto).finish()), + }); + } + else if ((0, amino_1.isMultisigThresholdPubkey)(pubkey)) { + const pubkeyProto = keys_2.LegacyAminoPubKey.fromPartial({ + threshold: math_1.Uint53.fromString(pubkey.value.threshold).toNumber(), + publicKeys: pubkey.value.pubkeys.map(encodePubkey), + }); + return any_1.Any.fromPartial({ + typeUrl: "/cosmos.crypto.multisig.LegacyAminoPubKey", + value: Uint8Array.from(keys_2.LegacyAminoPubKey.encode(pubkeyProto).finish()), + }); } else { - return false; + throw new Error(`Pubkey type ${pubkey.type} not recognized`); } } -exports.isJsonCompatibleValue = isJsonCompatibleValue; -function isJsonCompatibleArray(value) { - if (!Array.isArray(value)) { - return false; +exports.encodePubkey = encodePubkey; +/** + * Decodes a single pubkey (i.e. not a multisig pubkey) from `Any` into + * `SinglePubkey`. + * + * In most cases you probably want to use `decodePubkey`. + */ +function anyToSinglePubkey(pubkey) { + switch (pubkey.typeUrl) { + case "/cosmos.crypto.secp256k1.PubKey": { + const { key } = keys_3.PubKey.decode(pubkey.value); + return (0, amino_1.encodeSecp256k1Pubkey)(key); + } + case "/cosmos.crypto.ed25519.PubKey": { + const { key } = keys_1.PubKey.decode(pubkey.value); + return (0, amino_1.encodeEd25519Pubkey)(key); + } + default: + throw new Error(`Pubkey type_url ${pubkey.typeUrl} not recognized as single public key type`); } - for (const item of value) { - if (!isJsonCompatibleValue(item)) { - return false; +} +exports.anyToSinglePubkey = anyToSinglePubkey; +/** + * Decodes a pubkey from a protobuf `Any` into `Pubkey`. + * This supports single pubkeys such as Cosmos ed25519 and secp256k1 keys + * as well as multisig threshold pubkeys. + */ +function decodePubkey(pubkey) { + switch (pubkey.typeUrl) { + case "/cosmos.crypto.secp256k1.PubKey": + case "/cosmos.crypto.ed25519.PubKey": { + return anyToSinglePubkey(pubkey); + } + case "/cosmos.crypto.multisig.LegacyAminoPubKey": { + const { threshold, publicKeys } = keys_2.LegacyAminoPubKey.decode(pubkey.value); + const out = { + type: "tendermint/PubKeyMultisigThreshold", + value: { + threshold: threshold.toString(), + pubkeys: publicKeys.map(anyToSinglePubkey), + }, + }; + return out; } + default: + throw new Error(`Pubkey type URL '${pubkey.typeUrl}' not recognized`); } - // all items okay - return true; } -exports.isJsonCompatibleArray = isJsonCompatibleArray; -function isJsonCompatibleDictionary(data) { - if (typeof data !== "object" || data === null) { - // data must be a non-null object - return false; +exports.decodePubkey = decodePubkey; +/** + * Decodes an optional pubkey from a protobuf `Any` into `Pubkey | null`. + * This supports single pubkeys such as Cosmos ed25519 and secp256k1 keys + * as well as multisig threshold pubkeys. + */ +function decodeOptionalPubkey(pubkey) { + if (!pubkey) + return null; + if (pubkey.typeUrl) { + if (pubkey.value.length) { + // both set + return decodePubkey(pubkey); + } + else { + throw new Error(`Pubkey is an Any with type URL '${pubkey.typeUrl}' but an empty value`); + } } - // Exclude special kind of objects like Array, Date or Uint8Array - // Object.prototype.toString() returns a specified value: - // http://www.ecma-international.org/ecma-262/7.0/index.html#sec-object.prototype.tostring - if (Object.prototype.toString.call(data) !== "[object Object]") { - return false; + else { + if (pubkey.value.length) { + throw new Error(`Pubkey is an Any with an empty type URL but a value set`); + } + else { + // both unset, assuming this empty instance means null + return null; + } } - return Object.values(data).every(isJsonCompatibleValue); } -exports.isJsonCompatibleDictionary = isJsonCompatibleDictionary; -//# sourceMappingURL=compatibility.js.map +exports.decodeOptionalPubkey = decodeOptionalPubkey; +//# sourceMappingURL=pubkey.js.map /***/ }), -/***/ "./node_modules/@cosmjs/json-rpc/build/id.js": -/*!***************************************************!*\ - !*** ./node_modules/@cosmjs/json-rpc/build/id.js ***! - \***************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.makeJsonRpcId = void 0; -// Start with 10001 to avoid possible collisions with all hand-selected values like e.g. 1,2,3,42,100 -let counter = 10000; -/** - * Creates a new ID to be used for creating a JSON-RPC request. - * - * Multiple calls of this produce unique values. - * - * The output may be any value compatible to JSON-RPC request IDs with an undefined output format and generation logic. - */ -function makeJsonRpcId() { - return (counter += 1); -} -exports.makeJsonRpcId = makeJsonRpcId; -//# sourceMappingURL=id.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/json-rpc/build/index.js": -/*!******************************************************!*\ - !*** ./node_modules/@cosmjs/json-rpc/build/index.js ***! - \******************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.jsonRpcCode = exports.isJsonRpcSuccessResponse = exports.isJsonRpcErrorResponse = exports.parseJsonRpcSuccessResponse = exports.parseJsonRpcResponse = exports.parseJsonRpcRequest = exports.parseJsonRpcId = exports.parseJsonRpcErrorResponse = exports.JsonRpcClient = exports.makeJsonRpcId = void 0; -var id_1 = __webpack_require__(/*! ./id */ "./node_modules/@cosmjs/json-rpc/build/id.js"); -Object.defineProperty(exports, "makeJsonRpcId", ({ enumerable: true, get: function () { return id_1.makeJsonRpcId; } })); -var jsonrpcclient_1 = __webpack_require__(/*! ./jsonrpcclient */ "./node_modules/@cosmjs/json-rpc/build/jsonrpcclient.js"); -Object.defineProperty(exports, "JsonRpcClient", ({ enumerable: true, get: function () { return jsonrpcclient_1.JsonRpcClient; } })); -var parse_1 = __webpack_require__(/*! ./parse */ "./node_modules/@cosmjs/json-rpc/build/parse.js"); -Object.defineProperty(exports, "parseJsonRpcErrorResponse", ({ enumerable: true, get: function () { return parse_1.parseJsonRpcErrorResponse; } })); -Object.defineProperty(exports, "parseJsonRpcId", ({ enumerable: true, get: function () { return parse_1.parseJsonRpcId; } })); -Object.defineProperty(exports, "parseJsonRpcRequest", ({ enumerable: true, get: function () { return parse_1.parseJsonRpcRequest; } })); -Object.defineProperty(exports, "parseJsonRpcResponse", ({ enumerable: true, get: function () { return parse_1.parseJsonRpcResponse; } })); -Object.defineProperty(exports, "parseJsonRpcSuccessResponse", ({ enumerable: true, get: function () { return parse_1.parseJsonRpcSuccessResponse; } })); -var types_1 = __webpack_require__(/*! ./types */ "./node_modules/@cosmjs/json-rpc/build/types.js"); -Object.defineProperty(exports, "isJsonRpcErrorResponse", ({ enumerable: true, get: function () { return types_1.isJsonRpcErrorResponse; } })); -Object.defineProperty(exports, "isJsonRpcSuccessResponse", ({ enumerable: true, get: function () { return types_1.isJsonRpcSuccessResponse; } })); -Object.defineProperty(exports, "jsonRpcCode", ({ enumerable: true, get: function () { return types_1.jsonRpcCode; } })); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/json-rpc/build/jsonrpcclient.js": +/***/ "./node_modules/@cosmjs/proto-signing/build/registry.js": /*!**************************************************************!*\ - !*** ./node_modules/@cosmjs/json-rpc/build/jsonrpcclient.js ***! + !*** ./node_modules/@cosmjs/proto-signing/build/registry.js ***! \**************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; +/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.JsonRpcClient = void 0; -const stream_1 = __webpack_require__(/*! @cosmjs/stream */ "./node_modules/@cosmjs/json-rpc/node_modules/@cosmjs/stream/build/index.js"); -const types_1 = __webpack_require__(/*! ./types */ "./node_modules/@cosmjs/json-rpc/build/types.js"); -/** - * A thin wrapper that is used to bring together requests and responses by ID. - * - * Using this class is only advised for continous communication channels like - * WebSockets or WebWorker messaging. - */ -class JsonRpcClient { - constructor(connection) { - this.connection = connection; - } - async run(request) { - const filteredStream = this.connection.responseStream.filter((r) => r.id === request.id); - const pendingResponses = (0, stream_1.firstEvent)(filteredStream); - this.connection.sendRequest(request); - const response = await pendingResponses; - if ((0, types_1.isJsonRpcErrorResponse)(response)) { - const error = response.error; - throw new Error(`JSON RPC error: code=${error.code}; message='${error.message}'`); - } - return response; - } +exports.Registry = exports.isTxBodyEncodeObject = exports.isPbjsGeneratedType = exports.isTsProtoGeneratedType = exports.isTelescopeGeneratedType = void 0; +const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/bank/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/bank/v1beta1/tx.js"); +const coin_1 = __webpack_require__(/*! cosmjs-types/cosmos/base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); +const tx_2 = __webpack_require__(/*! cosmjs-types/cosmos/tx/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/tx/v1beta1/tx.js"); +const any_1 = __webpack_require__(/*! cosmjs-types/google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); +function isTelescopeGeneratedType(type) { + const casted = type; + return typeof casted.fromPartial === "function" && typeof casted.typeUrl == "string"; } -exports.JsonRpcClient = JsonRpcClient; -//# sourceMappingURL=jsonrpcclient.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/json-rpc/build/parse.js": -/*!******************************************************!*\ - !*** ./node_modules/@cosmjs/json-rpc/build/parse.js ***! - \******************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.parseJsonRpcResponse = exports.parseJsonRpcSuccessResponse = exports.parseJsonRpcErrorResponse = exports.parseJsonRpcRequest = exports.parseJsonRpcId = void 0; -const compatibility_1 = __webpack_require__(/*! ./compatibility */ "./node_modules/@cosmjs/json-rpc/build/compatibility.js"); -/** - * Extracts ID field from request or response object. - * - * Returns `null` when no valid ID was found. - */ -function parseJsonRpcId(data) { - if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) { - throw new Error("Data must be JSON compatible dictionary"); - } - const id = data.id; - if (typeof id !== "number" && typeof id !== "string") { - return null; - } - return id; +exports.isTelescopeGeneratedType = isTelescopeGeneratedType; +function isTsProtoGeneratedType(type) { + return typeof type.fromPartial === "function"; } -exports.parseJsonRpcId = parseJsonRpcId; -function parseJsonRpcRequest(data) { - if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) { - throw new Error("Data must be JSON compatible dictionary"); - } - if (data.jsonrpc !== "2.0") { - throw new Error(`Got unexpected jsonrpc version: ${data.jsonrpc}`); - } - const id = parseJsonRpcId(data); - if (id === null) { - throw new Error("Invalid id field"); - } - const method = data.method; - if (typeof method !== "string") { - throw new Error("Invalid method field"); - } - if (!(0, compatibility_1.isJsonCompatibleArray)(data.params) && !(0, compatibility_1.isJsonCompatibleDictionary)(data.params)) { - throw new Error("Invalid params field"); - } - return { - jsonrpc: "2.0", - id: id, - method: method, - params: data.params, - }; +exports.isTsProtoGeneratedType = isTsProtoGeneratedType; +function isPbjsGeneratedType(type) { + return !isTsProtoGeneratedType(type); } -exports.parseJsonRpcRequest = parseJsonRpcRequest; -function parseError(error) { - if (typeof error.code !== "number") { - throw new Error("Error property 'code' is not a number"); - } - if (typeof error.message !== "string") { - throw new Error("Error property 'message' is not a string"); - } - let maybeUndefinedData; - if (error.data === undefined) { - maybeUndefinedData = undefined; - } - else if ((0, compatibility_1.isJsonCompatibleValue)(error.data)) { - maybeUndefinedData = error.data; - } - else { - throw new Error("Error property 'data' is defined but not a JSON compatible value."); - } - return { - code: error.code, - message: error.message, - ...(maybeUndefinedData !== undefined ? { data: maybeUndefinedData } : {}), - }; +exports.isPbjsGeneratedType = isPbjsGeneratedType; +const defaultTypeUrls = { + cosmosCoin: "/cosmos.base.v1beta1.Coin", + cosmosMsgSend: "/cosmos.bank.v1beta1.MsgSend", + cosmosTxBody: "/cosmos.tx.v1beta1.TxBody", + googleAny: "/google.protobuf.Any", +}; +function isTxBodyEncodeObject(encodeObject) { + return encodeObject.typeUrl === "/cosmos.tx.v1beta1.TxBody"; } -/** Throws if data is not a JsonRpcErrorResponse */ -function parseJsonRpcErrorResponse(data) { - if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) { - throw new Error("Data must be JSON compatible dictionary"); - } - if (data.jsonrpc !== "2.0") { - throw new Error(`Got unexpected jsonrpc version: ${JSON.stringify(data)}`); +exports.isTxBodyEncodeObject = isTxBodyEncodeObject; +class Registry { + /** + * Creates a new Registry for mapping protobuf type identifiers/type URLs to + * actual implementations. Those implementations are typically generated with ts-proto + * but we also support protobuf.js as a type generator. + * + * If there is no parameter given, a `new Registry()` adds the types `Coin` and `MsgSend` + * for historic reasons. Those can be overriden by customTypes. + * + * There are currently two methods for adding new types: + * 1. Passing types to the constructor. + * 2. Using the `register()` method + */ + constructor(customTypes) { + const { cosmosCoin, cosmosMsgSend } = defaultTypeUrls; + this.types = customTypes + ? new Map([...customTypes]) + : new Map([ + [cosmosCoin, coin_1.Coin], + [cosmosMsgSend, tx_1.MsgSend], + ]); } - const id = data.id; - if (typeof id !== "number" && typeof id !== "string" && id !== null) { - throw new Error("Invalid id field"); + register(typeUrl, type) { + this.types.set(typeUrl, type); } - if (typeof data.error === "undefined" || !(0, compatibility_1.isJsonCompatibleDictionary)(data.error)) { - throw new Error("Invalid error field"); + /** + * Looks up a type that was previously added to the registry. + * + * The generator information (ts-proto or pbjs) gets lost along the way. + * If you need to work with the result type in TypeScript, you can use: + * + * ``` + * import { assert } from "@cosmjs/utils"; + * + * const Coin = registry.lookupType("/cosmos.base.v1beta1.Coin"); + * assert(Coin); // Ensures not unset + * assert(isTsProtoGeneratedType(Coin)); // Ensures this is the type we expect + * + * // Coin is typed TsProtoGeneratedType now. + * ``` + */ + lookupType(typeUrl) { + return this.types.get(typeUrl); } - return { - jsonrpc: "2.0", - id: id, - error: parseError(data.error), - }; -} -exports.parseJsonRpcErrorResponse = parseJsonRpcErrorResponse; -/** Throws if data is not a JsonRpcSuccessResponse */ -function parseJsonRpcSuccessResponse(data) { - if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) { - throw new Error("Data must be JSON compatible dictionary"); + lookupTypeWithError(typeUrl) { + const type = this.lookupType(typeUrl); + if (!type) { + throw new Error(`Unregistered type url: ${typeUrl}`); + } + return type; } - if (data.jsonrpc !== "2.0") { - throw new Error(`Got unexpected jsonrpc version: ${JSON.stringify(data)}`); + /** + * Takes a typeUrl/value pair and encodes the value to protobuf if + * the given type was previously registered. + * + * If the value has to be wrapped in an Any, this needs to be done + * manually after this call. Or use `encodeAsAny` instead. + */ + encode(encodeObject) { + const { value, typeUrl } = encodeObject; + if (isTxBodyEncodeObject(encodeObject)) { + return this.encodeTxBody(value); + } + const type = this.lookupTypeWithError(typeUrl); + const instance = isTelescopeGeneratedType(type) || isTsProtoGeneratedType(type) + ? type.fromPartial(value) + : type.create(value); + return type.encode(instance).finish(); } - const id = data.id; - if (typeof id !== "number" && typeof id !== "string") { - throw new Error("Invalid id field"); + /** + * Takes a typeUrl/value pair and encodes the value to an Any if + * the given type was previously registered. + */ + encodeAsAny(encodeObject) { + const binaryValue = this.encode(encodeObject); + return any_1.Any.fromPartial({ + typeUrl: encodeObject.typeUrl, + value: binaryValue, + }); } - if (typeof data.result === "undefined") { - throw new Error("Invalid result field"); + encodeTxBody(txBodyFields) { + const wrappedMessages = txBodyFields.messages.map((message) => this.encodeAsAny(message)); + const txBody = tx_2.TxBody.fromPartial({ + ...txBodyFields, + timeoutHeight: BigInt(txBodyFields.timeoutHeight?.toString() ?? "0"), + messages: wrappedMessages, + }); + return tx_2.TxBody.encode(txBody).finish(); } - const result = data.result; - return { - jsonrpc: "2.0", - id: id, - result: result, - }; -} -exports.parseJsonRpcSuccessResponse = parseJsonRpcSuccessResponse; -/** - * Returns a JsonRpcErrorResponse if input can be parsed as a JSON-RPC error. Otherwise parses - * input as JsonRpcSuccessResponse. Throws if input is neither a valid error nor success response. - */ -function parseJsonRpcResponse(data) { - let response; - try { - response = parseJsonRpcErrorResponse(data); + decode({ typeUrl, value }) { + if (typeUrl === defaultTypeUrls.cosmosTxBody) { + return this.decodeTxBody(value); + } + const type = this.lookupTypeWithError(typeUrl); + const decoded = type.decode(value); + Object.entries(decoded).forEach(([key, val]) => { + if (typeof Buffer !== "undefined" && typeof Buffer.isBuffer !== "undefined" && Buffer.isBuffer(val)) { + decoded[key] = Uint8Array.from(val); + } + }); + return decoded; } - catch (_) { - response = parseJsonRpcSuccessResponse(data); + decodeTxBody(txBody) { + const decodedTxBody = tx_2.TxBody.decode(txBody); + return { + ...decodedTxBody, + messages: decodedTxBody.messages.map(({ typeUrl: typeUrl, value }) => { + if (!typeUrl) { + throw new Error("Missing type_url in Any"); + } + if (!value) { + throw new Error("Missing value in Any"); + } + return this.decode({ typeUrl, value }); + }), + }; } - return response; } -exports.parseJsonRpcResponse = parseJsonRpcResponse; -//# sourceMappingURL=parse.js.map +exports.Registry = Registry; +//# sourceMappingURL=registry.js.map /***/ }), -/***/ "./node_modules/@cosmjs/json-rpc/build/types.js": -/*!******************************************************!*\ - !*** ./node_modules/@cosmjs/json-rpc/build/types.js ***! - \******************************************************/ +/***/ "./node_modules/@cosmjs/proto-signing/build/signer.js": +/*!************************************************************!*\ + !*** ./node_modules/@cosmjs/proto-signing/build/signer.js ***! + \************************************************************/ /***/ (function(__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.jsonRpcCode = exports.isJsonRpcSuccessResponse = exports.isJsonRpcErrorResponse = void 0; -function isJsonRpcErrorResponse(response) { - return typeof response.error === "object"; -} -exports.isJsonRpcErrorResponse = isJsonRpcErrorResponse; -function isJsonRpcSuccessResponse(response) { - return !isJsonRpcErrorResponse(response); +exports.isOfflineDirectSigner = void 0; +function isOfflineDirectSigner(signer) { + return signer.signDirect !== undefined; } -exports.isJsonRpcSuccessResponse = isJsonRpcSuccessResponse; -/** - * Error codes as specified in JSON-RPC 2.0 - * - * @see https://www.jsonrpc.org/specification#error_object - */ -exports.jsonRpcCode = { - parseError: -32700, - invalidRequest: -32600, - methodNotFound: -32601, - invalidParams: -32602, - internalError: -32603, - // server error (Reserved for implementation-defined server-errors.): - // -32000 to -32099 - serverError: { - default: -32000, - }, -}; -//# sourceMappingURL=types.js.map +exports.isOfflineDirectSigner = isOfflineDirectSigner; +//# sourceMappingURL=signer.js.map /***/ }), -/***/ "./node_modules/@cosmjs/json-rpc/node_modules/@cosmjs/stream/build/concat.js": -/*!***********************************************************************************!*\ - !*** ./node_modules/@cosmjs/json-rpc/node_modules/@cosmjs/stream/build/concat.js ***! - \***********************************************************************************/ +/***/ "./node_modules/@cosmjs/proto-signing/build/signing.js": +/*!*************************************************************!*\ + !*** ./node_modules/@cosmjs/proto-signing/build/signing.js ***! + \*************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.concat = void 0; -const xstream_1 = __webpack_require__(/*! xstream */ "./node_modules/xstream/index.js"); +exports.makeSignBytes = exports.makeSignDoc = exports.makeAuthInfoBytes = void 0; +/* eslint-disable @typescript-eslint/naming-convention */ +const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/utils/build/index.js"); +const signing_1 = __webpack_require__(/*! cosmjs-types/cosmos/tx/signing/v1beta1/signing */ "./node_modules/cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"); +const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/tx/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/tx/v1beta1/tx.js"); /** - * An implementation of concat that buffers all source stream events - * - * Marble diagram: - * - * ```text - * --1--2---3---4-| - * -a--b-c--d-| - * --------X---------Y---------Z- - * concat - * --1--2---3---4-abcdXY-------Z- - * ``` - * - * This is inspired by RxJS's concat as documented at http://rxmarbles.com/#concat and behaves - * differently than xstream's concat as discussed in https://github.com/staltz/xstream/issues/170. + * Create signer infos from the provided signers. * + * This implementation does not support different signing modes for the different signers. */ -function concat(...streams) { - const subscriptions = new Array(); - const queues = new Array(); // one queue per stream - const completedStreams = new Set(); - let activeStreamIndex = 0; - function reset() { - while (subscriptions.length > 0) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const subscription = subscriptions.shift(); - subscription.unsubscribe(); - } - queues.length = 0; - completedStreams.clear(); - activeStreamIndex = 0; - } - const producer = { - start: (listener) => { - streams.forEach((_) => queues.push([])); - function emitAllQueuesEvents(streamIndex) { - // eslint-disable-next-line no-constant-condition - while (true) { - const element = queues[streamIndex].shift(); - if (element === undefined) { - return; - } - listener.next(element); - } - } - function isDone() { - return activeStreamIndex >= streams.length; - } - if (isDone()) { - listener.complete(); - return; - } - streams.forEach((stream, index) => { - subscriptions.push(stream.subscribe({ - next: (value) => { - if (index === activeStreamIndex) { - listener.next(value); - } - else { - queues[index].push(value); - } - }, - complete: () => { - completedStreams.add(index); - while (completedStreams.has(activeStreamIndex)) { - // this stream completed: emit all and move on - emitAllQueuesEvents(activeStreamIndex); - activeStreamIndex++; - } - if (isDone()) { - listener.complete(); - } - else { - // now active stream can have some events queued but did not yet complete - emitAllQueuesEvents(activeStreamIndex); - } - }, - error: (error) => { - listener.error(error); - reset(); - }, - })); - }); +function makeSignerInfos(signers, signMode) { + return signers.map(({ pubkey, sequence }) => ({ + publicKey: pubkey, + modeInfo: { + single: { mode: signMode }, }, - stop: () => { - reset(); + sequence: BigInt(sequence), + })); +} +/** + * Creates and serializes an AuthInfo document. + * + * This implementation does not support different signing modes for the different signers. + */ +function makeAuthInfoBytes(signers, feeAmount, gasLimit, feeGranter, feePayer, signMode = signing_1.SignMode.SIGN_MODE_DIRECT) { + // Required arguments 4 and 5 were added in CosmJS 0.29. Use runtime checks to help our non-TS users. + (0, utils_1.assert)(feeGranter === undefined || typeof feeGranter === "string", "feeGranter must be undefined or string"); + (0, utils_1.assert)(feePayer === undefined || typeof feePayer === "string", "feePayer must be undefined or string"); + const authInfo = tx_1.AuthInfo.fromPartial({ + signerInfos: makeSignerInfos(signers, signMode), + fee: { + amount: [...feeAmount], + gasLimit: BigInt(gasLimit), + granter: feeGranter, + payer: feePayer, }, + }); + return tx_1.AuthInfo.encode(authInfo).finish(); +} +exports.makeAuthInfoBytes = makeAuthInfoBytes; +function makeSignDoc(bodyBytes, authInfoBytes, chainId, accountNumber) { + return { + bodyBytes: bodyBytes, + authInfoBytes: authInfoBytes, + chainId: chainId, + accountNumber: BigInt(accountNumber), }; - return xstream_1.Stream.create(producer); } -exports.concat = concat; -//# sourceMappingURL=concat.js.map +exports.makeSignDoc = makeSignDoc; +function makeSignBytes({ accountNumber, authInfoBytes, bodyBytes, chainId }) { + const signDoc = tx_1.SignDoc.fromPartial({ + accountNumber: accountNumber, + authInfoBytes: authInfoBytes, + bodyBytes: bodyBytes, + chainId: chainId, + }); + return tx_1.SignDoc.encode(signDoc).finish(); +} +exports.makeSignBytes = makeSignBytes; +//# sourceMappingURL=signing.js.map /***/ }), -/***/ "./node_modules/@cosmjs/json-rpc/node_modules/@cosmjs/stream/build/defaultvalueproducer.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/@cosmjs/json-rpc/node_modules/@cosmjs/stream/build/defaultvalueproducer.js ***! - \*************************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { +/***/ "./node_modules/@cosmjs/proto-signing/build/wallet.js": +/*!************************************************************!*\ + !*** ./node_modules/@cosmjs/proto-signing/build/wallet.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.DefaultValueProducer = void 0; -// allows pre-producing values before anyone is listening -class DefaultValueProducer { - constructor(value, callbacks) { - this.callbacks = callbacks; - this.internalValue = value; - } - get value() { - return this.internalValue; - } - /** - * Update the current value. - * - * If producer is active (i.e. someone is listening), this emits an event. - * If not, just the current value is updated. - */ - update(value) { - this.internalValue = value; - if (this.listener) { - this.listener.next(value); - } - } - /** - * Produce an error - */ - // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types - error(error) { - if (this.listener) { - this.listener.error(error); +exports.decrypt = exports.encrypt = exports.supportedAlgorithms = exports.executeKdf = exports.cosmjsSalt = void 0; +const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/crypto/build/index.js"); +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +/** + * A fixed salt is chosen to archive a deterministic password to key derivation. + * This reduces the scope of a potential rainbow attack to all CosmJS users. + * Must be 16 bytes due to implementation limitations. + */ +exports.cosmjsSalt = (0, encoding_1.toAscii)("The CosmJS salt."); +async function executeKdf(password, configuration) { + switch (configuration.algorithm) { + case "argon2id": { + const options = configuration.params; + if (!(0, crypto_1.isArgon2idOptions)(options)) + throw new Error("Invalid format of argon2id params"); + return crypto_1.Argon2id.execute(password, exports.cosmjsSalt, options); } + default: + throw new Error("Unsupported KDF algorithm"); } - /** - * Called by the stream. Do not call this directly. - */ - start(listener) { - this.listener = listener; - listener.next(this.internalValue); - if (this.callbacks) { - this.callbacks.onStarted(); +} +exports.executeKdf = executeKdf; +exports.supportedAlgorithms = { + xchacha20poly1305Ietf: "xchacha20poly1305-ietf", +}; +async function encrypt(plaintext, encryptionKey, config) { + switch (config.algorithm) { + case exports.supportedAlgorithms.xchacha20poly1305Ietf: { + const nonce = crypto_1.Random.getBytes(crypto_1.xchacha20NonceLength); + // Prepend fixed-length nonce to ciphertext as suggested in the example from https://github.com/jedisct1/libsodium.js#api + return new Uint8Array([ + ...nonce, + ...(await crypto_1.Xchacha20poly1305Ietf.encrypt(plaintext, encryptionKey, nonce)), + ]); } + default: + throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`); } - /** - * Called by the stream. Do not call this directly. - */ - stop() { - if (this.callbacks) { - this.callbacks.onStop(); +} +exports.encrypt = encrypt; +async function decrypt(ciphertext, encryptionKey, config) { + switch (config.algorithm) { + case exports.supportedAlgorithms.xchacha20poly1305Ietf: { + const nonce = ciphertext.slice(0, crypto_1.xchacha20NonceLength); + return crypto_1.Xchacha20poly1305Ietf.decrypt(ciphertext.slice(crypto_1.xchacha20NonceLength), encryptionKey, nonce); } - this.listener = undefined; + default: + throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`); } } -exports.DefaultValueProducer = DefaultValueProducer; -//# sourceMappingURL=defaultvalueproducer.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/json-rpc/node_modules/@cosmjs/stream/build/dropduplicates.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/@cosmjs/json-rpc/node_modules/@cosmjs/stream/build/dropduplicates.js ***! - \*******************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.dropDuplicates = void 0; -/** - * Drops duplicate values in a stream. - * - * Marble diagram: - * - * ```text - * -1-1-1-2-4-3-3-4-- - * dropDuplicates - * -1-----2-4-3------ - * ``` - * - * Each value must be uniquely identified by a string given by - * valueToKey(value). - * - * Internally this maintains a set of keys that have been processed already, - * i.e. memory consumption and Set lookup times should be considered when - * using this function. - */ -function dropDuplicates(valueToKey) { - const operand = (instream) => { - const emittedKeys = new Set(); - const deduplicatedStream = instream - .filter((value) => !emittedKeys.has(valueToKey(value))) - .debug((value) => emittedKeys.add(valueToKey(value))); - return deduplicatedStream; - }; - return operand; -} -exports.dropDuplicates = dropDuplicates; -//# sourceMappingURL=dropduplicates.js.map +exports.decrypt = decrypt; +//# sourceMappingURL=wallet.js.map /***/ }), -/***/ "./node_modules/@cosmjs/json-rpc/node_modules/@cosmjs/stream/build/index.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/@cosmjs/json-rpc/node_modules/@cosmjs/stream/build/index.js ***! - \**********************************************************************************/ +/***/ "./node_modules/@cosmjs/socket/build/index.js": +/*!****************************************************!*\ + !*** ./node_modules/@cosmjs/socket/build/index.js ***! + \****************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ValueAndUpdates = exports.toListPromise = exports.fromListPromise = exports.firstEvent = exports.dropDuplicates = exports.DefaultValueProducer = exports.concat = void 0; -var concat_1 = __webpack_require__(/*! ./concat */ "./node_modules/@cosmjs/json-rpc/node_modules/@cosmjs/stream/build/concat.js"); -Object.defineProperty(exports, "concat", ({ enumerable: true, get: function () { return concat_1.concat; } })); -var defaultvalueproducer_1 = __webpack_require__(/*! ./defaultvalueproducer */ "./node_modules/@cosmjs/json-rpc/node_modules/@cosmjs/stream/build/defaultvalueproducer.js"); -Object.defineProperty(exports, "DefaultValueProducer", ({ enumerable: true, get: function () { return defaultvalueproducer_1.DefaultValueProducer; } })); -var dropduplicates_1 = __webpack_require__(/*! ./dropduplicates */ "./node_modules/@cosmjs/json-rpc/node_modules/@cosmjs/stream/build/dropduplicates.js"); -Object.defineProperty(exports, "dropDuplicates", ({ enumerable: true, get: function () { return dropduplicates_1.dropDuplicates; } })); -var promise_1 = __webpack_require__(/*! ./promise */ "./node_modules/@cosmjs/json-rpc/node_modules/@cosmjs/stream/build/promise.js"); -Object.defineProperty(exports, "firstEvent", ({ enumerable: true, get: function () { return promise_1.firstEvent; } })); -Object.defineProperty(exports, "fromListPromise", ({ enumerable: true, get: function () { return promise_1.fromListPromise; } })); -Object.defineProperty(exports, "toListPromise", ({ enumerable: true, get: function () { return promise_1.toListPromise; } })); -__exportStar(__webpack_require__(/*! ./reducer */ "./node_modules/@cosmjs/json-rpc/node_modules/@cosmjs/stream/build/reducer.js"), exports); -var valueandupdates_1 = __webpack_require__(/*! ./valueandupdates */ "./node_modules/@cosmjs/json-rpc/node_modules/@cosmjs/stream/build/valueandupdates.js"); -Object.defineProperty(exports, "ValueAndUpdates", ({ enumerable: true, get: function () { return valueandupdates_1.ValueAndUpdates; } })); +exports.StreamingSocket = exports.SocketWrapper = exports.ReconnectingSocket = exports.QueueingStreamingSocket = exports.ConnectionStatus = void 0; +var queueingstreamingsocket_1 = __webpack_require__(/*! ./queueingstreamingsocket */ "./node_modules/@cosmjs/socket/build/queueingstreamingsocket.js"); +Object.defineProperty(exports, "ConnectionStatus", ({ enumerable: true, get: function () { return queueingstreamingsocket_1.ConnectionStatus; } })); +Object.defineProperty(exports, "QueueingStreamingSocket", ({ enumerable: true, get: function () { return queueingstreamingsocket_1.QueueingStreamingSocket; } })); +var reconnectingsocket_1 = __webpack_require__(/*! ./reconnectingsocket */ "./node_modules/@cosmjs/socket/build/reconnectingsocket.js"); +Object.defineProperty(exports, "ReconnectingSocket", ({ enumerable: true, get: function () { return reconnectingsocket_1.ReconnectingSocket; } })); +var socketwrapper_1 = __webpack_require__(/*! ./socketwrapper */ "./node_modules/@cosmjs/socket/build/socketwrapper.js"); +Object.defineProperty(exports, "SocketWrapper", ({ enumerable: true, get: function () { return socketwrapper_1.SocketWrapper; } })); +var streamingsocket_1 = __webpack_require__(/*! ./streamingsocket */ "./node_modules/@cosmjs/socket/build/streamingsocket.js"); +Object.defineProperty(exports, "StreamingSocket", ({ enumerable: true, get: function () { return streamingsocket_1.StreamingSocket; } })); //# sourceMappingURL=index.js.map /***/ }), -/***/ "./node_modules/@cosmjs/json-rpc/node_modules/@cosmjs/stream/build/promise.js": -/*!************************************************************************************!*\ - !*** ./node_modules/@cosmjs/json-rpc/node_modules/@cosmjs/stream/build/promise.js ***! - \************************************************************************************/ +/***/ "./node_modules/@cosmjs/socket/build/queueingstreamingsocket.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@cosmjs/socket/build/queueingstreamingsocket.js ***! + \**********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.firstEvent = exports.toListPromise = exports.fromListPromise = void 0; +exports.QueueingStreamingSocket = exports.ConnectionStatus = void 0; +const stream_1 = __webpack_require__(/*! @cosmjs/stream */ "./node_modules/@cosmjs/stream/build/index.js"); const xstream_1 = __webpack_require__(/*! xstream */ "./node_modules/xstream/index.js"); +const streamingsocket_1 = __webpack_require__(/*! ./streamingsocket */ "./node_modules/@cosmjs/socket/build/streamingsocket.js"); +var ConnectionStatus; +(function (ConnectionStatus) { + ConnectionStatus[ConnectionStatus["Unconnected"] = 0] = "Unconnected"; + ConnectionStatus[ConnectionStatus["Connecting"] = 1] = "Connecting"; + ConnectionStatus[ConnectionStatus["Connected"] = 2] = "Connected"; + ConnectionStatus[ConnectionStatus["Disconnected"] = 3] = "Disconnected"; +})(ConnectionStatus = exports.ConnectionStatus || (exports.ConnectionStatus = {})); /** - * Emits one event for each list element as soon as the promise resolves - */ -function fromListPromise(promise) { - const producer = { - start: (listener) => { - // the code in `start` runs as soon as anyone listens to the stream - promise - .then((iterable) => { - for (const element of iterable) { - listener.next(element); - } - listener.complete(); - }) - .catch((error) => listener.error(error)); - }, - // eslint-disable-next-line @typescript-eslint/no-empty-function - stop: () => { }, - }; - return xstream_1.Stream.create(producer); -} -exports.fromListPromise = fromListPromise; -/** - * Listens to stream and collects events. When `count` events are collected, - * the promise resolves with an array of events. - * - * Rejects if stream completes before `count` events are collected. + * A wrapper around StreamingSocket that can queue requests. */ -async function toListPromise(stream, count) { - return new Promise((resolve, reject) => { - if (count === 0) { - resolve([]); - return; - } - const events = new Array(); - // take() unsubscribes from source stream automatically - stream.take(count).subscribe({ +class QueueingStreamingSocket { + constructor(url, timeout = 10000, reconnectedHandler) { + this.queue = []; + this.isProcessingQueue = false; + this.url = url; + this.timeout = timeout; + this.reconnectedHandler = reconnectedHandler; + const eventProducer = { + start: (listener) => (this.eventProducerListener = listener), + stop: () => (this.eventProducerListener = undefined), + }; + this.events = xstream_1.Stream.create(eventProducer); + this.connectionStatusProducer = new stream_1.DefaultValueProducer(ConnectionStatus.Unconnected); + this.connectionStatus = new stream_1.ValueAndUpdates(this.connectionStatusProducer); + this.socket = new streamingsocket_1.StreamingSocket(this.url, this.timeout); + this.socket.events.subscribe({ next: (event) => { - events.push(event); - if (events.length === count) { - resolve(events); - } + if (!this.eventProducerListener) + throw new Error("No event producer listener set"); + this.eventProducerListener.next(event); }, - complete: () => { - reject(`Stream completed before all events could be collected. ` + - `Collected ${events.length}, expected ${count}`); + error: () => this.connectionStatusProducer.update(ConnectionStatus.Disconnected), + }); + } + connect() { + this.connectionStatusProducer.update(ConnectionStatus.Connecting); + this.socket.connected.then(async () => { + this.connectionStatusProducer.update(ConnectionStatus.Connected); + return this.processQueue(); + }, () => this.connectionStatusProducer.update(ConnectionStatus.Disconnected)); + this.socket.connect(); + } + disconnect() { + this.connectionStatusProducer.update(ConnectionStatus.Disconnected); + this.socket.disconnect(); + } + reconnect() { + this.socket = new streamingsocket_1.StreamingSocket(this.url, this.timeout); + this.socket.events.subscribe({ + next: (event) => { + if (!this.eventProducerListener) + throw new Error("No event producer listener set"); + this.eventProducerListener.next(event); }, - error: (error) => reject(error), + error: () => this.connectionStatusProducer.update(ConnectionStatus.Disconnected), }); - }); -} -exports.toListPromise = toListPromise; -/** - * Listens to stream, collects one event and revolves. - * - * Rejects if stream completes before one event was fired. - */ -async function firstEvent(stream) { - return (await toListPromise(stream, 1))[0]; + // eslint-disable-next-line @typescript-eslint/no-floating-promises + this.socket.connected.then(() => { + if (this.reconnectedHandler) { + this.reconnectedHandler(); + } + }); + this.connect(); + } + getQueueLength() { + return this.queue.length; + } + queueRequest(request) { + this.queue.push(request); + // We don’t need to wait for the queue to be processed. + // eslint-disable-next-line @typescript-eslint/no-floating-promises + this.processQueue(); + } + async processQueue() { + if (this.isProcessingQueue || this.connectionStatus.value !== ConnectionStatus.Connected) { + return; + } + this.isProcessingQueue = true; + let request; + while ((request = this.queue.shift())) { + try { + await this.socket.send(request); + this.isProcessingQueue = false; + } + catch (error) { + // Probably the connection is down; will try again automatically when reconnected. + this.queue.unshift(request); + this.isProcessingQueue = false; + return; + } + } + } } -exports.firstEvent = firstEvent; -//# sourceMappingURL=promise.js.map +exports.QueueingStreamingSocket = QueueingStreamingSocket; +//# sourceMappingURL=queueingstreamingsocket.js.map /***/ }), -/***/ "./node_modules/@cosmjs/json-rpc/node_modules/@cosmjs/stream/build/reducer.js": -/*!************************************************************************************!*\ - !*** ./node_modules/@cosmjs/json-rpc/node_modules/@cosmjs/stream/build/reducer.js ***! - \************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { +/***/ "./node_modules/@cosmjs/socket/build/reconnectingsocket.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@cosmjs/socket/build/reconnectingsocket.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.lastValue = exports.asArray = exports.countStream = exports.Reducer = void 0; -// Reducer takes a stream of events T and a ReducerFunc, that -// materializes a state of type U. -class Reducer { - constructor(stream, reducer, initState) { - this.stream = stream; - this.reducer = reducer; - this.state = initState; - this.completed = new Promise((resolve, reject) => { - const subscription = this.stream.subscribe({ - next: (evt) => { - this.state = this.reducer(this.state, evt); - }, - complete: () => { - resolve(); - // this must happen after resolve, to ensure stream.subscribe() has finished - subscription.unsubscribe(); - }, - error: (err) => { - reject(err); - // the stream already closed on error, but unsubscribe to be safe - subscription.unsubscribe(); - }, - }); +exports.ReconnectingSocket = void 0; +const xstream_1 = __webpack_require__(/*! xstream */ "./node_modules/xstream/index.js"); +const queueingstreamingsocket_1 = __webpack_require__(/*! ./queueingstreamingsocket */ "./node_modules/@cosmjs/socket/build/queueingstreamingsocket.js"); +/** + * A wrapper around QueueingStreamingSocket that reconnects automatically. + */ +class ReconnectingSocket { + /** Starts with a 0.1 second timeout, then doubles every attempt with a maximum timeout of 5 seconds. */ + static calculateTimeout(index) { + return Math.min(2 ** index * 100, 5000); + } + constructor(url, timeout = 10000, reconnectedHandler) { + this.unconnected = true; + this.disconnected = false; + this.timeoutIndex = 0; + this.reconnectTimeout = null; + const eventProducer = { + start: (listener) => (this.eventProducerListener = listener), + stop: () => (this.eventProducerListener = undefined), + }; + this.events = xstream_1.Stream.create(eventProducer); + this.socket = new queueingstreamingsocket_1.QueueingStreamingSocket(url, timeout, reconnectedHandler); + this.socket.events.subscribe({ + next: (event) => { + if (this.eventProducerListener) { + this.eventProducerListener.next(event); + } + }, + error: (error) => { + if (this.eventProducerListener) { + this.eventProducerListener.error(error); + } + }, + }); + this.connectionStatus = this.socket.connectionStatus; + this.connectionStatus.updates.subscribe({ + next: (status) => { + if (status === queueingstreamingsocket_1.ConnectionStatus.Connected) { + this.timeoutIndex = 0; + } + if (status === queueingstreamingsocket_1.ConnectionStatus.Disconnected) { + if (this.reconnectTimeout) { + clearTimeout(this.reconnectTimeout); + this.reconnectTimeout = null; + } + this.reconnectTimeout = setTimeout(() => this.socket.reconnect(), ReconnectingSocket.calculateTimeout(this.timeoutIndex++)); + } + }, }); } - // value returns current materialized state - value() { - return this.state; + connect() { + if (!this.unconnected) { + throw new Error("Cannot connect: socket has already connected"); + } + this.socket.connect(); + this.unconnected = false; } - // finished resolves on completed stream, rejects on stream error - async finished() { - return this.completed; + disconnect() { + if (this.unconnected) { + throw new Error("Cannot disconnect: socket has not yet connected"); + } + this.socket.disconnect(); + if (this.eventProducerListener) { + this.eventProducerListener.complete(); + } + this.disconnected = true; + } + queueRequest(request) { + if (this.disconnected) { + throw new Error("Cannot queue request: socket has disconnected"); + } + this.socket.queueRequest(request); } } -exports.Reducer = Reducer; -function increment(sum, _) { - return sum + 1; -} -// countStream returns a reducer that contains current count -// of events on the stream -function countStream(stream) { - return new Reducer(stream, increment, 0); -} -exports.countStream = countStream; -function append(list, evt) { - return [...list, evt]; -} -// asArray maintains an array containing all events that have -// occurred on the stream -function asArray(stream) { - return new Reducer(stream, append, []); -} -exports.asArray = asArray; -function last(_, event) { - return event; -} -// lastValue returns the last value read from the stream, or undefined if no values sent -function lastValue(stream) { - return new Reducer(stream, last, undefined); -} -exports.lastValue = lastValue; -//# sourceMappingURL=reducer.js.map +exports.ReconnectingSocket = ReconnectingSocket; +//# sourceMappingURL=reconnectingsocket.js.map /***/ }), -/***/ "./node_modules/@cosmjs/json-rpc/node_modules/@cosmjs/stream/build/valueandupdates.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/@cosmjs/json-rpc/node_modules/@cosmjs/stream/build/valueandupdates.js ***! - \********************************************************************************************/ +/***/ "./node_modules/@cosmjs/socket/build/socketwrapper.js": +/*!************************************************************!*\ + !*** ./node_modules/@cosmjs/socket/build/socketwrapper.js ***! + \************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ValueAndUpdates = void 0; -const xstream_1 = __webpack_require__(/*! xstream */ "./node_modules/xstream/index.js"); +exports.SocketWrapper = void 0; +const isomorphic_ws_1 = __importDefault(__webpack_require__(/*! isomorphic-ws */ "./node_modules/isomorphic-ws/browser.js")); +function environmentIsNodeJs() { + return ( true && + typeof ({"env":{"NODE_ENV":"production"}}).versions !== "undefined" && + typeof ({"env":{"NODE_ENV":"production"}}).versions.node !== "undefined"); +} /** - * A read only wrapper around DefaultValueProducer that allows - * to synchronously get the current value using the .value property - * and listen to to updates by suscribing to the .updates stream + * A thin wrapper around isomorphic-ws' WebSocket class that adds + * - constant message/error/open/close handlers + * - explict connection via a connect() method + * - type support for events + * - handling of corner cases in the open and close behaviour */ -class ValueAndUpdates { - constructor(producer) { - this.producer = producer; - this.updates = xstream_1.MemoryStream.createWithMemory(this.producer); - } - get value() { - return this.producer.value; +class SocketWrapper { + constructor(url, messageHandler, errorHandler, openHandler, closeHandler, timeout = 10000) { + this.closed = false; + this.connected = new Promise((resolve, reject) => { + this.connectedResolver = resolve; + this.connectedRejecter = reject; + }); + this.url = url; + this.messageHandler = messageHandler; + this.errorHandler = errorHandler; + this.openHandler = openHandler; + this.closeHandler = closeHandler; + this.timeout = timeout; } /** - * Resolves as soon as search value is found. - * - * @param search either a value or a function that must return true when found - * @returns the value of the update that caused the search match + * returns a promise that resolves when connection is open */ - async waitFor(search) { - const searchImplementation = typeof search === "function" ? search : (value) => value === search; - return new Promise((resolve, reject) => { - const subscription = this.updates.subscribe({ - next: (newValue) => { - if (searchImplementation(newValue)) { - resolve(newValue); - // MemoryStream.subscribe() calls next with the last value. - // Make async to ensure the subscription exists - setTimeout(() => subscription.unsubscribe(), 0); - } - }, - complete: () => { - subscription.unsubscribe(); - reject("Update stream completed without expected value"); - }, - error: (error) => { - reject(error); - }, + connect() { + const socket = new isomorphic_ws_1.default(this.url); + socket.onerror = (error) => { + this.clearTimeout(); + if (this.errorHandler) { + this.errorHandler(error); + } + }; + socket.onmessage = (messageEvent) => { + this.messageHandler({ + type: messageEvent.type, + data: messageEvent.data, }); - }); - } -} -exports.ValueAndUpdates = ValueAndUpdates; -//# sourceMappingURL=valueandupdates.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/math/build/decimal.js": -/*!****************************************************!*\ - !*** ./node_modules/@cosmjs/math/build/decimal.js ***! - \****************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Decimal = void 0; -const bn_js_1 = __importDefault(__webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js")); -// Too large values lead to massive memory usage. Limit to something sensible. -// The largest value we need is 18 (Ether). -const maxFractionalDigits = 100; -/** - * A type for arbitrary precision, non-negative decimals. - * - * Instances of this class are immutable. - */ -class Decimal { - static fromUserInput(input, fractionalDigits) { - Decimal.verifyFractionalDigits(fractionalDigits); - const badCharacter = input.match(/[^0-9.]/); - if (badCharacter) { + }; + socket.onopen = (_) => { + this.clearTimeout(); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - throw new Error(`Invalid character at position ${badCharacter.index + 1}`); - } - let whole; - let fractional; - if (input === "") { - whole = "0"; - fractional = ""; - } - else if (input.search(/\./) === -1) { - // integer format, no separator - whole = input; - fractional = ""; - } - else { - const parts = input.split("."); - switch (parts.length) { - case 0: - case 1: - throw new Error("Fewer than two elements in split result. This must not happen here."); - case 2: - if (!parts[1]) - throw new Error("Fractional part missing"); - whole = parts[0]; - fractional = parts[1].replace(/0+$/, ""); - break; - default: - throw new Error("More than one separator found"); + this.connectedResolver(); + if (this.openHandler) { + this.openHandler(); } - } - if (fractional.length > fractionalDigits) { - throw new Error("Got more fractional digits than supported"); - } - const quantity = `${whole}${fractional.padEnd(fractionalDigits, "0")}`; - return new Decimal(quantity, fractionalDigits); - } - static fromAtomics(atomics, fractionalDigits) { - Decimal.verifyFractionalDigits(fractionalDigits); - return new Decimal(atomics, fractionalDigits); - } - /** - * Creates a Decimal with value 0.0 and the given number of fractial digits. - * - * Fractional digits are not relevant for the value but needed to be able - * to perform arithmetic operations with other decimals. - */ - static zero(fractionalDigits) { - Decimal.verifyFractionalDigits(fractionalDigits); - return new Decimal("0", fractionalDigits); + }; + socket.onclose = (closeEvent) => { + this.closed = true; + if (this.closeHandler) { + this.closeHandler(closeEvent); + } + }; + const started = Date.now(); + this.timeoutId = setTimeout(() => { + socket.onmessage = () => 0; + socket.onerror = () => 0; + socket.onopen = () => 0; + socket.onclose = () => 0; + socket.close(); + this.socket = undefined; + const elapsed = Math.floor(Date.now() - started); + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + this.connectedRejecter(`Connection attempt timed out after ${elapsed} ms`); + }, this.timeout); + this.socket = socket; } /** - * Creates a Decimal with value 1.0 and the given number of fractial digits. - * - * Fractional digits are not relevant for the value but needed to be able - * to perform arithmetic operations with other decimals. + * Closes an established connection and aborts other connection states */ - static one(fractionalDigits) { - Decimal.verifyFractionalDigits(fractionalDigits); - return new Decimal("1" + "0".repeat(fractionalDigits), fractionalDigits); - } - static verifyFractionalDigits(fractionalDigits) { - if (!Number.isInteger(fractionalDigits)) - throw new Error("Fractional digits is not an integer"); - if (fractionalDigits < 0) - throw new Error("Fractional digits must not be negative"); - if (fractionalDigits > maxFractionalDigits) { - throw new Error(`Fractional digits must not exceed ${maxFractionalDigits}`); - } - } - static compare(a, b) { - if (a.fractionalDigits !== b.fractionalDigits) - throw new Error("Fractional digits do not match"); - return a.data.atomics.cmp(new bn_js_1.default(b.atomics)); - } - get atomics() { - return this.data.atomics.toString(); - } - get fractionalDigits() { - return this.data.fractionalDigits; - } - constructor(atomics, fractionalDigits) { - if (!atomics.match(/^[0-9]+$/)) { - throw new Error("Invalid string format. Only non-negative integers in decimal representation supported."); - } - this.data = { - atomics: new bn_js_1.default(atomics), - fractionalDigits: fractionalDigits, - }; - } - /** Creates a new instance with the same value */ - clone() { - return new Decimal(this.atomics, this.fractionalDigits); - } - /** Returns the greatest decimal <= this which has no fractional part (rounding down) */ - floor() { - const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits)); - const whole = this.data.atomics.div(factor); - const fractional = this.data.atomics.mod(factor); - if (fractional.isZero()) { - return this.clone(); - } - else { - return Decimal.fromAtomics(whole.mul(factor).toString(), this.fractionalDigits); - } - } - /** Returns the smallest decimal >= this which has no fractional part (rounding up) */ - ceil() { - const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits)); - const whole = this.data.atomics.div(factor); - const fractional = this.data.atomics.mod(factor); - if (fractional.isZero()) { - return this.clone(); - } - else { - return Decimal.fromAtomics(whole.addn(1).mul(factor).toString(), this.fractionalDigits); - } - } - toString() { - const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits)); - const whole = this.data.atomics.div(factor); - const fractional = this.data.atomics.mod(factor); - if (fractional.isZero()) { - return whole.toString(); + disconnect() { + if (!this.socket) { + throw new Error("Socket undefined. This must be called after connecting."); } - else { - const fullFractionalPart = fractional.toString().padStart(this.data.fractionalDigits, "0"); - const trimmedFractionalPart = fullFractionalPart.replace(/0+$/, ""); - return `${whole.toString()}.${trimmedFractionalPart}`; + this.clearTimeout(); + switch (this.socket.readyState) { + case isomorphic_ws_1.default.OPEN: + this.socket.close(1000 /* Normal Closure */); + break; + case isomorphic_ws_1.default.CLOSED: + // nothing to be done + break; + case isomorphic_ws_1.default.CONNECTING: + // imitate missing abort API + this.socket.onopen = () => 0; + this.socket.onclose = () => 0; + this.socket.onerror = () => 0; + this.socket.onmessage = () => 0; + this.socket = undefined; + if (this.closeHandler) { + this.closeHandler({ wasClean: false, code: 4001 }); + } + break; + case isomorphic_ws_1.default.CLOSING: + // already closing. Let it proceed + break; + default: + throw new Error(`Unknown readyState: ${this.socket.readyState}`); } } - /** - * Returns an approximation as a float type. Only use this if no - * exact calculation is required. - */ - toFloatApproximation() { - const out = Number(this.toString()); - if (Number.isNaN(out)) - throw new Error("Conversion to number failed"); - return out; - } - /** - * a.plus(b) returns a+b. - * - * Both values need to have the same fractional digits. - */ - plus(b) { - if (this.fractionalDigits !== b.fractionalDigits) - throw new Error("Fractional digits do not match"); - const sum = this.data.atomics.add(new bn_js_1.default(b.atomics)); - return new Decimal(sum.toString(), this.fractionalDigits); - } - /** - * a.minus(b) returns a-b. - * - * Both values need to have the same fractional digits. - * The resulting difference needs to be non-negative. - */ - minus(b) { - if (this.fractionalDigits !== b.fractionalDigits) - throw new Error("Fractional digits do not match"); - const difference = this.data.atomics.sub(new bn_js_1.default(b.atomics)); - if (difference.ltn(0)) - throw new Error("Difference must not be negative"); - return new Decimal(difference.toString(), this.fractionalDigits); + async send(data) { + return new Promise((resolve, reject) => { + if (!this.socket) { + throw new Error("Socket undefined. This must be called after connecting."); + } + if (this.closed) { + throw new Error("Socket was closed, so no data can be sent anymore."); + } + // this exception should be thrown by send() automatically according to + // https://developer.mozilla.org/de/docs/Web/API/WebSocket#send() but it does not work in browsers + if (this.socket.readyState !== isomorphic_ws_1.default.OPEN) { + throw new Error("Websocket is not open"); + } + if (environmentIsNodeJs()) { + this.socket.send(data, (err) => (err ? reject(err) : resolve())); + } + else { + // Browser websocket send method does not accept a callback + this.socket.send(data); + resolve(); + } + }); } /** - * a.multiply(b) returns a*b. + * Clears the timeout function, such that no timeout error will be raised anymore. This should be + * called when the connection is established, a connection error occurred or the socket is disconnected. * - * We only allow multiplication by unsigned integers to avoid rounding errors. + * This method must not be called before `connect()`. + * This method is idempotent. */ - multiply(b) { - const product = this.data.atomics.mul(new bn_js_1.default(b.toString())); - return new Decimal(product.toString(), this.fractionalDigits); - } - equals(b) { - return Decimal.compare(this, b) === 0; - } - isLessThan(b) { - return Decimal.compare(this, b) < 0; - } - isLessThanOrEqual(b) { - return Decimal.compare(this, b) <= 0; - } - isGreaterThan(b) { - return Decimal.compare(this, b) > 0; - } - isGreaterThanOrEqual(b) { - return Decimal.compare(this, b) >= 0; + clearTimeout() { + if (!this.timeoutId) { + throw new Error("Timeout ID not set. This should not happen and usually means connect() was not called."); + } + // Note: do not unset this.timeoutId to allow multiple calls to this function + clearTimeout(this.timeoutId); } } -exports.Decimal = Decimal; -//# sourceMappingURL=decimal.js.map +exports.SocketWrapper = SocketWrapper; +//# sourceMappingURL=socketwrapper.js.map /***/ }), -/***/ "./node_modules/@cosmjs/math/build/index.js": -/*!**************************************************!*\ - !*** ./node_modules/@cosmjs/math/build/index.js ***! - \**************************************************/ +/***/ "./node_modules/@cosmjs/socket/build/streamingsocket.js": +/*!**************************************************************!*\ + !*** ./node_modules/@cosmjs/socket/build/streamingsocket.js ***! + \**************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Uint64 = exports.Uint53 = exports.Uint32 = exports.Int53 = exports.Decimal = void 0; -var decimal_1 = __webpack_require__(/*! ./decimal */ "./node_modules/@cosmjs/math/build/decimal.js"); -Object.defineProperty(exports, "Decimal", ({ enumerable: true, get: function () { return decimal_1.Decimal; } })); -var integers_1 = __webpack_require__(/*! ./integers */ "./node_modules/@cosmjs/math/build/integers.js"); -Object.defineProperty(exports, "Int53", ({ enumerable: true, get: function () { return integers_1.Int53; } })); -Object.defineProperty(exports, "Uint32", ({ enumerable: true, get: function () { return integers_1.Uint32; } })); -Object.defineProperty(exports, "Uint53", ({ enumerable: true, get: function () { return integers_1.Uint53; } })); -Object.defineProperty(exports, "Uint64", ({ enumerable: true, get: function () { return integers_1.Uint64; } })); -//# sourceMappingURL=index.js.map +exports.StreamingSocket = void 0; +const xstream_1 = __webpack_require__(/*! xstream */ "./node_modules/xstream/index.js"); +const socketwrapper_1 = __webpack_require__(/*! ./socketwrapper */ "./node_modules/@cosmjs/socket/build/socketwrapper.js"); +/** + * A WebSocket wrapper that exposes all events as a stream. + * + * This underlying socket will not be closed when the stream has no listeners + */ +class StreamingSocket { + constructor(url, timeout = 10000) { + this.socket = new socketwrapper_1.SocketWrapper(url, (event) => { + if (this.eventProducerListener) { + this.eventProducerListener.next(event); + } + }, (errorEvent) => { + if (this.eventProducerListener) { + this.eventProducerListener.error(errorEvent); + } + }, () => { + // socket opened + }, (closeEvent) => { + if (this.eventProducerListener) { + if (closeEvent.wasClean) { + this.eventProducerListener.complete(); + } + else { + this.eventProducerListener.error("Socket was closed unclean"); + } + } + }, timeout); + this.connected = this.socket.connected; + const eventProducer = { + start: (listener) => (this.eventProducerListener = listener), + stop: () => (this.eventProducerListener = undefined), + }; + this.events = xstream_1.Stream.create(eventProducer); + } + connect() { + this.socket.connect(); + } + disconnect() { + this.socket.disconnect(); + } + async send(data) { + return this.socket.send(data); + } +} +exports.StreamingSocket = StreamingSocket; +//# sourceMappingURL=streamingsocket.js.map /***/ }), -/***/ "./node_modules/@cosmjs/math/build/integers.js": -/*!*****************************************************!*\ - !*** ./node_modules/@cosmjs/math/build/integers.js ***! - \*****************************************************/ +/***/ "./node_modules/@cosmjs/stargate/build/accounts.js": +/*!*********************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/accounts.js ***! + \*********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Uint64 = exports.Uint53 = exports.Int53 = exports.Uint32 = void 0; -/* eslint-disable no-bitwise */ -const bn_js_1 = __importDefault(__webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js")); -const uint64MaxValue = new bn_js_1.default("18446744073709551615", 10, "be"); -class Uint32 { - /** @deprecated use Uint32.fromBytes */ - static fromBigEndianBytes(bytes) { - return Uint32.fromBytes(bytes); - } - /** - * Creates a Uint32 from a fixed length byte array. - * - * @param bytes a list of exactly 4 bytes - * @param endianess defaults to big endian - */ - static fromBytes(bytes, endianess = "be") { - if (bytes.length !== 4) { - throw new Error("Invalid input length. Expected 4 bytes."); - } - for (let i = 0; i < bytes.length; ++i) { - if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) { - throw new Error("Invalid value in byte. Found: " + bytes[i]); - } - } - const beBytes = endianess === "be" ? bytes : Array.from(bytes).reverse(); - // Use mulitiplication instead of shifting since bitwise operators are defined - // on SIGNED int32 in JavaScript and we don't want to risk surprises - return new Uint32(beBytes[0] * 2 ** 24 + beBytes[1] * 2 ** 16 + beBytes[2] * 2 ** 8 + beBytes[3]); - } - static fromString(str) { - if (!str.match(/^[0-9]+$/)) { - throw new Error("Invalid string format"); - } - return new Uint32(Number.parseInt(str, 10)); - } - constructor(input) { - if (Number.isNaN(input)) { - throw new Error("Input is not a number"); - } - if (!Number.isInteger(input)) { - throw new Error("Input is not an integer"); - } - if (input < 0 || input > 4294967295) { - throw new Error("Input not in uint32 range: " + input.toString()); - } - this.data = input; - } - toBytesBigEndian() { - // Use division instead of shifting since bitwise operators are defined - // on SIGNED int32 in JavaScript and we don't want to risk surprises - return new Uint8Array([ - Math.floor(this.data / 2 ** 24) & 0xff, - Math.floor(this.data / 2 ** 16) & 0xff, - Math.floor(this.data / 2 ** 8) & 0xff, - Math.floor(this.data / 2 ** 0) & 0xff, - ]); - } - toBytesLittleEndian() { - // Use division instead of shifting since bitwise operators are defined - // on SIGNED int32 in JavaScript and we don't want to risk surprises - return new Uint8Array([ - Math.floor(this.data / 2 ** 0) & 0xff, - Math.floor(this.data / 2 ** 8) & 0xff, - Math.floor(this.data / 2 ** 16) & 0xff, - Math.floor(this.data / 2 ** 24) & 0xff, - ]); - } - toNumber() { - return this.data; - } - toBigInt() { - return BigInt(this.toNumber()); - } - toString() { - return this.data.toString(); - } -} -exports.Uint32 = Uint32; -class Int53 { - static fromString(str) { - if (!str.match(/^-?[0-9]+$/)) { - throw new Error("Invalid string format"); - } - return new Int53(Number.parseInt(str, 10)); - } - constructor(input) { - if (Number.isNaN(input)) { - throw new Error("Input is not a number"); - } - if (!Number.isInteger(input)) { - throw new Error("Input is not an integer"); - } - if (input < Number.MIN_SAFE_INTEGER || input > Number.MAX_SAFE_INTEGER) { - throw new Error("Input not in int53 range: " + input.toString()); - } - this.data = input; - } - toNumber() { - return this.data; - } - toBigInt() { - return BigInt(this.toNumber()); - } - toString() { - return this.data.toString(); - } +exports.accountFromAny = void 0; +const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/math/build/index.js"); +const proto_signing_1 = __webpack_require__(/*! @cosmjs/proto-signing */ "./node_modules/@cosmjs/proto-signing/build/index.js"); +const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/utils/build/index.js"); +const auth_1 = __webpack_require__(/*! cosmjs-types/cosmos/auth/v1beta1/auth */ "./node_modules/cosmjs-types/cosmos/auth/v1beta1/auth.js"); +const vesting_1 = __webpack_require__(/*! cosmjs-types/cosmos/vesting/v1beta1/vesting */ "./node_modules/cosmjs-types/cosmos/vesting/v1beta1/vesting.js"); +function uint64FromProto(input) { + return math_1.Uint64.fromString(input.toString()); } -exports.Int53 = Int53; -class Uint53 { - static fromString(str) { - const signed = Int53.fromString(str); - return new Uint53(signed.toNumber()); - } - constructor(input) { - const signed = new Int53(input); - if (signed.toNumber() < 0) { - throw new Error("Input is negative"); - } - this.data = signed; - } - toNumber() { - return this.data.toNumber(); - } - toBigInt() { - return BigInt(this.toNumber()); - } - toString() { - return this.data.toString(); - } +function accountFromBaseAccount(input) { + const { address, pubKey, accountNumber, sequence } = input; + const pubkey = (0, proto_signing_1.decodeOptionalPubkey)(pubKey); + return { + address: address, + pubkey: pubkey, + accountNumber: uint64FromProto(accountNumber).toNumber(), + sequence: uint64FromProto(sequence).toNumber(), + }; } -exports.Uint53 = Uint53; -class Uint64 { - /** @deprecated use Uint64.fromBytes */ - static fromBytesBigEndian(bytes) { - return Uint64.fromBytes(bytes); - } - /** - * Creates a Uint64 from a fixed length byte array. - * - * @param bytes a list of exactly 8 bytes - * @param endianess defaults to big endian - */ - static fromBytes(bytes, endianess = "be") { - if (bytes.length !== 8) { - throw new Error("Invalid input length. Expected 8 bytes."); - } - for (let i = 0; i < bytes.length; ++i) { - if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) { - throw new Error("Invalid value in byte. Found: " + bytes[i]); - } - } - const beBytes = endianess === "be" ? Array.from(bytes) : Array.from(bytes).reverse(); - return new Uint64(new bn_js_1.default(beBytes)); - } - static fromString(str) { - if (!str.match(/^[0-9]+$/)) { - throw new Error("Invalid string format"); - } - return new Uint64(new bn_js_1.default(str, 10, "be")); - } - static fromNumber(input) { - if (Number.isNaN(input)) { - throw new Error("Input is not a number"); - } - if (!Number.isInteger(input)) { - throw new Error("Input is not an integer"); +/** + * Basic implementation of AccountParser. This is supposed to support the most relevant + * common Cosmos SDK account types. If you need support for exotic account types, + * you'll need to write your own account decoder. + */ +function accountFromAny(input) { + const { typeUrl, value } = input; + switch (typeUrl) { + // auth + case "/cosmos.auth.v1beta1.BaseAccount": + return accountFromBaseAccount(auth_1.BaseAccount.decode(value)); + case "/cosmos.auth.v1beta1.ModuleAccount": { + const baseAccount = auth_1.ModuleAccount.decode(value).baseAccount; + (0, utils_1.assert)(baseAccount); + return accountFromBaseAccount(baseAccount); } - let bigint; - try { - bigint = new bn_js_1.default(input); + // vesting + case "/cosmos.vesting.v1beta1.BaseVestingAccount": { + const baseAccount = vesting_1.BaseVestingAccount.decode(value)?.baseAccount; + (0, utils_1.assert)(baseAccount); + return accountFromBaseAccount(baseAccount); } - catch { - throw new Error("Input is not a safe integer"); + case "/cosmos.vesting.v1beta1.ContinuousVestingAccount": { + const baseAccount = vesting_1.ContinuousVestingAccount.decode(value)?.baseVestingAccount?.baseAccount; + (0, utils_1.assert)(baseAccount); + return accountFromBaseAccount(baseAccount); } - return new Uint64(bigint); - } - constructor(data) { - if (data.isNeg()) { - throw new Error("Input is negative"); + case "/cosmos.vesting.v1beta1.DelayedVestingAccount": { + const baseAccount = vesting_1.DelayedVestingAccount.decode(value)?.baseVestingAccount?.baseAccount; + (0, utils_1.assert)(baseAccount); + return accountFromBaseAccount(baseAccount); } - if (data.gt(uint64MaxValue)) { - throw new Error("Input exceeds uint64 range"); + case "/cosmos.vesting.v1beta1.PeriodicVestingAccount": { + const baseAccount = vesting_1.PeriodicVestingAccount.decode(value)?.baseVestingAccount?.baseAccount; + (0, utils_1.assert)(baseAccount); + return accountFromBaseAccount(baseAccount); } - this.data = data; - } - toBytesBigEndian() { - return Uint8Array.from(this.data.toArray("be", 8)); - } - toBytesLittleEndian() { - return Uint8Array.from(this.data.toArray("le", 8)); - } - toString() { - return this.data.toString(10); - } - toBigInt() { - return BigInt(this.toString()); - } - toNumber() { - return this.data.toNumber(); + default: + throw new Error(`Unsupported type: '${typeUrl}'`); } } -exports.Uint64 = Uint64; -// Assign classes to unused variables in order to verify static interface conformance at compile time. -// Workaround for https://github.com/microsoft/TypeScript/issues/33892 -const _int53Class = Int53; -const _uint53Class = Uint53; -const _uint32Class = Uint32; -const _uint64Class = Uint64; -//# sourceMappingURL=integers.js.map +exports.accountFromAny = accountFromAny; +//# sourceMappingURL=accounts.js.map /***/ }), -/***/ "./node_modules/@cosmjs/proto-signing/build/coins.js": +/***/ "./node_modules/@cosmjs/stargate/build/aminotypes.js": /*!***********************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/build/coins.js ***! + !*** ./node_modules/@cosmjs/stargate/build/aminotypes.js ***! \***********************************************************/ /***/ (function(__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.parseCoins = void 0; +exports.AminoTypes = void 0; /** - * Takes a coins list like "819966000ucosm,700000000ustake" and parses it. - * - * This is a Stargate ready version of parseCoins from @cosmjs/amino. - * It supports more denoms. + * A map from Stargate message types as used in the messages's `Any` type + * to Amino types. */ -function parseCoins(input) { - return input - .replace(/\s/g, "") - .split(",") - .filter(Boolean) - .map((part) => { - // Denom regex from Stargate (https://github.com/cosmos/cosmos-sdk/blob/v0.42.7/types/coin.go#L599-L601) - const match = part.match(/^([0-9]+)([a-zA-Z][a-zA-Z0-9/]{2,127})$/); - if (!match) - throw new Error("Got an invalid coin string"); +class AminoTypes { + constructor(types) { + this.register = types; + } + toAmino({ typeUrl, value }) { + const converter = this.register[typeUrl]; + if (!converter) { + throw new Error(`Type URL '${typeUrl}' does not exist in the Amino message type register. ` + + "If you need support for this message type, you can pass in additional entries to the AminoTypes constructor. " + + "If you think this message type should be included by default, please open an issue at https://github.com/cosmos/cosmjs/issues."); + } return { - amount: match[1].replace(/^0+/, "") || "0", - denom: match[2], + type: converter.aminoType, + value: converter.toAmino(value), }; - }); + } + fromAmino({ type, value }) { + const matches = Object.entries(this.register).filter(([_typeUrl, { aminoType }]) => aminoType === type); + switch (matches.length) { + case 0: { + throw new Error(`Amino type identifier '${type}' does not exist in the Amino message type register. ` + + "If you need support for this message type, you can pass in additional entries to the AminoTypes constructor. " + + "If you think this message type should be included by default, please open an issue at https://github.com/cosmos/cosmjs/issues."); + } + case 1: { + const [typeUrl, converter] = matches[0]; + return { + typeUrl: typeUrl, + value: converter.fromAmino(value), + }; + } + default: + throw new Error(`Multiple types are registered with Amino type identifier '${type}': '` + + matches + .map(([key, _value]) => key) + .sort() + .join("', '") + + "'. Thus fromAmino cannot be performed."); + } + } } -exports.parseCoins = parseCoins; -//# sourceMappingURL=coins.js.map +exports.AminoTypes = AminoTypes; +//# sourceMappingURL=aminotypes.js.map /***/ }), -/***/ "./node_modules/@cosmjs/proto-signing/build/decode.js": -/*!************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/build/decode.js ***! - \************************************************************/ +/***/ "./node_modules/@cosmjs/stargate/build/events.js": +/*!*******************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/events.js ***! + \*******************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.decodeTxRaw = void 0; -const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/tx/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/tx/v1beta1/tx.js"); +exports.fromTendermintEvent = void 0; +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); /** - * Takes a serialized TxRaw (the bytes stored in Tendermint) and decodes it into something usable. + * Takes a Tendermint 0.34 or 0.37 event with binary encoded key and value + * and converts it into an `Event` with string attributes. */ -function decodeTxRaw(tx) { - const txRaw = tx_1.TxRaw.decode(tx); +function fromTendermintEvent(event) { return { - authInfo: tx_1.AuthInfo.decode(txRaw.authInfoBytes), - body: tx_1.TxBody.decode(txRaw.bodyBytes), - signatures: txRaw.signatures, + type: event.type, + attributes: event.attributes.map((attr) => ({ + key: typeof attr.key == "string" ? attr.key : (0, encoding_1.fromUtf8)(attr.key, true), + value: typeof attr.value == "string" ? attr.value : (0, encoding_1.fromUtf8)(attr.value, true), + })), }; } -exports.decodeTxRaw = decodeTxRaw; -//# sourceMappingURL=decode.js.map +exports.fromTendermintEvent = fromTendermintEvent; +//# sourceMappingURL=events.js.map /***/ }), -/***/ "./node_modules/@cosmjs/proto-signing/build/directsecp256k1hdwallet.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/build/directsecp256k1hdwallet.js ***! - \*****************************************************************************/ +/***/ "./node_modules/@cosmjs/stargate/build/fee.js": +/*!****************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/fee.js ***! + \****************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.DirectSecp256k1HdWallet = exports.extractKdfConfiguration = void 0; -const amino_1 = __webpack_require__(/*! @cosmjs/amino */ "./node_modules/@cosmjs/amino/build/index.js"); -const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/index.js"); -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/index.js"); -const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/index.js"); -const signing_1 = __webpack_require__(/*! ./signing */ "./node_modules/@cosmjs/proto-signing/build/signing.js"); -const wallet_1 = __webpack_require__(/*! ./wallet */ "./node_modules/@cosmjs/proto-signing/build/wallet.js"); -const serializationTypeV1 = "directsecp256k1hdwallet-v1"; +exports.calculateFee = exports.GasPrice = void 0; +const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/math/build/index.js"); +const proto_signing_1 = __webpack_require__(/*! @cosmjs/proto-signing */ "./node_modules/@cosmjs/proto-signing/build/index.js"); /** - * A KDF configuration that is not very strong but can be used on the main thread. - * It takes about 1 second in Node.js 16.0.0 and should have similar runtimes in other modern Wasm hosts. + * Denom checker for the Cosmos SDK 0.42 denom pattern + * (https://github.com/cosmos/cosmos-sdk/blob/v0.42.4/types/coin.go#L599-L601). + * + * This is like a regexp but with helpful error messages. */ -const basicPasswordHashingOptions = { - algorithm: "argon2id", - params: { - outputLength: 32, - opsLimit: 24, - memLimitKib: 12 * 1024, - }, -}; -function isDerivationJson(thing) { - if (!(0, utils_1.isNonNullObject)(thing)) - return false; - if (typeof thing.hdPath !== "string") - return false; - if (typeof thing.prefix !== "string") - return false; - return true; -} -function extractKdfConfigurationV1(doc) { - return doc.kdf; -} -function extractKdfConfiguration(serialization) { - const root = JSON.parse(serialization); - if (!(0, utils_1.isNonNullObject)(root)) - throw new Error("Root document is not an object."); - switch (root.type) { - case serializationTypeV1: - return extractKdfConfigurationV1(root); - default: - throw new Error("Unsupported serialization type"); +function checkDenom(denom) { + if (denom.length < 3 || denom.length > 128) { + throw new Error("Denom must be between 3 and 128 characters"); } } -exports.extractKdfConfiguration = extractKdfConfiguration; -const defaultOptions = { - bip39Password: "", - hdPaths: [(0, amino_1.makeCosmoshubPath)(0)], - prefix: "cosmos", -}; -/** A wallet for protobuf based signing using SIGN_MODE_DIRECT */ -class DirectSecp256k1HdWallet { - constructor(mnemonic, options) { - const prefix = options.prefix ?? defaultOptions.prefix; - const hdPaths = options.hdPaths ?? defaultOptions.hdPaths; - this.secret = mnemonic; - this.seed = options.seed; - this.accounts = hdPaths.map((hdPath) => ({ - hdPath: hdPath, - prefix: prefix, - })); - } - /** - * Restores a wallet from the given BIP39 mnemonic. - * - * @param mnemonic Any valid English mnemonic. - * @param options An optional `DirectSecp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix. - */ - static async fromMnemonic(mnemonic, options = {}) { - const mnemonicChecked = new crypto_1.EnglishMnemonic(mnemonic); - const seed = await crypto_1.Bip39.mnemonicToSeed(mnemonicChecked, options.bip39Password); - return new DirectSecp256k1HdWallet(mnemonicChecked, { - ...options, - seed: seed, - }); +/** + * A gas price, i.e. the price of a single unit of gas. This is typically a fraction of + * the smallest fee token unit, such as 0.012utoken. + */ +class GasPrice { + constructor(amount, denom) { + this.amount = amount; + this.denom = denom; } /** - * Generates a new wallet with a BIP39 mnemonic of the given length. + * Parses a gas price formatted as ``, e.g. `GasPrice.fromString("0.012utoken")`. * - * @param length The number of words in the mnemonic (12, 15, 18, 21 or 24). - * @param options An optional `DirectSecp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix. - */ - static async generate(length = 12, options = {}) { - const entropyLength = 4 * Math.floor((11 * length) / 33); - const entropy = crypto_1.Random.getBytes(entropyLength); - const mnemonic = crypto_1.Bip39.encode(entropy); - return DirectSecp256k1HdWallet.fromMnemonic(mnemonic.toString(), options); - } - /** - * Restores a wallet from an encrypted serialization. + * The denom must match the Cosmos SDK 0.42 pattern (https://github.com/cosmos/cosmos-sdk/blob/v0.42.4/types/coin.go#L599-L601). + * See `GasPrice` in @cosmjs/stargate for a more generic matcher. * - * @param password The user provided password used to generate an encryption key via a KDF. - * This is not normalized internally (see "Unicode normalization" to learn more). + * Separators are not yet supported. */ - static async deserialize(serialization, password) { - const root = JSON.parse(serialization); - if (!(0, utils_1.isNonNullObject)(root)) - throw new Error("Root document is not an object."); - switch (root.type) { - case serializationTypeV1: - return DirectSecp256k1HdWallet.deserializeTypeV1(serialization, password); - default: - throw new Error("Unsupported serialization type"); + static fromString(gasPrice) { + // Use Decimal.fromUserInput and checkDenom for detailed checks and helpful error messages + const matchResult = gasPrice.match(/^([0-9.]+)([a-z][a-z0-9]*)$/i); + if (!matchResult) { + throw new Error("Invalid gas price string"); } + const [_, amount, denom] = matchResult; + checkDenom(denom); + const fractionalDigits = 18; + const decimalAmount = math_1.Decimal.fromUserInput(amount, fractionalDigits); + return new GasPrice(decimalAmount, denom); } /** - * Restores a wallet from an encrypted serialization. - * - * This is an advanced alternative to calling `deserialize(serialization, password)` directly, which allows - * you to offload the KDF execution to a non-UI thread (e.g. in a WebWorker). - * - * The caller is responsible for ensuring the key was derived with the given KDF configuration. This can be - * done using `extractKdfConfiguration(serialization)` and `executeKdf(password, kdfConfiguration)` from this package. + * Returns a string representation of this gas price, e.g. "0.025uatom". + * This can be used as an input to `GasPrice.fromString`. */ - static async deserializeWithEncryptionKey(serialization, encryptionKey) { - const root = JSON.parse(serialization); - if (!(0, utils_1.isNonNullObject)(root)) - throw new Error("Root document is not an object."); - const untypedRoot = root; - switch (untypedRoot.type) { - case serializationTypeV1: { - const decryptedBytes = await (0, wallet_1.decrypt)((0, encoding_1.fromBase64)(untypedRoot.data), encryptionKey, untypedRoot.encryption); - const decryptedDocument = JSON.parse((0, encoding_1.fromUtf8)(decryptedBytes)); - const { mnemonic, accounts } = decryptedDocument; - (0, utils_1.assert)(typeof mnemonic === "string"); - if (!Array.isArray(accounts)) - throw new Error("Property 'accounts' is not an array"); - if (!accounts.every((account) => isDerivationJson(account))) { - throw new Error("Account is not in the correct format."); - } - const firstPrefix = accounts[0].prefix; - if (!accounts.every(({ prefix }) => prefix === firstPrefix)) { - throw new Error("Accounts do not all have the same prefix"); - } - const hdPaths = accounts.map(({ hdPath }) => (0, crypto_1.stringToPath)(hdPath)); - return DirectSecp256k1HdWallet.fromMnemonic(mnemonic, { - hdPaths: hdPaths, - prefix: firstPrefix, - }); - } - default: - throw new Error("Unsupported serialization type"); - } - } - static async deserializeTypeV1(serialization, password) { - const root = JSON.parse(serialization); - if (!(0, utils_1.isNonNullObject)(root)) - throw new Error("Root document is not an object."); - const encryptionKey = await (0, wallet_1.executeKdf)(password, root.kdf); - return DirectSecp256k1HdWallet.deserializeWithEncryptionKey(serialization, encryptionKey); - } - get mnemonic() { - return this.secret.toString(); - } - async getAccounts() { - const accountsWithPrivkeys = await this.getAccountsWithPrivkeys(); - return accountsWithPrivkeys.map(({ algo, pubkey, address }) => ({ - algo: algo, - pubkey: pubkey, - address: address, - })); - } - async signDirect(signerAddress, signDoc) { - const accounts = await this.getAccountsWithPrivkeys(); - const account = accounts.find(({ address }) => address === signerAddress); - if (account === undefined) { - throw new Error(`Address ${signerAddress} not found in wallet`); - } - const { privkey, pubkey } = account; - const signBytes = (0, signing_1.makeSignBytes)(signDoc); - const hashedMessage = (0, crypto_1.sha256)(signBytes); - const signature = await crypto_1.Secp256k1.createSignature(hashedMessage, privkey); - const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]); - const stdSignature = (0, amino_1.encodeSecp256k1Signature)(pubkey, signatureBytes); - return { - signed: signDoc, - signature: stdSignature, - }; + toString() { + return this.amount.toString() + this.denom; } - /** - * Generates an encrypted serialization of this wallet. - * - * @param password The user provided password used to generate an encryption key via a KDF. - * This is not normalized internally (see "Unicode normalization" to learn more). - */ - async serialize(password) { - const kdfConfiguration = basicPasswordHashingOptions; - const encryptionKey = await (0, wallet_1.executeKdf)(password, kdfConfiguration); - return this.serializeWithEncryptionKey(encryptionKey, kdfConfiguration); +} +exports.GasPrice = GasPrice; +function calculateFee(gasLimit, gasPrice) { + const processedGasPrice = typeof gasPrice === "string" ? GasPrice.fromString(gasPrice) : gasPrice; + const { denom, amount: gasPriceAmount } = processedGasPrice; + // Note: Amount can exceed the safe integer range (https://github.com/cosmos/cosmjs/issues/1134), + // which we handle by converting from Decimal to string without going through number. + const amount = gasPriceAmount.multiply(new math_1.Uint53(gasLimit)).ceil().toString(); + return { + amount: (0, proto_signing_1.coins)(amount, denom), + gas: gasLimit.toString(), + }; +} +exports.calculateFee = calculateFee; +//# sourceMappingURL=fee.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/index.js": +/*!******************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/index.js ***! + \******************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; } - /** - * Generates an encrypted serialization of this wallet. - * - * This is an advanced alternative to calling `serialize(password)` directly, which allows you to - * offload the KDF execution to a non-UI thread (e.g. in a WebWorker). - * - * The caller is responsible for ensuring the key was derived with the given KDF options. If this - * is not the case, the wallet cannot be restored with the original password. - */ - async serializeWithEncryptionKey(encryptionKey, kdfConfiguration) { - const dataToEncrypt = { - mnemonic: this.mnemonic, - accounts: this.accounts.map(({ hdPath, prefix }) => ({ - hdPath: (0, crypto_1.pathToString)(hdPath), - prefix: prefix, - })), - }; - const dataToEncryptRaw = (0, encoding_1.toUtf8)(JSON.stringify(dataToEncrypt)); - const encryptionConfiguration = { - algorithm: wallet_1.supportedAlgorithms.xchacha20poly1305Ietf, - }; - const encryptedData = await (0, wallet_1.encrypt)(dataToEncryptRaw, encryptionKey, encryptionConfiguration); - const out = { - type: serializationTypeV1, - kdf: kdfConfiguration, - encryption: encryptionConfiguration, - data: (0, encoding_1.toBase64)(encryptedData), - }; - return JSON.stringify(out); - } - async getKeyPair(hdPath) { - const { privkey } = crypto_1.Slip10.derivePath(crypto_1.Slip10Curve.Secp256k1, this.seed, hdPath); - const { pubkey } = await crypto_1.Secp256k1.makeKeypair(privkey); - return { - privkey: privkey, - pubkey: crypto_1.Secp256k1.compressPubkey(pubkey), - }; - } - async getAccountsWithPrivkeys() { - return Promise.all(this.accounts.map(async ({ hdPath, prefix }) => { - const { privkey, pubkey } = await this.getKeyPair(hdPath); - const address = (0, encoding_1.toBech32)(prefix, (0, amino_1.rawSecp256k1PubkeyToRawAddress)(pubkey)); - return { - algo: "secp256k1", - privkey: privkey, - pubkey: pubkey, - address: address, - }; - })); - } -} -exports.DirectSecp256k1HdWallet = DirectSecp256k1HdWallet; -//# sourceMappingURL=directsecp256k1hdwallet.js.map + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.isMsgWithdrawDelegatorRewardEncodeObject = exports.isMsgVoteWeightedEncodeObject = exports.isMsgVoteEncodeObject = exports.isMsgUndelegateEncodeObject = exports.isMsgTransferEncodeObject = exports.isMsgSubmitProposalEncodeObject = exports.isMsgSendEncodeObject = exports.isMsgEditValidatorEncodeObject = exports.isMsgDepositEncodeObject = exports.isMsgDelegateEncodeObject = exports.isMsgCreateValidatorEncodeObject = exports.isMsgBeginRedelegateEncodeObject = exports.isAminoMsgWithdrawValidatorCommission = exports.isAminoMsgWithdrawDelegatorReward = exports.isAminoMsgVoteWeighted = exports.isAminoMsgVote = exports.isAminoMsgVerifyInvariant = exports.isAminoMsgUnjail = exports.isAminoMsgUndelegate = exports.isAminoMsgTransfer = exports.isAminoMsgSubmitProposal = exports.isAminoMsgSubmitEvidence = exports.isAminoMsgSetWithdrawAddress = exports.isAminoMsgSend = exports.isAminoMsgMultiSend = exports.isAminoMsgFundCommunityPool = exports.isAminoMsgEditValidator = exports.isAminoMsgDeposit = exports.isAminoMsgDelegate = exports.isAminoMsgCreateVestingAccount = exports.isAminoMsgCreateValidator = exports.isAminoMsgBeginRedelegate = exports.createVestingAminoConverters = exports.createStakingAminoConverters = exports.createSlashingAminoConverters = exports.createIbcAminoConverters = exports.createGroupAminoConverters = exports.createGovAminoConverters = exports.createFeegrantAminoConverters = exports.createEvidenceAminoConverters = exports.createDistributionAminoConverters = exports.createCrysisAminoConverters = exports.createBankAminoConverters = exports.createAuthzAminoConverters = exports.logs = exports.GasPrice = exports.calculateFee = exports.fromTendermintEvent = exports.AminoTypes = exports.accountFromAny = void 0; +exports.parseCoins = exports.makeCosmoshubPath = exports.coins = exports.coin = exports.TimeoutError = exports.StargateClient = exports.isDeliverTxSuccess = exports.isDeliverTxFailure = exports.BroadcastTxError = exports.assertIsDeliverTxSuccess = exports.assertIsDeliverTxFailure = exports.SigningStargateClient = exports.defaultRegistryTypes = exports.createDefaultAminoConverters = exports.isSearchTxQueryArray = exports.QueryClient = exports.decodeCosmosSdkDecFromProto = exports.createProtobufRpcClient = exports.createPagination = exports.makeMultisignedTxBytes = exports.makeMultisignedTx = exports.setupTxExtension = exports.setupStakingExtension = exports.setupSlashingExtension = exports.setupMintExtension = exports.setupIbcExtension = exports.setupGovExtension = exports.setupFeegrantExtension = exports.setupDistributionExtension = exports.setupBankExtension = exports.setupAuthzExtension = exports.setupAuthExtension = void 0; +var accounts_1 = __webpack_require__(/*! ./accounts */ "./node_modules/@cosmjs/stargate/build/accounts.js"); +Object.defineProperty(exports, "accountFromAny", ({ enumerable: true, get: function () { return accounts_1.accountFromAny; } })); +var aminotypes_1 = __webpack_require__(/*! ./aminotypes */ "./node_modules/@cosmjs/stargate/build/aminotypes.js"); +Object.defineProperty(exports, "AminoTypes", ({ enumerable: true, get: function () { return aminotypes_1.AminoTypes; } })); +var events_1 = __webpack_require__(/*! ./events */ "./node_modules/@cosmjs/stargate/build/events.js"); +Object.defineProperty(exports, "fromTendermintEvent", ({ enumerable: true, get: function () { return events_1.fromTendermintEvent; } })); +var fee_1 = __webpack_require__(/*! ./fee */ "./node_modules/@cosmjs/stargate/build/fee.js"); +Object.defineProperty(exports, "calculateFee", ({ enumerable: true, get: function () { return fee_1.calculateFee; } })); +Object.defineProperty(exports, "GasPrice", ({ enumerable: true, get: function () { return fee_1.GasPrice; } })); +exports.logs = __importStar(__webpack_require__(/*! ./logs */ "./node_modules/@cosmjs/stargate/build/logs.js")); +var modules_1 = __webpack_require__(/*! ./modules */ "./node_modules/@cosmjs/stargate/build/modules/index.js"); +Object.defineProperty(exports, "createAuthzAminoConverters", ({ enumerable: true, get: function () { return modules_1.createAuthzAminoConverters; } })); +Object.defineProperty(exports, "createBankAminoConverters", ({ enumerable: true, get: function () { return modules_1.createBankAminoConverters; } })); +Object.defineProperty(exports, "createCrysisAminoConverters", ({ enumerable: true, get: function () { return modules_1.createCrysisAminoConverters; } })); +Object.defineProperty(exports, "createDistributionAminoConverters", ({ enumerable: true, get: function () { return modules_1.createDistributionAminoConverters; } })); +Object.defineProperty(exports, "createEvidenceAminoConverters", ({ enumerable: true, get: function () { return modules_1.createEvidenceAminoConverters; } })); +Object.defineProperty(exports, "createFeegrantAminoConverters", ({ enumerable: true, get: function () { return modules_1.createFeegrantAminoConverters; } })); +Object.defineProperty(exports, "createGovAminoConverters", ({ enumerable: true, get: function () { return modules_1.createGovAminoConverters; } })); +Object.defineProperty(exports, "createGroupAminoConverters", ({ enumerable: true, get: function () { return modules_1.createGroupAminoConverters; } })); +Object.defineProperty(exports, "createIbcAminoConverters", ({ enumerable: true, get: function () { return modules_1.createIbcAminoConverters; } })); +Object.defineProperty(exports, "createSlashingAminoConverters", ({ enumerable: true, get: function () { return modules_1.createSlashingAminoConverters; } })); +Object.defineProperty(exports, "createStakingAminoConverters", ({ enumerable: true, get: function () { return modules_1.createStakingAminoConverters; } })); +Object.defineProperty(exports, "createVestingAminoConverters", ({ enumerable: true, get: function () { return modules_1.createVestingAminoConverters; } })); +Object.defineProperty(exports, "isAminoMsgBeginRedelegate", ({ enumerable: true, get: function () { return modules_1.isAminoMsgBeginRedelegate; } })); +Object.defineProperty(exports, "isAminoMsgCreateValidator", ({ enumerable: true, get: function () { return modules_1.isAminoMsgCreateValidator; } })); +Object.defineProperty(exports, "isAminoMsgCreateVestingAccount", ({ enumerable: true, get: function () { return modules_1.isAminoMsgCreateVestingAccount; } })); +Object.defineProperty(exports, "isAminoMsgDelegate", ({ enumerable: true, get: function () { return modules_1.isAminoMsgDelegate; } })); +Object.defineProperty(exports, "isAminoMsgDeposit", ({ enumerable: true, get: function () { return modules_1.isAminoMsgDeposit; } })); +Object.defineProperty(exports, "isAminoMsgEditValidator", ({ enumerable: true, get: function () { return modules_1.isAminoMsgEditValidator; } })); +Object.defineProperty(exports, "isAminoMsgFundCommunityPool", ({ enumerable: true, get: function () { return modules_1.isAminoMsgFundCommunityPool; } })); +Object.defineProperty(exports, "isAminoMsgMultiSend", ({ enumerable: true, get: function () { return modules_1.isAminoMsgMultiSend; } })); +Object.defineProperty(exports, "isAminoMsgSend", ({ enumerable: true, get: function () { return modules_1.isAminoMsgSend; } })); +Object.defineProperty(exports, "isAminoMsgSetWithdrawAddress", ({ enumerable: true, get: function () { return modules_1.isAminoMsgSetWithdrawAddress; } })); +Object.defineProperty(exports, "isAminoMsgSubmitEvidence", ({ enumerable: true, get: function () { return modules_1.isAminoMsgSubmitEvidence; } })); +Object.defineProperty(exports, "isAminoMsgSubmitProposal", ({ enumerable: true, get: function () { return modules_1.isAminoMsgSubmitProposal; } })); +Object.defineProperty(exports, "isAminoMsgTransfer", ({ enumerable: true, get: function () { return modules_1.isAminoMsgTransfer; } })); +Object.defineProperty(exports, "isAminoMsgUndelegate", ({ enumerable: true, get: function () { return modules_1.isAminoMsgUndelegate; } })); +Object.defineProperty(exports, "isAminoMsgUnjail", ({ enumerable: true, get: function () { return modules_1.isAminoMsgUnjail; } })); +Object.defineProperty(exports, "isAminoMsgVerifyInvariant", ({ enumerable: true, get: function () { return modules_1.isAminoMsgVerifyInvariant; } })); +Object.defineProperty(exports, "isAminoMsgVote", ({ enumerable: true, get: function () { return modules_1.isAminoMsgVote; } })); +Object.defineProperty(exports, "isAminoMsgVoteWeighted", ({ enumerable: true, get: function () { return modules_1.isAminoMsgVoteWeighted; } })); +Object.defineProperty(exports, "isAminoMsgWithdrawDelegatorReward", ({ enumerable: true, get: function () { return modules_1.isAminoMsgWithdrawDelegatorReward; } })); +Object.defineProperty(exports, "isAminoMsgWithdrawValidatorCommission", ({ enumerable: true, get: function () { return modules_1.isAminoMsgWithdrawValidatorCommission; } })); +Object.defineProperty(exports, "isMsgBeginRedelegateEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgBeginRedelegateEncodeObject; } })); +Object.defineProperty(exports, "isMsgCreateValidatorEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgCreateValidatorEncodeObject; } })); +Object.defineProperty(exports, "isMsgDelegateEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgDelegateEncodeObject; } })); +Object.defineProperty(exports, "isMsgDepositEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgDepositEncodeObject; } })); +Object.defineProperty(exports, "isMsgEditValidatorEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgEditValidatorEncodeObject; } })); +Object.defineProperty(exports, "isMsgSendEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgSendEncodeObject; } })); +Object.defineProperty(exports, "isMsgSubmitProposalEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgSubmitProposalEncodeObject; } })); +Object.defineProperty(exports, "isMsgTransferEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgTransferEncodeObject; } })); +Object.defineProperty(exports, "isMsgUndelegateEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgUndelegateEncodeObject; } })); +Object.defineProperty(exports, "isMsgVoteEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgVoteEncodeObject; } })); +Object.defineProperty(exports, "isMsgVoteWeightedEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgVoteWeightedEncodeObject; } })); +Object.defineProperty(exports, "isMsgWithdrawDelegatorRewardEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgWithdrawDelegatorRewardEncodeObject; } })); +Object.defineProperty(exports, "setupAuthExtension", ({ enumerable: true, get: function () { return modules_1.setupAuthExtension; } })); +Object.defineProperty(exports, "setupAuthzExtension", ({ enumerable: true, get: function () { return modules_1.setupAuthzExtension; } })); +Object.defineProperty(exports, "setupBankExtension", ({ enumerable: true, get: function () { return modules_1.setupBankExtension; } })); +Object.defineProperty(exports, "setupDistributionExtension", ({ enumerable: true, get: function () { return modules_1.setupDistributionExtension; } })); +Object.defineProperty(exports, "setupFeegrantExtension", ({ enumerable: true, get: function () { return modules_1.setupFeegrantExtension; } })); +Object.defineProperty(exports, "setupGovExtension", ({ enumerable: true, get: function () { return modules_1.setupGovExtension; } })); +Object.defineProperty(exports, "setupIbcExtension", ({ enumerable: true, get: function () { return modules_1.setupIbcExtension; } })); +Object.defineProperty(exports, "setupMintExtension", ({ enumerable: true, get: function () { return modules_1.setupMintExtension; } })); +Object.defineProperty(exports, "setupSlashingExtension", ({ enumerable: true, get: function () { return modules_1.setupSlashingExtension; } })); +Object.defineProperty(exports, "setupStakingExtension", ({ enumerable: true, get: function () { return modules_1.setupStakingExtension; } })); +Object.defineProperty(exports, "setupTxExtension", ({ enumerable: true, get: function () { return modules_1.setupTxExtension; } })); +var multisignature_1 = __webpack_require__(/*! ./multisignature */ "./node_modules/@cosmjs/stargate/build/multisignature.js"); +Object.defineProperty(exports, "makeMultisignedTx", ({ enumerable: true, get: function () { return multisignature_1.makeMultisignedTx; } })); +Object.defineProperty(exports, "makeMultisignedTxBytes", ({ enumerable: true, get: function () { return multisignature_1.makeMultisignedTxBytes; } })); +var queryclient_1 = __webpack_require__(/*! ./queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); +Object.defineProperty(exports, "createPagination", ({ enumerable: true, get: function () { return queryclient_1.createPagination; } })); +Object.defineProperty(exports, "createProtobufRpcClient", ({ enumerable: true, get: function () { return queryclient_1.createProtobufRpcClient; } })); +Object.defineProperty(exports, "decodeCosmosSdkDecFromProto", ({ enumerable: true, get: function () { return queryclient_1.decodeCosmosSdkDecFromProto; } })); +Object.defineProperty(exports, "QueryClient", ({ enumerable: true, get: function () { return queryclient_1.QueryClient; } })); +var search_1 = __webpack_require__(/*! ./search */ "./node_modules/@cosmjs/stargate/build/search.js"); +Object.defineProperty(exports, "isSearchTxQueryArray", ({ enumerable: true, get: function () { return search_1.isSearchTxQueryArray; } })); +var signingstargateclient_1 = __webpack_require__(/*! ./signingstargateclient */ "./node_modules/@cosmjs/stargate/build/signingstargateclient.js"); +Object.defineProperty(exports, "createDefaultAminoConverters", ({ enumerable: true, get: function () { return signingstargateclient_1.createDefaultAminoConverters; } })); +Object.defineProperty(exports, "defaultRegistryTypes", ({ enumerable: true, get: function () { return signingstargateclient_1.defaultRegistryTypes; } })); +Object.defineProperty(exports, "SigningStargateClient", ({ enumerable: true, get: function () { return signingstargateclient_1.SigningStargateClient; } })); +var stargateclient_1 = __webpack_require__(/*! ./stargateclient */ "./node_modules/@cosmjs/stargate/build/stargateclient.js"); +Object.defineProperty(exports, "assertIsDeliverTxFailure", ({ enumerable: true, get: function () { return stargateclient_1.assertIsDeliverTxFailure; } })); +Object.defineProperty(exports, "assertIsDeliverTxSuccess", ({ enumerable: true, get: function () { return stargateclient_1.assertIsDeliverTxSuccess; } })); +Object.defineProperty(exports, "BroadcastTxError", ({ enumerable: true, get: function () { return stargateclient_1.BroadcastTxError; } })); +Object.defineProperty(exports, "isDeliverTxFailure", ({ enumerable: true, get: function () { return stargateclient_1.isDeliverTxFailure; } })); +Object.defineProperty(exports, "isDeliverTxSuccess", ({ enumerable: true, get: function () { return stargateclient_1.isDeliverTxSuccess; } })); +Object.defineProperty(exports, "StargateClient", ({ enumerable: true, get: function () { return stargateclient_1.StargateClient; } })); +Object.defineProperty(exports, "TimeoutError", ({ enumerable: true, get: function () { return stargateclient_1.TimeoutError; } })); +var proto_signing_1 = __webpack_require__(/*! @cosmjs/proto-signing */ "./node_modules/@cosmjs/proto-signing/build/index.js"); +Object.defineProperty(exports, "coin", ({ enumerable: true, get: function () { return proto_signing_1.coin; } })); +Object.defineProperty(exports, "coins", ({ enumerable: true, get: function () { return proto_signing_1.coins; } })); +Object.defineProperty(exports, "makeCosmoshubPath", ({ enumerable: true, get: function () { return proto_signing_1.makeCosmoshubPath; } })); +Object.defineProperty(exports, "parseCoins", ({ enumerable: true, get: function () { return proto_signing_1.parseCoins; } })); +//# sourceMappingURL=index.js.map /***/ }), -/***/ "./node_modules/@cosmjs/proto-signing/build/directsecp256k1wallet.js": -/*!***************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/build/directsecp256k1wallet.js ***! - \***************************************************************************/ +/***/ "./node_modules/@cosmjs/stargate/build/logs.js": +/*!*****************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/logs.js ***! + \*****************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.DirectSecp256k1Wallet = void 0; -const amino_1 = __webpack_require__(/*! @cosmjs/amino */ "./node_modules/@cosmjs/amino/build/index.js"); -const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/index.js"); -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/index.js"); -const signing_1 = __webpack_require__(/*! ./signing */ "./node_modules/@cosmjs/proto-signing/build/signing.js"); +exports.findAttribute = exports.parseRawLog = exports.parseLogs = exports.parseLog = exports.parseEvent = exports.parseAttribute = void 0; +/* eslint-disable @typescript-eslint/naming-convention */ +const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/utils/build/index.js"); +function parseAttribute(input) { + if (!(0, utils_1.isNonNullObject)(input)) + throw new Error("Attribute must be a non-null object"); + const { key, value } = input; + if (typeof key !== "string" || !key) + throw new Error("Attribute's key must be a non-empty string"); + if (typeof value !== "string" && typeof value !== "undefined") { + throw new Error("Attribute's value must be a string or unset"); + } + return { + key: key, + value: value || "", + }; +} +exports.parseAttribute = parseAttribute; +function parseEvent(input) { + if (!(0, utils_1.isNonNullObject)(input)) + throw new Error("Event must be a non-null object"); + const { type, attributes } = input; + if (typeof type !== "string" || type === "") { + throw new Error(`Event type must be a non-empty string`); + } + if (!Array.isArray(attributes)) + throw new Error("Event's attributes must be an array"); + return { + type: type, + attributes: attributes.map(parseAttribute), + }; +} +exports.parseEvent = parseEvent; +function parseLog(input) { + if (!(0, utils_1.isNonNullObject)(input)) + throw new Error("Log must be a non-null object"); + const { msg_index, log, events } = input; + if (typeof msg_index !== "number") + throw new Error("Log's msg_index must be a number"); + if (typeof log !== "string") + throw new Error("Log's log must be a string"); + if (!Array.isArray(events)) + throw new Error("Log's events must be an array"); + return { + msg_index: msg_index, + log: log, + events: events.map(parseEvent), + }; +} +exports.parseLog = parseLog; +function parseLogs(input) { + if (!Array.isArray(input)) + throw new Error("Logs must be an array"); + return input.map(parseLog); +} +exports.parseLogs = parseLogs; +function parseRawLog(input = "[]") { + const logsToParse = JSON.parse(input).map(({ events }, i) => ({ + msg_index: i, + events, + log: "", + })); + return parseLogs(logsToParse); +} +exports.parseRawLog = parseRawLog; /** - * A wallet that holds a single secp256k1 keypair. + * Searches in logs for the first event of the given event type and in that event + * for the first first attribute with the given attribute key. * - * If you want to work with BIP39 mnemonics and multiple accounts, use DirectSecp256k1HdWallet. + * Throws if the attribute was not found. */ -class DirectSecp256k1Wallet { - constructor(privkey, pubkey, prefix) { - this.privkey = privkey; - this.pubkey = pubkey; - this.prefix = prefix; - } - /** - * Creates a DirectSecp256k1Wallet from the given private key - * - * @param privkey The private key. - * @param prefix The bech32 address prefix (human readable part). Defaults to "cosmos". - */ - static async fromKey(privkey, prefix = "cosmos") { - const uncompressed = (await crypto_1.Secp256k1.makeKeypair(privkey)).pubkey; - return new DirectSecp256k1Wallet(privkey, crypto_1.Secp256k1.compressPubkey(uncompressed), prefix); - } - get address() { - return (0, encoding_1.toBech32)(this.prefix, (0, amino_1.rawSecp256k1PubkeyToRawAddress)(this.pubkey)); - } - async getAccounts() { - return [ - { - algo: "secp256k1", - address: this.address, - pubkey: this.pubkey, - }, - ]; - } - async signDirect(address, signDoc) { - const signBytes = (0, signing_1.makeSignBytes)(signDoc); - if (address !== this.address) { - throw new Error(`Address ${address} not found in wallet`); - } - const hashedMessage = (0, crypto_1.sha256)(signBytes); - const signature = await crypto_1.Secp256k1.createSignature(hashedMessage, this.privkey); - const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]); - const stdSignature = (0, amino_1.encodeSecp256k1Signature)(this.pubkey, signatureBytes); - return { - signed: signDoc, - signature: stdSignature, - }; +function findAttribute(logs, eventType, attrKey) { + const firstLogs = logs.find(() => true); + const out = firstLogs?.events + .find((event) => event.type === eventType) + ?.attributes.find((attr) => attr.key === attrKey); + if (!out) { + throw new Error(`Could not find attribute '${attrKey}' in first event of type '${eventType}' in first log.`); } + return out; } -exports.DirectSecp256k1Wallet = DirectSecp256k1Wallet; -//# sourceMappingURL=directsecp256k1wallet.js.map +exports.findAttribute = findAttribute; +//# sourceMappingURL=logs.js.map /***/ }), -/***/ "./node_modules/@cosmjs/proto-signing/build/index.js": -/*!***********************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/build/index.js ***! - \***********************************************************/ +/***/ "./node_modules/@cosmjs/stargate/build/modules/auth/queries.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/auth/queries.js ***! + \*********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.coins = exports.coin = exports.executeKdf = exports.makeSignDoc = exports.makeSignBytes = exports.makeAuthInfoBytes = exports.isOfflineDirectSigner = exports.Registry = exports.isTxBodyEncodeObject = exports.isTsProtoGeneratedType = exports.isPbjsGeneratedType = exports.encodePubkey = exports.decodePubkey = exports.anyToSinglePubkey = exports.makeCosmoshubPath = exports.DirectSecp256k1Wallet = exports.extractKdfConfiguration = exports.DirectSecp256k1HdWallet = exports.decodeTxRaw = exports.parseCoins = void 0; -// This type happens to be shared between Amino and Direct sign modes -var coins_1 = __webpack_require__(/*! ./coins */ "./node_modules/@cosmjs/proto-signing/build/coins.js"); -Object.defineProperty(exports, "parseCoins", ({ enumerable: true, get: function () { return coins_1.parseCoins; } })); -var decode_1 = __webpack_require__(/*! ./decode */ "./node_modules/@cosmjs/proto-signing/build/decode.js"); -Object.defineProperty(exports, "decodeTxRaw", ({ enumerable: true, get: function () { return decode_1.decodeTxRaw; } })); -var directsecp256k1hdwallet_1 = __webpack_require__(/*! ./directsecp256k1hdwallet */ "./node_modules/@cosmjs/proto-signing/build/directsecp256k1hdwallet.js"); -Object.defineProperty(exports, "DirectSecp256k1HdWallet", ({ enumerable: true, get: function () { return directsecp256k1hdwallet_1.DirectSecp256k1HdWallet; } })); -Object.defineProperty(exports, "extractKdfConfiguration", ({ enumerable: true, get: function () { return directsecp256k1hdwallet_1.extractKdfConfiguration; } })); -var directsecp256k1wallet_1 = __webpack_require__(/*! ./directsecp256k1wallet */ "./node_modules/@cosmjs/proto-signing/build/directsecp256k1wallet.js"); -Object.defineProperty(exports, "DirectSecp256k1Wallet", ({ enumerable: true, get: function () { return directsecp256k1wallet_1.DirectSecp256k1Wallet; } })); -var paths_1 = __webpack_require__(/*! ./paths */ "./node_modules/@cosmjs/proto-signing/build/paths.js"); -Object.defineProperty(exports, "makeCosmoshubPath", ({ enumerable: true, get: function () { return paths_1.makeCosmoshubPath; } })); -var pubkey_1 = __webpack_require__(/*! ./pubkey */ "./node_modules/@cosmjs/proto-signing/build/pubkey.js"); -Object.defineProperty(exports, "anyToSinglePubkey", ({ enumerable: true, get: function () { return pubkey_1.anyToSinglePubkey; } })); -Object.defineProperty(exports, "decodePubkey", ({ enumerable: true, get: function () { return pubkey_1.decodePubkey; } })); -Object.defineProperty(exports, "encodePubkey", ({ enumerable: true, get: function () { return pubkey_1.encodePubkey; } })); -var registry_1 = __webpack_require__(/*! ./registry */ "./node_modules/@cosmjs/proto-signing/build/registry.js"); -Object.defineProperty(exports, "isPbjsGeneratedType", ({ enumerable: true, get: function () { return registry_1.isPbjsGeneratedType; } })); -Object.defineProperty(exports, "isTsProtoGeneratedType", ({ enumerable: true, get: function () { return registry_1.isTsProtoGeneratedType; } })); -Object.defineProperty(exports, "isTxBodyEncodeObject", ({ enumerable: true, get: function () { return registry_1.isTxBodyEncodeObject; } })); -Object.defineProperty(exports, "Registry", ({ enumerable: true, get: function () { return registry_1.Registry; } })); -var signer_1 = __webpack_require__(/*! ./signer */ "./node_modules/@cosmjs/proto-signing/build/signer.js"); -Object.defineProperty(exports, "isOfflineDirectSigner", ({ enumerable: true, get: function () { return signer_1.isOfflineDirectSigner; } })); -var signing_1 = __webpack_require__(/*! ./signing */ "./node_modules/@cosmjs/proto-signing/build/signing.js"); -Object.defineProperty(exports, "makeAuthInfoBytes", ({ enumerable: true, get: function () { return signing_1.makeAuthInfoBytes; } })); -Object.defineProperty(exports, "makeSignBytes", ({ enumerable: true, get: function () { return signing_1.makeSignBytes; } })); -Object.defineProperty(exports, "makeSignDoc", ({ enumerable: true, get: function () { return signing_1.makeSignDoc; } })); -var wallet_1 = __webpack_require__(/*! ./wallet */ "./node_modules/@cosmjs/proto-signing/build/wallet.js"); -Object.defineProperty(exports, "executeKdf", ({ enumerable: true, get: function () { return wallet_1.executeKdf; } })); -var amino_1 = __webpack_require__(/*! @cosmjs/amino */ "./node_modules/@cosmjs/amino/build/index.js"); -Object.defineProperty(exports, "coin", ({ enumerable: true, get: function () { return amino_1.coin; } })); -Object.defineProperty(exports, "coins", ({ enumerable: true, get: function () { return amino_1.coins; } })); -//# sourceMappingURL=index.js.map +exports.setupAuthExtension = void 0; +const query_1 = __webpack_require__(/*! cosmjs-types/cosmos/auth/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/auth/v1beta1/query.js"); +const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); +function setupAuthExtension(base) { + const rpc = (0, queryclient_1.createProtobufRpcClient)(base); + // Use this service to get easy typed access to query methods + // This cannot be used for proof verification + const queryService = new query_1.QueryClientImpl(rpc); + return { + auth: { + account: async (address) => { + const { account } = await queryService.Account({ address: address }); + return account ?? null; + }, + }, + }; +} +exports.setupAuthExtension = setupAuthExtension; +//# sourceMappingURL=queries.js.map /***/ }), -/***/ "./node_modules/@cosmjs/proto-signing/build/paths.js": -/*!***********************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/build/paths.js ***! - \***********************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { +/***/ "./node_modules/@cosmjs/stargate/build/modules/authz/aminomessages.js": +/*!****************************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/authz/aminomessages.js ***! + \****************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.makeCosmoshubPath = void 0; -const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/index.js"); -/** - * The Cosmos Hub derivation path in the form `m/44'/118'/0'/0/a` - * with 0-based account index `a`. - */ -function makeCosmoshubPath(a) { - return [ - crypto_1.Slip10RawIndex.hardened(44), - crypto_1.Slip10RawIndex.hardened(118), - crypto_1.Slip10RawIndex.hardened(0), - crypto_1.Slip10RawIndex.normal(0), - crypto_1.Slip10RawIndex.normal(a), - ]; +exports.createAuthzAminoConverters = void 0; +function createAuthzAminoConverters() { + return { + // For Cosmos SDK < 0.46 the Amino JSON codec was broken on chain and thus inaccessible. + // Now this can be implemented for 0.46+ chains, see + // https://github.com/cosmos/cosmjs/issues/1092 + // + // "/cosmos.authz.v1beta1.MsgGrant": IMPLEMENT ME, + // "/cosmos.authz.v1beta1.MsgExec": IMPLEMENT ME, + // "/cosmos.authz.v1beta1.MsgRevoke": IMPLEMENT ME, + }; } -exports.makeCosmoshubPath = makeCosmoshubPath; -//# sourceMappingURL=paths.js.map +exports.createAuthzAminoConverters = createAuthzAminoConverters; +//# sourceMappingURL=aminomessages.js.map /***/ }), -/***/ "./node_modules/@cosmjs/proto-signing/build/pubkey.js": -/*!************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/build/pubkey.js ***! - \************************************************************/ +/***/ "./node_modules/@cosmjs/stargate/build/modules/authz/messages.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/authz/messages.js ***! + \***********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.decodePubkey = exports.anyToSinglePubkey = exports.encodePubkey = void 0; -/* eslint-disable @typescript-eslint/naming-convention */ -const amino_1 = __webpack_require__(/*! @cosmjs/amino */ "./node_modules/@cosmjs/amino/build/index.js"); -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/index.js"); -const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/math/build/index.js"); -const keys_1 = __webpack_require__(/*! cosmjs-types/cosmos/crypto/ed25519/keys */ "./node_modules/cosmjs-types/cosmos/crypto/ed25519/keys.js"); -const keys_2 = __webpack_require__(/*! cosmjs-types/cosmos/crypto/multisig/keys */ "./node_modules/cosmjs-types/cosmos/crypto/multisig/keys.js"); -const keys_3 = __webpack_require__(/*! cosmjs-types/cosmos/crypto/secp256k1/keys */ "./node_modules/cosmjs-types/cosmos/crypto/secp256k1/keys.js"); -const any_1 = __webpack_require__(/*! cosmjs-types/google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); -/** - * Takes a pubkey in the Amino JSON object style (type/value wrapper) - * and convertes it into a protobuf `Any`. - * - * This is the reverse operation to `decodePubkey`. - */ -function encodePubkey(pubkey) { - if ((0, amino_1.isSecp256k1Pubkey)(pubkey)) { - const pubkeyProto = keys_3.PubKey.fromPartial({ - key: (0, encoding_1.fromBase64)(pubkey.value), - }); - return any_1.Any.fromPartial({ - typeUrl: "/cosmos.crypto.secp256k1.PubKey", - value: Uint8Array.from(keys_3.PubKey.encode(pubkeyProto).finish()), - }); - } - else if ((0, amino_1.isEd25519Pubkey)(pubkey)) { - const pubkeyProto = keys_1.PubKey.fromPartial({ - key: (0, encoding_1.fromBase64)(pubkey.value), - }); - return any_1.Any.fromPartial({ - typeUrl: "/cosmos.crypto.ed25519.PubKey", - value: Uint8Array.from(keys_1.PubKey.encode(pubkeyProto).finish()), - }); - } - else if ((0, amino_1.isMultisigThresholdPubkey)(pubkey)) { - const pubkeyProto = keys_2.LegacyAminoPubKey.fromPartial({ - threshold: math_1.Uint53.fromString(pubkey.value.threshold).toNumber(), - publicKeys: pubkey.value.pubkeys.map(encodePubkey), - }); - return any_1.Any.fromPartial({ - typeUrl: "/cosmos.crypto.multisig.LegacyAminoPubKey", - value: Uint8Array.from(keys_2.LegacyAminoPubKey.encode(pubkeyProto).finish()), - }); - } - else { - throw new Error(`Pubkey type ${pubkey.type} not recognized`); - } -} -exports.encodePubkey = encodePubkey; -/** - * Decodes a single pubkey (i.e. not a multisig pubkey) from `Any` into - * `SinglePubkey`. - * - * In most cases you probably want to use `decodePubkey`. - */ -function anyToSinglePubkey(pubkey) { - switch (pubkey.typeUrl) { - case "/cosmos.crypto.secp256k1.PubKey": { - const { key } = keys_3.PubKey.decode(pubkey.value); - return (0, amino_1.encodeSecp256k1Pubkey)(key); - } - case "/cosmos.crypto.ed25519.PubKey": { - const { key } = keys_1.PubKey.decode(pubkey.value); - return (0, amino_1.encodeEd25519Pubkey)(key); - } - default: - throw new Error(`Pubkey type_url ${pubkey.typeUrl} not recognized as single public key type`); - } -} -exports.anyToSinglePubkey = anyToSinglePubkey; -/** - * Decodes a pubkey from a protobuf `Any` into `Pubkey`. - * This supports single pubkeys such as Cosmos ed25519 and secp256k1 keys - * as well as multisig threshold pubkeys. - */ -function decodePubkey(pubkey) { - switch (pubkey.typeUrl) { - case "/cosmos.crypto.secp256k1.PubKey": - case "/cosmos.crypto.ed25519.PubKey": { - return anyToSinglePubkey(pubkey); - } - case "/cosmos.crypto.multisig.LegacyAminoPubKey": { - const { threshold, publicKeys } = keys_2.LegacyAminoPubKey.decode(pubkey.value); - const out = { - type: "tendermint/PubKeyMultisigThreshold", - value: { - threshold: threshold.toString(), - pubkeys: publicKeys.map(anyToSinglePubkey), - }, - }; - return out; - } - default: - throw new Error(`Pubkey type_url ${pubkey.typeUrl} not recognized`); - } -} -exports.decodePubkey = decodePubkey; -//# sourceMappingURL=pubkey.js.map +exports.authzTypes = void 0; +const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/authz/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/authz/v1beta1/tx.js"); +exports.authzTypes = [ + ["/cosmos.authz.v1beta1.MsgExec", tx_1.MsgExec], + ["/cosmos.authz.v1beta1.MsgGrant", tx_1.MsgGrant], + ["/cosmos.authz.v1beta1.MsgRevoke", tx_1.MsgRevoke], +]; +//# sourceMappingURL=messages.js.map /***/ }), -/***/ "./node_modules/@cosmjs/proto-signing/build/registry.js": -/*!**************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/build/registry.js ***! - \**************************************************************/ +/***/ "./node_modules/@cosmjs/stargate/build/modules/authz/queries.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/authz/queries.js ***! + \**********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Registry = exports.isTxBodyEncodeObject = exports.isPbjsGeneratedType = exports.isTsProtoGeneratedType = void 0; -/* eslint-disable @typescript-eslint/naming-convention */ -const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/bank/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/bank/v1beta1/tx.js"); -const coin_1 = __webpack_require__(/*! cosmjs-types/cosmos/base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); -const tx_2 = __webpack_require__(/*! cosmjs-types/cosmos/tx/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/tx/v1beta1/tx.js"); -const any_1 = __webpack_require__(/*! cosmjs-types/google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); -function isTsProtoGeneratedType(type) { - return typeof type.fromPartial === "function"; +exports.setupAuthzExtension = void 0; +const query_1 = __webpack_require__(/*! cosmjs-types/cosmos/authz/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/authz/v1beta1/query.js"); +const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); +function setupAuthzExtension(base) { + // Use this service to get easy typed access to query methods + // This cannot be used for proof verification + const rpc = (0, queryclient_1.createProtobufRpcClient)(base); + const queryService = new query_1.QueryClientImpl(rpc); + return { + authz: { + grants: async (granter, grantee, msgTypeUrl, paginationKey) => { + return await queryService.Grants({ + granter: granter, + grantee: grantee, + msgTypeUrl: msgTypeUrl, + pagination: (0, queryclient_1.createPagination)(paginationKey), + }); + }, + granteeGrants: async (grantee, paginationKey) => { + return await queryService.GranteeGrants({ + grantee: grantee, + pagination: (0, queryclient_1.createPagination)(paginationKey), + }); + }, + granterGrants: async (granter, paginationKey) => { + return await queryService.GranterGrants({ + granter: granter, + pagination: (0, queryclient_1.createPagination)(paginationKey), + }); + }, + }, + }; } -exports.isTsProtoGeneratedType = isTsProtoGeneratedType; -function isPbjsGeneratedType(type) { - return !isTsProtoGeneratedType(type); +exports.setupAuthzExtension = setupAuthzExtension; +//# sourceMappingURL=queries.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/bank/aminomessages.js": +/*!***************************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/bank/aminomessages.js ***! + \***************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.createBankAminoConverters = exports.isAminoMsgMultiSend = exports.isAminoMsgSend = void 0; +function isAminoMsgSend(msg) { + return msg.type === "cosmos-sdk/MsgSend"; } -exports.isPbjsGeneratedType = isPbjsGeneratedType; -const defaultTypeUrls = { - cosmosCoin: "/cosmos.base.v1beta1.Coin", - cosmosMsgSend: "/cosmos.bank.v1beta1.MsgSend", - cosmosTxBody: "/cosmos.tx.v1beta1.TxBody", - googleAny: "/google.protobuf.Any", -}; -function isTxBodyEncodeObject(encodeObject) { - return encodeObject.typeUrl === "/cosmos.tx.v1beta1.TxBody"; +exports.isAminoMsgSend = isAminoMsgSend; +function isAminoMsgMultiSend(msg) { + return msg.type === "cosmos-sdk/MsgMultiSend"; } -exports.isTxBodyEncodeObject = isTxBodyEncodeObject; -class Registry { - /** - * Creates a new Registry for mapping protobuf type identifiers/type URLs to - * actual implementations. Those implementations are typically generated with ts-proto - * but we also support protobuf.js as a type generator. - * - * If there is no parameter given, a `new Registry()` adds the types `Coin` and `MsgSend` - * for historic reasons. Those can be overriden by customTypes. - * - * There are currently two methods for adding new types: - * 1. Passing types to the constructor. - * 2. Using the `register()` method - */ - constructor(customTypes) { - const { cosmosCoin, cosmosMsgSend } = defaultTypeUrls; - this.types = customTypes - ? new Map([...customTypes]) - : new Map([ - [cosmosCoin, coin_1.Coin], - [cosmosMsgSend, tx_1.MsgSend], - ]); - } - register(typeUrl, type) { - this.types.set(typeUrl, type); - } - /** - * Looks up a type that was previously added to the registry. - * - * The generator information (ts-proto or pbjs) gets lost along the way. - * If you need to work with the result type in TypeScript, you can use: - * - * ``` - * import { assert } from "@cosmjs/utils"; - * - * const Coin = registry.lookupType("/cosmos.base.v1beta1.Coin"); - * assert(Coin); // Ensures not unset - * assert(isTsProtoGeneratedType(Coin)); // Ensures this is the type we expect - * - * // Coin is typed TsProtoGeneratedType now. - * ``` - */ - lookupType(typeUrl) { - return this.types.get(typeUrl); - } - lookupTypeWithError(typeUrl) { - const type = this.lookupType(typeUrl); - if (!type) { - throw new Error(`Unregistered type url: ${typeUrl}`); - } - return type; - } - /** - * Takes a typeUrl/value pair and encodes the value to protobuf if - * the given type was previously registered. - * - * If the value has to be wrapped in an Any, this needs to be done - * manually after this call. Or use `encodeAsAny` instead. - */ - encode(encodeObject) { - const { value, typeUrl } = encodeObject; - if (isTxBodyEncodeObject(encodeObject)) { - return this.encodeTxBody(value); - } - const type = this.lookupTypeWithError(typeUrl); - const instance = isTsProtoGeneratedType(type) ? type.fromPartial(value) : type.create(value); - return type.encode(instance).finish(); - } - /** - * Takes a typeUrl/value pair and encodes the value to an Any if - * the given type was previously registered. - */ - encodeAsAny(encodeObject) { - const binaryValue = this.encode(encodeObject); - return any_1.Any.fromPartial({ - typeUrl: encodeObject.typeUrl, - value: binaryValue, - }); - } - encodeTxBody(txBodyFields) { - const wrappedMessages = txBodyFields.messages.map((message) => this.encodeAsAny(message)); - const txBody = tx_2.TxBody.fromPartial({ - ...txBodyFields, - messages: wrappedMessages, - }); - return tx_2.TxBody.encode(txBody).finish(); - } - decode({ typeUrl, value }) { - if (typeUrl === defaultTypeUrls.cosmosTxBody) { - return this.decodeTxBody(value); - } - const type = this.lookupTypeWithError(typeUrl); - const decoded = type.decode(value); - Object.entries(decoded).forEach(([key, val]) => { - if (typeof Buffer !== "undefined" && typeof Buffer.isBuffer !== "undefined" && Buffer.isBuffer(val)) { - decoded[key] = Uint8Array.from(val); - } - }); - return decoded; - } - decodeTxBody(txBody) { - const decodedTxBody = tx_2.TxBody.decode(txBody); - return { - ...decodedTxBody, - messages: decodedTxBody.messages.map(({ typeUrl: typeUrl, value }) => { - if (!typeUrl) { - throw new Error("Missing type_url in Any"); - } - if (!value) { - throw new Error("Missing value in Any"); - } - return this.decode({ typeUrl, value }); +exports.isAminoMsgMultiSend = isAminoMsgMultiSend; +function createBankAminoConverters() { + return { + "/cosmos.bank.v1beta1.MsgSend": { + aminoType: "cosmos-sdk/MsgSend", + toAmino: ({ fromAddress, toAddress, amount }) => ({ + from_address: fromAddress, + to_address: toAddress, + amount: [...amount], }), - }; - } + fromAmino: ({ from_address, to_address, amount }) => ({ + fromAddress: from_address, + toAddress: to_address, + amount: [...amount], + }), + }, + "/cosmos.bank.v1beta1.MsgMultiSend": { + aminoType: "cosmos-sdk/MsgMultiSend", + toAmino: ({ inputs, outputs }) => ({ + inputs: inputs.map((input) => ({ + address: input.address, + coins: [...input.coins], + })), + outputs: outputs.map((output) => ({ + address: output.address, + coins: [...output.coins], + })), + }), + fromAmino: ({ inputs, outputs }) => ({ + inputs: inputs.map((input) => ({ + address: input.address, + coins: [...input.coins], + })), + outputs: outputs.map((output) => ({ + address: output.address, + coins: [...output.coins], + })), + }), + }, + }; } -exports.Registry = Registry; -//# sourceMappingURL=registry.js.map +exports.createBankAminoConverters = createBankAminoConverters; +//# sourceMappingURL=aminomessages.js.map /***/ }), -/***/ "./node_modules/@cosmjs/proto-signing/build/signer.js": -/*!************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/build/signer.js ***! - \************************************************************/ -/***/ (function(__unused_webpack_module, exports) { +/***/ "./node_modules/@cosmjs/stargate/build/modules/bank/messages.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/bank/messages.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isOfflineDirectSigner = void 0; -function isOfflineDirectSigner(signer) { - return signer.signDirect !== undefined; +exports.isMsgSendEncodeObject = exports.bankTypes = void 0; +const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/bank/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/bank/v1beta1/tx.js"); +exports.bankTypes = [ + ["/cosmos.bank.v1beta1.MsgMultiSend", tx_1.MsgMultiSend], + ["/cosmos.bank.v1beta1.MsgSend", tx_1.MsgSend], +]; +function isMsgSendEncodeObject(encodeObject) { + return encodeObject.typeUrl === "/cosmos.bank.v1beta1.MsgSend"; } -exports.isOfflineDirectSigner = isOfflineDirectSigner; -//# sourceMappingURL=signer.js.map +exports.isMsgSendEncodeObject = isMsgSendEncodeObject; +//# sourceMappingURL=messages.js.map /***/ }), -/***/ "./node_modules/@cosmjs/proto-signing/build/signing.js": -/*!*************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/build/signing.js ***! - \*************************************************************/ +/***/ "./node_modules/@cosmjs/stargate/build/modules/bank/queries.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/bank/queries.js ***! + \*********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.makeSignBytes = exports.makeSignDoc = exports.makeAuthInfoBytes = void 0; +exports.setupBankExtension = void 0; /* eslint-disable @typescript-eslint/naming-convention */ -const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/index.js"); -const signing_1 = __webpack_require__(/*! cosmjs-types/cosmos/tx/signing/v1beta1/signing */ "./node_modules/cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"); -const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/tx/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/tx/v1beta1/tx.js"); -const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); -/** - * Create signer infos from the provided signers. - * - * This implementation does not support different signing modes for the different signers. - */ -function makeSignerInfos(signers, signMode) { - return signers.map(({ pubkey, sequence }) => ({ - publicKey: pubkey, - modeInfo: { - single: { mode: signMode }, +const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/utils/build/index.js"); +const query_1 = __webpack_require__(/*! cosmjs-types/cosmos/bank/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/bank/v1beta1/query.js"); +const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); +function setupBankExtension(base) { + const rpc = (0, queryclient_1.createProtobufRpcClient)(base); + // Use this service to get easy typed access to query methods + // This cannot be used for proof verification + const queryService = new query_1.QueryClientImpl(rpc); + return { + bank: { + balance: async (address, denom) => { + const { balance } = await queryService.Balance({ address: address, denom: denom }); + (0, utils_1.assert)(balance); + return balance; + }, + allBalances: async (address) => { + const { balances } = await queryService.AllBalances(query_1.QueryAllBalancesRequest.fromPartial({ address: address })); + return balances; + }, + totalSupply: async (paginationKey) => { + const response = await queryService.TotalSupply({ + pagination: (0, queryclient_1.createPagination)(paginationKey), + }); + return response; + }, + supplyOf: async (denom) => { + const { amount } = await queryService.SupplyOf({ denom: denom }); + (0, utils_1.assert)(amount); + return amount; + }, + denomMetadata: async (denom) => { + const { metadata } = await queryService.DenomMetadata({ denom }); + (0, utils_1.assert)(metadata); + return metadata; + }, + denomsMetadata: async () => { + const { metadatas } = await queryService.DenomsMetadata(query_1.QueryDenomsMetadataRequest.fromPartial({ + pagination: undefined, // Not implemented + })); + return metadatas; + }, }, - sequence: long_1.default.fromNumber(sequence), - })); + }; } -/** - * Creates and serializes an AuthInfo document. - * - * This implementation does not support different signing modes for the different signers. - */ -function makeAuthInfoBytes(signers, feeAmount, gasLimit, feeGranter, feePayer, signMode = signing_1.SignMode.SIGN_MODE_DIRECT) { - // Required arguments 4 and 5 were added in CosmJS 0.29. Use runtime checks to help our non-TS users. - (0, utils_1.assert)(feeGranter === undefined || typeof feeGranter === "string", "feeGranter must be undefined or string"); - (0, utils_1.assert)(feePayer === undefined || typeof feePayer === "string", "feePayer must be undefined or string"); - const authInfo = tx_1.AuthInfo.fromPartial({ - signerInfos: makeSignerInfos(signers, signMode), - fee: { - amount: [...feeAmount], - gasLimit: long_1.default.fromNumber(gasLimit), - granter: feeGranter, - payer: feePayer, - }, - }); - return tx_1.AuthInfo.encode(authInfo).finish(); +exports.setupBankExtension = setupBankExtension; +//# sourceMappingURL=queries.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/crisis/aminomessages.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/crisis/aminomessages.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.createCrysisAminoConverters = exports.isAminoMsgVerifyInvariant = void 0; +function isAminoMsgVerifyInvariant(msg) { + return msg.type === "cosmos-sdk/MsgVerifyInvariant"; } -exports.makeAuthInfoBytes = makeAuthInfoBytes; -function makeSignDoc(bodyBytes, authInfoBytes, chainId, accountNumber) { +exports.isAminoMsgVerifyInvariant = isAminoMsgVerifyInvariant; +function createCrysisAminoConverters() { + throw new Error("Not implemented"); +} +exports.createCrysisAminoConverters = createCrysisAminoConverters; +//# sourceMappingURL=aminomessages.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/distribution/aminomessages.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/distribution/aminomessages.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.createDistributionAminoConverters = exports.isAminoMsgFundCommunityPool = exports.isAminoMsgWithdrawValidatorCommission = exports.isAminoMsgWithdrawDelegatorReward = exports.isAminoMsgSetWithdrawAddress = void 0; +function isAminoMsgSetWithdrawAddress(msg) { + // NOTE: Type string and names diverge here! + return msg.type === "cosmos-sdk/MsgModifyWithdrawAddress"; +} +exports.isAminoMsgSetWithdrawAddress = isAminoMsgSetWithdrawAddress; +function isAminoMsgWithdrawDelegatorReward(msg) { + // NOTE: Type string and names diverge here! + return msg.type === "cosmos-sdk/MsgWithdrawDelegationReward"; +} +exports.isAminoMsgWithdrawDelegatorReward = isAminoMsgWithdrawDelegatorReward; +function isAminoMsgWithdrawValidatorCommission(msg) { + return msg.type === "cosmos-sdk/MsgWithdrawValidatorCommission"; +} +exports.isAminoMsgWithdrawValidatorCommission = isAminoMsgWithdrawValidatorCommission; +function isAminoMsgFundCommunityPool(msg) { + return msg.type === "cosmos-sdk/MsgFundCommunityPool"; +} +exports.isAminoMsgFundCommunityPool = isAminoMsgFundCommunityPool; +function createDistributionAminoConverters() { return { - bodyBytes: bodyBytes, - authInfoBytes: authInfoBytes, - chainId: chainId, - accountNumber: long_1.default.fromNumber(accountNumber), + "/cosmos.distribution.v1beta1.MsgFundCommunityPool": { + aminoType: "cosmos-sdk/MsgFundCommunityPool", + toAmino: ({ amount, depositor }) => ({ + amount: [...amount], + depositor: depositor, + }), + fromAmino: ({ amount, depositor }) => ({ + amount: [...amount], + depositor: depositor, + }), + }, + "/cosmos.distribution.v1beta1.MsgSetWithdrawAddress": { + aminoType: "cosmos-sdk/MsgModifyWithdrawAddress", + toAmino: ({ delegatorAddress, withdrawAddress, }) => ({ + delegator_address: delegatorAddress, + withdraw_address: withdrawAddress, + }), + fromAmino: ({ delegator_address, withdraw_address, }) => ({ + delegatorAddress: delegator_address, + withdrawAddress: withdraw_address, + }), + }, + "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward": { + aminoType: "cosmos-sdk/MsgWithdrawDelegationReward", + toAmino: ({ delegatorAddress, validatorAddress, }) => ({ + delegator_address: delegatorAddress, + validator_address: validatorAddress, + }), + fromAmino: ({ delegator_address, validator_address, }) => ({ + delegatorAddress: delegator_address, + validatorAddress: validator_address, + }), + }, + "/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission": { + aminoType: "cosmos-sdk/MsgWithdrawValidatorCommission", + toAmino: ({ validatorAddress, }) => ({ + validator_address: validatorAddress, + }), + fromAmino: ({ validator_address, }) => ({ + validatorAddress: validator_address, + }), + }, }; } -exports.makeSignDoc = makeSignDoc; -function makeSignBytes({ accountNumber, authInfoBytes, bodyBytes, chainId }) { - const signDoc = tx_1.SignDoc.fromPartial({ - accountNumber: accountNumber, - authInfoBytes: authInfoBytes, - bodyBytes: bodyBytes, - chainId: chainId, - }); - return tx_1.SignDoc.encode(signDoc).finish(); -} -exports.makeSignBytes = makeSignBytes; -//# sourceMappingURL=signing.js.map +exports.createDistributionAminoConverters = createDistributionAminoConverters; +//# sourceMappingURL=aminomessages.js.map /***/ }), -/***/ "./node_modules/@cosmjs/proto-signing/build/wallet.js": -/*!************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/build/wallet.js ***! - \************************************************************/ +/***/ "./node_modules/@cosmjs/stargate/build/modules/distribution/messages.js": +/*!******************************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/distribution/messages.js ***! + \******************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.decrypt = exports.encrypt = exports.supportedAlgorithms = exports.executeKdf = exports.cosmjsSalt = void 0; -const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/index.js"); -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/index.js"); -/** - * A fixed salt is chosen to archive a deterministic password to key derivation. - * This reduces the scope of a potential rainbow attack to all CosmJS users. - * Must be 16 bytes due to implementation limitations. - */ -exports.cosmjsSalt = (0, encoding_1.toAscii)("The CosmJS salt."); -async function executeKdf(password, configuration) { - switch (configuration.algorithm) { - case "argon2id": { - const options = configuration.params; - if (!(0, crypto_1.isArgon2idOptions)(options)) - throw new Error("Invalid format of argon2id params"); - return crypto_1.Argon2id.execute(password, exports.cosmjsSalt, options); - } - default: - throw new Error("Unsupported KDF algorithm"); - } -} -exports.executeKdf = executeKdf; -exports.supportedAlgorithms = { - xchacha20poly1305Ietf: "xchacha20poly1305-ietf", -}; -async function encrypt(plaintext, encryptionKey, config) { - switch (config.algorithm) { - case exports.supportedAlgorithms.xchacha20poly1305Ietf: { - const nonce = crypto_1.Random.getBytes(crypto_1.xchacha20NonceLength); - // Prepend fixed-length nonce to ciphertext as suggested in the example from https://github.com/jedisct1/libsodium.js#api - return new Uint8Array([ - ...nonce, - ...(await crypto_1.Xchacha20poly1305Ietf.encrypt(plaintext, encryptionKey, nonce)), - ]); - } - default: - throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`); - } -} -exports.encrypt = encrypt; -async function decrypt(ciphertext, encryptionKey, config) { - switch (config.algorithm) { - case exports.supportedAlgorithms.xchacha20poly1305Ietf: { - const nonce = ciphertext.slice(0, crypto_1.xchacha20NonceLength); - return crypto_1.Xchacha20poly1305Ietf.decrypt(ciphertext.slice(crypto_1.xchacha20NonceLength), encryptionKey, nonce); - } - default: - throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`); - } +exports.isMsgWithdrawDelegatorRewardEncodeObject = exports.distributionTypes = void 0; +const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/distribution/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/distribution/v1beta1/tx.js"); +exports.distributionTypes = [ + ["/cosmos.distribution.v1beta1.MsgFundCommunityPool", tx_1.MsgFundCommunityPool], + ["/cosmos.distribution.v1beta1.MsgSetWithdrawAddress", tx_1.MsgSetWithdrawAddress], + ["/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward", tx_1.MsgWithdrawDelegatorReward], + ["/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission", tx_1.MsgWithdrawValidatorCommission], +]; +function isMsgWithdrawDelegatorRewardEncodeObject(object) { + return (object.typeUrl === + "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward"); } -exports.decrypt = decrypt; -//# sourceMappingURL=wallet.js.map +exports.isMsgWithdrawDelegatorRewardEncodeObject = isMsgWithdrawDelegatorRewardEncodeObject; +//# sourceMappingURL=messages.js.map /***/ }), -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/bip39.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/bip39.js ***! - \***************************************************************************************/ +/***/ "./node_modules/@cosmjs/stargate/build/modules/distribution/queries.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/distribution/queries.js ***! + \*****************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Bip39 = exports.EnglishMnemonic = exports.mnemonicToEntropy = exports.entropyToMnemonic = void 0; -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/index.js"); -const pbkdf2_1 = __webpack_require__(/*! ./pbkdf2 */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/pbkdf2.js"); -const sha_1 = __webpack_require__(/*! ./sha */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/sha.js"); -const wordlist = [ - "abandon", - "ability", - "able", - "about", - "above", - "absent", - "absorb", - "abstract", - "absurd", - "abuse", - "access", - "accident", - "account", - "accuse", - "achieve", - "acid", - "acoustic", - "acquire", - "across", - "act", - "action", - "actor", - "actress", - "actual", - "adapt", - "add", - "addict", - "address", - "adjust", - "admit", - "adult", - "advance", - "advice", - "aerobic", - "affair", - "afford", - "afraid", - "again", - "age", - "agent", - "agree", - "ahead", - "aim", - "air", - "airport", - "aisle", - "alarm", - "album", - "alcohol", - "alert", - "alien", - "all", - "alley", - "allow", - "almost", - "alone", - "alpha", - "already", - "also", - "alter", - "always", - "amateur", - "amazing", - "among", - "amount", - "amused", - "analyst", - "anchor", - "ancient", - "anger", - "angle", - "angry", - "animal", - "ankle", - "announce", - "annual", - "another", - "answer", - "antenna", - "antique", - "anxiety", - "any", - "apart", - "apology", - "appear", - "apple", - "approve", - "april", - "arch", - "arctic", - "area", - "arena", - "argue", - "arm", - "armed", - "armor", - "army", - "around", - "arrange", - "arrest", - "arrive", - "arrow", - "art", - "artefact", - "artist", - "artwork", - "ask", - "aspect", - "assault", - "asset", - "assist", - "assume", - "asthma", - "athlete", - "atom", - "attack", - "attend", - "attitude", - "attract", - "auction", - "audit", - "august", - "aunt", - "author", - "auto", - "autumn", - "average", - "avocado", - "avoid", - "awake", - "aware", - "away", - "awesome", - "awful", - "awkward", - "axis", - "baby", - "bachelor", - "bacon", - "badge", - "bag", - "balance", - "balcony", - "ball", - "bamboo", - "banana", - "banner", - "bar", - "barely", - "bargain", - "barrel", - "base", - "basic", - "basket", - "battle", - "beach", - "bean", - "beauty", - "because", - "become", - "beef", - "before", - "begin", - "behave", - "behind", - "believe", - "below", - "belt", - "bench", - "benefit", - "best", - "betray", - "better", - "between", - "beyond", - "bicycle", - "bid", - "bike", - "bind", - "biology", - "bird", - "birth", - "bitter", - "black", - "blade", - "blame", - "blanket", - "blast", - "bleak", - "bless", - "blind", - "blood", - "blossom", - "blouse", - "blue", - "blur", - "blush", - "board", - "boat", - "body", - "boil", - "bomb", - "bone", - "bonus", - "book", - "boost", - "border", - "boring", - "borrow", - "boss", - "bottom", - "bounce", - "box", - "boy", - "bracket", - "brain", - "brand", - "brass", - "brave", - "bread", - "breeze", - "brick", - "bridge", - "brief", - "bright", - "bring", - "brisk", - "broccoli", - "broken", - "bronze", - "broom", - "brother", - "brown", - "brush", - "bubble", - "buddy", - "budget", - "buffalo", - "build", - "bulb", - "bulk", - "bullet", - "bundle", - "bunker", - "burden", - "burger", - "burst", - "bus", - "business", - "busy", - "butter", - "buyer", - "buzz", - "cabbage", - "cabin", - "cable", - "cactus", - "cage", - "cake", - "call", - "calm", - "camera", - "camp", - "can", - "canal", - "cancel", - "candy", - "cannon", - "canoe", - "canvas", - "canyon", - "capable", - "capital", - "captain", - "car", - "carbon", - "card", - "cargo", - "carpet", - "carry", - "cart", - "case", - "cash", - "casino", - "castle", - "casual", - "cat", - "catalog", - "catch", - "category", - "cattle", - "caught", - "cause", - "caution", - "cave", - "ceiling", - "celery", - "cement", - "census", - "century", - "cereal", - "certain", - "chair", - "chalk", - "champion", - "change", - "chaos", - "chapter", - "charge", - "chase", - "chat", - "cheap", - "check", - "cheese", - "chef", - "cherry", - "chest", - "chicken", - "chief", - "child", - "chimney", - "choice", - "choose", - "chronic", - "chuckle", - "chunk", - "churn", - "cigar", - "cinnamon", - "circle", - "citizen", - "city", - "civil", - "claim", - "clap", - "clarify", - "claw", - "clay", - "clean", - "clerk", - "clever", - "click", - "client", - "cliff", - "climb", - "clinic", - "clip", - "clock", - "clog", - "close", - "cloth", - "cloud", - "clown", - "club", - "clump", - "cluster", - "clutch", - "coach", - "coast", - "coconut", - "code", - "coffee", - "coil", - "coin", - "collect", - "color", - "column", - "combine", - "come", - "comfort", - "comic", - "common", - "company", - "concert", - "conduct", - "confirm", - "congress", - "connect", - "consider", - "control", - "convince", - "cook", - "cool", - "copper", - "copy", - "coral", - "core", - "corn", - "correct", - "cost", - "cotton", - "couch", - "country", - "couple", - "course", - "cousin", - "cover", - "coyote", - "crack", - "cradle", - "craft", - "cram", - "crane", - "crash", - "crater", - "crawl", - "crazy", - "cream", - "credit", - "creek", - "crew", - "cricket", - "crime", - "crisp", - "critic", - "crop", - "cross", - "crouch", - "crowd", - "crucial", - "cruel", - "cruise", - "crumble", - "crunch", - "crush", - "cry", - "crystal", - "cube", - "culture", - "cup", - "cupboard", - "curious", - "current", - "curtain", - "curve", - "cushion", - "custom", - "cute", - "cycle", - "dad", - "damage", - "damp", - "dance", - "danger", - "daring", - "dash", - "daughter", - "dawn", - "day", - "deal", - "debate", - "debris", - "decade", - "december", - "decide", - "decline", - "decorate", - "decrease", - "deer", - "defense", - "define", - "defy", - "degree", - "delay", - "deliver", - "demand", - "demise", - "denial", - "dentist", - "deny", - "depart", - "depend", - "deposit", - "depth", - "deputy", - "derive", - "describe", - "desert", - "design", - "desk", - "despair", - "destroy", - "detail", - "detect", - "develop", - "device", - "devote", - "diagram", - "dial", - "diamond", - "diary", - "dice", - "diesel", - "diet", - "differ", - "digital", - "dignity", - "dilemma", - "dinner", - "dinosaur", - "direct", - "dirt", - "disagree", - "discover", - "disease", - "dish", - "dismiss", - "disorder", - "display", - "distance", - "divert", - "divide", - "divorce", - "dizzy", - "doctor", - "document", - "dog", - "doll", - "dolphin", - "domain", - "donate", - "donkey", - "donor", - "door", - "dose", - "double", - "dove", - "draft", - "dragon", - "drama", - "drastic", - "draw", - "dream", - "dress", - "drift", - "drill", - "drink", - "drip", - "drive", - "drop", - "drum", - "dry", - "duck", - "dumb", - "dune", - "during", - "dust", - "dutch", - "duty", - "dwarf", - "dynamic", - "eager", - "eagle", - "early", - "earn", - "earth", - "easily", - "east", - "easy", - "echo", - "ecology", - "economy", - "edge", - "edit", - "educate", - "effort", - "egg", - "eight", - "either", - "elbow", - "elder", - "electric", - "elegant", - "element", - "elephant", - "elevator", - "elite", - "else", - "embark", - "embody", - "embrace", - "emerge", - "emotion", - "employ", - "empower", - "empty", - "enable", - "enact", - "end", - "endless", - "endorse", - "enemy", - "energy", - "enforce", - "engage", - "engine", - "enhance", - "enjoy", - "enlist", - "enough", - "enrich", - "enroll", - "ensure", - "enter", - "entire", - "entry", - "envelope", - "episode", - "equal", - "equip", - "era", - "erase", - "erode", - "erosion", - "error", - "erupt", - "escape", - "essay", - "essence", - "estate", - "eternal", - "ethics", - "evidence", - "evil", - "evoke", - "evolve", - "exact", - "example", - "excess", - "exchange", - "excite", - "exclude", - "excuse", - "execute", - "exercise", - "exhaust", - "exhibit", - "exile", - "exist", - "exit", - "exotic", - "expand", - "expect", - "expire", - "explain", - "expose", - "express", - "extend", - "extra", - "eye", - "eyebrow", - "fabric", - "face", - "faculty", - "fade", - "faint", - "faith", - "fall", - "false", - "fame", - "family", - "famous", - "fan", - "fancy", - "fantasy", - "farm", - "fashion", - "fat", - "fatal", - "father", - "fatigue", - "fault", - "favorite", - "feature", - "february", - "federal", - "fee", - "feed", - "feel", - "female", - "fence", - "festival", - "fetch", - "fever", - "few", - "fiber", - "fiction", - "field", - "figure", - "file", - "film", - "filter", - "final", - "find", - "fine", - "finger", - "finish", - "fire", - "firm", - "first", - "fiscal", - "fish", - "fit", - "fitness", - "fix", - "flag", - "flame", - "flash", - "flat", - "flavor", - "flee", - "flight", - "flip", - "float", - "flock", - "floor", - "flower", - "fluid", - "flush", - "fly", - "foam", - "focus", - "fog", - "foil", - "fold", - "follow", - "food", - "foot", - "force", - "forest", - "forget", - "fork", - "fortune", - "forum", - "forward", - "fossil", - "foster", - "found", - "fox", - "fragile", - "frame", - "frequent", - "fresh", - "friend", - "fringe", - "frog", - "front", - "frost", - "frown", - "frozen", - "fruit", - "fuel", - "fun", - "funny", - "furnace", - "fury", - "future", - "gadget", - "gain", - "galaxy", - "gallery", - "game", - "gap", - "garage", - "garbage", - "garden", - "garlic", - "garment", - "gas", - "gasp", - "gate", - "gather", - "gauge", - "gaze", - "general", - "genius", - "genre", - "gentle", - "genuine", - "gesture", - "ghost", - "giant", - "gift", - "giggle", - "ginger", - "giraffe", - "girl", - "give", - "glad", - "glance", - "glare", - "glass", - "glide", - "glimpse", - "globe", - "gloom", - "glory", - "glove", - "glow", - "glue", - "goat", - "goddess", - "gold", - "good", - "goose", - "gorilla", - "gospel", - "gossip", - "govern", - "gown", - "grab", - "grace", - "grain", - "grant", - "grape", - "grass", - "gravity", - "great", - "green", - "grid", - "grief", - "grit", - "grocery", - "group", - "grow", - "grunt", - "guard", - "guess", - "guide", - "guilt", - "guitar", - "gun", - "gym", - "habit", - "hair", - "half", - "hammer", - "hamster", - "hand", - "happy", - "harbor", - "hard", - "harsh", - "harvest", - "hat", - "have", - "hawk", - "hazard", - "head", - "health", - "heart", - "heavy", - "hedgehog", - "height", - "hello", - "helmet", - "help", - "hen", - "hero", - "hidden", - "high", - "hill", - "hint", - "hip", - "hire", - "history", - "hobby", - "hockey", - "hold", - "hole", - "holiday", - "hollow", - "home", - "honey", - "hood", - "hope", - "horn", - "horror", - "horse", - "hospital", - "host", - "hotel", - "hour", - "hover", - "hub", - "huge", - "human", - "humble", - "humor", - "hundred", - "hungry", - "hunt", - "hurdle", - "hurry", - "hurt", - "husband", - "hybrid", - "ice", - "icon", - "idea", - "identify", - "idle", - "ignore", - "ill", - "illegal", - "illness", - "image", - "imitate", - "immense", - "immune", - "impact", - "impose", - "improve", - "impulse", - "inch", - "include", - "income", - "increase", - "index", - "indicate", - "indoor", - "industry", - "infant", - "inflict", - "inform", - "inhale", - "inherit", - "initial", - "inject", - "injury", - "inmate", - "inner", - "innocent", - "input", - "inquiry", - "insane", - "insect", - "inside", - "inspire", - "install", - "intact", - "interest", - "into", - "invest", - "invite", - "involve", - "iron", - "island", - "isolate", - "issue", - "item", - "ivory", - "jacket", - "jaguar", - "jar", - "jazz", - "jealous", - "jeans", - "jelly", - "jewel", - "job", - "join", - "joke", - "journey", - "joy", - "judge", - "juice", - "jump", - "jungle", - "junior", - "junk", - "just", - "kangaroo", - "keen", - "keep", - "ketchup", - "key", - "kick", - "kid", - "kidney", - "kind", - "kingdom", - "kiss", - "kit", - "kitchen", - "kite", - "kitten", - "kiwi", - "knee", - "knife", - "knock", - "know", - "lab", - "label", - "labor", - "ladder", - "lady", - "lake", - "lamp", - "language", - "laptop", - "large", - "later", - "latin", - "laugh", - "laundry", - "lava", - "law", - "lawn", - "lawsuit", - "layer", - "lazy", - "leader", - "leaf", - "learn", - "leave", - "lecture", - "left", - "leg", - "legal", - "legend", - "leisure", - "lemon", - "lend", - "length", - "lens", - "leopard", - "lesson", - "letter", - "level", - "liar", - "liberty", - "library", - "license", - "life", - "lift", - "light", - "like", - "limb", - "limit", - "link", - "lion", - "liquid", - "list", - "little", - "live", - "lizard", - "load", - "loan", - "lobster", - "local", - "lock", - "logic", - "lonely", - "long", - "loop", - "lottery", - "loud", - "lounge", - "love", - "loyal", - "lucky", - "luggage", - "lumber", - "lunar", - "lunch", - "luxury", - "lyrics", - "machine", - "mad", - "magic", - "magnet", - "maid", - "mail", - "main", - "major", - "make", - "mammal", - "man", - "manage", - "mandate", - "mango", - "mansion", - "manual", - "maple", - "marble", - "march", - "margin", - "marine", - "market", - "marriage", - "mask", - "mass", - "master", - "match", - "material", - "math", - "matrix", - "matter", - "maximum", - "maze", - "meadow", - "mean", - "measure", - "meat", - "mechanic", - "medal", - "media", - "melody", - "melt", - "member", - "memory", - "mention", - "menu", - "mercy", - "merge", - "merit", - "merry", - "mesh", - "message", - "metal", - "method", - "middle", - "midnight", - "milk", - "million", - "mimic", - "mind", - "minimum", - "minor", - "minute", - "miracle", - "mirror", - "misery", - "miss", - "mistake", - "mix", - "mixed", - "mixture", - "mobile", - "model", - "modify", - "mom", - "moment", - "monitor", - "monkey", - "monster", - "month", - "moon", - "moral", - "more", - "morning", - "mosquito", - "mother", - "motion", - "motor", - "mountain", - "mouse", - "move", - "movie", - "much", - "muffin", - "mule", - "multiply", - "muscle", - "museum", - "mushroom", - "music", - "must", - "mutual", - "myself", - "mystery", - "myth", - "naive", - "name", - "napkin", - "narrow", - "nasty", - "nation", - "nature", - "near", - "neck", - "need", - "negative", - "neglect", - "neither", - "nephew", - "nerve", - "nest", - "net", - "network", - "neutral", - "never", - "news", - "next", - "nice", - "night", - "noble", - "noise", - "nominee", - "noodle", - "normal", - "north", - "nose", - "notable", - "note", - "nothing", - "notice", - "novel", - "now", - "nuclear", - "number", - "nurse", - "nut", - "oak", - "obey", - "object", - "oblige", - "obscure", - "observe", - "obtain", - "obvious", - "occur", - "ocean", - "october", - "odor", - "off", - "offer", - "office", - "often", - "oil", - "okay", - "old", - "olive", - "olympic", - "omit", - "once", - "one", - "onion", - "online", - "only", - "open", - "opera", - "opinion", - "oppose", - "option", - "orange", - "orbit", - "orchard", - "order", - "ordinary", - "organ", - "orient", - "original", - "orphan", - "ostrich", - "other", - "outdoor", - "outer", - "output", - "outside", - "oval", - "oven", - "over", - "own", - "owner", - "oxygen", - "oyster", - "ozone", - "pact", - "paddle", - "page", - "pair", - "palace", - "palm", - "panda", - "panel", - "panic", - "panther", - "paper", - "parade", - "parent", - "park", - "parrot", - "party", - "pass", - "patch", - "path", - "patient", - "patrol", - "pattern", - "pause", - "pave", - "payment", - "peace", - "peanut", - "pear", - "peasant", - "pelican", - "pen", - "penalty", - "pencil", - "people", - "pepper", - "perfect", - "permit", - "person", - "pet", - "phone", - "photo", - "phrase", - "physical", - "piano", - "picnic", - "picture", - "piece", - "pig", - "pigeon", - "pill", - "pilot", - "pink", - "pioneer", - "pipe", - "pistol", - "pitch", - "pizza", - "place", - "planet", - "plastic", - "plate", - "play", - "please", - "pledge", - "pluck", - "plug", - "plunge", - "poem", - "poet", - "point", - "polar", - "pole", - "police", - "pond", - "pony", - "pool", - "popular", - "portion", - "position", - "possible", - "post", - "potato", - "pottery", - "poverty", - "powder", - "power", - "practice", - "praise", - "predict", - "prefer", - "prepare", - "present", - "pretty", - "prevent", - "price", - "pride", - "primary", - "print", - "priority", - "prison", - "private", - "prize", - "problem", - "process", - "produce", - "profit", - "program", - "project", - "promote", - "proof", - "property", - "prosper", - "protect", - "proud", - "provide", - "public", - "pudding", - "pull", - "pulp", - "pulse", - "pumpkin", - "punch", - "pupil", - "puppy", - "purchase", - "purity", - "purpose", - "purse", - "push", - "put", - "puzzle", - "pyramid", - "quality", - "quantum", - "quarter", - "question", - "quick", - "quit", - "quiz", - "quote", - "rabbit", - "raccoon", - "race", - "rack", - "radar", - "radio", - "rail", - "rain", - "raise", - "rally", - "ramp", - "ranch", - "random", - "range", - "rapid", - "rare", - "rate", - "rather", - "raven", - "raw", - "razor", - "ready", - "real", - "reason", - "rebel", - "rebuild", - "recall", - "receive", - "recipe", - "record", - "recycle", - "reduce", - "reflect", - "reform", - "refuse", - "region", - "regret", - "regular", - "reject", - "relax", - "release", - "relief", - "rely", - "remain", - "remember", - "remind", - "remove", - "render", - "renew", - "rent", - "reopen", - "repair", - "repeat", - "replace", - "report", - "require", - "rescue", - "resemble", - "resist", - "resource", - "response", - "result", - "retire", - "retreat", - "return", - "reunion", - "reveal", - "review", - "reward", - "rhythm", - "rib", - "ribbon", - "rice", - "rich", - "ride", - "ridge", - "rifle", - "right", - "rigid", - "ring", - "riot", - "ripple", - "risk", - "ritual", - "rival", - "river", - "road", - "roast", - "robot", - "robust", - "rocket", - "romance", - "roof", - "rookie", - "room", - "rose", - "rotate", - "rough", - "round", - "route", - "royal", - "rubber", - "rude", - "rug", - "rule", - "run", - "runway", - "rural", - "sad", - "saddle", - "sadness", - "safe", - "sail", - "salad", - "salmon", - "salon", - "salt", - "salute", - "same", - "sample", - "sand", - "satisfy", - "satoshi", - "sauce", - "sausage", - "save", - "say", - "scale", - "scan", - "scare", - "scatter", - "scene", - "scheme", - "school", - "science", - "scissors", - "scorpion", - "scout", - "scrap", - "screen", - "script", - "scrub", - "sea", - "search", - "season", - "seat", - "second", - "secret", - "section", - "security", - "seed", - "seek", - "segment", - "select", - "sell", - "seminar", - "senior", - "sense", - "sentence", - "series", - "service", - "session", - "settle", - "setup", - "seven", - "shadow", - "shaft", - "shallow", - "share", - "shed", - "shell", - "sheriff", - "shield", - "shift", - "shine", - "ship", - "shiver", - "shock", - "shoe", - "shoot", - "shop", - "short", - "shoulder", - "shove", - "shrimp", - "shrug", - "shuffle", - "shy", - "sibling", - "sick", - "side", - "siege", - "sight", - "sign", - "silent", - "silk", - "silly", - "silver", - "similar", - "simple", - "since", - "sing", - "siren", - "sister", - "situate", - "six", - "size", - "skate", - "sketch", - "ski", - "skill", - "skin", - "skirt", - "skull", - "slab", - "slam", - "sleep", - "slender", - "slice", - "slide", - "slight", - "slim", - "slogan", - "slot", - "slow", - "slush", - "small", - "smart", - "smile", - "smoke", - "smooth", - "snack", - "snake", - "snap", - "sniff", - "snow", - "soap", - "soccer", - "social", - "sock", - "soda", - "soft", - "solar", - "soldier", - "solid", - "solution", - "solve", - "someone", - "song", - "soon", - "sorry", - "sort", - "soul", - "sound", - "soup", - "source", - "south", - "space", - "spare", - "spatial", - "spawn", - "speak", - "special", - "speed", - "spell", - "spend", - "sphere", - "spice", - "spider", - "spike", - "spin", - "spirit", - "split", - "spoil", - "sponsor", - "spoon", - "sport", - "spot", - "spray", - "spread", - "spring", - "spy", - "square", - "squeeze", - "squirrel", - "stable", - "stadium", - "staff", - "stage", - "stairs", - "stamp", - "stand", - "start", - "state", - "stay", - "steak", - "steel", - "stem", - "step", - "stereo", - "stick", - "still", - "sting", - "stock", - "stomach", - "stone", - "stool", - "story", - "stove", - "strategy", - "street", - "strike", - "strong", - "struggle", - "student", - "stuff", - "stumble", - "style", - "subject", - "submit", - "subway", - "success", - "such", - "sudden", - "suffer", - "sugar", - "suggest", - "suit", - "summer", - "sun", - "sunny", - "sunset", - "super", - "supply", - "supreme", - "sure", - "surface", - "surge", - "surprise", - "surround", - "survey", - "suspect", - "sustain", - "swallow", - "swamp", - "swap", - "swarm", - "swear", - "sweet", - "swift", - "swim", - "swing", - "switch", - "sword", - "symbol", - "symptom", - "syrup", - "system", - "table", - "tackle", - "tag", - "tail", - "talent", - "talk", - "tank", - "tape", - "target", - "task", - "taste", - "tattoo", - "taxi", - "teach", - "team", - "tell", - "ten", - "tenant", - "tennis", - "tent", - "term", - "test", - "text", - "thank", - "that", - "theme", - "then", - "theory", - "there", - "they", - "thing", - "this", - "thought", - "three", - "thrive", - "throw", - "thumb", - "thunder", - "ticket", - "tide", - "tiger", - "tilt", - "timber", - "time", - "tiny", - "tip", - "tired", - "tissue", - "title", - "toast", - "tobacco", - "today", - "toddler", - "toe", - "together", - "toilet", - "token", - "tomato", - "tomorrow", - "tone", - "tongue", - "tonight", - "tool", - "tooth", - "top", - "topic", - "topple", - "torch", - "tornado", - "tortoise", - "toss", - "total", - "tourist", - "toward", - "tower", - "town", - "toy", - "track", - "trade", - "traffic", - "tragic", - "train", - "transfer", - "trap", - "trash", - "travel", - "tray", - "treat", - "tree", - "trend", - "trial", - "tribe", - "trick", - "trigger", - "trim", - "trip", - "trophy", - "trouble", - "truck", - "true", - "truly", - "trumpet", - "trust", - "truth", - "try", - "tube", - "tuition", - "tumble", - "tuna", - "tunnel", - "turkey", - "turn", - "turtle", - "twelve", - "twenty", - "twice", - "twin", - "twist", - "two", - "type", - "typical", - "ugly", - "umbrella", - "unable", - "unaware", - "uncle", - "uncover", - "under", - "undo", - "unfair", - "unfold", - "unhappy", - "uniform", - "unique", - "unit", - "universe", - "unknown", - "unlock", - "until", - "unusual", - "unveil", - "update", - "upgrade", - "uphold", - "upon", - "upper", - "upset", - "urban", - "urge", - "usage", - "use", - "used", - "useful", - "useless", - "usual", - "utility", - "vacant", - "vacuum", - "vague", - "valid", - "valley", - "valve", - "van", - "vanish", - "vapor", - "various", - "vast", - "vault", - "vehicle", - "velvet", - "vendor", - "venture", - "venue", - "verb", - "verify", - "version", - "very", - "vessel", - "veteran", - "viable", - "vibrant", - "vicious", - "victory", - "video", - "view", - "village", - "vintage", - "violin", - "virtual", - "virus", - "visa", - "visit", - "visual", - "vital", - "vivid", - "vocal", - "voice", - "void", - "volcano", - "volume", - "vote", - "voyage", - "wage", - "wagon", - "wait", - "walk", - "wall", - "walnut", - "want", - "warfare", - "warm", - "warrior", - "wash", - "wasp", - "waste", - "water", - "wave", - "way", - "wealth", - "weapon", - "wear", - "weasel", - "weather", - "web", - "wedding", - "weekend", - "weird", - "welcome", - "west", - "wet", - "whale", - "what", - "wheat", - "wheel", - "when", - "where", - "whip", - "whisper", - "wide", - "width", - "wife", - "wild", - "will", - "win", - "window", - "wine", - "wing", - "wink", - "winner", - "winter", - "wire", - "wisdom", - "wise", - "wish", - "witness", - "wolf", - "woman", - "wonder", - "wood", - "wool", - "word", - "work", - "world", - "worry", - "worth", - "wrap", - "wreck", - "wrestle", - "wrist", - "write", - "wrong", - "yard", - "year", - "yellow", - "you", - "young", - "youth", - "zebra", - "zero", - "zone", - "zoo", -]; -function bytesToBitstring(bytes) { - return Array.from(bytes) - .map((byte) => byte.toString(2).padStart(8, "0")) - .join(""); -} -function deriveChecksumBits(entropy) { - const entropyLengthBits = entropy.length * 8; // "ENT" (in bits) - const checksumLengthBits = entropyLengthBits / 32; // "CS" (in bits) - const hash = (0, sha_1.sha256)(entropy); - return bytesToBitstring(hash).slice(0, checksumLengthBits); -} -function bitstringToByte(bin) { - return parseInt(bin, 2); -} -const allowedEntropyLengths = [16, 20, 24, 28, 32]; -const allowedWordLengths = [12, 15, 18, 21, 24]; -function entropyToMnemonic(entropy) { - if (allowedEntropyLengths.indexOf(entropy.length) === -1) { - throw new Error("invalid input length"); - } - const entropyBits = bytesToBitstring(entropy); - const checksumBits = deriveChecksumBits(entropy); - const bits = entropyBits + checksumBits; - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const chunks = bits.match(/(.{11})/g); - const words = chunks.map((binary) => { - const index = bitstringToByte(binary); - return wordlist[index]; - }); - return words.join(" "); -} -exports.entropyToMnemonic = entropyToMnemonic; -const invalidNumberOfWorks = "Invalid number of words"; -const wordNotInWordlist = "Found word that is not in the wordlist"; -const invalidEntropy = "Invalid entropy"; -const invalidChecksum = "Invalid mnemonic checksum"; -function normalize(str) { - return str.normalize("NFKD"); -} -function mnemonicToEntropy(mnemonic) { - const words = normalize(mnemonic).split(" "); - if (!allowedWordLengths.includes(words.length)) { - throw new Error(invalidNumberOfWorks); - } - // convert word indices to 11 bit binary strings - const bits = words - .map((word) => { - const index = wordlist.indexOf(word); - if (index === -1) { - throw new Error(wordNotInWordlist); - } - return index.toString(2).padStart(11, "0"); - }) - .join(""); - // split the binary string into ENT/CS - const dividerIndex = Math.floor(bits.length / 33) * 32; - const entropyBits = bits.slice(0, dividerIndex); - const checksumBits = bits.slice(dividerIndex); - // calculate the checksum and compare - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const entropyBytes = entropyBits.match(/(.{1,8})/g).map(bitstringToByte); - if (entropyBytes.length < 16 || entropyBytes.length > 32 || entropyBytes.length % 4 !== 0) { - throw new Error(invalidEntropy); - } - const entropy = Uint8Array.from(entropyBytes); - const newChecksum = deriveChecksumBits(entropy); - if (newChecksum !== checksumBits) { - throw new Error(invalidChecksum); - } - return entropy; -} -exports.mnemonicToEntropy = mnemonicToEntropy; -class EnglishMnemonic { - constructor(mnemonic) { - if (!EnglishMnemonic.mnemonicMatcher.test(mnemonic)) { - throw new Error("Invalid mnemonic format"); - } - const words = mnemonic.split(" "); - const allowedWordsLengths = [12, 15, 18, 21, 24]; - if (allowedWordsLengths.indexOf(words.length) === -1) { - throw new Error(`Invalid word count in mnemonic (allowed: ${allowedWordsLengths} got: ${words.length})`); - } - for (const word of words) { - if (EnglishMnemonic.wordlist.indexOf(word) === -1) { - throw new Error("Mnemonic contains invalid word"); - } - } - // Throws with informative error message if mnemonic is not valid - mnemonicToEntropy(mnemonic); - this.data = mnemonic; - } - toString() { - return this.data; - } -} -exports.EnglishMnemonic = EnglishMnemonic; -EnglishMnemonic.wordlist = wordlist; -// list of space separated lower case words (1 or more) -EnglishMnemonic.mnemonicMatcher = /^[a-z]+( [a-z]+)*$/; -class Bip39 { - /** - * Encodes raw entropy of length 16, 20, 24, 28 or 32 bytes as an English mnemonic between 12 and 24 words. - * - * | Entropy | Words | - * |--------------------|-------| - * | 128 bit (16 bytes) | 12 | - * | 160 bit (20 bytes) | 15 | - * | 192 bit (24 bytes) | 18 | - * | 224 bit (28 bytes) | 21 | - * | 256 bit (32 bytes) | 24 | - * - * - * @see https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki#generating-the-mnemonic - * @param entropy The entropy to be encoded. This must be cryptographically secure. - */ - static encode(entropy) { - return new EnglishMnemonic(entropyToMnemonic(entropy)); - } - static decode(mnemonic) { - return mnemonicToEntropy(mnemonic.toString()); - } - static async mnemonicToSeed(mnemonic, password) { - const mnemonicBytes = (0, encoding_1.toUtf8)(normalize(mnemonic.toString())); - const salt = "mnemonic" + (password ? normalize(password) : ""); - const saltBytes = (0, encoding_1.toUtf8)(salt); - return (0, pbkdf2_1.pbkdf2Sha512)(mnemonicBytes, saltBytes, 2048, 64); - } -} -exports.Bip39 = Bip39; -//# sourceMappingURL=bip39.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/hmac.js": -/*!**************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/hmac.js ***! - \**************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Hmac = void 0; -class Hmac { - constructor(hashFunctionConstructor, originalKey) { - // This implementation is based on https://en.wikipedia.org/wiki/HMAC#Implementation - // with the addition of incremental hashing support. Thus part of the algorithm - // is in the constructor and the rest in digest(). - const blockSize = new hashFunctionConstructor().blockSize; - this.hash = (data) => new hashFunctionConstructor().update(data).digest(); - let key = originalKey; - if (key.length > blockSize) { - key = this.hash(key); - } - if (key.length < blockSize) { - const zeroPadding = new Uint8Array(blockSize - key.length); - key = new Uint8Array([...key, ...zeroPadding]); - } - // eslint-disable-next-line no-bitwise - this.oKeyPad = key.map((keyByte) => keyByte ^ 0x5c); - // eslint-disable-next-line no-bitwise - this.iKeyPad = key.map((keyByte) => keyByte ^ 0x36); - this.messageHasher = new hashFunctionConstructor(); - this.blockSize = blockSize; - this.update(this.iKeyPad); - } - update(data) { - this.messageHasher.update(data); - return this; - } - digest() { - const innerHash = this.messageHasher.digest(); - return this.hash(new Uint8Array([...this.oKeyPad, ...innerHash])); - } -} -exports.Hmac = Hmac; -//# sourceMappingURL=hmac.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/index.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/index.js ***! - \***************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.stringToPath = exports.Slip10RawIndex = exports.slip10CurveFromString = exports.Slip10Curve = exports.Slip10 = exports.pathToString = exports.sha512 = exports.Sha512 = exports.sha256 = exports.Sha256 = exports.Secp256k1Signature = exports.ExtendedSecp256k1Signature = exports.Secp256k1 = exports.ripemd160 = exports.Ripemd160 = exports.Random = exports.Xchacha20poly1305Ietf = exports.xchacha20NonceLength = exports.isArgon2idOptions = exports.Ed25519Keypair = exports.Ed25519 = exports.Argon2id = exports.keccak256 = exports.Keccak256 = exports.Hmac = exports.EnglishMnemonic = exports.Bip39 = void 0; -var bip39_1 = __webpack_require__(/*! ./bip39 */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/bip39.js"); -Object.defineProperty(exports, "Bip39", ({ enumerable: true, get: function () { return bip39_1.Bip39; } })); -Object.defineProperty(exports, "EnglishMnemonic", ({ enumerable: true, get: function () { return bip39_1.EnglishMnemonic; } })); -var hmac_1 = __webpack_require__(/*! ./hmac */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/hmac.js"); -Object.defineProperty(exports, "Hmac", ({ enumerable: true, get: function () { return hmac_1.Hmac; } })); -var keccak_1 = __webpack_require__(/*! ./keccak */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/keccak.js"); -Object.defineProperty(exports, "Keccak256", ({ enumerable: true, get: function () { return keccak_1.Keccak256; } })); -Object.defineProperty(exports, "keccak256", ({ enumerable: true, get: function () { return keccak_1.keccak256; } })); -var libsodium_1 = __webpack_require__(/*! ./libsodium */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/libsodium.js"); -Object.defineProperty(exports, "Argon2id", ({ enumerable: true, get: function () { return libsodium_1.Argon2id; } })); -Object.defineProperty(exports, "Ed25519", ({ enumerable: true, get: function () { return libsodium_1.Ed25519; } })); -Object.defineProperty(exports, "Ed25519Keypair", ({ enumerable: true, get: function () { return libsodium_1.Ed25519Keypair; } })); -Object.defineProperty(exports, "isArgon2idOptions", ({ enumerable: true, get: function () { return libsodium_1.isArgon2idOptions; } })); -Object.defineProperty(exports, "xchacha20NonceLength", ({ enumerable: true, get: function () { return libsodium_1.xchacha20NonceLength; } })); -Object.defineProperty(exports, "Xchacha20poly1305Ietf", ({ enumerable: true, get: function () { return libsodium_1.Xchacha20poly1305Ietf; } })); -var random_1 = __webpack_require__(/*! ./random */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/random.js"); -Object.defineProperty(exports, "Random", ({ enumerable: true, get: function () { return random_1.Random; } })); -var ripemd_1 = __webpack_require__(/*! ./ripemd */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/ripemd.js"); -Object.defineProperty(exports, "Ripemd160", ({ enumerable: true, get: function () { return ripemd_1.Ripemd160; } })); -Object.defineProperty(exports, "ripemd160", ({ enumerable: true, get: function () { return ripemd_1.ripemd160; } })); -var secp256k1_1 = __webpack_require__(/*! ./secp256k1 */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/secp256k1.js"); -Object.defineProperty(exports, "Secp256k1", ({ enumerable: true, get: function () { return secp256k1_1.Secp256k1; } })); -var secp256k1signature_1 = __webpack_require__(/*! ./secp256k1signature */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/secp256k1signature.js"); -Object.defineProperty(exports, "ExtendedSecp256k1Signature", ({ enumerable: true, get: function () { return secp256k1signature_1.ExtendedSecp256k1Signature; } })); -Object.defineProperty(exports, "Secp256k1Signature", ({ enumerable: true, get: function () { return secp256k1signature_1.Secp256k1Signature; } })); -var sha_1 = __webpack_require__(/*! ./sha */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/sha.js"); -Object.defineProperty(exports, "Sha256", ({ enumerable: true, get: function () { return sha_1.Sha256; } })); -Object.defineProperty(exports, "sha256", ({ enumerable: true, get: function () { return sha_1.sha256; } })); -Object.defineProperty(exports, "Sha512", ({ enumerable: true, get: function () { return sha_1.Sha512; } })); -Object.defineProperty(exports, "sha512", ({ enumerable: true, get: function () { return sha_1.sha512; } })); -var slip10_1 = __webpack_require__(/*! ./slip10 */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/slip10.js"); -Object.defineProperty(exports, "pathToString", ({ enumerable: true, get: function () { return slip10_1.pathToString; } })); -Object.defineProperty(exports, "Slip10", ({ enumerable: true, get: function () { return slip10_1.Slip10; } })); -Object.defineProperty(exports, "Slip10Curve", ({ enumerable: true, get: function () { return slip10_1.Slip10Curve; } })); -Object.defineProperty(exports, "slip10CurveFromString", ({ enumerable: true, get: function () { return slip10_1.slip10CurveFromString; } })); -Object.defineProperty(exports, "Slip10RawIndex", ({ enumerable: true, get: function () { return slip10_1.Slip10RawIndex; } })); -Object.defineProperty(exports, "stringToPath", ({ enumerable: true, get: function () { return slip10_1.stringToPath; } })); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/keccak.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/keccak.js ***! - \****************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.keccak256 = exports.Keccak256 = void 0; -const sha3_1 = __webpack_require__(/*! @noble/hashes/sha3 */ "./node_modules/@noble/hashes/sha3.js"); -const utils_1 = __webpack_require__(/*! ./utils */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/utils.js"); -class Keccak256 { - constructor(firstData) { - this.blockSize = 512 / 8; - this.impl = sha3_1.keccak_256.create(); - if (firstData) { - this.update(firstData); - } - } - update(data) { - this.impl.update((0, utils_1.toRealUint8Array)(data)); - return this; - } - digest() { - return this.impl.digest(); - } -} -exports.Keccak256 = Keccak256; -/** Convenience function equivalent to `new Keccak256(data).digest()` */ -function keccak256(data) { - return new Keccak256(data).digest(); -} -exports.keccak256 = keccak256; -//# sourceMappingURL=keccak.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/libsodium.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/libsodium.js ***! - \*******************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -// Keep all classes requiring libsodium-js in one file as having multiple -// requiring of the libsodium-wrappers module currently crashes browsers -// -// libsodium.js API: https://gist.github.com/webmaster128/b2dbe6d54d36dd168c9fabf441b9b09c -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Xchacha20poly1305Ietf = exports.xchacha20NonceLength = exports.Ed25519 = exports.Ed25519Keypair = exports.Argon2id = exports.isArgon2idOptions = void 0; -const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/index.js"); -const libsodium_wrappers_1 = __importDefault(__webpack_require__(/*! libsodium-wrappers */ "./node_modules/libsodium-wrappers/dist/modules/libsodium-wrappers.js")); -function isArgon2idOptions(thing) { - if (!(0, utils_1.isNonNullObject)(thing)) - return false; - if (typeof thing.outputLength !== "number") - return false; - if (typeof thing.opsLimit !== "number") - return false; - if (typeof thing.memLimitKib !== "number") - return false; - return true; -} -exports.isArgon2idOptions = isArgon2idOptions; -class Argon2id { - static async execute(password, salt, options) { - await libsodium_wrappers_1.default.ready; - return libsodium_wrappers_1.default.crypto_pwhash(options.outputLength, password, salt, // libsodium only supports 16 byte salts and will throw when you don't respect that - options.opsLimit, options.memLimitKib * 1024, libsodium_wrappers_1.default.crypto_pwhash_ALG_ARGON2ID13); - } -} -exports.Argon2id = Argon2id; -class Ed25519Keypair { - constructor(privkey, pubkey) { - this.privkey = privkey; - this.pubkey = pubkey; - } - // a libsodium privkey has the format ` + ` - static fromLibsodiumPrivkey(libsodiumPrivkey) { - if (libsodiumPrivkey.length !== 64) { - throw new Error(`Unexpected key length ${libsodiumPrivkey.length}. Must be 64.`); - } - return new Ed25519Keypair(libsodiumPrivkey.slice(0, 32), libsodiumPrivkey.slice(32, 64)); - } - toLibsodiumPrivkey() { - return new Uint8Array([...this.privkey, ...this.pubkey]); - } -} -exports.Ed25519Keypair = Ed25519Keypair; -class Ed25519 { - /** - * Generates a keypair deterministically from a given 32 bytes seed. - * - * This seed equals the Ed25519 private key. - * For implementation details see crypto_sign_seed_keypair in - * https://download.libsodium.org/doc/public-key_cryptography/public-key_signatures.html - * and diagram on https://blog.mozilla.org/warner/2011/11/29/ed25519-keys/ - */ - static async makeKeypair(seed) { - await libsodium_wrappers_1.default.ready; - const keypair = libsodium_wrappers_1.default.crypto_sign_seed_keypair(seed); - return Ed25519Keypair.fromLibsodiumPrivkey(keypair.privateKey); - } - static async createSignature(message, keyPair) { - await libsodium_wrappers_1.default.ready; - return libsodium_wrappers_1.default.crypto_sign_detached(message, keyPair.toLibsodiumPrivkey()); - } - static async verifySignature(signature, message, pubkey) { - await libsodium_wrappers_1.default.ready; - return libsodium_wrappers_1.default.crypto_sign_verify_detached(signature, message, pubkey); - } -} -exports.Ed25519 = Ed25519; -/** - * Nonce length in bytes for all flavours of XChaCha20. - * - * @see https://libsodium.gitbook.io/doc/advanced/stream_ciphers/xchacha20#notes - */ -exports.xchacha20NonceLength = 24; -class Xchacha20poly1305Ietf { - static async encrypt(message, key, nonce) { - await libsodium_wrappers_1.default.ready; - const additionalData = null; - return libsodium_wrappers_1.default.crypto_aead_xchacha20poly1305_ietf_encrypt(message, additionalData, null, // secret nonce: unused and should be null (https://download.libsodium.org/doc/secret-key_cryptography/aead/chacha20-poly1305/xchacha20-poly1305_construction) - nonce, key); - } - static async decrypt(ciphertext, key, nonce) { - await libsodium_wrappers_1.default.ready; - const additionalData = null; - return libsodium_wrappers_1.default.crypto_aead_xchacha20poly1305_ietf_decrypt(null, // secret nonce: unused and should be null (https://download.libsodium.org/doc/secret-key_cryptography/aead/chacha20-poly1305/xchacha20-poly1305_construction) - ciphertext, additionalData, nonce, key); - } -} -exports.Xchacha20poly1305Ietf = Xchacha20poly1305Ietf; -//# sourceMappingURL=libsodium.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/pbkdf2.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/pbkdf2.js ***! - \****************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.pbkdf2Sha512 = exports.pbkdf2Sha512Noble = exports.pbkdf2Sha512NodeCrypto = exports.pbkdf2Sha512Subtle = exports.getSubtle = exports.getNodeCrypto = void 0; -const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/index.js"); -const pbkdf2_1 = __webpack_require__(/*! @noble/hashes/pbkdf2 */ "./node_modules/@noble/hashes/pbkdf2.js"); -const sha512_1 = __webpack_require__(/*! @noble/hashes/sha512 */ "./node_modules/@noble/hashes/sha512.js"); -/** - * Returns the Node.js crypto module when available and `undefined` - * otherwise. - * - * Detects an unimplemented fallback module from Webpack 5 and returns - * `undefined` in that case. - */ -async function getNodeCrypto() { - try { - const nodeCrypto = await Promise.resolve().then(() => __importStar(__webpack_require__(/*! crypto */ "./node_modules/crypto-browserify/index.js"))); - // We get `Object{default: Object{}}` as a fallback when using - // `crypto: false` in Webpack 5, which we interprete as unavailable. - if (typeof nodeCrypto === "object" && Object.keys(nodeCrypto).length <= 1) { - return undefined; - } - return nodeCrypto; - } - catch { - return undefined; - } -} -exports.getNodeCrypto = getNodeCrypto; -async function getSubtle() { - // From Node.js 15 onwards, webcrypto is available in globalThis. - // In version 15 and 16 this was stored under the webcrypto key. - // With Node.js 17 it was moved to the same locations where browsers - // make it available. - // Loading `require("crypto")` here seems unnecessary since it only - // causes issues with bundlers and does not increase compatibility. - // Browsers and Node.js 17+ - let subtle = globalThis?.crypto?.subtle; - // Node.js 15+ - if (!subtle) - subtle = globalThis?.crypto?.webcrypto?.subtle; - return subtle; -} -exports.getSubtle = getSubtle; -async function pbkdf2Sha512Subtle( -// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types -subtle, secret, salt, iterations, keylen) { - (0, utils_1.assert)(subtle, "Argument subtle is falsy"); - (0, utils_1.assert)(typeof subtle === "object", "Argument subtle is not of type object"); - (0, utils_1.assert)(typeof subtle.importKey === "function", "subtle.importKey is not a function"); - (0, utils_1.assert)(typeof subtle.deriveBits === "function", "subtle.deriveBits is not a function"); - return subtle.importKey("raw", secret, { name: "PBKDF2" }, false, ["deriveBits"]).then((key) => subtle - .deriveBits({ - name: "PBKDF2", - salt: salt, - iterations: iterations, - hash: { name: "SHA-512" }, - }, key, keylen * 8) - .then((buffer) => new Uint8Array(buffer))); -} -exports.pbkdf2Sha512Subtle = pbkdf2Sha512Subtle; -/** - * Implements pbkdf2-sha512 using the Node.js crypro module (`import "crypto"`). - * This does not use subtle from [Crypto](https://developer.mozilla.org/en-US/docs/Web/API/Crypto). - */ -async function pbkdf2Sha512NodeCrypto( -// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types -nodeCrypto, secret, salt, iterations, keylen) { - (0, utils_1.assert)(nodeCrypto, "Argument nodeCrypto is falsy"); - (0, utils_1.assert)(typeof nodeCrypto === "object", "Argument nodeCrypto is not of type object"); - (0, utils_1.assert)(typeof nodeCrypto.pbkdf2 === "function", "nodeCrypto.pbkdf2 is not a function"); - return new Promise((resolve, reject) => { - nodeCrypto.pbkdf2(secret, salt, iterations, keylen, "sha512", (error, result) => { - if (error) { - reject(error); - } - else { - resolve(Uint8Array.from(result)); - } - }); - }); -} -exports.pbkdf2Sha512NodeCrypto = pbkdf2Sha512NodeCrypto; -async function pbkdf2Sha512Noble(secret, salt, iterations, keylen) { - return (0, pbkdf2_1.pbkdf2Async)(sha512_1.sha512, secret, salt, { c: iterations, dkLen: keylen }); -} -exports.pbkdf2Sha512Noble = pbkdf2Sha512Noble; -/** - * A pbkdf2 implementation for BIP39. This is not exported at package level and thus a private API. - */ -async function pbkdf2Sha512(secret, salt, iterations, keylen) { - const subtle = await getSubtle(); - if (subtle) { - return pbkdf2Sha512Subtle(subtle, secret, salt, iterations, keylen); - } - else { - const nodeCrypto = await getNodeCrypto(); - if (nodeCrypto) { - return pbkdf2Sha512NodeCrypto(nodeCrypto, secret, salt, iterations, keylen); - } - else { - return pbkdf2Sha512Noble(secret, salt, iterations, keylen); - } - } -} -exports.pbkdf2Sha512 = pbkdf2Sha512; -//# sourceMappingURL=pbkdf2.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/random.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/random.js ***! - \****************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Random = void 0; -class Random { - /** - * Returns `count` cryptographically secure random bytes - */ - static getBytes(count) { - try { - const globalObject = typeof window === "object" ? window : self; - const cryptoApi = typeof globalObject.crypto !== "undefined" ? globalObject.crypto : globalObject.msCrypto; - const out = new Uint8Array(count); - cryptoApi.getRandomValues(out); - return out; - } - catch { - try { - // eslint-disable-next-line @typescript-eslint/no-var-requires - const crypto = __webpack_require__(/*! crypto */ "./node_modules/crypto-browserify/index.js"); - return new Uint8Array([...crypto.randomBytes(count)]); - } - catch { - throw new Error("No secure random number generator found"); - } - } - } -} -exports.Random = Random; -//# sourceMappingURL=random.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/ripemd.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/ripemd.js ***! - \****************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ripemd160 = exports.Ripemd160 = void 0; -const ripemd160_1 = __webpack_require__(/*! @noble/hashes/ripemd160 */ "./node_modules/@noble/hashes/ripemd160.js"); -const utils_1 = __webpack_require__(/*! ./utils */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/utils.js"); -class Ripemd160 { - constructor(firstData) { - this.blockSize = 512 / 8; - this.impl = ripemd160_1.ripemd160.create(); - if (firstData) { - this.update(firstData); - } - } - update(data) { - this.impl.update((0, utils_1.toRealUint8Array)(data)); - return this; - } - digest() { - return this.impl.digest(); - } -} -exports.Ripemd160 = Ripemd160; -/** Convenience function equivalent to `new Ripemd160(data).digest()` */ -function ripemd160(data) { - return new Ripemd160(data).digest(); -} -exports.ripemd160 = ripemd160; -//# sourceMappingURL=ripemd.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/secp256k1.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/secp256k1.js ***! - \*******************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Secp256k1 = void 0; -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/index.js"); -const bn_js_1 = __importDefault(__webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js")); -const elliptic_1 = __importDefault(__webpack_require__(/*! elliptic */ "./node_modules/elliptic/lib/elliptic.js")); -const secp256k1signature_1 = __webpack_require__(/*! ./secp256k1signature */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/secp256k1signature.js"); -const secp256k1 = new elliptic_1.default.ec("secp256k1"); -const secp256k1N = new bn_js_1.default("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141", "hex"); -class Secp256k1 { - /** - * Takes a 32 byte private key and returns a privkey/pubkey pair. - * - * The resulting pubkey is uncompressed. For the use in Cosmos it should - * be compressed first using `Secp256k1.compressPubkey`. - */ - static async makeKeypair(privkey) { - if (privkey.length !== 32) { - // is this check missing in secp256k1.validatePrivateKey? - // https://github.com/bitjson/bitcoin-ts/issues/4 - throw new Error("input data is not a valid secp256k1 private key"); - } - const keypair = secp256k1.keyFromPrivate(privkey); - if (keypair.validate().result !== true) { - throw new Error("input data is not a valid secp256k1 private key"); - } - // range test that is not part of the elliptic implementation - const privkeyAsBigInteger = new bn_js_1.default(privkey); - if (privkeyAsBigInteger.gte(secp256k1N)) { - // not strictly smaller than N - throw new Error("input data is not a valid secp256k1 private key"); - } - const out = { - privkey: (0, encoding_1.fromHex)(keypair.getPrivate("hex")), - // encodes uncompressed as - // - 1-byte prefix "04" - // - 32-byte x coordinate - // - 32-byte y coordinate - pubkey: Uint8Array.from(keypair.getPublic("array")), - }; - return out; - } - /** - * Creates a signature that is - * - deterministic (RFC 6979) - * - lowS signature - * - DER encoded - */ - static async createSignature(messageHash, privkey) { - if (messageHash.length === 0) { - throw new Error("Message hash must not be empty"); - } - if (messageHash.length > 32) { - throw new Error("Message hash length must not exceed 32 bytes"); - } - const keypair = secp256k1.keyFromPrivate(privkey); - // the `canonical` option ensures creation of lowS signature representations - const { r, s, recoveryParam } = keypair.sign(messageHash, { canonical: true }); - if (typeof recoveryParam !== "number") - throw new Error("Recovery param missing"); - return new secp256k1signature_1.ExtendedSecp256k1Signature(Uint8Array.from(r.toArray()), Uint8Array.from(s.toArray()), recoveryParam); - } - static async verifySignature(signature, messageHash, pubkey) { - if (messageHash.length === 0) { - throw new Error("Message hash must not be empty"); - } - if (messageHash.length > 32) { - throw new Error("Message hash length must not exceed 32 bytes"); - } - const keypair = secp256k1.keyFromPublic(pubkey); - // From https://github.com/indutny/elliptic: - // - // Sign the message's hash (input must be an array, or a hex-string) - // - // Signature MUST be either: - // 1) DER-encoded signature as hex-string; or - // 2) DER-encoded signature as buffer; or - // 3) object with two hex-string properties (r and s); or - // 4) object with two buffer properties (r and s) - // - // Uint8Array is not a Buffer, but elliptic seems to be happy with the interface - // common to both types. Uint8Array is not an array of ints but the interface is - // similar - try { - return keypair.verify(messageHash, signature.toDer()); - } - catch (error) { - return false; - } - } - static recoverPubkey(signature, messageHash) { - const signatureForElliptic = { r: (0, encoding_1.toHex)(signature.r()), s: (0, encoding_1.toHex)(signature.s()) }; - const point = secp256k1.recoverPubKey(messageHash, signatureForElliptic, signature.recovery); - const keypair = secp256k1.keyFromPublic(point); - return (0, encoding_1.fromHex)(keypair.getPublic(false, "hex")); - } - /** - * Takes a compressed or uncompressed pubkey and return a compressed one. - * - * This function is idempotent. - */ - static compressPubkey(pubkey) { - switch (pubkey.length) { - case 33: - return pubkey; - case 65: - return Uint8Array.from(secp256k1.keyFromPublic(pubkey).getPublic(true, "array")); - default: - throw new Error("Invalid pubkey length"); - } - } - /** - * Takes a compressed or uncompressed pubkey and returns an uncompressed one. - * - * This function is idempotent. - */ - static uncompressPubkey(pubkey) { - switch (pubkey.length) { - case 33: - return Uint8Array.from(secp256k1.keyFromPublic(pubkey).getPublic(false, "array")); - case 65: - return pubkey; - default: - throw new Error("Invalid pubkey length"); - } - } - static trimRecoveryByte(signature) { - switch (signature.length) { - case 64: - return signature; - case 65: - return signature.slice(0, 64); - default: - throw new Error("Invalid signature length"); - } - } -} -exports.Secp256k1 = Secp256k1; -//# sourceMappingURL=secp256k1.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/secp256k1signature.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/secp256k1signature.js ***! - \****************************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ExtendedSecp256k1Signature = exports.Secp256k1Signature = void 0; -function trimLeadingNullBytes(inData) { - let numberOfLeadingNullBytes = 0; - for (const byte of inData) { - if (byte === 0x00) { - numberOfLeadingNullBytes++; - } - else { - break; - } - } - return inData.slice(numberOfLeadingNullBytes); -} -const derTagInteger = 0x02; -class Secp256k1Signature { - constructor(r, s) { - if (r.length > 32 || r.length === 0 || r[0] === 0x00) { - throw new Error("Unsigned integer r must be encoded as unpadded big endian."); - } - if (s.length > 32 || s.length === 0 || s[0] === 0x00) { - throw new Error("Unsigned integer s must be encoded as unpadded big endian."); - } - this.data = { - r: r, - s: s, - }; - } - /** - * Takes the pair of integers (r, s) as 2x32 byte of binary data. - * - * Note: This is the format Cosmos SDK uses natively. - * - * @param data a 64 byte value containing integers r and s. - */ - static fromFixedLength(data) { - if (data.length !== 64) { - throw new Error(`Got invalid data length: ${data.length}. Expected 2x 32 bytes for the pair (r, s)`); - } - return new Secp256k1Signature(trimLeadingNullBytes(data.slice(0, 32)), trimLeadingNullBytes(data.slice(32, 64))); - } - static fromDer(data) { - let pos = 0; - if (data[pos++] !== 0x30) { - throw new Error("Prefix 0x30 expected"); - } - const bodyLength = data[pos++]; - if (data.length - pos !== bodyLength) { - throw new Error("Data length mismatch detected"); - } - // r - const rTag = data[pos++]; - if (rTag !== derTagInteger) { - throw new Error("INTEGER tag expected"); - } - const rLength = data[pos++]; - if (rLength >= 0x80) { - throw new Error("Decoding length values above 127 not supported"); - } - const rData = data.slice(pos, pos + rLength); - pos += rLength; - // s - const sTag = data[pos++]; - if (sTag !== derTagInteger) { - throw new Error("INTEGER tag expected"); - } - const sLength = data[pos++]; - if (sLength >= 0x80) { - throw new Error("Decoding length values above 127 not supported"); - } - const sData = data.slice(pos, pos + sLength); - pos += sLength; - return new Secp256k1Signature( - // r/s data can contain leading 0 bytes to express integers being non-negative in DER - trimLeadingNullBytes(rData), trimLeadingNullBytes(sData)); - } - r(length) { - if (length === undefined) { - return this.data.r; - } - else { - const paddingLength = length - this.data.r.length; - if (paddingLength < 0) { - throw new Error("Length too small to hold parameter r"); - } - const padding = new Uint8Array(paddingLength); - return new Uint8Array([...padding, ...this.data.r]); - } - } - s(length) { - if (length === undefined) { - return this.data.s; - } - else { - const paddingLength = length - this.data.s.length; - if (paddingLength < 0) { - throw new Error("Length too small to hold parameter s"); - } - const padding = new Uint8Array(paddingLength); - return new Uint8Array([...padding, ...this.data.s]); - } - } - toFixedLength() { - return new Uint8Array([...this.r(32), ...this.s(32)]); - } - toDer() { - // DER supports negative integers but our data is unsigned. Thus we need to prepend - // a leading 0 byte when the higest bit is set to differentiate nagative values - const rEncoded = this.data.r[0] >= 0x80 ? new Uint8Array([0, ...this.data.r]) : this.data.r; - const sEncoded = this.data.s[0] >= 0x80 ? new Uint8Array([0, ...this.data.s]) : this.data.s; - const rLength = rEncoded.length; - const sLength = sEncoded.length; - const data = new Uint8Array([derTagInteger, rLength, ...rEncoded, derTagInteger, sLength, ...sEncoded]); - return new Uint8Array([0x30, data.length, ...data]); - } -} -exports.Secp256k1Signature = Secp256k1Signature; -/** - * A Secp256k1Signature plus the recovery parameter - */ -class ExtendedSecp256k1Signature extends Secp256k1Signature { - constructor(r, s, recovery) { - super(r, s); - if (!Number.isInteger(recovery)) { - throw new Error("The recovery parameter must be an integer."); - } - if (recovery < 0 || recovery > 4) { - throw new Error("The recovery parameter must be one of 0, 1, 2, 3."); - } - this.recovery = recovery; - } - /** - * Decode extended signature from the simple fixed length encoding - * described in toFixedLength(). - */ - static fromFixedLength(data) { - if (data.length !== 65) { - throw new Error(`Got invalid data length ${data.length}. Expected 32 + 32 + 1`); - } - return new ExtendedSecp256k1Signature(trimLeadingNullBytes(data.slice(0, 32)), trimLeadingNullBytes(data.slice(32, 64)), data[64]); - } - /** - * A simple custom encoding that encodes the extended signature as - * r (32 bytes) | s (32 bytes) | recovery param (1 byte) - * where | denotes concatenation of bonary data. - */ - toFixedLength() { - return new Uint8Array([...this.r(32), ...this.s(32), this.recovery]); - } -} -exports.ExtendedSecp256k1Signature = ExtendedSecp256k1Signature; -//# sourceMappingURL=secp256k1signature.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/sha.js": -/*!*************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/sha.js ***! - \*************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.sha512 = exports.Sha512 = exports.sha256 = exports.Sha256 = void 0; -const sha256_1 = __webpack_require__(/*! @noble/hashes/sha256 */ "./node_modules/@noble/hashes/sha256.js"); -const sha512_1 = __webpack_require__(/*! @noble/hashes/sha512 */ "./node_modules/@noble/hashes/sha512.js"); -const utils_1 = __webpack_require__(/*! ./utils */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/utils.js"); -class Sha256 { - constructor(firstData) { - this.blockSize = 512 / 8; - this.impl = sha256_1.sha256.create(); - if (firstData) { - this.update(firstData); - } - } - update(data) { - this.impl.update((0, utils_1.toRealUint8Array)(data)); - return this; - } - digest() { - return this.impl.digest(); - } -} -exports.Sha256 = Sha256; -/** Convenience function equivalent to `new Sha256(data).digest()` */ -function sha256(data) { - return new Sha256(data).digest(); -} -exports.sha256 = sha256; -class Sha512 { - constructor(firstData) { - this.blockSize = 1024 / 8; - this.impl = sha512_1.sha512.create(); - if (firstData) { - this.update(firstData); - } - } - update(data) { - this.impl.update((0, utils_1.toRealUint8Array)(data)); - return this; - } - digest() { - return this.impl.digest(); - } -} -exports.Sha512 = Sha512; -/** Convenience function equivalent to `new Sha512(data).digest()` */ -function sha512(data) { - return new Sha512(data).digest(); -} -exports.sha512 = sha512; -//# sourceMappingURL=sha.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/slip10.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/slip10.js ***! - \****************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.stringToPath = exports.pathToString = exports.Slip10 = exports.Slip10RawIndex = exports.slip10CurveFromString = exports.Slip10Curve = void 0; -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/index.js"); -const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/math/build/index.js"); -const bn_js_1 = __importDefault(__webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js")); -const elliptic_1 = __importDefault(__webpack_require__(/*! elliptic */ "./node_modules/elliptic/lib/elliptic.js")); -const hmac_1 = __webpack_require__(/*! ./hmac */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/hmac.js"); -const sha_1 = __webpack_require__(/*! ./sha */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/sha.js"); -/** - * Raw values must match the curve string in SLIP-0010 master key generation - * - * @see https://github.com/satoshilabs/slips/blob/master/slip-0010.md#master-key-generation - */ -var Slip10Curve; -(function (Slip10Curve) { - Slip10Curve["Secp256k1"] = "Bitcoin seed"; - Slip10Curve["Ed25519"] = "ed25519 seed"; -})(Slip10Curve = exports.Slip10Curve || (exports.Slip10Curve = {})); -/** - * Reverse mapping of Slip10Curve - */ -function slip10CurveFromString(curveString) { - switch (curveString) { - case Slip10Curve.Ed25519: - return Slip10Curve.Ed25519; - case Slip10Curve.Secp256k1: - return Slip10Curve.Secp256k1; - default: - throw new Error(`Unknown curve string: '${curveString}'`); - } -} -exports.slip10CurveFromString = slip10CurveFromString; -class Slip10RawIndex extends math_1.Uint32 { - static hardened(hardenedIndex) { - return new Slip10RawIndex(hardenedIndex + 2 ** 31); - } - static normal(normalIndex) { - return new Slip10RawIndex(normalIndex); - } - isHardened() { - return this.data >= 2 ** 31; - } -} -exports.Slip10RawIndex = Slip10RawIndex; -const secp256k1 = new elliptic_1.default.ec("secp256k1"); -// Universal private key derivation accoring to -// https://github.com/satoshilabs/slips/blob/master/slip-0010.md -class Slip10 { - static derivePath(curve, seed, path) { - let result = this.master(curve, seed); - for (const rawIndex of path) { - result = this.child(curve, result.privkey, result.chainCode, rawIndex); - } - return result; - } - static master(curve, seed) { - const i = new hmac_1.Hmac(sha_1.Sha512, (0, encoding_1.toAscii)(curve)).update(seed).digest(); - const il = i.slice(0, 32); - const ir = i.slice(32, 64); - if (curve !== Slip10Curve.Ed25519 && (this.isZero(il) || this.isGteN(curve, il))) { - return this.master(curve, i); - } - return { - chainCode: ir, - privkey: il, - }; - } - static child(curve, parentPrivkey, parentChainCode, rawIndex) { - let i; - if (rawIndex.isHardened()) { - const payload = new Uint8Array([0x00, ...parentPrivkey, ...rawIndex.toBytesBigEndian()]); - i = new hmac_1.Hmac(sha_1.Sha512, parentChainCode).update(payload).digest(); - } - else { - if (curve === Slip10Curve.Ed25519) { - throw new Error("Normal keys are not allowed with ed25519"); - } - else { - // Step 1 of https://github.com/satoshilabs/slips/blob/master/slip-0010.md#private-parent-key--private-child-key - // Calculate I = HMAC-SHA512(Key = c_par, Data = ser_P(point(k_par)) || ser_32(i)). - // where the functions point() and ser_p() are defined in BIP-0032 - const data = new Uint8Array([ - ...Slip10.serializedPoint(curve, new bn_js_1.default(parentPrivkey)), - ...rawIndex.toBytesBigEndian(), - ]); - i = new hmac_1.Hmac(sha_1.Sha512, parentChainCode).update(data).digest(); - } - } - return this.childImpl(curve, parentPrivkey, parentChainCode, rawIndex, i); - } - /** - * Implementation of ser_P(point(k_par)) from BIP-0032 - * - * @see https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki - */ - static serializedPoint(curve, p) { - switch (curve) { - case Slip10Curve.Secp256k1: - return (0, encoding_1.fromHex)(secp256k1.g.mul(p).encodeCompressed("hex")); - default: - throw new Error("curve not supported"); - } - } - static childImpl(curve, parentPrivkey, parentChainCode, rawIndex, i) { - // step 2 (of the Private parent key → private child key algorithm) - const il = i.slice(0, 32); - const ir = i.slice(32, 64); - // step 3 - const returnChainCode = ir; - // step 4 - if (curve === Slip10Curve.Ed25519) { - return { - chainCode: returnChainCode, - privkey: il, - }; - } - // step 5 - const n = this.n(curve); - const returnChildKeyAsNumber = new bn_js_1.default(il).add(new bn_js_1.default(parentPrivkey)).mod(n); - const returnChildKey = Uint8Array.from(returnChildKeyAsNumber.toArray("be", 32)); - // step 6 - if (this.isGteN(curve, il) || this.isZero(returnChildKey)) { - const newI = new hmac_1.Hmac(sha_1.Sha512, parentChainCode) - .update(new Uint8Array([0x01, ...ir, ...rawIndex.toBytesBigEndian()])) - .digest(); - return this.childImpl(curve, parentPrivkey, parentChainCode, rawIndex, newI); - } - // step 7 - return { - chainCode: returnChainCode, - privkey: returnChildKey, - }; - } - static isZero(privkey) { - return privkey.every((byte) => byte === 0); - } - static isGteN(curve, privkey) { - const keyAsNumber = new bn_js_1.default(privkey); - return keyAsNumber.gte(this.n(curve)); - } - static n(curve) { - switch (curve) { - case Slip10Curve.Secp256k1: - return new bn_js_1.default("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141", 16); - default: - throw new Error("curve not supported"); - } - } -} -exports.Slip10 = Slip10; -function pathToString(path) { - return path.reduce((current, component) => { - const componentString = component.isHardened() - ? `${component.toNumber() - 2 ** 31}'` - : component.toString(); - return current + "/" + componentString; - }, "m"); -} -exports.pathToString = pathToString; -function stringToPath(input) { - if (!input.startsWith("m")) - throw new Error("Path string must start with 'm'"); - let rest = input.slice(1); - const out = new Array(); - while (rest) { - const match = rest.match(/^\/([0-9]+)('?)/); - if (!match) - throw new Error("Syntax error while reading path component"); - const [fullMatch, numberString, apostrophe] = match; - const value = math_1.Uint53.fromString(numberString).toNumber(); - if (value >= 2 ** 31) - throw new Error("Component value too high. Must not exceed 2**31-1."); - if (apostrophe) - out.push(Slip10RawIndex.hardened(value)); - else - out.push(Slip10RawIndex.normal(value)); - rest = rest.slice(fullMatch.length); - } - return out; -} -exports.stringToPath = stringToPath; -//# sourceMappingURL=slip10.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/utils.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/crypto/build/utils.js ***! - \***************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toRealUint8Array = void 0; -// See https://github.com/paulmillr/noble-hashes/issues/25 for why this is needed -function toRealUint8Array(data) { - if (data instanceof Uint8Array) - return data; - else - return Uint8Array.from(data); -} -exports.toRealUint8Array = toRealUint8Array; -//# sourceMappingURL=utils.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/ascii.js": -/*!*****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/ascii.js ***! - \*****************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromAscii = exports.toAscii = void 0; -function toAscii(input) { - const toNums = (str) => str.split("").map((x) => { - const charCode = x.charCodeAt(0); - // 0x00–0x1F control characters - // 0x20–0x7E printable characters - // 0x7F delete character - // 0x80–0xFF out of 7 bit ascii range - if (charCode < 0x20 || charCode > 0x7e) { - throw new Error("Cannot encode character that is out of printable ASCII range: " + charCode); - } - return charCode; - }); - return Uint8Array.from(toNums(input)); -} -exports.toAscii = toAscii; -function fromAscii(data) { - const fromNums = (listOfNumbers) => listOfNumbers.map((x) => { - // 0x00–0x1F control characters - // 0x20–0x7E printable characters - // 0x7F delete character - // 0x80–0xFF out of 7 bit ascii range - if (x < 0x20 || x > 0x7e) { - throw new Error("Cannot decode character that is out of printable ASCII range: " + x); - } - return String.fromCharCode(x); - }); - return fromNums(Array.from(data)).join(""); -} -exports.fromAscii = fromAscii; -//# sourceMappingURL=ascii.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/base64.js": -/*!******************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/base64.js ***! - \******************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromBase64 = exports.toBase64 = void 0; -const base64js = __importStar(__webpack_require__(/*! base64-js */ "./node_modules/base64-js/index.js")); -function toBase64(data) { - return base64js.fromByteArray(data); -} -exports.toBase64 = toBase64; -function fromBase64(base64String) { - if (!base64String.match(/^[a-zA-Z0-9+/]*={0,2}$/)) { - throw new Error("Invalid base64 string format"); - } - return base64js.toByteArray(base64String); -} -exports.fromBase64 = fromBase64; -//# sourceMappingURL=base64.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/bech32.js": -/*!******************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/bech32.js ***! - \******************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.normalizeBech32 = exports.fromBech32 = exports.toBech32 = void 0; -const bech32 = __importStar(__webpack_require__(/*! bech32 */ "./node_modules/bech32/index.js")); -function toBech32(prefix, data, limit) { - const address = bech32.encode(prefix, bech32.toWords(data), limit); - return address; -} -exports.toBech32 = toBech32; -function fromBech32(address, limit = Infinity) { - const decodedAddress = bech32.decode(address, limit); - return { - prefix: decodedAddress.prefix, - data: new Uint8Array(bech32.fromWords(decodedAddress.words)), - }; -} -exports.fromBech32 = fromBech32; -/** - * Takes a bech32 address and returns a normalized (i.e. lower case) representation of it. - * - * The input is validated along the way, which makes this significantly safer than - * using `address.toLowerCase()`. - */ -function normalizeBech32(address) { - const { prefix, data } = fromBech32(address); - return toBech32(prefix, data); -} -exports.normalizeBech32 = normalizeBech32; -//# sourceMappingURL=bech32.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/hex.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/hex.js ***! - \***************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromHex = exports.toHex = void 0; -function toHex(data) { - let out = ""; - for (const byte of data) { - out += ("0" + byte.toString(16)).slice(-2); - } - return out; -} -exports.toHex = toHex; -function fromHex(hexstring) { - if (hexstring.length % 2 !== 0) { - throw new Error("hex string length must be a multiple of 2"); - } - const out = new Uint8Array(hexstring.length / 2); - for (let i = 0; i < out.length; i++) { - const j = 2 * i; - const hexByteAsString = hexstring.slice(j, j + 2); - if (!hexByteAsString.match(/[0-9a-f]{2}/i)) { - throw new Error("hex string contains invalid characters"); - } - out[i] = parseInt(hexByteAsString, 16); - } - return out; -} -exports.fromHex = fromHex; -//# sourceMappingURL=hex.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/index.js": -/*!*****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/index.js ***! - \*****************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toUtf8 = exports.fromUtf8 = exports.toRfc3339 = exports.fromRfc3339 = exports.toHex = exports.fromHex = exports.toBech32 = exports.normalizeBech32 = exports.fromBech32 = exports.toBase64 = exports.fromBase64 = exports.toAscii = exports.fromAscii = void 0; -var ascii_1 = __webpack_require__(/*! ./ascii */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/ascii.js"); -Object.defineProperty(exports, "fromAscii", ({ enumerable: true, get: function () { return ascii_1.fromAscii; } })); -Object.defineProperty(exports, "toAscii", ({ enumerable: true, get: function () { return ascii_1.toAscii; } })); -var base64_1 = __webpack_require__(/*! ./base64 */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/base64.js"); -Object.defineProperty(exports, "fromBase64", ({ enumerable: true, get: function () { return base64_1.fromBase64; } })); -Object.defineProperty(exports, "toBase64", ({ enumerable: true, get: function () { return base64_1.toBase64; } })); -var bech32_1 = __webpack_require__(/*! ./bech32 */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/bech32.js"); -Object.defineProperty(exports, "fromBech32", ({ enumerable: true, get: function () { return bech32_1.fromBech32; } })); -Object.defineProperty(exports, "normalizeBech32", ({ enumerable: true, get: function () { return bech32_1.normalizeBech32; } })); -Object.defineProperty(exports, "toBech32", ({ enumerable: true, get: function () { return bech32_1.toBech32; } })); -var hex_1 = __webpack_require__(/*! ./hex */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/hex.js"); -Object.defineProperty(exports, "fromHex", ({ enumerable: true, get: function () { return hex_1.fromHex; } })); -Object.defineProperty(exports, "toHex", ({ enumerable: true, get: function () { return hex_1.toHex; } })); -var rfc3339_1 = __webpack_require__(/*! ./rfc3339 */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/rfc3339.js"); -Object.defineProperty(exports, "fromRfc3339", ({ enumerable: true, get: function () { return rfc3339_1.fromRfc3339; } })); -Object.defineProperty(exports, "toRfc3339", ({ enumerable: true, get: function () { return rfc3339_1.toRfc3339; } })); -var utf8_1 = __webpack_require__(/*! ./utf8 */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/utf8.js"); -Object.defineProperty(exports, "fromUtf8", ({ enumerable: true, get: function () { return utf8_1.fromUtf8; } })); -Object.defineProperty(exports, "toUtf8", ({ enumerable: true, get: function () { return utf8_1.toUtf8; } })); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/rfc3339.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/rfc3339.js ***! - \*******************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toRfc3339 = exports.fromRfc3339 = void 0; -const rfc3339Matcher = /^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2}):(\d{2})(\.\d{1,9})?((?:[+-]\d{2}:\d{2})|Z)$/; -function padded(integer, length = 2) { - return integer.toString().padStart(length, "0"); -} -function fromRfc3339(str) { - const matches = rfc3339Matcher.exec(str); - if (!matches) { - throw new Error("Date string is not in RFC3339 format"); - } - const year = +matches[1]; - const month = +matches[2]; - const day = +matches[3]; - const hour = +matches[4]; - const minute = +matches[5]; - const second = +matches[6]; - // fractional seconds match either undefined or a string like ".1", ".123456789" - const milliSeconds = matches[7] ? Math.floor(+matches[7] * 1000) : 0; - let tzOffsetSign; - let tzOffsetHours; - let tzOffsetMinutes; - // if timezone is undefined, it must be Z or nothing (otherwise the group would have captured). - if (matches[8] === "Z") { - tzOffsetSign = 1; - tzOffsetHours = 0; - tzOffsetMinutes = 0; - } - else { - tzOffsetSign = matches[8].substring(0, 1) === "-" ? -1 : 1; - tzOffsetHours = +matches[8].substring(1, 3); - tzOffsetMinutes = +matches[8].substring(4, 6); - } - const tzOffset = tzOffsetSign * (tzOffsetHours * 60 + tzOffsetMinutes) * 60; // seconds - const timestamp = Date.UTC(year, month - 1, day, hour, minute, second, milliSeconds) - tzOffset * 1000; - return new Date(timestamp); -} -exports.fromRfc3339 = fromRfc3339; -function toRfc3339(date) { - const year = date.getUTCFullYear(); - const month = padded(date.getUTCMonth() + 1); - const day = padded(date.getUTCDate()); - const hour = padded(date.getUTCHours()); - const minute = padded(date.getUTCMinutes()); - const second = padded(date.getUTCSeconds()); - const ms = padded(date.getUTCMilliseconds(), 3); - return `${year}-${month}-${day}T${hour}:${minute}:${second}.${ms}Z`; -} -exports.toRfc3339 = toRfc3339; -//# sourceMappingURL=rfc3339.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/utf8.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/encoding/build/utf8.js ***! - \****************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromUtf8 = exports.toUtf8 = void 0; -function toUtf8(str) { - return new TextEncoder().encode(str); -} -exports.toUtf8 = toUtf8; -/** - * Takes UTF-8 data and decodes it to a string. - * - * In lossy mode, the replacement character � is used to substitude invalid - * encodings. By default lossy mode is off and invalid data will lead to exceptions. - */ -function fromUtf8(data, lossy = false) { - const fatal = !lossy; - return new TextDecoder("utf-8", { fatal }).decode(data); -} -exports.fromUtf8 = fromUtf8; -//# sourceMappingURL=utf8.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/math/build/decimal.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/math/build/decimal.js ***! - \***************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Decimal = void 0; -const bn_js_1 = __importDefault(__webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js")); -// Too large values lead to massive memory usage. Limit to something sensible. -// The largest value we need is 18 (Ether). -const maxFractionalDigits = 100; -/** - * A type for arbitrary precision, non-negative decimals. - * - * Instances of this class are immutable. - */ -class Decimal { - constructor(atomics, fractionalDigits) { - if (!atomics.match(/^[0-9]+$/)) { - throw new Error("Invalid string format. Only non-negative integers in decimal representation supported."); - } - this.data = { - atomics: new bn_js_1.default(atomics), - fractionalDigits: fractionalDigits, - }; - } - static fromUserInput(input, fractionalDigits) { - Decimal.verifyFractionalDigits(fractionalDigits); - const badCharacter = input.match(/[^0-9.]/); - if (badCharacter) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - throw new Error(`Invalid character at position ${badCharacter.index + 1}`); - } - let whole; - let fractional; - if (input === "") { - whole = "0"; - fractional = ""; - } - else if (input.search(/\./) === -1) { - // integer format, no separator - whole = input; - fractional = ""; - } - else { - const parts = input.split("."); - switch (parts.length) { - case 0: - case 1: - throw new Error("Fewer than two elements in split result. This must not happen here."); - case 2: - if (!parts[1]) - throw new Error("Fractional part missing"); - whole = parts[0]; - fractional = parts[1].replace(/0+$/, ""); - break; - default: - throw new Error("More than one separator found"); - } - } - if (fractional.length > fractionalDigits) { - throw new Error("Got more fractional digits than supported"); - } - const quantity = `${whole}${fractional.padEnd(fractionalDigits, "0")}`; - return new Decimal(quantity, fractionalDigits); - } - static fromAtomics(atomics, fractionalDigits) { - Decimal.verifyFractionalDigits(fractionalDigits); - return new Decimal(atomics, fractionalDigits); - } - /** - * Creates a Decimal with value 0.0 and the given number of fractial digits. - * - * Fractional digits are not relevant for the value but needed to be able - * to perform arithmetic operations with other decimals. - */ - static zero(fractionalDigits) { - Decimal.verifyFractionalDigits(fractionalDigits); - return new Decimal("0", fractionalDigits); - } - /** - * Creates a Decimal with value 1.0 and the given number of fractial digits. - * - * Fractional digits are not relevant for the value but needed to be able - * to perform arithmetic operations with other decimals. - */ - static one(fractionalDigits) { - Decimal.verifyFractionalDigits(fractionalDigits); - return new Decimal("1" + "0".repeat(fractionalDigits), fractionalDigits); - } - static verifyFractionalDigits(fractionalDigits) { - if (!Number.isInteger(fractionalDigits)) - throw new Error("Fractional digits is not an integer"); - if (fractionalDigits < 0) - throw new Error("Fractional digits must not be negative"); - if (fractionalDigits > maxFractionalDigits) { - throw new Error(`Fractional digits must not exceed ${maxFractionalDigits}`); - } - } - static compare(a, b) { - if (a.fractionalDigits !== b.fractionalDigits) - throw new Error("Fractional digits do not match"); - return a.data.atomics.cmp(new bn_js_1.default(b.atomics)); - } - get atomics() { - return this.data.atomics.toString(); - } - get fractionalDigits() { - return this.data.fractionalDigits; - } - /** Creates a new instance with the same value */ - clone() { - return new Decimal(this.atomics, this.fractionalDigits); - } - /** Returns the greatest decimal <= this which has no fractional part (rounding down) */ - floor() { - const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits)); - const whole = this.data.atomics.div(factor); - const fractional = this.data.atomics.mod(factor); - if (fractional.isZero()) { - return this.clone(); - } - else { - return Decimal.fromAtomics(whole.mul(factor).toString(), this.fractionalDigits); - } - } - /** Returns the smallest decimal >= this which has no fractional part (rounding up) */ - ceil() { - const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits)); - const whole = this.data.atomics.div(factor); - const fractional = this.data.atomics.mod(factor); - if (fractional.isZero()) { - return this.clone(); - } - else { - return Decimal.fromAtomics(whole.addn(1).mul(factor).toString(), this.fractionalDigits); - } - } - toString() { - const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits)); - const whole = this.data.atomics.div(factor); - const fractional = this.data.atomics.mod(factor); - if (fractional.isZero()) { - return whole.toString(); - } - else { - const fullFractionalPart = fractional.toString().padStart(this.data.fractionalDigits, "0"); - const trimmedFractionalPart = fullFractionalPart.replace(/0+$/, ""); - return `${whole.toString()}.${trimmedFractionalPart}`; - } - } - /** - * Returns an approximation as a float type. Only use this if no - * exact calculation is required. - */ - toFloatApproximation() { - const out = Number(this.toString()); - if (Number.isNaN(out)) - throw new Error("Conversion to number failed"); - return out; - } - /** - * a.plus(b) returns a+b. - * - * Both values need to have the same fractional digits. - */ - plus(b) { - if (this.fractionalDigits !== b.fractionalDigits) - throw new Error("Fractional digits do not match"); - const sum = this.data.atomics.add(new bn_js_1.default(b.atomics)); - return new Decimal(sum.toString(), this.fractionalDigits); - } - /** - * a.minus(b) returns a-b. - * - * Both values need to have the same fractional digits. - * The resulting difference needs to be non-negative. - */ - minus(b) { - if (this.fractionalDigits !== b.fractionalDigits) - throw new Error("Fractional digits do not match"); - const difference = this.data.atomics.sub(new bn_js_1.default(b.atomics)); - if (difference.ltn(0)) - throw new Error("Difference must not be negative"); - return new Decimal(difference.toString(), this.fractionalDigits); - } - /** - * a.multiply(b) returns a*b. - * - * We only allow multiplication by unsigned integers to avoid rounding errors. - */ - multiply(b) { - const product = this.data.atomics.mul(new bn_js_1.default(b.toString())); - return new Decimal(product.toString(), this.fractionalDigits); - } - equals(b) { - return Decimal.compare(this, b) === 0; - } - isLessThan(b) { - return Decimal.compare(this, b) < 0; - } - isLessThanOrEqual(b) { - return Decimal.compare(this, b) <= 0; - } - isGreaterThan(b) { - return Decimal.compare(this, b) > 0; - } - isGreaterThanOrEqual(b) { - return Decimal.compare(this, b) >= 0; - } -} -exports.Decimal = Decimal; -//# sourceMappingURL=decimal.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/math/build/index.js": -/*!*************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/math/build/index.js ***! - \*************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Uint64 = exports.Uint53 = exports.Uint32 = exports.Int53 = exports.Decimal = void 0; -var decimal_1 = __webpack_require__(/*! ./decimal */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/math/build/decimal.js"); -Object.defineProperty(exports, "Decimal", ({ enumerable: true, get: function () { return decimal_1.Decimal; } })); -var integers_1 = __webpack_require__(/*! ./integers */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/math/build/integers.js"); -Object.defineProperty(exports, "Int53", ({ enumerable: true, get: function () { return integers_1.Int53; } })); -Object.defineProperty(exports, "Uint32", ({ enumerable: true, get: function () { return integers_1.Uint32; } })); -Object.defineProperty(exports, "Uint53", ({ enumerable: true, get: function () { return integers_1.Uint53; } })); -Object.defineProperty(exports, "Uint64", ({ enumerable: true, get: function () { return integers_1.Uint64; } })); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/math/build/integers.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/math/build/integers.js ***! - \****************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Uint64 = exports.Uint53 = exports.Int53 = exports.Uint32 = void 0; -/* eslint-disable no-bitwise */ -const bn_js_1 = __importDefault(__webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js")); -const uint64MaxValue = new bn_js_1.default("18446744073709551615", 10, "be"); -class Uint32 { - constructor(input) { - if (Number.isNaN(input)) { - throw new Error("Input is not a number"); - } - if (!Number.isInteger(input)) { - throw new Error("Input is not an integer"); - } - if (input < 0 || input > 4294967295) { - throw new Error("Input not in uint32 range: " + input.toString()); - } - this.data = input; - } - /** @deprecated use Uint32.fromBytes */ - static fromBigEndianBytes(bytes) { - return Uint32.fromBytes(bytes); - } - /** - * Creates a Uint32 from a fixed length byte array. - * - * @param bytes a list of exactly 4 bytes - * @param endianess defaults to big endian - */ - static fromBytes(bytes, endianess = "be") { - if (bytes.length !== 4) { - throw new Error("Invalid input length. Expected 4 bytes."); - } - for (let i = 0; i < bytes.length; ++i) { - if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) { - throw new Error("Invalid value in byte. Found: " + bytes[i]); - } - } - const beBytes = endianess === "be" ? bytes : Array.from(bytes).reverse(); - // Use mulitiplication instead of shifting since bitwise operators are defined - // on SIGNED int32 in JavaScript and we don't want to risk surprises - return new Uint32(beBytes[0] * 2 ** 24 + beBytes[1] * 2 ** 16 + beBytes[2] * 2 ** 8 + beBytes[3]); - } - static fromString(str) { - if (!str.match(/^[0-9]+$/)) { - throw new Error("Invalid string format"); - } - return new Uint32(Number.parseInt(str, 10)); - } - toBytesBigEndian() { - // Use division instead of shifting since bitwise operators are defined - // on SIGNED int32 in JavaScript and we don't want to risk surprises - return new Uint8Array([ - Math.floor(this.data / 2 ** 24) & 0xff, - Math.floor(this.data / 2 ** 16) & 0xff, - Math.floor(this.data / 2 ** 8) & 0xff, - Math.floor(this.data / 2 ** 0) & 0xff, - ]); - } - toBytesLittleEndian() { - // Use division instead of shifting since bitwise operators are defined - // on SIGNED int32 in JavaScript and we don't want to risk surprises - return new Uint8Array([ - Math.floor(this.data / 2 ** 0) & 0xff, - Math.floor(this.data / 2 ** 8) & 0xff, - Math.floor(this.data / 2 ** 16) & 0xff, - Math.floor(this.data / 2 ** 24) & 0xff, - ]); - } - toNumber() { - return this.data; - } - toBigInt() { - return BigInt(this.toNumber()); - } - toString() { - return this.data.toString(); - } -} -exports.Uint32 = Uint32; -class Int53 { - constructor(input) { - if (Number.isNaN(input)) { - throw new Error("Input is not a number"); - } - if (!Number.isInteger(input)) { - throw new Error("Input is not an integer"); - } - if (input < Number.MIN_SAFE_INTEGER || input > Number.MAX_SAFE_INTEGER) { - throw new Error("Input not in int53 range: " + input.toString()); - } - this.data = input; - } - static fromString(str) { - if (!str.match(/^-?[0-9]+$/)) { - throw new Error("Invalid string format"); - } - return new Int53(Number.parseInt(str, 10)); - } - toNumber() { - return this.data; - } - toBigInt() { - return BigInt(this.toNumber()); - } - toString() { - return this.data.toString(); - } -} -exports.Int53 = Int53; -class Uint53 { - constructor(input) { - const signed = new Int53(input); - if (signed.toNumber() < 0) { - throw new Error("Input is negative"); - } - this.data = signed; - } - static fromString(str) { - const signed = Int53.fromString(str); - return new Uint53(signed.toNumber()); - } - toNumber() { - return this.data.toNumber(); - } - toBigInt() { - return BigInt(this.toNumber()); - } - toString() { - return this.data.toString(); - } -} -exports.Uint53 = Uint53; -class Uint64 { - constructor(data) { - if (data.isNeg()) { - throw new Error("Input is negative"); - } - if (data.gt(uint64MaxValue)) { - throw new Error("Input exceeds uint64 range"); - } - this.data = data; - } - /** @deprecated use Uint64.fromBytes */ - static fromBytesBigEndian(bytes) { - return Uint64.fromBytes(bytes); - } - /** - * Creates a Uint64 from a fixed length byte array. - * - * @param bytes a list of exactly 8 bytes - * @param endianess defaults to big endian - */ - static fromBytes(bytes, endianess = "be") { - if (bytes.length !== 8) { - throw new Error("Invalid input length. Expected 8 bytes."); - } - for (let i = 0; i < bytes.length; ++i) { - if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) { - throw new Error("Invalid value in byte. Found: " + bytes[i]); - } - } - const beBytes = endianess === "be" ? Array.from(bytes) : Array.from(bytes).reverse(); - return new Uint64(new bn_js_1.default(beBytes)); - } - static fromString(str) { - if (!str.match(/^[0-9]+$/)) { - throw new Error("Invalid string format"); - } - return new Uint64(new bn_js_1.default(str, 10, "be")); - } - static fromNumber(input) { - if (Number.isNaN(input)) { - throw new Error("Input is not a number"); - } - if (!Number.isInteger(input)) { - throw new Error("Input is not an integer"); - } - let bigint; - try { - bigint = new bn_js_1.default(input); - } - catch { - throw new Error("Input is not a safe integer"); - } - return new Uint64(bigint); - } - toBytesBigEndian() { - return Uint8Array.from(this.data.toArray("be", 8)); - } - toBytesLittleEndian() { - return Uint8Array.from(this.data.toArray("le", 8)); - } - toString() { - return this.data.toString(10); - } - toBigInt() { - return BigInt(this.toString()); - } - toNumber() { - return this.data.toNumber(); - } -} -exports.Uint64 = Uint64; -// Assign classes to unused variables in order to verify static interface conformance at compile time. -// Workaround for https://github.com/microsoft/TypeScript/issues/33892 -const _int53Class = Int53; -const _uint53Class = Uint53; -const _uint32Class = Uint32; -const _uint64Class = Uint64; -//# sourceMappingURL=integers.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/arrays.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/arrays.js ***! - \***************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.arrayContentStartsWith = exports.arrayContentEquals = void 0; -/** - * Compares the content of two arrays-like objects for equality. - * - * Equality is defined as having equal length and element values, where element equality means `===` returning `true`. - * - * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type. - * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type. - */ -function arrayContentEquals(a, b) { - if (a.length !== b.length) - return false; - for (let i = 0; i < a.length; ++i) { - if (a[i] !== b[i]) - return false; - } - return true; -} -exports.arrayContentEquals = arrayContentEquals; -/** - * Checks if `a` starts with the contents of `b`. - * - * This requires equality of the element values, where element equality means `===` returning `true`. - * - * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type. - * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type. - */ -function arrayContentStartsWith(a, b) { - if (a.length < b.length) - return false; - for (let i = 0; i < b.length; ++i) { - if (a[i] !== b[i]) - return false; - } - return true; -} -exports.arrayContentStartsWith = arrayContentStartsWith; -//# sourceMappingURL=arrays.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/assert.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/assert.js ***! - \***************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.assertDefinedAndNotNull = exports.assertDefined = exports.assert = void 0; -// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types -function assert(condition, msg) { - if (!condition) { - throw new Error(msg || "condition is not truthy"); - } -} -exports.assert = assert; -function assertDefined(value, msg) { - if (value === undefined) { - throw new Error(msg ?? "value is undefined"); - } -} -exports.assertDefined = assertDefined; -function assertDefinedAndNotNull(value, msg) { - if (value === undefined || value === null) { - throw new Error(msg ?? "value is undefined or null"); - } -} -exports.assertDefinedAndNotNull = assertDefinedAndNotNull; -//# sourceMappingURL=assert.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/index.js": -/*!**************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/index.js ***! - \**************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isUint8Array = exports.isNonNullObject = exports.isDefined = exports.sleep = exports.assertDefinedAndNotNull = exports.assertDefined = exports.assert = exports.arrayContentStartsWith = exports.arrayContentEquals = void 0; -var arrays_1 = __webpack_require__(/*! ./arrays */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/arrays.js"); -Object.defineProperty(exports, "arrayContentEquals", ({ enumerable: true, get: function () { return arrays_1.arrayContentEquals; } })); -Object.defineProperty(exports, "arrayContentStartsWith", ({ enumerable: true, get: function () { return arrays_1.arrayContentStartsWith; } })); -var assert_1 = __webpack_require__(/*! ./assert */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/assert.js"); -Object.defineProperty(exports, "assert", ({ enumerable: true, get: function () { return assert_1.assert; } })); -Object.defineProperty(exports, "assertDefined", ({ enumerable: true, get: function () { return assert_1.assertDefined; } })); -Object.defineProperty(exports, "assertDefinedAndNotNull", ({ enumerable: true, get: function () { return assert_1.assertDefinedAndNotNull; } })); -var sleep_1 = __webpack_require__(/*! ./sleep */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/sleep.js"); -Object.defineProperty(exports, "sleep", ({ enumerable: true, get: function () { return sleep_1.sleep; } })); -var typechecks_1 = __webpack_require__(/*! ./typechecks */ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/typechecks.js"); -Object.defineProperty(exports, "isDefined", ({ enumerable: true, get: function () { return typechecks_1.isDefined; } })); -Object.defineProperty(exports, "isNonNullObject", ({ enumerable: true, get: function () { return typechecks_1.isNonNullObject; } })); -Object.defineProperty(exports, "isUint8Array", ({ enumerable: true, get: function () { return typechecks_1.isUint8Array; } })); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/sleep.js": -/*!**************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/sleep.js ***! - \**************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.sleep = void 0; -async function sleep(ms) { - return new Promise((resolve) => setTimeout(resolve, ms)); -} -exports.sleep = sleep; -//# sourceMappingURL=sleep.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/typechecks.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/@cosmjs/proto-signing/node_modules/@cosmjs/utils/build/typechecks.js ***! - \*******************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; -/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isDefined = exports.isUint8Array = exports.isNonNullObject = void 0; -/** - * Checks if data is a non-null object (i.e. matches the TypeScript object type). - * - * Note: this returns true for arrays, which are objects in JavaScript - * even though array and object are different types in JSON. - * - * @see https://www.typescriptlang.org/docs/handbook/basic-types.html#object - */ -// eslint-disable-next-line @typescript-eslint/ban-types -function isNonNullObject(data) { - return typeof data === "object" && data !== null; -} -exports.isNonNullObject = isNonNullObject; -/** - * Checks if data is an Uint8Array. Note: Buffer is treated as not a Uint8Array - */ -function isUint8Array(data) { - if (!isNonNullObject(data)) - return false; - // Avoid instanceof check which is unreliable in some JS environments - // https://medium.com/@simonwarta/limitations-of-the-instanceof-operator-f4bcdbe7a400 - // Use check that was discussed in https://github.com/crypto-browserify/pbkdf2/pull/81 - if (Object.prototype.toString.call(data) !== "[object Uint8Array]") - return false; - if (typeof Buffer !== "undefined" && typeof Buffer.isBuffer !== "undefined") { - // Buffer.isBuffer is available at runtime - if (Buffer.isBuffer(data)) - return false; - } - return true; -} -exports.isUint8Array = isUint8Array; -/** - * Checks if input is not undefined in a TypeScript-friendly way. - * - * This is convenient to use in e.g. `Array.filter` as it will convert - * the type of a `Array` to `Array`. - */ -function isDefined(value) { - return value !== undefined; -} -exports.isDefined = isDefined; -//# sourceMappingURL=typechecks.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/socket/build/index.js": -/*!****************************************************!*\ - !*** ./node_modules/@cosmjs/socket/build/index.js ***! - \****************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.StreamingSocket = exports.SocketWrapper = exports.ReconnectingSocket = exports.QueueingStreamingSocket = exports.ConnectionStatus = void 0; -var queueingstreamingsocket_1 = __webpack_require__(/*! ./queueingstreamingsocket */ "./node_modules/@cosmjs/socket/build/queueingstreamingsocket.js"); -Object.defineProperty(exports, "ConnectionStatus", ({ enumerable: true, get: function () { return queueingstreamingsocket_1.ConnectionStatus; } })); -Object.defineProperty(exports, "QueueingStreamingSocket", ({ enumerable: true, get: function () { return queueingstreamingsocket_1.QueueingStreamingSocket; } })); -var reconnectingsocket_1 = __webpack_require__(/*! ./reconnectingsocket */ "./node_modules/@cosmjs/socket/build/reconnectingsocket.js"); -Object.defineProperty(exports, "ReconnectingSocket", ({ enumerable: true, get: function () { return reconnectingsocket_1.ReconnectingSocket; } })); -var socketwrapper_1 = __webpack_require__(/*! ./socketwrapper */ "./node_modules/@cosmjs/socket/build/socketwrapper.js"); -Object.defineProperty(exports, "SocketWrapper", ({ enumerable: true, get: function () { return socketwrapper_1.SocketWrapper; } })); -var streamingsocket_1 = __webpack_require__(/*! ./streamingsocket */ "./node_modules/@cosmjs/socket/build/streamingsocket.js"); -Object.defineProperty(exports, "StreamingSocket", ({ enumerable: true, get: function () { return streamingsocket_1.StreamingSocket; } })); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/socket/build/queueingstreamingsocket.js": -/*!**********************************************************************!*\ - !*** ./node_modules/@cosmjs/socket/build/queueingstreamingsocket.js ***! - \**********************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.QueueingStreamingSocket = exports.ConnectionStatus = void 0; -const stream_1 = __webpack_require__(/*! @cosmjs/stream */ "./node_modules/@cosmjs/socket/node_modules/@cosmjs/stream/build/index.js"); -const xstream_1 = __webpack_require__(/*! xstream */ "./node_modules/xstream/index.js"); -const streamingsocket_1 = __webpack_require__(/*! ./streamingsocket */ "./node_modules/@cosmjs/socket/build/streamingsocket.js"); -var ConnectionStatus; -(function (ConnectionStatus) { - ConnectionStatus[ConnectionStatus["Unconnected"] = 0] = "Unconnected"; - ConnectionStatus[ConnectionStatus["Connecting"] = 1] = "Connecting"; - ConnectionStatus[ConnectionStatus["Connected"] = 2] = "Connected"; - ConnectionStatus[ConnectionStatus["Disconnected"] = 3] = "Disconnected"; -})(ConnectionStatus = exports.ConnectionStatus || (exports.ConnectionStatus = {})); -/** - * A wrapper around StreamingSocket that can queue requests. - */ -class QueueingStreamingSocket { - constructor(url, timeout = 10000, reconnectedHandler) { - this.queue = []; - this.isProcessingQueue = false; - this.url = url; - this.timeout = timeout; - this.reconnectedHandler = reconnectedHandler; - const eventProducer = { - start: (listener) => (this.eventProducerListener = listener), - stop: () => (this.eventProducerListener = undefined), - }; - this.events = xstream_1.Stream.create(eventProducer); - this.connectionStatusProducer = new stream_1.DefaultValueProducer(ConnectionStatus.Unconnected); - this.connectionStatus = new stream_1.ValueAndUpdates(this.connectionStatusProducer); - this.socket = new streamingsocket_1.StreamingSocket(this.url, this.timeout); - this.socket.events.subscribe({ - next: (event) => { - if (!this.eventProducerListener) - throw new Error("No event producer listener set"); - this.eventProducerListener.next(event); - }, - error: () => this.connectionStatusProducer.update(ConnectionStatus.Disconnected), - }); - } - connect() { - this.connectionStatusProducer.update(ConnectionStatus.Connecting); - this.socket.connected.then(async () => { - this.connectionStatusProducer.update(ConnectionStatus.Connected); - return this.processQueue(); - }, () => this.connectionStatusProducer.update(ConnectionStatus.Disconnected)); - this.socket.connect(); - } - disconnect() { - this.connectionStatusProducer.update(ConnectionStatus.Disconnected); - this.socket.disconnect(); - } - reconnect() { - this.socket = new streamingsocket_1.StreamingSocket(this.url, this.timeout); - this.socket.events.subscribe({ - next: (event) => { - if (!this.eventProducerListener) - throw new Error("No event producer listener set"); - this.eventProducerListener.next(event); - }, - error: () => this.connectionStatusProducer.update(ConnectionStatus.Disconnected), - }); - // eslint-disable-next-line @typescript-eslint/no-floating-promises - this.socket.connected.then(() => { - if (this.reconnectedHandler) { - this.reconnectedHandler(); - } - }); - this.connect(); - } - getQueueLength() { - return this.queue.length; - } - queueRequest(request) { - this.queue.push(request); - // We don’t need to wait for the queue to be processed. - // eslint-disable-next-line @typescript-eslint/no-floating-promises - this.processQueue(); - } - async processQueue() { - if (this.isProcessingQueue || this.connectionStatus.value !== ConnectionStatus.Connected) { - return; - } - this.isProcessingQueue = true; - let request; - while ((request = this.queue.shift())) { - try { - await this.socket.send(request); - this.isProcessingQueue = false; - } - catch (error) { - // Probably the connection is down; will try again automatically when reconnected. - this.queue.unshift(request); - this.isProcessingQueue = false; - return; - } - } - } -} -exports.QueueingStreamingSocket = QueueingStreamingSocket; -//# sourceMappingURL=queueingstreamingsocket.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/socket/build/reconnectingsocket.js": -/*!*****************************************************************!*\ - !*** ./node_modules/@cosmjs/socket/build/reconnectingsocket.js ***! - \*****************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ReconnectingSocket = void 0; -const xstream_1 = __webpack_require__(/*! xstream */ "./node_modules/xstream/index.js"); -const queueingstreamingsocket_1 = __webpack_require__(/*! ./queueingstreamingsocket */ "./node_modules/@cosmjs/socket/build/queueingstreamingsocket.js"); -/** - * A wrapper around QueueingStreamingSocket that reconnects automatically. - */ -class ReconnectingSocket { - constructor(url, timeout = 10000, reconnectedHandler) { - this.unconnected = true; - this.disconnected = false; - this.timeoutIndex = 0; - this.reconnectTimeout = null; - const eventProducer = { - start: (listener) => (this.eventProducerListener = listener), - stop: () => (this.eventProducerListener = undefined), - }; - this.events = xstream_1.Stream.create(eventProducer); - this.socket = new queueingstreamingsocket_1.QueueingStreamingSocket(url, timeout, reconnectedHandler); - this.socket.events.subscribe({ - next: (event) => { - if (this.eventProducerListener) { - this.eventProducerListener.next(event); - } - }, - error: (error) => { - if (this.eventProducerListener) { - this.eventProducerListener.error(error); - } - }, - }); - this.connectionStatus = this.socket.connectionStatus; - this.connectionStatus.updates.subscribe({ - next: (status) => { - if (status === queueingstreamingsocket_1.ConnectionStatus.Connected) { - this.timeoutIndex = 0; - } - if (status === queueingstreamingsocket_1.ConnectionStatus.Disconnected) { - if (this.reconnectTimeout) { - clearTimeout(this.reconnectTimeout); - this.reconnectTimeout = null; - } - this.reconnectTimeout = setTimeout(() => this.socket.reconnect(), ReconnectingSocket.calculateTimeout(this.timeoutIndex++)); - } - }, - }); - } - /** Starts with a 0.1 second timeout, then doubles every attempt with a maximum timeout of 5 seconds. */ - static calculateTimeout(index) { - return Math.min(2 ** index * 100, 5000); - } - connect() { - if (!this.unconnected) { - throw new Error("Cannot connect: socket has already connected"); - } - this.socket.connect(); - this.unconnected = false; - } - disconnect() { - if (this.unconnected) { - throw new Error("Cannot disconnect: socket has not yet connected"); - } - this.socket.disconnect(); - if (this.eventProducerListener) { - this.eventProducerListener.complete(); - } - this.disconnected = true; - } - queueRequest(request) { - if (this.disconnected) { - throw new Error("Cannot queue request: socket has disconnected"); - } - this.socket.queueRequest(request); - } -} -exports.ReconnectingSocket = ReconnectingSocket; -//# sourceMappingURL=reconnectingsocket.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/socket/build/socketwrapper.js": -/*!************************************************************!*\ - !*** ./node_modules/@cosmjs/socket/build/socketwrapper.js ***! - \************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.SocketWrapper = void 0; -const isomorphic_ws_1 = __importDefault(__webpack_require__(/*! isomorphic-ws */ "./node_modules/isomorphic-ws/browser.js")); -function environmentIsNodeJs() { - return ( true && - typeof ({"env":{"NODE_ENV":"production"}}).versions !== "undefined" && - typeof ({"env":{"NODE_ENV":"production"}}).versions.node !== "undefined"); -} -/** - * A thin wrapper around isomorphic-ws' WebSocket class that adds - * - constant message/error/open/close handlers - * - explict connection via a connect() method - * - type support for events - * - handling of corner cases in the open and close behaviour - */ -class SocketWrapper { - constructor(url, messageHandler, errorHandler, openHandler, closeHandler, timeout = 10000) { - this.closed = false; - this.connected = new Promise((resolve, reject) => { - this.connectedResolver = resolve; - this.connectedRejecter = reject; - }); - this.url = url; - this.messageHandler = messageHandler; - this.errorHandler = errorHandler; - this.openHandler = openHandler; - this.closeHandler = closeHandler; - this.timeout = timeout; - } - /** - * returns a promise that resolves when connection is open - */ - connect() { - const socket = new isomorphic_ws_1.default(this.url); - socket.onerror = (error) => { - this.clearTimeout(); - if (this.errorHandler) { - this.errorHandler(error); - } - }; - socket.onmessage = (messageEvent) => { - this.messageHandler({ - type: messageEvent.type, - data: messageEvent.data, - }); - }; - socket.onopen = (_) => { - this.clearTimeout(); - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - this.connectedResolver(); - if (this.openHandler) { - this.openHandler(); - } - }; - socket.onclose = (closeEvent) => { - this.closed = true; - if (this.closeHandler) { - this.closeHandler(closeEvent); - } - }; - const started = Date.now(); - this.timeoutId = setTimeout(() => { - socket.onmessage = () => 0; - socket.onerror = () => 0; - socket.onopen = () => 0; - socket.onclose = () => 0; - socket.close(); - this.socket = undefined; - const elapsed = Math.floor(Date.now() - started); - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - this.connectedRejecter(`Connection attempt timed out after ${elapsed} ms`); - }, this.timeout); - this.socket = socket; - } - /** - * Closes an established connection and aborts other connection states - */ - disconnect() { - if (!this.socket) { - throw new Error("Socket undefined. This must be called after connecting."); - } - this.clearTimeout(); - switch (this.socket.readyState) { - case isomorphic_ws_1.default.OPEN: - this.socket.close(1000 /* Normal Closure */); - break; - case isomorphic_ws_1.default.CLOSED: - // nothing to be done - break; - case isomorphic_ws_1.default.CONNECTING: - // imitate missing abort API - this.socket.onopen = () => 0; - this.socket.onclose = () => 0; - this.socket.onerror = () => 0; - this.socket.onmessage = () => 0; - this.socket = undefined; - if (this.closeHandler) { - this.closeHandler({ wasClean: false, code: 4001 }); - } - break; - case isomorphic_ws_1.default.CLOSING: - // already closing. Let it proceed - break; - default: - throw new Error(`Unknown readyState: ${this.socket.readyState}`); - } - } - async send(data) { - return new Promise((resolve, reject) => { - if (!this.socket) { - throw new Error("Socket undefined. This must be called after connecting."); - } - if (this.closed) { - throw new Error("Socket was closed, so no data can be sent anymore."); - } - // this exception should be thrown by send() automatically according to - // https://developer.mozilla.org/de/docs/Web/API/WebSocket#send() but it does not work in browsers - if (this.socket.readyState !== isomorphic_ws_1.default.OPEN) { - throw new Error("Websocket is not open"); - } - if (environmentIsNodeJs()) { - this.socket.send(data, (err) => (err ? reject(err) : resolve())); - } - else { - // Browser websocket send method does not accept a callback - this.socket.send(data); - resolve(); - } - }); - } - /** - * Clears the timeout function, such that no timeout error will be raised anymore. This should be - * called when the connection is established, a connection error occurred or the socket is disconnected. - * - * This method must not be called before `connect()`. - * This method is idempotent. - */ - clearTimeout() { - if (!this.timeoutId) { - throw new Error("Timeout ID not set. This should not happen and usually means connect() was not called."); - } - // Note: do not unset this.timeoutId to allow multiple calls to this function - clearTimeout(this.timeoutId); - } -} -exports.SocketWrapper = SocketWrapper; -//# sourceMappingURL=socketwrapper.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/socket/build/streamingsocket.js": -/*!**************************************************************!*\ - !*** ./node_modules/@cosmjs/socket/build/streamingsocket.js ***! - \**************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.StreamingSocket = void 0; -const xstream_1 = __webpack_require__(/*! xstream */ "./node_modules/xstream/index.js"); -const socketwrapper_1 = __webpack_require__(/*! ./socketwrapper */ "./node_modules/@cosmjs/socket/build/socketwrapper.js"); -/** - * A WebSocket wrapper that exposes all events as a stream. - * - * This underlying socket will not be closed when the stream has no listeners - */ -class StreamingSocket { - constructor(url, timeout = 10000) { - this.socket = new socketwrapper_1.SocketWrapper(url, (event) => { - if (this.eventProducerListener) { - this.eventProducerListener.next(event); - } - }, (errorEvent) => { - if (this.eventProducerListener) { - this.eventProducerListener.error(errorEvent); - } - }, () => { - // socket opened - }, (closeEvent) => { - if (this.eventProducerListener) { - if (closeEvent.wasClean) { - this.eventProducerListener.complete(); - } - else { - this.eventProducerListener.error("Socket was closed unclean"); - } - } - }, timeout); - this.connected = this.socket.connected; - const eventProducer = { - start: (listener) => (this.eventProducerListener = listener), - stop: () => (this.eventProducerListener = undefined), - }; - this.events = xstream_1.Stream.create(eventProducer); - } - connect() { - this.socket.connect(); - } - disconnect() { - this.socket.disconnect(); - } - async send(data) { - return this.socket.send(data); - } -} -exports.StreamingSocket = StreamingSocket; -//# sourceMappingURL=streamingsocket.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/socket/node_modules/@cosmjs/stream/build/concat.js": -/*!*********************************************************************************!*\ - !*** ./node_modules/@cosmjs/socket/node_modules/@cosmjs/stream/build/concat.js ***! - \*********************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.concat = void 0; -const xstream_1 = __webpack_require__(/*! xstream */ "./node_modules/xstream/index.js"); -/** - * An implementation of concat that buffers all source stream events - * - * Marble diagram: - * - * ```text - * --1--2---3---4-| - * -a--b-c--d-| - * --------X---------Y---------Z- - * concat - * --1--2---3---4-abcdXY-------Z- - * ``` - * - * This is inspired by RxJS's concat as documented at http://rxmarbles.com/#concat and behaves - * differently than xstream's concat as discussed in https://github.com/staltz/xstream/issues/170. - * - */ -function concat(...streams) { - const subscriptions = new Array(); - const queues = new Array(); // one queue per stream - const completedStreams = new Set(); - let activeStreamIndex = 0; - function reset() { - while (subscriptions.length > 0) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const subscription = subscriptions.shift(); - subscription.unsubscribe(); - } - queues.length = 0; - completedStreams.clear(); - activeStreamIndex = 0; - } - const producer = { - start: (listener) => { - streams.forEach((_) => queues.push([])); - function emitAllQueuesEvents(streamIndex) { - // eslint-disable-next-line no-constant-condition - while (true) { - const element = queues[streamIndex].shift(); - if (element === undefined) { - return; - } - listener.next(element); - } - } - function isDone() { - return activeStreamIndex >= streams.length; - } - if (isDone()) { - listener.complete(); - return; - } - streams.forEach((stream, index) => { - subscriptions.push(stream.subscribe({ - next: (value) => { - if (index === activeStreamIndex) { - listener.next(value); - } - else { - queues[index].push(value); - } - }, - complete: () => { - completedStreams.add(index); - while (completedStreams.has(activeStreamIndex)) { - // this stream completed: emit all and move on - emitAllQueuesEvents(activeStreamIndex); - activeStreamIndex++; - } - if (isDone()) { - listener.complete(); - } - else { - // now active stream can have some events queued but did not yet complete - emitAllQueuesEvents(activeStreamIndex); - } - }, - error: (error) => { - listener.error(error); - reset(); - }, - })); - }); - }, - stop: () => { - reset(); - }, - }; - return xstream_1.Stream.create(producer); -} -exports.concat = concat; -//# sourceMappingURL=concat.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/socket/node_modules/@cosmjs/stream/build/defaultvalueproducer.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/@cosmjs/socket/node_modules/@cosmjs/stream/build/defaultvalueproducer.js ***! - \***********************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.DefaultValueProducer = void 0; -// allows pre-producing values before anyone is listening -class DefaultValueProducer { - constructor(value, callbacks) { - this.callbacks = callbacks; - this.internalValue = value; - } - get value() { - return this.internalValue; - } - /** - * Update the current value. - * - * If producer is active (i.e. someone is listening), this emits an event. - * If not, just the current value is updated. - */ - update(value) { - this.internalValue = value; - if (this.listener) { - this.listener.next(value); - } - } - /** - * Produce an error - */ - // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types - error(error) { - if (this.listener) { - this.listener.error(error); - } - } - /** - * Called by the stream. Do not call this directly. - */ - start(listener) { - this.listener = listener; - listener.next(this.internalValue); - if (this.callbacks) { - this.callbacks.onStarted(); - } - } - /** - * Called by the stream. Do not call this directly. - */ - stop() { - if (this.callbacks) { - this.callbacks.onStop(); - } - this.listener = undefined; - } -} -exports.DefaultValueProducer = DefaultValueProducer; -//# sourceMappingURL=defaultvalueproducer.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/socket/node_modules/@cosmjs/stream/build/dropduplicates.js": -/*!*****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/socket/node_modules/@cosmjs/stream/build/dropduplicates.js ***! - \*****************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.dropDuplicates = void 0; -/** - * Drops duplicate values in a stream. - * - * Marble diagram: - * - * ```text - * -1-1-1-2-4-3-3-4-- - * dropDuplicates - * -1-----2-4-3------ - * ``` - * - * Each value must be uniquely identified by a string given by - * valueToKey(value). - * - * Internally this maintains a set of keys that have been processed already, - * i.e. memory consumption and Set lookup times should be considered when - * using this function. - */ -function dropDuplicates(valueToKey) { - const operand = (instream) => { - const emittedKeys = new Set(); - const deduplicatedStream = instream - .filter((value) => !emittedKeys.has(valueToKey(value))) - .debug((value) => emittedKeys.add(valueToKey(value))); - return deduplicatedStream; - }; - return operand; -} -exports.dropDuplicates = dropDuplicates; -//# sourceMappingURL=dropduplicates.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/socket/node_modules/@cosmjs/stream/build/index.js": -/*!********************************************************************************!*\ - !*** ./node_modules/@cosmjs/socket/node_modules/@cosmjs/stream/build/index.js ***! - \********************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ValueAndUpdates = exports.toListPromise = exports.fromListPromise = exports.firstEvent = exports.dropDuplicates = exports.DefaultValueProducer = exports.concat = void 0; -var concat_1 = __webpack_require__(/*! ./concat */ "./node_modules/@cosmjs/socket/node_modules/@cosmjs/stream/build/concat.js"); -Object.defineProperty(exports, "concat", ({ enumerable: true, get: function () { return concat_1.concat; } })); -var defaultvalueproducer_1 = __webpack_require__(/*! ./defaultvalueproducer */ "./node_modules/@cosmjs/socket/node_modules/@cosmjs/stream/build/defaultvalueproducer.js"); -Object.defineProperty(exports, "DefaultValueProducer", ({ enumerable: true, get: function () { return defaultvalueproducer_1.DefaultValueProducer; } })); -var dropduplicates_1 = __webpack_require__(/*! ./dropduplicates */ "./node_modules/@cosmjs/socket/node_modules/@cosmjs/stream/build/dropduplicates.js"); -Object.defineProperty(exports, "dropDuplicates", ({ enumerable: true, get: function () { return dropduplicates_1.dropDuplicates; } })); -var promise_1 = __webpack_require__(/*! ./promise */ "./node_modules/@cosmjs/socket/node_modules/@cosmjs/stream/build/promise.js"); -Object.defineProperty(exports, "firstEvent", ({ enumerable: true, get: function () { return promise_1.firstEvent; } })); -Object.defineProperty(exports, "fromListPromise", ({ enumerable: true, get: function () { return promise_1.fromListPromise; } })); -Object.defineProperty(exports, "toListPromise", ({ enumerable: true, get: function () { return promise_1.toListPromise; } })); -__exportStar(__webpack_require__(/*! ./reducer */ "./node_modules/@cosmjs/socket/node_modules/@cosmjs/stream/build/reducer.js"), exports); -var valueandupdates_1 = __webpack_require__(/*! ./valueandupdates */ "./node_modules/@cosmjs/socket/node_modules/@cosmjs/stream/build/valueandupdates.js"); -Object.defineProperty(exports, "ValueAndUpdates", ({ enumerable: true, get: function () { return valueandupdates_1.ValueAndUpdates; } })); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/socket/node_modules/@cosmjs/stream/build/promise.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/@cosmjs/socket/node_modules/@cosmjs/stream/build/promise.js ***! - \**********************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.firstEvent = exports.toListPromise = exports.fromListPromise = void 0; -const xstream_1 = __webpack_require__(/*! xstream */ "./node_modules/xstream/index.js"); -/** - * Emits one event for each list element as soon as the promise resolves - */ -function fromListPromise(promise) { - const producer = { - start: (listener) => { - // the code in `start` runs as soon as anyone listens to the stream - promise - .then((iterable) => { - for (const element of iterable) { - listener.next(element); - } - listener.complete(); - }) - .catch((error) => listener.error(error)); - }, - // eslint-disable-next-line @typescript-eslint/no-empty-function - stop: () => { }, - }; - return xstream_1.Stream.create(producer); -} -exports.fromListPromise = fromListPromise; -/** - * Listens to stream and collects events. When `count` events are collected, - * the promise resolves with an array of events. - * - * Rejects if stream completes before `count` events are collected. - */ -async function toListPromise(stream, count) { - return new Promise((resolve, reject) => { - if (count === 0) { - resolve([]); - return; - } - const events = new Array(); - // take() unsubscribes from source stream automatically - stream.take(count).subscribe({ - next: (event) => { - events.push(event); - if (events.length === count) { - resolve(events); - } - }, - complete: () => { - reject(`Stream completed before all events could be collected. ` + - `Collected ${events.length}, expected ${count}`); - }, - error: (error) => reject(error), - }); - }); -} -exports.toListPromise = toListPromise; -/** - * Listens to stream, collects one event and revolves. - * - * Rejects if stream completes before one event was fired. - */ -async function firstEvent(stream) { - return (await toListPromise(stream, 1))[0]; -} -exports.firstEvent = firstEvent; -//# sourceMappingURL=promise.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/socket/node_modules/@cosmjs/stream/build/reducer.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/@cosmjs/socket/node_modules/@cosmjs/stream/build/reducer.js ***! - \**********************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.lastValue = exports.asArray = exports.countStream = exports.Reducer = void 0; -// Reducer takes a stream of events T and a ReducerFunc, that -// materializes a state of type U. -class Reducer { - constructor(stream, reducer, initState) { - this.stream = stream; - this.reducer = reducer; - this.state = initState; - this.completed = new Promise((resolve, reject) => { - const subscription = this.stream.subscribe({ - next: (evt) => { - this.state = this.reducer(this.state, evt); - }, - complete: () => { - resolve(); - // this must happen after resolve, to ensure stream.subscribe() has finished - subscription.unsubscribe(); - }, - error: (err) => { - reject(err); - // the stream already closed on error, but unsubscribe to be safe - subscription.unsubscribe(); - }, - }); - }); - } - // value returns current materialized state - value() { - return this.state; - } - // finished resolves on completed stream, rejects on stream error - async finished() { - return this.completed; - } -} -exports.Reducer = Reducer; -function increment(sum, _) { - return sum + 1; -} -// countStream returns a reducer that contains current count -// of events on the stream -function countStream(stream) { - return new Reducer(stream, increment, 0); -} -exports.countStream = countStream; -function append(list, evt) { - return [...list, evt]; -} -// asArray maintains an array containing all events that have -// occurred on the stream -function asArray(stream) { - return new Reducer(stream, append, []); -} -exports.asArray = asArray; -function last(_, event) { - return event; -} -// lastValue returns the last value read from the stream, or undefined if no values sent -function lastValue(stream) { - return new Reducer(stream, last, undefined); -} -exports.lastValue = lastValue; -//# sourceMappingURL=reducer.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/socket/node_modules/@cosmjs/stream/build/valueandupdates.js": -/*!******************************************************************************************!*\ - !*** ./node_modules/@cosmjs/socket/node_modules/@cosmjs/stream/build/valueandupdates.js ***! - \******************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ValueAndUpdates = void 0; -const xstream_1 = __webpack_require__(/*! xstream */ "./node_modules/xstream/index.js"); -/** - * A read only wrapper around DefaultValueProducer that allows - * to synchronously get the current value using the .value property - * and listen to to updates by suscribing to the .updates stream - */ -class ValueAndUpdates { - constructor(producer) { - this.producer = producer; - this.updates = xstream_1.MemoryStream.createWithMemory(this.producer); - } - get value() { - return this.producer.value; - } - /** - * Resolves as soon as search value is found. - * - * @param search either a value or a function that must return true when found - * @returns the value of the update that caused the search match - */ - async waitFor(search) { - const searchImplementation = typeof search === "function" ? search : (value) => value === search; - return new Promise((resolve, reject) => { - const subscription = this.updates.subscribe({ - next: (newValue) => { - if (searchImplementation(newValue)) { - resolve(newValue); - // MemoryStream.subscribe() calls next with the last value. - // Make async to ensure the subscription exists - setTimeout(() => subscription.unsubscribe(), 0); - } - }, - complete: () => { - subscription.unsubscribe(); - reject("Update stream completed without expected value"); - }, - error: (error) => { - reject(error); - }, - }); - }); - } -} -exports.ValueAndUpdates = ValueAndUpdates; -//# sourceMappingURL=valueandupdates.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/accounts.js": -/*!*********************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/accounts.js ***! - \*********************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.accountFromAny = void 0; -const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/math/build/index.js"); -const proto_signing_1 = __webpack_require__(/*! @cosmjs/proto-signing */ "./node_modules/@cosmjs/proto-signing/build/index.js"); -const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/index.js"); -const auth_1 = __webpack_require__(/*! cosmjs-types/cosmos/auth/v1beta1/auth */ "./node_modules/cosmjs-types/cosmos/auth/v1beta1/auth.js"); -const vesting_1 = __webpack_require__(/*! cosmjs-types/cosmos/vesting/v1beta1/vesting */ "./node_modules/cosmjs-types/cosmos/vesting/v1beta1/vesting.js"); -function uint64FromProto(input) { - return math_1.Uint64.fromString(input.toString()); -} -function accountFromBaseAccount(input) { - const { address, pubKey, accountNumber, sequence } = input; - const pubkey = pubKey ? (0, proto_signing_1.decodePubkey)(pubKey) : null; - return { - address: address, - pubkey: pubkey, - accountNumber: uint64FromProto(accountNumber).toNumber(), - sequence: uint64FromProto(sequence).toNumber(), - }; -} -/** - * Basic implementation of AccountParser. This is supposed to support the most relevant - * common Cosmos SDK account types. If you need support for exotic account types, - * you'll need to write your own account decoder. - */ -function accountFromAny(input) { - const { typeUrl, value } = input; - switch (typeUrl) { - // auth - case "/cosmos.auth.v1beta1.BaseAccount": - return accountFromBaseAccount(auth_1.BaseAccount.decode(value)); - case "/cosmos.auth.v1beta1.ModuleAccount": { - const baseAccount = auth_1.ModuleAccount.decode(value).baseAccount; - (0, utils_1.assert)(baseAccount); - return accountFromBaseAccount(baseAccount); - } - // vesting - case "/cosmos.vesting.v1beta1.BaseVestingAccount": { - const baseAccount = vesting_1.BaseVestingAccount.decode(value)?.baseAccount; - (0, utils_1.assert)(baseAccount); - return accountFromBaseAccount(baseAccount); - } - case "/cosmos.vesting.v1beta1.ContinuousVestingAccount": { - const baseAccount = vesting_1.ContinuousVestingAccount.decode(value)?.baseVestingAccount?.baseAccount; - (0, utils_1.assert)(baseAccount); - return accountFromBaseAccount(baseAccount); - } - case "/cosmos.vesting.v1beta1.DelayedVestingAccount": { - const baseAccount = vesting_1.DelayedVestingAccount.decode(value)?.baseVestingAccount?.baseAccount; - (0, utils_1.assert)(baseAccount); - return accountFromBaseAccount(baseAccount); - } - case "/cosmos.vesting.v1beta1.PeriodicVestingAccount": { - const baseAccount = vesting_1.PeriodicVestingAccount.decode(value)?.baseVestingAccount?.baseAccount; - (0, utils_1.assert)(baseAccount); - return accountFromBaseAccount(baseAccount); - } - default: - throw new Error(`Unsupported type: '${typeUrl}'`); - } -} -exports.accountFromAny = accountFromAny; -//# sourceMappingURL=accounts.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/aminotypes.js": -/*!***********************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/aminotypes.js ***! - \***********************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.AminoTypes = void 0; -function isAminoConverter(converter) { - return typeof converter[1] !== "string"; -} -/** - * A map from Stargate message types as used in the messages's `Any` type - * to Amino types. - */ -class AminoTypes { - constructor(types) { - this.register = types; - } - toAmino({ typeUrl, value }) { - const converter = this.register[typeUrl]; - if (converter === "not_supported_by_chain") { - throw new Error(`The message type '${typeUrl}' cannot be signed using the Amino JSON sign mode because this is not supported by chain.`); - } - if (!converter) { - throw new Error(`Type URL '${typeUrl}' does not exist in the Amino message type register. ` + - "If you need support for this message type, you can pass in additional entries to the AminoTypes constructor. " + - "If you think this message type should be included by default, please open an issue at https://github.com/cosmos/cosmjs/issues."); - } - return { - type: converter.aminoType, - value: converter.toAmino(value), - }; - } - fromAmino({ type, value }) { - const matches = Object.entries(this.register) - .filter(isAminoConverter) - .filter(([_typeUrl, { aminoType }]) => aminoType === type); - switch (matches.length) { - case 0: { - throw new Error(`Amino type identifier '${type}' does not exist in the Amino message type register. ` + - "If you need support for this message type, you can pass in additional entries to the AminoTypes constructor. " + - "If you think this message type should be included by default, please open an issue at https://github.com/cosmos/cosmjs/issues."); - } - case 1: { - const [typeUrl, converter] = matches[0]; - return { - typeUrl: typeUrl, - value: converter.fromAmino(value), - }; - } - default: - throw new Error(`Multiple types are registered with Amino type identifier '${type}': '` + - matches - .map(([key, _value]) => key) - .sort() - .join("', '") + - "'. Thus fromAmino cannot be performed."); - } - } -} -exports.AminoTypes = AminoTypes; -//# sourceMappingURL=aminotypes.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/events.js": -/*!*******************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/events.js ***! - \*******************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromTendermintEvent = void 0; -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/index.js"); -/** - * Takes a Tendermint 0.34 or 0.37 event with binary encoded key and value - * and converts it into an `Event` with string attributes. - */ -function fromTendermintEvent(event) { - return { - type: event.type, - attributes: event.attributes.map((attr) => ({ - key: typeof attr.key == "string" ? attr.key : (0, encoding_1.fromUtf8)(attr.key, true), - value: typeof attr.value == "string" ? attr.value : (0, encoding_1.fromUtf8)(attr.value, true), - })), - }; -} -exports.fromTendermintEvent = fromTendermintEvent; -//# sourceMappingURL=events.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/fee.js": -/*!****************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/fee.js ***! - \****************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.calculateFee = exports.GasPrice = void 0; -const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/math/build/index.js"); -const proto_signing_1 = __webpack_require__(/*! @cosmjs/proto-signing */ "./node_modules/@cosmjs/proto-signing/build/index.js"); -/** - * Denom checker for the Cosmos SDK 0.42 denom pattern - * (https://github.com/cosmos/cosmos-sdk/blob/v0.42.4/types/coin.go#L599-L601). - * - * This is like a regexp but with helpful error messages. - */ -function checkDenom(denom) { - if (denom.length < 3 || denom.length > 128) { - throw new Error("Denom must be between 3 and 128 characters"); - } -} -/** - * A gas price, i.e. the price of a single unit of gas. This is typically a fraction of - * the smallest fee token unit, such as 0.012utoken. - */ -class GasPrice { - constructor(amount, denom) { - this.amount = amount; - this.denom = denom; - } - /** - * Parses a gas price formatted as ``, e.g. `GasPrice.fromString("0.012utoken")`. - * - * The denom must match the Cosmos SDK 0.42 pattern (https://github.com/cosmos/cosmos-sdk/blob/v0.42.4/types/coin.go#L599-L601). - * See `GasPrice` in @cosmjs/stargate for a more generic matcher. - * - * Separators are not yet supported. - */ - static fromString(gasPrice) { - // Use Decimal.fromUserInput and checkDenom for detailed checks and helpful error messages - const matchResult = gasPrice.match(/^([0-9.]+)([a-z][a-z0-9]*)$/i); - if (!matchResult) { - throw new Error("Invalid gas price string"); - } - const [_, amount, denom] = matchResult; - checkDenom(denom); - const fractionalDigits = 18; - const decimalAmount = math_1.Decimal.fromUserInput(amount, fractionalDigits); - return new GasPrice(decimalAmount, denom); - } - /** - * Returns a string representation of this gas price, e.g. "0.025uatom". - * This can be used as an input to `GasPrice.fromString`. - */ - toString() { - return this.amount.toString() + this.denom; - } -} -exports.GasPrice = GasPrice; -function calculateFee(gasLimit, gasPrice) { - const processedGasPrice = typeof gasPrice === "string" ? GasPrice.fromString(gasPrice) : gasPrice; - const { denom, amount: gasPriceAmount } = processedGasPrice; - // Note: Amount can exceed the safe integer range (https://github.com/cosmos/cosmjs/issues/1134), - // which we handle by converting from Decimal to string without going through number. - const amount = gasPriceAmount.multiply(new math_1.Uint53(gasLimit)).ceil().toString(); - return { - amount: (0, proto_signing_1.coins)(amount, denom), - gas: gasLimit.toString(), - }; -} -exports.calculateFee = calculateFee; -//# sourceMappingURL=fee.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/index.js": -/*!******************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/index.js ***! - \******************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.setupAuthExtension = exports.isMsgWithdrawDelegatorRewardEncodeObject = exports.isMsgVoteWeightedEncodeObject = exports.isMsgVoteEncodeObject = exports.isMsgUndelegateEncodeObject = exports.isMsgTransferEncodeObject = exports.isMsgSubmitProposalEncodeObject = exports.isMsgSendEncodeObject = exports.isMsgEditValidatorEncodeObject = exports.isMsgDepositEncodeObject = exports.isMsgDelegateEncodeObject = exports.isMsgCreateValidatorEncodeObject = exports.isMsgBeginRedelegateEncodeObject = exports.isAminoMsgWithdrawValidatorCommission = exports.isAminoMsgWithdrawDelegatorReward = exports.isAminoMsgVoteWeighted = exports.isAminoMsgVote = exports.isAminoMsgVerifyInvariant = exports.isAminoMsgUnjail = exports.isAminoMsgUndelegate = exports.isAminoMsgTransfer = exports.isAminoMsgSubmitProposal = exports.isAminoMsgSubmitEvidence = exports.isAminoMsgSetWithdrawAddress = exports.isAminoMsgSend = exports.isAminoMsgMultiSend = exports.isAminoMsgFundCommunityPool = exports.isAminoMsgEditValidator = exports.isAminoMsgDeposit = exports.isAminoMsgDelegate = exports.isAminoMsgCreateVestingAccount = exports.isAminoMsgCreateValidator = exports.isAminoMsgBeginRedelegate = exports.createVestingAminoConverters = exports.createStakingAminoConverters = exports.createSlashingAminoConverters = exports.createIbcAminoConverters = exports.createGovAminoConverters = exports.createFeegrantAminoConverters = exports.createEvidenceAminoConverters = exports.createDistributionAminoConverters = exports.createCrysisAminoConverters = exports.createBankAminoConverters = exports.createAuthzAminoConverters = exports.logs = exports.GasPrice = exports.calculateFee = exports.fromTendermintEvent = exports.AminoTypes = exports.accountFromAny = void 0; -exports.parseCoins = exports.makeCosmoshubPath = exports.coins = exports.coin = exports.TimeoutError = exports.StargateClient = exports.isDeliverTxSuccess = exports.isDeliverTxFailure = exports.BroadcastTxError = exports.assertIsDeliverTxSuccess = exports.assertIsDeliverTxFailure = exports.SigningStargateClient = exports.defaultRegistryTypes = exports.createDefaultAminoConverters = exports.isSearchByTagsQuery = exports.isSearchBySentFromOrToQuery = exports.isSearchByHeightQuery = exports.QueryClient = exports.decodeCosmosSdkDecFromProto = exports.createProtobufRpcClient = exports.createPagination = exports.makeMultisignedTxBytes = exports.makeMultisignedTx = exports.setupTxExtension = exports.setupStakingExtension = exports.setupSlashingExtension = exports.setupMintExtension = exports.setupIbcExtension = exports.setupGovExtension = exports.setupFeegrantExtension = exports.setupDistributionExtension = exports.setupBankExtension = exports.setupAuthzExtension = void 0; -var accounts_1 = __webpack_require__(/*! ./accounts */ "./node_modules/@cosmjs/stargate/build/accounts.js"); -Object.defineProperty(exports, "accountFromAny", ({ enumerable: true, get: function () { return accounts_1.accountFromAny; } })); -var aminotypes_1 = __webpack_require__(/*! ./aminotypes */ "./node_modules/@cosmjs/stargate/build/aminotypes.js"); -Object.defineProperty(exports, "AminoTypes", ({ enumerable: true, get: function () { return aminotypes_1.AminoTypes; } })); -var events_1 = __webpack_require__(/*! ./events */ "./node_modules/@cosmjs/stargate/build/events.js"); -Object.defineProperty(exports, "fromTendermintEvent", ({ enumerable: true, get: function () { return events_1.fromTendermintEvent; } })); -var fee_1 = __webpack_require__(/*! ./fee */ "./node_modules/@cosmjs/stargate/build/fee.js"); -Object.defineProperty(exports, "calculateFee", ({ enumerable: true, get: function () { return fee_1.calculateFee; } })); -Object.defineProperty(exports, "GasPrice", ({ enumerable: true, get: function () { return fee_1.GasPrice; } })); -exports.logs = __importStar(__webpack_require__(/*! ./logs */ "./node_modules/@cosmjs/stargate/build/logs.js")); -var modules_1 = __webpack_require__(/*! ./modules */ "./node_modules/@cosmjs/stargate/build/modules/index.js"); -Object.defineProperty(exports, "createAuthzAminoConverters", ({ enumerable: true, get: function () { return modules_1.createAuthzAminoConverters; } })); -Object.defineProperty(exports, "createBankAminoConverters", ({ enumerable: true, get: function () { return modules_1.createBankAminoConverters; } })); -Object.defineProperty(exports, "createCrysisAminoConverters", ({ enumerable: true, get: function () { return modules_1.createCrysisAminoConverters; } })); -Object.defineProperty(exports, "createDistributionAminoConverters", ({ enumerable: true, get: function () { return modules_1.createDistributionAminoConverters; } })); -Object.defineProperty(exports, "createEvidenceAminoConverters", ({ enumerable: true, get: function () { return modules_1.createEvidenceAminoConverters; } })); -Object.defineProperty(exports, "createFeegrantAminoConverters", ({ enumerable: true, get: function () { return modules_1.createFeegrantAminoConverters; } })); -Object.defineProperty(exports, "createGovAminoConverters", ({ enumerable: true, get: function () { return modules_1.createGovAminoConverters; } })); -Object.defineProperty(exports, "createIbcAminoConverters", ({ enumerable: true, get: function () { return modules_1.createIbcAminoConverters; } })); -Object.defineProperty(exports, "createSlashingAminoConverters", ({ enumerable: true, get: function () { return modules_1.createSlashingAminoConverters; } })); -Object.defineProperty(exports, "createStakingAminoConverters", ({ enumerable: true, get: function () { return modules_1.createStakingAminoConverters; } })); -Object.defineProperty(exports, "createVestingAminoConverters", ({ enumerable: true, get: function () { return modules_1.createVestingAminoConverters; } })); -Object.defineProperty(exports, "isAminoMsgBeginRedelegate", ({ enumerable: true, get: function () { return modules_1.isAminoMsgBeginRedelegate; } })); -Object.defineProperty(exports, "isAminoMsgCreateValidator", ({ enumerable: true, get: function () { return modules_1.isAminoMsgCreateValidator; } })); -Object.defineProperty(exports, "isAminoMsgCreateVestingAccount", ({ enumerable: true, get: function () { return modules_1.isAminoMsgCreateVestingAccount; } })); -Object.defineProperty(exports, "isAminoMsgDelegate", ({ enumerable: true, get: function () { return modules_1.isAminoMsgDelegate; } })); -Object.defineProperty(exports, "isAminoMsgDeposit", ({ enumerable: true, get: function () { return modules_1.isAminoMsgDeposit; } })); -Object.defineProperty(exports, "isAminoMsgEditValidator", ({ enumerable: true, get: function () { return modules_1.isAminoMsgEditValidator; } })); -Object.defineProperty(exports, "isAminoMsgFundCommunityPool", ({ enumerable: true, get: function () { return modules_1.isAminoMsgFundCommunityPool; } })); -Object.defineProperty(exports, "isAminoMsgMultiSend", ({ enumerable: true, get: function () { return modules_1.isAminoMsgMultiSend; } })); -Object.defineProperty(exports, "isAminoMsgSend", ({ enumerable: true, get: function () { return modules_1.isAminoMsgSend; } })); -Object.defineProperty(exports, "isAminoMsgSetWithdrawAddress", ({ enumerable: true, get: function () { return modules_1.isAminoMsgSetWithdrawAddress; } })); -Object.defineProperty(exports, "isAminoMsgSubmitEvidence", ({ enumerable: true, get: function () { return modules_1.isAminoMsgSubmitEvidence; } })); -Object.defineProperty(exports, "isAminoMsgSubmitProposal", ({ enumerable: true, get: function () { return modules_1.isAminoMsgSubmitProposal; } })); -Object.defineProperty(exports, "isAminoMsgTransfer", ({ enumerable: true, get: function () { return modules_1.isAminoMsgTransfer; } })); -Object.defineProperty(exports, "isAminoMsgUndelegate", ({ enumerable: true, get: function () { return modules_1.isAminoMsgUndelegate; } })); -Object.defineProperty(exports, "isAminoMsgUnjail", ({ enumerable: true, get: function () { return modules_1.isAminoMsgUnjail; } })); -Object.defineProperty(exports, "isAminoMsgVerifyInvariant", ({ enumerable: true, get: function () { return modules_1.isAminoMsgVerifyInvariant; } })); -Object.defineProperty(exports, "isAminoMsgVote", ({ enumerable: true, get: function () { return modules_1.isAminoMsgVote; } })); -Object.defineProperty(exports, "isAminoMsgVoteWeighted", ({ enumerable: true, get: function () { return modules_1.isAminoMsgVoteWeighted; } })); -Object.defineProperty(exports, "isAminoMsgWithdrawDelegatorReward", ({ enumerable: true, get: function () { return modules_1.isAminoMsgWithdrawDelegatorReward; } })); -Object.defineProperty(exports, "isAminoMsgWithdrawValidatorCommission", ({ enumerable: true, get: function () { return modules_1.isAminoMsgWithdrawValidatorCommission; } })); -Object.defineProperty(exports, "isMsgBeginRedelegateEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgBeginRedelegateEncodeObject; } })); -Object.defineProperty(exports, "isMsgCreateValidatorEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgCreateValidatorEncodeObject; } })); -Object.defineProperty(exports, "isMsgDelegateEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgDelegateEncodeObject; } })); -Object.defineProperty(exports, "isMsgDepositEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgDepositEncodeObject; } })); -Object.defineProperty(exports, "isMsgEditValidatorEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgEditValidatorEncodeObject; } })); -Object.defineProperty(exports, "isMsgSendEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgSendEncodeObject; } })); -Object.defineProperty(exports, "isMsgSubmitProposalEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgSubmitProposalEncodeObject; } })); -Object.defineProperty(exports, "isMsgTransferEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgTransferEncodeObject; } })); -Object.defineProperty(exports, "isMsgUndelegateEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgUndelegateEncodeObject; } })); -Object.defineProperty(exports, "isMsgVoteEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgVoteEncodeObject; } })); -Object.defineProperty(exports, "isMsgVoteWeightedEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgVoteWeightedEncodeObject; } })); -Object.defineProperty(exports, "isMsgWithdrawDelegatorRewardEncodeObject", ({ enumerable: true, get: function () { return modules_1.isMsgWithdrawDelegatorRewardEncodeObject; } })); -Object.defineProperty(exports, "setupAuthExtension", ({ enumerable: true, get: function () { return modules_1.setupAuthExtension; } })); -Object.defineProperty(exports, "setupAuthzExtension", ({ enumerable: true, get: function () { return modules_1.setupAuthzExtension; } })); -Object.defineProperty(exports, "setupBankExtension", ({ enumerable: true, get: function () { return modules_1.setupBankExtension; } })); -Object.defineProperty(exports, "setupDistributionExtension", ({ enumerable: true, get: function () { return modules_1.setupDistributionExtension; } })); -Object.defineProperty(exports, "setupFeegrantExtension", ({ enumerable: true, get: function () { return modules_1.setupFeegrantExtension; } })); -Object.defineProperty(exports, "setupGovExtension", ({ enumerable: true, get: function () { return modules_1.setupGovExtension; } })); -Object.defineProperty(exports, "setupIbcExtension", ({ enumerable: true, get: function () { return modules_1.setupIbcExtension; } })); -Object.defineProperty(exports, "setupMintExtension", ({ enumerable: true, get: function () { return modules_1.setupMintExtension; } })); -Object.defineProperty(exports, "setupSlashingExtension", ({ enumerable: true, get: function () { return modules_1.setupSlashingExtension; } })); -Object.defineProperty(exports, "setupStakingExtension", ({ enumerable: true, get: function () { return modules_1.setupStakingExtension; } })); -Object.defineProperty(exports, "setupTxExtension", ({ enumerable: true, get: function () { return modules_1.setupTxExtension; } })); -var multisignature_1 = __webpack_require__(/*! ./multisignature */ "./node_modules/@cosmjs/stargate/build/multisignature.js"); -Object.defineProperty(exports, "makeMultisignedTx", ({ enumerable: true, get: function () { return multisignature_1.makeMultisignedTx; } })); -Object.defineProperty(exports, "makeMultisignedTxBytes", ({ enumerable: true, get: function () { return multisignature_1.makeMultisignedTxBytes; } })); -var queryclient_1 = __webpack_require__(/*! ./queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); -Object.defineProperty(exports, "createPagination", ({ enumerable: true, get: function () { return queryclient_1.createPagination; } })); -Object.defineProperty(exports, "createProtobufRpcClient", ({ enumerable: true, get: function () { return queryclient_1.createProtobufRpcClient; } })); -Object.defineProperty(exports, "decodeCosmosSdkDecFromProto", ({ enumerable: true, get: function () { return queryclient_1.decodeCosmosSdkDecFromProto; } })); -Object.defineProperty(exports, "QueryClient", ({ enumerable: true, get: function () { return queryclient_1.QueryClient; } })); -var search_1 = __webpack_require__(/*! ./search */ "./node_modules/@cosmjs/stargate/build/search.js"); -Object.defineProperty(exports, "isSearchByHeightQuery", ({ enumerable: true, get: function () { return search_1.isSearchByHeightQuery; } })); -Object.defineProperty(exports, "isSearchBySentFromOrToQuery", ({ enumerable: true, get: function () { return search_1.isSearchBySentFromOrToQuery; } })); -Object.defineProperty(exports, "isSearchByTagsQuery", ({ enumerable: true, get: function () { return search_1.isSearchByTagsQuery; } })); -var signingstargateclient_1 = __webpack_require__(/*! ./signingstargateclient */ "./node_modules/@cosmjs/stargate/build/signingstargateclient.js"); -Object.defineProperty(exports, "createDefaultAminoConverters", ({ enumerable: true, get: function () { return signingstargateclient_1.createDefaultAminoConverters; } })); -Object.defineProperty(exports, "defaultRegistryTypes", ({ enumerable: true, get: function () { return signingstargateclient_1.defaultRegistryTypes; } })); -Object.defineProperty(exports, "SigningStargateClient", ({ enumerable: true, get: function () { return signingstargateclient_1.SigningStargateClient; } })); -var stargateclient_1 = __webpack_require__(/*! ./stargateclient */ "./node_modules/@cosmjs/stargate/build/stargateclient.js"); -Object.defineProperty(exports, "assertIsDeliverTxFailure", ({ enumerable: true, get: function () { return stargateclient_1.assertIsDeliverTxFailure; } })); -Object.defineProperty(exports, "assertIsDeliverTxSuccess", ({ enumerable: true, get: function () { return stargateclient_1.assertIsDeliverTxSuccess; } })); -Object.defineProperty(exports, "BroadcastTxError", ({ enumerable: true, get: function () { return stargateclient_1.BroadcastTxError; } })); -Object.defineProperty(exports, "isDeliverTxFailure", ({ enumerable: true, get: function () { return stargateclient_1.isDeliverTxFailure; } })); -Object.defineProperty(exports, "isDeliverTxSuccess", ({ enumerable: true, get: function () { return stargateclient_1.isDeliverTxSuccess; } })); -Object.defineProperty(exports, "StargateClient", ({ enumerable: true, get: function () { return stargateclient_1.StargateClient; } })); -Object.defineProperty(exports, "TimeoutError", ({ enumerable: true, get: function () { return stargateclient_1.TimeoutError; } })); -var proto_signing_1 = __webpack_require__(/*! @cosmjs/proto-signing */ "./node_modules/@cosmjs/proto-signing/build/index.js"); -Object.defineProperty(exports, "coin", ({ enumerable: true, get: function () { return proto_signing_1.coin; } })); -Object.defineProperty(exports, "coins", ({ enumerable: true, get: function () { return proto_signing_1.coins; } })); -Object.defineProperty(exports, "makeCosmoshubPath", ({ enumerable: true, get: function () { return proto_signing_1.makeCosmoshubPath; } })); -Object.defineProperty(exports, "parseCoins", ({ enumerable: true, get: function () { return proto_signing_1.parseCoins; } })); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/logs.js": -/*!*****************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/logs.js ***! - \*****************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.findAttribute = exports.parseRawLog = exports.parseLogs = exports.parseLog = exports.parseEvent = exports.parseAttribute = void 0; -/* eslint-disable @typescript-eslint/naming-convention */ -const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/index.js"); -function parseAttribute(input) { - if (!(0, utils_1.isNonNullObject)(input)) - throw new Error("Attribute must be a non-null object"); - const { key, value } = input; - if (typeof key !== "string" || !key) - throw new Error("Attribute's key must be a non-empty string"); - if (typeof value !== "string" && typeof value !== "undefined") { - throw new Error("Attribute's value must be a string or unset"); - } - return { - key: key, - value: value || "", - }; -} -exports.parseAttribute = parseAttribute; -function parseEvent(input) { - if (!(0, utils_1.isNonNullObject)(input)) - throw new Error("Event must be a non-null object"); - const { type, attributes } = input; - if (typeof type !== "string" || type === "") { - throw new Error(`Event type must be a non-empty string`); - } - if (!Array.isArray(attributes)) - throw new Error("Event's attributes must be an array"); - return { - type: type, - attributes: attributes.map(parseAttribute), - }; -} -exports.parseEvent = parseEvent; -function parseLog(input) { - if (!(0, utils_1.isNonNullObject)(input)) - throw new Error("Log must be a non-null object"); - const { msg_index, log, events } = input; - if (typeof msg_index !== "number") - throw new Error("Log's msg_index must be a number"); - if (typeof log !== "string") - throw new Error("Log's log must be a string"); - if (!Array.isArray(events)) - throw new Error("Log's events must be an array"); - return { - msg_index: msg_index, - log: log, - events: events.map(parseEvent), - }; -} -exports.parseLog = parseLog; -function parseLogs(input) { - if (!Array.isArray(input)) - throw new Error("Logs must be an array"); - return input.map(parseLog); -} -exports.parseLogs = parseLogs; -function parseRawLog(input = "[]") { - const logsToParse = JSON.parse(input).map(({ events }, i) => ({ - msg_index: i, - events, - log: "", - })); - return parseLogs(logsToParse); -} -exports.parseRawLog = parseRawLog; -/** - * Searches in logs for the first event of the given event type and in that event - * for the first first attribute with the given attribute key. - * - * Throws if the attribute was not found. - */ -function findAttribute(logs, eventType, attrKey) { - const firstLogs = logs.find(() => true); - const out = firstLogs?.events - .find((event) => event.type === eventType) - ?.attributes.find((attr) => attr.key === attrKey); - if (!out) { - throw new Error(`Could not find attribute '${attrKey}' in first event of type '${eventType}' in first log.`); - } - return out; -} -exports.findAttribute = findAttribute; -//# sourceMappingURL=logs.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/auth/queries.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/auth/queries.js ***! - \*********************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.setupAuthExtension = void 0; -const query_1 = __webpack_require__(/*! cosmjs-types/cosmos/auth/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/auth/v1beta1/query.js"); -const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); -function setupAuthExtension(base) { - const rpc = (0, queryclient_1.createProtobufRpcClient)(base); - // Use this service to get easy typed access to query methods - // This cannot be used for proof verification - const queryService = new query_1.QueryClientImpl(rpc); - return { - auth: { - account: async (address) => { - const { account } = await queryService.Account({ address: address }); - return account ?? null; - }, - }, - }; -} -exports.setupAuthExtension = setupAuthExtension; -//# sourceMappingURL=queries.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/authz/aminomessages.js": -/*!****************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/authz/aminomessages.js ***! - \****************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.createAuthzAminoConverters = void 0; -function createAuthzAminoConverters() { - return { - "/cosmos.authz.v1beta1.MsgGrant": "not_supported_by_chain", - "/cosmos.authz.v1beta1.MsgExec": "not_supported_by_chain", - "/cosmos.authz.v1beta1.MsgRevoke": "not_supported_by_chain", - }; -} -exports.createAuthzAminoConverters = createAuthzAminoConverters; -//# sourceMappingURL=aminomessages.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/authz/messages.js": -/*!***********************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/authz/messages.js ***! - \***********************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.authzTypes = void 0; -const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/authz/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/authz/v1beta1/tx.js"); -exports.authzTypes = [ - ["/cosmos.authz.v1beta1.MsgExec", tx_1.MsgExec], - ["/cosmos.authz.v1beta1.MsgGrant", tx_1.MsgGrant], - ["/cosmos.authz.v1beta1.MsgRevoke", tx_1.MsgRevoke], -]; -//# sourceMappingURL=messages.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/authz/queries.js": -/*!**********************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/authz/queries.js ***! - \**********************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.setupAuthzExtension = void 0; -const query_1 = __webpack_require__(/*! cosmjs-types/cosmos/authz/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/authz/v1beta1/query.js"); -const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); -function setupAuthzExtension(base) { - // Use this service to get easy typed access to query methods - // This cannot be used for proof verification - const rpc = (0, queryclient_1.createProtobufRpcClient)(base); - const queryService = new query_1.QueryClientImpl(rpc); - return { - authz: { - grants: async (granter, grantee, msgTypeUrl, paginationKey) => { - return await queryService.Grants({ - granter: granter, - grantee: grantee, - msgTypeUrl: msgTypeUrl, - pagination: (0, queryclient_1.createPagination)(paginationKey), - }); - }, - granteeGrants: async (grantee, paginationKey) => { - return await queryService.GranteeGrants({ - grantee: grantee, - pagination: (0, queryclient_1.createPagination)(paginationKey), - }); - }, - granterGrants: async (granter, paginationKey) => { - return await queryService.GranterGrants({ - granter: granter, - pagination: (0, queryclient_1.createPagination)(paginationKey), - }); - }, - }, - }; -} -exports.setupAuthzExtension = setupAuthzExtension; -//# sourceMappingURL=queries.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/bank/aminomessages.js": -/*!***************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/bank/aminomessages.js ***! - \***************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.createBankAminoConverters = exports.isAminoMsgMultiSend = exports.isAminoMsgSend = void 0; -function isAminoMsgSend(msg) { - return msg.type === "cosmos-sdk/MsgSend"; -} -exports.isAminoMsgSend = isAminoMsgSend; -function isAminoMsgMultiSend(msg) { - return msg.type === "cosmos-sdk/MsgMultiSend"; -} -exports.isAminoMsgMultiSend = isAminoMsgMultiSend; -function createBankAminoConverters() { - return { - "/cosmos.bank.v1beta1.MsgSend": { - aminoType: "cosmos-sdk/MsgSend", - toAmino: ({ fromAddress, toAddress, amount }) => ({ - from_address: fromAddress, - to_address: toAddress, - amount: [...amount], - }), - fromAmino: ({ from_address, to_address, amount }) => ({ - fromAddress: from_address, - toAddress: to_address, - amount: [...amount], - }), - }, - "/cosmos.bank.v1beta1.MsgMultiSend": { - aminoType: "cosmos-sdk/MsgMultiSend", - toAmino: ({ inputs, outputs }) => ({ - inputs: inputs.map((input) => ({ - address: input.address, - coins: [...input.coins], - })), - outputs: outputs.map((output) => ({ - address: output.address, - coins: [...output.coins], - })), - }), - fromAmino: ({ inputs, outputs }) => ({ - inputs: inputs.map((input) => ({ - address: input.address, - coins: [...input.coins], - })), - outputs: outputs.map((output) => ({ - address: output.address, - coins: [...output.coins], - })), - }), - }, - }; -} -exports.createBankAminoConverters = createBankAminoConverters; -//# sourceMappingURL=aminomessages.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/bank/messages.js": -/*!**********************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/bank/messages.js ***! - \**********************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isMsgSendEncodeObject = exports.bankTypes = void 0; -const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/bank/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/bank/v1beta1/tx.js"); -exports.bankTypes = [ - ["/cosmos.bank.v1beta1.MsgMultiSend", tx_1.MsgMultiSend], - ["/cosmos.bank.v1beta1.MsgSend", tx_1.MsgSend], -]; -function isMsgSendEncodeObject(encodeObject) { - return encodeObject.typeUrl === "/cosmos.bank.v1beta1.MsgSend"; -} -exports.isMsgSendEncodeObject = isMsgSendEncodeObject; -//# sourceMappingURL=messages.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/bank/queries.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/bank/queries.js ***! - \*********************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.setupBankExtension = void 0; -/* eslint-disable @typescript-eslint/naming-convention */ -const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/index.js"); -const query_1 = __webpack_require__(/*! cosmjs-types/cosmos/bank/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/bank/v1beta1/query.js"); -const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); -function setupBankExtension(base) { - const rpc = (0, queryclient_1.createProtobufRpcClient)(base); - // Use this service to get easy typed access to query methods - // This cannot be used for proof verification - const queryService = new query_1.QueryClientImpl(rpc); - return { - bank: { - balance: async (address, denom) => { - const { balance } = await queryService.Balance({ address: address, denom: denom }); - (0, utils_1.assert)(balance); - return balance; - }, - allBalances: async (address) => { - const { balances } = await queryService.AllBalances({ address: address }); - return balances; - }, - totalSupply: async (paginationKey) => { - const response = await queryService.TotalSupply({ - pagination: (0, queryclient_1.createPagination)(paginationKey), - }); - return response; - }, - supplyOf: async (denom) => { - const { amount } = await queryService.SupplyOf({ denom: denom }); - (0, utils_1.assert)(amount); - return amount; - }, - denomMetadata: async (denom) => { - const { metadata } = await queryService.DenomMetadata({ denom }); - (0, utils_1.assert)(metadata); - return metadata; - }, - denomsMetadata: async () => { - const { metadatas } = await queryService.DenomsMetadata({ - pagination: undefined, // Not implemented - }); - return metadatas; - }, - }, - }; -} -exports.setupBankExtension = setupBankExtension; -//# sourceMappingURL=queries.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/crisis/aminomessages.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/crisis/aminomessages.js ***! - \*****************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.createCrysisAminoConverters = exports.isAminoMsgVerifyInvariant = void 0; -function isAminoMsgVerifyInvariant(msg) { - return msg.type === "cosmos-sdk/MsgVerifyInvariant"; -} -exports.isAminoMsgVerifyInvariant = isAminoMsgVerifyInvariant; -function createCrysisAminoConverters() { - throw new Error("Not implemented"); -} -exports.createCrysisAminoConverters = createCrysisAminoConverters; -//# sourceMappingURL=aminomessages.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/distribution/aminomessages.js": -/*!***********************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/distribution/aminomessages.js ***! - \***********************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.createDistributionAminoConverters = exports.isAminoMsgFundCommunityPool = exports.isAminoMsgWithdrawValidatorCommission = exports.isAminoMsgWithdrawDelegatorReward = exports.isAminoMsgSetWithdrawAddress = void 0; -function isAminoMsgSetWithdrawAddress(msg) { - // NOTE: Type string and names diverge here! - return msg.type === "cosmos-sdk/MsgModifyWithdrawAddress"; -} -exports.isAminoMsgSetWithdrawAddress = isAminoMsgSetWithdrawAddress; -function isAminoMsgWithdrawDelegatorReward(msg) { - // NOTE: Type string and names diverge here! - return msg.type === "cosmos-sdk/MsgWithdrawDelegationReward"; -} -exports.isAminoMsgWithdrawDelegatorReward = isAminoMsgWithdrawDelegatorReward; -function isAminoMsgWithdrawValidatorCommission(msg) { - return msg.type === "cosmos-sdk/MsgWithdrawValidatorCommission"; -} -exports.isAminoMsgWithdrawValidatorCommission = isAminoMsgWithdrawValidatorCommission; -function isAminoMsgFundCommunityPool(msg) { - return msg.type === "cosmos-sdk/MsgFundCommunityPool"; -} -exports.isAminoMsgFundCommunityPool = isAminoMsgFundCommunityPool; -function createDistributionAminoConverters() { - return { - "/cosmos.distribution.v1beta1.MsgFundCommunityPool": { - aminoType: "cosmos-sdk/MsgFundCommunityPool", - toAmino: ({ amount, depositor }) => ({ - amount: [...amount], - depositor: depositor, - }), - fromAmino: ({ amount, depositor }) => ({ - amount: [...amount], - depositor: depositor, - }), - }, - "/cosmos.distribution.v1beta1.MsgSetWithdrawAddress": { - aminoType: "cosmos-sdk/MsgModifyWithdrawAddress", - toAmino: ({ delegatorAddress, withdrawAddress, }) => ({ - delegator_address: delegatorAddress, - withdraw_address: withdrawAddress, - }), - fromAmino: ({ delegator_address, withdraw_address, }) => ({ - delegatorAddress: delegator_address, - withdrawAddress: withdraw_address, - }), - }, - "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward": { - aminoType: "cosmos-sdk/MsgWithdrawDelegationReward", - toAmino: ({ delegatorAddress, validatorAddress, }) => ({ - delegator_address: delegatorAddress, - validator_address: validatorAddress, - }), - fromAmino: ({ delegator_address, validator_address, }) => ({ - delegatorAddress: delegator_address, - validatorAddress: validator_address, - }), - }, - "/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission": { - aminoType: "cosmos-sdk/MsgWithdrawValidatorCommission", - toAmino: ({ validatorAddress, }) => ({ - validator_address: validatorAddress, - }), - fromAmino: ({ validator_address, }) => ({ - validatorAddress: validator_address, - }), - }, - }; -} -exports.createDistributionAminoConverters = createDistributionAminoConverters; -//# sourceMappingURL=aminomessages.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/distribution/messages.js": -/*!******************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/distribution/messages.js ***! - \******************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isMsgWithdrawDelegatorRewardEncodeObject = exports.distributionTypes = void 0; -const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/distribution/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/distribution/v1beta1/tx.js"); -exports.distributionTypes = [ - ["/cosmos.distribution.v1beta1.MsgFundCommunityPool", tx_1.MsgFundCommunityPool], - ["/cosmos.distribution.v1beta1.MsgSetWithdrawAddress", tx_1.MsgSetWithdrawAddress], - ["/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward", tx_1.MsgWithdrawDelegatorReward], - ["/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission", tx_1.MsgWithdrawValidatorCommission], -]; -function isMsgWithdrawDelegatorRewardEncodeObject(object) { - return (object.typeUrl === - "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward"); -} -exports.isMsgWithdrawDelegatorRewardEncodeObject = isMsgWithdrawDelegatorRewardEncodeObject; -//# sourceMappingURL=messages.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/distribution/queries.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/distribution/queries.js ***! - \*****************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.setupDistributionExtension = void 0; -/* eslint-disable @typescript-eslint/naming-convention */ -const query_1 = __webpack_require__(/*! cosmjs-types/cosmos/distribution/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/distribution/v1beta1/query.js"); -const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); -const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); -function setupDistributionExtension(base) { - const rpc = (0, queryclient_1.createProtobufRpcClient)(base); - // Use this service to get easy typed access to query methods - // This cannot be used for proof verification - const queryService = new query_1.QueryClientImpl(rpc); - return { - distribution: { - communityPool: async () => { - const response = await queryService.CommunityPool({}); - return response; - }, - delegationRewards: async (delegatorAddress, validatorAddress) => { - const response = await queryService.DelegationRewards({ - delegatorAddress: delegatorAddress, - validatorAddress: validatorAddress, - }); - return response; - }, - delegationTotalRewards: async (delegatorAddress) => { - const response = await queryService.DelegationTotalRewards({ - delegatorAddress: delegatorAddress, - }); - return response; - }, - delegatorValidators: async (delegatorAddress) => { - const response = await queryService.DelegatorValidators({ - delegatorAddress: delegatorAddress, - }); - return response; - }, - delegatorWithdrawAddress: async (delegatorAddress) => { - const response = await queryService.DelegatorWithdrawAddress({ - delegatorAddress: delegatorAddress, - }); - return response; - }, - params: async () => { - const response = await queryService.Params({}); - return response; - }, - validatorCommission: async (validatorAddress) => { - const response = await queryService.ValidatorCommission({ - validatorAddress: validatorAddress, - }); - return response; - }, - validatorOutstandingRewards: async (validatorAddress) => { - const response = await queryService.ValidatorOutstandingRewards({ - validatorAddress: validatorAddress, - }); - return response; - }, - validatorSlashes: async (validatorAddress, startingHeight, endingHeight, paginationKey) => { - const response = await queryService.ValidatorSlashes({ - validatorAddress: validatorAddress, - startingHeight: long_1.default.fromNumber(startingHeight, true), - endingHeight: long_1.default.fromNumber(endingHeight, true), - pagination: (0, queryclient_1.createPagination)(paginationKey), - }); - return response; - }, - }, - }; -} -exports.setupDistributionExtension = setupDistributionExtension; -//# sourceMappingURL=queries.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/evidence/aminomessages.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/evidence/aminomessages.js ***! - \*******************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.createEvidenceAminoConverters = exports.isAminoMsgSubmitEvidence = void 0; -function isAminoMsgSubmitEvidence(msg) { - return msg.type === "cosmos-sdk/MsgSubmitEvidence"; -} -exports.isAminoMsgSubmitEvidence = isAminoMsgSubmitEvidence; -function createEvidenceAminoConverters() { - throw new Error("Not implemented"); -} -exports.createEvidenceAminoConverters = createEvidenceAminoConverters; -//# sourceMappingURL=aminomessages.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/feegrant/aminomessages.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/feegrant/aminomessages.js ***! - \*******************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.createFeegrantAminoConverters = void 0; -function createFeegrantAminoConverters() { - return { - "/cosmos.feegrant.v1beta1.MsgGrantAllowance": "not_supported_by_chain", - "/cosmos.feegrant.v1beta1.MsgRevokeAllowance": "not_supported_by_chain", - }; -} -exports.createFeegrantAminoConverters = createFeegrantAminoConverters; -//# sourceMappingURL=aminomessages.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/feegrant/messages.js": -/*!**************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/feegrant/messages.js ***! - \**************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.feegrantTypes = void 0; -const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/feegrant/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/tx.js"); -exports.feegrantTypes = [ - ["/cosmos.feegrant.v1beta1.MsgGrantAllowance", tx_1.MsgGrantAllowance], - ["/cosmos.feegrant.v1beta1.MsgRevokeAllowance", tx_1.MsgRevokeAllowance], -]; -//# sourceMappingURL=messages.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/feegrant/queries.js": -/*!*************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/feegrant/queries.js ***! - \*************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.setupFeegrantExtension = void 0; -const query_1 = __webpack_require__(/*! cosmjs-types/cosmos/feegrant/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/query.js"); -const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); -function setupFeegrantExtension(base) { - // Use this service to get easy typed access to query methods - // This cannot be used for proof verification - const rpc = (0, queryclient_1.createProtobufRpcClient)(base); - const queryService = new query_1.QueryClientImpl(rpc); - return { - feegrant: { - allowance: async (granter, grantee) => { - const response = await queryService.Allowance({ - granter: granter, - grantee: grantee, - }); - return response; - }, - allowances: async (grantee, paginationKey) => { - const response = await queryService.Allowances({ - grantee: grantee, - pagination: (0, queryclient_1.createPagination)(paginationKey), - }); - return response; - }, - }, - }; -} -exports.setupFeegrantExtension = setupFeegrantExtension; -//# sourceMappingURL=queries.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/gov/aminomessages.js": -/*!**************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/gov/aminomessages.js ***! - \**************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.createGovAminoConverters = exports.isAminoMsgDeposit = exports.isAminoMsgVoteWeighted = exports.isAminoMsgVote = exports.isAminoMsgSubmitProposal = void 0; -const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/math/build/index.js"); -const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/index.js"); -const gov_1 = __webpack_require__(/*! cosmjs-types/cosmos/gov/v1beta1/gov */ "./node_modules/cosmjs-types/cosmos/gov/v1beta1/gov.js"); -const any_1 = __webpack_require__(/*! cosmjs-types/google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); -const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); -const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); -function isAminoMsgSubmitProposal(msg) { - return msg.type === "cosmos-sdk/MsgSubmitProposal"; -} -exports.isAminoMsgSubmitProposal = isAminoMsgSubmitProposal; -function isAminoMsgVote(msg) { - return msg.type === "cosmos-sdk/MsgVote"; -} -exports.isAminoMsgVote = isAminoMsgVote; -function isAminoMsgVoteWeighted(msg) { - return msg.type === "cosmos-sdk/MsgVoteWeighted"; -} -exports.isAminoMsgVoteWeighted = isAminoMsgVoteWeighted; -function isAminoMsgDeposit(msg) { - return msg.type === "cosmos-sdk/MsgDeposit"; -} -exports.isAminoMsgDeposit = isAminoMsgDeposit; -function createGovAminoConverters() { - return { - "/cosmos.gov.v1beta1.MsgDeposit": { - aminoType: "cosmos-sdk/MsgDeposit", - toAmino: ({ amount, depositor, proposalId }) => { - return { - amount, - depositor, - proposal_id: proposalId.toString(), - }; - }, - fromAmino: ({ amount, depositor, proposal_id }) => { - return { - amount: Array.from(amount), - depositor, - proposalId: long_1.default.fromString(proposal_id), - }; - }, - }, - "/cosmos.gov.v1beta1.MsgVote": { - aminoType: "cosmos-sdk/MsgVote", - toAmino: ({ option, proposalId, voter }) => { - return { - option: option, - proposal_id: proposalId.toString(), - voter: voter, - }; - }, - fromAmino: ({ option, proposal_id, voter }) => { - return { - option: (0, gov_1.voteOptionFromJSON)(option), - proposalId: long_1.default.fromString(proposal_id), - voter: voter, - }; - }, - }, - "/cosmos.gov.v1beta1.MsgVoteWeighted": { - aminoType: "cosmos-sdk/MsgVoteWeighted", - toAmino: ({ options, proposalId, voter }) => { - return { - options: options.map((o) => ({ - option: o.option, - // Weight is between 0 and 1, so we always have 20 characters when printing all trailing - // zeros (e.g. "0.700000000000000000" or "1.000000000000000000") - weight: (0, queryclient_1.decodeCosmosSdkDecFromProto)(o.weight).toString().padEnd(20, "0"), - })), - proposal_id: proposalId.toString(), - voter: voter, - }; - }, - fromAmino: ({ options, proposal_id, voter }) => { - return { - proposalId: long_1.default.fromString(proposal_id), - voter: voter, - options: options.map((o) => ({ - option: (0, gov_1.voteOptionFromJSON)(o.option), - weight: math_1.Decimal.fromUserInput(o.weight, 18).atomics, - })), - }; - }, - }, - "/cosmos.gov.v1beta1.MsgSubmitProposal": { - aminoType: "cosmos-sdk/MsgSubmitProposal", - toAmino: ({ initialDeposit, proposer, content, }) => { - (0, utils_1.assertDefinedAndNotNull)(content); - let proposal; - switch (content.typeUrl) { - case "/cosmos.gov.v1beta1.TextProposal": { - const textProposal = gov_1.TextProposal.decode(content.value); - proposal = { - type: "cosmos-sdk/TextProposal", - value: { - description: textProposal.description, - title: textProposal.title, - }, - }; - break; - } - default: - throw new Error(`Unsupported proposal type: '${content.typeUrl}'`); - } - return { - initial_deposit: initialDeposit, - proposer: proposer, - content: proposal, - }; - }, - fromAmino: ({ initial_deposit, proposer, content, }) => { - let any_content; - switch (content.type) { - case "cosmos-sdk/TextProposal": { - const { value } = content; - (0, utils_1.assert)((0, utils_1.isNonNullObject)(value)); - const { title, description } = value; - (0, utils_1.assert)(typeof title === "string"); - (0, utils_1.assert)(typeof description === "string"); - any_content = any_1.Any.fromPartial({ - typeUrl: "/cosmos.gov.v1beta1.TextProposal", - value: gov_1.TextProposal.encode(gov_1.TextProposal.fromPartial({ - title: title, - description: description, - })).finish(), - }); - break; - } - default: - throw new Error(`Unsupported proposal type: '${content.type}'`); - } - return { - initialDeposit: Array.from(initial_deposit), - proposer: proposer, - content: any_content, - }; - }, - }, - }; -} -exports.createGovAminoConverters = createGovAminoConverters; -//# sourceMappingURL=aminomessages.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/gov/messages.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/gov/messages.js ***! - \*********************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isMsgVoteWeightedEncodeObject = exports.isMsgVoteEncodeObject = exports.isMsgSubmitProposalEncodeObject = exports.isMsgDepositEncodeObject = exports.govTypes = void 0; -const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/gov/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/gov/v1beta1/tx.js"); -exports.govTypes = [ - ["/cosmos.gov.v1beta1.MsgDeposit", tx_1.MsgDeposit], - ["/cosmos.gov.v1beta1.MsgSubmitProposal", tx_1.MsgSubmitProposal], - ["/cosmos.gov.v1beta1.MsgVote", tx_1.MsgVote], - ["/cosmos.gov.v1beta1.MsgVoteWeighted", tx_1.MsgVoteWeighted], -]; -function isMsgDepositEncodeObject(object) { - return object.typeUrl === "/cosmos.gov.v1beta1.MsgDeposit"; -} -exports.isMsgDepositEncodeObject = isMsgDepositEncodeObject; -function isMsgSubmitProposalEncodeObject(object) { - return object.typeUrl === "/cosmos.gov.v1beta1.MsgSubmitProposal"; -} -exports.isMsgSubmitProposalEncodeObject = isMsgSubmitProposalEncodeObject; -function isMsgVoteEncodeObject(object) { - return object.typeUrl === "/cosmos.gov.v1beta1.MsgVote"; -} -exports.isMsgVoteEncodeObject = isMsgVoteEncodeObject; -function isMsgVoteWeightedEncodeObject(object) { - return object.typeUrl === "/cosmos.gov.v1beta1.MsgVoteWeighted"; -} -exports.isMsgVoteWeightedEncodeObject = isMsgVoteWeightedEncodeObject; -//# sourceMappingURL=messages.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/gov/queries.js": -/*!********************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/gov/queries.js ***! - \********************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.setupGovExtension = void 0; -const query_1 = __webpack_require__(/*! cosmjs-types/cosmos/gov/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/gov/v1beta1/query.js"); -const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); -function setupGovExtension(base) { - const rpc = (0, queryclient_1.createProtobufRpcClient)(base); - // Use this service to get easy typed access to query methods - // This cannot be used for proof verification - const queryService = new query_1.QueryClientImpl(rpc); - return { - gov: { - params: async (parametersType) => { - const response = await queryService.Params({ paramsType: parametersType }); - return response; - }, - proposals: async (proposalStatus, depositorAddress, voterAddress, paginationKey) => { - const response = await queryService.Proposals({ - proposalStatus, - depositor: depositorAddress, - voter: voterAddress, - pagination: (0, queryclient_1.createPagination)(paginationKey), - }); - return response; - }, - proposal: async (proposalId) => { - const response = await queryService.Proposal({ proposalId: (0, queryclient_1.longify)(proposalId) }); - return response; - }, - deposits: async (proposalId, paginationKey) => { - const response = await queryService.Deposits({ - proposalId: (0, queryclient_1.longify)(proposalId), - pagination: (0, queryclient_1.createPagination)(paginationKey), - }); - return response; - }, - deposit: async (proposalId, depositorAddress) => { - const response = await queryService.Deposit({ - proposalId: (0, queryclient_1.longify)(proposalId), - depositor: depositorAddress, - }); - return response; - }, - tally: async (proposalId) => { - const response = await queryService.TallyResult({ - proposalId: (0, queryclient_1.longify)(proposalId), - }); - return response; - }, - votes: async (proposalId, paginationKey) => { - const response = await queryService.Votes({ - proposalId: (0, queryclient_1.longify)(proposalId), - pagination: (0, queryclient_1.createPagination)(paginationKey), - }); - return response; - }, - vote: async (proposalId, voterAddress) => { - const response = await queryService.Vote({ - proposalId: (0, queryclient_1.longify)(proposalId), - voter: voterAddress, - }); - return response; - }, - }, - }; -} -exports.setupGovExtension = setupGovExtension; -//# sourceMappingURL=queries.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/ibc/aminomessages.js": -/*!**************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/ibc/aminomessages.js ***! - \**************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.createIbcAminoConverters = exports.isAminoMsgTransfer = void 0; -const tx_1 = __webpack_require__(/*! cosmjs-types/ibc/applications/transfer/v1/tx */ "./node_modules/cosmjs-types/ibc/applications/transfer/v1/tx.js"); -const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); -function isAminoMsgTransfer(msg) { - return msg.type === "cosmos-sdk/MsgTransfer"; -} -exports.isAminoMsgTransfer = isAminoMsgTransfer; -function omitDefault(input) { - if (typeof input === "string") { - return input === "" ? undefined : input; - } - if (typeof input === "number") { - return input === 0 ? undefined : input; - } - if (long_1.default.isLong(input)) { - return input.isZero() ? undefined : input; - } - throw new Error(`Got unsupported type '${typeof input}'`); -} -function createIbcAminoConverters() { - return { - "/ibc.applications.transfer.v1.MsgTransfer": { - aminoType: "cosmos-sdk/MsgTransfer", - toAmino: ({ sourcePort, sourceChannel, token, sender, receiver, timeoutHeight, timeoutTimestamp, }) => ({ - source_port: sourcePort, - source_channel: sourceChannel, - token: token, - sender: sender, - receiver: receiver, - timeout_height: timeoutHeight - ? { - revision_height: omitDefault(timeoutHeight.revisionHeight)?.toString(), - revision_number: omitDefault(timeoutHeight.revisionNumber)?.toString(), - } - : {}, - timeout_timestamp: omitDefault(timeoutTimestamp)?.toString(), - }), - fromAmino: ({ source_port, source_channel, token, sender, receiver, timeout_height, timeout_timestamp, }) => tx_1.MsgTransfer.fromPartial({ - sourcePort: source_port, - sourceChannel: source_channel, - token: token, - sender: sender, - receiver: receiver, - timeoutHeight: timeout_height - ? { - revisionHeight: long_1.default.fromString(timeout_height.revision_height || "0", true), - revisionNumber: long_1.default.fromString(timeout_height.revision_number || "0", true), - } - : undefined, - timeoutTimestamp: long_1.default.fromString(timeout_timestamp || "0", true), - }), - }, - }; -} -exports.createIbcAminoConverters = createIbcAminoConverters; -//# sourceMappingURL=aminomessages.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/ibc/messages.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/ibc/messages.js ***! - \*********************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isMsgTransferEncodeObject = exports.ibcTypes = void 0; -const tx_1 = __webpack_require__(/*! cosmjs-types/ibc/applications/transfer/v1/tx */ "./node_modules/cosmjs-types/ibc/applications/transfer/v1/tx.js"); -const tx_2 = __webpack_require__(/*! cosmjs-types/ibc/core/channel/v1/tx */ "./node_modules/cosmjs-types/ibc/core/channel/v1/tx.js"); -const tx_3 = __webpack_require__(/*! cosmjs-types/ibc/core/client/v1/tx */ "./node_modules/cosmjs-types/ibc/core/client/v1/tx.js"); -const tx_4 = __webpack_require__(/*! cosmjs-types/ibc/core/connection/v1/tx */ "./node_modules/cosmjs-types/ibc/core/connection/v1/tx.js"); -exports.ibcTypes = [ - ["/ibc.applications.transfer.v1.MsgTransfer", tx_1.MsgTransfer], - ["/ibc.core.channel.v1.MsgAcknowledgement", tx_2.MsgAcknowledgement], - ["/ibc.core.channel.v1.MsgChannelCloseConfirm", tx_2.MsgChannelCloseConfirm], - ["/ibc.core.channel.v1.MsgChannelCloseInit", tx_2.MsgChannelCloseInit], - ["/ibc.core.channel.v1.MsgChannelOpenAck", tx_2.MsgChannelOpenAck], - ["/ibc.core.channel.v1.MsgChannelOpenConfirm", tx_2.MsgChannelOpenConfirm], - ["/ibc.core.channel.v1.MsgChannelOpenInit", tx_2.MsgChannelOpenInit], - ["/ibc.core.channel.v1.MsgChannelOpenTry", tx_2.MsgChannelOpenTry], - ["/ibc.core.channel.v1.MsgRecvPacket", tx_2.MsgRecvPacket], - ["/ibc.core.channel.v1.MsgTimeout", tx_2.MsgTimeout], - ["/ibc.core.channel.v1.MsgTimeoutOnClose", tx_2.MsgTimeoutOnClose], - ["/ibc.core.client.v1.MsgCreateClient", tx_3.MsgCreateClient], - ["/ibc.core.client.v1.MsgSubmitMisbehaviour", tx_3.MsgSubmitMisbehaviour], - ["/ibc.core.client.v1.MsgUpdateClient", tx_3.MsgUpdateClient], - ["/ibc.core.client.v1.MsgUpgradeClient", tx_3.MsgUpgradeClient], - ["/ibc.core.connection.v1.MsgConnectionOpenAck", tx_4.MsgConnectionOpenAck], - ["/ibc.core.connection.v1.MsgConnectionOpenConfirm", tx_4.MsgConnectionOpenConfirm], - ["/ibc.core.connection.v1.MsgConnectionOpenInit", tx_4.MsgConnectionOpenInit], - ["/ibc.core.connection.v1.MsgConnectionOpenTry", tx_4.MsgConnectionOpenTry], -]; -function isMsgTransferEncodeObject(object) { - return object.typeUrl === "/ibc.applications.transfer.v1.MsgTransfer"; -} -exports.isMsgTransferEncodeObject = isMsgTransferEncodeObject; -//# sourceMappingURL=messages.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/ibc/queries.js": -/*!********************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/ibc/queries.js ***! - \********************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.setupIbcExtension = void 0; -/* eslint-disable @typescript-eslint/naming-convention */ -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/index.js"); -const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/math/build/index.js"); -const query_1 = __webpack_require__(/*! cosmjs-types/ibc/applications/transfer/v1/query */ "./node_modules/cosmjs-types/ibc/applications/transfer/v1/query.js"); -const channel_1 = __webpack_require__(/*! cosmjs-types/ibc/core/channel/v1/channel */ "./node_modules/cosmjs-types/ibc/core/channel/v1/channel.js"); -const query_2 = __webpack_require__(/*! cosmjs-types/ibc/core/channel/v1/query */ "./node_modules/cosmjs-types/ibc/core/channel/v1/query.js"); -const query_3 = __webpack_require__(/*! cosmjs-types/ibc/core/client/v1/query */ "./node_modules/cosmjs-types/ibc/core/client/v1/query.js"); -const query_4 = __webpack_require__(/*! cosmjs-types/ibc/core/connection/v1/query */ "./node_modules/cosmjs-types/ibc/core/connection/v1/query.js"); -const tendermint_1 = __webpack_require__(/*! cosmjs-types/ibc/lightclients/tendermint/v1/tendermint */ "./node_modules/cosmjs-types/ibc/lightclients/tendermint/v1/tendermint.js"); -const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); -const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); -function decodeTendermintClientStateAny(clientState) { - if (clientState?.typeUrl !== "/ibc.lightclients.tendermint.v1.ClientState") { - throw new Error(`Unexpected client state type: ${clientState?.typeUrl}`); - } - return tendermint_1.ClientState.decode(clientState.value); -} -function decodeTendermintConsensusStateAny(clientState) { - if (clientState?.typeUrl !== "/ibc.lightclients.tendermint.v1.ConsensusState") { - throw new Error(`Unexpected client state type: ${clientState?.typeUrl}`); - } - return tendermint_1.ConsensusState.decode(clientState.value); -} -function setupIbcExtension(base) { - const rpc = (0, queryclient_1.createProtobufRpcClient)(base); - // Use these services to get easy typed access to query methods - // These cannot be used for proof verification - const channelQueryService = new query_2.QueryClientImpl(rpc); - const clientQueryService = new query_3.QueryClientImpl(rpc); - const connectionQueryService = new query_4.QueryClientImpl(rpc); - const transferQueryService = new query_1.QueryClientImpl(rpc); - return { - ibc: { - channel: { - channel: async (portId, channelId) => channelQueryService.Channel({ - portId: portId, - channelId: channelId, - }), - channels: async (paginationKey) => channelQueryService.Channels({ - pagination: (0, queryclient_1.createPagination)(paginationKey), - }), - allChannels: async () => { - const channels = []; - let response; - let key; - do { - response = await channelQueryService.Channels({ - pagination: (0, queryclient_1.createPagination)(key), - }); - channels.push(...response.channels); - key = response.pagination?.nextKey; - } while (key && key.length); - return { - channels: channels, - height: response.height, - }; - }, - connectionChannels: async (connection, paginationKey) => channelQueryService.ConnectionChannels({ - connection: connection, - pagination: (0, queryclient_1.createPagination)(paginationKey), - }), - allConnectionChannels: async (connection) => { - const channels = []; - let response; - let key; - do { - response = await channelQueryService.ConnectionChannels({ - connection: connection, - pagination: (0, queryclient_1.createPagination)(key), - }); - channels.push(...response.channels); - key = response.pagination?.nextKey; - } while (key && key.length); - return { - channels: channels, - height: response.height, - }; - }, - clientState: async (portId, channelId) => channelQueryService.ChannelClientState({ - portId: portId, - channelId: channelId, - }), - consensusState: async (portId, channelId, revisionNumber, revisionHeight) => channelQueryService.ChannelConsensusState({ - portId: portId, - channelId: channelId, - revisionNumber: long_1.default.fromNumber(revisionNumber, true), - revisionHeight: long_1.default.fromNumber(revisionHeight, true), - }), - packetCommitment: async (portId, channelId, sequence) => channelQueryService.PacketCommitment({ - portId: portId, - channelId: channelId, - sequence: long_1.default.fromNumber(sequence, true), - }), - packetCommitments: async (portId, channelId, paginationKey) => channelQueryService.PacketCommitments({ - channelId: channelId, - portId: portId, - pagination: (0, queryclient_1.createPagination)(paginationKey), - }), - allPacketCommitments: async (portId, channelId) => { - const commitments = []; - let response; - let key; - do { - response = await channelQueryService.PacketCommitments({ - channelId: channelId, - portId: portId, - pagination: (0, queryclient_1.createPagination)(key), - }); - commitments.push(...response.commitments); - key = response.pagination?.nextKey; - } while (key && key.length); - return { - commitments: commitments, - height: response.height, - }; - }, - packetReceipt: async (portId, channelId, sequence) => channelQueryService.PacketReceipt({ - portId: portId, - channelId: channelId, - sequence: long_1.default.fromNumber(sequence, true), - }), - packetAcknowledgement: async (portId, channelId, sequence) => channelQueryService.PacketAcknowledgement({ - portId: portId, - channelId: channelId, - sequence: long_1.default.fromNumber(sequence, true), - }), - packetAcknowledgements: async (portId, channelId, paginationKey) => { - const request = query_2.QueryPacketAcknowledgementsRequest.fromPartial({ - portId: portId, - channelId: channelId, - pagination: (0, queryclient_1.createPagination)(paginationKey), - }); - return channelQueryService.PacketAcknowledgements(request); - }, - allPacketAcknowledgements: async (portId, channelId) => { - const acknowledgements = []; - let response; - let key; - do { - const request = query_2.QueryPacketAcknowledgementsRequest.fromPartial({ - channelId: channelId, - portId: portId, - pagination: (0, queryclient_1.createPagination)(key), - }); - response = await channelQueryService.PacketAcknowledgements(request); - acknowledgements.push(...response.acknowledgements); - key = response.pagination?.nextKey; - } while (key && key.length); - return { - acknowledgements: acknowledgements, - height: response.height, - }; - }, - unreceivedPackets: async (portId, channelId, packetCommitmentSequences) => channelQueryService.UnreceivedPackets({ - portId: portId, - channelId: channelId, - packetCommitmentSequences: packetCommitmentSequences.map((s) => long_1.default.fromNumber(s, true)), - }), - unreceivedAcks: async (portId, channelId, packetAckSequences) => channelQueryService.UnreceivedAcks({ - portId: portId, - channelId: channelId, - packetAckSequences: packetAckSequences.map((s) => long_1.default.fromNumber(s, true)), - }), - nextSequenceReceive: async (portId, channelId) => channelQueryService.NextSequenceReceive({ - portId: portId, - channelId: channelId, - }), - }, - client: { - state: async (clientId) => clientQueryService.ClientState({ clientId }), - states: async (paginationKey) => clientQueryService.ClientStates({ - pagination: (0, queryclient_1.createPagination)(paginationKey), - }), - allStates: async () => { - const clientStates = []; - let response; - let key; - do { - response = await clientQueryService.ClientStates({ - pagination: (0, queryclient_1.createPagination)(key), - }); - clientStates.push(...response.clientStates); - key = response.pagination?.nextKey; - } while (key && key.length); - return { - clientStates: clientStates, - }; - }, - consensusState: async (clientId, consensusHeight) => clientQueryService.ConsensusState(query_3.QueryConsensusStateRequest.fromPartial({ - clientId: clientId, - revisionHeight: consensusHeight !== undefined ? long_1.default.fromNumber(consensusHeight, true) : undefined, - latestHeight: consensusHeight === undefined, - })), - consensusStates: async (clientId, paginationKey) => clientQueryService.ConsensusStates({ - clientId: clientId, - pagination: (0, queryclient_1.createPagination)(paginationKey), - }), - allConsensusStates: async (clientId) => { - const consensusStates = []; - let response; - let key; - do { - response = await clientQueryService.ConsensusStates({ - clientId: clientId, - pagination: (0, queryclient_1.createPagination)(key), - }); - consensusStates.push(...response.consensusStates); - key = response.pagination?.nextKey; - } while (key && key.length); - return { - consensusStates: consensusStates, - }; - }, - params: async () => clientQueryService.ClientParams({}), - stateTm: async (clientId) => { - const response = await clientQueryService.ClientState({ clientId }); - return decodeTendermintClientStateAny(response.clientState); - }, - statesTm: async (paginationKey) => { - const { clientStates } = await clientQueryService.ClientStates({ - pagination: (0, queryclient_1.createPagination)(paginationKey), - }); - return clientStates.map(({ clientState }) => decodeTendermintClientStateAny(clientState)); - }, - allStatesTm: async () => { - const clientStates = []; - let response; - let key; - do { - response = await clientQueryService.ClientStates({ - pagination: (0, queryclient_1.createPagination)(key), - }); - clientStates.push(...response.clientStates); - key = response.pagination?.nextKey; - } while (key && key.length); - return clientStates.map(({ clientState }) => decodeTendermintClientStateAny(clientState)); - }, - consensusStateTm: async (clientId, consensusHeight) => { - const response = await clientQueryService.ConsensusState(query_3.QueryConsensusStateRequest.fromPartial({ - clientId: clientId, - revisionHeight: consensusHeight?.revisionHeight, - revisionNumber: consensusHeight?.revisionNumber, - latestHeight: consensusHeight === undefined, - })); - return decodeTendermintConsensusStateAny(response.consensusState); - }, - }, - connection: { - connection: async (connectionId) => connectionQueryService.Connection({ - connectionId: connectionId, - }), - connections: async (paginationKey) => connectionQueryService.Connections({ - pagination: (0, queryclient_1.createPagination)(paginationKey), - }), - allConnections: async () => { - const connections = []; - let response; - let key; - do { - response = await connectionQueryService.Connections({ - pagination: (0, queryclient_1.createPagination)(key), - }); - connections.push(...response.connections); - key = response.pagination?.nextKey; - } while (key && key.length); - return { - connections: connections, - height: response.height, - }; - }, - clientConnections: async (clientId) => connectionQueryService.ClientConnections({ - clientId: clientId, - }), - clientState: async (connectionId) => connectionQueryService.ConnectionClientState({ - connectionId: connectionId, - }), - consensusState: async (connectionId, revisionHeight) => connectionQueryService.ConnectionConsensusState(query_4.QueryConnectionConsensusStateRequest.fromPartial({ - connectionId: connectionId, - revisionHeight: long_1.default.fromNumber(revisionHeight, true), - })), - }, - transfer: { - denomTrace: async (hash) => transferQueryService.DenomTrace({ hash: hash }), - denomTraces: async (paginationKey) => transferQueryService.DenomTraces({ - pagination: (0, queryclient_1.createPagination)(paginationKey), - }), - allDenomTraces: async () => { - const denomTraces = []; - let response; - let key; - do { - response = await transferQueryService.DenomTraces({ - pagination: (0, queryclient_1.createPagination)(key), - }); - denomTraces.push(...response.denomTraces); - key = response.pagination?.nextKey; - } while (key && key.length); - return { - denomTraces: denomTraces, - }; - }, - params: async () => transferQueryService.Params({}), - }, - verified: { - channel: { - channel: async (portId, channelId) => { - // keeper: https://github.com/cosmos/cosmos-sdk/blob/3bafd8255a502e5a9cee07391cf8261538245dfd/x/ibc/04-channel/keeper/keeper.go#L55-L65 - // key: https://github.com/cosmos/cosmos-sdk/blob/ef0a7344af345882729598bc2958a21143930a6b/x/ibc/24-host/keys.go#L117-L120 - const key = (0, encoding_1.toAscii)(`channelEnds/ports/${portId}/channels/${channelId}`); - const { value } = await base.queryStoreVerified("ibc", key); - return value.length ? channel_1.Channel.decode(value) : null; - }, - packetCommitment: async (portId, channelId, sequence) => { - // keeper: https://github.com/cosmos/cosmos-sdk/blob/3bafd8255a502e5a9cee07391cf8261538245dfd/x/ibc/04-channel/keeper/keeper.go#L128-L133 - // key: https://github.com/cosmos/cosmos-sdk/blob/ef0a7344af345882729598bc2958a21143930a6b/x/ibc/24-host/keys.go#L183-L185 - const key = (0, encoding_1.toAscii)(`commitments/ports/${portId}/channels/${channelId}/packets/${sequence}`); - const { value } = await base.queryStoreVerified("ibc", key); - // keeper code doesn't parse, but returns raw - return value; - }, - packetAcknowledgement: async (portId, channelId, sequence) => { - // keeper: https://github.com/cosmos/cosmos-sdk/blob/3bafd8255a502e5a9cee07391cf8261538245dfd/x/ibc/04-channel/keeper/keeper.go#L159-L166 - // key: https://github.com/cosmos/cosmos-sdk/blob/ef0a7344af345882729598bc2958a21143930a6b/x/ibc/24-host/keys.go#L153-L156 - const key = (0, encoding_1.toAscii)(`acks/ports/${portId}/channels/${channelId}/acknowledgements/${sequence}`); - const { value } = await base.queryStoreVerified("ibc", key); - // keeper code doesn't parse, but returns raw - return value; - }, - nextSequenceReceive: async (portId, channelId) => { - // keeper: https://github.com/cosmos/cosmos-sdk/blob/3bafd8255a502e5a9cee07391cf8261538245dfd/x/ibc/04-channel/keeper/keeper.go#L92-L101 - // key: https://github.com/cosmos/cosmos-sdk/blob/ef0a7344af345882729598bc2958a21143930a6b/x/ibc/24-host/keys.go#L133-L136 - const key = (0, encoding_1.toAscii)(`seqAcks/ports/${portId}/channels/${channelId}/nextSequenceAck`); - const { value } = await base.queryStoreVerified("ibc", key); - return value.length ? math_1.Uint64.fromBytes(value).toNumber() : null; - }, - }, - }, - }, - }; -} -exports.setupIbcExtension = setupIbcExtension; -//# sourceMappingURL=queries.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/index.js": -/*!**************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/index.js ***! - \**************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isAminoMsgEditValidator = exports.isAminoMsgDelegate = exports.isAminoMsgCreateValidator = exports.isAminoMsgBeginRedelegate = exports.createStakingAminoConverters = exports.setupSlashingExtension = exports.isAminoMsgUnjail = exports.createSlashingAminoConverters = exports.setupMintExtension = exports.setupIbcExtension = exports.isMsgTransferEncodeObject = exports.ibcTypes = exports.isAminoMsgTransfer = exports.createIbcAminoConverters = exports.setupGovExtension = exports.isMsgVoteWeightedEncodeObject = exports.isMsgVoteEncodeObject = exports.isMsgSubmitProposalEncodeObject = exports.isMsgDepositEncodeObject = exports.govTypes = exports.isAminoMsgVoteWeighted = exports.isAminoMsgVote = exports.isAminoMsgSubmitProposal = exports.isAminoMsgDeposit = exports.createGovAminoConverters = exports.setupFeegrantExtension = exports.feegrantTypes = exports.createFeegrantAminoConverters = exports.isAminoMsgSubmitEvidence = exports.createEvidenceAminoConverters = exports.setupDistributionExtension = exports.isMsgWithdrawDelegatorRewardEncodeObject = exports.distributionTypes = exports.isAminoMsgWithdrawValidatorCommission = exports.isAminoMsgWithdrawDelegatorReward = exports.isAminoMsgSetWithdrawAddress = exports.isAminoMsgFundCommunityPool = exports.createDistributionAminoConverters = exports.isAminoMsgVerifyInvariant = exports.createCrysisAminoConverters = exports.setupBankExtension = exports.isMsgSendEncodeObject = exports.bankTypes = exports.isAminoMsgSend = exports.isAminoMsgMultiSend = exports.createBankAminoConverters = exports.setupAuthzExtension = exports.authzTypes = exports.createAuthzAminoConverters = exports.setupAuthExtension = void 0; -exports.vestingTypes = exports.isAminoMsgCreateVestingAccount = exports.createVestingAminoConverters = exports.setupTxExtension = exports.setupStakingExtension = exports.stakingTypes = exports.isMsgUndelegateEncodeObject = exports.isMsgEditValidatorEncodeObject = exports.isMsgDelegateEncodeObject = exports.isMsgCreateValidatorEncodeObject = exports.isMsgBeginRedelegateEncodeObject = exports.isAminoMsgUndelegate = void 0; -var queries_1 = __webpack_require__(/*! ./auth/queries */ "./node_modules/@cosmjs/stargate/build/modules/auth/queries.js"); -Object.defineProperty(exports, "setupAuthExtension", ({ enumerable: true, get: function () { return queries_1.setupAuthExtension; } })); -var aminomessages_1 = __webpack_require__(/*! ./authz/aminomessages */ "./node_modules/@cosmjs/stargate/build/modules/authz/aminomessages.js"); -Object.defineProperty(exports, "createAuthzAminoConverters", ({ enumerable: true, get: function () { return aminomessages_1.createAuthzAminoConverters; } })); -var messages_1 = __webpack_require__(/*! ./authz/messages */ "./node_modules/@cosmjs/stargate/build/modules/authz/messages.js"); -Object.defineProperty(exports, "authzTypes", ({ enumerable: true, get: function () { return messages_1.authzTypes; } })); -var queries_2 = __webpack_require__(/*! ./authz/queries */ "./node_modules/@cosmjs/stargate/build/modules/authz/queries.js"); -Object.defineProperty(exports, "setupAuthzExtension", ({ enumerable: true, get: function () { return queries_2.setupAuthzExtension; } })); -var aminomessages_2 = __webpack_require__(/*! ./bank/aminomessages */ "./node_modules/@cosmjs/stargate/build/modules/bank/aminomessages.js"); -Object.defineProperty(exports, "createBankAminoConverters", ({ enumerable: true, get: function () { return aminomessages_2.createBankAminoConverters; } })); -Object.defineProperty(exports, "isAminoMsgMultiSend", ({ enumerable: true, get: function () { return aminomessages_2.isAminoMsgMultiSend; } })); -Object.defineProperty(exports, "isAminoMsgSend", ({ enumerable: true, get: function () { return aminomessages_2.isAminoMsgSend; } })); -var messages_2 = __webpack_require__(/*! ./bank/messages */ "./node_modules/@cosmjs/stargate/build/modules/bank/messages.js"); -Object.defineProperty(exports, "bankTypes", ({ enumerable: true, get: function () { return messages_2.bankTypes; } })); -Object.defineProperty(exports, "isMsgSendEncodeObject", ({ enumerable: true, get: function () { return messages_2.isMsgSendEncodeObject; } })); -var queries_3 = __webpack_require__(/*! ./bank/queries */ "./node_modules/@cosmjs/stargate/build/modules/bank/queries.js"); -Object.defineProperty(exports, "setupBankExtension", ({ enumerable: true, get: function () { return queries_3.setupBankExtension; } })); -var aminomessages_3 = __webpack_require__(/*! ./crisis/aminomessages */ "./node_modules/@cosmjs/stargate/build/modules/crisis/aminomessages.js"); -Object.defineProperty(exports, "createCrysisAminoConverters", ({ enumerable: true, get: function () { return aminomessages_3.createCrysisAminoConverters; } })); -Object.defineProperty(exports, "isAminoMsgVerifyInvariant", ({ enumerable: true, get: function () { return aminomessages_3.isAminoMsgVerifyInvariant; } })); -var aminomessages_4 = __webpack_require__(/*! ./distribution/aminomessages */ "./node_modules/@cosmjs/stargate/build/modules/distribution/aminomessages.js"); -Object.defineProperty(exports, "createDistributionAminoConverters", ({ enumerable: true, get: function () { return aminomessages_4.createDistributionAminoConverters; } })); -Object.defineProperty(exports, "isAminoMsgFundCommunityPool", ({ enumerable: true, get: function () { return aminomessages_4.isAminoMsgFundCommunityPool; } })); -Object.defineProperty(exports, "isAminoMsgSetWithdrawAddress", ({ enumerable: true, get: function () { return aminomessages_4.isAminoMsgSetWithdrawAddress; } })); -Object.defineProperty(exports, "isAminoMsgWithdrawDelegatorReward", ({ enumerable: true, get: function () { return aminomessages_4.isAminoMsgWithdrawDelegatorReward; } })); -Object.defineProperty(exports, "isAminoMsgWithdrawValidatorCommission", ({ enumerable: true, get: function () { return aminomessages_4.isAminoMsgWithdrawValidatorCommission; } })); -var messages_3 = __webpack_require__(/*! ./distribution/messages */ "./node_modules/@cosmjs/stargate/build/modules/distribution/messages.js"); -Object.defineProperty(exports, "distributionTypes", ({ enumerable: true, get: function () { return messages_3.distributionTypes; } })); -Object.defineProperty(exports, "isMsgWithdrawDelegatorRewardEncodeObject", ({ enumerable: true, get: function () { return messages_3.isMsgWithdrawDelegatorRewardEncodeObject; } })); -var queries_4 = __webpack_require__(/*! ./distribution/queries */ "./node_modules/@cosmjs/stargate/build/modules/distribution/queries.js"); -Object.defineProperty(exports, "setupDistributionExtension", ({ enumerable: true, get: function () { return queries_4.setupDistributionExtension; } })); -var aminomessages_5 = __webpack_require__(/*! ./evidence/aminomessages */ "./node_modules/@cosmjs/stargate/build/modules/evidence/aminomessages.js"); -Object.defineProperty(exports, "createEvidenceAminoConverters", ({ enumerable: true, get: function () { return aminomessages_5.createEvidenceAminoConverters; } })); -Object.defineProperty(exports, "isAminoMsgSubmitEvidence", ({ enumerable: true, get: function () { return aminomessages_5.isAminoMsgSubmitEvidence; } })); -var aminomessages_6 = __webpack_require__(/*! ./feegrant/aminomessages */ "./node_modules/@cosmjs/stargate/build/modules/feegrant/aminomessages.js"); -Object.defineProperty(exports, "createFeegrantAminoConverters", ({ enumerable: true, get: function () { return aminomessages_6.createFeegrantAminoConverters; } })); -var messages_4 = __webpack_require__(/*! ./feegrant/messages */ "./node_modules/@cosmjs/stargate/build/modules/feegrant/messages.js"); -Object.defineProperty(exports, "feegrantTypes", ({ enumerable: true, get: function () { return messages_4.feegrantTypes; } })); -var queries_5 = __webpack_require__(/*! ./feegrant/queries */ "./node_modules/@cosmjs/stargate/build/modules/feegrant/queries.js"); -Object.defineProperty(exports, "setupFeegrantExtension", ({ enumerable: true, get: function () { return queries_5.setupFeegrantExtension; } })); -var aminomessages_7 = __webpack_require__(/*! ./gov/aminomessages */ "./node_modules/@cosmjs/stargate/build/modules/gov/aminomessages.js"); -Object.defineProperty(exports, "createGovAminoConverters", ({ enumerable: true, get: function () { return aminomessages_7.createGovAminoConverters; } })); -Object.defineProperty(exports, "isAminoMsgDeposit", ({ enumerable: true, get: function () { return aminomessages_7.isAminoMsgDeposit; } })); -Object.defineProperty(exports, "isAminoMsgSubmitProposal", ({ enumerable: true, get: function () { return aminomessages_7.isAminoMsgSubmitProposal; } })); -Object.defineProperty(exports, "isAminoMsgVote", ({ enumerable: true, get: function () { return aminomessages_7.isAminoMsgVote; } })); -Object.defineProperty(exports, "isAminoMsgVoteWeighted", ({ enumerable: true, get: function () { return aminomessages_7.isAminoMsgVoteWeighted; } })); -var messages_5 = __webpack_require__(/*! ./gov/messages */ "./node_modules/@cosmjs/stargate/build/modules/gov/messages.js"); -Object.defineProperty(exports, "govTypes", ({ enumerable: true, get: function () { return messages_5.govTypes; } })); -Object.defineProperty(exports, "isMsgDepositEncodeObject", ({ enumerable: true, get: function () { return messages_5.isMsgDepositEncodeObject; } })); -Object.defineProperty(exports, "isMsgSubmitProposalEncodeObject", ({ enumerable: true, get: function () { return messages_5.isMsgSubmitProposalEncodeObject; } })); -Object.defineProperty(exports, "isMsgVoteEncodeObject", ({ enumerable: true, get: function () { return messages_5.isMsgVoteEncodeObject; } })); -Object.defineProperty(exports, "isMsgVoteWeightedEncodeObject", ({ enumerable: true, get: function () { return messages_5.isMsgVoteWeightedEncodeObject; } })); -var queries_6 = __webpack_require__(/*! ./gov/queries */ "./node_modules/@cosmjs/stargate/build/modules/gov/queries.js"); -Object.defineProperty(exports, "setupGovExtension", ({ enumerable: true, get: function () { return queries_6.setupGovExtension; } })); -var aminomessages_8 = __webpack_require__(/*! ./ibc/aminomessages */ "./node_modules/@cosmjs/stargate/build/modules/ibc/aminomessages.js"); -Object.defineProperty(exports, "createIbcAminoConverters", ({ enumerable: true, get: function () { return aminomessages_8.createIbcAminoConverters; } })); -Object.defineProperty(exports, "isAminoMsgTransfer", ({ enumerable: true, get: function () { return aminomessages_8.isAminoMsgTransfer; } })); -var messages_6 = __webpack_require__(/*! ./ibc/messages */ "./node_modules/@cosmjs/stargate/build/modules/ibc/messages.js"); -Object.defineProperty(exports, "ibcTypes", ({ enumerable: true, get: function () { return messages_6.ibcTypes; } })); -Object.defineProperty(exports, "isMsgTransferEncodeObject", ({ enumerable: true, get: function () { return messages_6.isMsgTransferEncodeObject; } })); -var queries_7 = __webpack_require__(/*! ./ibc/queries */ "./node_modules/@cosmjs/stargate/build/modules/ibc/queries.js"); -Object.defineProperty(exports, "setupIbcExtension", ({ enumerable: true, get: function () { return queries_7.setupIbcExtension; } })); -var queries_8 = __webpack_require__(/*! ./mint/queries */ "./node_modules/@cosmjs/stargate/build/modules/mint/queries.js"); -Object.defineProperty(exports, "setupMintExtension", ({ enumerable: true, get: function () { return queries_8.setupMintExtension; } })); -var aminomessages_9 = __webpack_require__(/*! ./slashing/aminomessages */ "./node_modules/@cosmjs/stargate/build/modules/slashing/aminomessages.js"); -Object.defineProperty(exports, "createSlashingAminoConverters", ({ enumerable: true, get: function () { return aminomessages_9.createSlashingAminoConverters; } })); -Object.defineProperty(exports, "isAminoMsgUnjail", ({ enumerable: true, get: function () { return aminomessages_9.isAminoMsgUnjail; } })); -var queries_9 = __webpack_require__(/*! ./slashing/queries */ "./node_modules/@cosmjs/stargate/build/modules/slashing/queries.js"); -Object.defineProperty(exports, "setupSlashingExtension", ({ enumerable: true, get: function () { return queries_9.setupSlashingExtension; } })); -var aminomessages_10 = __webpack_require__(/*! ./staking/aminomessages */ "./node_modules/@cosmjs/stargate/build/modules/staking/aminomessages.js"); -Object.defineProperty(exports, "createStakingAminoConverters", ({ enumerable: true, get: function () { return aminomessages_10.createStakingAminoConverters; } })); -Object.defineProperty(exports, "isAminoMsgBeginRedelegate", ({ enumerable: true, get: function () { return aminomessages_10.isAminoMsgBeginRedelegate; } })); -Object.defineProperty(exports, "isAminoMsgCreateValidator", ({ enumerable: true, get: function () { return aminomessages_10.isAminoMsgCreateValidator; } })); -Object.defineProperty(exports, "isAminoMsgDelegate", ({ enumerable: true, get: function () { return aminomessages_10.isAminoMsgDelegate; } })); -Object.defineProperty(exports, "isAminoMsgEditValidator", ({ enumerable: true, get: function () { return aminomessages_10.isAminoMsgEditValidator; } })); -Object.defineProperty(exports, "isAminoMsgUndelegate", ({ enumerable: true, get: function () { return aminomessages_10.isAminoMsgUndelegate; } })); -var messages_7 = __webpack_require__(/*! ./staking/messages */ "./node_modules/@cosmjs/stargate/build/modules/staking/messages.js"); -Object.defineProperty(exports, "isMsgBeginRedelegateEncodeObject", ({ enumerable: true, get: function () { return messages_7.isMsgBeginRedelegateEncodeObject; } })); -Object.defineProperty(exports, "isMsgCreateValidatorEncodeObject", ({ enumerable: true, get: function () { return messages_7.isMsgCreateValidatorEncodeObject; } })); -Object.defineProperty(exports, "isMsgDelegateEncodeObject", ({ enumerable: true, get: function () { return messages_7.isMsgDelegateEncodeObject; } })); -Object.defineProperty(exports, "isMsgEditValidatorEncodeObject", ({ enumerable: true, get: function () { return messages_7.isMsgEditValidatorEncodeObject; } })); -Object.defineProperty(exports, "isMsgUndelegateEncodeObject", ({ enumerable: true, get: function () { return messages_7.isMsgUndelegateEncodeObject; } })); -Object.defineProperty(exports, "stakingTypes", ({ enumerable: true, get: function () { return messages_7.stakingTypes; } })); -var queries_10 = __webpack_require__(/*! ./staking/queries */ "./node_modules/@cosmjs/stargate/build/modules/staking/queries.js"); -Object.defineProperty(exports, "setupStakingExtension", ({ enumerable: true, get: function () { return queries_10.setupStakingExtension; } })); -var queries_11 = __webpack_require__(/*! ./tx/queries */ "./node_modules/@cosmjs/stargate/build/modules/tx/queries.js"); -Object.defineProperty(exports, "setupTxExtension", ({ enumerable: true, get: function () { return queries_11.setupTxExtension; } })); -var aminomessages_11 = __webpack_require__(/*! ./vesting/aminomessages */ "./node_modules/@cosmjs/stargate/build/modules/vesting/aminomessages.js"); -Object.defineProperty(exports, "createVestingAminoConverters", ({ enumerable: true, get: function () { return aminomessages_11.createVestingAminoConverters; } })); -Object.defineProperty(exports, "isAminoMsgCreateVestingAccount", ({ enumerable: true, get: function () { return aminomessages_11.isAminoMsgCreateVestingAccount; } })); -var messages_8 = __webpack_require__(/*! ./vesting/messages */ "./node_modules/@cosmjs/stargate/build/modules/vesting/messages.js"); -Object.defineProperty(exports, "vestingTypes", ({ enumerable: true, get: function () { return messages_8.vestingTypes; } })); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/mint/queries.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/mint/queries.js ***! - \*********************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.setupMintExtension = void 0; -const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/index.js"); -const query_1 = __webpack_require__(/*! cosmjs-types/cosmos/mint/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/mint/v1beta1/query.js"); -const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); -function setupMintExtension(base) { - const rpc = (0, queryclient_1.createProtobufRpcClient)(base); - // Use this service to get easy typed access to query methods - // This cannot be used for proof verification - const queryService = new query_1.QueryClientImpl(rpc); - return { - mint: { - params: async () => { - const { params } = await queryService.Params({}); - (0, utils_1.assert)(params); - return { - blocksPerYear: params.blocksPerYear, - goalBonded: (0, queryclient_1.decodeCosmosSdkDecFromProto)(params.goalBonded), - inflationMin: (0, queryclient_1.decodeCosmosSdkDecFromProto)(params.inflationMin), - inflationMax: (0, queryclient_1.decodeCosmosSdkDecFromProto)(params.inflationMax), - inflationRateChange: (0, queryclient_1.decodeCosmosSdkDecFromProto)(params.inflationRateChange), - mintDenom: params.mintDenom, - }; - }, - inflation: async () => { - const { inflation } = await queryService.Inflation({}); - return (0, queryclient_1.decodeCosmosSdkDecFromProto)(inflation); - }, - annualProvisions: async () => { - const { annualProvisions } = await queryService.AnnualProvisions({}); - return (0, queryclient_1.decodeCosmosSdkDecFromProto)(annualProvisions); - }, - }, - }; -} -exports.setupMintExtension = setupMintExtension; -//# sourceMappingURL=queries.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/slashing/aminomessages.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/slashing/aminomessages.js ***! - \*******************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.createSlashingAminoConverters = exports.isAminoMsgUnjail = void 0; -function isAminoMsgUnjail(msg) { - return msg.type === "cosmos-sdk/MsgUnjail"; -} -exports.isAminoMsgUnjail = isAminoMsgUnjail; -function createSlashingAminoConverters() { - throw new Error("Not implemented"); -} -exports.createSlashingAminoConverters = createSlashingAminoConverters; -//# sourceMappingURL=aminomessages.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/slashing/queries.js": -/*!*************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/slashing/queries.js ***! - \*************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.setupSlashingExtension = void 0; -const query_1 = __webpack_require__(/*! cosmjs-types/cosmos/slashing/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/slashing/v1beta1/query.js"); -const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); -function setupSlashingExtension(base) { - const rpc = (0, queryclient_1.createProtobufRpcClient)(base); - const queryService = new query_1.QueryClientImpl(rpc); - return { - slashing: { - signingInfo: async (consAddress) => { - const response = await queryService.SigningInfo({ - consAddress: consAddress, - }); - return response; - }, - signingInfos: async (paginationKey) => { - const response = await queryService.SigningInfos({ - pagination: (0, queryclient_1.createPagination)(paginationKey), - }); - return response; - }, - params: async () => { - const response = await queryService.Params({}); - return response; - }, - }, - }; -} -exports.setupSlashingExtension = setupSlashingExtension; -//# sourceMappingURL=queries.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/staking/aminomessages.js": -/*!******************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/staking/aminomessages.js ***! - \******************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.createStakingAminoConverters = exports.isAminoMsgUndelegate = exports.isAminoMsgBeginRedelegate = exports.isAminoMsgDelegate = exports.isAminoMsgEditValidator = exports.isAminoMsgCreateValidator = exports.protoDecimalToJson = void 0; -const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/math/build/index.js"); -const proto_signing_1 = __webpack_require__(/*! @cosmjs/proto-signing */ "./node_modules/@cosmjs/proto-signing/build/index.js"); -const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/index.js"); -function protoDecimalToJson(decimal) { - const parsed = math_1.Decimal.fromAtomics(decimal, 18); - const [whole, fractional] = parsed.toString().split("."); - return `${whole}.${(fractional ?? "").padEnd(18, "0")}`; -} -exports.protoDecimalToJson = protoDecimalToJson; -function jsonDecimalToProto(decimal) { - const parsed = math_1.Decimal.fromUserInput(decimal, 18); - return parsed.atomics; -} -function isAminoMsgCreateValidator(msg) { - return msg.type === "cosmos-sdk/MsgCreateValidator"; -} -exports.isAminoMsgCreateValidator = isAminoMsgCreateValidator; -function isAminoMsgEditValidator(msg) { - return msg.type === "cosmos-sdk/MsgEditValidator"; -} -exports.isAminoMsgEditValidator = isAminoMsgEditValidator; -function isAminoMsgDelegate(msg) { - return msg.type === "cosmos-sdk/MsgDelegate"; -} -exports.isAminoMsgDelegate = isAminoMsgDelegate; -function isAminoMsgBeginRedelegate(msg) { - return msg.type === "cosmos-sdk/MsgBeginRedelegate"; -} -exports.isAminoMsgBeginRedelegate = isAminoMsgBeginRedelegate; -function isAminoMsgUndelegate(msg) { - return msg.type === "cosmos-sdk/MsgUndelegate"; -} -exports.isAminoMsgUndelegate = isAminoMsgUndelegate; -function createStakingAminoConverters() { - return { - "/cosmos.staking.v1beta1.MsgBeginRedelegate": { - aminoType: "cosmos-sdk/MsgBeginRedelegate", - toAmino: ({ delegatorAddress, validatorSrcAddress, validatorDstAddress, amount, }) => { - (0, utils_1.assertDefinedAndNotNull)(amount, "missing amount"); - return { - delegator_address: delegatorAddress, - validator_src_address: validatorSrcAddress, - validator_dst_address: validatorDstAddress, - amount: amount, - }; - }, - fromAmino: ({ delegator_address, validator_src_address, validator_dst_address, amount, }) => ({ - delegatorAddress: delegator_address, - validatorSrcAddress: validator_src_address, - validatorDstAddress: validator_dst_address, - amount: amount, - }), - }, - "/cosmos.staking.v1beta1.MsgCreateValidator": { - aminoType: "cosmos-sdk/MsgCreateValidator", - toAmino: ({ description, commission, minSelfDelegation, delegatorAddress, validatorAddress, pubkey, value, }) => { - (0, utils_1.assertDefinedAndNotNull)(description, "missing description"); - (0, utils_1.assertDefinedAndNotNull)(commission, "missing commission"); - (0, utils_1.assertDefinedAndNotNull)(pubkey, "missing pubkey"); - (0, utils_1.assertDefinedAndNotNull)(value, "missing value"); - return { - description: { - moniker: description.moniker, - identity: description.identity, - website: description.website, - security_contact: description.securityContact, - details: description.details, - }, - commission: { - rate: protoDecimalToJson(commission.rate), - max_rate: protoDecimalToJson(commission.maxRate), - max_change_rate: protoDecimalToJson(commission.maxChangeRate), - }, - min_self_delegation: minSelfDelegation, - delegator_address: delegatorAddress, - validator_address: validatorAddress, - pubkey: (0, proto_signing_1.decodePubkey)(pubkey), - value: value, - }; - }, - fromAmino: ({ description, commission, min_self_delegation, delegator_address, validator_address, pubkey, value, }) => { - return { - description: { - moniker: description.moniker, - identity: description.identity, - website: description.website, - securityContact: description.security_contact, - details: description.details, - }, - commission: { - rate: jsonDecimalToProto(commission.rate), - maxRate: jsonDecimalToProto(commission.max_rate), - maxChangeRate: jsonDecimalToProto(commission.max_change_rate), - }, - minSelfDelegation: min_self_delegation, - delegatorAddress: delegator_address, - validatorAddress: validator_address, - pubkey: (0, proto_signing_1.encodePubkey)(pubkey), - value: value, - }; - }, - }, - "/cosmos.staking.v1beta1.MsgDelegate": { - aminoType: "cosmos-sdk/MsgDelegate", - toAmino: ({ delegatorAddress, validatorAddress, amount }) => { - (0, utils_1.assertDefinedAndNotNull)(amount, "missing amount"); - return { - delegator_address: delegatorAddress, - validator_address: validatorAddress, - amount: amount, - }; - }, - fromAmino: ({ delegator_address, validator_address, amount, }) => ({ - delegatorAddress: delegator_address, - validatorAddress: validator_address, - amount: amount, - }), - }, - "/cosmos.staking.v1beta1.MsgEditValidator": { - aminoType: "cosmos-sdk/MsgEditValidator", - toAmino: ({ description, commissionRate, minSelfDelegation, validatorAddress, }) => { - (0, utils_1.assertDefinedAndNotNull)(description, "missing description"); - return { - description: { - moniker: description.moniker, - identity: description.identity, - website: description.website, - security_contact: description.securityContact, - details: description.details, - }, - // empty string in the protobuf document means "do not change" - commission_rate: commissionRate ? protoDecimalToJson(commissionRate) : undefined, - // empty string in the protobuf document means "do not change" - min_self_delegation: minSelfDelegation ? minSelfDelegation : undefined, - validator_address: validatorAddress, - }; - }, - fromAmino: ({ description, commission_rate, min_self_delegation, validator_address, }) => ({ - description: { - moniker: description.moniker, - identity: description.identity, - website: description.website, - securityContact: description.security_contact, - details: description.details, - }, - // empty string in the protobuf document means "do not change" - commissionRate: commission_rate ? jsonDecimalToProto(commission_rate) : "", - // empty string in the protobuf document means "do not change" - minSelfDelegation: min_self_delegation ?? "", - validatorAddress: validator_address, - }), - }, - "/cosmos.staking.v1beta1.MsgUndelegate": { - aminoType: "cosmos-sdk/MsgUndelegate", - toAmino: ({ delegatorAddress, validatorAddress, amount, }) => { - (0, utils_1.assertDefinedAndNotNull)(amount, "missing amount"); - return { - delegator_address: delegatorAddress, - validator_address: validatorAddress, - amount: amount, - }; - }, - fromAmino: ({ delegator_address, validator_address, amount, }) => ({ - delegatorAddress: delegator_address, - validatorAddress: validator_address, - amount: amount, - }), - }, - }; -} -exports.createStakingAminoConverters = createStakingAminoConverters; -//# sourceMappingURL=aminomessages.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/staking/messages.js": -/*!*************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/staking/messages.js ***! - \*************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isMsgUndelegateEncodeObject = exports.isMsgEditValidatorEncodeObject = exports.isMsgDelegateEncodeObject = exports.isMsgCreateValidatorEncodeObject = exports.isMsgBeginRedelegateEncodeObject = exports.stakingTypes = void 0; -const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/staking/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/staking/v1beta1/tx.js"); -exports.stakingTypes = [ - ["/cosmos.staking.v1beta1.MsgBeginRedelegate", tx_1.MsgBeginRedelegate], - ["/cosmos.staking.v1beta1.MsgCreateValidator", tx_1.MsgCreateValidator], - ["/cosmos.staking.v1beta1.MsgDelegate", tx_1.MsgDelegate], - ["/cosmos.staking.v1beta1.MsgEditValidator", tx_1.MsgEditValidator], - ["/cosmos.staking.v1beta1.MsgUndelegate", tx_1.MsgUndelegate], -]; -function isMsgBeginRedelegateEncodeObject(o) { - return o.typeUrl === "/cosmos.staking.v1beta1.MsgBeginRedelegate"; -} -exports.isMsgBeginRedelegateEncodeObject = isMsgBeginRedelegateEncodeObject; -function isMsgCreateValidatorEncodeObject(o) { - return o.typeUrl === "/cosmos.staking.v1beta1.MsgCreateValidator"; -} -exports.isMsgCreateValidatorEncodeObject = isMsgCreateValidatorEncodeObject; -function isMsgDelegateEncodeObject(object) { - return object.typeUrl === "/cosmos.staking.v1beta1.MsgDelegate"; -} -exports.isMsgDelegateEncodeObject = isMsgDelegateEncodeObject; -function isMsgEditValidatorEncodeObject(o) { - return o.typeUrl === "/cosmos.staking.v1beta1.MsgEditValidator"; -} -exports.isMsgEditValidatorEncodeObject = isMsgEditValidatorEncodeObject; -function isMsgUndelegateEncodeObject(object) { - return object.typeUrl === "/cosmos.staking.v1beta1.MsgUndelegate"; -} -exports.isMsgUndelegateEncodeObject = isMsgUndelegateEncodeObject; -//# sourceMappingURL=messages.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/staking/queries.js": -/*!************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/staking/queries.js ***! - \************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.setupStakingExtension = void 0; -/* eslint-disable @typescript-eslint/naming-convention */ -const query_1 = __webpack_require__(/*! cosmjs-types/cosmos/staking/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/staking/v1beta1/query.js"); -const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); -const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); -function setupStakingExtension(base) { - // Use this service to get easy typed access to query methods - // This cannot be used for proof verification - const rpc = (0, queryclient_1.createProtobufRpcClient)(base); - const queryService = new query_1.QueryClientImpl(rpc); - return { - staking: { - delegation: async (delegatorAddress, validatorAddress) => { - const response = await queryService.Delegation({ - delegatorAddr: delegatorAddress, - validatorAddr: validatorAddress, - }); - return response; - }, - delegatorDelegations: async (delegatorAddress, paginationKey) => { - const response = await queryService.DelegatorDelegations({ - delegatorAddr: delegatorAddress, - pagination: (0, queryclient_1.createPagination)(paginationKey), - }); - return response; - }, - delegatorUnbondingDelegations: async (delegatorAddress, paginationKey) => { - const response = await queryService.DelegatorUnbondingDelegations({ - delegatorAddr: delegatorAddress, - pagination: (0, queryclient_1.createPagination)(paginationKey), - }); - return response; - }, - delegatorValidator: async (delegatorAddress, validatorAddress) => { - const response = await queryService.DelegatorValidator({ - delegatorAddr: delegatorAddress, - validatorAddr: validatorAddress, - }); - return response; - }, - delegatorValidators: async (delegatorAddress, paginationKey) => { - const response = await queryService.DelegatorValidators({ - delegatorAddr: delegatorAddress, - pagination: (0, queryclient_1.createPagination)(paginationKey), - }); - return response; - }, - historicalInfo: async (height) => { - const response = await queryService.HistoricalInfo({ - height: long_1.default.fromNumber(height, true), - }); - return response; - }, - params: async () => { - const response = await queryService.Params({}); - return response; - }, - pool: async () => { - const response = await queryService.Pool({}); - return response; - }, - redelegations: async (delegatorAddress, sourceValidatorAddress, destinationValidatorAddress, paginationKey) => { - const response = await queryService.Redelegations({ - delegatorAddr: delegatorAddress, - srcValidatorAddr: sourceValidatorAddress, - dstValidatorAddr: destinationValidatorAddress, - pagination: (0, queryclient_1.createPagination)(paginationKey), - }); - return response; - }, - unbondingDelegation: async (delegatorAddress, validatorAddress) => { - const response = await queryService.UnbondingDelegation({ - delegatorAddr: delegatorAddress, - validatorAddr: validatorAddress, - }); - return response; - }, - validator: async (validatorAddress) => { - const response = await queryService.Validator({ validatorAddr: validatorAddress }); - return response; - }, - validatorDelegations: async (validatorAddress, paginationKey) => { - const response = await queryService.ValidatorDelegations({ - validatorAddr: validatorAddress, - pagination: (0, queryclient_1.createPagination)(paginationKey), - }); - return response; - }, - validators: async (status, paginationKey) => { - const response = await queryService.Validators({ - status: status, - pagination: (0, queryclient_1.createPagination)(paginationKey), - }); - return response; - }, - validatorUnbondingDelegations: async (validatorAddress, paginationKey) => { - const response = await queryService.ValidatorUnbondingDelegations({ - validatorAddr: validatorAddress, - pagination: (0, queryclient_1.createPagination)(paginationKey), - }); - return response; - }, - }, - }; -} -exports.setupStakingExtension = setupStakingExtension; -//# sourceMappingURL=queries.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/tx/queries.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/tx/queries.js ***! - \*******************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.setupTxExtension = void 0; -const proto_signing_1 = __webpack_require__(/*! @cosmjs/proto-signing */ "./node_modules/@cosmjs/proto-signing/build/index.js"); -const signing_1 = __webpack_require__(/*! cosmjs-types/cosmos/tx/signing/v1beta1/signing */ "./node_modules/cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"); -const service_1 = __webpack_require__(/*! cosmjs-types/cosmos/tx/v1beta1/service */ "./node_modules/cosmjs-types/cosmos/tx/v1beta1/service.js"); -const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/tx/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/tx/v1beta1/tx.js"); -const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); -const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); -function setupTxExtension(base) { - // Use this service to get easy typed access to query methods - // This cannot be used for proof verification - const rpc = (0, queryclient_1.createProtobufRpcClient)(base); - const queryService = new service_1.ServiceClientImpl(rpc); - return { - tx: { - getTx: async (txId) => { - const request = { - hash: txId, - }; - const response = await queryService.GetTx(request); - return response; - }, - simulate: async (messages, memo, signer, sequence) => { - const tx = tx_1.Tx.fromPartial({ - authInfo: tx_1.AuthInfo.fromPartial({ - fee: tx_1.Fee.fromPartial({}), - signerInfos: [ - { - publicKey: (0, proto_signing_1.encodePubkey)(signer), - sequence: long_1.default.fromNumber(sequence, true), - modeInfo: { single: { mode: signing_1.SignMode.SIGN_MODE_UNSPECIFIED } }, - }, - ], - }), - body: tx_1.TxBody.fromPartial({ - messages: Array.from(messages), - memo: memo, - }), - signatures: [new Uint8Array()], - }); - const request = service_1.SimulateRequest.fromPartial({ - txBytes: tx_1.Tx.encode(tx).finish(), - }); - const response = await queryService.Simulate(request); - return response; - }, - }, - }; -} -exports.setupTxExtension = setupTxExtension; -//# sourceMappingURL=queries.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/vesting/aminomessages.js": -/*!******************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/vesting/aminomessages.js ***! - \******************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.createVestingAminoConverters = exports.isAminoMsgCreateVestingAccount = void 0; -const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); -function isAminoMsgCreateVestingAccount(msg) { - return msg.type === "cosmos-sdk/MsgCreateVestingAccount"; -} -exports.isAminoMsgCreateVestingAccount = isAminoMsgCreateVestingAccount; -function createVestingAminoConverters() { - return { - "/cosmos.vesting.v1beta1.MsgCreateVestingAccount": { - aminoType: "cosmos-sdk/MsgCreateVestingAccount", - toAmino: ({ fromAddress, toAddress, amount, endTime, delayed, }) => ({ - from_address: fromAddress, - to_address: toAddress, - amount: [...amount], - end_time: endTime.toString(), - delayed: delayed, - }), - fromAmino: ({ from_address, to_address, amount, end_time, delayed, }) => ({ - fromAddress: from_address, - toAddress: to_address, - amount: [...amount], - endTime: long_1.default.fromString(end_time), - delayed: delayed, - }), - }, - }; -} -exports.createVestingAminoConverters = createVestingAminoConverters; -//# sourceMappingURL=aminomessages.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/modules/vesting/messages.js": -/*!*************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/modules/vesting/messages.js ***! - \*************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.vestingTypes = void 0; -const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/vesting/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/vesting/v1beta1/tx.js"); -exports.vestingTypes = [ - ["/cosmos.vesting.v1beta1.MsgCreateVestingAccount", tx_1.MsgCreateVestingAccount], -]; -//# sourceMappingURL=messages.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/multisignature.js": -/*!***************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/multisignature.js ***! - \***************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.makeMultisignedTxBytes = exports.makeMultisignedTx = exports.makeCompactBitArray = void 0; -const amino_1 = __webpack_require__(/*! @cosmjs/amino */ "./node_modules/@cosmjs/amino/build/index.js"); -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/index.js"); -const proto_signing_1 = __webpack_require__(/*! @cosmjs/proto-signing */ "./node_modules/@cosmjs/proto-signing/build/index.js"); -const multisig_1 = __webpack_require__(/*! cosmjs-types/cosmos/crypto/multisig/v1beta1/multisig */ "./node_modules/cosmjs-types/cosmos/crypto/multisig/v1beta1/multisig.js"); -const signing_1 = __webpack_require__(/*! cosmjs-types/cosmos/tx/signing/v1beta1/signing */ "./node_modules/cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"); -const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/tx/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/tx/v1beta1/tx.js"); -const tx_2 = __webpack_require__(/*! cosmjs-types/cosmos/tx/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/tx/v1beta1/tx.js"); -const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); -function makeCompactBitArray(bits) { - const byteCount = Math.ceil(bits.length / 8); - const extraBits = bits.length - Math.floor(bits.length / 8) * 8; - const bytes = new Uint8Array(byteCount); // zero-filled - bits.forEach((value, index) => { - const bytePos = Math.floor(index / 8); - const bitPos = index % 8; - // eslint-disable-next-line no-bitwise - if (value) - bytes[bytePos] |= 0b1 << (8 - 1 - bitPos); - }); - return multisig_1.CompactBitArray.fromPartial({ elems: bytes, extraBitsStored: extraBits }); -} -exports.makeCompactBitArray = makeCompactBitArray; -/** - * Creates a signed transaction from signer info, transaction body and signatures. - * The result can be broadcasted after serialization. - * - * Consider using `makeMultisignedTxBytes` instead if you want to broadcast the - * transaction immediately. - */ -function makeMultisignedTx(multisigPubkey, sequence, fee, bodyBytes, signatures) { - const addresses = Array.from(signatures.keys()); - const prefix = (0, encoding_1.fromBech32)(addresses[0]).prefix; - const signers = Array(multisigPubkey.value.pubkeys.length).fill(false); - const signaturesList = new Array(); - for (let i = 0; i < multisigPubkey.value.pubkeys.length; i++) { - const signerAddress = (0, amino_1.pubkeyToAddress)(multisigPubkey.value.pubkeys[i], prefix); - const signature = signatures.get(signerAddress); - if (signature) { - signers[i] = true; - signaturesList.push(signature); - } - } - const signerInfo = { - publicKey: (0, proto_signing_1.encodePubkey)(multisigPubkey), - modeInfo: { - multi: { - bitarray: makeCompactBitArray(signers), - modeInfos: signaturesList.map((_) => ({ single: { mode: signing_1.SignMode.SIGN_MODE_LEGACY_AMINO_JSON } })), - }, - }, - sequence: long_1.default.fromNumber(sequence), - }; - const authInfo = tx_1.AuthInfo.fromPartial({ - signerInfos: [signerInfo], - fee: { - amount: [...fee.amount], - gasLimit: long_1.default.fromString(fee.gas), - }, - }); - const authInfoBytes = tx_1.AuthInfo.encode(authInfo).finish(); - const signedTx = tx_2.TxRaw.fromPartial({ - bodyBytes: bodyBytes, - authInfoBytes: authInfoBytes, - signatures: [multisig_1.MultiSignature.encode(multisig_1.MultiSignature.fromPartial({ signatures: signaturesList })).finish()], - }); - return signedTx; -} -exports.makeMultisignedTx = makeMultisignedTx; -/** - * Creates a signed transaction from signer info, transaction body and signatures. - * The result can be broadcasted. - * - * This is a wrapper around `makeMultisignedTx` that encodes the transaction for broadcasting. - */ -function makeMultisignedTxBytes(multisigPubkey, sequence, fee, bodyBytes, signatures) { - const signedTx = makeMultisignedTx(multisigPubkey, sequence, fee, bodyBytes, signatures); - return Uint8Array.from(tx_2.TxRaw.encode(signedTx).finish()); -} -exports.makeMultisignedTxBytes = makeMultisignedTxBytes; -//# sourceMappingURL=multisignature.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/queryclient/index.js": -/*!******************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/queryclient/index.js ***! - \******************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.longify = exports.decodeCosmosSdkDecFromProto = exports.createProtobufRpcClient = exports.createPagination = exports.QueryClient = void 0; -var queryclient_1 = __webpack_require__(/*! ./queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/queryclient.js"); -Object.defineProperty(exports, "QueryClient", ({ enumerable: true, get: function () { return queryclient_1.QueryClient; } })); -var utils_1 = __webpack_require__(/*! ./utils */ "./node_modules/@cosmjs/stargate/build/queryclient/utils.js"); -Object.defineProperty(exports, "createPagination", ({ enumerable: true, get: function () { return utils_1.createPagination; } })); -Object.defineProperty(exports, "createProtobufRpcClient", ({ enumerable: true, get: function () { return utils_1.createProtobufRpcClient; } })); -Object.defineProperty(exports, "decodeCosmosSdkDecFromProto", ({ enumerable: true, get: function () { return utils_1.decodeCosmosSdkDecFromProto; } })); -Object.defineProperty(exports, "longify", ({ enumerable: true, get: function () { return utils_1.longify; } })); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/queryclient/queryclient.js": -/*!************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/queryclient/queryclient.js ***! - \************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.QueryClient = void 0; -/* eslint-disable no-dupe-class-members, @typescript-eslint/ban-types, @typescript-eslint/naming-convention */ -const ics23_1 = __webpack_require__(/*! @confio/ics23 */ "./node_modules/@confio/ics23/build/index.js"); -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/index.js"); -const stream_1 = __webpack_require__(/*! @cosmjs/stream */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/stream/build/index.js"); -const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/index.js"); -function checkAndParseOp(op, kind, key) { - if (op.type !== kind) { - throw new Error(`Op expected to be ${kind}, got "${op.type}`); - } - if (!(0, utils_1.arrayContentEquals)(key, op.key)) { - throw new Error(`Proven key different than queried key.\nQuery: ${(0, encoding_1.toHex)(key)}\nProven: ${(0, encoding_1.toHex)(op.key)}`); - } - return ics23_1.ics23.CommitmentProof.decode(op.data); -} -class QueryClient { - constructor(tmClient) { - this.tmClient = tmClient; - } - static withExtensions(tmClient, ...extensionSetups) { - const client = new QueryClient(tmClient); - const extensions = extensionSetups.map((setupExtension) => setupExtension(client)); - for (const extension of extensions) { - (0, utils_1.assert)((0, utils_1.isNonNullObject)(extension), `Extension must be a non-null object`); - for (const [moduleKey, moduleValue] of Object.entries(extension)) { - (0, utils_1.assert)((0, utils_1.isNonNullObject)(moduleValue), `Module must be a non-null object. Found type ${typeof moduleValue} for module "${moduleKey}".`); - const current = client[moduleKey] || {}; - client[moduleKey] = { - ...current, - ...moduleValue, - }; - } - } - return client; - } - /** - * @deprecated use queryStoreVerified instead - */ - async queryVerified(store, queryKey, desiredHeight) { - const { value } = await this.queryStoreVerified(store, queryKey, desiredHeight); - return value; - } - /** - * Queries the database store with a proof, which is then verified. - * - * Please note: the current implementation trusts block headers it gets from the PRC endpoint. - */ - async queryStoreVerified(store, queryKey, desiredHeight) { - const { height, proof, key, value } = await this.queryRawProof(store, queryKey, desiredHeight); - const subProof = checkAndParseOp(proof.ops[0], "ics23:iavl", queryKey); - const storeProof = checkAndParseOp(proof.ops[1], "ics23:simple", (0, encoding_1.toAscii)(store)); - // this must always be existence, if the store is not a typo - (0, utils_1.assert)(storeProof.exist); - (0, utils_1.assert)(storeProof.exist.value); - // this may be exist or non-exist, depends on response - if (!value || value.length === 0) { - // non-existence check - (0, utils_1.assert)(subProof.nonexist); - // the subproof must map the desired key to the "value" of the storeProof - (0, ics23_1.verifyNonExistence)(subProof.nonexist, ics23_1.iavlSpec, storeProof.exist.value, queryKey); - } - else { - // existence check - (0, utils_1.assert)(subProof.exist); - (0, utils_1.assert)(subProof.exist.value); - // the subproof must map the desired key to the "value" of the storeProof - (0, ics23_1.verifyExistence)(subProof.exist, ics23_1.iavlSpec, storeProof.exist.value, queryKey, value); - } - // the store proof must map its declared value (root of subProof) to the appHash of the next block - const header = await this.getNextHeader(height); - (0, ics23_1.verifyExistence)(storeProof.exist, ics23_1.tendermintSpec, header.appHash, (0, encoding_1.toAscii)(store), storeProof.exist.value); - return { key, value, height }; - } - async queryRawProof(store, queryKey, desiredHeight) { - const { key, value, height, proof, code, log } = await this.tmClient.abciQuery({ - // we need the StoreKey for the module, not the module name - // https://github.com/cosmos/cosmos-sdk/blob/8cab43c8120fec5200c3459cbf4a92017bb6f287/x/auth/types/keys.go#L12 - path: `/store/${store}/key`, - data: queryKey, - prove: true, - height: desiredHeight, - }); - if (code) { - throw new Error(`Query failed with (${code}): ${log}`); - } - if (!(0, utils_1.arrayContentEquals)(queryKey, key)) { - throw new Error(`Response key ${(0, encoding_1.toHex)(key)} doesn't match query key ${(0, encoding_1.toHex)(queryKey)}`); - } - if (!height) { - throw new Error("No query height returned"); - } - if (!proof || proof.ops.length !== 2) { - throw new Error(`Expected 2 proof ops, got ${proof?.ops.length ?? 0}. Are you using stargate?`); - } - // we don't need the results, but we can ensure the data is the proper format - checkAndParseOp(proof.ops[0], "ics23:iavl", key); - checkAndParseOp(proof.ops[1], "ics23:simple", (0, encoding_1.toAscii)(store)); - return { - key: key, - value: value, - height: height, - // need to clone this: readonly input / writeable output - proof: { - ops: [...proof.ops], - }, - }; - } - /** - * Performs an ABCI query to Tendermint without requesting a proof. - * - * @deprecated use queryAbci instead - */ - async queryUnverified(path, request, desiredHeight) { - const response = await this.queryAbci(path, request, desiredHeight); - return response.value; - } - /** - * Performs an ABCI query to Tendermint without requesting a proof. - * - * If the `desiredHeight` is set, a particular height is requested. Otherwise - * the latest height is requested. The response contains the actual height of - * the query. - */ - async queryAbci(path, request, desiredHeight) { - const response = await this.tmClient.abciQuery({ - path: path, - data: request, - prove: false, - height: desiredHeight, - }); - if (response.code) { - throw new Error(`Query failed with (${response.code}): ${response.log}`); - } - if (!response.height) { - throw new Error("No query height returned"); - } - return { - value: response.value, - height: response.height, - }; - } - // this must return the header for height+1 - // throws an error if height is 0 or undefined - async getNextHeader(height) { - (0, utils_1.assertDefined)(height); - if (height === 0) { - throw new Error("Query returned height 0, cannot prove it"); - } - const searchHeight = height + 1; - let nextHeader; - let headersSubscription; - try { - headersSubscription = this.tmClient.subscribeNewBlockHeader(); - } - catch { - // Ignore exception caused by non-WebSocket Tendermint clients - } - if (headersSubscription) { - const firstHeader = await (0, stream_1.firstEvent)(headersSubscription); - // The first header we get might not be n+1 but n+2 or even higher. In such cases we fall back on a query. - if (firstHeader.height === searchHeight) { - nextHeader = firstHeader; - } - } - while (!nextHeader) { - // start from current height to avoid backend error for minHeight in the future - const correctHeader = (await this.tmClient.blockchain(height, searchHeight)).blockMetas - .map((meta) => meta.header) - .find((h) => h.height === searchHeight); - if (correctHeader) { - nextHeader = correctHeader; - } - else { - await (0, utils_1.sleep)(1000); - } - } - (0, utils_1.assert)(nextHeader.height === searchHeight, "Got wrong header. This is a bug in the logic above."); - return nextHeader; - } -} -exports.QueryClient = QueryClient; -//# sourceMappingURL=queryclient.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/queryclient/utils.js": -/*!******************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/queryclient/utils.js ***! - \******************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.decodeCosmosSdkDecFromProto = exports.longify = exports.createProtobufRpcClient = exports.createPagination = exports.toAccAddress = void 0; -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/index.js"); -const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/math/build/index.js"); -const pagination_1 = __webpack_require__(/*! cosmjs-types/cosmos/base/query/v1beta1/pagination */ "./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js"); -const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); -/** - * Takes a bech32 encoded address and returns the data part. The prefix is ignored and discarded. - * This is called AccAddress in Cosmos SDK, which is basically an alias for raw binary data. - * The result is typically 20 bytes long but not restricted to that. - */ -function toAccAddress(address) { - return (0, encoding_1.fromBech32)(address).data; -} -exports.toAccAddress = toAccAddress; -/** - * If paginationKey is set, return a `PageRequest` with the given key. - * If paginationKey is unset, return `undefined`. - * - * Use this with a query response's pagination next key to - * request the next page. - */ -function createPagination(paginationKey) { - return paginationKey ? pagination_1.PageRequest.fromPartial({ key: paginationKey }) : undefined; -} -exports.createPagination = createPagination; -function createProtobufRpcClient(base) { - return { - request: async (service, method, data) => { - const path = `/${service}/${method}`; - const response = await base.queryAbci(path, data, undefined); - return response.value; - }, - }; -} -exports.createProtobufRpcClient = createProtobufRpcClient; -/** - * Takes a uint64 value as string, number, Long or Uint64 and returns an unsigned Long instance - * of it. - */ -function longify(value) { - const checkedValue = math_1.Uint64.fromString(value.toString()); - return long_1.default.fromBytesBE([...checkedValue.toBytesBigEndian()], true); -} -exports.longify = longify; -/** - * Takes a string or binary encoded `github.com/cosmos/cosmos-sdk/types.Dec` from the - * protobuf API and converts it into a `Decimal` with 18 fractional digits. - * - * See https://github.com/cosmos/cosmos-sdk/issues/10863 for more context why this is needed. - */ -function decodeCosmosSdkDecFromProto(input) { - const asString = typeof input === "string" ? input : (0, encoding_1.fromAscii)(input); - return math_1.Decimal.fromAtomics(asString, 18); -} -exports.decodeCosmosSdkDecFromProto = decodeCosmosSdkDecFromProto; -//# sourceMappingURL=utils.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/search.js": -/*!*******************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/search.js ***! - \*******************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isSearchByTagsQuery = exports.isSearchBySentFromOrToQuery = exports.isSearchByHeightQuery = void 0; -function isSearchByHeightQuery(query) { - return query.height !== undefined; -} -exports.isSearchByHeightQuery = isSearchByHeightQuery; -function isSearchBySentFromOrToQuery(query) { - return query.sentFromOrTo !== undefined; -} -exports.isSearchBySentFromOrToQuery = isSearchBySentFromOrToQuery; -function isSearchByTagsQuery(query) { - return query.tags !== undefined; -} -exports.isSearchByTagsQuery = isSearchByTagsQuery; -//# sourceMappingURL=search.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/signingstargateclient.js": -/*!**********************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/signingstargateclient.js ***! - \**********************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.SigningStargateClient = exports.createDefaultAminoConverters = exports.defaultRegistryTypes = void 0; -const amino_1 = __webpack_require__(/*! @cosmjs/amino */ "./node_modules/@cosmjs/amino/build/index.js"); -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/index.js"); -const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/math/build/index.js"); -const proto_signing_1 = __webpack_require__(/*! @cosmjs/proto-signing */ "./node_modules/@cosmjs/proto-signing/build/index.js"); -const tendermint_rpc_1 = __webpack_require__(/*! @cosmjs/tendermint-rpc */ "./node_modules/@cosmjs/tendermint-rpc/build/index.js"); -const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/index.js"); -const coin_1 = __webpack_require__(/*! cosmjs-types/cosmos/base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); -const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/distribution/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/distribution/v1beta1/tx.js"); -const tx_2 = __webpack_require__(/*! cosmjs-types/cosmos/staking/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/staking/v1beta1/tx.js"); -const signing_1 = __webpack_require__(/*! cosmjs-types/cosmos/tx/signing/v1beta1/signing */ "./node_modules/cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"); -const tx_3 = __webpack_require__(/*! cosmjs-types/cosmos/tx/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/tx/v1beta1/tx.js"); -const tx_4 = __webpack_require__(/*! cosmjs-types/ibc/applications/transfer/v1/tx */ "./node_modules/cosmjs-types/ibc/applications/transfer/v1/tx.js"); -const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); -const aminotypes_1 = __webpack_require__(/*! ./aminotypes */ "./node_modules/@cosmjs/stargate/build/aminotypes.js"); -const fee_1 = __webpack_require__(/*! ./fee */ "./node_modules/@cosmjs/stargate/build/fee.js"); -const modules_1 = __webpack_require__(/*! ./modules */ "./node_modules/@cosmjs/stargate/build/modules/index.js"); -const modules_2 = __webpack_require__(/*! ./modules */ "./node_modules/@cosmjs/stargate/build/modules/index.js"); -const stargateclient_1 = __webpack_require__(/*! ./stargateclient */ "./node_modules/@cosmjs/stargate/build/stargateclient.js"); -exports.defaultRegistryTypes = [ - ["/cosmos.base.v1beta1.Coin", coin_1.Coin], - ...modules_1.authzTypes, - ...modules_1.bankTypes, - ...modules_1.distributionTypes, - ...modules_1.feegrantTypes, - ...modules_1.govTypes, - ...modules_1.stakingTypes, - ...modules_1.ibcTypes, - ...modules_1.vestingTypes, -]; -function createDefaultAminoConverters() { - return { - ...(0, modules_2.createAuthzAminoConverters)(), - ...(0, modules_2.createBankAminoConverters)(), - ...(0, modules_2.createDistributionAminoConverters)(), - ...(0, modules_2.createGovAminoConverters)(), - ...(0, modules_2.createStakingAminoConverters)(), - ...(0, modules_2.createIbcAminoConverters)(), - ...(0, modules_2.createFeegrantAminoConverters)(), - ...(0, modules_2.createVestingAminoConverters)(), - }; -} -exports.createDefaultAminoConverters = createDefaultAminoConverters; -class SigningStargateClient extends stargateclient_1.StargateClient { - constructor(tmClient, signer, options) { - super(tmClient, options); - const { registry = new proto_signing_1.Registry(exports.defaultRegistryTypes), aminoTypes = new aminotypes_1.AminoTypes(createDefaultAminoConverters()), } = options; - this.registry = registry; - this.aminoTypes = aminoTypes; - this.signer = signer; - this.broadcastTimeoutMs = options.broadcastTimeoutMs; - this.broadcastPollIntervalMs = options.broadcastPollIntervalMs; - this.gasPrice = options.gasPrice; - } - /** - * Creates an instance by connecting to the given Tendermint RPC endpoint. - * - * For now this uses the Tendermint 0.34 client. If you need Tendermint 0.37 - * support, see `createWithSigner`. - */ - static async connectWithSigner(endpoint, signer, options = {}) { - const tmClient = await tendermint_rpc_1.Tendermint34Client.connect(endpoint); - return SigningStargateClient.createWithSigner(tmClient, signer, options); - } - /** - * Creates an instance from a manually created Tendermint client. - * Use this to use `Tendermint37Client` instead of `Tendermint34Client`. - */ - static async createWithSigner(tmClient, signer, options = {}) { - return new SigningStargateClient(tmClient, signer, options); - } - /** - * Creates a client in offline mode. - * - * This should only be used in niche cases where you know exactly what you're doing, - * e.g. when building an offline signing application. - * - * When you try to use online functionality with such a signer, an - * exception will be raised. - */ - static async offline(signer, options = {}) { - return new SigningStargateClient(undefined, signer, options); - } - async simulate(signerAddress, messages, memo) { - const anyMsgs = messages.map((m) => this.registry.encodeAsAny(m)); - const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress); - if (!accountFromSigner) { - throw new Error("Failed to retrieve account from signer"); - } - const pubkey = (0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey); - const { sequence } = await this.getSequence(signerAddress); - const { gasInfo } = await this.forceGetQueryClient().tx.simulate(anyMsgs, memo, pubkey, sequence); - (0, utils_1.assertDefined)(gasInfo); - return math_1.Uint53.fromString(gasInfo.gasUsed.toString()).toNumber(); - } - async sendTokens(senderAddress, recipientAddress, amount, fee, memo = "") { - const sendMsg = { - typeUrl: "/cosmos.bank.v1beta1.MsgSend", - value: { - fromAddress: senderAddress, - toAddress: recipientAddress, - amount: [...amount], - }, - }; - return this.signAndBroadcast(senderAddress, [sendMsg], fee, memo); - } - async delegateTokens(delegatorAddress, validatorAddress, amount, fee, memo = "") { - const delegateMsg = { - typeUrl: "/cosmos.staking.v1beta1.MsgDelegate", - value: tx_2.MsgDelegate.fromPartial({ - delegatorAddress: delegatorAddress, - validatorAddress: validatorAddress, - amount: amount, - }), - }; - return this.signAndBroadcast(delegatorAddress, [delegateMsg], fee, memo); - } - async undelegateTokens(delegatorAddress, validatorAddress, amount, fee, memo = "") { - const undelegateMsg = { - typeUrl: "/cosmos.staking.v1beta1.MsgUndelegate", - value: tx_2.MsgUndelegate.fromPartial({ - delegatorAddress: delegatorAddress, - validatorAddress: validatorAddress, - amount: amount, - }), - }; - return this.signAndBroadcast(delegatorAddress, [undelegateMsg], fee, memo); - } - async withdrawRewards(delegatorAddress, validatorAddress, fee, memo = "") { - const withdrawMsg = { - typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward", - value: tx_1.MsgWithdrawDelegatorReward.fromPartial({ - delegatorAddress: delegatorAddress, - validatorAddress: validatorAddress, - }), - }; - return this.signAndBroadcast(delegatorAddress, [withdrawMsg], fee, memo); - } - async sendIbcTokens(senderAddress, recipientAddress, transferAmount, sourcePort, sourceChannel, timeoutHeight, - /** timeout in seconds */ - timeoutTimestamp, fee, memo = "") { - const timeoutTimestampNanoseconds = timeoutTimestamp - ? long_1.default.fromNumber(timeoutTimestamp).multiply(1000000000) - : undefined; - const transferMsg = { - typeUrl: "/ibc.applications.transfer.v1.MsgTransfer", - value: tx_4.MsgTransfer.fromPartial({ - sourcePort: sourcePort, - sourceChannel: sourceChannel, - sender: senderAddress, - receiver: recipientAddress, - token: transferAmount, - timeoutHeight: timeoutHeight, - timeoutTimestamp: timeoutTimestampNanoseconds, - }), - }; - return this.signAndBroadcast(senderAddress, [transferMsg], fee, memo); - } - async signAndBroadcast(signerAddress, messages, fee, memo = "") { - let usedFee; - if (fee == "auto" || typeof fee === "number") { - (0, utils_1.assertDefined)(this.gasPrice, "Gas price must be set in the client options when auto gas is used."); - const gasEstimation = await this.simulate(signerAddress, messages, memo); - const multiplier = typeof fee === "number" ? fee : 1.3; - usedFee = (0, fee_1.calculateFee)(Math.round(gasEstimation * multiplier), this.gasPrice); - } - else { - usedFee = fee; - } - const txRaw = await this.sign(signerAddress, messages, usedFee, memo); - const txBytes = tx_3.TxRaw.encode(txRaw).finish(); - return this.broadcastTx(txBytes, this.broadcastTimeoutMs, this.broadcastPollIntervalMs); - } - /** - * Gets account number and sequence from the API, creates a sign doc, - * creates a single signature and assembles the signed transaction. - * - * The sign mode (SIGN_MODE_DIRECT or SIGN_MODE_LEGACY_AMINO_JSON) is determined by this client's signer. - * - * You can pass signer data (account number, sequence and chain ID) explicitly instead of querying them - * from the chain. This is needed when signing for a multisig account, but it also allows for offline signing - * (See the SigningStargateClient.offline constructor). - */ - async sign(signerAddress, messages, fee, memo, explicitSignerData) { - let signerData; - if (explicitSignerData) { - signerData = explicitSignerData; - } - else { - const { accountNumber, sequence } = await this.getSequence(signerAddress); - const chainId = await this.getChainId(); - signerData = { - accountNumber: accountNumber, - sequence: sequence, - chainId: chainId, - }; - } - return (0, proto_signing_1.isOfflineDirectSigner)(this.signer) - ? this.signDirect(signerAddress, messages, fee, memo, signerData) - : this.signAmino(signerAddress, messages, fee, memo, signerData); - } - async signAmino(signerAddress, messages, fee, memo, { accountNumber, sequence, chainId }) { - (0, utils_1.assert)(!(0, proto_signing_1.isOfflineDirectSigner)(this.signer)); - const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress); - if (!accountFromSigner) { - throw new Error("Failed to retrieve account from signer"); - } - const pubkey = (0, proto_signing_1.encodePubkey)((0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey)); - const signMode = signing_1.SignMode.SIGN_MODE_LEGACY_AMINO_JSON; - const msgs = messages.map((msg) => this.aminoTypes.toAmino(msg)); - const signDoc = (0, amino_1.makeSignDoc)(msgs, fee, chainId, memo, accountNumber, sequence); - const { signature, signed } = await this.signer.signAmino(signerAddress, signDoc); - const signedTxBody = { - messages: signed.msgs.map((msg) => this.aminoTypes.fromAmino(msg)), - memo: signed.memo, - }; - const signedTxBodyEncodeObject = { - typeUrl: "/cosmos.tx.v1beta1.TxBody", - value: signedTxBody, - }; - const signedTxBodyBytes = this.registry.encode(signedTxBodyEncodeObject); - const signedGasLimit = math_1.Int53.fromString(signed.fee.gas).toNumber(); - const signedSequence = math_1.Int53.fromString(signed.sequence).toNumber(); - const signedAuthInfoBytes = (0, proto_signing_1.makeAuthInfoBytes)([{ pubkey, sequence: signedSequence }], signed.fee.amount, signedGasLimit, signed.fee.granter, signed.fee.payer, signMode); - return tx_3.TxRaw.fromPartial({ - bodyBytes: signedTxBodyBytes, - authInfoBytes: signedAuthInfoBytes, - signatures: [(0, encoding_1.fromBase64)(signature.signature)], - }); - } - async signDirect(signerAddress, messages, fee, memo, { accountNumber, sequence, chainId }) { - (0, utils_1.assert)((0, proto_signing_1.isOfflineDirectSigner)(this.signer)); - const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress); - if (!accountFromSigner) { - throw new Error("Failed to retrieve account from signer"); - } - const pubkey = (0, proto_signing_1.encodePubkey)((0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey)); - const txBodyEncodeObject = { - typeUrl: "/cosmos.tx.v1beta1.TxBody", - value: { - messages: messages, - memo: memo, - }, - }; - const txBodyBytes = this.registry.encode(txBodyEncodeObject); - const gasLimit = math_1.Int53.fromString(fee.gas).toNumber(); - const authInfoBytes = (0, proto_signing_1.makeAuthInfoBytes)([{ pubkey, sequence }], fee.amount, gasLimit, fee.granter, fee.payer); - const signDoc = (0, proto_signing_1.makeSignDoc)(txBodyBytes, authInfoBytes, chainId, accountNumber); - const { signature, signed } = await this.signer.signDirect(signerAddress, signDoc); - return tx_3.TxRaw.fromPartial({ - bodyBytes: signed.bodyBytes, - authInfoBytes: signed.authInfoBytes, - signatures: [(0, encoding_1.fromBase64)(signature.signature)], - }); - } -} -exports.SigningStargateClient = SigningStargateClient; -//# sourceMappingURL=signingstargateclient.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/build/stargateclient.js": -/*!***************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/build/stargateclient.js ***! - \***************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.StargateClient = exports.BroadcastTxError = exports.assertIsDeliverTxFailure = exports.assertIsDeliverTxSuccess = exports.isDeliverTxSuccess = exports.isDeliverTxFailure = exports.TimeoutError = void 0; -/* eslint-disable @typescript-eslint/naming-convention */ -const amino_1 = __webpack_require__(/*! @cosmjs/amino */ "./node_modules/@cosmjs/amino/build/index.js"); -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/index.js"); -const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/math/build/index.js"); -const tendermint_rpc_1 = __webpack_require__(/*! @cosmjs/tendermint-rpc */ "./node_modules/@cosmjs/tendermint-rpc/build/index.js"); -const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/index.js"); -const accounts_1 = __webpack_require__(/*! ./accounts */ "./node_modules/@cosmjs/stargate/build/accounts.js"); -const events_1 = __webpack_require__(/*! ./events */ "./node_modules/@cosmjs/stargate/build/events.js"); -const modules_1 = __webpack_require__(/*! ./modules */ "./node_modules/@cosmjs/stargate/build/modules/index.js"); -const queryclient_1 = __webpack_require__(/*! ./queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); -const search_1 = __webpack_require__(/*! ./search */ "./node_modules/@cosmjs/stargate/build/search.js"); -class TimeoutError extends Error { - constructor(message, txId) { - super(message); - this.txId = txId; - } -} -exports.TimeoutError = TimeoutError; -function isDeliverTxFailure(result) { - return !!result.code; -} -exports.isDeliverTxFailure = isDeliverTxFailure; -function isDeliverTxSuccess(result) { - return !isDeliverTxFailure(result); -} -exports.isDeliverTxSuccess = isDeliverTxSuccess; -/** - * Ensures the given result is a success. Throws a detailed error message otherwise. - */ -function assertIsDeliverTxSuccess(result) { - if (isDeliverTxFailure(result)) { - throw new Error(`Error when broadcasting tx ${result.transactionHash} at height ${result.height}. Code: ${result.code}; Raw log: ${result.rawLog}`); - } -} -exports.assertIsDeliverTxSuccess = assertIsDeliverTxSuccess; -/** - * Ensures the given result is a failure. Throws a detailed error message otherwise. - */ -function assertIsDeliverTxFailure(result) { - if (isDeliverTxSuccess(result)) { - throw new Error(`Transaction ${result.transactionHash} did not fail at height ${result.height}. Code: ${result.code}; Raw log: ${result.rawLog}`); - } -} -exports.assertIsDeliverTxFailure = assertIsDeliverTxFailure; -/** - * An error when broadcasting the transaction. This contains the CheckTx errors - * from the blockchain. Once a transaction is included in a block no BroadcastTxError - * is thrown, even if the execution fails (DeliverTx errors). - */ -class BroadcastTxError extends Error { - constructor(code, codespace, log) { - super(`Broadcasting transaction failed with code ${code} (codespace: ${codespace}). Log: ${log}`); - this.code = code; - this.codespace = codespace; - this.log = log; - } -} -exports.BroadcastTxError = BroadcastTxError; -class StargateClient { - constructor(tmClient, options) { - if (tmClient) { - this.tmClient = tmClient; - this.queryClient = queryclient_1.QueryClient.withExtensions(tmClient, modules_1.setupAuthExtension, modules_1.setupBankExtension, modules_1.setupStakingExtension, modules_1.setupTxExtension); - } - const { accountParser = accounts_1.accountFromAny } = options; - this.accountParser = accountParser; - } - /** - * Creates an instance by connecting to the given Tendermint RPC endpoint. - * - * For now this uses the Tendermint 0.34 client. If you need Tendermint 0.37 - * support, see `create`. - */ - static async connect(endpoint, options = {}) { - const tmClient = await tendermint_rpc_1.Tendermint34Client.connect(endpoint); - return StargateClient.create(tmClient, options); - } - /** - * Creates an instance from a manually created Tendermint client. - * Use this to use `Tendermint37Client` instead of `Tendermint34Client`. - */ - static async create(tmClient, options = {}) { - return new StargateClient(tmClient, options); - } - getTmClient() { - return this.tmClient; - } - forceGetTmClient() { - if (!this.tmClient) { - throw new Error("Tendermint client not available. You cannot use online functionality in offline mode."); - } - return this.tmClient; - } - getQueryClient() { - return this.queryClient; - } - forceGetQueryClient() { - if (!this.queryClient) { - throw new Error("Query client not available. You cannot use online functionality in offline mode."); - } - return this.queryClient; - } - async getChainId() { - if (!this.chainId) { - const response = await this.forceGetTmClient().status(); - const chainId = response.nodeInfo.network; - if (!chainId) - throw new Error("Chain ID must not be empty"); - this.chainId = chainId; - } - return this.chainId; - } - async getHeight() { - const status = await this.forceGetTmClient().status(); - return status.syncInfo.latestBlockHeight; - } - async getAccount(searchAddress) { - try { - const account = await this.forceGetQueryClient().auth.account(searchAddress); - return account ? this.accountParser(account) : null; - } - catch (error) { - if (/rpc error: code = NotFound/i.test(error.toString())) { - return null; - } - throw error; - } - } - async getSequence(address) { - const account = await this.getAccount(address); - if (!account) { - throw new Error(`Account '${address}' does not exist on chain. Send some tokens there before trying to query sequence.`); - } - return { - accountNumber: account.accountNumber, - sequence: account.sequence, - }; - } - async getBlock(height) { - const response = await this.forceGetTmClient().block(height); - return { - id: (0, encoding_1.toHex)(response.blockId.hash).toUpperCase(), - header: { - version: { - block: new math_1.Uint53(response.block.header.version.block).toString(), - app: new math_1.Uint53(response.block.header.version.app).toString(), - }, - height: response.block.header.height, - chainId: response.block.header.chainId, - time: (0, tendermint_rpc_1.toRfc3339WithNanoseconds)(response.block.header.time), - }, - txs: response.block.txs, - }; - } - async getBalance(address, searchDenom) { - return this.forceGetQueryClient().bank.balance(address, searchDenom); - } - /** - * Queries all balances for all denoms that belong to this address. - * - * Uses the grpc queries (which iterates over the store internally), and we cannot get - * proofs from such a method. - */ - async getAllBalances(address) { - return this.forceGetQueryClient().bank.allBalances(address); - } - async getBalanceStaked(address) { - const allDelegations = []; - let startAtKey = undefined; - do { - const { delegationResponses, pagination } = await this.forceGetQueryClient().staking.delegatorDelegations(address, startAtKey); - const loadedDelegations = delegationResponses || []; - allDelegations.push(...loadedDelegations); - startAtKey = pagination?.nextKey; - } while (startAtKey !== undefined && startAtKey.length !== 0); - const sumValues = allDelegations.reduce((previousValue, currentValue) => { - // Safe because field is set to non-nullable (https://github.com/cosmos/cosmos-sdk/blob/v0.45.3/proto/cosmos/staking/v1beta1/staking.proto#L295) - (0, utils_1.assert)(currentValue.balance); - return previousValue !== null ? (0, amino_1.addCoins)(previousValue, currentValue.balance) : currentValue.balance; - }, null); - return sumValues; - } - async getDelegation(delegatorAddress, validatorAddress) { - let delegatedAmount; - try { - delegatedAmount = (await this.forceGetQueryClient().staking.delegation(delegatorAddress, validatorAddress)).delegationResponse?.balance; - } - catch (e) { - if (e.toString().includes("key not found")) { - // ignore, `delegatedAmount` remains undefined - } - else { - throw e; - } - } - return delegatedAmount || null; - } - async getTx(id) { - const results = await this.txsQuery(`tx.hash='${id}'`); - return results[0] ?? null; - } - async searchTx(query, filter = {}) { - const minHeight = filter.minHeight || 0; - const maxHeight = filter.maxHeight || Number.MAX_SAFE_INTEGER; - if (maxHeight < minHeight) - return []; // optional optimization - function withFilters(originalQuery) { - return `${originalQuery} AND tx.height>=${minHeight} AND tx.height<=${maxHeight}`; - } - let txs; - if ((0, search_1.isSearchByHeightQuery)(query)) { - txs = - query.height >= minHeight && query.height <= maxHeight - ? await this.txsQuery(`tx.height=${query.height}`) - : []; - } - else if ((0, search_1.isSearchBySentFromOrToQuery)(query)) { - const sentQuery = withFilters(`message.module='bank' AND transfer.sender='${query.sentFromOrTo}'`); - const receivedQuery = withFilters(`message.module='bank' AND transfer.recipient='${query.sentFromOrTo}'`); - const [sent, received] = await Promise.all([sentQuery, receivedQuery].map((rawQuery) => this.txsQuery(rawQuery))); - const sentHashes = sent.map((t) => t.hash); - txs = [...sent, ...received.filter((t) => !sentHashes.includes(t.hash))]; - } - else if ((0, search_1.isSearchByTagsQuery)(query)) { - const rawQuery = withFilters(query.tags.map((t) => `${t.key}='${t.value}'`).join(" AND ")); - txs = await this.txsQuery(rawQuery); - } - else { - throw new Error("Unknown query type"); - } - const filtered = txs.filter((tx) => tx.height >= minHeight && tx.height <= maxHeight); - return filtered; - } - disconnect() { - if (this.tmClient) - this.tmClient.disconnect(); - } - /** - * Broadcasts a signed transaction to the network and monitors its inclusion in a block. - * - * If broadcasting is rejected by the node for some reason (e.g. because of a CheckTx failure), - * an error is thrown. - * - * If the transaction is not included in a block before the provided timeout, this errors with a `TimeoutError`. - * - * If the transaction is included in a block, a `DeliverTxResponse` is returned. The caller then - * usually needs to check for execution success or failure. - */ - async broadcastTx(tx, timeoutMs = 60000, pollIntervalMs = 3000) { - let timedOut = false; - const txPollTimeout = setTimeout(() => { - timedOut = true; - }, timeoutMs); - const pollForTx = async (txId) => { - if (timedOut) { - throw new TimeoutError(`Transaction with ID ${txId} was submitted but was not yet found on the chain. You might want to check later. There was a wait of ${timeoutMs / 1000} seconds.`, txId); - } - await (0, utils_1.sleep)(pollIntervalMs); - const result = await this.getTx(txId); - return result - ? { - code: result.code, - height: result.height, - txIndex: result.txIndex, - events: result.events, - rawLog: result.rawLog, - transactionHash: txId, - gasUsed: result.gasUsed, - gasWanted: result.gasWanted, - } - : pollForTx(txId); - }; - const broadcasted = await this.forceGetTmClient().broadcastTxSync({ tx }); - if (broadcasted.code) { - return Promise.reject(new BroadcastTxError(broadcasted.code, broadcasted.codespace ?? "", broadcasted.log)); - } - const transactionId = (0, encoding_1.toHex)(broadcasted.hash).toUpperCase(); - return new Promise((resolve, reject) => pollForTx(transactionId).then((value) => { - clearTimeout(txPollTimeout); - resolve(value); - }, (error) => { - clearTimeout(txPollTimeout); - reject(error); - })); - } - async txsQuery(query) { - const results = await this.forceGetTmClient().txSearchAll({ query: query }); - return results.txs.map((tx) => { - return { - height: tx.height, - txIndex: tx.index, - hash: (0, encoding_1.toHex)(tx.hash).toUpperCase(), - code: tx.result.code, - events: tx.result.events.map(events_1.fromTendermintEvent), - rawLog: tx.result.log || "", - tx: tx.tx, - gasUsed: tx.result.gasUsed, - gasWanted: tx.result.gasWanted, - }; - }); - } -} -exports.StargateClient = StargateClient; -//# sourceMappingURL=stargateclient.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/ascii.js": -/*!************************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/ascii.js ***! - \************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromAscii = exports.toAscii = void 0; -function toAscii(input) { - const toNums = (str) => str.split("").map((x) => { - const charCode = x.charCodeAt(0); - // 0x00–0x1F control characters - // 0x20–0x7E printable characters - // 0x7F delete character - // 0x80–0xFF out of 7 bit ascii range - if (charCode < 0x20 || charCode > 0x7e) { - throw new Error("Cannot encode character that is out of printable ASCII range: " + charCode); - } - return charCode; - }); - return Uint8Array.from(toNums(input)); -} -exports.toAscii = toAscii; -function fromAscii(data) { - const fromNums = (listOfNumbers) => listOfNumbers.map((x) => { - // 0x00–0x1F control characters - // 0x20–0x7E printable characters - // 0x7F delete character - // 0x80–0xFF out of 7 bit ascii range - if (x < 0x20 || x > 0x7e) { - throw new Error("Cannot decode character that is out of printable ASCII range: " + x); - } - return String.fromCharCode(x); - }); - return fromNums(Array.from(data)).join(""); -} -exports.fromAscii = fromAscii; -//# sourceMappingURL=ascii.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/base64.js": -/*!*************************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/base64.js ***! - \*************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromBase64 = exports.toBase64 = void 0; -const base64js = __importStar(__webpack_require__(/*! base64-js */ "./node_modules/base64-js/index.js")); -function toBase64(data) { - return base64js.fromByteArray(data); -} -exports.toBase64 = toBase64; -function fromBase64(base64String) { - if (!base64String.match(/^[a-zA-Z0-9+/]*={0,2}$/)) { - throw new Error("Invalid base64 string format"); - } - return base64js.toByteArray(base64String); -} -exports.fromBase64 = fromBase64; -//# sourceMappingURL=base64.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/bech32.js": -/*!*************************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/bech32.js ***! - \*************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.normalizeBech32 = exports.fromBech32 = exports.toBech32 = void 0; -const bech32 = __importStar(__webpack_require__(/*! bech32 */ "./node_modules/bech32/index.js")); -function toBech32(prefix, data, limit) { - const address = bech32.encode(prefix, bech32.toWords(data), limit); - return address; -} -exports.toBech32 = toBech32; -function fromBech32(address, limit = Infinity) { - const decodedAddress = bech32.decode(address, limit); - return { - prefix: decodedAddress.prefix, - data: new Uint8Array(bech32.fromWords(decodedAddress.words)), - }; -} -exports.fromBech32 = fromBech32; -/** - * Takes a bech32 address and returns a normalized (i.e. lower case) representation of it. - * - * The input is validated along the way, which makes this significantly safer than - * using `address.toLowerCase()`. - */ -function normalizeBech32(address) { - const { prefix, data } = fromBech32(address); - return toBech32(prefix, data); -} -exports.normalizeBech32 = normalizeBech32; -//# sourceMappingURL=bech32.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/hex.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/hex.js ***! - \**********************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromHex = exports.toHex = void 0; -function toHex(data) { - let out = ""; - for (const byte of data) { - out += ("0" + byte.toString(16)).slice(-2); - } - return out; -} -exports.toHex = toHex; -function fromHex(hexstring) { - if (hexstring.length % 2 !== 0) { - throw new Error("hex string length must be a multiple of 2"); - } - const out = new Uint8Array(hexstring.length / 2); - for (let i = 0; i < out.length; i++) { - const j = 2 * i; - const hexByteAsString = hexstring.slice(j, j + 2); - if (!hexByteAsString.match(/[0-9a-f]{2}/i)) { - throw new Error("hex string contains invalid characters"); - } - out[i] = parseInt(hexByteAsString, 16); - } - return out; -} -exports.fromHex = fromHex; -//# sourceMappingURL=hex.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/index.js": -/*!************************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/index.js ***! - \************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toUtf8 = exports.fromUtf8 = exports.toRfc3339 = exports.fromRfc3339 = exports.toHex = exports.fromHex = exports.toBech32 = exports.normalizeBech32 = exports.fromBech32 = exports.toBase64 = exports.fromBase64 = exports.toAscii = exports.fromAscii = void 0; -var ascii_1 = __webpack_require__(/*! ./ascii */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/ascii.js"); -Object.defineProperty(exports, "fromAscii", ({ enumerable: true, get: function () { return ascii_1.fromAscii; } })); -Object.defineProperty(exports, "toAscii", ({ enumerable: true, get: function () { return ascii_1.toAscii; } })); -var base64_1 = __webpack_require__(/*! ./base64 */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/base64.js"); -Object.defineProperty(exports, "fromBase64", ({ enumerable: true, get: function () { return base64_1.fromBase64; } })); -Object.defineProperty(exports, "toBase64", ({ enumerable: true, get: function () { return base64_1.toBase64; } })); -var bech32_1 = __webpack_require__(/*! ./bech32 */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/bech32.js"); -Object.defineProperty(exports, "fromBech32", ({ enumerable: true, get: function () { return bech32_1.fromBech32; } })); -Object.defineProperty(exports, "normalizeBech32", ({ enumerable: true, get: function () { return bech32_1.normalizeBech32; } })); -Object.defineProperty(exports, "toBech32", ({ enumerable: true, get: function () { return bech32_1.toBech32; } })); -var hex_1 = __webpack_require__(/*! ./hex */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/hex.js"); -Object.defineProperty(exports, "fromHex", ({ enumerable: true, get: function () { return hex_1.fromHex; } })); -Object.defineProperty(exports, "toHex", ({ enumerable: true, get: function () { return hex_1.toHex; } })); -var rfc3339_1 = __webpack_require__(/*! ./rfc3339 */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/rfc3339.js"); -Object.defineProperty(exports, "fromRfc3339", ({ enumerable: true, get: function () { return rfc3339_1.fromRfc3339; } })); -Object.defineProperty(exports, "toRfc3339", ({ enumerable: true, get: function () { return rfc3339_1.toRfc3339; } })); -var utf8_1 = __webpack_require__(/*! ./utf8 */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/utf8.js"); -Object.defineProperty(exports, "fromUtf8", ({ enumerable: true, get: function () { return utf8_1.fromUtf8; } })); -Object.defineProperty(exports, "toUtf8", ({ enumerable: true, get: function () { return utf8_1.toUtf8; } })); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/rfc3339.js": -/*!**************************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/rfc3339.js ***! - \**************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toRfc3339 = exports.fromRfc3339 = void 0; -const rfc3339Matcher = /^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2}):(\d{2})(\.\d{1,9})?((?:[+-]\d{2}:\d{2})|Z)$/; -function padded(integer, length = 2) { - return integer.toString().padStart(length, "0"); -} -function fromRfc3339(str) { - const matches = rfc3339Matcher.exec(str); - if (!matches) { - throw new Error("Date string is not in RFC3339 format"); - } - const year = +matches[1]; - const month = +matches[2]; - const day = +matches[3]; - const hour = +matches[4]; - const minute = +matches[5]; - const second = +matches[6]; - // fractional seconds match either undefined or a string like ".1", ".123456789" - const milliSeconds = matches[7] ? Math.floor(+matches[7] * 1000) : 0; - let tzOffsetSign; - let tzOffsetHours; - let tzOffsetMinutes; - // if timezone is undefined, it must be Z or nothing (otherwise the group would have captured). - if (matches[8] === "Z") { - tzOffsetSign = 1; - tzOffsetHours = 0; - tzOffsetMinutes = 0; - } - else { - tzOffsetSign = matches[8].substring(0, 1) === "-" ? -1 : 1; - tzOffsetHours = +matches[8].substring(1, 3); - tzOffsetMinutes = +matches[8].substring(4, 6); - } - const tzOffset = tzOffsetSign * (tzOffsetHours * 60 + tzOffsetMinutes) * 60; // seconds - const timestamp = Date.UTC(year, month - 1, day, hour, minute, second, milliSeconds) - tzOffset * 1000; - return new Date(timestamp); -} -exports.fromRfc3339 = fromRfc3339; -function toRfc3339(date) { - const year = date.getUTCFullYear(); - const month = padded(date.getUTCMonth() + 1); - const day = padded(date.getUTCDate()); - const hour = padded(date.getUTCHours()); - const minute = padded(date.getUTCMinutes()); - const second = padded(date.getUTCSeconds()); - const ms = padded(date.getUTCMilliseconds(), 3); - return `${year}-${month}-${day}T${hour}:${minute}:${second}.${ms}Z`; -} -exports.toRfc3339 = toRfc3339; -//# sourceMappingURL=rfc3339.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/utf8.js": -/*!***********************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/node_modules/@cosmjs/encoding/build/utf8.js ***! - \***********************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromUtf8 = exports.toUtf8 = void 0; -function toUtf8(str) { - return new TextEncoder().encode(str); -} -exports.toUtf8 = toUtf8; -/** - * Takes UTF-8 data and decodes it to a string. - * - * In lossy mode, the replacement character � is used to substitude invalid - * encodings. By default lossy mode is off and invalid data will lead to exceptions. - */ -function fromUtf8(data, lossy = false) { - const fatal = !lossy; - return new TextDecoder("utf-8", { fatal }).decode(data); -} -exports.fromUtf8 = fromUtf8; -//# sourceMappingURL=utf8.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/math/build/decimal.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/node_modules/@cosmjs/math/build/decimal.js ***! - \**********************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Decimal = void 0; -const bn_js_1 = __importDefault(__webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js")); -// Too large values lead to massive memory usage. Limit to something sensible. -// The largest value we need is 18 (Ether). -const maxFractionalDigits = 100; -/** - * A type for arbitrary precision, non-negative decimals. - * - * Instances of this class are immutable. - */ -class Decimal { - constructor(atomics, fractionalDigits) { - if (!atomics.match(/^[0-9]+$/)) { - throw new Error("Invalid string format. Only non-negative integers in decimal representation supported."); - } - this.data = { - atomics: new bn_js_1.default(atomics), - fractionalDigits: fractionalDigits, - }; - } - static fromUserInput(input, fractionalDigits) { - Decimal.verifyFractionalDigits(fractionalDigits); - const badCharacter = input.match(/[^0-9.]/); - if (badCharacter) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - throw new Error(`Invalid character at position ${badCharacter.index + 1}`); - } - let whole; - let fractional; - if (input === "") { - whole = "0"; - fractional = ""; - } - else if (input.search(/\./) === -1) { - // integer format, no separator - whole = input; - fractional = ""; - } - else { - const parts = input.split("."); - switch (parts.length) { - case 0: - case 1: - throw new Error("Fewer than two elements in split result. This must not happen here."); - case 2: - if (!parts[1]) - throw new Error("Fractional part missing"); - whole = parts[0]; - fractional = parts[1].replace(/0+$/, ""); - break; - default: - throw new Error("More than one separator found"); - } - } - if (fractional.length > fractionalDigits) { - throw new Error("Got more fractional digits than supported"); - } - const quantity = `${whole}${fractional.padEnd(fractionalDigits, "0")}`; - return new Decimal(quantity, fractionalDigits); - } - static fromAtomics(atomics, fractionalDigits) { - Decimal.verifyFractionalDigits(fractionalDigits); - return new Decimal(atomics, fractionalDigits); - } - /** - * Creates a Decimal with value 0.0 and the given number of fractial digits. - * - * Fractional digits are not relevant for the value but needed to be able - * to perform arithmetic operations with other decimals. - */ - static zero(fractionalDigits) { - Decimal.verifyFractionalDigits(fractionalDigits); - return new Decimal("0", fractionalDigits); - } - /** - * Creates a Decimal with value 1.0 and the given number of fractial digits. - * - * Fractional digits are not relevant for the value but needed to be able - * to perform arithmetic operations with other decimals. - */ - static one(fractionalDigits) { - Decimal.verifyFractionalDigits(fractionalDigits); - return new Decimal("1" + "0".repeat(fractionalDigits), fractionalDigits); - } - static verifyFractionalDigits(fractionalDigits) { - if (!Number.isInteger(fractionalDigits)) - throw new Error("Fractional digits is not an integer"); - if (fractionalDigits < 0) - throw new Error("Fractional digits must not be negative"); - if (fractionalDigits > maxFractionalDigits) { - throw new Error(`Fractional digits must not exceed ${maxFractionalDigits}`); - } - } - static compare(a, b) { - if (a.fractionalDigits !== b.fractionalDigits) - throw new Error("Fractional digits do not match"); - return a.data.atomics.cmp(new bn_js_1.default(b.atomics)); - } - get atomics() { - return this.data.atomics.toString(); - } - get fractionalDigits() { - return this.data.fractionalDigits; - } - /** Creates a new instance with the same value */ - clone() { - return new Decimal(this.atomics, this.fractionalDigits); - } - /** Returns the greatest decimal <= this which has no fractional part (rounding down) */ - floor() { - const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits)); - const whole = this.data.atomics.div(factor); - const fractional = this.data.atomics.mod(factor); - if (fractional.isZero()) { - return this.clone(); - } - else { - return Decimal.fromAtomics(whole.mul(factor).toString(), this.fractionalDigits); - } - } - /** Returns the smallest decimal >= this which has no fractional part (rounding up) */ - ceil() { - const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits)); - const whole = this.data.atomics.div(factor); - const fractional = this.data.atomics.mod(factor); - if (fractional.isZero()) { - return this.clone(); - } - else { - return Decimal.fromAtomics(whole.addn(1).mul(factor).toString(), this.fractionalDigits); - } - } - toString() { - const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits)); - const whole = this.data.atomics.div(factor); - const fractional = this.data.atomics.mod(factor); - if (fractional.isZero()) { - return whole.toString(); - } - else { - const fullFractionalPart = fractional.toString().padStart(this.data.fractionalDigits, "0"); - const trimmedFractionalPart = fullFractionalPart.replace(/0+$/, ""); - return `${whole.toString()}.${trimmedFractionalPart}`; - } - } - /** - * Returns an approximation as a float type. Only use this if no - * exact calculation is required. - */ - toFloatApproximation() { - const out = Number(this.toString()); - if (Number.isNaN(out)) - throw new Error("Conversion to number failed"); - return out; - } - /** - * a.plus(b) returns a+b. - * - * Both values need to have the same fractional digits. - */ - plus(b) { - if (this.fractionalDigits !== b.fractionalDigits) - throw new Error("Fractional digits do not match"); - const sum = this.data.atomics.add(new bn_js_1.default(b.atomics)); - return new Decimal(sum.toString(), this.fractionalDigits); - } - /** - * a.minus(b) returns a-b. - * - * Both values need to have the same fractional digits. - * The resulting difference needs to be non-negative. - */ - minus(b) { - if (this.fractionalDigits !== b.fractionalDigits) - throw new Error("Fractional digits do not match"); - const difference = this.data.atomics.sub(new bn_js_1.default(b.atomics)); - if (difference.ltn(0)) - throw new Error("Difference must not be negative"); - return new Decimal(difference.toString(), this.fractionalDigits); - } - /** - * a.multiply(b) returns a*b. - * - * We only allow multiplication by unsigned integers to avoid rounding errors. - */ - multiply(b) { - const product = this.data.atomics.mul(new bn_js_1.default(b.toString())); - return new Decimal(product.toString(), this.fractionalDigits); - } - equals(b) { - return Decimal.compare(this, b) === 0; - } - isLessThan(b) { - return Decimal.compare(this, b) < 0; - } - isLessThanOrEqual(b) { - return Decimal.compare(this, b) <= 0; - } - isGreaterThan(b) { - return Decimal.compare(this, b) > 0; - } - isGreaterThanOrEqual(b) { - return Decimal.compare(this, b) >= 0; - } -} -exports.Decimal = Decimal; -//# sourceMappingURL=decimal.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/math/build/index.js": -/*!********************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/node_modules/@cosmjs/math/build/index.js ***! - \********************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Uint64 = exports.Uint53 = exports.Uint32 = exports.Int53 = exports.Decimal = void 0; -var decimal_1 = __webpack_require__(/*! ./decimal */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/math/build/decimal.js"); -Object.defineProperty(exports, "Decimal", ({ enumerable: true, get: function () { return decimal_1.Decimal; } })); -var integers_1 = __webpack_require__(/*! ./integers */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/math/build/integers.js"); -Object.defineProperty(exports, "Int53", ({ enumerable: true, get: function () { return integers_1.Int53; } })); -Object.defineProperty(exports, "Uint32", ({ enumerable: true, get: function () { return integers_1.Uint32; } })); -Object.defineProperty(exports, "Uint53", ({ enumerable: true, get: function () { return integers_1.Uint53; } })); -Object.defineProperty(exports, "Uint64", ({ enumerable: true, get: function () { return integers_1.Uint64; } })); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/math/build/integers.js": -/*!***********************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/node_modules/@cosmjs/math/build/integers.js ***! - \***********************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Uint64 = exports.Uint53 = exports.Int53 = exports.Uint32 = void 0; -/* eslint-disable no-bitwise */ -const bn_js_1 = __importDefault(__webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js")); -const uint64MaxValue = new bn_js_1.default("18446744073709551615", 10, "be"); -class Uint32 { - constructor(input) { - if (Number.isNaN(input)) { - throw new Error("Input is not a number"); - } - if (!Number.isInteger(input)) { - throw new Error("Input is not an integer"); - } - if (input < 0 || input > 4294967295) { - throw new Error("Input not in uint32 range: " + input.toString()); - } - this.data = input; - } - /** @deprecated use Uint32.fromBytes */ - static fromBigEndianBytes(bytes) { - return Uint32.fromBytes(bytes); - } - /** - * Creates a Uint32 from a fixed length byte array. - * - * @param bytes a list of exactly 4 bytes - * @param endianess defaults to big endian - */ - static fromBytes(bytes, endianess = "be") { - if (bytes.length !== 4) { - throw new Error("Invalid input length. Expected 4 bytes."); - } - for (let i = 0; i < bytes.length; ++i) { - if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) { - throw new Error("Invalid value in byte. Found: " + bytes[i]); - } - } - const beBytes = endianess === "be" ? bytes : Array.from(bytes).reverse(); - // Use mulitiplication instead of shifting since bitwise operators are defined - // on SIGNED int32 in JavaScript and we don't want to risk surprises - return new Uint32(beBytes[0] * 2 ** 24 + beBytes[1] * 2 ** 16 + beBytes[2] * 2 ** 8 + beBytes[3]); - } - static fromString(str) { - if (!str.match(/^[0-9]+$/)) { - throw new Error("Invalid string format"); - } - return new Uint32(Number.parseInt(str, 10)); - } - toBytesBigEndian() { - // Use division instead of shifting since bitwise operators are defined - // on SIGNED int32 in JavaScript and we don't want to risk surprises - return new Uint8Array([ - Math.floor(this.data / 2 ** 24) & 0xff, - Math.floor(this.data / 2 ** 16) & 0xff, - Math.floor(this.data / 2 ** 8) & 0xff, - Math.floor(this.data / 2 ** 0) & 0xff, - ]); - } - toBytesLittleEndian() { - // Use division instead of shifting since bitwise operators are defined - // on SIGNED int32 in JavaScript and we don't want to risk surprises - return new Uint8Array([ - Math.floor(this.data / 2 ** 0) & 0xff, - Math.floor(this.data / 2 ** 8) & 0xff, - Math.floor(this.data / 2 ** 16) & 0xff, - Math.floor(this.data / 2 ** 24) & 0xff, - ]); - } - toNumber() { - return this.data; - } - toBigInt() { - return BigInt(this.toNumber()); - } - toString() { - return this.data.toString(); - } -} -exports.Uint32 = Uint32; -class Int53 { - constructor(input) { - if (Number.isNaN(input)) { - throw new Error("Input is not a number"); - } - if (!Number.isInteger(input)) { - throw new Error("Input is not an integer"); - } - if (input < Number.MIN_SAFE_INTEGER || input > Number.MAX_SAFE_INTEGER) { - throw new Error("Input not in int53 range: " + input.toString()); - } - this.data = input; - } - static fromString(str) { - if (!str.match(/^-?[0-9]+$/)) { - throw new Error("Invalid string format"); - } - return new Int53(Number.parseInt(str, 10)); - } - toNumber() { - return this.data; - } - toBigInt() { - return BigInt(this.toNumber()); - } - toString() { - return this.data.toString(); - } -} -exports.Int53 = Int53; -class Uint53 { - constructor(input) { - const signed = new Int53(input); - if (signed.toNumber() < 0) { - throw new Error("Input is negative"); - } - this.data = signed; - } - static fromString(str) { - const signed = Int53.fromString(str); - return new Uint53(signed.toNumber()); - } - toNumber() { - return this.data.toNumber(); - } - toBigInt() { - return BigInt(this.toNumber()); - } - toString() { - return this.data.toString(); - } -} -exports.Uint53 = Uint53; -class Uint64 { - constructor(data) { - if (data.isNeg()) { - throw new Error("Input is negative"); - } - if (data.gt(uint64MaxValue)) { - throw new Error("Input exceeds uint64 range"); - } - this.data = data; - } - /** @deprecated use Uint64.fromBytes */ - static fromBytesBigEndian(bytes) { - return Uint64.fromBytes(bytes); - } - /** - * Creates a Uint64 from a fixed length byte array. - * - * @param bytes a list of exactly 8 bytes - * @param endianess defaults to big endian - */ - static fromBytes(bytes, endianess = "be") { - if (bytes.length !== 8) { - throw new Error("Invalid input length. Expected 8 bytes."); - } - for (let i = 0; i < bytes.length; ++i) { - if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) { - throw new Error("Invalid value in byte. Found: " + bytes[i]); - } - } - const beBytes = endianess === "be" ? Array.from(bytes) : Array.from(bytes).reverse(); - return new Uint64(new bn_js_1.default(beBytes)); - } - static fromString(str) { - if (!str.match(/^[0-9]+$/)) { - throw new Error("Invalid string format"); - } - return new Uint64(new bn_js_1.default(str, 10, "be")); - } - static fromNumber(input) { - if (Number.isNaN(input)) { - throw new Error("Input is not a number"); - } - if (!Number.isInteger(input)) { - throw new Error("Input is not an integer"); - } - let bigint; - try { - bigint = new bn_js_1.default(input); - } - catch { - throw new Error("Input is not a safe integer"); - } - return new Uint64(bigint); - } - toBytesBigEndian() { - return Uint8Array.from(this.data.toArray("be", 8)); - } - toBytesLittleEndian() { - return Uint8Array.from(this.data.toArray("le", 8)); - } - toString() { - return this.data.toString(10); - } - toBigInt() { - return BigInt(this.toString()); - } - toNumber() { - return this.data.toNumber(); - } -} -exports.Uint64 = Uint64; -// Assign classes to unused variables in order to verify static interface conformance at compile time. -// Workaround for https://github.com/microsoft/TypeScript/issues/33892 -const _int53Class = Int53; -const _uint53Class = Uint53; -const _uint32Class = Uint32; -const _uint64Class = Uint64; -//# sourceMappingURL=integers.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/stream/build/concat.js": -/*!***********************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/node_modules/@cosmjs/stream/build/concat.js ***! - \***********************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.concat = void 0; -const xstream_1 = __webpack_require__(/*! xstream */ "./node_modules/xstream/index.js"); -/** - * An implementation of concat that buffers all source stream events - * - * Marble diagram: - * - * ```text - * --1--2---3---4-| - * -a--b-c--d-| - * --------X---------Y---------Z- - * concat - * --1--2---3---4-abcdXY-------Z- - * ``` - * - * This is inspired by RxJS's concat as documented at http://rxmarbles.com/#concat and behaves - * differently than xstream's concat as discussed in https://github.com/staltz/xstream/issues/170. - * - */ -function concat(...streams) { - const subscriptions = new Array(); - const queues = new Array(); // one queue per stream - const completedStreams = new Set(); - let activeStreamIndex = 0; - function reset() { - while (subscriptions.length > 0) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const subscription = subscriptions.shift(); - subscription.unsubscribe(); - } - queues.length = 0; - completedStreams.clear(); - activeStreamIndex = 0; - } - const producer = { - start: (listener) => { - streams.forEach((_) => queues.push([])); - function emitAllQueuesEvents(streamIndex) { - // eslint-disable-next-line no-constant-condition - while (true) { - const element = queues[streamIndex].shift(); - if (element === undefined) { - return; - } - listener.next(element); - } - } - function isDone() { - return activeStreamIndex >= streams.length; - } - if (isDone()) { - listener.complete(); - return; - } - streams.forEach((stream, index) => { - subscriptions.push(stream.subscribe({ - next: (value) => { - if (index === activeStreamIndex) { - listener.next(value); - } - else { - queues[index].push(value); - } - }, - complete: () => { - completedStreams.add(index); - while (completedStreams.has(activeStreamIndex)) { - // this stream completed: emit all and move on - emitAllQueuesEvents(activeStreamIndex); - activeStreamIndex++; - } - if (isDone()) { - listener.complete(); - } - else { - // now active stream can have some events queued but did not yet complete - emitAllQueuesEvents(activeStreamIndex); - } - }, - error: (error) => { - listener.error(error); - reset(); - }, - })); - }); - }, - stop: () => { - reset(); - }, - }; - return xstream_1.Stream.create(producer); -} -exports.concat = concat; -//# sourceMappingURL=concat.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/stream/build/defaultvalueproducer.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/node_modules/@cosmjs/stream/build/defaultvalueproducer.js ***! - \*************************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.DefaultValueProducer = void 0; -// allows pre-producing values before anyone is listening -class DefaultValueProducer { - constructor(value, callbacks) { - this.callbacks = callbacks; - this.internalValue = value; - } - get value() { - return this.internalValue; - } - /** - * Update the current value. - * - * If producer is active (i.e. someone is listening), this emits an event. - * If not, just the current value is updated. - */ - update(value) { - this.internalValue = value; - if (this.listener) { - this.listener.next(value); - } - } - /** - * Produce an error - */ - // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types - error(error) { - if (this.listener) { - this.listener.error(error); - } - } - /** - * Called by the stream. Do not call this directly. - */ - start(listener) { - this.listener = listener; - listener.next(this.internalValue); - if (this.callbacks) { - this.callbacks.onStarted(); - } - } - /** - * Called by the stream. Do not call this directly. - */ - stop() { - if (this.callbacks) { - this.callbacks.onStop(); - } - this.listener = undefined; - } -} -exports.DefaultValueProducer = DefaultValueProducer; -//# sourceMappingURL=defaultvalueproducer.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/stream/build/dropduplicates.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/node_modules/@cosmjs/stream/build/dropduplicates.js ***! - \*******************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.dropDuplicates = void 0; -/** - * Drops duplicate values in a stream. - * - * Marble diagram: - * - * ```text - * -1-1-1-2-4-3-3-4-- - * dropDuplicates - * -1-----2-4-3------ - * ``` - * - * Each value must be uniquely identified by a string given by - * valueToKey(value). - * - * Internally this maintains a set of keys that have been processed already, - * i.e. memory consumption and Set lookup times should be considered when - * using this function. - */ -function dropDuplicates(valueToKey) { - const operand = (instream) => { - const emittedKeys = new Set(); - const deduplicatedStream = instream - .filter((value) => !emittedKeys.has(valueToKey(value))) - .debug((value) => emittedKeys.add(valueToKey(value))); - return deduplicatedStream; - }; - return operand; -} -exports.dropDuplicates = dropDuplicates; -//# sourceMappingURL=dropduplicates.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/stream/build/index.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/node_modules/@cosmjs/stream/build/index.js ***! - \**********************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ValueAndUpdates = exports.toListPromise = exports.fromListPromise = exports.firstEvent = exports.dropDuplicates = exports.DefaultValueProducer = exports.concat = void 0; -var concat_1 = __webpack_require__(/*! ./concat */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/stream/build/concat.js"); -Object.defineProperty(exports, "concat", ({ enumerable: true, get: function () { return concat_1.concat; } })); -var defaultvalueproducer_1 = __webpack_require__(/*! ./defaultvalueproducer */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/stream/build/defaultvalueproducer.js"); -Object.defineProperty(exports, "DefaultValueProducer", ({ enumerable: true, get: function () { return defaultvalueproducer_1.DefaultValueProducer; } })); -var dropduplicates_1 = __webpack_require__(/*! ./dropduplicates */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/stream/build/dropduplicates.js"); -Object.defineProperty(exports, "dropDuplicates", ({ enumerable: true, get: function () { return dropduplicates_1.dropDuplicates; } })); -var promise_1 = __webpack_require__(/*! ./promise */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/stream/build/promise.js"); -Object.defineProperty(exports, "firstEvent", ({ enumerable: true, get: function () { return promise_1.firstEvent; } })); -Object.defineProperty(exports, "fromListPromise", ({ enumerable: true, get: function () { return promise_1.fromListPromise; } })); -Object.defineProperty(exports, "toListPromise", ({ enumerable: true, get: function () { return promise_1.toListPromise; } })); -__exportStar(__webpack_require__(/*! ./reducer */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/stream/build/reducer.js"), exports); -var valueandupdates_1 = __webpack_require__(/*! ./valueandupdates */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/stream/build/valueandupdates.js"); -Object.defineProperty(exports, "ValueAndUpdates", ({ enumerable: true, get: function () { return valueandupdates_1.ValueAndUpdates; } })); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/stream/build/promise.js": -/*!************************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/node_modules/@cosmjs/stream/build/promise.js ***! - \************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.firstEvent = exports.toListPromise = exports.fromListPromise = void 0; -const xstream_1 = __webpack_require__(/*! xstream */ "./node_modules/xstream/index.js"); -/** - * Emits one event for each list element as soon as the promise resolves - */ -function fromListPromise(promise) { - const producer = { - start: (listener) => { - // the code in `start` runs as soon as anyone listens to the stream - promise - .then((iterable) => { - for (const element of iterable) { - listener.next(element); - } - listener.complete(); - }) - .catch((error) => listener.error(error)); - }, - // eslint-disable-next-line @typescript-eslint/no-empty-function - stop: () => { }, - }; - return xstream_1.Stream.create(producer); -} -exports.fromListPromise = fromListPromise; -/** - * Listens to stream and collects events. When `count` events are collected, - * the promise resolves with an array of events. - * - * Rejects if stream completes before `count` events are collected. - */ -async function toListPromise(stream, count) { - return new Promise((resolve, reject) => { - if (count === 0) { - resolve([]); - return; - } - const events = new Array(); - // take() unsubscribes from source stream automatically - stream.take(count).subscribe({ - next: (event) => { - events.push(event); - if (events.length === count) { - resolve(events); - } - }, - complete: () => { - reject(`Stream completed before all events could be collected. ` + - `Collected ${events.length}, expected ${count}`); - }, - error: (error) => reject(error), - }); - }); -} -exports.toListPromise = toListPromise; -/** - * Listens to stream, collects one event and revolves. - * - * Rejects if stream completes before one event was fired. - */ -async function firstEvent(stream) { - return (await toListPromise(stream, 1))[0]; -} -exports.firstEvent = firstEvent; -//# sourceMappingURL=promise.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/stream/build/reducer.js": -/*!************************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/node_modules/@cosmjs/stream/build/reducer.js ***! - \************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.lastValue = exports.asArray = exports.countStream = exports.Reducer = void 0; -// Reducer takes a stream of events T and a ReducerFunc, that -// materializes a state of type U. -class Reducer { - constructor(stream, reducer, initState) { - this.stream = stream; - this.reducer = reducer; - this.state = initState; - this.completed = new Promise((resolve, reject) => { - const subscription = this.stream.subscribe({ - next: (evt) => { - this.state = this.reducer(this.state, evt); - }, - complete: () => { - resolve(); - // this must happen after resolve, to ensure stream.subscribe() has finished - subscription.unsubscribe(); - }, - error: (err) => { - reject(err); - // the stream already closed on error, but unsubscribe to be safe - subscription.unsubscribe(); - }, - }); - }); - } - // value returns current materialized state - value() { - return this.state; - } - // finished resolves on completed stream, rejects on stream error - async finished() { - return this.completed; - } -} -exports.Reducer = Reducer; -function increment(sum, _) { - return sum + 1; -} -// countStream returns a reducer that contains current count -// of events on the stream -function countStream(stream) { - return new Reducer(stream, increment, 0); -} -exports.countStream = countStream; -function append(list, evt) { - return [...list, evt]; -} -// asArray maintains an array containing all events that have -// occurred on the stream -function asArray(stream) { - return new Reducer(stream, append, []); -} -exports.asArray = asArray; -function last(_, event) { - return event; -} -// lastValue returns the last value read from the stream, or undefined if no values sent -function lastValue(stream) { - return new Reducer(stream, last, undefined); -} -exports.lastValue = lastValue; -//# sourceMappingURL=reducer.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/stream/build/valueandupdates.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/node_modules/@cosmjs/stream/build/valueandupdates.js ***! - \********************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ValueAndUpdates = void 0; -const xstream_1 = __webpack_require__(/*! xstream */ "./node_modules/xstream/index.js"); -/** - * A read only wrapper around DefaultValueProducer that allows - * to synchronously get the current value using the .value property - * and listen to to updates by suscribing to the .updates stream - */ -class ValueAndUpdates { - constructor(producer) { - this.producer = producer; - this.updates = xstream_1.MemoryStream.createWithMemory(this.producer); - } - get value() { - return this.producer.value; - } - /** - * Resolves as soon as search value is found. - * - * @param search either a value or a function that must return true when found - * @returns the value of the update that caused the search match - */ - async waitFor(search) { - const searchImplementation = typeof search === "function" ? search : (value) => value === search; - return new Promise((resolve, reject) => { - const subscription = this.updates.subscribe({ - next: (newValue) => { - if (searchImplementation(newValue)) { - resolve(newValue); - // MemoryStream.subscribe() calls next with the last value. - // Make async to ensure the subscription exists - setTimeout(() => subscription.unsubscribe(), 0); - } - }, - complete: () => { - subscription.unsubscribe(); - reject("Update stream completed without expected value"); - }, - error: (error) => { - reject(error); - }, - }); - }); - } -} -exports.ValueAndUpdates = ValueAndUpdates; -//# sourceMappingURL=valueandupdates.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/arrays.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/arrays.js ***! - \**********************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.arrayContentStartsWith = exports.arrayContentEquals = void 0; -/** - * Compares the content of two arrays-like objects for equality. - * - * Equality is defined as having equal length and element values, where element equality means `===` returning `true`. - * - * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type. - * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type. - */ -function arrayContentEquals(a, b) { - if (a.length !== b.length) - return false; - for (let i = 0; i < a.length; ++i) { - if (a[i] !== b[i]) - return false; - } - return true; -} -exports.arrayContentEquals = arrayContentEquals; -/** - * Checks if `a` starts with the contents of `b`. - * - * This requires equality of the element values, where element equality means `===` returning `true`. - * - * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type. - * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type. - */ -function arrayContentStartsWith(a, b) { - if (a.length < b.length) - return false; - for (let i = 0; i < b.length; ++i) { - if (a[i] !== b[i]) - return false; - } - return true; -} -exports.arrayContentStartsWith = arrayContentStartsWith; -//# sourceMappingURL=arrays.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/assert.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/assert.js ***! - \**********************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.assertDefinedAndNotNull = exports.assertDefined = exports.assert = void 0; -// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types -function assert(condition, msg) { - if (!condition) { - throw new Error(msg || "condition is not truthy"); - } -} -exports.assert = assert; -function assertDefined(value, msg) { - if (value === undefined) { - throw new Error(msg ?? "value is undefined"); - } -} -exports.assertDefined = assertDefined; -function assertDefinedAndNotNull(value, msg) { - if (value === undefined || value === null) { - throw new Error(msg ?? "value is undefined or null"); - } -} -exports.assertDefinedAndNotNull = assertDefinedAndNotNull; -//# sourceMappingURL=assert.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/index.js": -/*!*********************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/index.js ***! - \*********************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isUint8Array = exports.isNonNullObject = exports.isDefined = exports.sleep = exports.assertDefinedAndNotNull = exports.assertDefined = exports.assert = exports.arrayContentStartsWith = exports.arrayContentEquals = void 0; -var arrays_1 = __webpack_require__(/*! ./arrays */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/arrays.js"); -Object.defineProperty(exports, "arrayContentEquals", ({ enumerable: true, get: function () { return arrays_1.arrayContentEquals; } })); -Object.defineProperty(exports, "arrayContentStartsWith", ({ enumerable: true, get: function () { return arrays_1.arrayContentStartsWith; } })); -var assert_1 = __webpack_require__(/*! ./assert */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/assert.js"); -Object.defineProperty(exports, "assert", ({ enumerable: true, get: function () { return assert_1.assert; } })); -Object.defineProperty(exports, "assertDefined", ({ enumerable: true, get: function () { return assert_1.assertDefined; } })); -Object.defineProperty(exports, "assertDefinedAndNotNull", ({ enumerable: true, get: function () { return assert_1.assertDefinedAndNotNull; } })); -var sleep_1 = __webpack_require__(/*! ./sleep */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/sleep.js"); -Object.defineProperty(exports, "sleep", ({ enumerable: true, get: function () { return sleep_1.sleep; } })); -var typechecks_1 = __webpack_require__(/*! ./typechecks */ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/typechecks.js"); -Object.defineProperty(exports, "isDefined", ({ enumerable: true, get: function () { return typechecks_1.isDefined; } })); -Object.defineProperty(exports, "isNonNullObject", ({ enumerable: true, get: function () { return typechecks_1.isNonNullObject; } })); -Object.defineProperty(exports, "isUint8Array", ({ enumerable: true, get: function () { return typechecks_1.isUint8Array; } })); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/sleep.js": -/*!*********************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/sleep.js ***! - \*********************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.sleep = void 0; -async function sleep(ms) { - return new Promise((resolve) => setTimeout(resolve, ms)); -} -exports.sleep = sleep; -//# sourceMappingURL=sleep.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/typechecks.js": -/*!**************************************************************************************!*\ - !*** ./node_modules/@cosmjs/stargate/node_modules/@cosmjs/utils/build/typechecks.js ***! - \**************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; -/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isDefined = exports.isUint8Array = exports.isNonNullObject = void 0; -/** - * Checks if data is a non-null object (i.e. matches the TypeScript object type). - * - * Note: this returns true for arrays, which are objects in JavaScript - * even though array and object are different types in JSON. - * - * @see https://www.typescriptlang.org/docs/handbook/basic-types.html#object - */ -// eslint-disable-next-line @typescript-eslint/ban-types -function isNonNullObject(data) { - return typeof data === "object" && data !== null; -} -exports.isNonNullObject = isNonNullObject; -/** - * Checks if data is an Uint8Array. Note: Buffer is treated as not a Uint8Array - */ -function isUint8Array(data) { - if (!isNonNullObject(data)) - return false; - // Avoid instanceof check which is unreliable in some JS environments - // https://medium.com/@simonwarta/limitations-of-the-instanceof-operator-f4bcdbe7a400 - // Use check that was discussed in https://github.com/crypto-browserify/pbkdf2/pull/81 - if (Object.prototype.toString.call(data) !== "[object Uint8Array]") - return false; - if (typeof Buffer !== "undefined" && typeof Buffer.isBuffer !== "undefined") { - // Buffer.isBuffer is available at runtime - if (Buffer.isBuffer(data)) - return false; - } - return true; -} -exports.isUint8Array = isUint8Array; -/** - * Checks if input is not undefined in a TypeScript-friendly way. - * - * This is convenient to use in e.g. `Array.filter` as it will convert - * the type of a `Array` to `Array`. - */ -function isDefined(value) { - return value !== undefined; -} -exports.isDefined = isDefined; -//# sourceMappingURL=typechecks.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/addresses.js": -/*!****************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/addresses.js ***! - \****************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.pubkeyToAddress = exports.pubkeyToRawAddress = exports.rawSecp256k1PubkeyToRawAddress = exports.rawEd25519PubkeyToRawAddress = void 0; -const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/index.js"); -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/index.js"); -function rawEd25519PubkeyToRawAddress(pubkeyData) { - if (pubkeyData.length !== 32) { - throw new Error(`Invalid Ed25519 pubkey length: ${pubkeyData.length}`); - } - return (0, crypto_1.sha256)(pubkeyData).slice(0, 20); -} -exports.rawEd25519PubkeyToRawAddress = rawEd25519PubkeyToRawAddress; -function rawSecp256k1PubkeyToRawAddress(pubkeyData) { - if (pubkeyData.length !== 33) { - throw new Error(`Invalid Secp256k1 pubkey length (compressed): ${pubkeyData.length}`); - } - return (0, crypto_1.ripemd160)((0, crypto_1.sha256)(pubkeyData)); -} -exports.rawSecp256k1PubkeyToRawAddress = rawSecp256k1PubkeyToRawAddress; -/** - * Returns Tendermint address as bytes. - * - * This is for addresses that are derived by the Tendermint keypair (typically Ed25519). - * Sometimes those addresses are bech32-encoded and contain the term "cons" in the presix - * ("cosmosvalcons1..."). - * - * For secp256k1 this assumes we already have a compressed pubkey, which is the default in Cosmos. - */ -function pubkeyToRawAddress(type, data) { - switch (type) { - case "ed25519": - return rawEd25519PubkeyToRawAddress(data); - case "secp256k1": - return rawSecp256k1PubkeyToRawAddress(data); - default: - // Keep this case here to guard against new types being added but not handled - throw new Error(`Pubkey type ${type} not supported`); - } -} -exports.pubkeyToRawAddress = pubkeyToRawAddress; -/** - * Returns Tendermint address in uppercase hex format. - * - * This is for addresses that are derived by the Tendermint keypair (typically Ed25519). - * Sometimes those addresses are bech32-encoded and contain the term "cons" in the presix - * ("cosmosvalcons1..."). - * - * For secp256k1 this assumes we already have a compressed pubkey, which is the default in Cosmos. - */ -function pubkeyToAddress(type, data) { - return (0, encoding_1.toHex)(pubkeyToRawAddress(type, data)).toUpperCase(); -} -exports.pubkeyToAddress = pubkeyToAddress; -//# sourceMappingURL=addresses.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/dates.js": -/*!************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/dates.js ***! - \************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.DateTime = exports.toSeconds = exports.fromSeconds = exports.toRfc3339WithNanoseconds = exports.fromRfc3339WithNanoseconds = void 0; -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/index.js"); -const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/math/build/index.js"); -function fromRfc3339WithNanoseconds(dateTimeString) { - const out = (0, encoding_1.fromRfc3339)(dateTimeString); - const nanosecondsMatch = dateTimeString.match(/\.(\d+)Z$/); - const nanoseconds = nanosecondsMatch ? nanosecondsMatch[1].slice(3) : ""; - out.nanoseconds = parseInt(nanoseconds.padEnd(6, "0"), 10); - return out; -} -exports.fromRfc3339WithNanoseconds = fromRfc3339WithNanoseconds; -function toRfc3339WithNanoseconds(dateTime) { - const millisecondIso = dateTime.toISOString(); - const nanoseconds = dateTime.nanoseconds?.toString() ?? ""; - return `${millisecondIso.slice(0, -1)}${nanoseconds.padStart(6, "0")}Z`; -} -exports.toRfc3339WithNanoseconds = toRfc3339WithNanoseconds; -function fromSeconds(seconds, nanos = 0) { - const checkedNanos = new math_1.Uint32(nanos).toNumber(); - if (checkedNanos > 999999999) { - throw new Error("Nano seconds must not exceed 999999999"); - } - const out = new Date(seconds * 1000 + Math.floor(checkedNanos / 1000000)); - out.nanoseconds = checkedNanos % 1000000; - return out; -} -exports.fromSeconds = fromSeconds; -/** - * Calculates the UNIX timestamp in seconds as well as the nanoseconds after the given second. - * - * This is useful when dealing with external systems like the protobuf type - * [.google.protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Timestamp) - * or any other system that does not use millisecond precision. - */ -function toSeconds(date) { - return { - seconds: Math.floor(date.getTime() / 1000), - nanos: (date.getTime() % 1000) * 1000000 + (date.nanoseconds ?? 0), - }; -} -exports.toSeconds = toSeconds; -/** @deprecated Use fromRfc3339WithNanoseconds/toRfc3339WithNanoseconds instead */ -class DateTime { - /** @deprecated Use fromRfc3339WithNanoseconds instead */ - static decode(dateTimeString) { - return fromRfc3339WithNanoseconds(dateTimeString); - } - /** @deprecated Use toRfc3339WithNanoseconds instead */ - static encode(dateTime) { - return toRfc3339WithNanoseconds(dateTime); - } -} -exports.DateTime = DateTime; -//# sourceMappingURL=dates.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/index.js": -/*!************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/index.js ***! - \************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.BlockIdFlag = exports.isTendermint37Client = exports.isTendermint34Client = exports.Tendermint37Client = exports.tendermint37 = exports.Tendermint34Client = exports.tendermint34 = exports.VoteType = exports.SubscriptionEventType = exports.Method = exports.broadcastTxSyncSuccess = exports.broadcastTxCommitSuccess = exports.WebsocketClient = exports.HttpClient = exports.HttpBatchClient = exports.toSeconds = exports.toRfc3339WithNanoseconds = exports.fromSeconds = exports.fromRfc3339WithNanoseconds = exports.DateTime = exports.rawSecp256k1PubkeyToRawAddress = exports.rawEd25519PubkeyToRawAddress = exports.pubkeyToRawAddress = exports.pubkeyToAddress = void 0; -var addresses_1 = __webpack_require__(/*! ./addresses */ "./node_modules/@cosmjs/tendermint-rpc/build/addresses.js"); -Object.defineProperty(exports, "pubkeyToAddress", ({ enumerable: true, get: function () { return addresses_1.pubkeyToAddress; } })); -Object.defineProperty(exports, "pubkeyToRawAddress", ({ enumerable: true, get: function () { return addresses_1.pubkeyToRawAddress; } })); -Object.defineProperty(exports, "rawEd25519PubkeyToRawAddress", ({ enumerable: true, get: function () { return addresses_1.rawEd25519PubkeyToRawAddress; } })); -Object.defineProperty(exports, "rawSecp256k1PubkeyToRawAddress", ({ enumerable: true, get: function () { return addresses_1.rawSecp256k1PubkeyToRawAddress; } })); -var dates_1 = __webpack_require__(/*! ./dates */ "./node_modules/@cosmjs/tendermint-rpc/build/dates.js"); -Object.defineProperty(exports, "DateTime", ({ enumerable: true, get: function () { return dates_1.DateTime; } })); -Object.defineProperty(exports, "fromRfc3339WithNanoseconds", ({ enumerable: true, get: function () { return dates_1.fromRfc3339WithNanoseconds; } })); -Object.defineProperty(exports, "fromSeconds", ({ enumerable: true, get: function () { return dates_1.fromSeconds; } })); -Object.defineProperty(exports, "toRfc3339WithNanoseconds", ({ enumerable: true, get: function () { return dates_1.toRfc3339WithNanoseconds; } })); -Object.defineProperty(exports, "toSeconds", ({ enumerable: true, get: function () { return dates_1.toSeconds; } })); -// The public Tendermint34Client.create constructor allows manually choosing an RpcClient. -// This is currently the only way to switch to the HttpBatchClient (which may become default at some point). -// Due to this API, we make RPC client implementations public. -var rpcclients_1 = __webpack_require__(/*! ./rpcclients */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/index.js"); -Object.defineProperty(exports, "HttpBatchClient", ({ enumerable: true, get: function () { return rpcclients_1.HttpBatchClient; } })); -Object.defineProperty(exports, "HttpClient", ({ enumerable: true, get: function () { return rpcclients_1.HttpClient; } })); -Object.defineProperty(exports, "WebsocketClient", ({ enumerable: true, get: function () { return rpcclients_1.WebsocketClient; } })); -var tendermint34_1 = __webpack_require__(/*! ./tendermint34 */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/index.js"); -Object.defineProperty(exports, "broadcastTxCommitSuccess", ({ enumerable: true, get: function () { return tendermint34_1.broadcastTxCommitSuccess; } })); -Object.defineProperty(exports, "broadcastTxSyncSuccess", ({ enumerable: true, get: function () { return tendermint34_1.broadcastTxSyncSuccess; } })); -Object.defineProperty(exports, "Method", ({ enumerable: true, get: function () { return tendermint34_1.Method; } })); -Object.defineProperty(exports, "SubscriptionEventType", ({ enumerable: true, get: function () { return tendermint34_1.SubscriptionEventType; } })); -Object.defineProperty(exports, "VoteType", ({ enumerable: true, get: function () { return tendermint34_1.VoteType; } })); -exports.tendermint34 = __importStar(__webpack_require__(/*! ./tendermint34 */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/index.js")); -var tendermint34_2 = __webpack_require__(/*! ./tendermint34 */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/index.js"); -Object.defineProperty(exports, "Tendermint34Client", ({ enumerable: true, get: function () { return tendermint34_2.Tendermint34Client; } })); -exports.tendermint37 = __importStar(__webpack_require__(/*! ./tendermint37 */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/index.js")); -var tendermint37_1 = __webpack_require__(/*! ./tendermint37 */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/index.js"); -Object.defineProperty(exports, "Tendermint37Client", ({ enumerable: true, get: function () { return tendermint37_1.Tendermint37Client; } })); -var tendermintclient_1 = __webpack_require__(/*! ./tendermintclient */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermintclient.js"); -Object.defineProperty(exports, "isTendermint34Client", ({ enumerable: true, get: function () { return tendermintclient_1.isTendermint34Client; } })); -Object.defineProperty(exports, "isTendermint37Client", ({ enumerable: true, get: function () { return tendermintclient_1.isTendermint37Client; } })); -var types_1 = __webpack_require__(/*! ./types */ "./node_modules/@cosmjs/tendermint-rpc/build/types.js"); -Object.defineProperty(exports, "BlockIdFlag", ({ enumerable: true, get: function () { return types_1.BlockIdFlag; } })); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/inthelpers.js": -/*!*****************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/inthelpers.js ***! - \*****************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.smallIntToApi = exports.apiToBigInt = exports.apiToSmallInt = void 0; -const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/math/build/index.js"); -const encodings_1 = __webpack_require__(/*! ./tendermint34/encodings */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/encodings.js"); -/** - * Takes an integer value from the Tendermint RPC API and - * returns it as number. - * - * Only works within the safe integer range. - */ -function apiToSmallInt(input) { - const asInt = typeof input === "number" ? new math_1.Int53(input) : math_1.Int53.fromString(input); - return asInt.toNumber(); -} -exports.apiToSmallInt = apiToSmallInt; -/** - * Takes an integer value from the Tendermint RPC API and - * returns it as BigInt. - * - * This supports the full uint64 and int64 ranges. - */ -function apiToBigInt(input) { - (0, encodings_1.assertString)(input); // Runtime check on top of TypeScript just to be safe for semi-trusted API types - if (!input.match(/^-?[0-9]+$/)) { - throw new Error("Invalid string format"); - } - return BigInt(input); -} -exports.apiToBigInt = apiToBigInt; -/** - * Takes an integer in the safe integer range and returns - * a string representation to be used in the Tendermint RPC API. - */ -function smallIntToApi(num) { - return new math_1.Int53(num).toString(); -} -exports.smallIntToApi = smallIntToApi; -//# sourceMappingURL=inthelpers.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/jsonrpc.js": -/*!**************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/jsonrpc.js ***! - \**************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.createJsonRpcRequest = void 0; -const numbersWithoutZero = "123456789"; -/** generates a random numeric character */ -function randomNumericChar() { - return numbersWithoutZero[Math.floor(Math.random() * numbersWithoutZero.length)]; -} -/** - * An (absolutely not cryptographically secure) random integer > 0. - */ -function randomId() { - return parseInt(Array.from({ length: 12 }) - .map(() => randomNumericChar()) - .join(""), 10); -} -/** Creates a JSON-RPC request with random ID */ -// eslint-disable-next-line @typescript-eslint/ban-types -function createJsonRpcRequest(method, params) { - const paramsCopy = params ? { ...params } : {}; - return { - jsonrpc: "2.0", - id: randomId(), - method: method, - params: paramsCopy, - }; -} -exports.createJsonRpcRequest = createJsonRpcRequest; -//# sourceMappingURL=jsonrpc.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/http.js": -/*!**********************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/http.js ***! - \**********************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.http = void 0; -const axios_1 = __importDefault(__webpack_require__(/*! axios */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/index.js")); -function filterBadStatus(res) { - if (res.status >= 400) { - throw new Error(`Bad status on response: ${res.status}`); - } - return res; -} -/** - * Node.js 18 comes with exprimental fetch support (https://nodejs.org/de/blog/announcements/v18-release-announce/). - * This is nice, but the implementation does not yet work wekk for us. We - * can just stick with axios on those systems for now. - */ -// eslint-disable-next-line @typescript-eslint/ban-types -function isExperimental(nodeJsFunc) { - // This works because we get this info in node 18: - // - // > fetch.toString() - // 'async function fetch(input, init = undefined) {\n' + - // " emitExperimentalWarning('The Fetch API');\n" + - // ' return lazyUndici().fetch(input, init);\n' + - // ' }' - return nodeJsFunc.toString().includes("emitExperimentalWarning"); -} -/** - * Helper to work around missing CORS support in Tendermint (https://github.com/tendermint/tendermint/pull/2800) - * - * For some reason, fetch does not complain about missing server-side CORS support. - */ -// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types -async function http(method, url, headers, request) { - if (typeof fetch === "function" && !isExperimental(fetch)) { - const settings = { - method: method, - body: request ? JSON.stringify(request) : undefined, - headers: { - // eslint-disable-next-line @typescript-eslint/naming-convention - "Content-Type": "application/json", - ...headers, - }, - }; - return fetch(url, settings) - .then(filterBadStatus) - .then((res) => res.json()); - } - else { - return axios_1.default - .request({ url: url, method: method, data: request, headers: headers }) - .then((res) => res.data); - } -} -exports.http = http; -//# sourceMappingURL=http.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/httpbatchclient.js": -/*!*********************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/httpbatchclient.js ***! - \*********************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.HttpBatchClient = void 0; -const json_rpc_1 = __webpack_require__(/*! @cosmjs/json-rpc */ "./node_modules/@cosmjs/json-rpc/build/index.js"); -const http_1 = __webpack_require__(/*! ./http */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/http.js"); -const rpcclient_1 = __webpack_require__(/*! ./rpcclient */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/rpcclient.js"); -// Those values are private and can change any time. -// Does a user need to know them? I don't think so. You either set -// a custom value or leave the option field unset. -const defaultHttpBatchClientOptions = { - dispatchInterval: 20, - batchSizeLimit: 20, -}; -class HttpBatchClient { - constructor(endpoint, options = {}) { - this.queue = []; - this.options = { - batchSizeLimit: options.batchSizeLimit ?? defaultHttpBatchClientOptions.batchSizeLimit, - dispatchInterval: options.dispatchInterval ?? defaultHttpBatchClientOptions.dispatchInterval, - }; - if (typeof endpoint === "string") { - // accept host.name:port and assume http protocol - this.url = (0, rpcclient_1.hasProtocol)(endpoint) ? endpoint : "http://" + endpoint; - } - else { - this.url = endpoint.url; - this.headers = endpoint.headers; - } - this.timer = setInterval(() => this.tick(), options.dispatchInterval); - this.validate(); - } - disconnect() { - this.timer && clearInterval(this.timer); - this.timer = undefined; - } - async execute(request) { - return new Promise((resolve, reject) => { - this.queue.push({ request, resolve, reject }); - if (this.queue.length >= this.options.batchSizeLimit) { - // this train is full, let's go - this.tick(); - } - }); - } - validate() { - if (!this.options.batchSizeLimit || - !Number.isSafeInteger(this.options.batchSizeLimit) || - this.options.batchSizeLimit < 1) { - throw new Error("batchSizeLimit must be a safe integer >= 1"); - } - } - /** - * This is called in an interval where promise rejections cannot be handled. - * So this is not async and HTTP errors need to be handled by the queued promises. - */ - tick() { - // Avoid race conditions - const batch = this.queue.splice(0, this.options.batchSizeLimit); - if (!batch.length) - return; - const requests = batch.map((s) => s.request); - const requestIds = requests.map((request) => request.id); - (0, http_1.http)("POST", this.url, this.headers, requests).then((raw) => { - // Requests with a single entry return as an object - const arr = Array.isArray(raw) ? raw : [raw]; - arr.forEach((el) => { - const req = batch.find((s) => s.request.id === el.id); - if (!req) - return; - const { reject, resolve } = req; - const response = (0, json_rpc_1.parseJsonRpcResponse)(el); - if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) { - reject(new Error(JSON.stringify(response.error))); - } - else { - resolve(response); - } - }); - }, (error) => { - for (const requestId of requestIds) { - const req = batch.find((s) => s.request.id === requestId); - if (!req) - return; - req.reject(error); - } - }); - } -} -exports.HttpBatchClient = HttpBatchClient; -//# sourceMappingURL=httpbatchclient.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/httpclient.js": -/*!****************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/httpclient.js ***! - \****************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.HttpClient = void 0; -const json_rpc_1 = __webpack_require__(/*! @cosmjs/json-rpc */ "./node_modules/@cosmjs/json-rpc/build/index.js"); -const http_1 = __webpack_require__(/*! ./http */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/http.js"); -const rpcclient_1 = __webpack_require__(/*! ./rpcclient */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/rpcclient.js"); -class HttpClient { - constructor(endpoint) { - if (typeof endpoint === "string") { - // accept host.name:port and assume http protocol - this.url = (0, rpcclient_1.hasProtocol)(endpoint) ? endpoint : "http://" + endpoint; - } - else { - this.url = endpoint.url; - this.headers = endpoint.headers; - } - } - disconnect() { - // nothing to be done - } - async execute(request) { - const response = (0, json_rpc_1.parseJsonRpcResponse)(await (0, http_1.http)("POST", this.url, this.headers, request)); - if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) { - throw new Error(JSON.stringify(response.error)); - } - return response; - } -} -exports.HttpClient = HttpClient; -//# sourceMappingURL=httpclient.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/index.js": -/*!***********************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/index.js ***! - \***********************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -// This folder contains Tendermint-specific RPC clients -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.WebsocketClient = exports.instanceOfRpcStreamingClient = exports.HttpClient = exports.HttpBatchClient = void 0; -var httpbatchclient_1 = __webpack_require__(/*! ./httpbatchclient */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/httpbatchclient.js"); -Object.defineProperty(exports, "HttpBatchClient", ({ enumerable: true, get: function () { return httpbatchclient_1.HttpBatchClient; } })); -var httpclient_1 = __webpack_require__(/*! ./httpclient */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/httpclient.js"); -Object.defineProperty(exports, "HttpClient", ({ enumerable: true, get: function () { return httpclient_1.HttpClient; } })); -var rpcclient_1 = __webpack_require__(/*! ./rpcclient */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/rpcclient.js"); -Object.defineProperty(exports, "instanceOfRpcStreamingClient", ({ enumerable: true, get: function () { return rpcclient_1.instanceOfRpcStreamingClient; } })); -var websocketclient_1 = __webpack_require__(/*! ./websocketclient */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/websocketclient.js"); -Object.defineProperty(exports, "WebsocketClient", ({ enumerable: true, get: function () { return websocketclient_1.WebsocketClient; } })); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/rpcclient.js": -/*!***************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/rpcclient.js ***! - \***************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.hasProtocol = exports.instanceOfRpcStreamingClient = void 0; -function instanceOfRpcStreamingClient(client) { - return typeof client.listen === "function"; -} -exports.instanceOfRpcStreamingClient = instanceOfRpcStreamingClient; -// Helpers for all RPC clients -function hasProtocol(url) { - return url.search("://") !== -1; -} -exports.hasProtocol = hasProtocol; -//# sourceMappingURL=rpcclient.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/websocketclient.js": -/*!*********************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/websocketclient.js ***! - \*********************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.WebsocketClient = void 0; -const json_rpc_1 = __webpack_require__(/*! @cosmjs/json-rpc */ "./node_modules/@cosmjs/json-rpc/build/index.js"); -const socket_1 = __webpack_require__(/*! @cosmjs/socket */ "./node_modules/@cosmjs/socket/build/index.js"); -const stream_1 = __webpack_require__(/*! @cosmjs/stream */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/stream/build/index.js"); -const xstream_1 = __webpack_require__(/*! xstream */ "./node_modules/xstream/index.js"); -const rpcclient_1 = __webpack_require__(/*! ./rpcclient */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/rpcclient.js"); -function defaultErrorHandler(error) { - throw error; -} -function toJsonRpcResponse(message) { - // this should never happen, but I want an alert if it does - if (message.type !== "message") { - throw new Error(`Unexcepted message type on websocket: ${message.type}`); - } - const jsonRpcEvent = (0, json_rpc_1.parseJsonRpcResponse)(JSON.parse(message.data)); - return jsonRpcEvent; -} -class RpcEventProducer { - constructor(request, socket) { - this.running = false; - this.subscriptions = []; - this.request = request; - this.socket = socket; - } - /** - * Implementation of Producer.start - */ - start(listener) { - if (this.running) { - throw Error("Already started. Please stop first before restarting."); - } - this.running = true; - this.connectToClient(listener); - this.socket.queueRequest(JSON.stringify(this.request)); - } - /** - * Implementation of Producer.stop - * - * Called by the stream when the stream's last listener stopped listening - * or when the producer completed. - */ - stop() { - this.running = false; - // Tell the server we are done in order to save resources. We cannot wait for the result. - // This may fail when socket connection is not open, thus ignore errors in queueRequest - const endRequest = { ...this.request, method: "unsubscribe" }; - try { - this.socket.queueRequest(JSON.stringify(endRequest)); - } - catch (error) { - if (error instanceof Error && error.message.match(/socket has disconnected/i)) { - // ignore - } - else { - throw error; - } - } - } - connectToClient(listener) { - const responseStream = this.socket.events.map(toJsonRpcResponse); - // this should unsubscribe itself, so doesn't need to be removed explicitly - const idSubscription = responseStream - .filter((response) => response.id === this.request.id) - .subscribe({ - next: (response) => { - if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) { - this.closeSubscriptions(); - listener.error(JSON.stringify(response.error)); - } - idSubscription.unsubscribe(); - }, - }); - // this will fire on a response (success or error) - // Tendermint adds an "#event" suffix for events that follow a previous subscription - // https://github.com/tendermint/tendermint/blob/v0.23.0/rpc/core/events.go#L107 - const idEventSubscription = responseStream - .filter((response) => response.id === this.request.id) - .subscribe({ - next: (response) => { - if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) { - this.closeSubscriptions(); - listener.error(JSON.stringify(response.error)); - } - else { - listener.next(response.result); - } - }, - }); - // this will fire in case the websocket disconnects cleanly - const nonResponseSubscription = responseStream.subscribe({ - error: (error) => { - this.closeSubscriptions(); - listener.error(error); - }, - complete: () => { - this.closeSubscriptions(); - listener.complete(); - }, - }); - this.subscriptions.push(idSubscription, idEventSubscription, nonResponseSubscription); - } - closeSubscriptions() { - for (const subscription of this.subscriptions) { - subscription.unsubscribe(); - } - // clear unused subscriptions - this.subscriptions = []; - } -} -class WebsocketClient { - constructor(baseUrl, onError = defaultErrorHandler) { - // Lazily create streams and use the same stream when listening to the same query twice. - // - // Creating streams is cheap since producer is not started as long as nobody listens to events. Thus this - // map is never cleared and there is no need to do so. But unsubscribe all the subscriptions! - this.subscriptionStreams = new Map(); - // accept host.name:port and assume ws protocol - // make sure we don't end up with ...//websocket - const path = baseUrl.endsWith("/") ? "websocket" : "/websocket"; - const cleanBaseUrl = (0, rpcclient_1.hasProtocol)(baseUrl) ? baseUrl : "ws://" + baseUrl; - this.url = cleanBaseUrl + path; - this.socket = new socket_1.ReconnectingSocket(this.url); - const errorSubscription = this.socket.events.subscribe({ - error: (error) => { - onError(error); - errorSubscription.unsubscribe(); - }, - }); - this.jsonRpcResponseStream = this.socket.events.map(toJsonRpcResponse); - this.socket.connect(); - } - async execute(request) { - const pendingResponse = this.responseForRequestId(request.id); - this.socket.queueRequest(JSON.stringify(request)); - const response = await pendingResponse; - if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) { - throw new Error(JSON.stringify(response.error)); - } - return response; - } - listen(request) { - if (request.method !== "subscribe") { - throw new Error(`Request method must be "subscribe" to start event listening`); - } - const query = request.params.query; - if (typeof query !== "string") { - throw new Error("request.params.query must be a string"); - } - if (!this.subscriptionStreams.has(query)) { - const producer = new RpcEventProducer(request, this.socket); - const stream = xstream_1.Stream.create(producer); - this.subscriptionStreams.set(query, stream); - } - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - return this.subscriptionStreams.get(query).filter((response) => response.query !== undefined); - } - /** - * Resolves as soon as websocket is connected. execute() queues requests automatically, - * so this should be required for testing purposes only. - */ - async connected() { - await this.socket.connectionStatus.waitFor(socket_1.ConnectionStatus.Connected); - } - disconnect() { - this.socket.disconnect(); - } - async responseForRequestId(id) { - return (0, stream_1.firstEvent)(this.jsonRpcResponseStream.filter((r) => r.id === id)); - } -} -exports.WebsocketClient = WebsocketClient; -//# sourceMappingURL=websocketclient.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/index.js": -/*!*********************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/index.js ***! - \*********************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.adaptor34 = void 0; -const hasher_1 = __webpack_require__(/*! ../hasher */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/hasher.js"); -const requests_1 = __webpack_require__(/*! ./requests */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/requests.js"); -const responses_1 = __webpack_require__(/*! ./responses */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/responses.js"); -exports.adaptor34 = { - params: requests_1.Params, - responses: responses_1.Responses, - hashTx: hasher_1.hashTx, - hashBlock: hasher_1.hashBlock, -}; -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/requests.js": -/*!************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/requests.js ***! - \************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Params = void 0; -/* eslint-disable @typescript-eslint/naming-convention */ -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/index.js"); -const inthelpers_1 = __webpack_require__(/*! ../../inthelpers */ "./node_modules/@cosmjs/tendermint-rpc/build/inthelpers.js"); -const jsonrpc_1 = __webpack_require__(/*! ../../jsonrpc */ "./node_modules/@cosmjs/tendermint-rpc/build/jsonrpc.js"); -const encodings_1 = __webpack_require__(/*! ../encodings */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/encodings.js"); -const requests = __importStar(__webpack_require__(/*! ../requests */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/requests.js")); -function encodeHeightParam(param) { - return { - height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.height), - }; -} -function encodeBlockchainRequestParams(param) { - return { - minHeight: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.minHeight), - maxHeight: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.maxHeight), - }; -} -function encodeBlockSearchParams(params) { - return { - query: params.query, - page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page), - per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page), - order_by: params.order_by, - }; -} -function encodeAbciQueryParams(params) { - return { - path: (0, encodings_1.assertNotEmpty)(params.path), - data: (0, encoding_1.toHex)(params.data), - height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.height), - prove: params.prove, - }; -} -function encodeBroadcastTxParams(params) { - return { - tx: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.tx)), - }; -} -function encodeTxParams(params) { - return { - hash: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.hash)), - prove: params.prove, - }; -} -function encodeTxSearchParams(params) { - return { - query: params.query, - prove: params.prove, - page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page), - per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page), - order_by: params.order_by, - }; -} -function encodeValidatorsParams(params) { - return { - height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.height), - page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page), - per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page), - }; -} -class Params { - static encodeAbciInfo(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method); - } - static encodeAbciQuery(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeAbciQueryParams(req.params)); - } - static encodeBlock(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params)); - } - static encodeBlockchain(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockchainRequestParams(req.params)); - } - static encodeBlockResults(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params)); - } - static encodeBlockSearch(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockSearchParams(req.params)); - } - static encodeBroadcastTx(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBroadcastTxParams(req.params)); - } - static encodeCommit(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params)); - } - static encodeGenesis(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method); - } - static encodeHealth(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method); - } - static encodeNumUnconfirmedTxs(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method); - } - static encodeStatus(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method); - } - static encodeSubscribe(req) { - const eventTag = { key: "tm.event", value: req.query.type }; - const query = requests.buildQuery({ tags: [eventTag], raw: req.query.raw }); - return (0, jsonrpc_1.createJsonRpcRequest)("subscribe", { query: query }); - } - static encodeTx(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxParams(req.params)); - } - // TODO: encode params for query string??? - static encodeTxSearch(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxSearchParams(req.params)); - } - static encodeValidators(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeValidatorsParams(req.params)); - } -} -exports.Params = Params; -//# sourceMappingURL=requests.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/responses.js": -/*!*************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/responses.js ***! - \*************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Responses = exports.decodeValidatorInfo = exports.decodeValidatorGenesis = exports.decodeValidatorUpdate = exports.decodeEvent = void 0; -/* eslint-disable @typescript-eslint/naming-convention */ -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/index.js"); -const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/index.js"); -const dates_1 = __webpack_require__(/*! ../../dates */ "./node_modules/@cosmjs/tendermint-rpc/build/dates.js"); -const inthelpers_1 = __webpack_require__(/*! ../../inthelpers */ "./node_modules/@cosmjs/tendermint-rpc/build/inthelpers.js"); -const types_1 = __webpack_require__(/*! ../../types */ "./node_modules/@cosmjs/tendermint-rpc/build/types.js"); -const encodings_1 = __webpack_require__(/*! ../encodings */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/encodings.js"); -const hasher_1 = __webpack_require__(/*! ../hasher */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/hasher.js"); -function decodeAbciInfo(data) { - return { - data: data.data, - lastBlockHeight: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.last_block_height), - lastBlockAppHash: (0, encodings_1.may)(encoding_1.fromBase64, data.last_block_app_hash), - }; -} -function decodeQueryProof(data) { - return { - ops: data.ops.map((op) => ({ - type: op.type, - key: (0, encoding_1.fromBase64)(op.key), - data: (0, encoding_1.fromBase64)(op.data), - })), - }; -} -function decodeAbciQuery(data) { - return { - key: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(data.key ?? "")), - value: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(data.value ?? "")), - proof: (0, encodings_1.may)(decodeQueryProof, data.proofOps), - height: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.height), - code: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.code), - codespace: (0, encodings_1.assertString)(data.codespace ?? ""), - index: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.index), - log: data.log, - info: (0, encodings_1.assertString)(data.info ?? ""), - }; -} -function decodeAttribute(attribute) { - return { - key: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(attribute.key)), - value: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(attribute.value ?? "")), - }; -} -function decodeAttributes(attributes) { - return (0, encodings_1.assertArray)(attributes).map(decodeAttribute); -} -function decodeEvent(event) { - return { - type: event.type, - attributes: event.attributes ? decodeAttributes(event.attributes) : [], - }; -} -exports.decodeEvent = decodeEvent; -function decodeEvents(events) { - return (0, encodings_1.assertArray)(events).map(decodeEvent); -} -function decodeTxData(data) { - return { - code: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNumber)(data.code ?? 0)), - codespace: data.codespace, - log: data.log, - data: (0, encodings_1.may)(encoding_1.fromBase64, data.data), - events: data.events ? decodeEvents(data.events) : [], - gasWanted: (0, inthelpers_1.apiToSmallInt)(data.gas_wanted ?? "0"), - gasUsed: (0, inthelpers_1.apiToSmallInt)(data.gas_used ?? "0"), - }; -} -function decodePubkey(data) { - if ("Sum" in data) { - // we don't need to check type because we're checking algorithm - const [[algorithm, value]] = Object.entries(data.Sum.value); - (0, utils_1.assert)(algorithm === "ed25519" || algorithm === "secp256k1", `unknown pubkey type: ${algorithm}`); - return { - algorithm, - data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(value)), - }; - } - else { - switch (data.type) { - // go-amino special code - case "tendermint/PubKeyEd25519": - return { - algorithm: "ed25519", - data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)), - }; - case "tendermint/PubKeySecp256k1": - return { - algorithm: "secp256k1", - data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)), - }; - default: - throw new Error(`unknown pubkey type: ${data.type}`); - } - } -} -/** - * Note: we do not parse block.time_iota_ms for now because of this CHANGELOG entry - * - * > Add time_iota_ms to block's consensus parameters (not exposed to the application) - * https://github.com/tendermint/tendermint/blob/master/CHANGELOG.md#v0310 - */ -function decodeBlockParams(data) { - return { - maxBytes: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_bytes)), - maxGas: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_gas)), - }; -} -function decodeEvidenceParams(data) { - return { - maxAgeNumBlocks: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_age_num_blocks)), - maxAgeDuration: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_age_duration)), - }; -} -function decodeConsensusParams(data) { - return { - block: decodeBlockParams((0, encodings_1.assertObject)(data.block)), - evidence: decodeEvidenceParams((0, encodings_1.assertObject)(data.evidence)), - }; -} -function decodeValidatorUpdate(data) { - return { - pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)), - votingPower: (0, inthelpers_1.apiToBigInt)(data.power ?? "0"), - }; -} -exports.decodeValidatorUpdate = decodeValidatorUpdate; -function decodeBlockResults(data) { - return { - height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), - results: (data.txs_results || []).map(decodeTxData), - validatorUpdates: (data.validator_updates || []).map(decodeValidatorUpdate), - consensusUpdates: (0, encodings_1.may)(decodeConsensusParams, data.consensus_param_updates), - beginBlockEvents: decodeEvents(data.begin_block_events || []), - endBlockEvents: decodeEvents(data.end_block_events || []), - }; -} -function decodeBlockId(data) { - return { - hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)), - parts: { - total: (0, encodings_1.assertNotEmpty)(data.parts.total), - hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.parts.hash)), - }, - }; -} -function decodeBlockVersion(data) { - return { - block: (0, inthelpers_1.apiToSmallInt)(data.block), - app: (0, inthelpers_1.apiToSmallInt)(data.app ?? 0), - }; -} -function decodeHeader(data) { - return { - version: decodeBlockVersion(data.version), - chainId: (0, encodings_1.assertNotEmpty)(data.chain_id), - height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), - time: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.time)), - // When there is no last block ID (i.e. this block's height is 1), we get an empty structure like this: - // { hash: '', parts: { total: 0, hash: '' } } - lastBlockId: data.last_block_id.hash ? decodeBlockId(data.last_block_id) : null, - lastCommitHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_commit_hash)), - dataHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.data_hash)), - validatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.validators_hash)), - nextValidatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.next_validators_hash)), - consensusHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.consensus_hash)), - appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)), - lastResultsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_results_hash)), - evidenceHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.evidence_hash)), - proposerAddress: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.proposer_address)), - }; -} -function decodeBlockMeta(data) { - return { - blockId: decodeBlockId(data.block_id), - blockSize: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.block_size)), - header: decodeHeader(data.header), - numTxs: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.num_txs)), - }; -} -function decodeBlockchain(data) { - return { - lastHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.last_height)), - blockMetas: (0, encodings_1.assertArray)(data.block_metas).map(decodeBlockMeta), - }; -} -function decodeBroadcastTxSync(data) { - return { - ...decodeTxData(data), - hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)), - }; -} -function decodeBroadcastTxCommit(data) { - return { - height: (0, inthelpers_1.apiToSmallInt)(data.height), - hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)), - checkTx: decodeTxData((0, encodings_1.assertObject)(data.check_tx)), - deliverTx: (0, encodings_1.may)(decodeTxData, data.deliver_tx), - }; -} -function decodeBlockIdFlag(blockIdFlag) { - (0, utils_1.assert)(blockIdFlag in types_1.BlockIdFlag); - return blockIdFlag; -} -/** - * In some cases a timestamp is optional and set to the value 0 in Go. - * This can lead to strings like "0001-01-01T00:00:00Z" (see https://github.com/cosmos/cosmjs/issues/704#issuecomment-797122415). - * This decoder tries to clean up such encoding from the API and turn them - * into undefined values. - */ -function decodeOptionalTime(timestamp) { - const nonZeroTime = timestamp && !timestamp.startsWith("0001-01-01"); - return nonZeroTime ? (0, dates_1.fromRfc3339WithNanoseconds)(timestamp) : undefined; -} -function decodeCommitSignature(data) { - return { - blockIdFlag: decodeBlockIdFlag(data.block_id_flag), - validatorAddress: data.validator_address ? (0, encoding_1.fromHex)(data.validator_address) : undefined, - timestamp: decodeOptionalTime(data.timestamp), - signature: data.signature ? (0, encoding_1.fromBase64)(data.signature) : undefined, - }; -} -function decodeCommit(data) { - return { - blockId: decodeBlockId((0, encodings_1.assertObject)(data.block_id)), - height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), - round: (0, inthelpers_1.apiToSmallInt)(data.round), - signatures: (0, encodings_1.assertArray)(data.signatures).map(decodeCommitSignature), - }; -} -function decodeCommitResponse(data) { - return { - canonical: (0, encodings_1.assertBoolean)(data.canonical), - header: decodeHeader(data.signed_header.header), - commit: decodeCommit(data.signed_header.commit), - }; -} -function decodeValidatorGenesis(data) { - return { - address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)), - pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)), - votingPower: (0, inthelpers_1.apiToBigInt)((0, encodings_1.assertNotEmpty)(data.power)), - }; -} -exports.decodeValidatorGenesis = decodeValidatorGenesis; -function decodeGenesis(data) { - return { - genesisTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.genesis_time)), - chainId: (0, encodings_1.assertNotEmpty)(data.chain_id), - consensusParams: decodeConsensusParams(data.consensus_params), - validators: data.validators ? (0, encodings_1.assertArray)(data.validators).map(decodeValidatorGenesis) : [], - appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)), - appState: data.app_state, - }; -} -function decodeValidatorInfo(data) { - return { - pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)), - votingPower: (0, inthelpers_1.apiToBigInt)((0, encodings_1.assertNotEmpty)(data.voting_power)), - address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)), - proposerPriority: data.proposer_priority ? (0, inthelpers_1.apiToSmallInt)(data.proposer_priority) : undefined, - }; -} -exports.decodeValidatorInfo = decodeValidatorInfo; -function decodeNodeInfo(data) { - return { - id: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.id)), - listenAddr: (0, encodings_1.assertNotEmpty)(data.listen_addr), - network: (0, encodings_1.assertNotEmpty)(data.network), - version: (0, encodings_1.assertString)(data.version), - channels: (0, encodings_1.assertNotEmpty)(data.channels), - moniker: (0, encodings_1.assertNotEmpty)(data.moniker), - other: (0, encodings_1.dictionaryToStringMap)(data.other), - protocolVersion: { - app: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.app)), - block: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.block)), - p2p: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.p2p)), - }, - }; -} -function decodeSyncInfo(data) { - return { - latestBlockHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_block_hash)), - latestAppHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_app_hash)), - latestBlockTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.latest_block_time)), - latestBlockHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.latest_block_height)), - catchingUp: (0, encodings_1.assertBoolean)(data.catching_up), - }; -} -function decodeStatus(data) { - return { - nodeInfo: decodeNodeInfo(data.node_info), - syncInfo: decodeSyncInfo(data.sync_info), - validatorInfo: decodeValidatorInfo(data.validator_info), - }; -} -function decodeTxProof(data) { - return { - data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.data)), - rootHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.root_hash)), - proof: { - total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.proof.total)), - index: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.proof.index)), - leafHash: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.proof.leaf_hash)), - aunts: (0, encodings_1.assertArray)(data.proof.aunts).map(encoding_1.fromBase64), - }, - }; -} -function decodeTxResponse(data) { - return { - tx: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx)), - result: decodeTxData((0, encodings_1.assertObject)(data.tx_result)), - height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), - index: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNumber)(data.index)), - hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)), - proof: (0, encodings_1.may)(decodeTxProof, data.proof), - }; -} -function decodeTxSearch(data) { - return { - totalCount: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_count)), - txs: (0, encodings_1.assertArray)(data.txs).map(decodeTxResponse), - }; -} -function decodeTxEvent(data) { - const tx = (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx)); - return { - tx: tx, - hash: (0, hasher_1.hashTx)(tx), - result: decodeTxData(data.result), - height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), - }; -} -function decodeValidators(data) { - return { - blockHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.block_height)), - validators: (0, encodings_1.assertArray)(data.validators).map(decodeValidatorInfo), - count: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.count)), - total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total)), - }; -} -function decodeBlock(data) { - return { - header: decodeHeader((0, encodings_1.assertObject)(data.header)), - // For the block at height 1, last commit is not set. This is represented in an empty object like this: - // { height: '0', round: 0, block_id: { hash: '', parts: [Object] }, signatures: [] } - lastCommit: data.last_commit.block_id.hash ? decodeCommit((0, encodings_1.assertObject)(data.last_commit)) : null, - txs: data.data.txs ? (0, encodings_1.assertArray)(data.data.txs).map(encoding_1.fromBase64) : [], - // Lift up .evidence.evidence to just .evidence - // See https://github.com/tendermint/tendermint/issues/7697 - evidence: data.evidence?.evidence ?? [], - }; -} -function decodeBlockResponse(data) { - return { - blockId: decodeBlockId(data.block_id), - block: decodeBlock(data.block), - }; -} -function decodeBlockSearch(data) { - return { - totalCount: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_count)), - blocks: (0, encodings_1.assertArray)(data.blocks).map(decodeBlockResponse), - }; -} -function decodeNumUnconfirmedTxs(data) { - return { - total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total)), - totalBytes: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_bytes)), - }; -} -class Responses { - static decodeAbciInfo(response) { - return decodeAbciInfo((0, encodings_1.assertObject)(response.result.response)); - } - static decodeAbciQuery(response) { - return decodeAbciQuery((0, encodings_1.assertObject)(response.result.response)); - } - static decodeBlock(response) { - return decodeBlockResponse(response.result); - } - static decodeBlockResults(response) { - return decodeBlockResults(response.result); - } - static decodeBlockSearch(response) { - return decodeBlockSearch(response.result); - } - static decodeBlockchain(response) { - return decodeBlockchain(response.result); - } - static decodeBroadcastTxSync(response) { - return decodeBroadcastTxSync(response.result); - } - static decodeBroadcastTxAsync(response) { - return Responses.decodeBroadcastTxSync(response); - } - static decodeBroadcastTxCommit(response) { - return decodeBroadcastTxCommit(response.result); - } - static decodeCommit(response) { - return decodeCommitResponse(response.result); - } - static decodeGenesis(response) { - return decodeGenesis((0, encodings_1.assertObject)(response.result.genesis)); - } - static decodeHealth() { - return null; - } - static decodeNumUnconfirmedTxs(response) { - return decodeNumUnconfirmedTxs(response.result); - } - static decodeStatus(response) { - return decodeStatus(response.result); - } - static decodeNewBlockEvent(event) { - return decodeBlock(event.data.value.block); - } - static decodeNewBlockHeaderEvent(event) { - return decodeHeader(event.data.value.header); - } - static decodeTxEvent(event) { - return decodeTxEvent(event.data.value.TxResult); - } - static decodeTx(response) { - return decodeTxResponse(response.result); - } - static decodeTxSearch(response) { - return decodeTxSearch(response.result); - } - static decodeValidators(response) { - return decodeValidators(response.result); - } -} -exports.Responses = Responses; -//# sourceMappingURL=responses.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/encodings.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/encodings.js ***! - \*****************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.encodeBlockId = exports.encodeVersion = exports.encodeBytes = exports.encodeTime = exports.encodeUvarint = exports.encodeString = exports.dictionaryToStringMap = exports.may = exports.assertNotEmpty = exports.assertObject = exports.assertArray = exports.assertNumber = exports.assertString = exports.assertBoolean = exports.assertSet = void 0; -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/index.js"); -/** - * A runtime checker that ensures a given value is set (i.e. not undefined or null) - * - * This is used when you want to verify that data at runtime matches the expected type. - */ -function assertSet(value) { - if (value === undefined) { - throw new Error("Value must not be undefined"); - } - if (value === null) { - throw new Error("Value must not be null"); - } - return value; -} -exports.assertSet = assertSet; -/** - * A runtime checker that ensures a given value is a boolean - * - * This is used when you want to verify that data at runtime matches the expected type. - * This implies assertSet. - */ -function assertBoolean(value) { - assertSet(value); - if (typeof value !== "boolean") { - throw new Error("Value must be a boolean"); - } - return value; -} -exports.assertBoolean = assertBoolean; -/** - * A runtime checker that ensures a given value is a string. - * - * This is used when you want to verify that data at runtime matches the expected type. - * This implies assertSet. - */ -function assertString(value) { - assertSet(value); - if (typeof value !== "string") { - throw new Error("Value must be a string"); - } - return value; -} -exports.assertString = assertString; -/** - * A runtime checker that ensures a given value is a number - * - * This is used when you want to verify that data at runtime matches the expected type. - * This implies assertSet. - */ -function assertNumber(value) { - assertSet(value); - if (typeof value !== "number") { - throw new Error("Value must be a number"); - } - return value; -} -exports.assertNumber = assertNumber; -/** - * A runtime checker that ensures a given value is an array - * - * This is used when you want to verify that data at runtime matches the expected type. - * This implies assertSet. - */ -function assertArray(value) { - assertSet(value); - if (!Array.isArray(value)) { - throw new Error("Value must be a an array"); - } - return value; -} -exports.assertArray = assertArray; -/** - * A runtime checker that ensures a given value is an object in the sense of JSON - * (an unordered collection of key–value pairs where the keys are strings) - * - * This is used when you want to verify that data at runtime matches the expected type. - * This implies assertSet. - */ -function assertObject(value) { - assertSet(value); - if (typeof value !== "object") { - throw new Error("Value must be an object"); - } - // Exclude special kind of objects like Array, Date or Uint8Array - // Object.prototype.toString() returns a specified value: - // http://www.ecma-international.org/ecma-262/7.0/index.html#sec-object.prototype.tostring - if (Object.prototype.toString.call(value) !== "[object Object]") { - throw new Error("Value must be a simple object"); - } - return value; -} -exports.assertObject = assertObject; -/** - * Throws an error if value matches the empty value for the - * given type (array/string of length 0, number of value 0, ...) - * - * Otherwise returns the value. - * - * This implies assertSet - */ -function assertNotEmpty(value) { - assertSet(value); - if (typeof value === "number" && value === 0) { - throw new Error("must provide a non-zero value"); - } - else if (value.length === 0) { - throw new Error("must provide a non-empty value"); - } - return value; -} -exports.assertNotEmpty = assertNotEmpty; -// may will run the transform if value is defined, otherwise returns undefined -function may(transform, value) { - return value === undefined || value === null ? undefined : transform(value); -} -exports.may = may; -function dictionaryToStringMap(obj) { - const out = new Map(); - for (const key of Object.keys(obj)) { - const value = obj[key]; - if (typeof value !== "string") { - throw new Error("Found dictionary value of type other than string"); - } - out.set(key, value); - } - return out; -} -exports.dictionaryToStringMap = dictionaryToStringMap; -// Encodings needed for hashing block headers -// Several of these functions are inspired by https://github.com/nomic-io/js-tendermint/blob/tendermint-0.30/src/ -// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L193-L195 -function encodeString(s) { - const utf8 = (0, encoding_1.toUtf8)(s); - return Uint8Array.from([utf8.length, ...utf8]); -} -exports.encodeString = encodeString; -// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L79-L87 -function encodeUvarint(n) { - return n >= 0x80 - ? // eslint-disable-next-line no-bitwise - Uint8Array.from([(n & 0xff) | 0x80, ...encodeUvarint(n >> 7)]) - : // eslint-disable-next-line no-bitwise - Uint8Array.from([n & 0xff]); -} -exports.encodeUvarint = encodeUvarint; -// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L134-L178 -function encodeTime(time) { - const milliseconds = time.getTime(); - const seconds = Math.floor(milliseconds / 1000); - const secondsArray = seconds ? [0x08, ...encodeUvarint(seconds)] : new Uint8Array(); - const nanoseconds = (time.nanoseconds || 0) + (milliseconds % 1000) * 1e6; - const nanosecondsArray = nanoseconds ? [0x10, ...encodeUvarint(nanoseconds)] : new Uint8Array(); - return Uint8Array.from([...secondsArray, ...nanosecondsArray]); -} -exports.encodeTime = encodeTime; -// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L180-L187 -function encodeBytes(bytes) { - // Since we're only dealing with short byte arrays we don't need a full VarBuffer implementation yet - if (bytes.length >= 0x80) - throw new Error("Not implemented for byte arrays of length 128 or more"); - return bytes.length ? Uint8Array.from([bytes.length, ...bytes]) : new Uint8Array(); -} -exports.encodeBytes = encodeBytes; -function encodeVersion(version) { - const blockArray = version.block - ? Uint8Array.from([0x08, ...encodeUvarint(version.block)]) - : new Uint8Array(); - const appArray = version.app ? Uint8Array.from([0x10, ...encodeUvarint(version.app)]) : new Uint8Array(); - return Uint8Array.from([...blockArray, ...appArray]); -} -exports.encodeVersion = encodeVersion; -function encodeBlockId(blockId) { - return Uint8Array.from([ - 0x0a, - blockId.hash.length, - ...blockId.hash, - 0x12, - blockId.parts.hash.length + 4, - 0x08, - blockId.parts.total, - 0x12, - blockId.parts.hash.length, - ...blockId.parts.hash, - ]); -} -exports.encodeBlockId = encodeBlockId; -//# sourceMappingURL=encodings.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/hasher.js": -/*!**************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/hasher.js ***! - \**************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.hashBlock = exports.hashTx = void 0; -const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/index.js"); -const encodings_1 = __webpack_require__(/*! ./encodings */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/encodings.js"); -// hash is sha256 -// https://github.com/tendermint/tendermint/blob/master/UPGRADING.md#v0260 -function hashTx(tx) { - return (0, crypto_1.sha256)(tx); -} -exports.hashTx = hashTx; -function getSplitPoint(n) { - if (n < 1) - throw new Error("Cannot split an empty tree"); - const largestPowerOf2 = 2 ** Math.floor(Math.log2(n)); - return largestPowerOf2 < n ? largestPowerOf2 : largestPowerOf2 / 2; -} -function hashLeaf(leaf) { - const hash = new crypto_1.Sha256(Uint8Array.from([0])); - hash.update(leaf); - return hash.digest(); -} -function hashInner(left, right) { - const hash = new crypto_1.Sha256(Uint8Array.from([1])); - hash.update(left); - hash.update(right); - return hash.digest(); -} -// See https://github.com/tendermint/tendermint/blob/v0.31.8/docs/spec/blockchain/encoding.md#merkleroot -// Note: the hashes input may not actually be hashes, especially before a recursive call -function hashTree(hashes) { - switch (hashes.length) { - case 0: - throw new Error("Cannot hash empty tree"); - case 1: - return hashLeaf(hashes[0]); - default: { - const slicePoint = getSplitPoint(hashes.length); - const left = hashTree(hashes.slice(0, slicePoint)); - const right = hashTree(hashes.slice(slicePoint)); - return hashInner(left, right); - } - } -} -function hashBlock(header) { - if (!header.lastBlockId) { - throw new Error("Hashing a block header with no last block ID (i.e. header at height 1) is not supported. If you need this, contributions are welcome. Please add documentation and test vectors for this case."); - } - const encodedFields = [ - (0, encodings_1.encodeVersion)(header.version), - (0, encodings_1.encodeString)(header.chainId), - (0, encodings_1.encodeUvarint)(header.height), - (0, encodings_1.encodeTime)(header.time), - (0, encodings_1.encodeBlockId)(header.lastBlockId), - (0, encodings_1.encodeBytes)(header.lastCommitHash), - (0, encodings_1.encodeBytes)(header.dataHash), - (0, encodings_1.encodeBytes)(header.validatorsHash), - (0, encodings_1.encodeBytes)(header.nextValidatorsHash), - (0, encodings_1.encodeBytes)(header.consensusHash), - (0, encodings_1.encodeBytes)(header.appHash), - (0, encodings_1.encodeBytes)(header.lastResultsHash), - (0, encodings_1.encodeBytes)(header.evidenceHash), - (0, encodings_1.encodeBytes)(header.proposerAddress), - ]; - return hashTree(encodedFields); -} -exports.hashBlock = hashBlock; -//# sourceMappingURL=hasher.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/index.js": -/*!*************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/index.js ***! - \*************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -// Note: all exports in this module are publicly available via -// `import { tendermint34 } from "@cosmjs/tendermint-rpc"` -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Tendermint34Client = exports.VoteType = exports.broadcastTxSyncSuccess = exports.broadcastTxCommitSuccess = exports.SubscriptionEventType = exports.Method = void 0; -var requests_1 = __webpack_require__(/*! ./requests */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/requests.js"); -Object.defineProperty(exports, "Method", ({ enumerable: true, get: function () { return requests_1.Method; } })); -Object.defineProperty(exports, "SubscriptionEventType", ({ enumerable: true, get: function () { return requests_1.SubscriptionEventType; } })); -var responses_1 = __webpack_require__(/*! ./responses */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/responses.js"); -Object.defineProperty(exports, "broadcastTxCommitSuccess", ({ enumerable: true, get: function () { return responses_1.broadcastTxCommitSuccess; } })); -Object.defineProperty(exports, "broadcastTxSyncSuccess", ({ enumerable: true, get: function () { return responses_1.broadcastTxSyncSuccess; } })); -Object.defineProperty(exports, "VoteType", ({ enumerable: true, get: function () { return responses_1.VoteType; } })); -var tendermint34client_1 = __webpack_require__(/*! ./tendermint34client */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/tendermint34client.js"); -Object.defineProperty(exports, "Tendermint34Client", ({ enumerable: true, get: function () { return tendermint34client_1.Tendermint34Client; } })); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/requests.js": -/*!****************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/requests.js ***! - \****************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -/* eslint-disable @typescript-eslint/naming-convention */ -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.buildQuery = exports.SubscriptionEventType = exports.Method = void 0; -/** - * RPC methods as documented in https://docs.tendermint.com/master/rpc/ - * - * Enum raw value must match the spelling in the "shell" example call (snake_case) - */ -var Method; -(function (Method) { - Method["AbciInfo"] = "abci_info"; - Method["AbciQuery"] = "abci_query"; - Method["Block"] = "block"; - /** Get block headers for minHeight <= height <= maxHeight. */ - Method["Blockchain"] = "blockchain"; - Method["BlockResults"] = "block_results"; - Method["BlockSearch"] = "block_search"; - Method["BroadcastTxAsync"] = "broadcast_tx_async"; - Method["BroadcastTxSync"] = "broadcast_tx_sync"; - Method["BroadcastTxCommit"] = "broadcast_tx_commit"; - Method["Commit"] = "commit"; - Method["Genesis"] = "genesis"; - Method["Health"] = "health"; - Method["NumUnconfirmedTxs"] = "num_unconfirmed_txs"; - Method["Status"] = "status"; - Method["Subscribe"] = "subscribe"; - Method["Tx"] = "tx"; - Method["TxSearch"] = "tx_search"; - Method["Validators"] = "validators"; - Method["Unsubscribe"] = "unsubscribe"; -})(Method = exports.Method || (exports.Method = {})); -/** - * Raw values must match the tendermint event name - * - * @see https://godoc.org/github.com/tendermint/tendermint/types#pkg-constants - */ -var SubscriptionEventType; -(function (SubscriptionEventType) { - SubscriptionEventType["NewBlock"] = "NewBlock"; - SubscriptionEventType["NewBlockHeader"] = "NewBlockHeader"; - SubscriptionEventType["Tx"] = "Tx"; -})(SubscriptionEventType = exports.SubscriptionEventType || (exports.SubscriptionEventType = {})); -function buildQuery(components) { - const tags = components.tags ? components.tags : []; - const tagComponents = tags.map((tag) => `${tag.key}='${tag.value}'`); - const rawComponents = components.raw ? [components.raw] : []; - return [...tagComponents, ...rawComponents].join(" AND "); -} -exports.buildQuery = buildQuery; -//# sourceMappingURL=requests.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/responses.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/responses.js ***! - \*****************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.VoteType = exports.broadcastTxCommitSuccess = exports.broadcastTxSyncSuccess = void 0; -/** - * Returns true iff transaction made it successfully into the transaction pool - */ -function broadcastTxSyncSuccess(res) { - // code must be 0 on success - return res.code === 0; -} -exports.broadcastTxSyncSuccess = broadcastTxSyncSuccess; -/** - * Returns true iff transaction made it successfully into a block - * (i.e. success in `check_tx` and `deliver_tx` field) - */ -function broadcastTxCommitSuccess(response) { - // code must be 0 on success - // deliverTx may be present but empty on failure - return response.checkTx.code === 0 && !!response.deliverTx && response.deliverTx.code === 0; -} -exports.broadcastTxCommitSuccess = broadcastTxCommitSuccess; -/** - * raw values from https://github.com/tendermint/tendermint/blob/dfa9a9a30a666132425b29454e90a472aa579a48/types/vote.go#L44 - */ -var VoteType; -(function (VoteType) { - VoteType[VoteType["PreVote"] = 1] = "PreVote"; - VoteType[VoteType["PreCommit"] = 2] = "PreCommit"; -})(VoteType = exports.VoteType || (exports.VoteType = {})); -//# sourceMappingURL=responses.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/tendermint34client.js": -/*!**************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/tendermint34client.js ***! - \**************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Tendermint34Client = void 0; -const jsonrpc_1 = __webpack_require__(/*! ../jsonrpc */ "./node_modules/@cosmjs/tendermint-rpc/build/jsonrpc.js"); -const rpcclients_1 = __webpack_require__(/*! ../rpcclients */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/index.js"); -const adaptor_1 = __webpack_require__(/*! ./adaptor */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/index.js"); -const requests = __importStar(__webpack_require__(/*! ./requests */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/requests.js")); -class Tendermint34Client { - /** - * Use `Tendermint34Client.connect` or `Tendermint34Client.create` to create an instance. - */ - constructor(client) { - this.client = client; - this.p = adaptor_1.adaptor34.params; - this.r = adaptor_1.adaptor34.responses; - } - /** - * Creates a new Tendermint client for the given endpoint. - * - * Uses HTTP when the URL schema is http or https. Uses WebSockets otherwise. - */ - static async connect(endpoint) { - let rpcClient; - if (typeof endpoint === "object") { - rpcClient = new rpcclients_1.HttpClient(endpoint); - } - else { - const useHttp = endpoint.startsWith("http://") || endpoint.startsWith("https://"); - rpcClient = useHttp ? new rpcclients_1.HttpClient(endpoint) : new rpcclients_1.WebsocketClient(endpoint); - } - // For some very strange reason I don't understand, tests start to fail on some systems - // (our CI) when skipping the status call before doing other queries. Sleeping a little - // while did not help. Thus we query the version as a way to say "hi" to the backend, - // even in cases where we don't use the result. - const _version = await this.detectVersion(rpcClient); - return Tendermint34Client.create(rpcClient); - } - /** - * Creates a new Tendermint client given an RPC client. - */ - static async create(rpcClient) { - return new Tendermint34Client(rpcClient); - } - static async detectVersion(client) { - const req = (0, jsonrpc_1.createJsonRpcRequest)(requests.Method.Status); - const response = await client.execute(req); - const result = response.result; - if (!result || !result.node_info) { - throw new Error("Unrecognized format for status response"); - } - const version = result.node_info.version; - if (typeof version !== "string") { - throw new Error("Unrecognized version format: must be string"); - } - return version; - } - disconnect() { - this.client.disconnect(); - } - async abciInfo() { - const query = { method: requests.Method.AbciInfo }; - return this.doCall(query, this.p.encodeAbciInfo, this.r.decodeAbciInfo); - } - async abciQuery(params) { - const query = { params: params, method: requests.Method.AbciQuery }; - return this.doCall(query, this.p.encodeAbciQuery, this.r.decodeAbciQuery); - } - async block(height) { - const query = { method: requests.Method.Block, params: { height: height } }; - return this.doCall(query, this.p.encodeBlock, this.r.decodeBlock); - } - async blockResults(height) { - const query = { - method: requests.Method.BlockResults, - params: { height: height }, - }; - return this.doCall(query, this.p.encodeBlockResults, this.r.decodeBlockResults); - } - /** - * Search for events that are in a block. - * - * NOTE - * This method will error on any node that is running a Tendermint version lower than 0.34.9. - * - * @see https://docs.tendermint.com/master/rpc/#/Info/block_search - */ - async blockSearch(params) { - const query = { params: params, method: requests.Method.BlockSearch }; - const resp = await this.doCall(query, this.p.encodeBlockSearch, this.r.decodeBlockSearch); - return { - ...resp, - // make sure we sort by height, as tendermint may be sorting by string value of the height - blocks: [...resp.blocks].sort((a, b) => a.block.header.height - b.block.header.height), - }; - } - // this should paginate through all blockSearch options to ensure it returns all results. - // starts with page 1 or whatever was provided (eg. to start on page 7) - // - // NOTE - // This method will error on any node that is running a Tendermint version lower than 0.34.9. - async blockSearchAll(params) { - let page = params.page || 1; - const blocks = []; - let done = false; - while (!done) { - const resp = await this.blockSearch({ ...params, page: page }); - blocks.push(...resp.blocks); - if (blocks.length < resp.totalCount) { - page++; - } - else { - done = true; - } - } - // make sure we sort by height, as tendermint may be sorting by string value of the height - // and the earlier items may be in a higher page than the later items - blocks.sort((a, b) => a.block.header.height - b.block.header.height); - return { - totalCount: blocks.length, - blocks: blocks, - }; - } - /** - * Queries block headers filtered by minHeight <= height <= maxHeight. - * - * @param minHeight The minimum height to be included in the result. Defaults to 0. - * @param maxHeight The maximum height to be included in the result. Defaults to infinity. - */ - async blockchain(minHeight, maxHeight) { - const query = { - method: requests.Method.Blockchain, - params: { - minHeight: minHeight, - maxHeight: maxHeight, - }, - }; - return this.doCall(query, this.p.encodeBlockchain, this.r.decodeBlockchain); - } - /** - * Broadcast transaction to mempool and wait for response - * - * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_sync - */ - async broadcastTxSync(params) { - const query = { params: params, method: requests.Method.BroadcastTxSync }; - return this.doCall(query, this.p.encodeBroadcastTx, this.r.decodeBroadcastTxSync); - } - /** - * Broadcast transaction to mempool and do not wait for result - * - * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_async - */ - async broadcastTxAsync(params) { - const query = { params: params, method: requests.Method.BroadcastTxAsync }; - return this.doCall(query, this.p.encodeBroadcastTx, this.r.decodeBroadcastTxAsync); - } - /** - * Broadcast transaction to mempool and wait for block - * - * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_commit - */ - async broadcastTxCommit(params) { - const query = { params: params, method: requests.Method.BroadcastTxCommit }; - return this.doCall(query, this.p.encodeBroadcastTx, this.r.decodeBroadcastTxCommit); - } - async commit(height) { - const query = { method: requests.Method.Commit, params: { height: height } }; - return this.doCall(query, this.p.encodeCommit, this.r.decodeCommit); - } - async genesis() { - const query = { method: requests.Method.Genesis }; - return this.doCall(query, this.p.encodeGenesis, this.r.decodeGenesis); - } - async health() { - const query = { method: requests.Method.Health }; - return this.doCall(query, this.p.encodeHealth, this.r.decodeHealth); - } - async numUnconfirmedTxs() { - const query = { method: requests.Method.NumUnconfirmedTxs }; - return this.doCall(query, this.p.encodeNumUnconfirmedTxs, this.r.decodeNumUnconfirmedTxs); - } - async status() { - const query = { method: requests.Method.Status }; - return this.doCall(query, this.p.encodeStatus, this.r.decodeStatus); - } - subscribeNewBlock() { - const request = { - method: requests.Method.Subscribe, - query: { type: requests.SubscriptionEventType.NewBlock }, - }; - return this.subscribe(request, this.r.decodeNewBlockEvent); - } - subscribeNewBlockHeader() { - const request = { - method: requests.Method.Subscribe, - query: { type: requests.SubscriptionEventType.NewBlockHeader }, - }; - return this.subscribe(request, this.r.decodeNewBlockHeaderEvent); - } - subscribeTx(query) { - const request = { - method: requests.Method.Subscribe, - query: { - type: requests.SubscriptionEventType.Tx, - raw: query, - }, - }; - return this.subscribe(request, this.r.decodeTxEvent); - } - /** - * Get a single transaction by hash - * - * @see https://docs.tendermint.com/master/rpc/#/Info/tx - */ - async tx(params) { - const query = { params: params, method: requests.Method.Tx }; - return this.doCall(query, this.p.encodeTx, this.r.decodeTx); - } - /** - * Search for transactions that are in a block - * - * @see https://docs.tendermint.com/master/rpc/#/Info/tx_search - */ - async txSearch(params) { - const query = { params: params, method: requests.Method.TxSearch }; - return this.doCall(query, this.p.encodeTxSearch, this.r.decodeTxSearch); - } - // this should paginate through all txSearch options to ensure it returns all results. - // starts with page 1 or whatever was provided (eg. to start on page 7) - async txSearchAll(params) { - let page = params.page || 1; - const txs = []; - let done = false; - while (!done) { - const resp = await this.txSearch({ ...params, page: page }); - txs.push(...resp.txs); - if (txs.length < resp.totalCount) { - page++; - } - else { - done = true; - } - } - return { - totalCount: txs.length, - txs: txs, - }; - } - async validators(params) { - const query = { - method: requests.Method.Validators, - params: params, - }; - return this.doCall(query, this.p.encodeValidators, this.r.decodeValidators); - } - async validatorsAll(height) { - const validators = []; - let page = 1; - let done = false; - let blockHeight = height; - while (!done) { - const response = await this.validators({ - per_page: 50, - height: blockHeight, - page: page, - }); - validators.push(...response.validators); - blockHeight = blockHeight || response.blockHeight; - if (validators.length < response.total) { - page++; - } - else { - done = true; - } - } - return { - // NOTE: Default value is for type safety but this should always be set - blockHeight: blockHeight ?? 0, - count: validators.length, - total: validators.length, - validators: validators, - }; - } - // doCall is a helper to handle the encode/call/decode logic - async doCall(request, encode, decode) { - const req = encode(request); - const result = await this.client.execute(req); - return decode(result); - } - subscribe(request, decode) { - if (!(0, rpcclients_1.instanceOfRpcStreamingClient)(this.client)) { - throw new Error("This RPC client type cannot subscribe to events"); - } - const req = this.p.encodeSubscribe(request); - const eventStream = this.client.listen(req); - return eventStream.map((event) => { - return decode(event); - }); - } -} -exports.Tendermint34Client = Tendermint34Client; -//# sourceMappingURL=tendermint34client.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/index.js": -/*!*********************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/index.js ***! - \*********************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.adaptor37 = void 0; -const hasher_1 = __webpack_require__(/*! ../hasher */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/hasher.js"); -const requests_1 = __webpack_require__(/*! ./requests */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/requests.js"); -const responses_1 = __webpack_require__(/*! ./responses */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/responses.js"); -exports.adaptor37 = { - params: requests_1.Params, - responses: responses_1.Responses, - hashTx: hasher_1.hashTx, - hashBlock: hasher_1.hashBlock, -}; -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/requests.js": -/*!************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/requests.js ***! - \************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Params = void 0; -/* eslint-disable @typescript-eslint/naming-convention */ -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/index.js"); -const inthelpers_1 = __webpack_require__(/*! ../../inthelpers */ "./node_modules/@cosmjs/tendermint-rpc/build/inthelpers.js"); -const jsonrpc_1 = __webpack_require__(/*! ../../jsonrpc */ "./node_modules/@cosmjs/tendermint-rpc/build/jsonrpc.js"); -const encodings_1 = __webpack_require__(/*! ../encodings */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/encodings.js"); -const requests = __importStar(__webpack_require__(/*! ../requests */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/requests.js")); -function encodeHeightParam(param) { - return { - height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.height), - }; -} -function encodeBlockchainRequestParams(param) { - return { - minHeight: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.minHeight), - maxHeight: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.maxHeight), - }; -} -function encodeBlockSearchParams(params) { - return { - query: params.query, - page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page), - per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page), - order_by: params.order_by, - }; -} -function encodeAbciQueryParams(params) { - return { - path: (0, encodings_1.assertNotEmpty)(params.path), - data: (0, encoding_1.toHex)(params.data), - height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.height), - prove: params.prove, - }; -} -function encodeBroadcastTxParams(params) { - return { - tx: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.tx)), - }; -} -function encodeTxParams(params) { - return { - hash: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.hash)), - prove: params.prove, - }; -} -function encodeTxSearchParams(params) { - return { - query: params.query, - prove: params.prove, - page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page), - per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page), - order_by: params.order_by, - }; -} -function encodeValidatorsParams(params) { - return { - height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.height), - page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page), - per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page), - }; -} -class Params { - static encodeAbciInfo(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method); - } - static encodeAbciQuery(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeAbciQueryParams(req.params)); - } - static encodeBlock(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params)); - } - static encodeBlockchain(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockchainRequestParams(req.params)); - } - static encodeBlockResults(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params)); - } - static encodeBlockSearch(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockSearchParams(req.params)); - } - static encodeBroadcastTx(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBroadcastTxParams(req.params)); - } - static encodeCommit(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params)); - } - static encodeGenesis(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method); - } - static encodeHealth(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method); - } - static encodeNumUnconfirmedTxs(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method); - } - static encodeStatus(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method); - } - static encodeSubscribe(req) { - const eventTag = { key: "tm.event", value: req.query.type }; - const query = requests.buildQuery({ tags: [eventTag], raw: req.query.raw }); - return (0, jsonrpc_1.createJsonRpcRequest)("subscribe", { query: query }); - } - static encodeTx(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxParams(req.params)); - } - // TODO: encode params for query string??? - static encodeTxSearch(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxSearchParams(req.params)); - } - static encodeValidators(req) { - return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeValidatorsParams(req.params)); - } -} -exports.Params = Params; -//# sourceMappingURL=requests.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/responses.js": -/*!*************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/responses.js ***! - \*************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Responses = exports.decodeValidatorInfo = exports.decodeValidatorGenesis = exports.decodeValidatorUpdate = exports.decodeEvent = void 0; -/* eslint-disable @typescript-eslint/naming-convention */ -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/index.js"); -const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/index.js"); -const dates_1 = __webpack_require__(/*! ../../dates */ "./node_modules/@cosmjs/tendermint-rpc/build/dates.js"); -const inthelpers_1 = __webpack_require__(/*! ../../inthelpers */ "./node_modules/@cosmjs/tendermint-rpc/build/inthelpers.js"); -const types_1 = __webpack_require__(/*! ../../types */ "./node_modules/@cosmjs/tendermint-rpc/build/types.js"); -const encodings_1 = __webpack_require__(/*! ../encodings */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/encodings.js"); -const hasher_1 = __webpack_require__(/*! ../hasher */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/hasher.js"); -function decodeAbciInfo(data) { - return { - data: data.data, - lastBlockHeight: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.last_block_height), - lastBlockAppHash: (0, encodings_1.may)(encoding_1.fromBase64, data.last_block_app_hash), - }; -} -function decodeQueryProof(data) { - return { - ops: data.ops.map((op) => ({ - type: op.type, - key: (0, encoding_1.fromBase64)(op.key), - data: (0, encoding_1.fromBase64)(op.data), - })), - }; -} -function decodeAbciQuery(data) { - return { - key: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(data.key ?? "")), - value: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(data.value ?? "")), - proof: (0, encodings_1.may)(decodeQueryProof, data.proofOps), - height: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.height), - code: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.code), - codespace: (0, encodings_1.assertString)(data.codespace ?? ""), - index: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.index), - log: data.log, - info: (0, encodings_1.assertString)(data.info ?? ""), - }; -} -function decodeEventAttribute(attribute) { - return { - key: (0, encodings_1.assertNotEmpty)(attribute.key), - value: attribute.value ?? "", - }; -} -function decodeAttributes(attributes) { - return (0, encodings_1.assertArray)(attributes).map(decodeEventAttribute); -} -function decodeEvent(event) { - return { - type: event.type, - attributes: event.attributes ? decodeAttributes(event.attributes) : [], - }; -} -exports.decodeEvent = decodeEvent; -function decodeEvents(events) { - return (0, encodings_1.assertArray)(events).map(decodeEvent); -} -function decodeTxData(data) { - return { - code: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNumber)(data.code ?? 0)), - codespace: data.codespace, - log: data.log, - data: (0, encodings_1.may)(encoding_1.fromBase64, data.data), - events: data.events ? decodeEvents(data.events) : [], - gasWanted: (0, inthelpers_1.apiToSmallInt)(data.gas_wanted ?? "0"), - gasUsed: (0, inthelpers_1.apiToSmallInt)(data.gas_used ?? "0"), - }; -} -function decodePubkey(data) { - if ("Sum" in data) { - // we don't need to check type because we're checking algorithm - const [[algorithm, value]] = Object.entries(data.Sum.value); - (0, utils_1.assert)(algorithm === "ed25519" || algorithm === "secp256k1", `unknown pubkey type: ${algorithm}`); - return { - algorithm, - data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(value)), - }; - } - else { - switch (data.type) { - // go-amino special code - case "tendermint/PubKeyEd25519": - return { - algorithm: "ed25519", - data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)), - }; - case "tendermint/PubKeySecp256k1": - return { - algorithm: "secp256k1", - data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)), - }; - default: - throw new Error(`unknown pubkey type: ${data.type}`); - } - } -} -/** - * Note: we do not parse block.time_iota_ms for now because of this CHANGELOG entry - * - * > Add time_iota_ms to block's consensus parameters (not exposed to the application) - * https://github.com/tendermint/tendermint/blob/master/CHANGELOG.md#v0310 - */ -function decodeBlockParams(data) { - return { - maxBytes: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_bytes)), - maxGas: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_gas)), - }; -} -function decodeEvidenceParams(data) { - return { - maxAgeNumBlocks: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_age_num_blocks)), - maxAgeDuration: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_age_duration)), - }; -} -function decodeConsensusParams(data) { - return { - block: decodeBlockParams((0, encodings_1.assertObject)(data.block)), - evidence: decodeEvidenceParams((0, encodings_1.assertObject)(data.evidence)), - }; -} -function decodeValidatorUpdate(data) { - return { - pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)), - votingPower: (0, inthelpers_1.apiToBigInt)(data.power ?? "0"), - }; -} -exports.decodeValidatorUpdate = decodeValidatorUpdate; -function decodeBlockResults(data) { - return { - height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), - results: (data.txs_results || []).map(decodeTxData), - validatorUpdates: (data.validator_updates || []).map(decodeValidatorUpdate), - consensusUpdates: (0, encodings_1.may)(decodeConsensusParams, data.consensus_param_updates), - beginBlockEvents: decodeEvents(data.begin_block_events || []), - endBlockEvents: decodeEvents(data.end_block_events || []), - }; -} -function decodeBlockId(data) { - return { - hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)), - parts: { - total: (0, encodings_1.assertNotEmpty)(data.parts.total), - hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.parts.hash)), - }, - }; -} -function decodeBlockVersion(data) { - return { - block: (0, inthelpers_1.apiToSmallInt)(data.block), - app: (0, inthelpers_1.apiToSmallInt)(data.app ?? 0), - }; -} -function decodeHeader(data) { - return { - version: decodeBlockVersion(data.version), - chainId: (0, encodings_1.assertNotEmpty)(data.chain_id), - height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), - time: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.time)), - // When there is no last block ID (i.e. this block's height is 1), we get an empty structure like this: - // { hash: '', parts: { total: 0, hash: '' } } - lastBlockId: data.last_block_id.hash ? decodeBlockId(data.last_block_id) : null, - lastCommitHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_commit_hash)), - dataHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.data_hash)), - validatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.validators_hash)), - nextValidatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.next_validators_hash)), - consensusHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.consensus_hash)), - appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)), - lastResultsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_results_hash)), - evidenceHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.evidence_hash)), - proposerAddress: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.proposer_address)), - }; -} -function decodeBlockMeta(data) { - return { - blockId: decodeBlockId(data.block_id), - blockSize: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.block_size)), - header: decodeHeader(data.header), - numTxs: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.num_txs)), - }; -} -function decodeBlockchain(data) { - return { - lastHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.last_height)), - blockMetas: (0, encodings_1.assertArray)(data.block_metas).map(decodeBlockMeta), - }; -} -function decodeBroadcastTxSync(data) { - return { - ...decodeTxData(data), - hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)), - }; -} -function decodeBroadcastTxCommit(data) { - return { - height: (0, inthelpers_1.apiToSmallInt)(data.height), - hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)), - checkTx: decodeTxData((0, encodings_1.assertObject)(data.check_tx)), - deliverTx: (0, encodings_1.may)(decodeTxData, data.deliver_tx), - }; -} -function decodeBlockIdFlag(blockIdFlag) { - (0, utils_1.assert)(blockIdFlag in types_1.BlockIdFlag); - return blockIdFlag; -} -/** - * In some cases a timestamp is optional and set to the value 0 in Go. - * This can lead to strings like "0001-01-01T00:00:00Z" (see https://github.com/cosmos/cosmjs/issues/704#issuecomment-797122415). - * This decoder tries to clean up such encoding from the API and turn them - * into undefined values. - */ -function decodeOptionalTime(timestamp) { - const nonZeroTime = timestamp && !timestamp.startsWith("0001-01-01"); - return nonZeroTime ? (0, dates_1.fromRfc3339WithNanoseconds)(timestamp) : undefined; -} -function decodeCommitSignature(data) { - return { - blockIdFlag: decodeBlockIdFlag(data.block_id_flag), - validatorAddress: data.validator_address ? (0, encoding_1.fromHex)(data.validator_address) : undefined, - timestamp: decodeOptionalTime(data.timestamp), - signature: data.signature ? (0, encoding_1.fromBase64)(data.signature) : undefined, - }; -} -function decodeCommit(data) { - return { - blockId: decodeBlockId((0, encodings_1.assertObject)(data.block_id)), - height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), - round: (0, inthelpers_1.apiToSmallInt)(data.round), - signatures: (0, encodings_1.assertArray)(data.signatures).map(decodeCommitSignature), - }; -} -function decodeCommitResponse(data) { - return { - canonical: (0, encodings_1.assertBoolean)(data.canonical), - header: decodeHeader(data.signed_header.header), - commit: decodeCommit(data.signed_header.commit), - }; -} -function decodeValidatorGenesis(data) { - return { - address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)), - pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)), - votingPower: (0, inthelpers_1.apiToBigInt)((0, encodings_1.assertNotEmpty)(data.power)), - }; -} -exports.decodeValidatorGenesis = decodeValidatorGenesis; -function decodeGenesis(data) { - return { - genesisTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.genesis_time)), - chainId: (0, encodings_1.assertNotEmpty)(data.chain_id), - consensusParams: decodeConsensusParams(data.consensus_params), - validators: data.validators ? (0, encodings_1.assertArray)(data.validators).map(decodeValidatorGenesis) : [], - appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)), - appState: data.app_state, - }; -} -function decodeValidatorInfo(data) { - return { - pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)), - votingPower: (0, inthelpers_1.apiToBigInt)((0, encodings_1.assertNotEmpty)(data.voting_power)), - address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)), - proposerPriority: data.proposer_priority ? (0, inthelpers_1.apiToSmallInt)(data.proposer_priority) : undefined, - }; -} -exports.decodeValidatorInfo = decodeValidatorInfo; -function decodeNodeInfo(data) { - return { - id: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.id)), - listenAddr: (0, encodings_1.assertNotEmpty)(data.listen_addr), - network: (0, encodings_1.assertNotEmpty)(data.network), - version: (0, encodings_1.assertString)(data.version), - channels: (0, encodings_1.assertNotEmpty)(data.channels), - moniker: (0, encodings_1.assertNotEmpty)(data.moniker), - other: (0, encodings_1.dictionaryToStringMap)(data.other), - protocolVersion: { - app: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.app)), - block: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.block)), - p2p: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.p2p)), - }, - }; -} -function decodeSyncInfo(data) { - return { - latestBlockHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_block_hash)), - latestAppHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_app_hash)), - latestBlockTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.latest_block_time)), - latestBlockHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.latest_block_height)), - catchingUp: (0, encodings_1.assertBoolean)(data.catching_up), - }; -} -function decodeStatus(data) { - return { - nodeInfo: decodeNodeInfo(data.node_info), - syncInfo: decodeSyncInfo(data.sync_info), - validatorInfo: decodeValidatorInfo(data.validator_info), - }; -} -function decodeTxProof(data) { - return { - data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.data)), - rootHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.root_hash)), - proof: { - total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.proof.total)), - index: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.proof.index)), - leafHash: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.proof.leaf_hash)), - aunts: (0, encodings_1.assertArray)(data.proof.aunts).map(encoding_1.fromBase64), - }, - }; -} -function decodeTxResponse(data) { - return { - tx: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx)), - result: decodeTxData((0, encodings_1.assertObject)(data.tx_result)), - height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), - index: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNumber)(data.index)), - hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)), - proof: (0, encodings_1.may)(decodeTxProof, data.proof), - }; -} -function decodeTxSearch(data) { - return { - totalCount: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_count)), - txs: (0, encodings_1.assertArray)(data.txs).map(decodeTxResponse), - }; -} -function decodeTxEvent(data) { - const tx = (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx)); - return { - tx: tx, - hash: (0, hasher_1.hashTx)(tx), - result: decodeTxData(data.result), - height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), - }; -} -function decodeValidators(data) { - return { - blockHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.block_height)), - validators: (0, encodings_1.assertArray)(data.validators).map(decodeValidatorInfo), - count: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.count)), - total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total)), - }; -} -function decodeBlock(data) { - return { - header: decodeHeader((0, encodings_1.assertObject)(data.header)), - // For the block at height 1, last commit is not set. This is represented in an empty object like this: - // { height: '0', round: 0, block_id: { hash: '', parts: [Object] }, signatures: [] } - lastCommit: data.last_commit.block_id.hash ? decodeCommit((0, encodings_1.assertObject)(data.last_commit)) : null, - txs: data.data.txs ? (0, encodings_1.assertArray)(data.data.txs).map(encoding_1.fromBase64) : [], - // Lift up .evidence.evidence to just .evidence - // See https://github.com/tendermint/tendermint/issues/7697 - evidence: data.evidence?.evidence ?? [], - }; -} -function decodeBlockResponse(data) { - return { - blockId: decodeBlockId(data.block_id), - block: decodeBlock(data.block), - }; -} -function decodeBlockSearch(data) { - return { - totalCount: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_count)), - blocks: (0, encodings_1.assertArray)(data.blocks).map(decodeBlockResponse), - }; -} -function decodeNumUnconfirmedTxs(data) { - return { - total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total)), - totalBytes: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_bytes)), - }; -} -class Responses { - static decodeAbciInfo(response) { - return decodeAbciInfo((0, encodings_1.assertObject)(response.result.response)); - } - static decodeAbciQuery(response) { - return decodeAbciQuery((0, encodings_1.assertObject)(response.result.response)); - } - static decodeBlock(response) { - return decodeBlockResponse(response.result); - } - static decodeBlockResults(response) { - return decodeBlockResults(response.result); - } - static decodeBlockSearch(response) { - return decodeBlockSearch(response.result); - } - static decodeBlockchain(response) { - return decodeBlockchain(response.result); - } - static decodeBroadcastTxSync(response) { - return decodeBroadcastTxSync(response.result); - } - static decodeBroadcastTxAsync(response) { - return Responses.decodeBroadcastTxSync(response); - } - static decodeBroadcastTxCommit(response) { - return decodeBroadcastTxCommit(response.result); - } - static decodeCommit(response) { - return decodeCommitResponse(response.result); - } - static decodeGenesis(response) { - return decodeGenesis((0, encodings_1.assertObject)(response.result.genesis)); - } - static decodeHealth() { - return null; - } - static decodeNumUnconfirmedTxs(response) { - return decodeNumUnconfirmedTxs(response.result); - } - static decodeStatus(response) { - return decodeStatus(response.result); - } - static decodeNewBlockEvent(event) { - return decodeBlock(event.data.value.block); - } - static decodeNewBlockHeaderEvent(event) { - return decodeHeader(event.data.value.header); - } - static decodeTxEvent(event) { - return decodeTxEvent(event.data.value.TxResult); - } - static decodeTx(response) { - return decodeTxResponse(response.result); - } - static decodeTxSearch(response) { - return decodeTxSearch(response.result); - } - static decodeValidators(response) { - return decodeValidators(response.result); - } -} -exports.Responses = Responses; -//# sourceMappingURL=responses.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/encodings.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/encodings.js ***! - \*****************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.encodeBlockId = exports.encodeVersion = exports.encodeBytes = exports.encodeTime = exports.encodeUvarint = exports.encodeString = exports.dictionaryToStringMap = exports.may = exports.assertNotEmpty = exports.assertObject = exports.assertArray = exports.assertNumber = exports.assertString = exports.assertBoolean = exports.assertSet = void 0; -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/index.js"); -/** - * A runtime checker that ensures a given value is set (i.e. not undefined or null) - * - * This is used when you want to verify that data at runtime matches the expected type. - */ -function assertSet(value) { - if (value === undefined) { - throw new Error("Value must not be undefined"); - } - if (value === null) { - throw new Error("Value must not be null"); - } - return value; -} -exports.assertSet = assertSet; -/** - * A runtime checker that ensures a given value is a boolean - * - * This is used when you want to verify that data at runtime matches the expected type. - * This implies assertSet. - */ -function assertBoolean(value) { - assertSet(value); - if (typeof value !== "boolean") { - throw new Error("Value must be a boolean"); - } - return value; -} -exports.assertBoolean = assertBoolean; -/** - * A runtime checker that ensures a given value is a string. - * - * This is used when you want to verify that data at runtime matches the expected type. - * This implies assertSet. - */ -function assertString(value) { - assertSet(value); - if (typeof value !== "string") { - throw new Error("Value must be a string"); - } - return value; -} -exports.assertString = assertString; -/** - * A runtime checker that ensures a given value is a number - * - * This is used when you want to verify that data at runtime matches the expected type. - * This implies assertSet. - */ -function assertNumber(value) { - assertSet(value); - if (typeof value !== "number") { - throw new Error("Value must be a number"); - } - return value; -} -exports.assertNumber = assertNumber; -/** - * A runtime checker that ensures a given value is an array - * - * This is used when you want to verify that data at runtime matches the expected type. - * This implies assertSet. - */ -function assertArray(value) { - assertSet(value); - if (!Array.isArray(value)) { - throw new Error("Value must be a an array"); - } - return value; -} -exports.assertArray = assertArray; -/** - * A runtime checker that ensures a given value is an object in the sense of JSON - * (an unordered collection of key–value pairs where the keys are strings) - * - * This is used when you want to verify that data at runtime matches the expected type. - * This implies assertSet. - */ -function assertObject(value) { - assertSet(value); - if (typeof value !== "object") { - throw new Error("Value must be an object"); - } - // Exclude special kind of objects like Array, Date or Uint8Array - // Object.prototype.toString() returns a specified value: - // http://www.ecma-international.org/ecma-262/7.0/index.html#sec-object.prototype.tostring - if (Object.prototype.toString.call(value) !== "[object Object]") { - throw new Error("Value must be a simple object"); - } - return value; -} -exports.assertObject = assertObject; -/** - * Throws an error if value matches the empty value for the - * given type (array/string of length 0, number of value 0, ...) - * - * Otherwise returns the value. - * - * This implies assertSet - */ -function assertNotEmpty(value) { - assertSet(value); - if (typeof value === "number" && value === 0) { - throw new Error("must provide a non-zero value"); - } - else if (value.length === 0) { - throw new Error("must provide a non-empty value"); - } - return value; -} -exports.assertNotEmpty = assertNotEmpty; -// may will run the transform if value is defined, otherwise returns undefined -function may(transform, value) { - return value === undefined || value === null ? undefined : transform(value); -} -exports.may = may; -function dictionaryToStringMap(obj) { - const out = new Map(); - for (const key of Object.keys(obj)) { - const value = obj[key]; - if (typeof value !== "string") { - throw new Error("Found dictionary value of type other than string"); - } - out.set(key, value); - } - return out; -} -exports.dictionaryToStringMap = dictionaryToStringMap; -// Encodings needed for hashing block headers -// Several of these functions are inspired by https://github.com/nomic-io/js-tendermint/blob/tendermint-0.30/src/ -// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L193-L195 -function encodeString(s) { - const utf8 = (0, encoding_1.toUtf8)(s); - return Uint8Array.from([utf8.length, ...utf8]); -} -exports.encodeString = encodeString; -// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L79-L87 -function encodeUvarint(n) { - return n >= 0x80 - ? // eslint-disable-next-line no-bitwise - Uint8Array.from([(n & 0xff) | 0x80, ...encodeUvarint(n >> 7)]) - : // eslint-disable-next-line no-bitwise - Uint8Array.from([n & 0xff]); -} -exports.encodeUvarint = encodeUvarint; -// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L134-L178 -function encodeTime(time) { - const milliseconds = time.getTime(); - const seconds = Math.floor(milliseconds / 1000); - const secondsArray = seconds ? [0x08, ...encodeUvarint(seconds)] : new Uint8Array(); - const nanoseconds = (time.nanoseconds || 0) + (milliseconds % 1000) * 1e6; - const nanosecondsArray = nanoseconds ? [0x10, ...encodeUvarint(nanoseconds)] : new Uint8Array(); - return Uint8Array.from([...secondsArray, ...nanosecondsArray]); -} -exports.encodeTime = encodeTime; -// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L180-L187 -function encodeBytes(bytes) { - // Since we're only dealing with short byte arrays we don't need a full VarBuffer implementation yet - if (bytes.length >= 0x80) - throw new Error("Not implemented for byte arrays of length 128 or more"); - return bytes.length ? Uint8Array.from([bytes.length, ...bytes]) : new Uint8Array(); -} -exports.encodeBytes = encodeBytes; -function encodeVersion(version) { - const blockArray = version.block - ? Uint8Array.from([0x08, ...encodeUvarint(version.block)]) - : new Uint8Array(); - const appArray = version.app ? Uint8Array.from([0x10, ...encodeUvarint(version.app)]) : new Uint8Array(); - return Uint8Array.from([...blockArray, ...appArray]); -} -exports.encodeVersion = encodeVersion; -function encodeBlockId(blockId) { - return Uint8Array.from([ - 0x0a, - blockId.hash.length, - ...blockId.hash, - 0x12, - blockId.parts.hash.length + 4, - 0x08, - blockId.parts.total, - 0x12, - blockId.parts.hash.length, - ...blockId.parts.hash, - ]); -} -exports.encodeBlockId = encodeBlockId; -//# sourceMappingURL=encodings.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/hasher.js": -/*!**************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/hasher.js ***! - \**************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.hashBlock = exports.hashTx = void 0; -const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/index.js"); -const encodings_1 = __webpack_require__(/*! ./encodings */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/encodings.js"); -// hash is sha256 -// https://github.com/tendermint/tendermint/blob/master/UPGRADING.md#v0260 -function hashTx(tx) { - return (0, crypto_1.sha256)(tx); -} -exports.hashTx = hashTx; -function getSplitPoint(n) { - if (n < 1) - throw new Error("Cannot split an empty tree"); - const largestPowerOf2 = 2 ** Math.floor(Math.log2(n)); - return largestPowerOf2 < n ? largestPowerOf2 : largestPowerOf2 / 2; -} -function hashLeaf(leaf) { - const hash = new crypto_1.Sha256(Uint8Array.from([0])); - hash.update(leaf); - return hash.digest(); -} -function hashInner(left, right) { - const hash = new crypto_1.Sha256(Uint8Array.from([1])); - hash.update(left); - hash.update(right); - return hash.digest(); -} -// See https://github.com/tendermint/tendermint/blob/v0.31.8/docs/spec/blockchain/encoding.md#merkleroot -// Note: the hashes input may not actually be hashes, especially before a recursive call -function hashTree(hashes) { - switch (hashes.length) { - case 0: - throw new Error("Cannot hash empty tree"); - case 1: - return hashLeaf(hashes[0]); - default: { - const slicePoint = getSplitPoint(hashes.length); - const left = hashTree(hashes.slice(0, slicePoint)); - const right = hashTree(hashes.slice(slicePoint)); - return hashInner(left, right); - } - } -} -function hashBlock(header) { - if (!header.lastBlockId) { - throw new Error("Hashing a block header with no last block ID (i.e. header at height 1) is not supported. If you need this, contributions are welcome. Please add documentation and test vectors for this case."); - } - const encodedFields = [ - (0, encodings_1.encodeVersion)(header.version), - (0, encodings_1.encodeString)(header.chainId), - (0, encodings_1.encodeUvarint)(header.height), - (0, encodings_1.encodeTime)(header.time), - (0, encodings_1.encodeBlockId)(header.lastBlockId), - (0, encodings_1.encodeBytes)(header.lastCommitHash), - (0, encodings_1.encodeBytes)(header.dataHash), - (0, encodings_1.encodeBytes)(header.validatorsHash), - (0, encodings_1.encodeBytes)(header.nextValidatorsHash), - (0, encodings_1.encodeBytes)(header.consensusHash), - (0, encodings_1.encodeBytes)(header.appHash), - (0, encodings_1.encodeBytes)(header.lastResultsHash), - (0, encodings_1.encodeBytes)(header.evidenceHash), - (0, encodings_1.encodeBytes)(header.proposerAddress), - ]; - return hashTree(encodedFields); -} -exports.hashBlock = hashBlock; -//# sourceMappingURL=hasher.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/index.js": -/*!*************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/index.js ***! - \*************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -// Note: all exports in this module are publicly available via -// `import { tendermint37 } from "@cosmjs/tendermint-rpc"` -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Tendermint37Client = exports.VoteType = exports.broadcastTxSyncSuccess = exports.broadcastTxCommitSuccess = exports.SubscriptionEventType = exports.Method = void 0; -var requests_1 = __webpack_require__(/*! ./requests */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/requests.js"); -Object.defineProperty(exports, "Method", ({ enumerable: true, get: function () { return requests_1.Method; } })); -Object.defineProperty(exports, "SubscriptionEventType", ({ enumerable: true, get: function () { return requests_1.SubscriptionEventType; } })); -var responses_1 = __webpack_require__(/*! ./responses */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/responses.js"); -Object.defineProperty(exports, "broadcastTxCommitSuccess", ({ enumerable: true, get: function () { return responses_1.broadcastTxCommitSuccess; } })); -Object.defineProperty(exports, "broadcastTxSyncSuccess", ({ enumerable: true, get: function () { return responses_1.broadcastTxSyncSuccess; } })); -Object.defineProperty(exports, "VoteType", ({ enumerable: true, get: function () { return responses_1.VoteType; } })); -var tendermint37client_1 = __webpack_require__(/*! ./tendermint37client */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/tendermint37client.js"); -Object.defineProperty(exports, "Tendermint37Client", ({ enumerable: true, get: function () { return tendermint37client_1.Tendermint37Client; } })); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/requests.js": -/*!****************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/requests.js ***! - \****************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -/* eslint-disable @typescript-eslint/naming-convention */ -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.buildQuery = exports.SubscriptionEventType = exports.Method = void 0; -/** - * RPC methods as documented in https://docs.tendermint.com/master/rpc/ - * - * Enum raw value must match the spelling in the "shell" example call (snake_case) - */ -var Method; -(function (Method) { - Method["AbciInfo"] = "abci_info"; - Method["AbciQuery"] = "abci_query"; - Method["Block"] = "block"; - /** Get block headers for minHeight <= height <= maxHeight. */ - Method["Blockchain"] = "blockchain"; - Method["BlockResults"] = "block_results"; - Method["BlockSearch"] = "block_search"; - Method["BroadcastTxAsync"] = "broadcast_tx_async"; - Method["BroadcastTxSync"] = "broadcast_tx_sync"; - Method["BroadcastTxCommit"] = "broadcast_tx_commit"; - Method["Commit"] = "commit"; - Method["Genesis"] = "genesis"; - Method["Health"] = "health"; - Method["NumUnconfirmedTxs"] = "num_unconfirmed_txs"; - Method["Status"] = "status"; - Method["Subscribe"] = "subscribe"; - Method["Tx"] = "tx"; - Method["TxSearch"] = "tx_search"; - Method["Validators"] = "validators"; - Method["Unsubscribe"] = "unsubscribe"; -})(Method = exports.Method || (exports.Method = {})); -/** - * Raw values must match the tendermint event name - * - * @see https://godoc.org/github.com/tendermint/tendermint/types#pkg-constants - */ -var SubscriptionEventType; -(function (SubscriptionEventType) { - SubscriptionEventType["NewBlock"] = "NewBlock"; - SubscriptionEventType["NewBlockHeader"] = "NewBlockHeader"; - SubscriptionEventType["Tx"] = "Tx"; -})(SubscriptionEventType = exports.SubscriptionEventType || (exports.SubscriptionEventType = {})); -function buildQuery(components) { - const tags = components.tags ? components.tags : []; - const tagComponents = tags.map((tag) => `${tag.key}='${tag.value}'`); - const rawComponents = components.raw ? [components.raw] : []; - return [...tagComponents, ...rawComponents].join(" AND "); -} -exports.buildQuery = buildQuery; -//# sourceMappingURL=requests.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/responses.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/responses.js ***! - \*****************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.VoteType = exports.broadcastTxCommitSuccess = exports.broadcastTxSyncSuccess = void 0; -/** - * Returns true iff transaction made it successfully into the transaction pool - */ -function broadcastTxSyncSuccess(res) { - // code must be 0 on success - return res.code === 0; -} -exports.broadcastTxSyncSuccess = broadcastTxSyncSuccess; -/** - * Returns true iff transaction made it successfully into a block - * (i.e. success in `check_tx` and `deliver_tx` field) - */ -function broadcastTxCommitSuccess(response) { - // code must be 0 on success - // deliverTx may be present but empty on failure - return response.checkTx.code === 0 && !!response.deliverTx && response.deliverTx.code === 0; -} -exports.broadcastTxCommitSuccess = broadcastTxCommitSuccess; -/** - * raw values from https://github.com/tendermint/tendermint/blob/dfa9a9a30a666132425b29454e90a472aa579a48/types/vote.go#L44 - */ -var VoteType; -(function (VoteType) { - VoteType[VoteType["PreVote"] = 1] = "PreVote"; - VoteType[VoteType["PreCommit"] = 2] = "PreCommit"; -})(VoteType = exports.VoteType || (exports.VoteType = {})); -//# sourceMappingURL=responses.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/tendermint37client.js": -/*!**************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/tendermint37client.js ***! - \**************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Tendermint37Client = void 0; -const jsonrpc_1 = __webpack_require__(/*! ../jsonrpc */ "./node_modules/@cosmjs/tendermint-rpc/build/jsonrpc.js"); -const rpcclients_1 = __webpack_require__(/*! ../rpcclients */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/index.js"); -const adaptor_1 = __webpack_require__(/*! ./adaptor */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/index.js"); -const requests = __importStar(__webpack_require__(/*! ./requests */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/requests.js")); -class Tendermint37Client { - /** - * Use `Tendermint37Client.connect` or `Tendermint37Client.create` to create an instance. - */ - constructor(client) { - this.client = client; - this.p = adaptor_1.adaptor37.params; - this.r = adaptor_1.adaptor37.responses; - } - /** - * Creates a new Tendermint client for the given endpoint. - * - * Uses HTTP when the URL schema is http or https. Uses WebSockets otherwise. - */ - static async connect(endpoint) { - let rpcClient; - if (typeof endpoint === "object") { - rpcClient = new rpcclients_1.HttpClient(endpoint); - } - else { - const useHttp = endpoint.startsWith("http://") || endpoint.startsWith("https://"); - rpcClient = useHttp ? new rpcclients_1.HttpClient(endpoint) : new rpcclients_1.WebsocketClient(endpoint); - } - // For some very strange reason I don't understand, tests start to fail on some systems - // (our CI) when skipping the status call before doing other queries. Sleeping a little - // while did not help. Thus we query the version as a way to say "hi" to the backend, - // even in cases where we don't use the result. - const _version = await this.detectVersion(rpcClient); - return Tendermint37Client.create(rpcClient); - } - /** - * Creates a new Tendermint client given an RPC client. - */ - static async create(rpcClient) { - return new Tendermint37Client(rpcClient); - } - static async detectVersion(client) { - const req = (0, jsonrpc_1.createJsonRpcRequest)(requests.Method.Status); - const response = await client.execute(req); - const result = response.result; - if (!result || !result.node_info) { - throw new Error("Unrecognized format for status response"); - } - const version = result.node_info.version; - if (typeof version !== "string") { - throw new Error("Unrecognized version format: must be string"); - } - return version; - } - disconnect() { - this.client.disconnect(); - } - async abciInfo() { - const query = { method: requests.Method.AbciInfo }; - return this.doCall(query, this.p.encodeAbciInfo, this.r.decodeAbciInfo); - } - async abciQuery(params) { - const query = { params: params, method: requests.Method.AbciQuery }; - return this.doCall(query, this.p.encodeAbciQuery, this.r.decodeAbciQuery); - } - async block(height) { - const query = { method: requests.Method.Block, params: { height: height } }; - return this.doCall(query, this.p.encodeBlock, this.r.decodeBlock); - } - async blockResults(height) { - const query = { - method: requests.Method.BlockResults, - params: { height: height }, - }; - return this.doCall(query, this.p.encodeBlockResults, this.r.decodeBlockResults); - } - /** - * Search for events that are in a block. - * - * NOTE - * This method will error on any node that is running a Tendermint version lower than 0.34.9. - * - * @see https://docs.tendermint.com/master/rpc/#/Info/block_search - */ - async blockSearch(params) { - const query = { params: params, method: requests.Method.BlockSearch }; - const resp = await this.doCall(query, this.p.encodeBlockSearch, this.r.decodeBlockSearch); - return { - ...resp, - // make sure we sort by height, as tendermint may be sorting by string value of the height - blocks: [...resp.blocks].sort((a, b) => a.block.header.height - b.block.header.height), - }; - } - // this should paginate through all blockSearch options to ensure it returns all results. - // starts with page 1 or whatever was provided (eg. to start on page 7) - // - // NOTE - // This method will error on any node that is running a Tendermint version lower than 0.34.9. - async blockSearchAll(params) { - let page = params.page || 1; - const blocks = []; - let done = false; - while (!done) { - const resp = await this.blockSearch({ ...params, page: page }); - blocks.push(...resp.blocks); - if (blocks.length < resp.totalCount) { - page++; - } - else { - done = true; - } - } - // make sure we sort by height, as tendermint may be sorting by string value of the height - // and the earlier items may be in a higher page than the later items - blocks.sort((a, b) => a.block.header.height - b.block.header.height); - return { - totalCount: blocks.length, - blocks: blocks, - }; - } - /** - * Queries block headers filtered by minHeight <= height <= maxHeight. - * - * @param minHeight The minimum height to be included in the result. Defaults to 0. - * @param maxHeight The maximum height to be included in the result. Defaults to infinity. - */ - async blockchain(minHeight, maxHeight) { - const query = { - method: requests.Method.Blockchain, - params: { - minHeight: minHeight, - maxHeight: maxHeight, - }, - }; - return this.doCall(query, this.p.encodeBlockchain, this.r.decodeBlockchain); - } - /** - * Broadcast transaction to mempool and wait for response - * - * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_sync - */ - async broadcastTxSync(params) { - const query = { params: params, method: requests.Method.BroadcastTxSync }; - return this.doCall(query, this.p.encodeBroadcastTx, this.r.decodeBroadcastTxSync); - } - /** - * Broadcast transaction to mempool and do not wait for result - * - * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_async - */ - async broadcastTxAsync(params) { - const query = { params: params, method: requests.Method.BroadcastTxAsync }; - return this.doCall(query, this.p.encodeBroadcastTx, this.r.decodeBroadcastTxAsync); - } - /** - * Broadcast transaction to mempool and wait for block - * - * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_commit - */ - async broadcastTxCommit(params) { - const query = { params: params, method: requests.Method.BroadcastTxCommit }; - return this.doCall(query, this.p.encodeBroadcastTx, this.r.decodeBroadcastTxCommit); - } - async commit(height) { - const query = { method: requests.Method.Commit, params: { height: height } }; - return this.doCall(query, this.p.encodeCommit, this.r.decodeCommit); - } - async genesis() { - const query = { method: requests.Method.Genesis }; - return this.doCall(query, this.p.encodeGenesis, this.r.decodeGenesis); - } - async health() { - const query = { method: requests.Method.Health }; - return this.doCall(query, this.p.encodeHealth, this.r.decodeHealth); - } - async numUnconfirmedTxs() { - const query = { method: requests.Method.NumUnconfirmedTxs }; - return this.doCall(query, this.p.encodeNumUnconfirmedTxs, this.r.decodeNumUnconfirmedTxs); - } - async status() { - const query = { method: requests.Method.Status }; - return this.doCall(query, this.p.encodeStatus, this.r.decodeStatus); - } - subscribeNewBlock() { - const request = { - method: requests.Method.Subscribe, - query: { type: requests.SubscriptionEventType.NewBlock }, - }; - return this.subscribe(request, this.r.decodeNewBlockEvent); - } - subscribeNewBlockHeader() { - const request = { - method: requests.Method.Subscribe, - query: { type: requests.SubscriptionEventType.NewBlockHeader }, - }; - return this.subscribe(request, this.r.decodeNewBlockHeaderEvent); - } - subscribeTx(query) { - const request = { - method: requests.Method.Subscribe, - query: { - type: requests.SubscriptionEventType.Tx, - raw: query, - }, - }; - return this.subscribe(request, this.r.decodeTxEvent); - } - /** - * Get a single transaction by hash - * - * @see https://docs.tendermint.com/master/rpc/#/Info/tx - */ - async tx(params) { - const query = { params: params, method: requests.Method.Tx }; - return this.doCall(query, this.p.encodeTx, this.r.decodeTx); - } - /** - * Search for transactions that are in a block - * - * @see https://docs.tendermint.com/master/rpc/#/Info/tx_search - */ - async txSearch(params) { - const query = { params: params, method: requests.Method.TxSearch }; - return this.doCall(query, this.p.encodeTxSearch, this.r.decodeTxSearch); - } - // this should paginate through all txSearch options to ensure it returns all results. - // starts with page 1 or whatever was provided (eg. to start on page 7) - async txSearchAll(params) { - let page = params.page || 1; - const txs = []; - let done = false; - while (!done) { - const resp = await this.txSearch({ ...params, page: page }); - txs.push(...resp.txs); - if (txs.length < resp.totalCount) { - page++; - } - else { - done = true; - } - } - return { - totalCount: txs.length, - txs: txs, - }; - } - async validators(params) { - const query = { - method: requests.Method.Validators, - params: params, - }; - return this.doCall(query, this.p.encodeValidators, this.r.decodeValidators); - } - async validatorsAll(height) { - const validators = []; - let page = 1; - let done = false; - let blockHeight = height; - while (!done) { - const response = await this.validators({ - per_page: 50, - height: blockHeight, - page: page, - }); - validators.push(...response.validators); - blockHeight = blockHeight || response.blockHeight; - if (validators.length < response.total) { - page++; - } - else { - done = true; - } - } - return { - // NOTE: Default value is for type safety but this should always be set - blockHeight: blockHeight ?? 0, - count: validators.length, - total: validators.length, - validators: validators, - }; - } - // doCall is a helper to handle the encode/call/decode logic - async doCall(request, encode, decode) { - const req = encode(request); - const result = await this.client.execute(req); - return decode(result); - } - subscribe(request, decode) { - if (!(0, rpcclients_1.instanceOfRpcStreamingClient)(this.client)) { - throw new Error("This RPC client type cannot subscribe to events"); - } - const req = this.p.encodeSubscribe(request); - const eventStream = this.client.listen(req); - return eventStream.map((event) => { - return decode(event); - }); - } -} -exports.Tendermint37Client = Tendermint37Client; -//# sourceMappingURL=tendermint37client.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermintclient.js": -/*!***********************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermintclient.js ***! - \***********************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isTendermint37Client = exports.isTendermint34Client = void 0; -const tendermint34_1 = __webpack_require__(/*! ./tendermint34 */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/index.js"); -const tendermint37_1 = __webpack_require__(/*! ./tendermint37 */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/index.js"); -function isTendermint34Client(client) { - return client instanceof tendermint34_1.Tendermint34Client; -} -exports.isTendermint34Client = isTendermint34Client; -function isTendermint37Client(client) { - return client instanceof tendermint37_1.Tendermint37Client; -} -exports.isTendermint37Client = isTendermint37Client; -//# sourceMappingURL=tendermintclient.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/build/types.js": -/*!************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/build/types.js ***! - \************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -// Types in this file are exported outside of the @cosmjs/tendermint-rpc package, -// e.g. as part of a request or response -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.BlockIdFlag = void 0; -var BlockIdFlag; -(function (BlockIdFlag) { - BlockIdFlag[BlockIdFlag["Unknown"] = 0] = "Unknown"; - BlockIdFlag[BlockIdFlag["Absent"] = 1] = "Absent"; - BlockIdFlag[BlockIdFlag["Commit"] = 2] = "Commit"; - BlockIdFlag[BlockIdFlag["Nil"] = 3] = "Nil"; - BlockIdFlag[BlockIdFlag["Unrecognized"] = -1] = "Unrecognized"; -})(BlockIdFlag = exports.BlockIdFlag || (exports.BlockIdFlag = {})); -//# sourceMappingURL=types.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/bip39.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/bip39.js ***! - \****************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Bip39 = exports.EnglishMnemonic = exports.mnemonicToEntropy = exports.entropyToMnemonic = void 0; -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/index.js"); -const pbkdf2_1 = __webpack_require__(/*! ./pbkdf2 */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/pbkdf2.js"); -const sha_1 = __webpack_require__(/*! ./sha */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/sha.js"); -const wordlist = [ - "abandon", - "ability", - "able", - "about", - "above", - "absent", - "absorb", - "abstract", - "absurd", - "abuse", - "access", - "accident", - "account", - "accuse", - "achieve", - "acid", - "acoustic", - "acquire", - "across", - "act", - "action", - "actor", - "actress", - "actual", - "adapt", - "add", - "addict", - "address", - "adjust", - "admit", - "adult", - "advance", - "advice", - "aerobic", - "affair", - "afford", - "afraid", - "again", - "age", - "agent", - "agree", - "ahead", - "aim", - "air", - "airport", - "aisle", - "alarm", - "album", - "alcohol", - "alert", - "alien", - "all", - "alley", - "allow", - "almost", - "alone", - "alpha", - "already", - "also", - "alter", - "always", - "amateur", - "amazing", - "among", - "amount", - "amused", - "analyst", - "anchor", - "ancient", - "anger", - "angle", - "angry", - "animal", - "ankle", - "announce", - "annual", - "another", - "answer", - "antenna", - "antique", - "anxiety", - "any", - "apart", - "apology", - "appear", - "apple", - "approve", - "april", - "arch", - "arctic", - "area", - "arena", - "argue", - "arm", - "armed", - "armor", - "army", - "around", - "arrange", - "arrest", - "arrive", - "arrow", - "art", - "artefact", - "artist", - "artwork", - "ask", - "aspect", - "assault", - "asset", - "assist", - "assume", - "asthma", - "athlete", - "atom", - "attack", - "attend", - "attitude", - "attract", - "auction", - "audit", - "august", - "aunt", - "author", - "auto", - "autumn", - "average", - "avocado", - "avoid", - "awake", - "aware", - "away", - "awesome", - "awful", - "awkward", - "axis", - "baby", - "bachelor", - "bacon", - "badge", - "bag", - "balance", - "balcony", - "ball", - "bamboo", - "banana", - "banner", - "bar", - "barely", - "bargain", - "barrel", - "base", - "basic", - "basket", - "battle", - "beach", - "bean", - "beauty", - "because", - "become", - "beef", - "before", - "begin", - "behave", - "behind", - "believe", - "below", - "belt", - "bench", - "benefit", - "best", - "betray", - "better", - "between", - "beyond", - "bicycle", - "bid", - "bike", - "bind", - "biology", - "bird", - "birth", - "bitter", - "black", - "blade", - "blame", - "blanket", - "blast", - "bleak", - "bless", - "blind", - "blood", - "blossom", - "blouse", - "blue", - "blur", - "blush", - "board", - "boat", - "body", - "boil", - "bomb", - "bone", - "bonus", - "book", - "boost", - "border", - "boring", - "borrow", - "boss", - "bottom", - "bounce", - "box", - "boy", - "bracket", - "brain", - "brand", - "brass", - "brave", - "bread", - "breeze", - "brick", - "bridge", - "brief", - "bright", - "bring", - "brisk", - "broccoli", - "broken", - "bronze", - "broom", - "brother", - "brown", - "brush", - "bubble", - "buddy", - "budget", - "buffalo", - "build", - "bulb", - "bulk", - "bullet", - "bundle", - "bunker", - "burden", - "burger", - "burst", - "bus", - "business", - "busy", - "butter", - "buyer", - "buzz", - "cabbage", - "cabin", - "cable", - "cactus", - "cage", - "cake", - "call", - "calm", - "camera", - "camp", - "can", - "canal", - "cancel", - "candy", - "cannon", - "canoe", - "canvas", - "canyon", - "capable", - "capital", - "captain", - "car", - "carbon", - "card", - "cargo", - "carpet", - "carry", - "cart", - "case", - "cash", - "casino", - "castle", - "casual", - "cat", - "catalog", - "catch", - "category", - "cattle", - "caught", - "cause", - "caution", - "cave", - "ceiling", - "celery", - "cement", - "census", - "century", - "cereal", - "certain", - "chair", - "chalk", - "champion", - "change", - "chaos", - "chapter", - "charge", - "chase", - "chat", - "cheap", - "check", - "cheese", - "chef", - "cherry", - "chest", - "chicken", - "chief", - "child", - "chimney", - "choice", - "choose", - "chronic", - "chuckle", - "chunk", - "churn", - "cigar", - "cinnamon", - "circle", - "citizen", - "city", - "civil", - "claim", - "clap", - "clarify", - "claw", - "clay", - "clean", - "clerk", - "clever", - "click", - "client", - "cliff", - "climb", - "clinic", - "clip", - "clock", - "clog", - "close", - "cloth", - "cloud", - "clown", - "club", - "clump", - "cluster", - "clutch", - "coach", - "coast", - "coconut", - "code", - "coffee", - "coil", - "coin", - "collect", - "color", - "column", - "combine", - "come", - "comfort", - "comic", - "common", - "company", - "concert", - "conduct", - "confirm", - "congress", - "connect", - "consider", - "control", - "convince", - "cook", - "cool", - "copper", - "copy", - "coral", - "core", - "corn", - "correct", - "cost", - "cotton", - "couch", - "country", - "couple", - "course", - "cousin", - "cover", - "coyote", - "crack", - "cradle", - "craft", - "cram", - "crane", - "crash", - "crater", - "crawl", - "crazy", - "cream", - "credit", - "creek", - "crew", - "cricket", - "crime", - "crisp", - "critic", - "crop", - "cross", - "crouch", - "crowd", - "crucial", - "cruel", - "cruise", - "crumble", - "crunch", - "crush", - "cry", - "crystal", - "cube", - "culture", - "cup", - "cupboard", - "curious", - "current", - "curtain", - "curve", - "cushion", - "custom", - "cute", - "cycle", - "dad", - "damage", - "damp", - "dance", - "danger", - "daring", - "dash", - "daughter", - "dawn", - "day", - "deal", - "debate", - "debris", - "decade", - "december", - "decide", - "decline", - "decorate", - "decrease", - "deer", - "defense", - "define", - "defy", - "degree", - "delay", - "deliver", - "demand", - "demise", - "denial", - "dentist", - "deny", - "depart", - "depend", - "deposit", - "depth", - "deputy", - "derive", - "describe", - "desert", - "design", - "desk", - "despair", - "destroy", - "detail", - "detect", - "develop", - "device", - "devote", - "diagram", - "dial", - "diamond", - "diary", - "dice", - "diesel", - "diet", - "differ", - "digital", - "dignity", - "dilemma", - "dinner", - "dinosaur", - "direct", - "dirt", - "disagree", - "discover", - "disease", - "dish", - "dismiss", - "disorder", - "display", - "distance", - "divert", - "divide", - "divorce", - "dizzy", - "doctor", - "document", - "dog", - "doll", - "dolphin", - "domain", - "donate", - "donkey", - "donor", - "door", - "dose", - "double", - "dove", - "draft", - "dragon", - "drama", - "drastic", - "draw", - "dream", - "dress", - "drift", - "drill", - "drink", - "drip", - "drive", - "drop", - "drum", - "dry", - "duck", - "dumb", - "dune", - "during", - "dust", - "dutch", - "duty", - "dwarf", - "dynamic", - "eager", - "eagle", - "early", - "earn", - "earth", - "easily", - "east", - "easy", - "echo", - "ecology", - "economy", - "edge", - "edit", - "educate", - "effort", - "egg", - "eight", - "either", - "elbow", - "elder", - "electric", - "elegant", - "element", - "elephant", - "elevator", - "elite", - "else", - "embark", - "embody", - "embrace", - "emerge", - "emotion", - "employ", - "empower", - "empty", - "enable", - "enact", - "end", - "endless", - "endorse", - "enemy", - "energy", - "enforce", - "engage", - "engine", - "enhance", - "enjoy", - "enlist", - "enough", - "enrich", - "enroll", - "ensure", - "enter", - "entire", - "entry", - "envelope", - "episode", - "equal", - "equip", - "era", - "erase", - "erode", - "erosion", - "error", - "erupt", - "escape", - "essay", - "essence", - "estate", - "eternal", - "ethics", - "evidence", - "evil", - "evoke", - "evolve", - "exact", - "example", - "excess", - "exchange", - "excite", - "exclude", - "excuse", - "execute", - "exercise", - "exhaust", - "exhibit", - "exile", - "exist", - "exit", - "exotic", - "expand", - "expect", - "expire", - "explain", - "expose", - "express", - "extend", - "extra", - "eye", - "eyebrow", - "fabric", - "face", - "faculty", - "fade", - "faint", - "faith", - "fall", - "false", - "fame", - "family", - "famous", - "fan", - "fancy", - "fantasy", - "farm", - "fashion", - "fat", - "fatal", - "father", - "fatigue", - "fault", - "favorite", - "feature", - "february", - "federal", - "fee", - "feed", - "feel", - "female", - "fence", - "festival", - "fetch", - "fever", - "few", - "fiber", - "fiction", - "field", - "figure", - "file", - "film", - "filter", - "final", - "find", - "fine", - "finger", - "finish", - "fire", - "firm", - "first", - "fiscal", - "fish", - "fit", - "fitness", - "fix", - "flag", - "flame", - "flash", - "flat", - "flavor", - "flee", - "flight", - "flip", - "float", - "flock", - "floor", - "flower", - "fluid", - "flush", - "fly", - "foam", - "focus", - "fog", - "foil", - "fold", - "follow", - "food", - "foot", - "force", - "forest", - "forget", - "fork", - "fortune", - "forum", - "forward", - "fossil", - "foster", - "found", - "fox", - "fragile", - "frame", - "frequent", - "fresh", - "friend", - "fringe", - "frog", - "front", - "frost", - "frown", - "frozen", - "fruit", - "fuel", - "fun", - "funny", - "furnace", - "fury", - "future", - "gadget", - "gain", - "galaxy", - "gallery", - "game", - "gap", - "garage", - "garbage", - "garden", - "garlic", - "garment", - "gas", - "gasp", - "gate", - "gather", - "gauge", - "gaze", - "general", - "genius", - "genre", - "gentle", - "genuine", - "gesture", - "ghost", - "giant", - "gift", - "giggle", - "ginger", - "giraffe", - "girl", - "give", - "glad", - "glance", - "glare", - "glass", - "glide", - "glimpse", - "globe", - "gloom", - "glory", - "glove", - "glow", - "glue", - "goat", - "goddess", - "gold", - "good", - "goose", - "gorilla", - "gospel", - "gossip", - "govern", - "gown", - "grab", - "grace", - "grain", - "grant", - "grape", - "grass", - "gravity", - "great", - "green", - "grid", - "grief", - "grit", - "grocery", - "group", - "grow", - "grunt", - "guard", - "guess", - "guide", - "guilt", - "guitar", - "gun", - "gym", - "habit", - "hair", - "half", - "hammer", - "hamster", - "hand", - "happy", - "harbor", - "hard", - "harsh", - "harvest", - "hat", - "have", - "hawk", - "hazard", - "head", - "health", - "heart", - "heavy", - "hedgehog", - "height", - "hello", - "helmet", - "help", - "hen", - "hero", - "hidden", - "high", - "hill", - "hint", - "hip", - "hire", - "history", - "hobby", - "hockey", - "hold", - "hole", - "holiday", - "hollow", - "home", - "honey", - "hood", - "hope", - "horn", - "horror", - "horse", - "hospital", - "host", - "hotel", - "hour", - "hover", - "hub", - "huge", - "human", - "humble", - "humor", - "hundred", - "hungry", - "hunt", - "hurdle", - "hurry", - "hurt", - "husband", - "hybrid", - "ice", - "icon", - "idea", - "identify", - "idle", - "ignore", - "ill", - "illegal", - "illness", - "image", - "imitate", - "immense", - "immune", - "impact", - "impose", - "improve", - "impulse", - "inch", - "include", - "income", - "increase", - "index", - "indicate", - "indoor", - "industry", - "infant", - "inflict", - "inform", - "inhale", - "inherit", - "initial", - "inject", - "injury", - "inmate", - "inner", - "innocent", - "input", - "inquiry", - "insane", - "insect", - "inside", - "inspire", - "install", - "intact", - "interest", - "into", - "invest", - "invite", - "involve", - "iron", - "island", - "isolate", - "issue", - "item", - "ivory", - "jacket", - "jaguar", - "jar", - "jazz", - "jealous", - "jeans", - "jelly", - "jewel", - "job", - "join", - "joke", - "journey", - "joy", - "judge", - "juice", - "jump", - "jungle", - "junior", - "junk", - "just", - "kangaroo", - "keen", - "keep", - "ketchup", - "key", - "kick", - "kid", - "kidney", - "kind", - "kingdom", - "kiss", - "kit", - "kitchen", - "kite", - "kitten", - "kiwi", - "knee", - "knife", - "knock", - "know", - "lab", - "label", - "labor", - "ladder", - "lady", - "lake", - "lamp", - "language", - "laptop", - "large", - "later", - "latin", - "laugh", - "laundry", - "lava", - "law", - "lawn", - "lawsuit", - "layer", - "lazy", - "leader", - "leaf", - "learn", - "leave", - "lecture", - "left", - "leg", - "legal", - "legend", - "leisure", - "lemon", - "lend", - "length", - "lens", - "leopard", - "lesson", - "letter", - "level", - "liar", - "liberty", - "library", - "license", - "life", - "lift", - "light", - "like", - "limb", - "limit", - "link", - "lion", - "liquid", - "list", - "little", - "live", - "lizard", - "load", - "loan", - "lobster", - "local", - "lock", - "logic", - "lonely", - "long", - "loop", - "lottery", - "loud", - "lounge", - "love", - "loyal", - "lucky", - "luggage", - "lumber", - "lunar", - "lunch", - "luxury", - "lyrics", - "machine", - "mad", - "magic", - "magnet", - "maid", - "mail", - "main", - "major", - "make", - "mammal", - "man", - "manage", - "mandate", - "mango", - "mansion", - "manual", - "maple", - "marble", - "march", - "margin", - "marine", - "market", - "marriage", - "mask", - "mass", - "master", - "match", - "material", - "math", - "matrix", - "matter", - "maximum", - "maze", - "meadow", - "mean", - "measure", - "meat", - "mechanic", - "medal", - "media", - "melody", - "melt", - "member", - "memory", - "mention", - "menu", - "mercy", - "merge", - "merit", - "merry", - "mesh", - "message", - "metal", - "method", - "middle", - "midnight", - "milk", - "million", - "mimic", - "mind", - "minimum", - "minor", - "minute", - "miracle", - "mirror", - "misery", - "miss", - "mistake", - "mix", - "mixed", - "mixture", - "mobile", - "model", - "modify", - "mom", - "moment", - "monitor", - "monkey", - "monster", - "month", - "moon", - "moral", - "more", - "morning", - "mosquito", - "mother", - "motion", - "motor", - "mountain", - "mouse", - "move", - "movie", - "much", - "muffin", - "mule", - "multiply", - "muscle", - "museum", - "mushroom", - "music", - "must", - "mutual", - "myself", - "mystery", - "myth", - "naive", - "name", - "napkin", - "narrow", - "nasty", - "nation", - "nature", - "near", - "neck", - "need", - "negative", - "neglect", - "neither", - "nephew", - "nerve", - "nest", - "net", - "network", - "neutral", - "never", - "news", - "next", - "nice", - "night", - "noble", - "noise", - "nominee", - "noodle", - "normal", - "north", - "nose", - "notable", - "note", - "nothing", - "notice", - "novel", - "now", - "nuclear", - "number", - "nurse", - "nut", - "oak", - "obey", - "object", - "oblige", - "obscure", - "observe", - "obtain", - "obvious", - "occur", - "ocean", - "october", - "odor", - "off", - "offer", - "office", - "often", - "oil", - "okay", - "old", - "olive", - "olympic", - "omit", - "once", - "one", - "onion", - "online", - "only", - "open", - "opera", - "opinion", - "oppose", - "option", - "orange", - "orbit", - "orchard", - "order", - "ordinary", - "organ", - "orient", - "original", - "orphan", - "ostrich", - "other", - "outdoor", - "outer", - "output", - "outside", - "oval", - "oven", - "over", - "own", - "owner", - "oxygen", - "oyster", - "ozone", - "pact", - "paddle", - "page", - "pair", - "palace", - "palm", - "panda", - "panel", - "panic", - "panther", - "paper", - "parade", - "parent", - "park", - "parrot", - "party", - "pass", - "patch", - "path", - "patient", - "patrol", - "pattern", - "pause", - "pave", - "payment", - "peace", - "peanut", - "pear", - "peasant", - "pelican", - "pen", - "penalty", - "pencil", - "people", - "pepper", - "perfect", - "permit", - "person", - "pet", - "phone", - "photo", - "phrase", - "physical", - "piano", - "picnic", - "picture", - "piece", - "pig", - "pigeon", - "pill", - "pilot", - "pink", - "pioneer", - "pipe", - "pistol", - "pitch", - "pizza", - "place", - "planet", - "plastic", - "plate", - "play", - "please", - "pledge", - "pluck", - "plug", - "plunge", - "poem", - "poet", - "point", - "polar", - "pole", - "police", - "pond", - "pony", - "pool", - "popular", - "portion", - "position", - "possible", - "post", - "potato", - "pottery", - "poverty", - "powder", - "power", - "practice", - "praise", - "predict", - "prefer", - "prepare", - "present", - "pretty", - "prevent", - "price", - "pride", - "primary", - "print", - "priority", - "prison", - "private", - "prize", - "problem", - "process", - "produce", - "profit", - "program", - "project", - "promote", - "proof", - "property", - "prosper", - "protect", - "proud", - "provide", - "public", - "pudding", - "pull", - "pulp", - "pulse", - "pumpkin", - "punch", - "pupil", - "puppy", - "purchase", - "purity", - "purpose", - "purse", - "push", - "put", - "puzzle", - "pyramid", - "quality", - "quantum", - "quarter", - "question", - "quick", - "quit", - "quiz", - "quote", - "rabbit", - "raccoon", - "race", - "rack", - "radar", - "radio", - "rail", - "rain", - "raise", - "rally", - "ramp", - "ranch", - "random", - "range", - "rapid", - "rare", - "rate", - "rather", - "raven", - "raw", - "razor", - "ready", - "real", - "reason", - "rebel", - "rebuild", - "recall", - "receive", - "recipe", - "record", - "recycle", - "reduce", - "reflect", - "reform", - "refuse", - "region", - "regret", - "regular", - "reject", - "relax", - "release", - "relief", - "rely", - "remain", - "remember", - "remind", - "remove", - "render", - "renew", - "rent", - "reopen", - "repair", - "repeat", - "replace", - "report", - "require", - "rescue", - "resemble", - "resist", - "resource", - "response", - "result", - "retire", - "retreat", - "return", - "reunion", - "reveal", - "review", - "reward", - "rhythm", - "rib", - "ribbon", - "rice", - "rich", - "ride", - "ridge", - "rifle", - "right", - "rigid", - "ring", - "riot", - "ripple", - "risk", - "ritual", - "rival", - "river", - "road", - "roast", - "robot", - "robust", - "rocket", - "romance", - "roof", - "rookie", - "room", - "rose", - "rotate", - "rough", - "round", - "route", - "royal", - "rubber", - "rude", - "rug", - "rule", - "run", - "runway", - "rural", - "sad", - "saddle", - "sadness", - "safe", - "sail", - "salad", - "salmon", - "salon", - "salt", - "salute", - "same", - "sample", - "sand", - "satisfy", - "satoshi", - "sauce", - "sausage", - "save", - "say", - "scale", - "scan", - "scare", - "scatter", - "scene", - "scheme", - "school", - "science", - "scissors", - "scorpion", - "scout", - "scrap", - "screen", - "script", - "scrub", - "sea", - "search", - "season", - "seat", - "second", - "secret", - "section", - "security", - "seed", - "seek", - "segment", - "select", - "sell", - "seminar", - "senior", - "sense", - "sentence", - "series", - "service", - "session", - "settle", - "setup", - "seven", - "shadow", - "shaft", - "shallow", - "share", - "shed", - "shell", - "sheriff", - "shield", - "shift", - "shine", - "ship", - "shiver", - "shock", - "shoe", - "shoot", - "shop", - "short", - "shoulder", - "shove", - "shrimp", - "shrug", - "shuffle", - "shy", - "sibling", - "sick", - "side", - "siege", - "sight", - "sign", - "silent", - "silk", - "silly", - "silver", - "similar", - "simple", - "since", - "sing", - "siren", - "sister", - "situate", - "six", - "size", - "skate", - "sketch", - "ski", - "skill", - "skin", - "skirt", - "skull", - "slab", - "slam", - "sleep", - "slender", - "slice", - "slide", - "slight", - "slim", - "slogan", - "slot", - "slow", - "slush", - "small", - "smart", - "smile", - "smoke", - "smooth", - "snack", - "snake", - "snap", - "sniff", - "snow", - "soap", - "soccer", - "social", - "sock", - "soda", - "soft", - "solar", - "soldier", - "solid", - "solution", - "solve", - "someone", - "song", - "soon", - "sorry", - "sort", - "soul", - "sound", - "soup", - "source", - "south", - "space", - "spare", - "spatial", - "spawn", - "speak", - "special", - "speed", - "spell", - "spend", - "sphere", - "spice", - "spider", - "spike", - "spin", - "spirit", - "split", - "spoil", - "sponsor", - "spoon", - "sport", - "spot", - "spray", - "spread", - "spring", - "spy", - "square", - "squeeze", - "squirrel", - "stable", - "stadium", - "staff", - "stage", - "stairs", - "stamp", - "stand", - "start", - "state", - "stay", - "steak", - "steel", - "stem", - "step", - "stereo", - "stick", - "still", - "sting", - "stock", - "stomach", - "stone", - "stool", - "story", - "stove", - "strategy", - "street", - "strike", - "strong", - "struggle", - "student", - "stuff", - "stumble", - "style", - "subject", - "submit", - "subway", - "success", - "such", - "sudden", - "suffer", - "sugar", - "suggest", - "suit", - "summer", - "sun", - "sunny", - "sunset", - "super", - "supply", - "supreme", - "sure", - "surface", - "surge", - "surprise", - "surround", - "survey", - "suspect", - "sustain", - "swallow", - "swamp", - "swap", - "swarm", - "swear", - "sweet", - "swift", - "swim", - "swing", - "switch", - "sword", - "symbol", - "symptom", - "syrup", - "system", - "table", - "tackle", - "tag", - "tail", - "talent", - "talk", - "tank", - "tape", - "target", - "task", - "taste", - "tattoo", - "taxi", - "teach", - "team", - "tell", - "ten", - "tenant", - "tennis", - "tent", - "term", - "test", - "text", - "thank", - "that", - "theme", - "then", - "theory", - "there", - "they", - "thing", - "this", - "thought", - "three", - "thrive", - "throw", - "thumb", - "thunder", - "ticket", - "tide", - "tiger", - "tilt", - "timber", - "time", - "tiny", - "tip", - "tired", - "tissue", - "title", - "toast", - "tobacco", - "today", - "toddler", - "toe", - "together", - "toilet", - "token", - "tomato", - "tomorrow", - "tone", - "tongue", - "tonight", - "tool", - "tooth", - "top", - "topic", - "topple", - "torch", - "tornado", - "tortoise", - "toss", - "total", - "tourist", - "toward", - "tower", - "town", - "toy", - "track", - "trade", - "traffic", - "tragic", - "train", - "transfer", - "trap", - "trash", - "travel", - "tray", - "treat", - "tree", - "trend", - "trial", - "tribe", - "trick", - "trigger", - "trim", - "trip", - "trophy", - "trouble", - "truck", - "true", - "truly", - "trumpet", - "trust", - "truth", - "try", - "tube", - "tuition", - "tumble", - "tuna", - "tunnel", - "turkey", - "turn", - "turtle", - "twelve", - "twenty", - "twice", - "twin", - "twist", - "two", - "type", - "typical", - "ugly", - "umbrella", - "unable", - "unaware", - "uncle", - "uncover", - "under", - "undo", - "unfair", - "unfold", - "unhappy", - "uniform", - "unique", - "unit", - "universe", - "unknown", - "unlock", - "until", - "unusual", - "unveil", - "update", - "upgrade", - "uphold", - "upon", - "upper", - "upset", - "urban", - "urge", - "usage", - "use", - "used", - "useful", - "useless", - "usual", - "utility", - "vacant", - "vacuum", - "vague", - "valid", - "valley", - "valve", - "van", - "vanish", - "vapor", - "various", - "vast", - "vault", - "vehicle", - "velvet", - "vendor", - "venture", - "venue", - "verb", - "verify", - "version", - "very", - "vessel", - "veteran", - "viable", - "vibrant", - "vicious", - "victory", - "video", - "view", - "village", - "vintage", - "violin", - "virtual", - "virus", - "visa", - "visit", - "visual", - "vital", - "vivid", - "vocal", - "voice", - "void", - "volcano", - "volume", - "vote", - "voyage", - "wage", - "wagon", - "wait", - "walk", - "wall", - "walnut", - "want", - "warfare", - "warm", - "warrior", - "wash", - "wasp", - "waste", - "water", - "wave", - "way", - "wealth", - "weapon", - "wear", - "weasel", - "weather", - "web", - "wedding", - "weekend", - "weird", - "welcome", - "west", - "wet", - "whale", - "what", - "wheat", - "wheel", - "when", - "where", - "whip", - "whisper", - "wide", - "width", - "wife", - "wild", - "will", - "win", - "window", - "wine", - "wing", - "wink", - "winner", - "winter", - "wire", - "wisdom", - "wise", - "wish", - "witness", - "wolf", - "woman", - "wonder", - "wood", - "wool", - "word", - "work", - "world", - "worry", - "worth", - "wrap", - "wreck", - "wrestle", - "wrist", - "write", - "wrong", - "yard", - "year", - "yellow", - "you", - "young", - "youth", - "zebra", - "zero", - "zone", - "zoo", +exports.setupDistributionExtension = void 0; +/* eslint-disable @typescript-eslint/naming-convention */ +const query_1 = __webpack_require__(/*! cosmjs-types/cosmos/distribution/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/distribution/v1beta1/query.js"); +const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); +function setupDistributionExtension(base) { + const rpc = (0, queryclient_1.createProtobufRpcClient)(base); + // Use this service to get easy typed access to query methods + // This cannot be used for proof verification + const queryService = new query_1.QueryClientImpl(rpc); + return { + distribution: { + communityPool: async () => { + const response = await queryService.CommunityPool({}); + return response; + }, + delegationRewards: async (delegatorAddress, validatorAddress) => { + const response = await queryService.DelegationRewards({ + delegatorAddress: delegatorAddress, + validatorAddress: validatorAddress, + }); + return response; + }, + delegationTotalRewards: async (delegatorAddress) => { + const response = await queryService.DelegationTotalRewards({ + delegatorAddress: delegatorAddress, + }); + return response; + }, + delegatorValidators: async (delegatorAddress) => { + const response = await queryService.DelegatorValidators({ + delegatorAddress: delegatorAddress, + }); + return response; + }, + delegatorWithdrawAddress: async (delegatorAddress) => { + const response = await queryService.DelegatorWithdrawAddress({ + delegatorAddress: delegatorAddress, + }); + return response; + }, + params: async () => { + const response = await queryService.Params({}); + return response; + }, + validatorCommission: async (validatorAddress) => { + const response = await queryService.ValidatorCommission({ + validatorAddress: validatorAddress, + }); + return response; + }, + validatorOutstandingRewards: async (validatorAddress) => { + const response = await queryService.ValidatorOutstandingRewards({ + validatorAddress: validatorAddress, + }); + return response; + }, + validatorSlashes: async (validatorAddress, startingHeight, endingHeight, paginationKey) => { + const response = await queryService.ValidatorSlashes({ + validatorAddress: validatorAddress, + startingHeight: BigInt(startingHeight), + endingHeight: BigInt(endingHeight), + pagination: (0, queryclient_1.createPagination)(paginationKey), + }); + return response; + }, + }, + }; +} +exports.setupDistributionExtension = setupDistributionExtension; +//# sourceMappingURL=queries.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/evidence/aminomessages.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/evidence/aminomessages.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.createEvidenceAminoConverters = exports.isAminoMsgSubmitEvidence = void 0; +function isAminoMsgSubmitEvidence(msg) { + return msg.type === "cosmos-sdk/MsgSubmitEvidence"; +} +exports.isAminoMsgSubmitEvidence = isAminoMsgSubmitEvidence; +function createEvidenceAminoConverters() { + throw new Error("Not implemented"); +} +exports.createEvidenceAminoConverters = createEvidenceAminoConverters; +//# sourceMappingURL=aminomessages.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/feegrant/aminomessages.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/feegrant/aminomessages.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.createFeegrantAminoConverters = void 0; +function createFeegrantAminoConverters() { + return { + // For Cosmos SDK < 0.46 the Amino JSON codec was broken on chain and thus inaccessible. + // Now this can be implemented for 0.46+ chains, see + // https://github.com/cosmos/cosmjs/issues/1092 + // + // "/cosmos.feegrant.v1beta1.MsgGrantAllowance": IMPLEMENT_ME, + // "/cosmos.feegrant.v1beta1.MsgRevokeAllowance": IMPLEMENT_ME, + }; +} +exports.createFeegrantAminoConverters = createFeegrantAminoConverters; +//# sourceMappingURL=aminomessages.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/feegrant/messages.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/feegrant/messages.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.feegrantTypes = void 0; +const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/feegrant/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/tx.js"); +exports.feegrantTypes = [ + ["/cosmos.feegrant.v1beta1.MsgGrantAllowance", tx_1.MsgGrantAllowance], + ["/cosmos.feegrant.v1beta1.MsgRevokeAllowance", tx_1.MsgRevokeAllowance], +]; +//# sourceMappingURL=messages.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/feegrant/queries.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/feegrant/queries.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.setupFeegrantExtension = void 0; +const query_1 = __webpack_require__(/*! cosmjs-types/cosmos/feegrant/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/query.js"); +const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); +function setupFeegrantExtension(base) { + // Use this service to get easy typed access to query methods + // This cannot be used for proof verification + const rpc = (0, queryclient_1.createProtobufRpcClient)(base); + const queryService = new query_1.QueryClientImpl(rpc); + return { + feegrant: { + allowance: async (granter, grantee) => { + const response = await queryService.Allowance({ + granter: granter, + grantee: grantee, + }); + return response; + }, + allowances: async (grantee, paginationKey) => { + const response = await queryService.Allowances({ + grantee: grantee, + pagination: (0, queryclient_1.createPagination)(paginationKey), + }); + return response; + }, + }, + }; +} +exports.setupFeegrantExtension = setupFeegrantExtension; +//# sourceMappingURL=queries.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/gov/aminomessages.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/gov/aminomessages.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.createGovAminoConverters = exports.isAminoMsgDeposit = exports.isAminoMsgVoteWeighted = exports.isAminoMsgVote = exports.isAminoMsgSubmitProposal = void 0; +const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/math/build/index.js"); +const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/utils/build/index.js"); +const gov_1 = __webpack_require__(/*! cosmjs-types/cosmos/gov/v1beta1/gov */ "./node_modules/cosmjs-types/cosmos/gov/v1beta1/gov.js"); +const any_1 = __webpack_require__(/*! cosmjs-types/google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); +const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); +function isAminoMsgSubmitProposal(msg) { + return msg.type === "cosmos-sdk/MsgSubmitProposal"; +} +exports.isAminoMsgSubmitProposal = isAminoMsgSubmitProposal; +function isAminoMsgVote(msg) { + return msg.type === "cosmos-sdk/MsgVote"; +} +exports.isAminoMsgVote = isAminoMsgVote; +function isAminoMsgVoteWeighted(msg) { + return msg.type === "cosmos-sdk/MsgVoteWeighted"; +} +exports.isAminoMsgVoteWeighted = isAminoMsgVoteWeighted; +function isAminoMsgDeposit(msg) { + return msg.type === "cosmos-sdk/MsgDeposit"; +} +exports.isAminoMsgDeposit = isAminoMsgDeposit; +function createGovAminoConverters() { + // Gov v1 types missing, see + // https://github.com/cosmos/cosmjs/issues/1442 + return { + "/cosmos.gov.v1beta1.MsgDeposit": { + aminoType: "cosmos-sdk/MsgDeposit", + toAmino: ({ amount, depositor, proposalId }) => { + return { + amount, + depositor, + proposal_id: proposalId.toString(), + }; + }, + fromAmino: ({ amount, depositor, proposal_id }) => { + return { + amount: Array.from(amount), + depositor, + proposalId: BigInt(proposal_id), + }; + }, + }, + "/cosmos.gov.v1beta1.MsgVote": { + aminoType: "cosmos-sdk/MsgVote", + toAmino: ({ option, proposalId, voter }) => { + return { + option: option, + proposal_id: proposalId.toString(), + voter: voter, + }; + }, + fromAmino: ({ option, proposal_id, voter }) => { + return { + option: (0, gov_1.voteOptionFromJSON)(option), + proposalId: BigInt(proposal_id), + voter: voter, + }; + }, + }, + "/cosmos.gov.v1beta1.MsgVoteWeighted": { + aminoType: "cosmos-sdk/MsgVoteWeighted", + toAmino: ({ options, proposalId, voter }) => { + return { + options: options.map((o) => ({ + option: o.option, + // Weight is between 0 and 1, so we always have 20 characters when printing all trailing + // zeros (e.g. "0.700000000000000000" or "1.000000000000000000") + weight: (0, queryclient_1.decodeCosmosSdkDecFromProto)(o.weight).toString().padEnd(20, "0"), + })), + proposal_id: proposalId.toString(), + voter: voter, + }; + }, + fromAmino: ({ options, proposal_id, voter }) => { + return { + proposalId: BigInt(proposal_id), + voter: voter, + options: options.map((o) => ({ + option: (0, gov_1.voteOptionFromJSON)(o.option), + weight: math_1.Decimal.fromUserInput(o.weight, 18).atomics, + })), + }; + }, + }, + "/cosmos.gov.v1beta1.MsgSubmitProposal": { + aminoType: "cosmos-sdk/MsgSubmitProposal", + toAmino: ({ initialDeposit, proposer, content, }) => { + (0, utils_1.assertDefinedAndNotNull)(content); + let proposal; + switch (content.typeUrl) { + case "/cosmos.gov.v1beta1.TextProposal": { + const textProposal = gov_1.TextProposal.decode(content.value); + proposal = { + type: "cosmos-sdk/TextProposal", + value: { + description: textProposal.description, + title: textProposal.title, + }, + }; + break; + } + default: + throw new Error(`Unsupported proposal type: '${content.typeUrl}'`); + } + return { + initial_deposit: initialDeposit, + proposer: proposer, + content: proposal, + }; + }, + fromAmino: ({ initial_deposit, proposer, content, }) => { + let any_content; + switch (content.type) { + case "cosmos-sdk/TextProposal": { + const { value } = content; + (0, utils_1.assert)((0, utils_1.isNonNullObject)(value)); + const { title, description } = value; + (0, utils_1.assert)(typeof title === "string"); + (0, utils_1.assert)(typeof description === "string"); + any_content = any_1.Any.fromPartial({ + typeUrl: "/cosmos.gov.v1beta1.TextProposal", + value: gov_1.TextProposal.encode(gov_1.TextProposal.fromPartial({ + title: title, + description: description, + })).finish(), + }); + break; + } + default: + throw new Error(`Unsupported proposal type: '${content.type}'`); + } + return { + initialDeposit: Array.from(initial_deposit), + proposer: proposer, + content: any_content, + }; + }, + }, + }; +} +exports.createGovAminoConverters = createGovAminoConverters; +//# sourceMappingURL=aminomessages.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/gov/messages.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/gov/messages.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.isMsgVoteWeightedEncodeObject = exports.isMsgVoteEncodeObject = exports.isMsgSubmitProposalEncodeObject = exports.isMsgDepositEncodeObject = exports.govTypes = void 0; +const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/gov/v1/tx */ "./node_modules/cosmjs-types/cosmos/gov/v1/tx.js"); +const tx_2 = __webpack_require__(/*! cosmjs-types/cosmos/gov/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/gov/v1beta1/tx.js"); +exports.govTypes = [ + ["/cosmos.gov.v1.MsgDeposit", tx_1.MsgDeposit], + ["/cosmos.gov.v1.MsgSubmitProposal", tx_1.MsgSubmitProposal], + ["/cosmos.gov.v1.MsgUpdateParams", tx_1.MsgUpdateParams], + ["/cosmos.gov.v1.MsgVote", tx_1.MsgVote], + ["/cosmos.gov.v1.MsgVoteWeighted", tx_1.MsgVoteWeighted], + ["/cosmos.gov.v1beta1.MsgDeposit", tx_2.MsgDeposit], + ["/cosmos.gov.v1beta1.MsgSubmitProposal", tx_2.MsgSubmitProposal], + ["/cosmos.gov.v1beta1.MsgVote", tx_2.MsgVote], + ["/cosmos.gov.v1beta1.MsgVoteWeighted", tx_2.MsgVoteWeighted], +]; +function isMsgDepositEncodeObject(object) { + return object.typeUrl === "/cosmos.gov.v1beta1.MsgDeposit"; +} +exports.isMsgDepositEncodeObject = isMsgDepositEncodeObject; +function isMsgSubmitProposalEncodeObject(object) { + return object.typeUrl === "/cosmos.gov.v1beta1.MsgSubmitProposal"; +} +exports.isMsgSubmitProposalEncodeObject = isMsgSubmitProposalEncodeObject; +function isMsgVoteEncodeObject(object) { + return object.typeUrl === "/cosmos.gov.v1beta1.MsgVote"; +} +exports.isMsgVoteEncodeObject = isMsgVoteEncodeObject; +function isMsgVoteWeightedEncodeObject(object) { + return object.typeUrl === "/cosmos.gov.v1beta1.MsgVoteWeighted"; +} +exports.isMsgVoteWeightedEncodeObject = isMsgVoteWeightedEncodeObject; +//# sourceMappingURL=messages.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/gov/queries.js": +/*!********************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/gov/queries.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.setupGovExtension = void 0; +const query_1 = __webpack_require__(/*! cosmjs-types/cosmos/gov/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/gov/v1beta1/query.js"); +const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); +function setupGovExtension(base) { + const rpc = (0, queryclient_1.createProtobufRpcClient)(base); + // Use this service to get easy typed access to query methods + // This cannot be used for proof verification + const queryService = new query_1.QueryClientImpl(rpc); + return { + gov: { + params: async (parametersType) => { + const response = await queryService.Params({ paramsType: parametersType }); + return response; + }, + proposals: async (proposalStatus, depositorAddress, voterAddress, paginationKey) => { + const response = await queryService.Proposals({ + proposalStatus, + depositor: depositorAddress, + voter: voterAddress, + pagination: (0, queryclient_1.createPagination)(paginationKey), + }); + return response; + }, + proposal: async (proposalId) => { + const response = await queryService.Proposal({ proposalId: (0, queryclient_1.longify)(proposalId) }); + return response; + }, + deposits: async (proposalId, paginationKey) => { + const response = await queryService.Deposits({ + proposalId: (0, queryclient_1.longify)(proposalId), + pagination: (0, queryclient_1.createPagination)(paginationKey), + }); + return response; + }, + deposit: async (proposalId, depositorAddress) => { + const response = await queryService.Deposit({ + proposalId: (0, queryclient_1.longify)(proposalId), + depositor: depositorAddress, + }); + return response; + }, + tally: async (proposalId) => { + const response = await queryService.TallyResult({ + proposalId: (0, queryclient_1.longify)(proposalId), + }); + return response; + }, + votes: async (proposalId, paginationKey) => { + const response = await queryService.Votes({ + proposalId: (0, queryclient_1.longify)(proposalId), + pagination: (0, queryclient_1.createPagination)(paginationKey), + }); + return response; + }, + vote: async (proposalId, voterAddress) => { + const response = await queryService.Vote({ + proposalId: (0, queryclient_1.longify)(proposalId), + voter: voterAddress, + }); + return response; + }, + }, + }; +} +exports.setupGovExtension = setupGovExtension; +//# sourceMappingURL=queries.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/group/aminomessages.js": +/*!****************************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/group/aminomessages.js ***! + \****************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.createGroupAminoConverters = void 0; +function createGroupAminoConverters() { + // Missing, see https://github.com/cosmos/cosmjs/issues/1441 + return {}; +} +exports.createGroupAminoConverters = createGroupAminoConverters; +//# sourceMappingURL=aminomessages.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/group/messages.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/group/messages.js ***! + \***********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.groupTypes = void 0; +const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/group/v1/tx */ "./node_modules/cosmjs-types/cosmos/group/v1/tx.js"); +exports.groupTypes = [ + ["/cosmos.group.v1.MsgCreateGroup", tx_1.MsgCreateGroup], + ["/cosmos.group.v1.MsgCreateGroupPolicy", tx_1.MsgCreateGroupPolicy], + ["/cosmos.group.v1.MsgCreateGroupWithPolicy", tx_1.MsgCreateGroupWithPolicy], + ["/cosmos.group.v1.MsgExec", tx_1.MsgExec], + ["/cosmos.group.v1.MsgLeaveGroup", tx_1.MsgLeaveGroup], + ["/cosmos.group.v1.MsgSubmitProposal", tx_1.MsgSubmitProposal], + ["/cosmos.group.v1.MsgUpdateGroupAdmin", tx_1.MsgUpdateGroupAdmin], + ["/cosmos.group.v1.MsgUpdateGroupMembers", tx_1.MsgUpdateGroupMembers], + ["/cosmos.group.v1.MsgUpdateGroupMetadata", tx_1.MsgUpdateGroupMetadata], + ["/cosmos.group.v1.MsgUpdateGroupPolicyAdmin", tx_1.MsgUpdateGroupPolicyAdmin], + ["/cosmos.group.v1.MsgUpdateGroupPolicyDecisionPolicy", tx_1.MsgUpdateGroupPolicyDecisionPolicy], + ["/cosmos.group.v1.MsgUpdateGroupPolicyMetadata", tx_1.MsgUpdateGroupPolicyMetadata], + ["/cosmos.group.v1.MsgVote", tx_1.MsgVote], + ["/cosmos.group.v1.MsgWithdrawProposal", tx_1.MsgWithdrawProposal], +]; +// There are no EncodeObject implementations for the new v1 message types because +// those things don't scale (https://github.com/cosmos/cosmjs/issues/1440). We need to +// address this more fundamentally. Users can use +// const msg = { +// typeUrl: "/cosmos.group.v1.MsgCreateGroup", +// value: MsgCreateGroup.fromPartial({ ... }) +// } +// in their app. +//# sourceMappingURL=messages.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/ibc/aminomessages.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/ibc/aminomessages.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.createIbcAminoConverters = exports.isAminoMsgTransfer = void 0; +/* eslint-disable @typescript-eslint/naming-convention */ +const amino_1 = __webpack_require__(/*! @cosmjs/amino */ "./node_modules/@cosmjs/amino/build/index.js"); +const tx_1 = __webpack_require__(/*! cosmjs-types/ibc/applications/transfer/v1/tx */ "./node_modules/cosmjs-types/ibc/applications/transfer/v1/tx.js"); +function isAminoMsgTransfer(msg) { + return msg.type === "cosmos-sdk/MsgTransfer"; +} +exports.isAminoMsgTransfer = isAminoMsgTransfer; +function createIbcAminoConverters() { + return { + "/ibc.applications.transfer.v1.MsgTransfer": { + aminoType: "cosmos-sdk/MsgTransfer", + toAmino: ({ sourcePort, sourceChannel, token, sender, receiver, timeoutHeight, timeoutTimestamp, memo, }) => ({ + source_port: sourcePort, + source_channel: sourceChannel, + token: token, + sender: sender, + receiver: receiver, + timeout_height: timeoutHeight + ? { + revision_height: (0, amino_1.omitDefault)(timeoutHeight.revisionHeight)?.toString(), + revision_number: (0, amino_1.omitDefault)(timeoutHeight.revisionNumber)?.toString(), + } + : {}, + timeout_timestamp: (0, amino_1.omitDefault)(timeoutTimestamp)?.toString(), + memo: (0, amino_1.omitDefault)(memo), + }), + fromAmino: ({ source_port, source_channel, token, sender, receiver, timeout_height, timeout_timestamp, memo, }) => tx_1.MsgTransfer.fromPartial({ + sourcePort: source_port, + sourceChannel: source_channel, + token: token, + sender: sender, + receiver: receiver, + timeoutHeight: timeout_height + ? { + revisionHeight: BigInt(timeout_height.revision_height || "0"), + revisionNumber: BigInt(timeout_height.revision_number || "0"), + } + : undefined, + timeoutTimestamp: BigInt(timeout_timestamp || "0"), + memo: memo ?? "", + }), + }, + }; +} +exports.createIbcAminoConverters = createIbcAminoConverters; +//# sourceMappingURL=aminomessages.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/ibc/messages.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/ibc/messages.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.isMsgTransferEncodeObject = exports.ibcTypes = void 0; +const tx_1 = __webpack_require__(/*! cosmjs-types/ibc/applications/transfer/v1/tx */ "./node_modules/cosmjs-types/ibc/applications/transfer/v1/tx.js"); +const tx_2 = __webpack_require__(/*! cosmjs-types/ibc/core/channel/v1/tx */ "./node_modules/cosmjs-types/ibc/core/channel/v1/tx.js"); +const tx_3 = __webpack_require__(/*! cosmjs-types/ibc/core/client/v1/tx */ "./node_modules/cosmjs-types/ibc/core/client/v1/tx.js"); +const tx_4 = __webpack_require__(/*! cosmjs-types/ibc/core/connection/v1/tx */ "./node_modules/cosmjs-types/ibc/core/connection/v1/tx.js"); +exports.ibcTypes = [ + ["/ibc.applications.transfer.v1.MsgTransfer", tx_1.MsgTransfer], + ["/ibc.core.channel.v1.MsgAcknowledgement", tx_2.MsgAcknowledgement], + ["/ibc.core.channel.v1.MsgChannelCloseConfirm", tx_2.MsgChannelCloseConfirm], + ["/ibc.core.channel.v1.MsgChannelCloseInit", tx_2.MsgChannelCloseInit], + ["/ibc.core.channel.v1.MsgChannelOpenAck", tx_2.MsgChannelOpenAck], + ["/ibc.core.channel.v1.MsgChannelOpenConfirm", tx_2.MsgChannelOpenConfirm], + ["/ibc.core.channel.v1.MsgChannelOpenInit", tx_2.MsgChannelOpenInit], + ["/ibc.core.channel.v1.MsgChannelOpenTry", tx_2.MsgChannelOpenTry], + ["/ibc.core.channel.v1.MsgRecvPacket", tx_2.MsgRecvPacket], + ["/ibc.core.channel.v1.MsgTimeout", tx_2.MsgTimeout], + ["/ibc.core.channel.v1.MsgTimeoutOnClose", tx_2.MsgTimeoutOnClose], + ["/ibc.core.client.v1.MsgCreateClient", tx_3.MsgCreateClient], + ["/ibc.core.client.v1.MsgSubmitMisbehaviour", tx_3.MsgSubmitMisbehaviour], + ["/ibc.core.client.v1.MsgUpdateClient", tx_3.MsgUpdateClient], + ["/ibc.core.client.v1.MsgUpgradeClient", tx_3.MsgUpgradeClient], + ["/ibc.core.connection.v1.MsgConnectionOpenAck", tx_4.MsgConnectionOpenAck], + ["/ibc.core.connection.v1.MsgConnectionOpenConfirm", tx_4.MsgConnectionOpenConfirm], + ["/ibc.core.connection.v1.MsgConnectionOpenInit", tx_4.MsgConnectionOpenInit], + ["/ibc.core.connection.v1.MsgConnectionOpenTry", tx_4.MsgConnectionOpenTry], +]; +function isMsgTransferEncodeObject(object) { + return object.typeUrl === "/ibc.applications.transfer.v1.MsgTransfer"; +} +exports.isMsgTransferEncodeObject = isMsgTransferEncodeObject; +//# sourceMappingURL=messages.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/ibc/queries.js": +/*!********************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/ibc/queries.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.setupIbcExtension = void 0; +/* eslint-disable @typescript-eslint/naming-convention */ +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/math/build/index.js"); +const query_1 = __webpack_require__(/*! cosmjs-types/ibc/applications/transfer/v1/query */ "./node_modules/cosmjs-types/ibc/applications/transfer/v1/query.js"); +const channel_1 = __webpack_require__(/*! cosmjs-types/ibc/core/channel/v1/channel */ "./node_modules/cosmjs-types/ibc/core/channel/v1/channel.js"); +const query_2 = __webpack_require__(/*! cosmjs-types/ibc/core/channel/v1/query */ "./node_modules/cosmjs-types/ibc/core/channel/v1/query.js"); +const query_3 = __webpack_require__(/*! cosmjs-types/ibc/core/client/v1/query */ "./node_modules/cosmjs-types/ibc/core/client/v1/query.js"); +const query_4 = __webpack_require__(/*! cosmjs-types/ibc/core/connection/v1/query */ "./node_modules/cosmjs-types/ibc/core/connection/v1/query.js"); +const tendermint_1 = __webpack_require__(/*! cosmjs-types/ibc/lightclients/tendermint/v1/tendermint */ "./node_modules/cosmjs-types/ibc/lightclients/tendermint/v1/tendermint.js"); +const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); +function decodeTendermintClientStateAny(clientState) { + if (clientState?.typeUrl !== "/ibc.lightclients.tendermint.v1.ClientState") { + throw new Error(`Unexpected client state type: ${clientState?.typeUrl}`); + } + return tendermint_1.ClientState.decode(clientState.value); +} +function decodeTendermintConsensusStateAny(clientState) { + if (clientState?.typeUrl !== "/ibc.lightclients.tendermint.v1.ConsensusState") { + throw new Error(`Unexpected client state type: ${clientState?.typeUrl}`); + } + return tendermint_1.ConsensusState.decode(clientState.value); +} +function setupIbcExtension(base) { + const rpc = (0, queryclient_1.createProtobufRpcClient)(base); + // Use these services to get easy typed access to query methods + // These cannot be used for proof verification + const channelQueryService = new query_2.QueryClientImpl(rpc); + const clientQueryService = new query_3.QueryClientImpl(rpc); + const connectionQueryService = new query_4.QueryClientImpl(rpc); + const transferQueryService = new query_1.QueryClientImpl(rpc); + return { + ibc: { + channel: { + channel: async (portId, channelId) => channelQueryService.Channel({ + portId: portId, + channelId: channelId, + }), + channels: async (paginationKey) => channelQueryService.Channels({ + pagination: (0, queryclient_1.createPagination)(paginationKey), + }), + allChannels: async () => { + const channels = []; + let response; + let key; + do { + response = await channelQueryService.Channels({ + pagination: (0, queryclient_1.createPagination)(key), + }); + channels.push(...response.channels); + key = response.pagination?.nextKey; + } while (key && key.length); + return query_2.QueryChannelsResponse.fromPartial({ + channels: channels, + height: response.height, + }); + }, + connectionChannels: async (connection, paginationKey) => channelQueryService.ConnectionChannels({ + connection: connection, + pagination: (0, queryclient_1.createPagination)(paginationKey), + }), + allConnectionChannels: async (connection) => { + const channels = []; + let response; + let key; + do { + response = await channelQueryService.ConnectionChannels({ + connection: connection, + pagination: (0, queryclient_1.createPagination)(key), + }); + channels.push(...response.channels); + key = response.pagination?.nextKey; + } while (key && key.length); + return query_2.QueryConnectionChannelsResponse.fromPartial({ + channels: channels, + height: response.height, + }); + }, + clientState: async (portId, channelId) => channelQueryService.ChannelClientState({ + portId: portId, + channelId: channelId, + }), + consensusState: async (portId, channelId, revisionNumber, revisionHeight) => channelQueryService.ChannelConsensusState({ + portId: portId, + channelId: channelId, + revisionNumber: BigInt(revisionNumber), + revisionHeight: BigInt(revisionHeight), + }), + packetCommitment: async (portId, channelId, sequence) => channelQueryService.PacketCommitment({ + portId: portId, + channelId: channelId, + sequence: (0, queryclient_1.longify)(sequence), + }), + packetCommitments: async (portId, channelId, paginationKey) => channelQueryService.PacketCommitments({ + channelId: channelId, + portId: portId, + pagination: (0, queryclient_1.createPagination)(paginationKey), + }), + allPacketCommitments: async (portId, channelId) => { + const commitments = []; + let response; + let key; + do { + response = await channelQueryService.PacketCommitments({ + channelId: channelId, + portId: portId, + pagination: (0, queryclient_1.createPagination)(key), + }); + commitments.push(...response.commitments); + key = response.pagination?.nextKey; + } while (key && key.length); + return query_2.QueryPacketCommitmentsResponse.fromPartial({ + commitments: commitments, + height: response.height, + }); + }, + packetReceipt: async (portId, channelId, sequence) => channelQueryService.PacketReceipt({ + portId: portId, + channelId: channelId, + sequence: (0, queryclient_1.longify)(sequence), + }), + packetAcknowledgement: async (portId, channelId, sequence) => channelQueryService.PacketAcknowledgement({ + portId: portId, + channelId: channelId, + sequence: (0, queryclient_1.longify)(sequence), + }), + packetAcknowledgements: async (portId, channelId, paginationKey) => { + const request = query_2.QueryPacketAcknowledgementsRequest.fromPartial({ + portId: portId, + channelId: channelId, + pagination: (0, queryclient_1.createPagination)(paginationKey), + }); + return channelQueryService.PacketAcknowledgements(request); + }, + allPacketAcknowledgements: async (portId, channelId) => { + const acknowledgements = []; + let response; + let key; + do { + const request = query_2.QueryPacketAcknowledgementsRequest.fromPartial({ + channelId: channelId, + portId: portId, + pagination: (0, queryclient_1.createPagination)(key), + }); + response = await channelQueryService.PacketAcknowledgements(request); + acknowledgements.push(...response.acknowledgements); + key = response.pagination?.nextKey; + } while (key && key.length); + return query_2.QueryPacketAcknowledgementsResponse.fromPartial({ + acknowledgements: acknowledgements, + height: response.height, + }); + }, + unreceivedPackets: async (portId, channelId, packetCommitmentSequences) => channelQueryService.UnreceivedPackets({ + portId: portId, + channelId: channelId, + packetCommitmentSequences: packetCommitmentSequences.map((s) => BigInt(s)), + }), + unreceivedAcks: async (portId, channelId, packetAckSequences) => channelQueryService.UnreceivedAcks({ + portId: portId, + channelId: channelId, + packetAckSequences: packetAckSequences.map((s) => BigInt(s)), + }), + nextSequenceReceive: async (portId, channelId) => channelQueryService.NextSequenceReceive({ + portId: portId, + channelId: channelId, + }), + }, + client: { + state: async (clientId) => clientQueryService.ClientState({ clientId }), + states: async (paginationKey) => clientQueryService.ClientStates({ + pagination: (0, queryclient_1.createPagination)(paginationKey), + }), + allStates: async () => { + const clientStates = []; + let response; + let key; + do { + response = await clientQueryService.ClientStates({ + pagination: (0, queryclient_1.createPagination)(key), + }); + clientStates.push(...response.clientStates); + key = response.pagination?.nextKey; + } while (key && key.length); + return query_3.QueryClientStatesResponse.fromPartial({ + clientStates: clientStates, + }); + }, + consensusState: async (clientId, consensusHeight) => clientQueryService.ConsensusState(query_3.QueryConsensusStateRequest.fromPartial({ + clientId: clientId, + revisionHeight: consensusHeight !== undefined ? BigInt(consensusHeight) : undefined, + latestHeight: consensusHeight === undefined, + })), + consensusStates: async (clientId, paginationKey) => clientQueryService.ConsensusStates({ + clientId: clientId, + pagination: (0, queryclient_1.createPagination)(paginationKey), + }), + allConsensusStates: async (clientId) => { + const consensusStates = []; + let response; + let key; + do { + response = await clientQueryService.ConsensusStates({ + clientId: clientId, + pagination: (0, queryclient_1.createPagination)(key), + }); + consensusStates.push(...response.consensusStates); + key = response.pagination?.nextKey; + } while (key && key.length); + return query_3.QueryConsensusStatesResponse.fromPartial({ + consensusStates: consensusStates, + }); + }, + params: async () => clientQueryService.ClientParams({}), + stateTm: async (clientId) => { + const response = await clientQueryService.ClientState({ clientId }); + return decodeTendermintClientStateAny(response.clientState); + }, + statesTm: async (paginationKey) => { + const { clientStates } = await clientQueryService.ClientStates({ + pagination: (0, queryclient_1.createPagination)(paginationKey), + }); + return clientStates.map(({ clientState }) => decodeTendermintClientStateAny(clientState)); + }, + allStatesTm: async () => { + const clientStates = []; + let response; + let key; + do { + response = await clientQueryService.ClientStates({ + pagination: (0, queryclient_1.createPagination)(key), + }); + clientStates.push(...response.clientStates); + key = response.pagination?.nextKey; + } while (key && key.length); + return clientStates.map(({ clientState }) => decodeTendermintClientStateAny(clientState)); + }, + consensusStateTm: async (clientId, consensusHeight) => { + const response = await clientQueryService.ConsensusState(query_3.QueryConsensusStateRequest.fromPartial({ + clientId: clientId, + revisionHeight: consensusHeight?.revisionHeight, + revisionNumber: consensusHeight?.revisionNumber, + latestHeight: consensusHeight === undefined, + })); + return decodeTendermintConsensusStateAny(response.consensusState); + }, + }, + connection: { + connection: async (connectionId) => connectionQueryService.Connection({ + connectionId: connectionId, + }), + connections: async (paginationKey) => connectionQueryService.Connections({ + pagination: (0, queryclient_1.createPagination)(paginationKey), + }), + allConnections: async () => { + const connections = []; + let response; + let key; + do { + response = await connectionQueryService.Connections({ + pagination: (0, queryclient_1.createPagination)(key), + }); + connections.push(...response.connections); + key = response.pagination?.nextKey; + } while (key && key.length); + return query_4.QueryConnectionsResponse.fromPartial({ + connections: connections, + height: response.height, + }); + }, + clientConnections: async (clientId) => connectionQueryService.ClientConnections({ + clientId: clientId, + }), + clientState: async (connectionId) => connectionQueryService.ConnectionClientState({ + connectionId: connectionId, + }), + consensusState: async (connectionId, revisionHeight) => connectionQueryService.ConnectionConsensusState(query_4.QueryConnectionConsensusStateRequest.fromPartial({ + connectionId: connectionId, + revisionHeight: BigInt(revisionHeight), + })), + }, + transfer: { + denomTrace: async (hash) => transferQueryService.DenomTrace({ hash: hash }), + denomTraces: async (paginationKey) => transferQueryService.DenomTraces({ + pagination: (0, queryclient_1.createPagination)(paginationKey), + }), + allDenomTraces: async () => { + const denomTraces = []; + let response; + let key; + do { + response = await transferQueryService.DenomTraces({ + pagination: (0, queryclient_1.createPagination)(key), + }); + denomTraces.push(...response.denomTraces); + key = response.pagination?.nextKey; + } while (key && key.length); + return query_1.QueryDenomTracesResponse.fromPartial({ + denomTraces: denomTraces, + }); + }, + params: async () => transferQueryService.Params({}), + }, + verified: { + channel: { + channel: async (portId, channelId) => { + // keeper: https://github.com/cosmos/cosmos-sdk/blob/3bafd8255a502e5a9cee07391cf8261538245dfd/x/ibc/04-channel/keeper/keeper.go#L55-L65 + // key: https://github.com/cosmos/cosmos-sdk/blob/ef0a7344af345882729598bc2958a21143930a6b/x/ibc/24-host/keys.go#L117-L120 + const key = (0, encoding_1.toAscii)(`channelEnds/ports/${portId}/channels/${channelId}`); + const { value } = await base.queryStoreVerified("ibc", key); + return value.length ? channel_1.Channel.decode(value) : null; + }, + packetCommitment: async (portId, channelId, sequence) => { + // keeper: https://github.com/cosmos/cosmos-sdk/blob/3bafd8255a502e5a9cee07391cf8261538245dfd/x/ibc/04-channel/keeper/keeper.go#L128-L133 + // key: https://github.com/cosmos/cosmos-sdk/blob/ef0a7344af345882729598bc2958a21143930a6b/x/ibc/24-host/keys.go#L183-L185 + const key = (0, encoding_1.toAscii)(`commitments/ports/${portId}/channels/${channelId}/packets/${sequence}`); + const { value } = await base.queryStoreVerified("ibc", key); + // keeper code doesn't parse, but returns raw + return value; + }, + packetAcknowledgement: async (portId, channelId, sequence) => { + // keeper: https://github.com/cosmos/cosmos-sdk/blob/3bafd8255a502e5a9cee07391cf8261538245dfd/x/ibc/04-channel/keeper/keeper.go#L159-L166 + // key: https://github.com/cosmos/cosmos-sdk/blob/ef0a7344af345882729598bc2958a21143930a6b/x/ibc/24-host/keys.go#L153-L156 + const key = (0, encoding_1.toAscii)(`acks/ports/${portId}/channels/${channelId}/acknowledgements/${sequence}`); + const { value } = await base.queryStoreVerified("ibc", key); + // keeper code doesn't parse, but returns raw + return value; + }, + nextSequenceReceive: async (portId, channelId) => { + // keeper: https://github.com/cosmos/cosmos-sdk/blob/3bafd8255a502e5a9cee07391cf8261538245dfd/x/ibc/04-channel/keeper/keeper.go#L92-L101 + // key: https://github.com/cosmos/cosmos-sdk/blob/ef0a7344af345882729598bc2958a21143930a6b/x/ibc/24-host/keys.go#L133-L136 + const key = (0, encoding_1.toAscii)(`seqAcks/ports/${portId}/channels/${channelId}/nextSequenceAck`); + const { value } = await base.queryStoreVerified("ibc", key); + return value.length ? math_1.Uint64.fromBytes(value).toNumber() : null; + }, + }, + }, + }, + }; +} +exports.setupIbcExtension = setupIbcExtension; +//# sourceMappingURL=queries.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/index.js": +/*!**************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/index.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.isAminoMsgCreateValidator = exports.isAminoMsgBeginRedelegate = exports.createStakingAminoConverters = exports.setupSlashingExtension = exports.isAminoMsgUnjail = exports.createSlashingAminoConverters = exports.setupMintExtension = exports.setupIbcExtension = exports.isMsgTransferEncodeObject = exports.ibcTypes = exports.isAminoMsgTransfer = exports.createIbcAminoConverters = exports.groupTypes = exports.createGroupAminoConverters = exports.setupGovExtension = exports.isMsgVoteWeightedEncodeObject = exports.isMsgVoteEncodeObject = exports.isMsgSubmitProposalEncodeObject = exports.isMsgDepositEncodeObject = exports.govTypes = exports.isAminoMsgVoteWeighted = exports.isAminoMsgVote = exports.isAminoMsgSubmitProposal = exports.isAminoMsgDeposit = exports.createGovAminoConverters = exports.setupFeegrantExtension = exports.feegrantTypes = exports.createFeegrantAminoConverters = exports.isAminoMsgSubmitEvidence = exports.createEvidenceAminoConverters = exports.setupDistributionExtension = exports.isMsgWithdrawDelegatorRewardEncodeObject = exports.distributionTypes = exports.isAminoMsgWithdrawValidatorCommission = exports.isAminoMsgWithdrawDelegatorReward = exports.isAminoMsgSetWithdrawAddress = exports.isAminoMsgFundCommunityPool = exports.createDistributionAminoConverters = exports.isAminoMsgVerifyInvariant = exports.createCrysisAminoConverters = exports.setupBankExtension = exports.isMsgSendEncodeObject = exports.bankTypes = exports.isAminoMsgSend = exports.isAminoMsgMultiSend = exports.createBankAminoConverters = exports.setupAuthzExtension = exports.authzTypes = exports.createAuthzAminoConverters = exports.setupAuthExtension = void 0; +exports.vestingTypes = exports.isAminoMsgCreateVestingAccount = exports.createVestingAminoConverters = exports.setupTxExtension = exports.setupStakingExtension = exports.stakingTypes = exports.isMsgUndelegateEncodeObject = exports.isMsgEditValidatorEncodeObject = exports.isMsgDelegateEncodeObject = exports.isMsgCreateValidatorEncodeObject = exports.isMsgBeginRedelegateEncodeObject = exports.isAminoMsgUndelegate = exports.isAminoMsgEditValidator = exports.isAminoMsgDelegate = void 0; +var queries_1 = __webpack_require__(/*! ./auth/queries */ "./node_modules/@cosmjs/stargate/build/modules/auth/queries.js"); +Object.defineProperty(exports, "setupAuthExtension", ({ enumerable: true, get: function () { return queries_1.setupAuthExtension; } })); +var aminomessages_1 = __webpack_require__(/*! ./authz/aminomessages */ "./node_modules/@cosmjs/stargate/build/modules/authz/aminomessages.js"); +Object.defineProperty(exports, "createAuthzAminoConverters", ({ enumerable: true, get: function () { return aminomessages_1.createAuthzAminoConverters; } })); +var messages_1 = __webpack_require__(/*! ./authz/messages */ "./node_modules/@cosmjs/stargate/build/modules/authz/messages.js"); +Object.defineProperty(exports, "authzTypes", ({ enumerable: true, get: function () { return messages_1.authzTypes; } })); +var queries_2 = __webpack_require__(/*! ./authz/queries */ "./node_modules/@cosmjs/stargate/build/modules/authz/queries.js"); +Object.defineProperty(exports, "setupAuthzExtension", ({ enumerable: true, get: function () { return queries_2.setupAuthzExtension; } })); +var aminomessages_2 = __webpack_require__(/*! ./bank/aminomessages */ "./node_modules/@cosmjs/stargate/build/modules/bank/aminomessages.js"); +Object.defineProperty(exports, "createBankAminoConverters", ({ enumerable: true, get: function () { return aminomessages_2.createBankAminoConverters; } })); +Object.defineProperty(exports, "isAminoMsgMultiSend", ({ enumerable: true, get: function () { return aminomessages_2.isAminoMsgMultiSend; } })); +Object.defineProperty(exports, "isAminoMsgSend", ({ enumerable: true, get: function () { return aminomessages_2.isAminoMsgSend; } })); +var messages_2 = __webpack_require__(/*! ./bank/messages */ "./node_modules/@cosmjs/stargate/build/modules/bank/messages.js"); +Object.defineProperty(exports, "bankTypes", ({ enumerable: true, get: function () { return messages_2.bankTypes; } })); +Object.defineProperty(exports, "isMsgSendEncodeObject", ({ enumerable: true, get: function () { return messages_2.isMsgSendEncodeObject; } })); +var queries_3 = __webpack_require__(/*! ./bank/queries */ "./node_modules/@cosmjs/stargate/build/modules/bank/queries.js"); +Object.defineProperty(exports, "setupBankExtension", ({ enumerable: true, get: function () { return queries_3.setupBankExtension; } })); +var aminomessages_3 = __webpack_require__(/*! ./crisis/aminomessages */ "./node_modules/@cosmjs/stargate/build/modules/crisis/aminomessages.js"); +Object.defineProperty(exports, "createCrysisAminoConverters", ({ enumerable: true, get: function () { return aminomessages_3.createCrysisAminoConverters; } })); +Object.defineProperty(exports, "isAminoMsgVerifyInvariant", ({ enumerable: true, get: function () { return aminomessages_3.isAminoMsgVerifyInvariant; } })); +var aminomessages_4 = __webpack_require__(/*! ./distribution/aminomessages */ "./node_modules/@cosmjs/stargate/build/modules/distribution/aminomessages.js"); +Object.defineProperty(exports, "createDistributionAminoConverters", ({ enumerable: true, get: function () { return aminomessages_4.createDistributionAminoConverters; } })); +Object.defineProperty(exports, "isAminoMsgFundCommunityPool", ({ enumerable: true, get: function () { return aminomessages_4.isAminoMsgFundCommunityPool; } })); +Object.defineProperty(exports, "isAminoMsgSetWithdrawAddress", ({ enumerable: true, get: function () { return aminomessages_4.isAminoMsgSetWithdrawAddress; } })); +Object.defineProperty(exports, "isAminoMsgWithdrawDelegatorReward", ({ enumerable: true, get: function () { return aminomessages_4.isAminoMsgWithdrawDelegatorReward; } })); +Object.defineProperty(exports, "isAminoMsgWithdrawValidatorCommission", ({ enumerable: true, get: function () { return aminomessages_4.isAminoMsgWithdrawValidatorCommission; } })); +var messages_3 = __webpack_require__(/*! ./distribution/messages */ "./node_modules/@cosmjs/stargate/build/modules/distribution/messages.js"); +Object.defineProperty(exports, "distributionTypes", ({ enumerable: true, get: function () { return messages_3.distributionTypes; } })); +Object.defineProperty(exports, "isMsgWithdrawDelegatorRewardEncodeObject", ({ enumerable: true, get: function () { return messages_3.isMsgWithdrawDelegatorRewardEncodeObject; } })); +var queries_4 = __webpack_require__(/*! ./distribution/queries */ "./node_modules/@cosmjs/stargate/build/modules/distribution/queries.js"); +Object.defineProperty(exports, "setupDistributionExtension", ({ enumerable: true, get: function () { return queries_4.setupDistributionExtension; } })); +var aminomessages_5 = __webpack_require__(/*! ./evidence/aminomessages */ "./node_modules/@cosmjs/stargate/build/modules/evidence/aminomessages.js"); +Object.defineProperty(exports, "createEvidenceAminoConverters", ({ enumerable: true, get: function () { return aminomessages_5.createEvidenceAminoConverters; } })); +Object.defineProperty(exports, "isAminoMsgSubmitEvidence", ({ enumerable: true, get: function () { return aminomessages_5.isAminoMsgSubmitEvidence; } })); +var aminomessages_6 = __webpack_require__(/*! ./feegrant/aminomessages */ "./node_modules/@cosmjs/stargate/build/modules/feegrant/aminomessages.js"); +Object.defineProperty(exports, "createFeegrantAminoConverters", ({ enumerable: true, get: function () { return aminomessages_6.createFeegrantAminoConverters; } })); +var messages_4 = __webpack_require__(/*! ./feegrant/messages */ "./node_modules/@cosmjs/stargate/build/modules/feegrant/messages.js"); +Object.defineProperty(exports, "feegrantTypes", ({ enumerable: true, get: function () { return messages_4.feegrantTypes; } })); +var queries_5 = __webpack_require__(/*! ./feegrant/queries */ "./node_modules/@cosmjs/stargate/build/modules/feegrant/queries.js"); +Object.defineProperty(exports, "setupFeegrantExtension", ({ enumerable: true, get: function () { return queries_5.setupFeegrantExtension; } })); +var aminomessages_7 = __webpack_require__(/*! ./gov/aminomessages */ "./node_modules/@cosmjs/stargate/build/modules/gov/aminomessages.js"); +Object.defineProperty(exports, "createGovAminoConverters", ({ enumerable: true, get: function () { return aminomessages_7.createGovAminoConverters; } })); +Object.defineProperty(exports, "isAminoMsgDeposit", ({ enumerable: true, get: function () { return aminomessages_7.isAminoMsgDeposit; } })); +Object.defineProperty(exports, "isAminoMsgSubmitProposal", ({ enumerable: true, get: function () { return aminomessages_7.isAminoMsgSubmitProposal; } })); +Object.defineProperty(exports, "isAminoMsgVote", ({ enumerable: true, get: function () { return aminomessages_7.isAminoMsgVote; } })); +Object.defineProperty(exports, "isAminoMsgVoteWeighted", ({ enumerable: true, get: function () { return aminomessages_7.isAminoMsgVoteWeighted; } })); +var messages_5 = __webpack_require__(/*! ./gov/messages */ "./node_modules/@cosmjs/stargate/build/modules/gov/messages.js"); +Object.defineProperty(exports, "govTypes", ({ enumerable: true, get: function () { return messages_5.govTypes; } })); +Object.defineProperty(exports, "isMsgDepositEncodeObject", ({ enumerable: true, get: function () { return messages_5.isMsgDepositEncodeObject; } })); +Object.defineProperty(exports, "isMsgSubmitProposalEncodeObject", ({ enumerable: true, get: function () { return messages_5.isMsgSubmitProposalEncodeObject; } })); +Object.defineProperty(exports, "isMsgVoteEncodeObject", ({ enumerable: true, get: function () { return messages_5.isMsgVoteEncodeObject; } })); +Object.defineProperty(exports, "isMsgVoteWeightedEncodeObject", ({ enumerable: true, get: function () { return messages_5.isMsgVoteWeightedEncodeObject; } })); +var queries_6 = __webpack_require__(/*! ./gov/queries */ "./node_modules/@cosmjs/stargate/build/modules/gov/queries.js"); +Object.defineProperty(exports, "setupGovExtension", ({ enumerable: true, get: function () { return queries_6.setupGovExtension; } })); +var aminomessages_8 = __webpack_require__(/*! ./group/aminomessages */ "./node_modules/@cosmjs/stargate/build/modules/group/aminomessages.js"); +Object.defineProperty(exports, "createGroupAminoConverters", ({ enumerable: true, get: function () { return aminomessages_8.createGroupAminoConverters; } })); +var messages_6 = __webpack_require__(/*! ./group/messages */ "./node_modules/@cosmjs/stargate/build/modules/group/messages.js"); +Object.defineProperty(exports, "groupTypes", ({ enumerable: true, get: function () { return messages_6.groupTypes; } })); +var aminomessages_9 = __webpack_require__(/*! ./ibc/aminomessages */ "./node_modules/@cosmjs/stargate/build/modules/ibc/aminomessages.js"); +Object.defineProperty(exports, "createIbcAminoConverters", ({ enumerable: true, get: function () { return aminomessages_9.createIbcAminoConverters; } })); +Object.defineProperty(exports, "isAminoMsgTransfer", ({ enumerable: true, get: function () { return aminomessages_9.isAminoMsgTransfer; } })); +var messages_7 = __webpack_require__(/*! ./ibc/messages */ "./node_modules/@cosmjs/stargate/build/modules/ibc/messages.js"); +Object.defineProperty(exports, "ibcTypes", ({ enumerable: true, get: function () { return messages_7.ibcTypes; } })); +Object.defineProperty(exports, "isMsgTransferEncodeObject", ({ enumerable: true, get: function () { return messages_7.isMsgTransferEncodeObject; } })); +var queries_7 = __webpack_require__(/*! ./ibc/queries */ "./node_modules/@cosmjs/stargate/build/modules/ibc/queries.js"); +Object.defineProperty(exports, "setupIbcExtension", ({ enumerable: true, get: function () { return queries_7.setupIbcExtension; } })); +var queries_8 = __webpack_require__(/*! ./mint/queries */ "./node_modules/@cosmjs/stargate/build/modules/mint/queries.js"); +Object.defineProperty(exports, "setupMintExtension", ({ enumerable: true, get: function () { return queries_8.setupMintExtension; } })); +var aminomessages_10 = __webpack_require__(/*! ./slashing/aminomessages */ "./node_modules/@cosmjs/stargate/build/modules/slashing/aminomessages.js"); +Object.defineProperty(exports, "createSlashingAminoConverters", ({ enumerable: true, get: function () { return aminomessages_10.createSlashingAminoConverters; } })); +Object.defineProperty(exports, "isAminoMsgUnjail", ({ enumerable: true, get: function () { return aminomessages_10.isAminoMsgUnjail; } })); +var queries_9 = __webpack_require__(/*! ./slashing/queries */ "./node_modules/@cosmjs/stargate/build/modules/slashing/queries.js"); +Object.defineProperty(exports, "setupSlashingExtension", ({ enumerable: true, get: function () { return queries_9.setupSlashingExtension; } })); +var aminomessages_11 = __webpack_require__(/*! ./staking/aminomessages */ "./node_modules/@cosmjs/stargate/build/modules/staking/aminomessages.js"); +Object.defineProperty(exports, "createStakingAminoConverters", ({ enumerable: true, get: function () { return aminomessages_11.createStakingAminoConverters; } })); +Object.defineProperty(exports, "isAminoMsgBeginRedelegate", ({ enumerable: true, get: function () { return aminomessages_11.isAminoMsgBeginRedelegate; } })); +Object.defineProperty(exports, "isAminoMsgCreateValidator", ({ enumerable: true, get: function () { return aminomessages_11.isAminoMsgCreateValidator; } })); +Object.defineProperty(exports, "isAminoMsgDelegate", ({ enumerable: true, get: function () { return aminomessages_11.isAminoMsgDelegate; } })); +Object.defineProperty(exports, "isAminoMsgEditValidator", ({ enumerable: true, get: function () { return aminomessages_11.isAminoMsgEditValidator; } })); +Object.defineProperty(exports, "isAminoMsgUndelegate", ({ enumerable: true, get: function () { return aminomessages_11.isAminoMsgUndelegate; } })); +var messages_8 = __webpack_require__(/*! ./staking/messages */ "./node_modules/@cosmjs/stargate/build/modules/staking/messages.js"); +Object.defineProperty(exports, "isMsgBeginRedelegateEncodeObject", ({ enumerable: true, get: function () { return messages_8.isMsgBeginRedelegateEncodeObject; } })); +Object.defineProperty(exports, "isMsgCreateValidatorEncodeObject", ({ enumerable: true, get: function () { return messages_8.isMsgCreateValidatorEncodeObject; } })); +Object.defineProperty(exports, "isMsgDelegateEncodeObject", ({ enumerable: true, get: function () { return messages_8.isMsgDelegateEncodeObject; } })); +Object.defineProperty(exports, "isMsgEditValidatorEncodeObject", ({ enumerable: true, get: function () { return messages_8.isMsgEditValidatorEncodeObject; } })); +Object.defineProperty(exports, "isMsgUndelegateEncodeObject", ({ enumerable: true, get: function () { return messages_8.isMsgUndelegateEncodeObject; } })); +Object.defineProperty(exports, "stakingTypes", ({ enumerable: true, get: function () { return messages_8.stakingTypes; } })); +var queries_10 = __webpack_require__(/*! ./staking/queries */ "./node_modules/@cosmjs/stargate/build/modules/staking/queries.js"); +Object.defineProperty(exports, "setupStakingExtension", ({ enumerable: true, get: function () { return queries_10.setupStakingExtension; } })); +var queries_11 = __webpack_require__(/*! ./tx/queries */ "./node_modules/@cosmjs/stargate/build/modules/tx/queries.js"); +Object.defineProperty(exports, "setupTxExtension", ({ enumerable: true, get: function () { return queries_11.setupTxExtension; } })); +var aminomessages_12 = __webpack_require__(/*! ./vesting/aminomessages */ "./node_modules/@cosmjs/stargate/build/modules/vesting/aminomessages.js"); +Object.defineProperty(exports, "createVestingAminoConverters", ({ enumerable: true, get: function () { return aminomessages_12.createVestingAminoConverters; } })); +Object.defineProperty(exports, "isAminoMsgCreateVestingAccount", ({ enumerable: true, get: function () { return aminomessages_12.isAminoMsgCreateVestingAccount; } })); +var messages_9 = __webpack_require__(/*! ./vesting/messages */ "./node_modules/@cosmjs/stargate/build/modules/vesting/messages.js"); +Object.defineProperty(exports, "vestingTypes", ({ enumerable: true, get: function () { return messages_9.vestingTypes; } })); +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/mint/queries.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/mint/queries.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.setupMintExtension = void 0; +const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/utils/build/index.js"); +const query_1 = __webpack_require__(/*! cosmjs-types/cosmos/mint/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/mint/v1beta1/query.js"); +const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); +function setupMintExtension(base) { + const rpc = (0, queryclient_1.createProtobufRpcClient)(base); + // Use this service to get easy typed access to query methods + // This cannot be used for proof verification + const queryService = new query_1.QueryClientImpl(rpc); + return { + mint: { + params: async () => { + const { params } = await queryService.Params({}); + (0, utils_1.assert)(params); + return { + blocksPerYear: params.blocksPerYear, + goalBonded: (0, queryclient_1.decodeCosmosSdkDecFromProto)(params.goalBonded), + inflationMin: (0, queryclient_1.decodeCosmosSdkDecFromProto)(params.inflationMin), + inflationMax: (0, queryclient_1.decodeCosmosSdkDecFromProto)(params.inflationMax), + inflationRateChange: (0, queryclient_1.decodeCosmosSdkDecFromProto)(params.inflationRateChange), + mintDenom: params.mintDenom, + }; + }, + inflation: async () => { + const { inflation } = await queryService.Inflation({}); + return (0, queryclient_1.decodeCosmosSdkDecFromProto)(inflation); + }, + annualProvisions: async () => { + const { annualProvisions } = await queryService.AnnualProvisions({}); + return (0, queryclient_1.decodeCosmosSdkDecFromProto)(annualProvisions); + }, + }, + }; +} +exports.setupMintExtension = setupMintExtension; +//# sourceMappingURL=queries.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/slashing/aminomessages.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/slashing/aminomessages.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.createSlashingAminoConverters = exports.isAminoMsgUnjail = void 0; +function isAminoMsgUnjail(msg) { + return msg.type === "cosmos-sdk/MsgUnjail"; +} +exports.isAminoMsgUnjail = isAminoMsgUnjail; +function createSlashingAminoConverters() { + throw new Error("Not implemented"); +} +exports.createSlashingAminoConverters = createSlashingAminoConverters; +//# sourceMappingURL=aminomessages.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/slashing/queries.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/slashing/queries.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.setupSlashingExtension = void 0; +const query_1 = __webpack_require__(/*! cosmjs-types/cosmos/slashing/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/slashing/v1beta1/query.js"); +const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); +function setupSlashingExtension(base) { + const rpc = (0, queryclient_1.createProtobufRpcClient)(base); + const queryService = new query_1.QueryClientImpl(rpc); + return { + slashing: { + signingInfo: async (consAddress) => { + const response = await queryService.SigningInfo({ + consAddress: consAddress, + }); + return response; + }, + signingInfos: async (paginationKey) => { + const response = await queryService.SigningInfos({ + pagination: (0, queryclient_1.createPagination)(paginationKey), + }); + return response; + }, + params: async () => { + const response = await queryService.Params({}); + return response; + }, + }, + }; +} +exports.setupSlashingExtension = setupSlashingExtension; +//# sourceMappingURL=queries.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/staking/aminomessages.js": +/*!******************************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/staking/aminomessages.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.createStakingAminoConverters = exports.isAminoMsgUndelegate = exports.isAminoMsgBeginRedelegate = exports.isAminoMsgDelegate = exports.isAminoMsgEditValidator = exports.isAminoMsgCreateValidator = exports.protoDecimalToJson = void 0; +const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/math/build/index.js"); +const proto_signing_1 = __webpack_require__(/*! @cosmjs/proto-signing */ "./node_modules/@cosmjs/proto-signing/build/index.js"); +const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/utils/build/index.js"); +function protoDecimalToJson(decimal) { + const parsed = math_1.Decimal.fromAtomics(decimal, 18); + const [whole, fractional] = parsed.toString().split("."); + return `${whole}.${(fractional ?? "").padEnd(18, "0")}`; +} +exports.protoDecimalToJson = protoDecimalToJson; +function jsonDecimalToProto(decimal) { + const parsed = math_1.Decimal.fromUserInput(decimal, 18); + return parsed.atomics; +} +function isAminoMsgCreateValidator(msg) { + return msg.type === "cosmos-sdk/MsgCreateValidator"; +} +exports.isAminoMsgCreateValidator = isAminoMsgCreateValidator; +function isAminoMsgEditValidator(msg) { + return msg.type === "cosmos-sdk/MsgEditValidator"; +} +exports.isAminoMsgEditValidator = isAminoMsgEditValidator; +function isAminoMsgDelegate(msg) { + return msg.type === "cosmos-sdk/MsgDelegate"; +} +exports.isAminoMsgDelegate = isAminoMsgDelegate; +function isAminoMsgBeginRedelegate(msg) { + return msg.type === "cosmos-sdk/MsgBeginRedelegate"; +} +exports.isAminoMsgBeginRedelegate = isAminoMsgBeginRedelegate; +function isAminoMsgUndelegate(msg) { + return msg.type === "cosmos-sdk/MsgUndelegate"; +} +exports.isAminoMsgUndelegate = isAminoMsgUndelegate; +function createStakingAminoConverters() { + return { + "/cosmos.staking.v1beta1.MsgBeginRedelegate": { + aminoType: "cosmos-sdk/MsgBeginRedelegate", + toAmino: ({ delegatorAddress, validatorSrcAddress, validatorDstAddress, amount, }) => { + (0, utils_1.assertDefinedAndNotNull)(amount, "missing amount"); + return { + delegator_address: delegatorAddress, + validator_src_address: validatorSrcAddress, + validator_dst_address: validatorDstAddress, + amount: amount, + }; + }, + fromAmino: ({ delegator_address, validator_src_address, validator_dst_address, amount, }) => ({ + delegatorAddress: delegator_address, + validatorSrcAddress: validator_src_address, + validatorDstAddress: validator_dst_address, + amount: amount, + }), + }, + "/cosmos.staking.v1beta1.MsgCreateValidator": { + aminoType: "cosmos-sdk/MsgCreateValidator", + toAmino: ({ description, commission, minSelfDelegation, delegatorAddress, validatorAddress, pubkey, value, }) => { + (0, utils_1.assertDefinedAndNotNull)(description, "missing description"); + (0, utils_1.assertDefinedAndNotNull)(commission, "missing commission"); + (0, utils_1.assertDefinedAndNotNull)(pubkey, "missing pubkey"); + (0, utils_1.assertDefinedAndNotNull)(value, "missing value"); + return { + description: { + moniker: description.moniker, + identity: description.identity, + website: description.website, + security_contact: description.securityContact, + details: description.details, + }, + commission: { + rate: protoDecimalToJson(commission.rate), + max_rate: protoDecimalToJson(commission.maxRate), + max_change_rate: protoDecimalToJson(commission.maxChangeRate), + }, + min_self_delegation: minSelfDelegation, + delegator_address: delegatorAddress, + validator_address: validatorAddress, + pubkey: (0, proto_signing_1.decodePubkey)(pubkey), + value: value, + }; + }, + fromAmino: ({ description, commission, min_self_delegation, delegator_address, validator_address, pubkey, value, }) => { + return { + description: { + moniker: description.moniker, + identity: description.identity, + website: description.website, + securityContact: description.security_contact, + details: description.details, + }, + commission: { + rate: jsonDecimalToProto(commission.rate), + maxRate: jsonDecimalToProto(commission.max_rate), + maxChangeRate: jsonDecimalToProto(commission.max_change_rate), + }, + minSelfDelegation: min_self_delegation, + delegatorAddress: delegator_address, + validatorAddress: validator_address, + pubkey: (0, proto_signing_1.encodePubkey)(pubkey), + value: value, + }; + }, + }, + "/cosmos.staking.v1beta1.MsgDelegate": { + aminoType: "cosmos-sdk/MsgDelegate", + toAmino: ({ delegatorAddress, validatorAddress, amount }) => { + (0, utils_1.assertDefinedAndNotNull)(amount, "missing amount"); + return { + delegator_address: delegatorAddress, + validator_address: validatorAddress, + amount: amount, + }; + }, + fromAmino: ({ delegator_address, validator_address, amount, }) => ({ + delegatorAddress: delegator_address, + validatorAddress: validator_address, + amount: amount, + }), + }, + "/cosmos.staking.v1beta1.MsgEditValidator": { + aminoType: "cosmos-sdk/MsgEditValidator", + toAmino: ({ description, commissionRate, minSelfDelegation, validatorAddress, }) => { + (0, utils_1.assertDefinedAndNotNull)(description, "missing description"); + return { + description: { + moniker: description.moniker, + identity: description.identity, + website: description.website, + security_contact: description.securityContact, + details: description.details, + }, + // empty string in the protobuf document means "do not change" + commission_rate: commissionRate ? protoDecimalToJson(commissionRate) : undefined, + // empty string in the protobuf document means "do not change" + min_self_delegation: minSelfDelegation ? minSelfDelegation : undefined, + validator_address: validatorAddress, + }; + }, + fromAmino: ({ description, commission_rate, min_self_delegation, validator_address, }) => ({ + description: { + moniker: description.moniker, + identity: description.identity, + website: description.website, + securityContact: description.security_contact, + details: description.details, + }, + // empty string in the protobuf document means "do not change" + commissionRate: commission_rate ? jsonDecimalToProto(commission_rate) : "", + // empty string in the protobuf document means "do not change" + minSelfDelegation: min_self_delegation ?? "", + validatorAddress: validator_address, + }), + }, + "/cosmos.staking.v1beta1.MsgUndelegate": { + aminoType: "cosmos-sdk/MsgUndelegate", + toAmino: ({ delegatorAddress, validatorAddress, amount, }) => { + (0, utils_1.assertDefinedAndNotNull)(amount, "missing amount"); + return { + delegator_address: delegatorAddress, + validator_address: validatorAddress, + amount: amount, + }; + }, + fromAmino: ({ delegator_address, validator_address, amount, }) => ({ + delegatorAddress: delegator_address, + validatorAddress: validator_address, + amount: amount, + }), + }, + }; +} +exports.createStakingAminoConverters = createStakingAminoConverters; +//# sourceMappingURL=aminomessages.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/staking/messages.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/staking/messages.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.isMsgUndelegateEncodeObject = exports.isMsgEditValidatorEncodeObject = exports.isMsgDelegateEncodeObject = exports.isMsgCreateValidatorEncodeObject = exports.isMsgBeginRedelegateEncodeObject = exports.stakingTypes = void 0; +const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/staking/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/staking/v1beta1/tx.js"); +exports.stakingTypes = [ + ["/cosmos.staking.v1beta1.MsgBeginRedelegate", tx_1.MsgBeginRedelegate], + ["/cosmos.staking.v1beta1.MsgCreateValidator", tx_1.MsgCreateValidator], + ["/cosmos.staking.v1beta1.MsgDelegate", tx_1.MsgDelegate], + ["/cosmos.staking.v1beta1.MsgEditValidator", tx_1.MsgEditValidator], + ["/cosmos.staking.v1beta1.MsgUndelegate", tx_1.MsgUndelegate], ]; -function bytesToBitstring(bytes) { - return Array.from(bytes) - .map((byte) => byte.toString(2).padStart(8, "0")) - .join(""); +function isMsgBeginRedelegateEncodeObject(o) { + return o.typeUrl === "/cosmos.staking.v1beta1.MsgBeginRedelegate"; +} +exports.isMsgBeginRedelegateEncodeObject = isMsgBeginRedelegateEncodeObject; +function isMsgCreateValidatorEncodeObject(o) { + return o.typeUrl === "/cosmos.staking.v1beta1.MsgCreateValidator"; +} +exports.isMsgCreateValidatorEncodeObject = isMsgCreateValidatorEncodeObject; +function isMsgDelegateEncodeObject(object) { + return object.typeUrl === "/cosmos.staking.v1beta1.MsgDelegate"; +} +exports.isMsgDelegateEncodeObject = isMsgDelegateEncodeObject; +function isMsgEditValidatorEncodeObject(o) { + return o.typeUrl === "/cosmos.staking.v1beta1.MsgEditValidator"; +} +exports.isMsgEditValidatorEncodeObject = isMsgEditValidatorEncodeObject; +function isMsgUndelegateEncodeObject(object) { + return object.typeUrl === "/cosmos.staking.v1beta1.MsgUndelegate"; +} +exports.isMsgUndelegateEncodeObject = isMsgUndelegateEncodeObject; +//# sourceMappingURL=messages.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/staking/queries.js": +/*!************************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/staking/queries.js ***! + \************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.setupStakingExtension = void 0; +/* eslint-disable @typescript-eslint/naming-convention */ +const query_1 = __webpack_require__(/*! cosmjs-types/cosmos/staking/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/staking/v1beta1/query.js"); +const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); +function setupStakingExtension(base) { + // Use this service to get easy typed access to query methods + // This cannot be used for proof verification + const rpc = (0, queryclient_1.createProtobufRpcClient)(base); + const queryService = new query_1.QueryClientImpl(rpc); + return { + staking: { + delegation: async (delegatorAddress, validatorAddress) => { + const response = await queryService.Delegation({ + delegatorAddr: delegatorAddress, + validatorAddr: validatorAddress, + }); + return response; + }, + delegatorDelegations: async (delegatorAddress, paginationKey) => { + const response = await queryService.DelegatorDelegations({ + delegatorAddr: delegatorAddress, + pagination: (0, queryclient_1.createPagination)(paginationKey), + }); + return response; + }, + delegatorUnbondingDelegations: async (delegatorAddress, paginationKey) => { + const response = await queryService.DelegatorUnbondingDelegations({ + delegatorAddr: delegatorAddress, + pagination: (0, queryclient_1.createPagination)(paginationKey), + }); + return response; + }, + delegatorValidator: async (delegatorAddress, validatorAddress) => { + const response = await queryService.DelegatorValidator({ + delegatorAddr: delegatorAddress, + validatorAddr: validatorAddress, + }); + return response; + }, + delegatorValidators: async (delegatorAddress, paginationKey) => { + const response = await queryService.DelegatorValidators({ + delegatorAddr: delegatorAddress, + pagination: (0, queryclient_1.createPagination)(paginationKey), + }); + return response; + }, + historicalInfo: async (height) => { + const response = await queryService.HistoricalInfo({ + height: BigInt(height), + }); + return response; + }, + params: async () => { + const response = await queryService.Params({}); + return response; + }, + pool: async () => { + const response = await queryService.Pool({}); + return response; + }, + redelegations: async (delegatorAddress, sourceValidatorAddress, destinationValidatorAddress, paginationKey) => { + const response = await queryService.Redelegations({ + delegatorAddr: delegatorAddress, + srcValidatorAddr: sourceValidatorAddress, + dstValidatorAddr: destinationValidatorAddress, + pagination: (0, queryclient_1.createPagination)(paginationKey), + }); + return response; + }, + unbondingDelegation: async (delegatorAddress, validatorAddress) => { + const response = await queryService.UnbondingDelegation({ + delegatorAddr: delegatorAddress, + validatorAddr: validatorAddress, + }); + return response; + }, + validator: async (validatorAddress) => { + const response = await queryService.Validator({ validatorAddr: validatorAddress }); + return response; + }, + validatorDelegations: async (validatorAddress, paginationKey) => { + const response = await queryService.ValidatorDelegations({ + validatorAddr: validatorAddress, + pagination: (0, queryclient_1.createPagination)(paginationKey), + }); + return response; + }, + validators: async (status, paginationKey) => { + const response = await queryService.Validators({ + status: status, + pagination: (0, queryclient_1.createPagination)(paginationKey), + }); + return response; + }, + validatorUnbondingDelegations: async (validatorAddress, paginationKey) => { + const response = await queryService.ValidatorUnbondingDelegations({ + validatorAddr: validatorAddress, + pagination: (0, queryclient_1.createPagination)(paginationKey), + }); + return response; + }, + }, + }; +} +exports.setupStakingExtension = setupStakingExtension; +//# sourceMappingURL=queries.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/tx/queries.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/tx/queries.js ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.setupTxExtension = void 0; +const proto_signing_1 = __webpack_require__(/*! @cosmjs/proto-signing */ "./node_modules/@cosmjs/proto-signing/build/index.js"); +const signing_1 = __webpack_require__(/*! cosmjs-types/cosmos/tx/signing/v1beta1/signing */ "./node_modules/cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"); +const service_1 = __webpack_require__(/*! cosmjs-types/cosmos/tx/v1beta1/service */ "./node_modules/cosmjs-types/cosmos/tx/v1beta1/service.js"); +const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/tx/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/tx/v1beta1/tx.js"); +const queryclient_1 = __webpack_require__(/*! ../../queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); +function setupTxExtension(base) { + // Use this service to get easy typed access to query methods + // This cannot be used for proof verification + const rpc = (0, queryclient_1.createProtobufRpcClient)(base); + const queryService = new service_1.ServiceClientImpl(rpc); + return { + tx: { + getTx: async (txId) => { + const request = { + hash: txId, + }; + const response = await queryService.GetTx(request); + return response; + }, + simulate: async (messages, memo, signer, sequence) => { + const tx = tx_1.Tx.fromPartial({ + authInfo: tx_1.AuthInfo.fromPartial({ + fee: tx_1.Fee.fromPartial({}), + signerInfos: [ + { + publicKey: (0, proto_signing_1.encodePubkey)(signer), + sequence: BigInt(sequence), + modeInfo: { single: { mode: signing_1.SignMode.SIGN_MODE_UNSPECIFIED } }, + }, + ], + }), + body: tx_1.TxBody.fromPartial({ + messages: Array.from(messages), + memo: memo, + }), + signatures: [new Uint8Array()], + }); + const request = service_1.SimulateRequest.fromPartial({ + txBytes: tx_1.Tx.encode(tx).finish(), + }); + const response = await queryService.Simulate(request); + return response; + }, + }, + }; +} +exports.setupTxExtension = setupTxExtension; +//# sourceMappingURL=queries.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/vesting/aminomessages.js": +/*!******************************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/vesting/aminomessages.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.createVestingAminoConverters = exports.isAminoMsgCreateVestingAccount = void 0; +function isAminoMsgCreateVestingAccount(msg) { + return msg.type === "cosmos-sdk/MsgCreateVestingAccount"; +} +exports.isAminoMsgCreateVestingAccount = isAminoMsgCreateVestingAccount; +function createVestingAminoConverters() { + return { + "/cosmos.vesting.v1beta1.MsgCreateVestingAccount": { + aminoType: "cosmos-sdk/MsgCreateVestingAccount", + toAmino: ({ fromAddress, toAddress, amount, endTime, delayed, }) => ({ + from_address: fromAddress, + to_address: toAddress, + amount: [...amount], + end_time: endTime.toString(), + delayed: delayed, + }), + fromAmino: ({ from_address, to_address, amount, end_time, delayed, }) => ({ + fromAddress: from_address, + toAddress: to_address, + amount: [...amount], + endTime: BigInt(end_time), + delayed: delayed, + }), + }, + }; +} +exports.createVestingAminoConverters = createVestingAminoConverters; +//# sourceMappingURL=aminomessages.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/modules/vesting/messages.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/modules/vesting/messages.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.vestingTypes = void 0; +const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/vesting/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/vesting/v1beta1/tx.js"); +exports.vestingTypes = [ + ["/cosmos.vesting.v1beta1.MsgCreateVestingAccount", tx_1.MsgCreateVestingAccount], +]; +//# sourceMappingURL=messages.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/multisignature.js": +/*!***************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/multisignature.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.makeMultisignedTxBytes = exports.makeMultisignedTx = exports.makeCompactBitArray = void 0; +const amino_1 = __webpack_require__(/*! @cosmjs/amino */ "./node_modules/@cosmjs/amino/build/index.js"); +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +const proto_signing_1 = __webpack_require__(/*! @cosmjs/proto-signing */ "./node_modules/@cosmjs/proto-signing/build/index.js"); +const multisig_1 = __webpack_require__(/*! cosmjs-types/cosmos/crypto/multisig/v1beta1/multisig */ "./node_modules/cosmjs-types/cosmos/crypto/multisig/v1beta1/multisig.js"); +const signing_1 = __webpack_require__(/*! cosmjs-types/cosmos/tx/signing/v1beta1/signing */ "./node_modules/cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"); +const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/tx/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/tx/v1beta1/tx.js"); +const tx_2 = __webpack_require__(/*! cosmjs-types/cosmos/tx/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/tx/v1beta1/tx.js"); +function makeCompactBitArray(bits) { + const byteCount = Math.ceil(bits.length / 8); + const extraBits = bits.length - Math.floor(bits.length / 8) * 8; + const bytes = new Uint8Array(byteCount); // zero-filled + bits.forEach((value, index) => { + const bytePos = Math.floor(index / 8); + const bitPos = index % 8; + // eslint-disable-next-line no-bitwise + if (value) + bytes[bytePos] |= 0b1 << (8 - 1 - bitPos); + }); + return multisig_1.CompactBitArray.fromPartial({ elems: bytes, extraBitsStored: extraBits }); +} +exports.makeCompactBitArray = makeCompactBitArray; +/** + * Creates a signed transaction from signer info, transaction body and signatures. + * The result can be broadcasted after serialization. + * + * Consider using `makeMultisignedTxBytes` instead if you want to broadcast the + * transaction immediately. + */ +function makeMultisignedTx(multisigPubkey, sequence, fee, bodyBytes, signatures) { + const addresses = Array.from(signatures.keys()); + const prefix = (0, encoding_1.fromBech32)(addresses[0]).prefix; + const signers = Array(multisigPubkey.value.pubkeys.length).fill(false); + const signaturesList = new Array(); + for (let i = 0; i < multisigPubkey.value.pubkeys.length; i++) { + const signerAddress = (0, amino_1.pubkeyToAddress)(multisigPubkey.value.pubkeys[i], prefix); + const signature = signatures.get(signerAddress); + if (signature) { + signers[i] = true; + signaturesList.push(signature); + } + } + const signerInfo = { + publicKey: (0, proto_signing_1.encodePubkey)(multisigPubkey), + modeInfo: { + multi: { + bitarray: makeCompactBitArray(signers), + modeInfos: signaturesList.map((_) => ({ single: { mode: signing_1.SignMode.SIGN_MODE_LEGACY_AMINO_JSON } })), + }, + }, + sequence: BigInt(sequence), + }; + const authInfo = tx_1.AuthInfo.fromPartial({ + signerInfos: [signerInfo], + fee: { + amount: [...fee.amount], + gasLimit: BigInt(fee.gas), + }, + }); + const authInfoBytes = tx_1.AuthInfo.encode(authInfo).finish(); + const signedTx = tx_2.TxRaw.fromPartial({ + bodyBytes: bodyBytes, + authInfoBytes: authInfoBytes, + signatures: [multisig_1.MultiSignature.encode(multisig_1.MultiSignature.fromPartial({ signatures: signaturesList })).finish()], + }); + return signedTx; +} +exports.makeMultisignedTx = makeMultisignedTx; +/** + * Creates a signed transaction from signer info, transaction body and signatures. + * The result can be broadcasted. + * + * This is a wrapper around `makeMultisignedTx` that encodes the transaction for broadcasting. + */ +function makeMultisignedTxBytes(multisigPubkey, sequence, fee, bodyBytes, signatures) { + const signedTx = makeMultisignedTx(multisigPubkey, sequence, fee, bodyBytes, signatures); + return Uint8Array.from(tx_2.TxRaw.encode(signedTx).finish()); +} +exports.makeMultisignedTxBytes = makeMultisignedTxBytes; +//# sourceMappingURL=multisignature.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/queryclient/index.js": +/*!******************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/queryclient/index.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.longify = exports.decodeCosmosSdkDecFromProto = exports.createProtobufRpcClient = exports.createPagination = exports.QueryClient = void 0; +var queryclient_1 = __webpack_require__(/*! ./queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/queryclient.js"); +Object.defineProperty(exports, "QueryClient", ({ enumerable: true, get: function () { return queryclient_1.QueryClient; } })); +var utils_1 = __webpack_require__(/*! ./utils */ "./node_modules/@cosmjs/stargate/build/queryclient/utils.js"); +Object.defineProperty(exports, "createPagination", ({ enumerable: true, get: function () { return utils_1.createPagination; } })); +Object.defineProperty(exports, "createProtobufRpcClient", ({ enumerable: true, get: function () { return utils_1.createProtobufRpcClient; } })); +Object.defineProperty(exports, "decodeCosmosSdkDecFromProto", ({ enumerable: true, get: function () { return utils_1.decodeCosmosSdkDecFromProto; } })); +Object.defineProperty(exports, "longify", ({ enumerable: true, get: function () { return utils_1.longify; } })); +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/queryclient/queryclient.js": +/*!************************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/queryclient/queryclient.js ***! + \************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.QueryClient = void 0; +/* eslint-disable no-dupe-class-members, @typescript-eslint/ban-types, @typescript-eslint/naming-convention */ +const ics23_1 = __webpack_require__(/*! @confio/ics23 */ "./node_modules/@confio/ics23/build/index.js"); +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +const stream_1 = __webpack_require__(/*! @cosmjs/stream */ "./node_modules/@cosmjs/stream/build/index.js"); +const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/utils/build/index.js"); +function checkAndParseOp(op, kind, key) { + if (op.type !== kind) { + throw new Error(`Op expected to be ${kind}, got "${op.type}`); + } + if (!(0, utils_1.arrayContentEquals)(key, op.key)) { + throw new Error(`Proven key different than queried key.\nQuery: ${(0, encoding_1.toHex)(key)}\nProven: ${(0, encoding_1.toHex)(op.key)}`); + } + return ics23_1.ics23.CommitmentProof.decode(op.data); +} +class QueryClient { + static withExtensions(cometClient, ...extensionSetups) { + const client = new QueryClient(cometClient); + const extensions = extensionSetups.map((setupExtension) => setupExtension(client)); + for (const extension of extensions) { + (0, utils_1.assert)((0, utils_1.isNonNullObject)(extension), `Extension must be a non-null object`); + for (const [moduleKey, moduleValue] of Object.entries(extension)) { + (0, utils_1.assert)((0, utils_1.isNonNullObject)(moduleValue), `Module must be a non-null object. Found type ${typeof moduleValue} for module "${moduleKey}".`); + const current = client[moduleKey] || {}; + client[moduleKey] = { + ...current, + ...moduleValue, + }; + } + } + return client; + } + constructor(cometClient) { + this.cometClient = cometClient; + } + /** + * Queries the database store with a proof, which is then verified. + * + * Please note: the current implementation trusts block headers it gets from the PRC endpoint. + */ + async queryStoreVerified(store, queryKey, desiredHeight) { + const { height, proof, key, value } = await this.queryRawProof(store, queryKey, desiredHeight); + const subProof = checkAndParseOp(proof.ops[0], "ics23:iavl", queryKey); + const storeProof = checkAndParseOp(proof.ops[1], "ics23:simple", (0, encoding_1.toAscii)(store)); + // this must always be existence, if the store is not a typo + (0, utils_1.assert)(storeProof.exist); + (0, utils_1.assert)(storeProof.exist.value); + // this may be exist or non-exist, depends on response + if (!value || value.length === 0) { + // non-existence check + (0, utils_1.assert)(subProof.nonexist); + // the subproof must map the desired key to the "value" of the storeProof + (0, ics23_1.verifyNonExistence)(subProof.nonexist, ics23_1.iavlSpec, storeProof.exist.value, queryKey); + } + else { + // existence check + (0, utils_1.assert)(subProof.exist); + (0, utils_1.assert)(subProof.exist.value); + // the subproof must map the desired key to the "value" of the storeProof + (0, ics23_1.verifyExistence)(subProof.exist, ics23_1.iavlSpec, storeProof.exist.value, queryKey, value); + } + // the store proof must map its declared value (root of subProof) to the appHash of the next block + const header = await this.getNextHeader(height); + (0, ics23_1.verifyExistence)(storeProof.exist, ics23_1.tendermintSpec, header.appHash, (0, encoding_1.toAscii)(store), storeProof.exist.value); + return { key, value, height }; + } + async queryRawProof(store, queryKey, desiredHeight) { + const { key, value, height, proof, code, log } = await this.cometClient.abciQuery({ + // we need the StoreKey for the module, not the module name + // https://github.com/cosmos/cosmos-sdk/blob/8cab43c8120fec5200c3459cbf4a92017bb6f287/x/auth/types/keys.go#L12 + path: `/store/${store}/key`, + data: queryKey, + prove: true, + height: desiredHeight, + }); + if (code) { + throw new Error(`Query failed with (${code}): ${log}`); + } + if (!(0, utils_1.arrayContentEquals)(queryKey, key)) { + throw new Error(`Response key ${(0, encoding_1.toHex)(key)} doesn't match query key ${(0, encoding_1.toHex)(queryKey)}`); + } + if (!height) { + throw new Error("No query height returned"); + } + if (!proof || proof.ops.length !== 2) { + throw new Error(`Expected 2 proof ops, got ${proof?.ops.length ?? 0}. Are you using stargate?`); + } + // we don't need the results, but we can ensure the data is the proper format + checkAndParseOp(proof.ops[0], "ics23:iavl", key); + checkAndParseOp(proof.ops[1], "ics23:simple", (0, encoding_1.toAscii)(store)); + return { + key: key, + value: value, + height: height, + // need to clone this: readonly input / writeable output + proof: { + ops: [...proof.ops], + }, + }; + } + /** + * Performs an ABCI query to Tendermint without requesting a proof. + * + * If the `desiredHeight` is set, a particular height is requested. Otherwise + * the latest height is requested. The response contains the actual height of + * the query. + */ + async queryAbci(path, request, desiredHeight) { + const response = await this.cometClient.abciQuery({ + path: path, + data: request, + prove: false, + height: desiredHeight, + }); + if (response.code) { + throw new Error(`Query failed with (${response.code}): ${response.log}`); + } + if (!response.height) { + throw new Error("No query height returned"); + } + return { + value: response.value, + height: response.height, + }; + } + // this must return the header for height+1 + // throws an error if height is 0 or undefined + async getNextHeader(height) { + (0, utils_1.assertDefined)(height); + if (height === 0) { + throw new Error("Query returned height 0, cannot prove it"); + } + const searchHeight = height + 1; + let nextHeader; + let headersSubscription; + try { + headersSubscription = this.cometClient.subscribeNewBlockHeader(); + } + catch { + // Ignore exception caused by non-WebSocket Tendermint clients + } + if (headersSubscription) { + const firstHeader = await (0, stream_1.firstEvent)(headersSubscription); + // The first header we get might not be n+1 but n+2 or even higher. In such cases we fall back on a query. + if (firstHeader.height === searchHeight) { + nextHeader = firstHeader; + } + } + while (!nextHeader) { + // start from current height to avoid backend error for minHeight in the future + const correctHeader = (await this.cometClient.blockchain(height, searchHeight)).blockMetas + .map((meta) => meta.header) + .find((h) => h.height === searchHeight); + if (correctHeader) { + nextHeader = correctHeader; + } + else { + await (0, utils_1.sleep)(1000); + } + } + (0, utils_1.assert)(nextHeader.height === searchHeight, "Got wrong header. This is a bug in the logic above."); + return nextHeader; + } +} +exports.QueryClient = QueryClient; +//# sourceMappingURL=queryclient.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/queryclient/utils.js": +/*!******************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/queryclient/utils.js ***! + \******************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.decodeCosmosSdkDecFromProto = exports.longify = exports.createProtobufRpcClient = exports.createPagination = exports.toAccAddress = void 0; +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/math/build/index.js"); +const pagination_1 = __webpack_require__(/*! cosmjs-types/cosmos/base/query/v1beta1/pagination */ "./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js"); +/** + * Takes a bech32 encoded address and returns the data part. The prefix is ignored and discarded. + * This is called AccAddress in Cosmos SDK, which is basically an alias for raw binary data. + * The result is typically 20 bytes long but not restricted to that. + */ +function toAccAddress(address) { + return (0, encoding_1.fromBech32)(address).data; +} +exports.toAccAddress = toAccAddress; +/** + * If paginationKey is set, return a `PageRequest` with the given key. + * If paginationKey is unset, return `undefined`. + * + * Use this with a query response's pagination next key to + * request the next page. + */ +function createPagination(paginationKey) { + return paginationKey ? pagination_1.PageRequest.fromPartial({ key: paginationKey }) : pagination_1.PageRequest.fromPartial({}); +} +exports.createPagination = createPagination; +function createProtobufRpcClient(base) { + return { + request: async (service, method, data) => { + const path = `/${service}/${method}`; + const response = await base.queryAbci(path, data, undefined); + return response.value; + }, + }; +} +exports.createProtobufRpcClient = createProtobufRpcClient; +/** + * Takes a uint64 value as string, number, BigInt or Uint64 and returns a BigInt + * of it. + */ +function longify(value) { + const checkedValue = math_1.Uint64.fromString(value.toString()); + return BigInt(checkedValue.toString()); +} +exports.longify = longify; +/** + * Takes a string or binary encoded `github.com/cosmos/cosmos-sdk/types.Dec` from the + * protobuf API and converts it into a `Decimal` with 18 fractional digits. + * + * See https://github.com/cosmos/cosmos-sdk/issues/10863 for more context why this is needed. + */ +function decodeCosmosSdkDecFromProto(input) { + const asString = typeof input === "string" ? input : (0, encoding_1.fromAscii)(input); + return math_1.Decimal.fromAtomics(asString, 18); +} +exports.decodeCosmosSdkDecFromProto = decodeCosmosSdkDecFromProto; +//# sourceMappingURL=utils.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/search.js": +/*!*******************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/search.js ***! + \*******************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.isSearchTxQueryArray = void 0; +function isSearchTxQueryArray(query) { + return Array.isArray(query); +} +exports.isSearchTxQueryArray = isSearchTxQueryArray; +//# sourceMappingURL=search.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/signingstargateclient.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/signingstargateclient.js ***! + \**********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SigningStargateClient = exports.createDefaultAminoConverters = exports.defaultRegistryTypes = void 0; +const amino_1 = __webpack_require__(/*! @cosmjs/amino */ "./node_modules/@cosmjs/amino/build/index.js"); +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/math/build/index.js"); +const proto_signing_1 = __webpack_require__(/*! @cosmjs/proto-signing */ "./node_modules/@cosmjs/proto-signing/build/index.js"); +const tendermint_rpc_1 = __webpack_require__(/*! @cosmjs/tendermint-rpc */ "./node_modules/@cosmjs/tendermint-rpc/build/index.js"); +const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/utils/build/index.js"); +const coin_1 = __webpack_require__(/*! cosmjs-types/cosmos/base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); +const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/distribution/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/distribution/v1beta1/tx.js"); +const tx_2 = __webpack_require__(/*! cosmjs-types/cosmos/staking/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/staking/v1beta1/tx.js"); +const signing_1 = __webpack_require__(/*! cosmjs-types/cosmos/tx/signing/v1beta1/signing */ "./node_modules/cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"); +const tx_3 = __webpack_require__(/*! cosmjs-types/cosmos/tx/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/tx/v1beta1/tx.js"); +const tx_4 = __webpack_require__(/*! cosmjs-types/ibc/applications/transfer/v1/tx */ "./node_modules/cosmjs-types/ibc/applications/transfer/v1/tx.js"); +const aminotypes_1 = __webpack_require__(/*! ./aminotypes */ "./node_modules/@cosmjs/stargate/build/aminotypes.js"); +const fee_1 = __webpack_require__(/*! ./fee */ "./node_modules/@cosmjs/stargate/build/fee.js"); +const modules_1 = __webpack_require__(/*! ./modules */ "./node_modules/@cosmjs/stargate/build/modules/index.js"); +const modules_2 = __webpack_require__(/*! ./modules */ "./node_modules/@cosmjs/stargate/build/modules/index.js"); +const stargateclient_1 = __webpack_require__(/*! ./stargateclient */ "./node_modules/@cosmjs/stargate/build/stargateclient.js"); +exports.defaultRegistryTypes = [ + ["/cosmos.base.v1beta1.Coin", coin_1.Coin], + ...modules_1.authzTypes, + ...modules_1.bankTypes, + ...modules_1.distributionTypes, + ...modules_1.feegrantTypes, + ...modules_1.govTypes, + ...modules_1.groupTypes, + ...modules_1.stakingTypes, + ...modules_1.ibcTypes, + ...modules_1.vestingTypes, +]; +function createDefaultAminoConverters() { + return { + ...(0, modules_2.createAuthzAminoConverters)(), + ...(0, modules_2.createBankAminoConverters)(), + ...(0, modules_2.createDistributionAminoConverters)(), + ...(0, modules_2.createGovAminoConverters)(), + ...(0, modules_2.createStakingAminoConverters)(), + ...(0, modules_2.createIbcAminoConverters)(), + ...(0, modules_2.createFeegrantAminoConverters)(), + ...(0, modules_2.createVestingAminoConverters)(), + }; +} +exports.createDefaultAminoConverters = createDefaultAminoConverters; +class SigningStargateClient extends stargateclient_1.StargateClient { + /** + * Creates an instance by connecting to the given CometBFT RPC endpoint. + * + * This uses auto-detection to decide between a CometBFT 0.38, Tendermint 0.37 and 0.34 client. + * To set the Comet client explicitly, use `createWithSigner`. + */ + static async connectWithSigner(endpoint, signer, options = {}) { + const cometClient = await (0, tendermint_rpc_1.connectComet)(endpoint); + return SigningStargateClient.createWithSigner(cometClient, signer, options); + } + /** + * Creates an instance from a manually created Comet client. + * Use this to use `Comet38Client` or `Tendermint37Client` instead of `Tendermint34Client`. + */ + static async createWithSigner(cometClient, signer, options = {}) { + return new SigningStargateClient(cometClient, signer, options); + } + /** + * Creates a client in offline mode. + * + * This should only be used in niche cases where you know exactly what you're doing, + * e.g. when building an offline signing application. + * + * When you try to use online functionality with such a signer, an + * exception will be raised. + */ + static async offline(signer, options = {}) { + return new SigningStargateClient(undefined, signer, options); + } + constructor(cometClient, signer, options) { + super(cometClient, options); + const { registry = new proto_signing_1.Registry(exports.defaultRegistryTypes), aminoTypes = new aminotypes_1.AminoTypes(createDefaultAminoConverters()), } = options; + this.registry = registry; + this.aminoTypes = aminoTypes; + this.signer = signer; + this.broadcastTimeoutMs = options.broadcastTimeoutMs; + this.broadcastPollIntervalMs = options.broadcastPollIntervalMs; + this.gasPrice = options.gasPrice; + } + async simulate(signerAddress, messages, memo) { + const anyMsgs = messages.map((m) => this.registry.encodeAsAny(m)); + const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress); + if (!accountFromSigner) { + throw new Error("Failed to retrieve account from signer"); + } + const pubkey = (0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey); + const { sequence } = await this.getSequence(signerAddress); + const { gasInfo } = await this.forceGetQueryClient().tx.simulate(anyMsgs, memo, pubkey, sequence); + (0, utils_1.assertDefined)(gasInfo); + return math_1.Uint53.fromString(gasInfo.gasUsed.toString()).toNumber(); + } + async sendTokens(senderAddress, recipientAddress, amount, fee, memo = "") { + const sendMsg = { + typeUrl: "/cosmos.bank.v1beta1.MsgSend", + value: { + fromAddress: senderAddress, + toAddress: recipientAddress, + amount: [...amount], + }, + }; + return this.signAndBroadcast(senderAddress, [sendMsg], fee, memo); + } + async delegateTokens(delegatorAddress, validatorAddress, amount, fee, memo = "") { + const delegateMsg = { + typeUrl: "/cosmos.staking.v1beta1.MsgDelegate", + value: tx_2.MsgDelegate.fromPartial({ + delegatorAddress: delegatorAddress, + validatorAddress: validatorAddress, + amount: amount, + }), + }; + return this.signAndBroadcast(delegatorAddress, [delegateMsg], fee, memo); + } + async undelegateTokens(delegatorAddress, validatorAddress, amount, fee, memo = "") { + const undelegateMsg = { + typeUrl: "/cosmos.staking.v1beta1.MsgUndelegate", + value: tx_2.MsgUndelegate.fromPartial({ + delegatorAddress: delegatorAddress, + validatorAddress: validatorAddress, + amount: amount, + }), + }; + return this.signAndBroadcast(delegatorAddress, [undelegateMsg], fee, memo); + } + async withdrawRewards(delegatorAddress, validatorAddress, fee, memo = "") { + const withdrawMsg = { + typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward", + value: tx_1.MsgWithdrawDelegatorReward.fromPartial({ + delegatorAddress: delegatorAddress, + validatorAddress: validatorAddress, + }), + }; + return this.signAndBroadcast(delegatorAddress, [withdrawMsg], fee, memo); + } + /** + * @deprecated This API does not support setting the memo field of `MsgTransfer` (only the transaction memo). + * We'll remove this method at some point because trying to wrap the various message types is a losing strategy. + * Please migrate to `signAndBroadcast` with an `MsgTransferEncodeObject` created in the caller code instead. + * @see https://github.com/cosmos/cosmjs/issues/1493 + */ + async sendIbcTokens(senderAddress, recipientAddress, transferAmount, sourcePort, sourceChannel, timeoutHeight, + /** timeout in seconds */ + timeoutTimestamp, fee, memo = "") { + const timeoutTimestampNanoseconds = timeoutTimestamp + ? BigInt(timeoutTimestamp) * BigInt(1000000000) + : undefined; + const transferMsg = { + typeUrl: "/ibc.applications.transfer.v1.MsgTransfer", + value: tx_4.MsgTransfer.fromPartial({ + sourcePort: sourcePort, + sourceChannel: sourceChannel, + sender: senderAddress, + receiver: recipientAddress, + token: transferAmount, + timeoutHeight: timeoutHeight, + timeoutTimestamp: timeoutTimestampNanoseconds, + }), + }; + return this.signAndBroadcast(senderAddress, [transferMsg], fee, memo); + } + async signAndBroadcast(signerAddress, messages, fee, memo = "", timeoutHeight) { + let usedFee; + if (fee == "auto" || typeof fee === "number") { + (0, utils_1.assertDefined)(this.gasPrice, "Gas price must be set in the client options when auto gas is used."); + const gasEstimation = await this.simulate(signerAddress, messages, memo); + // Starting with Cosmos SDK 0.47, we see many cases in which 1.3 is not enough anymore + // E.g. https://github.com/cosmos/cosmos-sdk/issues/16020 + const multiplier = typeof fee === "number" ? fee : 1.4; + usedFee = (0, fee_1.calculateFee)(Math.round(gasEstimation * multiplier), this.gasPrice); + } + else { + usedFee = fee; + } + const txRaw = await this.sign(signerAddress, messages, usedFee, memo, undefined, timeoutHeight); + const txBytes = tx_3.TxRaw.encode(txRaw).finish(); + return this.broadcastTx(txBytes, this.broadcastTimeoutMs, this.broadcastPollIntervalMs); + } + /** + * This method is useful if you want to send a transaction in broadcast, + * without waiting for it to be placed inside a block, because for example + * I would like to receive the hash to later track the transaction with another tool. + * @returns Returns the hash of the transaction + */ + async signAndBroadcastSync(signerAddress, messages, fee, memo = "", timeoutHeight) { + let usedFee; + if (fee == "auto" || typeof fee === "number") { + (0, utils_1.assertDefined)(this.gasPrice, "Gas price must be set in the client options when auto gas is used."); + const gasEstimation = await this.simulate(signerAddress, messages, memo); + const multiplier = typeof fee === "number" ? fee : 1.3; + usedFee = (0, fee_1.calculateFee)(Math.round(gasEstimation * multiplier), this.gasPrice); + } + else { + usedFee = fee; + } + const txRaw = await this.sign(signerAddress, messages, usedFee, memo, undefined, timeoutHeight); + const txBytes = tx_3.TxRaw.encode(txRaw).finish(); + return this.broadcastTxSync(txBytes); + } + /** + * Gets account number and sequence from the API, creates a sign doc, + * creates a single signature and assembles the signed transaction. + * + * The sign mode (SIGN_MODE_DIRECT or SIGN_MODE_LEGACY_AMINO_JSON) is determined by this client's signer. + * + * You can pass signer data (account number, sequence and chain ID) explicitly instead of querying them + * from the chain. This is needed when signing for a multisig account, but it also allows for offline signing + * (See the SigningStargateClient.offline constructor). + */ + async sign(signerAddress, messages, fee, memo, explicitSignerData, timeoutHeight) { + let signerData; + if (explicitSignerData) { + signerData = explicitSignerData; + } + else { + const { accountNumber, sequence } = await this.getSequence(signerAddress); + const chainId = await this.getChainId(); + signerData = { + accountNumber: accountNumber, + sequence: sequence, + chainId: chainId, + }; + } + return (0, proto_signing_1.isOfflineDirectSigner)(this.signer) + ? this.signDirect(signerAddress, messages, fee, memo, signerData, timeoutHeight) + : this.signAmino(signerAddress, messages, fee, memo, signerData, timeoutHeight); + } + async signAmino(signerAddress, messages, fee, memo, { accountNumber, sequence, chainId }, timeoutHeight) { + (0, utils_1.assert)(!(0, proto_signing_1.isOfflineDirectSigner)(this.signer)); + const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress); + if (!accountFromSigner) { + throw new Error("Failed to retrieve account from signer"); + } + const pubkey = (0, proto_signing_1.encodePubkey)((0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey)); + const signMode = signing_1.SignMode.SIGN_MODE_LEGACY_AMINO_JSON; + const msgs = messages.map((msg) => this.aminoTypes.toAmino(msg)); + const signDoc = (0, amino_1.makeSignDoc)(msgs, fee, chainId, memo, accountNumber, sequence, timeoutHeight); + const { signature, signed } = await this.signer.signAmino(signerAddress, signDoc); + const signedTxBody = { + messages: signed.msgs.map((msg) => this.aminoTypes.fromAmino(msg)), + memo: signed.memo, + timeoutHeight: timeoutHeight, + }; + const signedTxBodyEncodeObject = { + typeUrl: "/cosmos.tx.v1beta1.TxBody", + value: signedTxBody, + }; + const signedTxBodyBytes = this.registry.encode(signedTxBodyEncodeObject); + const signedGasLimit = math_1.Int53.fromString(signed.fee.gas).toNumber(); + const signedSequence = math_1.Int53.fromString(signed.sequence).toNumber(); + const signedAuthInfoBytes = (0, proto_signing_1.makeAuthInfoBytes)([{ pubkey, sequence: signedSequence }], signed.fee.amount, signedGasLimit, signed.fee.granter, signed.fee.payer, signMode); + return tx_3.TxRaw.fromPartial({ + bodyBytes: signedTxBodyBytes, + authInfoBytes: signedAuthInfoBytes, + signatures: [(0, encoding_1.fromBase64)(signature.signature)], + }); + } + async signDirect(signerAddress, messages, fee, memo, { accountNumber, sequence, chainId }, timeoutHeight) { + (0, utils_1.assert)((0, proto_signing_1.isOfflineDirectSigner)(this.signer)); + const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress); + if (!accountFromSigner) { + throw new Error("Failed to retrieve account from signer"); + } + const pubkey = (0, proto_signing_1.encodePubkey)((0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey)); + const txBodyEncodeObject = { + typeUrl: "/cosmos.tx.v1beta1.TxBody", + value: { + messages: messages, + memo: memo, + timeoutHeight: timeoutHeight, + }, + }; + const txBodyBytes = this.registry.encode(txBodyEncodeObject); + const gasLimit = math_1.Int53.fromString(fee.gas).toNumber(); + const authInfoBytes = (0, proto_signing_1.makeAuthInfoBytes)([{ pubkey, sequence }], fee.amount, gasLimit, fee.granter, fee.payer); + const signDoc = (0, proto_signing_1.makeSignDoc)(txBodyBytes, authInfoBytes, chainId, accountNumber); + const { signature, signed } = await this.signer.signDirect(signerAddress, signDoc); + return tx_3.TxRaw.fromPartial({ + bodyBytes: signed.bodyBytes, + authInfoBytes: signed.authInfoBytes, + signatures: [(0, encoding_1.fromBase64)(signature.signature)], + }); + } } -function deriveChecksumBits(entropy) { - const entropyLengthBits = entropy.length * 8; // "ENT" (in bits) - const checksumLengthBits = entropyLengthBits / 32; // "CS" (in bits) - const hash = (0, sha_1.sha256)(entropy); - return bytesToBitstring(hash).slice(0, checksumLengthBits); +exports.SigningStargateClient = SigningStargateClient; +//# sourceMappingURL=signingstargateclient.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stargate/build/stargateclient.js": +/*!***************************************************************!*\ + !*** ./node_modules/@cosmjs/stargate/build/stargateclient.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StargateClient = exports.BroadcastTxError = exports.assertIsDeliverTxFailure = exports.assertIsDeliverTxSuccess = exports.isDeliverTxSuccess = exports.isDeliverTxFailure = exports.TimeoutError = void 0; +/* eslint-disable @typescript-eslint/naming-convention */ +const amino_1 = __webpack_require__(/*! @cosmjs/amino */ "./node_modules/@cosmjs/amino/build/index.js"); +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/math/build/index.js"); +const tendermint_rpc_1 = __webpack_require__(/*! @cosmjs/tendermint-rpc */ "./node_modules/@cosmjs/tendermint-rpc/build/index.js"); +const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/utils/build/index.js"); +const abci_1 = __webpack_require__(/*! cosmjs-types/cosmos/base/abci/v1beta1/abci */ "./node_modules/cosmjs-types/cosmos/base/abci/v1beta1/abci.js"); +const accounts_1 = __webpack_require__(/*! ./accounts */ "./node_modules/@cosmjs/stargate/build/accounts.js"); +const events_1 = __webpack_require__(/*! ./events */ "./node_modules/@cosmjs/stargate/build/events.js"); +const modules_1 = __webpack_require__(/*! ./modules */ "./node_modules/@cosmjs/stargate/build/modules/index.js"); +const queryclient_1 = __webpack_require__(/*! ./queryclient */ "./node_modules/@cosmjs/stargate/build/queryclient/index.js"); +const search_1 = __webpack_require__(/*! ./search */ "./node_modules/@cosmjs/stargate/build/search.js"); +class TimeoutError extends Error { + constructor(message, txId) { + super(message); + this.txId = txId; + } } -function bitstringToByte(bin) { - return parseInt(bin, 2); +exports.TimeoutError = TimeoutError; +function isDeliverTxFailure(result) { + return !!result.code; } -const allowedEntropyLengths = [16, 20, 24, 28, 32]; -const allowedWordLengths = [12, 15, 18, 21, 24]; -function entropyToMnemonic(entropy) { - if (allowedEntropyLengths.indexOf(entropy.length) === -1) { - throw new Error("invalid input length"); +exports.isDeliverTxFailure = isDeliverTxFailure; +function isDeliverTxSuccess(result) { + return !isDeliverTxFailure(result); +} +exports.isDeliverTxSuccess = isDeliverTxSuccess; +/** + * Ensures the given result is a success. Throws a detailed error message otherwise. + */ +function assertIsDeliverTxSuccess(result) { + if (isDeliverTxFailure(result)) { + throw new Error(`Error when broadcasting tx ${result.transactionHash} at height ${result.height}. Code: ${result.code}; Raw log: ${result.rawLog}`); } - const entropyBits = bytesToBitstring(entropy); - const checksumBits = deriveChecksumBits(entropy); - const bits = entropyBits + checksumBits; - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const chunks = bits.match(/(.{11})/g); - const words = chunks.map((binary) => { - const index = bitstringToByte(binary); - return wordlist[index]; - }); - return words.join(" "); } -exports.entropyToMnemonic = entropyToMnemonic; -const invalidNumberOfWorks = "Invalid number of words"; -const wordNotInWordlist = "Found word that is not in the wordlist"; -const invalidEntropy = "Invalid entropy"; -const invalidChecksum = "Invalid mnemonic checksum"; -function normalize(str) { - return str.normalize("NFKD"); +exports.assertIsDeliverTxSuccess = assertIsDeliverTxSuccess; +/** + * Ensures the given result is a failure. Throws a detailed error message otherwise. + */ +function assertIsDeliverTxFailure(result) { + if (isDeliverTxSuccess(result)) { + throw new Error(`Transaction ${result.transactionHash} did not fail at height ${result.height}. Code: ${result.code}; Raw log: ${result.rawLog}`); + } } -function mnemonicToEntropy(mnemonic) { - const words = normalize(mnemonic).split(" "); - if (!allowedWordLengths.includes(words.length)) { - throw new Error(invalidNumberOfWorks); +exports.assertIsDeliverTxFailure = assertIsDeliverTxFailure; +/** + * An error when broadcasting the transaction. This contains the CheckTx errors + * from the blockchain. Once a transaction is included in a block no BroadcastTxError + * is thrown, even if the execution fails (DeliverTx errors). + */ +class BroadcastTxError extends Error { + constructor(code, codespace, log) { + super(`Broadcasting transaction failed with code ${code} (codespace: ${codespace}). Log: ${log}`); + this.code = code; + this.codespace = codespace; + this.log = log; } - // convert word indices to 11 bit binary strings - const bits = words - .map((word) => { - const index = wordlist.indexOf(word); - if (index === -1) { - throw new Error(wordNotInWordlist); +} +exports.BroadcastTxError = BroadcastTxError; +class StargateClient { + /** + * Creates an instance by connecting to the given CometBFT RPC endpoint. + * + * This uses auto-detection to decide between a CometBFT 0.38, Tendermint 0.37 and 0.34 client. + * To set the Comet client explicitly, use `create`. + */ + static async connect(endpoint, options = {}) { + const cometClient = await (0, tendermint_rpc_1.connectComet)(endpoint); + return StargateClient.create(cometClient, options); + } + /** + * Creates an instance from a manually created Comet client. + * Use this to use `Comet38Client` or `Tendermint37Client` instead of `Tendermint34Client`. + */ + static async create(cometClient, options = {}) { + return new StargateClient(cometClient, options); + } + constructor(cometClient, options) { + if (cometClient) { + this.cometClient = cometClient; + this.queryClient = queryclient_1.QueryClient.withExtensions(cometClient, modules_1.setupAuthExtension, modules_1.setupBankExtension, modules_1.setupStakingExtension, modules_1.setupTxExtension); } - return index.toString(2).padStart(11, "0"); - }) - .join(""); - // split the binary string into ENT/CS - const dividerIndex = Math.floor(bits.length / 33) * 32; - const entropyBits = bits.slice(0, dividerIndex); - const checksumBits = bits.slice(dividerIndex); - // calculate the checksum and compare - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const entropyBytes = entropyBits.match(/(.{1,8})/g).map(bitstringToByte); - if (entropyBytes.length < 16 || entropyBytes.length > 32 || entropyBytes.length % 4 !== 0) { - throw new Error(invalidEntropy); + const { accountParser = accounts_1.accountFromAny } = options; + this.accountParser = accountParser; } - const entropy = Uint8Array.from(entropyBytes); - const newChecksum = deriveChecksumBits(entropy); - if (newChecksum !== checksumBits) { - throw new Error(invalidChecksum); + getCometClient() { + return this.cometClient; } - return entropy; -} -exports.mnemonicToEntropy = mnemonicToEntropy; -class EnglishMnemonic { - constructor(mnemonic) { - if (!EnglishMnemonic.mnemonicMatcher.test(mnemonic)) { - throw new Error("Invalid mnemonic format"); + forceGetCometClient() { + if (!this.cometClient) { + throw new Error("Comet client not available. You cannot use online functionality in offline mode."); } - const words = mnemonic.split(" "); - const allowedWordsLengths = [12, 15, 18, 21, 24]; - if (allowedWordsLengths.indexOf(words.length) === -1) { - throw new Error(`Invalid word count in mnemonic (allowed: ${allowedWordsLengths} got: ${words.length})`); + return this.cometClient; + } + getQueryClient() { + return this.queryClient; + } + forceGetQueryClient() { + if (!this.queryClient) { + throw new Error("Query client not available. You cannot use online functionality in offline mode."); } - for (const word of words) { - if (EnglishMnemonic.wordlist.indexOf(word) === -1) { - throw new Error("Mnemonic contains invalid word"); + return this.queryClient; + } + async getChainId() { + if (!this.chainId) { + const response = await this.forceGetCometClient().status(); + const chainId = response.nodeInfo.network; + if (!chainId) + throw new Error("Chain ID must not be empty"); + this.chainId = chainId; + } + return this.chainId; + } + async getHeight() { + const status = await this.forceGetCometClient().status(); + return status.syncInfo.latestBlockHeight; + } + async getAccount(searchAddress) { + try { + const account = await this.forceGetQueryClient().auth.account(searchAddress); + return account ? this.accountParser(account) : null; + } + catch (error) { + if (/rpc error: code = NotFound/i.test(error.toString())) { + return null; } + throw error; } - // Throws with informative error message if mnemonic is not valid - mnemonicToEntropy(mnemonic); - this.data = mnemonic; } - toString() { - return this.data; + async getSequence(address) { + const account = await this.getAccount(address); + if (!account) { + throw new Error(`Account '${address}' does not exist on chain. Send some tokens there before trying to query sequence.`); + } + return { + accountNumber: account.accountNumber, + sequence: account.sequence, + }; + } + async getBlock(height) { + const response = await this.forceGetCometClient().block(height); + return { + id: (0, encoding_1.toHex)(response.blockId.hash).toUpperCase(), + header: { + version: { + block: new math_1.Uint53(response.block.header.version.block).toString(), + app: new math_1.Uint53(response.block.header.version.app).toString(), + }, + height: response.block.header.height, + chainId: response.block.header.chainId, + time: (0, tendermint_rpc_1.toRfc3339WithNanoseconds)(response.block.header.time), + }, + txs: response.block.txs, + }; + } + async getBalance(address, searchDenom) { + return this.forceGetQueryClient().bank.balance(address, searchDenom); } -} -exports.EnglishMnemonic = EnglishMnemonic; -EnglishMnemonic.wordlist = wordlist; -// list of space separated lower case words (1 or more) -EnglishMnemonic.mnemonicMatcher = /^[a-z]+( [a-z]+)*$/; -class Bip39 { /** - * Encodes raw entropy of length 16, 20, 24, 28 or 32 bytes as an English mnemonic between 12 and 24 words. + * Queries all balances for all denoms that belong to this address. * - * | Entropy | Words | - * |--------------------|-------| - * | 128 bit (16 bytes) | 12 | - * | 160 bit (20 bytes) | 15 | - * | 192 bit (24 bytes) | 18 | - * | 224 bit (28 bytes) | 21 | - * | 256 bit (32 bytes) | 24 | + * Uses the grpc queries (which iterates over the store internally), and we cannot get + * proofs from such a method. + */ + async getAllBalances(address) { + return this.forceGetQueryClient().bank.allBalances(address); + } + async getBalanceStaked(address) { + const allDelegations = []; + let startAtKey = undefined; + do { + const { delegationResponses, pagination } = await this.forceGetQueryClient().staking.delegatorDelegations(address, startAtKey); + const loadedDelegations = delegationResponses || []; + allDelegations.push(...loadedDelegations); + startAtKey = pagination?.nextKey; + } while (startAtKey !== undefined && startAtKey.length !== 0); + const sumValues = allDelegations.reduce((previousValue, currentValue) => { + // Safe because field is set to non-nullable (https://github.com/cosmos/cosmos-sdk/blob/v0.45.3/proto/cosmos/staking/v1beta1/staking.proto#L295) + (0, utils_1.assert)(currentValue.balance); + return previousValue !== null ? (0, amino_1.addCoins)(previousValue, currentValue.balance) : currentValue.balance; + }, null); + return sumValues; + } + async getDelegation(delegatorAddress, validatorAddress) { + let delegatedAmount; + try { + delegatedAmount = (await this.forceGetQueryClient().staking.delegation(delegatorAddress, validatorAddress)).delegationResponse?.balance; + } + catch (e) { + if (e.toString().includes("key not found")) { + // ignore, `delegatedAmount` remains undefined + } + else { + throw e; + } + } + return delegatedAmount || null; + } + async getTx(id) { + const results = await this.txsQuery(`tx.hash='${id}'`); + return results[0] ?? null; + } + async searchTx(query) { + let rawQuery; + if (typeof query === "string") { + rawQuery = query; + } + else if ((0, search_1.isSearchTxQueryArray)(query)) { + rawQuery = query + .map((t) => { + // numeric values must not have quotes https://github.com/cosmos/cosmjs/issues/1462 + if (typeof t.value === "string") + return `${t.key}='${t.value}'`; + else + return `${t.key}=${t.value}`; + }) + .join(" AND "); + } + else { + throw new Error("Got unsupported query type. See CosmJS 0.31 CHANGELOG for API breaking changes here."); + } + return this.txsQuery(rawQuery); + } + disconnect() { + if (this.cometClient) + this.cometClient.disconnect(); + } + /** + * Broadcasts a signed transaction to the network and monitors its inclusion in a block. + * + * If broadcasting is rejected by the node for some reason (e.g. because of a CheckTx failure), + * an error is thrown. * + * If the transaction is not included in a block before the provided timeout, this errors with a `TimeoutError`. * - * @see https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki#generating-the-mnemonic - * @param entropy The entropy to be encoded. This must be cryptographically secure. + * If the transaction is included in a block, a `DeliverTxResponse` is returned. The caller then + * usually needs to check for execution success or failure. */ - static encode(entropy) { - return new EnglishMnemonic(entropyToMnemonic(entropy)); + async broadcastTx(tx, timeoutMs = 60000, pollIntervalMs = 3000) { + let timedOut = false; + const txPollTimeout = setTimeout(() => { + timedOut = true; + }, timeoutMs); + const pollForTx = async (txId) => { + if (timedOut) { + throw new TimeoutError(`Transaction with ID ${txId} was submitted but was not yet found on the chain. You might want to check later. There was a wait of ${timeoutMs / 1000} seconds.`, txId); + } + await (0, utils_1.sleep)(pollIntervalMs); + const result = await this.getTx(txId); + return result + ? { + code: result.code, + height: result.height, + txIndex: result.txIndex, + events: result.events, + rawLog: result.rawLog, + transactionHash: txId, + msgResponses: result.msgResponses, + gasUsed: result.gasUsed, + gasWanted: result.gasWanted, + } + : pollForTx(txId); + }; + const transactionId = await this.broadcastTxSync(tx); + return new Promise((resolve, reject) => pollForTx(transactionId).then((value) => { + clearTimeout(txPollTimeout); + resolve(value); + }, (error) => { + clearTimeout(txPollTimeout); + reject(error); + })); } - static decode(mnemonic) { - return mnemonicToEntropy(mnemonic.toString()); + /** + * Broadcasts a signed transaction to the network without monitoring it. + * + * If broadcasting is rejected by the node for some reason (e.g. because of a CheckTx failure), + * an error is thrown. + * + * If the transaction is broadcasted, a `string` containing the hash of the transaction is returned. The caller then + * usually needs to check if the transaction was included in a block and was successful. + * + * @returns Returns the hash of the transaction + */ + async broadcastTxSync(tx) { + const broadcasted = await this.forceGetCometClient().broadcastTxSync({ tx }); + if (broadcasted.code) { + return Promise.reject(new BroadcastTxError(broadcasted.code, broadcasted.codespace ?? "", broadcasted.log)); + } + const transactionId = (0, encoding_1.toHex)(broadcasted.hash).toUpperCase(); + return transactionId; } - static async mnemonicToSeed(mnemonic, password) { - const mnemonicBytes = (0, encoding_1.toUtf8)(normalize(mnemonic.toString())); - const salt = "mnemonic" + (password ? normalize(password) : ""); - const saltBytes = (0, encoding_1.toUtf8)(salt); - return (0, pbkdf2_1.pbkdf2Sha512)(mnemonicBytes, saltBytes, 2048, 64); + async txsQuery(query) { + const results = await this.forceGetCometClient().txSearchAll({ query: query }); + return results.txs.map((tx) => { + const txMsgData = abci_1.TxMsgData.decode(tx.result.data ?? new Uint8Array()); + return { + height: tx.height, + txIndex: tx.index, + hash: (0, encoding_1.toHex)(tx.hash).toUpperCase(), + code: tx.result.code, + events: tx.result.events.map(events_1.fromTendermintEvent), + rawLog: tx.result.log || "", + tx: tx.tx, + msgResponses: txMsgData.msgResponses, + gasUsed: tx.result.gasUsed, + gasWanted: tx.result.gasWanted, + }; + }); } } -exports.Bip39 = Bip39; -//# sourceMappingURL=bip39.js.map +exports.StargateClient = StargateClient; +//# sourceMappingURL=stargateclient.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/hmac.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/hmac.js ***! - \***************************************************************************************/ +/***/ "./node_modules/@cosmjs/stream/build/concat.js": +/*!*****************************************************!*\ + !*** ./node_modules/@cosmjs/stream/build/concat.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.concat = void 0; +const xstream_1 = __webpack_require__(/*! xstream */ "./node_modules/xstream/index.js"); +/** + * An implementation of concat that buffers all source stream events + * + * Marble diagram: + * + * ```text + * --1--2---3---4-| + * -a--b-c--d-| + * --------X---------Y---------Z- + * concat + * --1--2---3---4-abcdXY-------Z- + * ``` + * + * This is inspired by RxJS's concat as documented at http://rxmarbles.com/#concat and behaves + * differently than xstream's concat as discussed in https://github.com/staltz/xstream/issues/170. + * + */ +function concat(...streams) { + const subscriptions = new Array(); + const queues = new Array(); // one queue per stream + const completedStreams = new Set(); + let activeStreamIndex = 0; + function reset() { + while (subscriptions.length > 0) { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const subscription = subscriptions.shift(); + subscription.unsubscribe(); + } + queues.length = 0; + completedStreams.clear(); + activeStreamIndex = 0; + } + const producer = { + start: (listener) => { + streams.forEach((_) => queues.push([])); + function emitAllQueuesEvents(streamIndex) { + // eslint-disable-next-line no-constant-condition + while (true) { + const element = queues[streamIndex].shift(); + if (element === undefined) { + return; + } + listener.next(element); + } + } + function isDone() { + return activeStreamIndex >= streams.length; + } + if (isDone()) { + listener.complete(); + return; + } + streams.forEach((stream, index) => { + subscriptions.push(stream.subscribe({ + next: (value) => { + if (index === activeStreamIndex) { + listener.next(value); + } + else { + queues[index].push(value); + } + }, + complete: () => { + completedStreams.add(index); + while (completedStreams.has(activeStreamIndex)) { + // this stream completed: emit all and move on + emitAllQueuesEvents(activeStreamIndex); + activeStreamIndex++; + } + if (isDone()) { + listener.complete(); + } + else { + // now active stream can have some events queued but did not yet complete + emitAllQueuesEvents(activeStreamIndex); + } + }, + error: (error) => { + listener.error(error); + reset(); + }, + })); + }); + }, + stop: () => { + reset(); + }, + }; + return xstream_1.Stream.create(producer); +} +exports.concat = concat; +//# sourceMappingURL=concat.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stream/build/defaultvalueproducer.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@cosmjs/stream/build/defaultvalueproducer.js ***! + \*******************************************************************/ /***/ (function(__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Hmac = void 0; -class Hmac { - constructor(hashFunctionConstructor, originalKey) { - // This implementation is based on https://en.wikipedia.org/wiki/HMAC#Implementation - // with the addition of incremental hashing support. Thus part of the algorithm - // is in the constructor and the rest in digest(). - const blockSize = new hashFunctionConstructor().blockSize; - this.hash = (data) => new hashFunctionConstructor().update(data).digest(); - let key = originalKey; - if (key.length > blockSize) { - key = this.hash(key); +exports.DefaultValueProducer = void 0; +// allows pre-producing values before anyone is listening +class DefaultValueProducer { + get value() { + return this.internalValue; + } + constructor(value, callbacks) { + this.callbacks = callbacks; + this.internalValue = value; + } + /** + * Update the current value. + * + * If producer is active (i.e. someone is listening), this emits an event. + * If not, just the current value is updated. + */ + update(value) { + this.internalValue = value; + if (this.listener) { + this.listener.next(value); } - if (key.length < blockSize) { - const zeroPadding = new Uint8Array(blockSize - key.length); - key = new Uint8Array([...key, ...zeroPadding]); + } + /** + * Produce an error + */ + // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types + error(error) { + if (this.listener) { + this.listener.error(error); } - // eslint-disable-next-line no-bitwise - this.oKeyPad = key.map((keyByte) => keyByte ^ 0x5c); - // eslint-disable-next-line no-bitwise - this.iKeyPad = key.map((keyByte) => keyByte ^ 0x36); - this.messageHasher = new hashFunctionConstructor(); - this.blockSize = blockSize; - this.update(this.iKeyPad); } - update(data) { - this.messageHasher.update(data); - return this; + /** + * Called by the stream. Do not call this directly. + */ + start(listener) { + this.listener = listener; + listener.next(this.internalValue); + if (this.callbacks) { + this.callbacks.onStarted(); + } } - digest() { - const innerHash = this.messageHasher.digest(); - return this.hash(new Uint8Array([...this.oKeyPad, ...innerHash])); + /** + * Called by the stream. Do not call this directly. + */ + stop() { + if (this.callbacks) { + this.callbacks.onStop(); + } + this.listener = undefined; } } -exports.Hmac = Hmac; -//# sourceMappingURL=hmac.js.map +exports.DefaultValueProducer = DefaultValueProducer; +//# sourceMappingURL=defaultvalueproducer.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/index.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/index.js ***! - \****************************************************************************************/ +/***/ "./node_modules/@cosmjs/stream/build/dropduplicates.js": +/*!*************************************************************!*\ + !*** ./node_modules/@cosmjs/stream/build/dropduplicates.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.dropDuplicates = void 0; +/** + * Drops duplicate values in a stream. + * + * Marble diagram: + * + * ```text + * -1-1-1-2-4-3-3-4-- + * dropDuplicates + * -1-----2-4-3------ + * ``` + * + * Each value must be uniquely identified by a string given by + * valueToKey(value). + * + * Internally this maintains a set of keys that have been processed already, + * i.e. memory consumption and Set lookup times should be considered when + * using this function. + */ +function dropDuplicates(valueToKey) { + const operand = (instream) => { + const emittedKeys = new Set(); + const deduplicatedStream = instream + .filter((value) => !emittedKeys.has(valueToKey(value))) + .debug((value) => emittedKeys.add(valueToKey(value))); + return deduplicatedStream; + }; + return operand; +} +exports.dropDuplicates = dropDuplicates; +//# sourceMappingURL=dropduplicates.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stream/build/index.js": +/*!****************************************************!*\ + !*** ./node_modules/@cosmjs/stream/build/index.js ***! + \****************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.stringToPath = exports.Slip10RawIndex = exports.slip10CurveFromString = exports.Slip10Curve = exports.Slip10 = exports.pathToString = exports.sha512 = exports.Sha512 = exports.sha256 = exports.Sha256 = exports.Secp256k1Signature = exports.ExtendedSecp256k1Signature = exports.Secp256k1 = exports.ripemd160 = exports.Ripemd160 = exports.Random = exports.Xchacha20poly1305Ietf = exports.xchacha20NonceLength = exports.isArgon2idOptions = exports.Ed25519Keypair = exports.Ed25519 = exports.Argon2id = exports.keccak256 = exports.Keccak256 = exports.Hmac = exports.EnglishMnemonic = exports.Bip39 = void 0; -var bip39_1 = __webpack_require__(/*! ./bip39 */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/bip39.js"); -Object.defineProperty(exports, "Bip39", ({ enumerable: true, get: function () { return bip39_1.Bip39; } })); -Object.defineProperty(exports, "EnglishMnemonic", ({ enumerable: true, get: function () { return bip39_1.EnglishMnemonic; } })); -var hmac_1 = __webpack_require__(/*! ./hmac */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/hmac.js"); -Object.defineProperty(exports, "Hmac", ({ enumerable: true, get: function () { return hmac_1.Hmac; } })); -var keccak_1 = __webpack_require__(/*! ./keccak */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/keccak.js"); -Object.defineProperty(exports, "Keccak256", ({ enumerable: true, get: function () { return keccak_1.Keccak256; } })); -Object.defineProperty(exports, "keccak256", ({ enumerable: true, get: function () { return keccak_1.keccak256; } })); -var libsodium_1 = __webpack_require__(/*! ./libsodium */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/libsodium.js"); -Object.defineProperty(exports, "Argon2id", ({ enumerable: true, get: function () { return libsodium_1.Argon2id; } })); -Object.defineProperty(exports, "Ed25519", ({ enumerable: true, get: function () { return libsodium_1.Ed25519; } })); -Object.defineProperty(exports, "Ed25519Keypair", ({ enumerable: true, get: function () { return libsodium_1.Ed25519Keypair; } })); -Object.defineProperty(exports, "isArgon2idOptions", ({ enumerable: true, get: function () { return libsodium_1.isArgon2idOptions; } })); -Object.defineProperty(exports, "xchacha20NonceLength", ({ enumerable: true, get: function () { return libsodium_1.xchacha20NonceLength; } })); -Object.defineProperty(exports, "Xchacha20poly1305Ietf", ({ enumerable: true, get: function () { return libsodium_1.Xchacha20poly1305Ietf; } })); -var random_1 = __webpack_require__(/*! ./random */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/random.js"); -Object.defineProperty(exports, "Random", ({ enumerable: true, get: function () { return random_1.Random; } })); -var ripemd_1 = __webpack_require__(/*! ./ripemd */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/ripemd.js"); -Object.defineProperty(exports, "Ripemd160", ({ enumerable: true, get: function () { return ripemd_1.Ripemd160; } })); -Object.defineProperty(exports, "ripemd160", ({ enumerable: true, get: function () { return ripemd_1.ripemd160; } })); -var secp256k1_1 = __webpack_require__(/*! ./secp256k1 */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/secp256k1.js"); -Object.defineProperty(exports, "Secp256k1", ({ enumerable: true, get: function () { return secp256k1_1.Secp256k1; } })); -var secp256k1signature_1 = __webpack_require__(/*! ./secp256k1signature */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/secp256k1signature.js"); -Object.defineProperty(exports, "ExtendedSecp256k1Signature", ({ enumerable: true, get: function () { return secp256k1signature_1.ExtendedSecp256k1Signature; } })); -Object.defineProperty(exports, "Secp256k1Signature", ({ enumerable: true, get: function () { return secp256k1signature_1.Secp256k1Signature; } })); -var sha_1 = __webpack_require__(/*! ./sha */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/sha.js"); -Object.defineProperty(exports, "Sha256", ({ enumerable: true, get: function () { return sha_1.Sha256; } })); -Object.defineProperty(exports, "sha256", ({ enumerable: true, get: function () { return sha_1.sha256; } })); -Object.defineProperty(exports, "Sha512", ({ enumerable: true, get: function () { return sha_1.Sha512; } })); -Object.defineProperty(exports, "sha512", ({ enumerable: true, get: function () { return sha_1.sha512; } })); -var slip10_1 = __webpack_require__(/*! ./slip10 */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/slip10.js"); -Object.defineProperty(exports, "pathToString", ({ enumerable: true, get: function () { return slip10_1.pathToString; } })); -Object.defineProperty(exports, "Slip10", ({ enumerable: true, get: function () { return slip10_1.Slip10; } })); -Object.defineProperty(exports, "Slip10Curve", ({ enumerable: true, get: function () { return slip10_1.Slip10Curve; } })); -Object.defineProperty(exports, "slip10CurveFromString", ({ enumerable: true, get: function () { return slip10_1.slip10CurveFromString; } })); -Object.defineProperty(exports, "Slip10RawIndex", ({ enumerable: true, get: function () { return slip10_1.Slip10RawIndex; } })); -Object.defineProperty(exports, "stringToPath", ({ enumerable: true, get: function () { return slip10_1.stringToPath; } })); +exports.ValueAndUpdates = exports.toListPromise = exports.fromListPromise = exports.firstEvent = exports.dropDuplicates = exports.DefaultValueProducer = exports.concat = void 0; +var concat_1 = __webpack_require__(/*! ./concat */ "./node_modules/@cosmjs/stream/build/concat.js"); +Object.defineProperty(exports, "concat", ({ enumerable: true, get: function () { return concat_1.concat; } })); +var defaultvalueproducer_1 = __webpack_require__(/*! ./defaultvalueproducer */ "./node_modules/@cosmjs/stream/build/defaultvalueproducer.js"); +Object.defineProperty(exports, "DefaultValueProducer", ({ enumerable: true, get: function () { return defaultvalueproducer_1.DefaultValueProducer; } })); +var dropduplicates_1 = __webpack_require__(/*! ./dropduplicates */ "./node_modules/@cosmjs/stream/build/dropduplicates.js"); +Object.defineProperty(exports, "dropDuplicates", ({ enumerable: true, get: function () { return dropduplicates_1.dropDuplicates; } })); +var promise_1 = __webpack_require__(/*! ./promise */ "./node_modules/@cosmjs/stream/build/promise.js"); +Object.defineProperty(exports, "firstEvent", ({ enumerable: true, get: function () { return promise_1.firstEvent; } })); +Object.defineProperty(exports, "fromListPromise", ({ enumerable: true, get: function () { return promise_1.fromListPromise; } })); +Object.defineProperty(exports, "toListPromise", ({ enumerable: true, get: function () { return promise_1.toListPromise; } })); +__exportStar(__webpack_require__(/*! ./reducer */ "./node_modules/@cosmjs/stream/build/reducer.js"), exports); +var valueandupdates_1 = __webpack_require__(/*! ./valueandupdates */ "./node_modules/@cosmjs/stream/build/valueandupdates.js"); +Object.defineProperty(exports, "ValueAndUpdates", ({ enumerable: true, get: function () { return valueandupdates_1.ValueAndUpdates; } })); //# sourceMappingURL=index.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/keccak.js": -/*!*****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/keccak.js ***! - \*****************************************************************************************/ +/***/ "./node_modules/@cosmjs/stream/build/promise.js": +/*!******************************************************!*\ + !*** ./node_modules/@cosmjs/stream/build/promise.js ***! + \******************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.keccak256 = exports.Keccak256 = void 0; -const sha3_1 = __webpack_require__(/*! @noble/hashes/sha3 */ "./node_modules/@noble/hashes/sha3.js"); -const utils_1 = __webpack_require__(/*! ./utils */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/utils.js"); -class Keccak256 { - constructor(firstData) { - this.blockSize = 512 / 8; - this.impl = sha3_1.keccak_256.create(); - if (firstData) { - this.update(firstData); +exports.firstEvent = exports.toListPromise = exports.fromListPromise = void 0; +const xstream_1 = __webpack_require__(/*! xstream */ "./node_modules/xstream/index.js"); +/** + * Emits one event for each list element as soon as the promise resolves + */ +function fromListPromise(promise) { + const producer = { + start: (listener) => { + // the code in `start` runs as soon as anyone listens to the stream + promise + .then((iterable) => { + for (const element of iterable) { + listener.next(element); + } + listener.complete(); + }) + .catch((error) => listener.error(error)); + }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + stop: () => { }, + }; + return xstream_1.Stream.create(producer); +} +exports.fromListPromise = fromListPromise; +/** + * Listens to stream and collects events. When `count` events are collected, + * the promise resolves with an array of events. + * + * Rejects if stream completes before `count` events are collected. + */ +async function toListPromise(stream, count) { + return new Promise((resolve, reject) => { + if (count === 0) { + resolve([]); + return; } + const events = new Array(); + // take() unsubscribes from source stream automatically + stream.take(count).subscribe({ + next: (event) => { + events.push(event); + if (events.length === count) { + resolve(events); + } + }, + complete: () => { + reject(`Stream completed before all events could be collected. ` + + `Collected ${events.length}, expected ${count}`); + }, + error: (error) => reject(error), + }); + }); +} +exports.toListPromise = toListPromise; +/** + * Listens to stream, collects one event and revolves. + * + * Rejects if stream completes before one event was fired. + */ +async function firstEvent(stream) { + return (await toListPromise(stream, 1))[0]; +} +exports.firstEvent = firstEvent; +//# sourceMappingURL=promise.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/stream/build/reducer.js": +/*!******************************************************!*\ + !*** ./node_modules/@cosmjs/stream/build/reducer.js ***! + \******************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.lastValue = exports.asArray = exports.countStream = exports.Reducer = void 0; +// Reducer takes a stream of events T and a ReducerFunc, that +// materializes a state of type U. +class Reducer { + constructor(stream, reducer, initState) { + this.stream = stream; + this.reducer = reducer; + this.state = initState; + this.completed = new Promise((resolve, reject) => { + const subscription = this.stream.subscribe({ + next: (evt) => { + this.state = this.reducer(this.state, evt); + }, + complete: () => { + resolve(); + // this must happen after resolve, to ensure stream.subscribe() has finished + subscription.unsubscribe(); + }, + error: (err) => { + reject(err); + // the stream already closed on error, but unsubscribe to be safe + subscription.unsubscribe(); + }, + }); + }); } - update(data) { - this.impl.update((0, utils_1.toRealUint8Array)(data)); - return this; + // value returns current materialized state + value() { + return this.state; } - digest() { - return this.impl.digest(); + // finished resolves on completed stream, rejects on stream error + async finished() { + return this.completed; } } -exports.Keccak256 = Keccak256; -/** Convenience function equivalent to `new Keccak256(data).digest()` */ -function keccak256(data) { - return new Keccak256(data).digest(); +exports.Reducer = Reducer; +function increment(sum, _) { + return sum + 1; } -exports.keccak256 = keccak256; -//# sourceMappingURL=keccak.js.map +// countStream returns a reducer that contains current count +// of events on the stream +function countStream(stream) { + return new Reducer(stream, increment, 0); +} +exports.countStream = countStream; +function append(list, evt) { + return [...list, evt]; +} +// asArray maintains an array containing all events that have +// occurred on the stream +function asArray(stream) { + return new Reducer(stream, append, []); +} +exports.asArray = asArray; +function last(_, event) { + return event; +} +// lastValue returns the last value read from the stream, or undefined if no values sent +function lastValue(stream) { + return new Reducer(stream, last, undefined); +} +exports.lastValue = lastValue; +//# sourceMappingURL=reducer.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/libsodium.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/libsodium.js ***! - \********************************************************************************************/ +/***/ "./node_modules/@cosmjs/stream/build/valueandupdates.js": +/*!**************************************************************!*\ + !*** ./node_modules/@cosmjs/stream/build/valueandupdates.js ***! + \**************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -// Keep all classes requiring libsodium-js in one file as having multiple -// requiring of the libsodium-wrappers module currently crashes browsers -// -// libsodium.js API: https://gist.github.com/webmaster128/b2dbe6d54d36dd168c9fabf441b9b09c -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Xchacha20poly1305Ietf = exports.xchacha20NonceLength = exports.Ed25519 = exports.Ed25519Keypair = exports.Argon2id = exports.isArgon2idOptions = void 0; -const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/index.js"); -const libsodium_wrappers_1 = __importDefault(__webpack_require__(/*! libsodium-wrappers */ "./node_modules/libsodium-wrappers/dist/modules/libsodium-wrappers.js")); -function isArgon2idOptions(thing) { - if (!(0, utils_1.isNonNullObject)(thing)) - return false; - if (typeof thing.outputLength !== "number") - return false; - if (typeof thing.opsLimit !== "number") - return false; - if (typeof thing.memLimitKib !== "number") - return false; - return true; -} -exports.isArgon2idOptions = isArgon2idOptions; -class Argon2id { - static async execute(password, salt, options) { - await libsodium_wrappers_1.default.ready; - return libsodium_wrappers_1.default.crypto_pwhash(options.outputLength, password, salt, // libsodium only supports 16 byte salts and will throw when you don't respect that - options.opsLimit, options.memLimitKib * 1024, libsodium_wrappers_1.default.crypto_pwhash_ALG_ARGON2ID13); +exports.ValueAndUpdates = void 0; +const xstream_1 = __webpack_require__(/*! xstream */ "./node_modules/xstream/index.js"); +/** + * A read only wrapper around DefaultValueProducer that allows + * to synchronously get the current value using the .value property + * and listen to to updates by suscribing to the .updates stream + */ +class ValueAndUpdates { + get value() { + return this.producer.value; } -} -exports.Argon2id = Argon2id; -class Ed25519Keypair { - constructor(privkey, pubkey) { - this.privkey = privkey; - this.pubkey = pubkey; + constructor(producer) { + this.producer = producer; + this.updates = xstream_1.MemoryStream.createWithMemory(this.producer); } - // a libsodium privkey has the format ` + ` - static fromLibsodiumPrivkey(libsodiumPrivkey) { - if (libsodiumPrivkey.length !== 64) { - throw new Error(`Unexpected key length ${libsodiumPrivkey.length}. Must be 64.`); - } - return new Ed25519Keypair(libsodiumPrivkey.slice(0, 32), libsodiumPrivkey.slice(32, 64)); + /** + * Resolves as soon as search value is found. + * + * @param search either a value or a function that must return true when found + * @returns the value of the update that caused the search match + */ + async waitFor(search) { + const searchImplementation = typeof search === "function" ? search : (value) => value === search; + return new Promise((resolve, reject) => { + const subscription = this.updates.subscribe({ + next: (newValue) => { + if (searchImplementation(newValue)) { + resolve(newValue); + // MemoryStream.subscribe() calls next with the last value. + // Make async to ensure the subscription exists + setTimeout(() => subscription.unsubscribe(), 0); + } + }, + complete: () => { + subscription.unsubscribe(); + reject("Update stream completed without expected value"); + }, + error: (error) => { + reject(error); + }, + }); + }); } - toLibsodiumPrivkey() { - return new Uint8Array([...this.privkey, ...this.pubkey]); +} +exports.ValueAndUpdates = ValueAndUpdates; +//# sourceMappingURL=valueandupdates.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/addresses.js": +/*!****************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/addresses.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.pubkeyToAddress = exports.pubkeyToRawAddress = exports.rawSecp256k1PubkeyToRawAddress = exports.rawEd25519PubkeyToRawAddress = void 0; +const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/crypto/build/index.js"); +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +function rawEd25519PubkeyToRawAddress(pubkeyData) { + if (pubkeyData.length !== 32) { + throw new Error(`Invalid Ed25519 pubkey length: ${pubkeyData.length}`); } + return (0, crypto_1.sha256)(pubkeyData).slice(0, 20); } -exports.Ed25519Keypair = Ed25519Keypair; -class Ed25519 { - /** - * Generates a keypair deterministically from a given 32 bytes seed. - * - * This seed equals the Ed25519 private key. - * For implementation details see crypto_sign_seed_keypair in - * https://download.libsodium.org/doc/public-key_cryptography/public-key_signatures.html - * and diagram on https://blog.mozilla.org/warner/2011/11/29/ed25519-keys/ - */ - static async makeKeypair(seed) { - await libsodium_wrappers_1.default.ready; - const keypair = libsodium_wrappers_1.default.crypto_sign_seed_keypair(seed); - return Ed25519Keypair.fromLibsodiumPrivkey(keypair.privateKey); - } - static async createSignature(message, keyPair) { - await libsodium_wrappers_1.default.ready; - return libsodium_wrappers_1.default.crypto_sign_detached(message, keyPair.toLibsodiumPrivkey()); - } - static async verifySignature(signature, message, pubkey) { - await libsodium_wrappers_1.default.ready; - return libsodium_wrappers_1.default.crypto_sign_verify_detached(signature, message, pubkey); +exports.rawEd25519PubkeyToRawAddress = rawEd25519PubkeyToRawAddress; +function rawSecp256k1PubkeyToRawAddress(pubkeyData) { + if (pubkeyData.length !== 33) { + throw new Error(`Invalid Secp256k1 pubkey length (compressed): ${pubkeyData.length}`); } + return (0, crypto_1.ripemd160)((0, crypto_1.sha256)(pubkeyData)); } -exports.Ed25519 = Ed25519; +exports.rawSecp256k1PubkeyToRawAddress = rawSecp256k1PubkeyToRawAddress; /** - * Nonce length in bytes for all flavours of XChaCha20. + * Returns Tendermint address as bytes. * - * @see https://libsodium.gitbook.io/doc/advanced/stream_ciphers/xchacha20#notes + * This is for addresses that are derived by the Tendermint keypair (typically Ed25519). + * Sometimes those addresses are bech32-encoded and contain the term "cons" in the presix + * ("cosmosvalcons1..."). + * + * For secp256k1 this assumes we already have a compressed pubkey, which is the default in Cosmos. */ -exports.xchacha20NonceLength = 24; -class Xchacha20poly1305Ietf { - static async encrypt(message, key, nonce) { - await libsodium_wrappers_1.default.ready; - const additionalData = null; - return libsodium_wrappers_1.default.crypto_aead_xchacha20poly1305_ietf_encrypt(message, additionalData, null, // secret nonce: unused and should be null (https://download.libsodium.org/doc/secret-key_cryptography/aead/chacha20-poly1305/xchacha20-poly1305_construction) - nonce, key); - } - static async decrypt(ciphertext, key, nonce) { - await libsodium_wrappers_1.default.ready; - const additionalData = null; - return libsodium_wrappers_1.default.crypto_aead_xchacha20poly1305_ietf_decrypt(null, // secret nonce: unused and should be null (https://download.libsodium.org/doc/secret-key_cryptography/aead/chacha20-poly1305/xchacha20-poly1305_construction) - ciphertext, additionalData, nonce, key); +function pubkeyToRawAddress(type, data) { + switch (type) { + case "ed25519": + return rawEd25519PubkeyToRawAddress(data); + case "secp256k1": + return rawSecp256k1PubkeyToRawAddress(data); + default: + // Keep this case here to guard against new types being added but not handled + throw new Error(`Pubkey type ${type} not supported`); } } -exports.Xchacha20poly1305Ietf = Xchacha20poly1305Ietf; -//# sourceMappingURL=libsodium.js.map +exports.pubkeyToRawAddress = pubkeyToRawAddress; +/** + * Returns Tendermint address in uppercase hex format. + * + * This is for addresses that are derived by the Tendermint keypair (typically Ed25519). + * Sometimes those addresses are bech32-encoded and contain the term "cons" in the presix + * ("cosmosvalcons1..."). + * + * For secp256k1 this assumes we already have a compressed pubkey, which is the default in Cosmos. + */ +function pubkeyToAddress(type, data) { + return (0, encoding_1.toHex)(pubkeyToRawAddress(type, data)).toUpperCase(); +} +exports.pubkeyToAddress = pubkeyToAddress; +//# sourceMappingURL=addresses.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/pbkdf2.js": -/*!*****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/pbkdf2.js ***! - \*****************************************************************************************/ +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/adaptor/index.js": +/*!****************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/comet38/adaptor/index.js ***! + \****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Responses = exports.Params = void 0; +var requests_1 = __webpack_require__(/*! ./requests */ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/adaptor/requests.js"); +Object.defineProperty(exports, "Params", ({ enumerable: true, get: function () { return requests_1.Params; } })); +var responses_1 = __webpack_require__(/*! ./responses */ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/adaptor/responses.js"); +Object.defineProperty(exports, "Responses", ({ enumerable: true, get: function () { return responses_1.Responses; } })); +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/adaptor/requests.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/comet38/adaptor/requests.js ***! + \*******************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -28406,880 +15587,1382 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.pbkdf2Sha512 = exports.pbkdf2Sha512Noble = exports.pbkdf2Sha512NodeCrypto = exports.pbkdf2Sha512Subtle = exports.getSubtle = exports.getNodeCrypto = void 0; -const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/index.js"); -const pbkdf2_1 = __webpack_require__(/*! @noble/hashes/pbkdf2 */ "./node_modules/@noble/hashes/pbkdf2.js"); -const sha512_1 = __webpack_require__(/*! @noble/hashes/sha512 */ "./node_modules/@noble/hashes/sha512.js"); -/** - * Returns the Node.js crypto module when available and `undefined` - * otherwise. - * - * Detects an unimplemented fallback module from Webpack 5 and returns - * `undefined` in that case. - */ -async function getNodeCrypto() { - try { - const nodeCrypto = await Promise.resolve().then(() => __importStar(__webpack_require__(/*! crypto */ "./node_modules/crypto-browserify/index.js"))); - // We get `Object{default: Object{}}` as a fallback when using - // `crypto: false` in Webpack 5, which we interprete as unavailable. - if (typeof nodeCrypto === "object" && Object.keys(nodeCrypto).length <= 1) { - return undefined; - } - return nodeCrypto; - } - catch { - return undefined; - } +exports.Params = void 0; +/* eslint-disable @typescript-eslint/naming-convention */ +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +const inthelpers_1 = __webpack_require__(/*! ../../inthelpers */ "./node_modules/@cosmjs/tendermint-rpc/build/inthelpers.js"); +const jsonrpc_1 = __webpack_require__(/*! ../../jsonrpc */ "./node_modules/@cosmjs/tendermint-rpc/build/jsonrpc.js"); +const encodings_1 = __webpack_require__(/*! ../encodings */ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/encodings.js"); +const requests = __importStar(__webpack_require__(/*! ../requests */ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/requests.js")); +function encodeHeightParam(param) { + return { + height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.height), + }; } -exports.getNodeCrypto = getNodeCrypto; -async function getSubtle() { - // From Node.js 15 onwards, webcrypto is available in globalThis. - // In version 15 and 16 this was stored under the webcrypto key. - // With Node.js 17 it was moved to the same locations where browsers - // make it available. - // Loading `require("crypto")` here seems unnecessary since it only - // causes issues with bundlers and does not increase compatibility. - // Browsers and Node.js 17+ - let subtle = globalThis?.crypto?.subtle; - // Node.js 15+ - if (!subtle) - subtle = globalThis?.crypto?.webcrypto?.subtle; - return subtle; +function encodeBlockchainRequestParams(param) { + return { + minHeight: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.minHeight), + maxHeight: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.maxHeight), + }; } -exports.getSubtle = getSubtle; -async function pbkdf2Sha512Subtle( -// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types -subtle, secret, salt, iterations, keylen) { - (0, utils_1.assert)(subtle, "Argument subtle is falsy"); - (0, utils_1.assert)(typeof subtle === "object", "Argument subtle is not of type object"); - (0, utils_1.assert)(typeof subtle.importKey === "function", "subtle.importKey is not a function"); - (0, utils_1.assert)(typeof subtle.deriveBits === "function", "subtle.deriveBits is not a function"); - return subtle.importKey("raw", secret, { name: "PBKDF2" }, false, ["deriveBits"]).then((key) => subtle - .deriveBits({ - name: "PBKDF2", - salt: salt, - iterations: iterations, - hash: { name: "SHA-512" }, - }, key, keylen * 8) - .then((buffer) => new Uint8Array(buffer))); +function encodeBlockSearchParams(params) { + return { + query: params.query, + page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page), + per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page), + order_by: params.order_by, + }; } -exports.pbkdf2Sha512Subtle = pbkdf2Sha512Subtle; -/** - * Implements pbkdf2-sha512 using the Node.js crypro module (`import "crypto"`). - * This does not use subtle from [Crypto](https://developer.mozilla.org/en-US/docs/Web/API/Crypto). - */ -async function pbkdf2Sha512NodeCrypto( -// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types -nodeCrypto, secret, salt, iterations, keylen) { - (0, utils_1.assert)(nodeCrypto, "Argument nodeCrypto is falsy"); - (0, utils_1.assert)(typeof nodeCrypto === "object", "Argument nodeCrypto is not of type object"); - (0, utils_1.assert)(typeof nodeCrypto.pbkdf2 === "function", "nodeCrypto.pbkdf2 is not a function"); - return new Promise((resolve, reject) => { - nodeCrypto.pbkdf2(secret, salt, iterations, keylen, "sha512", (error, result) => { - if (error) { - reject(error); - } - else { - resolve(Uint8Array.from(result)); - } - }); - }); +function encodeAbciQueryParams(params) { + return { + path: (0, encodings_1.assertNotEmpty)(params.path), + data: (0, encoding_1.toHex)(params.data), + height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.height), + prove: params.prove, + }; } -exports.pbkdf2Sha512NodeCrypto = pbkdf2Sha512NodeCrypto; -async function pbkdf2Sha512Noble(secret, salt, iterations, keylen) { - return (0, pbkdf2_1.pbkdf2Async)(sha512_1.sha512, secret, salt, { c: iterations, dkLen: keylen }); +function encodeBroadcastTxParams(params) { + return { + tx: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.tx)), + }; } -exports.pbkdf2Sha512Noble = pbkdf2Sha512Noble; -/** - * A pbkdf2 implementation for BIP39. This is not exported at package level and thus a private API. - */ -async function pbkdf2Sha512(secret, salt, iterations, keylen) { - const subtle = await getSubtle(); - if (subtle) { - return pbkdf2Sha512Subtle(subtle, secret, salt, iterations, keylen); +function encodeTxParams(params) { + return { + hash: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.hash)), + prove: params.prove, + }; +} +function encodeTxSearchParams(params) { + return { + query: params.query, + prove: params.prove, + page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page), + per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page), + order_by: params.order_by, + }; +} +function encodeValidatorsParams(params) { + return { + height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.height), + page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page), + per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page), + }; +} +class Params { + static encodeAbciInfo(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method); } - else { - const nodeCrypto = await getNodeCrypto(); - if (nodeCrypto) { - return pbkdf2Sha512NodeCrypto(nodeCrypto, secret, salt, iterations, keylen); - } - else { - return pbkdf2Sha512Noble(secret, salt, iterations, keylen); - } + static encodeAbciQuery(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeAbciQueryParams(req.params)); + } + static encodeBlock(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params)); + } + static encodeBlockchain(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockchainRequestParams(req.params)); + } + static encodeBlockResults(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params)); + } + static encodeBlockSearch(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockSearchParams(req.params)); + } + static encodeBroadcastTx(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBroadcastTxParams(req.params)); + } + static encodeCommit(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params)); + } + static encodeGenesis(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method); + } + static encodeHealth(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method); + } + static encodeNumUnconfirmedTxs(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method); + } + static encodeStatus(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method); + } + static encodeSubscribe(req) { + const eventTag = { key: "tm.event", value: req.query.type }; + const query = requests.buildQuery({ tags: [eventTag], raw: req.query.raw }); + return (0, jsonrpc_1.createJsonRpcRequest)("subscribe", { query: query }); + } + static encodeTx(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxParams(req.params)); + } + // TODO: encode params for query string??? + static encodeTxSearch(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxSearchParams(req.params)); + } + static encodeValidators(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeValidatorsParams(req.params)); } } -exports.pbkdf2Sha512 = pbkdf2Sha512; -//# sourceMappingURL=pbkdf2.js.map +exports.Params = Params; +//# sourceMappingURL=requests.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/random.js": -/*!*****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/random.js ***! - \*****************************************************************************************/ +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/adaptor/responses.js": +/*!********************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/comet38/adaptor/responses.js ***! + \********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Random = void 0; -class Random { - /** - * Returns `count` cryptographically secure random bytes - */ - static getBytes(count) { - try { - const globalObject = typeof window === "object" ? window : self; - const cryptoApi = typeof globalObject.crypto !== "undefined" ? globalObject.crypto : globalObject.msCrypto; - const out = new Uint8Array(count); - cryptoApi.getRandomValues(out); - return out; - } - catch { - try { - // eslint-disable-next-line @typescript-eslint/no-var-requires - const crypto = __webpack_require__(/*! crypto */ "./node_modules/crypto-browserify/index.js"); - return new Uint8Array([...crypto.randomBytes(count)]); - } - catch { - throw new Error("No secure random number generator found"); - } +exports.Responses = exports.decodeValidatorInfo = exports.decodeValidatorGenesis = exports.decodeValidatorUpdate = exports.decodeEvent = void 0; +/* eslint-disable @typescript-eslint/naming-convention */ +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/utils/build/index.js"); +const dates_1 = __webpack_require__(/*! ../../dates */ "./node_modules/@cosmjs/tendermint-rpc/build/dates.js"); +const inthelpers_1 = __webpack_require__(/*! ../../inthelpers */ "./node_modules/@cosmjs/tendermint-rpc/build/inthelpers.js"); +const types_1 = __webpack_require__(/*! ../../types */ "./node_modules/@cosmjs/tendermint-rpc/build/types.js"); +const encodings_1 = __webpack_require__(/*! ../encodings */ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/encodings.js"); +const hasher_1 = __webpack_require__(/*! ../hasher */ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/hasher.js"); +function decodeAbciInfo(data) { + return { + data: data.data, + lastBlockHeight: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.last_block_height), + lastBlockAppHash: (0, encodings_1.may)(encoding_1.fromBase64, data.last_block_app_hash), + }; +} +function decodeQueryProof(data) { + return { + ops: data.ops.map((op) => ({ + type: op.type, + key: (0, encoding_1.fromBase64)(op.key), + data: (0, encoding_1.fromBase64)(op.data), + })), + }; +} +function decodeAbciQuery(data) { + return { + key: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(data.key ?? "")), + value: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(data.value ?? "")), + proof: (0, encodings_1.may)(decodeQueryProof, data.proofOps), + height: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.height), + code: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.code), + codespace: (0, encodings_1.assertString)(data.codespace ?? ""), + index: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.index), + log: data.log, + info: (0, encodings_1.assertString)(data.info ?? ""), + }; +} +function decodeEventAttribute(attribute) { + return { + key: (0, encodings_1.assertNotEmpty)(attribute.key), + value: attribute.value ?? "", + }; +} +function decodeAttributes(attributes) { + return (0, encodings_1.assertArray)(attributes).map(decodeEventAttribute); +} +function decodeEvent(event) { + return { + type: event.type, + attributes: event.attributes ? decodeAttributes(event.attributes) : [], + }; +} +exports.decodeEvent = decodeEvent; +function decodeEvents(events) { + return (0, encodings_1.assertArray)(events).map(decodeEvent); +} +function decodeTxData(data) { + return { + code: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNumber)(data.code ?? 0)), + codespace: data.codespace, + log: data.log, + data: (0, encodings_1.may)(encoding_1.fromBase64, data.data), + events: data.events ? decodeEvents(data.events) : [], + gasWanted: (0, inthelpers_1.apiToBigInt)(data.gas_wanted ?? "0"), + gasUsed: (0, inthelpers_1.apiToBigInt)(data.gas_used ?? "0"), + }; +} +function decodePubkey(data) { + if ("Sum" in data) { + // we don't need to check type because we're checking algorithm + const [[algorithm, value]] = Object.entries(data.Sum.value); + (0, utils_1.assert)(algorithm === "ed25519" || algorithm === "secp256k1", `unknown pubkey type: ${algorithm}`); + return { + algorithm, + data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(value)), + }; + } + else { + switch (data.type) { + // go-amino special code + case "tendermint/PubKeyEd25519": + return { + algorithm: "ed25519", + data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)), + }; + case "tendermint/PubKeySecp256k1": + return { + algorithm: "secp256k1", + data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)), + }; + default: + throw new Error(`unknown pubkey type: ${data.type}`); } } } -exports.Random = Random; -//# sourceMappingURL=random.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/ripemd.js": -/*!*****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/ripemd.js ***! - \*****************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ripemd160 = exports.Ripemd160 = void 0; -const ripemd160_1 = __webpack_require__(/*! @noble/hashes/ripemd160 */ "./node_modules/@noble/hashes/ripemd160.js"); -const utils_1 = __webpack_require__(/*! ./utils */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/utils.js"); -class Ripemd160 { - constructor(firstData) { - this.blockSize = 512 / 8; - this.impl = ripemd160_1.ripemd160.create(); - if (firstData) { - this.update(firstData); - } +/** + * Note: we do not parse block.time_iota_ms for now because of this CHANGELOG entry + * + * > Add time_iota_ms to block's consensus parameters (not exposed to the application) + * https://github.com/tendermint/tendermint/blob/master/CHANGELOG.md#v0310 + */ +function decodeBlockParams(data) { + return { + maxBytes: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_bytes)), + maxGas: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_gas)), + }; +} +function decodeEvidenceParams(data) { + return { + maxAgeNumBlocks: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_age_num_blocks)), + maxAgeDuration: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_age_duration)), + }; +} +function decodeConsensusParams(data) { + return { + block: decodeBlockParams((0, encodings_1.assertObject)(data.block)), + evidence: decodeEvidenceParams((0, encodings_1.assertObject)(data.evidence)), + }; +} +function decodeValidatorUpdate(data) { + return { + pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)), + votingPower: (0, inthelpers_1.apiToBigInt)(data.power ?? "0"), + }; +} +exports.decodeValidatorUpdate = decodeValidatorUpdate; +function decodeBlockResults(data) { + return { + height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), + results: (data.txs_results || []).map(decodeTxData), + validatorUpdates: (data.validator_updates || []).map(decodeValidatorUpdate), + consensusUpdates: (0, encodings_1.may)(decodeConsensusParams, data.consensus_param_updates), + beginBlockEvents: decodeEvents(data.begin_block_events || []), + endBlockEvents: decodeEvents(data.end_block_events || []), + }; +} +function decodeBlockId(data) { + return { + hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)), + parts: { + total: (0, encodings_1.assertNotEmpty)(data.parts.total), + hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.parts.hash)), + }, + }; +} +function decodeBlockVersion(data) { + return { + block: (0, inthelpers_1.apiToSmallInt)(data.block), + app: (0, inthelpers_1.apiToSmallInt)(data.app ?? 0), + }; +} +function decodeHeader(data) { + return { + version: decodeBlockVersion(data.version), + chainId: (0, encodings_1.assertNotEmpty)(data.chain_id), + height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), + time: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.time)), + // When there is no last block ID (i.e. this block's height is 1), we get an empty structure like this: + // { hash: '', parts: { total: 0, hash: '' } } + lastBlockId: data.last_block_id.hash ? decodeBlockId(data.last_block_id) : null, + lastCommitHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_commit_hash)), + dataHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.data_hash)), + validatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.validators_hash)), + nextValidatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.next_validators_hash)), + consensusHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.consensus_hash)), + appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)), + lastResultsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_results_hash)), + evidenceHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.evidence_hash)), + proposerAddress: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.proposer_address)), + }; +} +function decodeBlockMeta(data) { + return { + blockId: decodeBlockId(data.block_id), + blockSize: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.block_size)), + header: decodeHeader(data.header), + numTxs: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.num_txs)), + }; +} +function decodeBlockchain(data) { + return { + lastHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.last_height)), + blockMetas: (0, encodings_1.assertArray)(data.block_metas).map(decodeBlockMeta), + }; +} +function decodeBroadcastTxSync(data) { + return { + ...decodeTxData(data), + hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)), + }; +} +function decodeBroadcastTxCommit(data) { + const txResult = data.tx_result ? decodeTxData(data.tx_result) : undefined; + return { + height: (0, inthelpers_1.apiToSmallInt)(data.height), + hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)), + checkTx: decodeTxData((0, encodings_1.assertObject)(data.check_tx)), + deliverTx: txResult, + txResult: txResult, + }; +} +function decodeBlockIdFlag(blockIdFlag) { + (0, utils_1.assert)(blockIdFlag in types_1.BlockIdFlag); + return blockIdFlag; +} +function decodeCommitSignature(data) { + return { + blockIdFlag: decodeBlockIdFlag(data.block_id_flag), + validatorAddress: data.validator_address ? (0, encoding_1.fromHex)(data.validator_address) : undefined, + timestamp: data.timestamp ? (0, dates_1.fromRfc3339WithNanoseconds)(data.timestamp) : undefined, + signature: data.signature ? (0, encoding_1.fromBase64)(data.signature) : undefined, + }; +} +function decodeCommit(data) { + return { + blockId: decodeBlockId((0, encodings_1.assertObject)(data.block_id)), + height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), + round: (0, inthelpers_1.apiToSmallInt)(data.round), + signatures: (0, encodings_1.assertArray)(data.signatures).map(decodeCommitSignature), + }; +} +function decodeCommitResponse(data) { + return { + canonical: (0, encodings_1.assertBoolean)(data.canonical), + header: decodeHeader(data.signed_header.header), + commit: decodeCommit(data.signed_header.commit), + }; +} +function decodeValidatorGenesis(data) { + return { + address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)), + pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)), + votingPower: (0, inthelpers_1.apiToBigInt)((0, encodings_1.assertNotEmpty)(data.power)), + }; +} +exports.decodeValidatorGenesis = decodeValidatorGenesis; +function decodeGenesis(data) { + return { + genesisTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.genesis_time)), + chainId: (0, encodings_1.assertNotEmpty)(data.chain_id), + consensusParams: decodeConsensusParams(data.consensus_params), + validators: data.validators ? (0, encodings_1.assertArray)(data.validators).map(decodeValidatorGenesis) : [], + appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)), + appState: data.app_state, + }; +} +function decodeValidatorInfo(data) { + return { + pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)), + votingPower: (0, inthelpers_1.apiToBigInt)((0, encodings_1.assertNotEmpty)(data.voting_power)), + address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)), + proposerPriority: data.proposer_priority ? (0, inthelpers_1.apiToSmallInt)(data.proposer_priority) : undefined, + }; +} +exports.decodeValidatorInfo = decodeValidatorInfo; +function decodeNodeInfo(data) { + return { + id: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.id)), + listenAddr: (0, encodings_1.assertNotEmpty)(data.listen_addr), + network: (0, encodings_1.assertNotEmpty)(data.network), + version: (0, encodings_1.assertString)(data.version), + channels: (0, encodings_1.assertNotEmpty)(data.channels), + moniker: (0, encodings_1.assertNotEmpty)(data.moniker), + other: (0, encodings_1.dictionaryToStringMap)(data.other), + protocolVersion: { + app: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.app)), + block: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.block)), + p2p: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.p2p)), + }, + }; +} +function decodeSyncInfo(data) { + const earliestBlockHeight = data.earliest_block_height + ? (0, inthelpers_1.apiToSmallInt)(data.earliest_block_height) + : undefined; + const earliestBlockTime = data.earliest_block_time + ? (0, dates_1.fromRfc3339WithNanoseconds)(data.earliest_block_time) + : undefined; + return { + earliestAppHash: data.earliest_app_hash ? (0, encoding_1.fromHex)(data.earliest_app_hash) : undefined, + earliestBlockHash: data.earliest_block_hash ? (0, encoding_1.fromHex)(data.earliest_block_hash) : undefined, + earliestBlockHeight: earliestBlockHeight || undefined, + earliestBlockTime: earliestBlockTime?.getTime() ? earliestBlockTime : undefined, + latestBlockHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_block_hash)), + latestAppHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_app_hash)), + latestBlockTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.latest_block_time)), + latestBlockHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.latest_block_height)), + catchingUp: (0, encodings_1.assertBoolean)(data.catching_up), + }; +} +function decodeStatus(data) { + return { + nodeInfo: decodeNodeInfo(data.node_info), + syncInfo: decodeSyncInfo(data.sync_info), + validatorInfo: decodeValidatorInfo(data.validator_info), + }; +} +function decodeTxProof(data) { + return { + data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.data)), + rootHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.root_hash)), + proof: { + total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.proof.total)), + index: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.proof.index)), + leafHash: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.proof.leaf_hash)), + aunts: (0, encodings_1.assertArray)(data.proof.aunts).map(encoding_1.fromBase64), + }, + }; +} +function decodeTxResponse(data) { + return { + tx: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx)), + result: decodeTxData((0, encodings_1.assertObject)(data.tx_result)), + height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), + index: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNumber)(data.index)), + hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)), + proof: (0, encodings_1.may)(decodeTxProof, data.proof), + }; +} +function decodeTxSearch(data) { + return { + totalCount: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_count)), + txs: (0, encodings_1.assertArray)(data.txs).map(decodeTxResponse), + }; +} +function decodeTxEvent(data) { + const tx = (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx)); + return { + tx: tx, + hash: (0, hasher_1.hashTx)(tx), + result: decodeTxData(data.result), + height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), + }; +} +function decodeValidators(data) { + return { + blockHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.block_height)), + validators: (0, encodings_1.assertArray)(data.validators).map(decodeValidatorInfo), + count: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.count)), + total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total)), + }; +} +function decodeBlock(data) { + return { + header: decodeHeader((0, encodings_1.assertObject)(data.header)), + // For the block at height 1, last commit is not set. This is represented in an empty object like this: + // { height: '0', round: 0, block_id: { hash: '', parts: [Object] }, signatures: [] } + lastCommit: data.last_commit.block_id.hash ? decodeCommit((0, encodings_1.assertObject)(data.last_commit)) : null, + txs: data.data.txs ? (0, encodings_1.assertArray)(data.data.txs).map(encoding_1.fromBase64) : [], + // Lift up .evidence.evidence to just .evidence + // See https://github.com/tendermint/tendermint/issues/7697 + evidence: data.evidence?.evidence ?? [], + }; +} +function decodeBlockResponse(data) { + return { + blockId: decodeBlockId(data.block_id), + block: decodeBlock(data.block), + }; +} +function decodeBlockSearch(data) { + return { + totalCount: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_count)), + blocks: (0, encodings_1.assertArray)(data.blocks).map(decodeBlockResponse), + }; +} +function decodeNumUnconfirmedTxs(data) { + return { + total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total)), + totalBytes: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_bytes)), + }; +} +class Responses { + static decodeAbciInfo(response) { + return decodeAbciInfo((0, encodings_1.assertObject)(response.result.response)); } - update(data) { - this.impl.update((0, utils_1.toRealUint8Array)(data)); - return this; + static decodeAbciQuery(response) { + return decodeAbciQuery((0, encodings_1.assertObject)(response.result.response)); } - digest() { - return this.impl.digest(); + static decodeBlock(response) { + return decodeBlockResponse(response.result); + } + static decodeBlockResults(response) { + return decodeBlockResults(response.result); + } + static decodeBlockSearch(response) { + return decodeBlockSearch(response.result); + } + static decodeBlockchain(response) { + return decodeBlockchain(response.result); + } + static decodeBroadcastTxSync(response) { + return decodeBroadcastTxSync(response.result); + } + static decodeBroadcastTxAsync(response) { + return Responses.decodeBroadcastTxSync(response); + } + static decodeBroadcastTxCommit(response) { + return decodeBroadcastTxCommit(response.result); + } + static decodeCommit(response) { + return decodeCommitResponse(response.result); + } + static decodeGenesis(response) { + return decodeGenesis((0, encodings_1.assertObject)(response.result.genesis)); + } + static decodeHealth() { + return null; + } + static decodeNumUnconfirmedTxs(response) { + return decodeNumUnconfirmedTxs(response.result); + } + static decodeStatus(response) { + return decodeStatus(response.result); + } + static decodeNewBlockEvent(event) { + return decodeBlock(event.data.value.block); + } + static decodeNewBlockHeaderEvent(event) { + return decodeHeader(event.data.value.header); + } + static decodeTxEvent(event) { + return decodeTxEvent(event.data.value.TxResult); + } + static decodeTx(response) { + return decodeTxResponse(response.result); + } + static decodeTxSearch(response) { + return decodeTxSearch(response.result); + } + static decodeValidators(response) { + return decodeValidators(response.result); } } -exports.Ripemd160 = Ripemd160; -/** Convenience function equivalent to `new Ripemd160(data).digest()` */ -function ripemd160(data) { - return new Ripemd160(data).digest(); -} -exports.ripemd160 = ripemd160; -//# sourceMappingURL=ripemd.js.map +exports.Responses = Responses; +//# sourceMappingURL=responses.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/secp256k1.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/secp256k1.js ***! - \********************************************************************************************/ +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/comet38client.js": +/*!****************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/comet38/comet38client.js ***! + \****************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Secp256k1 = void 0; -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/index.js"); -const bn_js_1 = __importDefault(__webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js")); -const elliptic_1 = __importDefault(__webpack_require__(/*! elliptic */ "./node_modules/elliptic/lib/elliptic.js")); -const secp256k1signature_1 = __webpack_require__(/*! ./secp256k1signature */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/secp256k1signature.js"); -const secp256k1 = new elliptic_1.default.ec("secp256k1"); -const secp256k1N = new bn_js_1.default("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141", "hex"); -class Secp256k1 { +exports.Comet38Client = void 0; +const jsonrpc_1 = __webpack_require__(/*! ../jsonrpc */ "./node_modules/@cosmjs/tendermint-rpc/build/jsonrpc.js"); +const rpcclients_1 = __webpack_require__(/*! ../rpcclients */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/index.js"); +const adaptor_1 = __webpack_require__(/*! ./adaptor */ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/adaptor/index.js"); +const requests = __importStar(__webpack_require__(/*! ./requests */ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/requests.js")); +class Comet38Client { /** - * Takes a 32 byte private key and returns a privkey/pubkey pair. + * Creates a new Tendermint client for the given endpoint. * - * The resulting pubkey is uncompressed. For the use in Cosmos it should - * be compressed first using `Secp256k1.compressPubkey`. + * Uses HTTP when the URL schema is http or https. Uses WebSockets otherwise. */ - static async makeKeypair(privkey) { - if (privkey.length !== 32) { - // is this check missing in secp256k1.validatePrivateKey? - // https://github.com/bitjson/bitcoin-ts/issues/4 - throw new Error("input data is not a valid secp256k1 private key"); - } - const keypair = secp256k1.keyFromPrivate(privkey); - if (keypair.validate().result !== true) { - throw new Error("input data is not a valid secp256k1 private key"); + static async connect(endpoint) { + let rpcClient; + if (typeof endpoint === "object") { + rpcClient = new rpcclients_1.HttpClient(endpoint); } - // range test that is not part of the elliptic implementation - const privkeyAsBigInteger = new bn_js_1.default(privkey); - if (privkeyAsBigInteger.gte(secp256k1N)) { - // not strictly smaller than N - throw new Error("input data is not a valid secp256k1 private key"); + else { + const useHttp = endpoint.startsWith("http://") || endpoint.startsWith("https://"); + rpcClient = useHttp ? new rpcclients_1.HttpClient(endpoint) : new rpcclients_1.WebsocketClient(endpoint); } - const out = { - privkey: (0, encoding_1.fromHex)(keypair.getPrivate("hex")), - // encodes uncompressed as - // - 1-byte prefix "04" - // - 32-byte x coordinate - // - 32-byte y coordinate - pubkey: Uint8Array.from(keypair.getPublic("array")), - }; - return out; + // For some very strange reason I don't understand, tests start to fail on some systems + // (our CI) when skipping the status call before doing other queries. Sleeping a little + // while did not help. Thus we query the version as a way to say "hi" to the backend, + // even in cases where we don't use the result. + const _version = await this.detectVersion(rpcClient); + return Comet38Client.create(rpcClient); } /** - * Creates a signature that is - * - deterministic (RFC 6979) - * - lowS signature - * - DER encoded + * Creates a new Tendermint client given an RPC client. */ - static async createSignature(messageHash, privkey) { - if (messageHash.length === 0) { - throw new Error("Message hash must not be empty"); - } - if (messageHash.length > 32) { - throw new Error("Message hash length must not exceed 32 bytes"); - } - const keypair = secp256k1.keyFromPrivate(privkey); - // the `canonical` option ensures creation of lowS signature representations - const { r, s, recoveryParam } = keypair.sign(messageHash, { canonical: true }); - if (typeof recoveryParam !== "number") - throw new Error("Recovery param missing"); - return new secp256k1signature_1.ExtendedSecp256k1Signature(Uint8Array.from(r.toArray()), Uint8Array.from(s.toArray()), recoveryParam); + static async create(rpcClient) { + return new Comet38Client(rpcClient); } - static async verifySignature(signature, messageHash, pubkey) { - if (messageHash.length === 0) { - throw new Error("Message hash must not be empty"); - } - if (messageHash.length > 32) { - throw new Error("Message hash length must not exceed 32 bytes"); - } - const keypair = secp256k1.keyFromPublic(pubkey); - // From https://github.com/indutny/elliptic: - // - // Sign the message's hash (input must be an array, or a hex-string) - // - // Signature MUST be either: - // 1) DER-encoded signature as hex-string; or - // 2) DER-encoded signature as buffer; or - // 3) object with two hex-string properties (r and s); or - // 4) object with two buffer properties (r and s) - // - // Uint8Array is not a Buffer, but elliptic seems to be happy with the interface - // common to both types. Uint8Array is not an array of ints but the interface is - // similar - try { - return keypair.verify(messageHash, signature.toDer()); + static async detectVersion(client) { + const req = (0, jsonrpc_1.createJsonRpcRequest)(requests.Method.Status); + const response = await client.execute(req); + const result = response.result; + if (!result || !result.node_info) { + throw new Error("Unrecognized format for status response"); } - catch (error) { - return false; + const version = result.node_info.version; + if (typeof version !== "string") { + throw new Error("Unrecognized version format: must be string"); } - } - static recoverPubkey(signature, messageHash) { - const signatureForElliptic = { r: (0, encoding_1.toHex)(signature.r()), s: (0, encoding_1.toHex)(signature.s()) }; - const point = secp256k1.recoverPubKey(messageHash, signatureForElliptic, signature.recovery); - const keypair = secp256k1.keyFromPublic(point); - return (0, encoding_1.fromHex)(keypair.getPublic(false, "hex")); + return version; } /** - * Takes a compressed or uncompressed pubkey and return a compressed one. - * - * This function is idempotent. + * Use `Tendermint37Client.connect` or `Tendermint37Client.create` to create an instance. */ - static compressPubkey(pubkey) { - switch (pubkey.length) { - case 33: - return pubkey; - case 65: - return Uint8Array.from(secp256k1.keyFromPublic(pubkey).getPublic(true, "array")); - default: - throw new Error("Invalid pubkey length"); - } + constructor(client) { + this.client = client; + } + disconnect() { + this.client.disconnect(); + } + async abciInfo() { + const query = { method: requests.Method.AbciInfo }; + return this.doCall(query, adaptor_1.Params.encodeAbciInfo, adaptor_1.Responses.decodeAbciInfo); + } + async abciQuery(params) { + const query = { params: params, method: requests.Method.AbciQuery }; + return this.doCall(query, adaptor_1.Params.encodeAbciQuery, adaptor_1.Responses.decodeAbciQuery); + } + async block(height) { + const query = { method: requests.Method.Block, params: { height: height } }; + return this.doCall(query, adaptor_1.Params.encodeBlock, adaptor_1.Responses.decodeBlock); + } + async blockResults(height) { + const query = { + method: requests.Method.BlockResults, + params: { height: height }, + }; + return this.doCall(query, adaptor_1.Params.encodeBlockResults, adaptor_1.Responses.decodeBlockResults); } /** - * Takes a compressed or uncompressed pubkey and returns an uncompressed one. + * Search for events that are in a block. * - * This function is idempotent. + * NOTE + * This method will error on any node that is running a Tendermint version lower than 0.34.9. + * + * @see https://docs.tendermint.com/master/rpc/#/Info/block_search */ - static uncompressPubkey(pubkey) { - switch (pubkey.length) { - case 33: - return Uint8Array.from(secp256k1.keyFromPublic(pubkey).getPublic(false, "array")); - case 65: - return pubkey; - default: - throw new Error("Invalid pubkey length"); - } - } - static trimRecoveryByte(signature) { - switch (signature.length) { - case 64: - return signature; - case 65: - return signature.slice(0, 64); - default: - throw new Error("Invalid signature length"); - } - } -} -exports.Secp256k1 = Secp256k1; -//# sourceMappingURL=secp256k1.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/secp256k1signature.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/secp256k1signature.js ***! - \*****************************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ExtendedSecp256k1Signature = exports.Secp256k1Signature = void 0; -function trimLeadingNullBytes(inData) { - let numberOfLeadingNullBytes = 0; - for (const byte of inData) { - if (byte === 0x00) { - numberOfLeadingNullBytes++; - } - else { - break; - } + async blockSearch(params) { + const query = { params: params, method: requests.Method.BlockSearch }; + const resp = await this.doCall(query, adaptor_1.Params.encodeBlockSearch, adaptor_1.Responses.decodeBlockSearch); + return { + ...resp, + // make sure we sort by height, as tendermint may be sorting by string value of the height + blocks: [...resp.blocks].sort((a, b) => a.block.header.height - b.block.header.height), + }; } - return inData.slice(numberOfLeadingNullBytes); -} -const derTagInteger = 0x02; -class Secp256k1Signature { - constructor(r, s) { - if (r.length > 32 || r.length === 0 || r[0] === 0x00) { - throw new Error("Unsigned integer r must be encoded as unpadded big endian."); - } - if (s.length > 32 || s.length === 0 || s[0] === 0x00) { - throw new Error("Unsigned integer s must be encoded as unpadded big endian."); + // this should paginate through all blockSearch options to ensure it returns all results. + // starts with page 1 or whatever was provided (eg. to start on page 7) + // + // NOTE + // This method will error on any node that is running a Tendermint version lower than 0.34.9. + async blockSearchAll(params) { + let page = params.page || 1; + const blocks = []; + let done = false; + while (!done) { + const resp = await this.blockSearch({ ...params, page: page }); + blocks.push(...resp.blocks); + if (blocks.length < resp.totalCount) { + page++; + } + else { + done = true; + } } - this.data = { - r: r, - s: s, + // make sure we sort by height, as tendermint may be sorting by string value of the height + // and the earlier items may be in a higher page than the later items + blocks.sort((a, b) => a.block.header.height - b.block.header.height); + return { + totalCount: blocks.length, + blocks: blocks, + }; + } + /** + * Queries block headers filtered by minHeight <= height <= maxHeight. + * + * @param minHeight The minimum height to be included in the result. Defaults to 0. + * @param maxHeight The maximum height to be included in the result. Defaults to infinity. + */ + async blockchain(minHeight, maxHeight) { + const query = { + method: requests.Method.Blockchain, + params: { + minHeight: minHeight, + maxHeight: maxHeight, + }, }; + return this.doCall(query, adaptor_1.Params.encodeBlockchain, adaptor_1.Responses.decodeBlockchain); } /** - * Takes the pair of integers (r, s) as 2x32 byte of binary data. + * Broadcast transaction to mempool and wait for response * - * Note: This is the format Cosmos SDK uses natively. + * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_sync + */ + async broadcastTxSync(params) { + const query = { params: params, method: requests.Method.BroadcastTxSync }; + return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxSync); + } + /** + * Broadcast transaction to mempool and do not wait for result * - * @param data a 64 byte value containing integers r and s. + * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_async */ - static fromFixedLength(data) { - if (data.length !== 64) { - throw new Error(`Got invalid data length: ${data.length}. Expected 2x 32 bytes for the pair (r, s)`); - } - return new Secp256k1Signature(trimLeadingNullBytes(data.slice(0, 32)), trimLeadingNullBytes(data.slice(32, 64))); + async broadcastTxAsync(params) { + const query = { params: params, method: requests.Method.BroadcastTxAsync }; + return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxAsync); } - static fromDer(data) { - let pos = 0; - if (data[pos++] !== 0x30) { - throw new Error("Prefix 0x30 expected"); - } - const bodyLength = data[pos++]; - if (data.length - pos !== bodyLength) { - throw new Error("Data length mismatch detected"); - } - // r - const rTag = data[pos++]; - if (rTag !== derTagInteger) { - throw new Error("INTEGER tag expected"); - } - const rLength = data[pos++]; - if (rLength >= 0x80) { - throw new Error("Decoding length values above 127 not supported"); - } - const rData = data.slice(pos, pos + rLength); - pos += rLength; - // s - const sTag = data[pos++]; - if (sTag !== derTagInteger) { - throw new Error("INTEGER tag expected"); - } - const sLength = data[pos++]; - if (sLength >= 0x80) { - throw new Error("Decoding length values above 127 not supported"); - } - const sData = data.slice(pos, pos + sLength); - pos += sLength; - return new Secp256k1Signature( - // r/s data can contain leading 0 bytes to express integers being non-negative in DER - trimLeadingNullBytes(rData), trimLeadingNullBytes(sData)); + /** + * Broadcast transaction to mempool and wait for block + * + * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_commit + */ + async broadcastTxCommit(params) { + const query = { params: params, method: requests.Method.BroadcastTxCommit }; + return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxCommit); } - r(length) { - if (length === undefined) { - return this.data.r; - } - else { - const paddingLength = length - this.data.r.length; - if (paddingLength < 0) { - throw new Error("Length too small to hold parameter r"); - } - const padding = new Uint8Array(paddingLength); - return new Uint8Array([...padding, ...this.data.r]); - } + async commit(height) { + const query = { method: requests.Method.Commit, params: { height: height } }; + return this.doCall(query, adaptor_1.Params.encodeCommit, adaptor_1.Responses.decodeCommit); } - s(length) { - if (length === undefined) { - return this.data.s; - } - else { - const paddingLength = length - this.data.s.length; - if (paddingLength < 0) { - throw new Error("Length too small to hold parameter s"); - } - const padding = new Uint8Array(paddingLength); - return new Uint8Array([...padding, ...this.data.s]); - } + async genesis() { + const query = { method: requests.Method.Genesis }; + return this.doCall(query, adaptor_1.Params.encodeGenesis, adaptor_1.Responses.decodeGenesis); } - toFixedLength() { - return new Uint8Array([...this.r(32), ...this.s(32)]); + async health() { + const query = { method: requests.Method.Health }; + return this.doCall(query, adaptor_1.Params.encodeHealth, adaptor_1.Responses.decodeHealth); } - toDer() { - // DER supports negative integers but our data is unsigned. Thus we need to prepend - // a leading 0 byte when the higest bit is set to differentiate nagative values - const rEncoded = this.data.r[0] >= 0x80 ? new Uint8Array([0, ...this.data.r]) : this.data.r; - const sEncoded = this.data.s[0] >= 0x80 ? new Uint8Array([0, ...this.data.s]) : this.data.s; - const rLength = rEncoded.length; - const sLength = sEncoded.length; - const data = new Uint8Array([derTagInteger, rLength, ...rEncoded, derTagInteger, sLength, ...sEncoded]); - return new Uint8Array([0x30, data.length, ...data]); + async numUnconfirmedTxs() { + const query = { method: requests.Method.NumUnconfirmedTxs }; + return this.doCall(query, adaptor_1.Params.encodeNumUnconfirmedTxs, adaptor_1.Responses.decodeNumUnconfirmedTxs); } -} -exports.Secp256k1Signature = Secp256k1Signature; -/** - * A Secp256k1Signature plus the recovery parameter - */ -class ExtendedSecp256k1Signature extends Secp256k1Signature { - constructor(r, s, recovery) { - super(r, s); - if (!Number.isInteger(recovery)) { - throw new Error("The recovery parameter must be an integer."); - } - if (recovery < 0 || recovery > 4) { - throw new Error("The recovery parameter must be one of 0, 1, 2, 3."); - } - this.recovery = recovery; + async status() { + const query = { method: requests.Method.Status }; + return this.doCall(query, adaptor_1.Params.encodeStatus, adaptor_1.Responses.decodeStatus); + } + subscribeNewBlock() { + const request = { + method: requests.Method.Subscribe, + query: { type: requests.SubscriptionEventType.NewBlock }, + }; + return this.subscribe(request, adaptor_1.Responses.decodeNewBlockEvent); + } + subscribeNewBlockHeader() { + const request = { + method: requests.Method.Subscribe, + query: { type: requests.SubscriptionEventType.NewBlockHeader }, + }; + return this.subscribe(request, adaptor_1.Responses.decodeNewBlockHeaderEvent); + } + subscribeTx(query) { + const request = { + method: requests.Method.Subscribe, + query: { + type: requests.SubscriptionEventType.Tx, + raw: query, + }, + }; + return this.subscribe(request, adaptor_1.Responses.decodeTxEvent); } /** - * Decode extended signature from the simple fixed length encoding - * described in toFixedLength(). + * Get a single transaction by hash + * + * @see https://docs.tendermint.com/master/rpc/#/Info/tx */ - static fromFixedLength(data) { - if (data.length !== 65) { - throw new Error(`Got invalid data length ${data.length}. Expected 32 + 32 + 1`); - } - return new ExtendedSecp256k1Signature(trimLeadingNullBytes(data.slice(0, 32)), trimLeadingNullBytes(data.slice(32, 64)), data[64]); + async tx(params) { + const query = { params: params, method: requests.Method.Tx }; + return this.doCall(query, adaptor_1.Params.encodeTx, adaptor_1.Responses.decodeTx); } /** - * A simple custom encoding that encodes the extended signature as - * r (32 bytes) | s (32 bytes) | recovery param (1 byte) - * where | denotes concatenation of bonary data. + * Search for transactions that are in a block + * + * @see https://docs.tendermint.com/master/rpc/#/Info/tx_search */ - toFixedLength() { - return new Uint8Array([...this.r(32), ...this.s(32), this.recovery]); + async txSearch(params) { + const query = { params: params, method: requests.Method.TxSearch }; + return this.doCall(query, adaptor_1.Params.encodeTxSearch, adaptor_1.Responses.decodeTxSearch); } -} -exports.ExtendedSecp256k1Signature = ExtendedSecp256k1Signature; -//# sourceMappingURL=secp256k1signature.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/sha.js": -/*!**************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/sha.js ***! - \**************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.sha512 = exports.Sha512 = exports.sha256 = exports.Sha256 = void 0; -const sha256_1 = __webpack_require__(/*! @noble/hashes/sha256 */ "./node_modules/@noble/hashes/sha256.js"); -const sha512_1 = __webpack_require__(/*! @noble/hashes/sha512 */ "./node_modules/@noble/hashes/sha512.js"); -const utils_1 = __webpack_require__(/*! ./utils */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/utils.js"); -class Sha256 { - constructor(firstData) { - this.blockSize = 512 / 8; - this.impl = sha256_1.sha256.create(); - if (firstData) { - this.update(firstData); + // this should paginate through all txSearch options to ensure it returns all results. + // starts with page 1 or whatever was provided (eg. to start on page 7) + async txSearchAll(params) { + let page = params.page || 1; + const txs = []; + let done = false; + while (!done) { + const resp = await this.txSearch({ ...params, page: page }); + txs.push(...resp.txs); + if (txs.length < resp.totalCount) { + page++; + } + else { + done = true; + } } + return { + totalCount: txs.length, + txs: txs, + }; } - update(data) { - this.impl.update((0, utils_1.toRealUint8Array)(data)); - return this; - } - digest() { - return this.impl.digest(); + async validators(params) { + const query = { + method: requests.Method.Validators, + params: params, + }; + return this.doCall(query, adaptor_1.Params.encodeValidators, adaptor_1.Responses.decodeValidators); } -} -exports.Sha256 = Sha256; -/** Convenience function equivalent to `new Sha256(data).digest()` */ -function sha256(data) { - return new Sha256(data).digest(); -} -exports.sha256 = sha256; -class Sha512 { - constructor(firstData) { - this.blockSize = 1024 / 8; - this.impl = sha512_1.sha512.create(); - if (firstData) { - this.update(firstData); + async validatorsAll(height) { + const validators = []; + let page = 1; + let done = false; + let blockHeight = height; + while (!done) { + const response = await this.validators({ + per_page: 50, + height: blockHeight, + page: page, + }); + validators.push(...response.validators); + blockHeight = blockHeight || response.blockHeight; + if (validators.length < response.total) { + page++; + } + else { + done = true; + } } + return { + // NOTE: Default value is for type safety but this should always be set + blockHeight: blockHeight ?? 0, + count: validators.length, + total: validators.length, + validators: validators, + }; } - update(data) { - this.impl.update((0, utils_1.toRealUint8Array)(data)); - return this; + // doCall is a helper to handle the encode/call/decode logic + async doCall(request, encode, decode) { + const req = encode(request); + const result = await this.client.execute(req); + return decode(result); } - digest() { - return this.impl.digest(); + subscribe(request, decode) { + if (!(0, rpcclients_1.instanceOfRpcStreamingClient)(this.client)) { + throw new Error("This RPC client type cannot subscribe to events"); + } + const req = adaptor_1.Params.encodeSubscribe(request); + const eventStream = this.client.listen(req); + return eventStream.map((event) => { + return decode(event); + }); } } -exports.Sha512 = Sha512; -/** Convenience function equivalent to `new Sha512(data).digest()` */ -function sha512(data) { - return new Sha512(data).digest(); -} -exports.sha512 = sha512; -//# sourceMappingURL=sha.js.map +exports.Comet38Client = Comet38Client; +//# sourceMappingURL=comet38client.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/slip10.js": -/*!*****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/slip10.js ***! - \*****************************************************************************************/ +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/encodings.js": +/*!************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/comet38/encodings.js ***! + \************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.stringToPath = exports.pathToString = exports.Slip10 = exports.Slip10RawIndex = exports.slip10CurveFromString = exports.Slip10Curve = void 0; -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/index.js"); -const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/math/build/index.js"); -const bn_js_1 = __importDefault(__webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js")); -const elliptic_1 = __importDefault(__webpack_require__(/*! elliptic */ "./node_modules/elliptic/lib/elliptic.js")); -const hmac_1 = __webpack_require__(/*! ./hmac */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/hmac.js"); -const sha_1 = __webpack_require__(/*! ./sha */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/sha.js"); +exports.encodeBlockId = exports.encodeVersion = exports.encodeBytes = exports.encodeTime = exports.encodeUvarint = exports.encodeString = exports.dictionaryToStringMap = exports.may = exports.assertNotEmpty = exports.assertObject = exports.assertArray = exports.assertNumber = exports.assertString = exports.assertBoolean = exports.assertSet = void 0; +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); /** - * Raw values must match the curve string in SLIP-0010 master key generation + * A runtime checker that ensures a given value is set (i.e. not undefined or null) * - * @see https://github.com/satoshilabs/slips/blob/master/slip-0010.md#master-key-generation + * This is used when you want to verify that data at runtime matches the expected type. */ -var Slip10Curve; -(function (Slip10Curve) { - Slip10Curve["Secp256k1"] = "Bitcoin seed"; - Slip10Curve["Ed25519"] = "ed25519 seed"; -})(Slip10Curve = exports.Slip10Curve || (exports.Slip10Curve = {})); +function assertSet(value) { + if (value === undefined) { + throw new Error("Value must not be undefined"); + } + if (value === null) { + throw new Error("Value must not be null"); + } + return value; +} +exports.assertSet = assertSet; /** - * Reverse mapping of Slip10Curve + * A runtime checker that ensures a given value is a boolean + * + * This is used when you want to verify that data at runtime matches the expected type. + * This implies assertSet. */ -function slip10CurveFromString(curveString) { - switch (curveString) { - case Slip10Curve.Ed25519: - return Slip10Curve.Ed25519; - case Slip10Curve.Secp256k1: - return Slip10Curve.Secp256k1; - default: - throw new Error(`Unknown curve string: '${curveString}'`); +function assertBoolean(value) { + assertSet(value); + if (typeof value !== "boolean") { + throw new Error("Value must be a boolean"); } + return value; } -exports.slip10CurveFromString = slip10CurveFromString; -class Slip10RawIndex extends math_1.Uint32 { - static hardened(hardenedIndex) { - return new Slip10RawIndex(hardenedIndex + 2 ** 31); +exports.assertBoolean = assertBoolean; +/** + * A runtime checker that ensures a given value is a string. + * + * This is used when you want to verify that data at runtime matches the expected type. + * This implies assertSet. + */ +function assertString(value) { + assertSet(value); + if (typeof value !== "string") { + throw new Error("Value must be a string"); } - static normal(normalIndex) { - return new Slip10RawIndex(normalIndex); + return value; +} +exports.assertString = assertString; +/** + * A runtime checker that ensures a given value is a number + * + * This is used when you want to verify that data at runtime matches the expected type. + * This implies assertSet. + */ +function assertNumber(value) { + assertSet(value); + if (typeof value !== "number") { + throw new Error("Value must be a number"); } - isHardened() { - return this.data >= 2 ** 31; + return value; +} +exports.assertNumber = assertNumber; +/** + * A runtime checker that ensures a given value is an array + * + * This is used when you want to verify that data at runtime matches the expected type. + * This implies assertSet. + */ +function assertArray(value) { + assertSet(value); + if (!Array.isArray(value)) { + throw new Error("Value must be a an array"); } + return value; } -exports.Slip10RawIndex = Slip10RawIndex; -const secp256k1 = new elliptic_1.default.ec("secp256k1"); -// Universal private key derivation accoring to -// https://github.com/satoshilabs/slips/blob/master/slip-0010.md -class Slip10 { - static derivePath(curve, seed, path) { - let result = this.master(curve, seed); - for (const rawIndex of path) { - result = this.child(curve, result.privkey, result.chainCode, rawIndex); - } - return result; +exports.assertArray = assertArray; +/** + * A runtime checker that ensures a given value is an object in the sense of JSON + * (an unordered collection of key–value pairs where the keys are strings) + * + * This is used when you want to verify that data at runtime matches the expected type. + * This implies assertSet. + */ +function assertObject(value) { + assertSet(value); + if (typeof value !== "object") { + throw new Error("Value must be an object"); } - static master(curve, seed) { - const i = new hmac_1.Hmac(sha_1.Sha512, (0, encoding_1.toAscii)(curve)).update(seed).digest(); - const il = i.slice(0, 32); - const ir = i.slice(32, 64); - if (curve !== Slip10Curve.Ed25519 && (this.isZero(il) || this.isGteN(curve, il))) { - return this.master(curve, i); - } - return { - chainCode: ir, - privkey: il, - }; + // Exclude special kind of objects like Array, Date or Uint8Array + // Object.prototype.toString() returns a specified value: + // http://www.ecma-international.org/ecma-262/7.0/index.html#sec-object.prototype.tostring + if (Object.prototype.toString.call(value) !== "[object Object]") { + throw new Error("Value must be a simple object"); } - static child(curve, parentPrivkey, parentChainCode, rawIndex) { - let i; - if (rawIndex.isHardened()) { - const payload = new Uint8Array([0x00, ...parentPrivkey, ...rawIndex.toBytesBigEndian()]); - i = new hmac_1.Hmac(sha_1.Sha512, parentChainCode).update(payload).digest(); - } - else { - if (curve === Slip10Curve.Ed25519) { - throw new Error("Normal keys are not allowed with ed25519"); - } - else { - // Step 1 of https://github.com/satoshilabs/slips/blob/master/slip-0010.md#private-parent-key--private-child-key - // Calculate I = HMAC-SHA512(Key = c_par, Data = ser_P(point(k_par)) || ser_32(i)). - // where the functions point() and ser_p() are defined in BIP-0032 - const data = new Uint8Array([ - ...Slip10.serializedPoint(curve, new bn_js_1.default(parentPrivkey)), - ...rawIndex.toBytesBigEndian(), - ]); - i = new hmac_1.Hmac(sha_1.Sha512, parentChainCode).update(data).digest(); - } - } - return this.childImpl(curve, parentPrivkey, parentChainCode, rawIndex, i); + return value; +} +exports.assertObject = assertObject; +/** + * Throws an error if value matches the empty value for the + * given type (array/string of length 0, number of value 0, ...) + * + * Otherwise returns the value. + * + * This implies assertSet + */ +function assertNotEmpty(value) { + assertSet(value); + if (typeof value === "number" && value === 0) { + throw new Error("must provide a non-zero value"); } - /** - * Implementation of ser_P(point(k_par)) from BIP-0032 - * - * @see https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki - */ - static serializedPoint(curve, p) { - switch (curve) { - case Slip10Curve.Secp256k1: - return (0, encoding_1.fromHex)(secp256k1.g.mul(p).encodeCompressed("hex")); - default: - throw new Error("curve not supported"); - } + else if (value.length === 0) { + throw new Error("must provide a non-empty value"); } - static childImpl(curve, parentPrivkey, parentChainCode, rawIndex, i) { - // step 2 (of the Private parent key → private child key algorithm) - const il = i.slice(0, 32); - const ir = i.slice(32, 64); - // step 3 - const returnChainCode = ir; - // step 4 - if (curve === Slip10Curve.Ed25519) { - return { - chainCode: returnChainCode, - privkey: il, - }; - } - // step 5 - const n = this.n(curve); - const returnChildKeyAsNumber = new bn_js_1.default(il).add(new bn_js_1.default(parentPrivkey)).mod(n); - const returnChildKey = Uint8Array.from(returnChildKeyAsNumber.toArray("be", 32)); - // step 6 - if (this.isGteN(curve, il) || this.isZero(returnChildKey)) { - const newI = new hmac_1.Hmac(sha_1.Sha512, parentChainCode) - .update(new Uint8Array([0x01, ...ir, ...rawIndex.toBytesBigEndian()])) - .digest(); - return this.childImpl(curve, parentPrivkey, parentChainCode, rawIndex, newI); + return value; +} +exports.assertNotEmpty = assertNotEmpty; +// may will run the transform if value is defined, otherwise returns undefined +function may(transform, value) { + return value === undefined || value === null ? undefined : transform(value); +} +exports.may = may; +function dictionaryToStringMap(obj) { + const out = new Map(); + for (const key of Object.keys(obj)) { + const value = obj[key]; + if (typeof value !== "string") { + throw new Error("Found dictionary value of type other than string"); } - // step 7 - return { - chainCode: returnChainCode, - privkey: returnChildKey, - }; - } - static isZero(privkey) { - return privkey.every((byte) => byte === 0); - } - static isGteN(curve, privkey) { - const keyAsNumber = new bn_js_1.default(privkey); - return keyAsNumber.gte(this.n(curve)); + out.set(key, value); } - static n(curve) { - switch (curve) { - case Slip10Curve.Secp256k1: - return new bn_js_1.default("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141", 16); - default: - throw new Error("curve not supported"); + return out; +} +exports.dictionaryToStringMap = dictionaryToStringMap; +// Encodings needed for hashing block headers +// Several of these functions are inspired by https://github.com/nomic-io/js-tendermint/blob/tendermint-0.30/src/ +// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L193-L195 +function encodeString(s) { + const utf8 = (0, encoding_1.toUtf8)(s); + return Uint8Array.from([utf8.length, ...utf8]); +} +exports.encodeString = encodeString; +// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L79-L87 +function encodeUvarint(n) { + return n >= 0x80 + ? // eslint-disable-next-line no-bitwise + Uint8Array.from([(n & 0xff) | 0x80, ...encodeUvarint(n >> 7)]) + : // eslint-disable-next-line no-bitwise + Uint8Array.from([n & 0xff]); +} +exports.encodeUvarint = encodeUvarint; +// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L134-L178 +function encodeTime(time) { + const milliseconds = time.getTime(); + const seconds = Math.floor(milliseconds / 1000); + const secondsArray = seconds ? [0x08, ...encodeUvarint(seconds)] : new Uint8Array(); + const nanoseconds = (time.nanoseconds || 0) + (milliseconds % 1000) * 1e6; + const nanosecondsArray = nanoseconds ? [0x10, ...encodeUvarint(nanoseconds)] : new Uint8Array(); + return Uint8Array.from([...secondsArray, ...nanosecondsArray]); +} +exports.encodeTime = encodeTime; +// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L180-L187 +function encodeBytes(bytes) { + // Since we're only dealing with short byte arrays we don't need a full VarBuffer implementation yet + if (bytes.length >= 0x80) + throw new Error("Not implemented for byte arrays of length 128 or more"); + return bytes.length ? Uint8Array.from([bytes.length, ...bytes]) : new Uint8Array(); +} +exports.encodeBytes = encodeBytes; +function encodeVersion(version) { + const blockArray = version.block + ? Uint8Array.from([0x08, ...encodeUvarint(version.block)]) + : new Uint8Array(); + const appArray = version.app ? Uint8Array.from([0x10, ...encodeUvarint(version.app)]) : new Uint8Array(); + return Uint8Array.from([...blockArray, ...appArray]); +} +exports.encodeVersion = encodeVersion; +function encodeBlockId(blockId) { + return Uint8Array.from([ + 0x0a, + blockId.hash.length, + ...blockId.hash, + 0x12, + blockId.parts.hash.length + 4, + 0x08, + blockId.parts.total, + 0x12, + blockId.parts.hash.length, + ...blockId.parts.hash, + ]); +} +exports.encodeBlockId = encodeBlockId; +//# sourceMappingURL=encodings.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/hasher.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/comet38/hasher.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.hashBlock = exports.hashTx = void 0; +const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/crypto/build/index.js"); +const encodings_1 = __webpack_require__(/*! ./encodings */ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/encodings.js"); +// hash is sha256 +// https://github.com/tendermint/tendermint/blob/master/UPGRADING.md#v0260 +function hashTx(tx) { + return (0, crypto_1.sha256)(tx); +} +exports.hashTx = hashTx; +function getSplitPoint(n) { + if (n < 1) + throw new Error("Cannot split an empty tree"); + const largestPowerOf2 = 2 ** Math.floor(Math.log2(n)); + return largestPowerOf2 < n ? largestPowerOf2 : largestPowerOf2 / 2; +} +function hashLeaf(leaf) { + const hash = new crypto_1.Sha256(Uint8Array.from([0])); + hash.update(leaf); + return hash.digest(); +} +function hashInner(left, right) { + const hash = new crypto_1.Sha256(Uint8Array.from([1])); + hash.update(left); + hash.update(right); + return hash.digest(); +} +// See https://github.com/tendermint/tendermint/blob/v0.31.8/docs/spec/blockchain/encoding.md#merkleroot +// Note: the hashes input may not actually be hashes, especially before a recursive call +function hashTree(hashes) { + switch (hashes.length) { + case 0: + throw new Error("Cannot hash empty tree"); + case 1: + return hashLeaf(hashes[0]); + default: { + const slicePoint = getSplitPoint(hashes.length); + const left = hashTree(hashes.slice(0, slicePoint)); + const right = hashTree(hashes.slice(slicePoint)); + return hashInner(left, right); } } } -exports.Slip10 = Slip10; -function pathToString(path) { - return path.reduce((current, component) => { - const componentString = component.isHardened() - ? `${component.toNumber() - 2 ** 31}'` - : component.toString(); - return current + "/" + componentString; - }, "m"); -} -exports.pathToString = pathToString; -function stringToPath(input) { - if (!input.startsWith("m")) - throw new Error("Path string must start with 'm'"); - let rest = input.slice(1); - const out = new Array(); - while (rest) { - const match = rest.match(/^\/([0-9]+)('?)/); - if (!match) - throw new Error("Syntax error while reading path component"); - const [fullMatch, numberString, apostrophe] = match; - const value = math_1.Uint53.fromString(numberString).toNumber(); - if (value >= 2 ** 31) - throw new Error("Component value too high. Must not exceed 2**31-1."); - if (apostrophe) - out.push(Slip10RawIndex.hardened(value)); - else - out.push(Slip10RawIndex.normal(value)); - rest = rest.slice(fullMatch.length); +function hashBlock(header) { + if (!header.lastBlockId) { + throw new Error("Hashing a block header with no last block ID (i.e. header at height 1) is not supported. If you need this, contributions are welcome. Please add documentation and test vectors for this case."); } - return out; + const encodedFields = [ + (0, encodings_1.encodeVersion)(header.version), + (0, encodings_1.encodeString)(header.chainId), + (0, encodings_1.encodeUvarint)(header.height), + (0, encodings_1.encodeTime)(header.time), + (0, encodings_1.encodeBlockId)(header.lastBlockId), + (0, encodings_1.encodeBytes)(header.lastCommitHash), + (0, encodings_1.encodeBytes)(header.dataHash), + (0, encodings_1.encodeBytes)(header.validatorsHash), + (0, encodings_1.encodeBytes)(header.nextValidatorsHash), + (0, encodings_1.encodeBytes)(header.consensusHash), + (0, encodings_1.encodeBytes)(header.appHash), + (0, encodings_1.encodeBytes)(header.lastResultsHash), + (0, encodings_1.encodeBytes)(header.evidenceHash), + (0, encodings_1.encodeBytes)(header.proposerAddress), + ]; + return hashTree(encodedFields); } -exports.stringToPath = stringToPath; -//# sourceMappingURL=slip10.js.map +exports.hashBlock = hashBlock; +//# sourceMappingURL=hasher.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/utils.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/crypto/build/utils.js ***! - \****************************************************************************************/ +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/index.js": +/*!********************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/comet38/index.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +// Note: all exports in this module are publicly available via +// `import { comet38 } from "@cosmjs/tendermint-rpc"` +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.VoteType = exports.broadcastTxSyncSuccess = exports.broadcastTxCommitSuccess = exports.SubscriptionEventType = exports.Method = exports.Comet38Client = void 0; +var comet38client_1 = __webpack_require__(/*! ./comet38client */ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/comet38client.js"); +Object.defineProperty(exports, "Comet38Client", ({ enumerable: true, get: function () { return comet38client_1.Comet38Client; } })); +var requests_1 = __webpack_require__(/*! ./requests */ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/requests.js"); +Object.defineProperty(exports, "Method", ({ enumerable: true, get: function () { return requests_1.Method; } })); +Object.defineProperty(exports, "SubscriptionEventType", ({ enumerable: true, get: function () { return requests_1.SubscriptionEventType; } })); +var responses_1 = __webpack_require__(/*! ./responses */ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/responses.js"); +Object.defineProperty(exports, "broadcastTxCommitSuccess", ({ enumerable: true, get: function () { return responses_1.broadcastTxCommitSuccess; } })); +Object.defineProperty(exports, "broadcastTxSyncSuccess", ({ enumerable: true, get: function () { return responses_1.broadcastTxSyncSuccess; } })); +Object.defineProperty(exports, "VoteType", ({ enumerable: true, get: function () { return responses_1.VoteType; } })); +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/requests.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/comet38/requests.js ***! + \***********************************************************************/ /***/ (function(__unused_webpack_module, exports) { "use strict"; +/* eslint-disable @typescript-eslint/naming-convention */ Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toRealUint8Array = void 0; -// See https://github.com/paulmillr/noble-hashes/issues/25 for why this is needed -function toRealUint8Array(data) { - if (data instanceof Uint8Array) - return data; - else - return Uint8Array.from(data); +exports.buildQuery = exports.SubscriptionEventType = exports.Method = void 0; +/** + * RPC methods as documented in https://docs.tendermint.com/master/rpc/ + * + * Enum raw value must match the spelling in the "shell" example call (snake_case) + */ +var Method; +(function (Method) { + Method["AbciInfo"] = "abci_info"; + Method["AbciQuery"] = "abci_query"; + Method["Block"] = "block"; + /** Get block headers for minHeight <= height <= maxHeight. */ + Method["Blockchain"] = "blockchain"; + Method["BlockResults"] = "block_results"; + Method["BlockSearch"] = "block_search"; + Method["BroadcastTxAsync"] = "broadcast_tx_async"; + Method["BroadcastTxSync"] = "broadcast_tx_sync"; + Method["BroadcastTxCommit"] = "broadcast_tx_commit"; + Method["Commit"] = "commit"; + Method["Genesis"] = "genesis"; + Method["Health"] = "health"; + Method["NumUnconfirmedTxs"] = "num_unconfirmed_txs"; + Method["Status"] = "status"; + Method["Subscribe"] = "subscribe"; + Method["Tx"] = "tx"; + Method["TxSearch"] = "tx_search"; + Method["Validators"] = "validators"; + Method["Unsubscribe"] = "unsubscribe"; +})(Method = exports.Method || (exports.Method = {})); +/** + * Raw values must match the tendermint event name + * + * @see https://godoc.org/github.com/tendermint/tendermint/types#pkg-constants + */ +var SubscriptionEventType; +(function (SubscriptionEventType) { + SubscriptionEventType["NewBlock"] = "NewBlock"; + SubscriptionEventType["NewBlockHeader"] = "NewBlockHeader"; + SubscriptionEventType["Tx"] = "Tx"; +})(SubscriptionEventType = exports.SubscriptionEventType || (exports.SubscriptionEventType = {})); +function buildQuery(components) { + const tags = components.tags ? components.tags : []; + const tagComponents = tags.map((tag) => `${tag.key}='${tag.value}'`); + const rawComponents = components.raw ? [components.raw] : []; + return [...tagComponents, ...rawComponents].join(" AND "); } -exports.toRealUint8Array = toRealUint8Array; -//# sourceMappingURL=utils.js.map +exports.buildQuery = buildQuery; +//# sourceMappingURL=requests.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/ascii.js": -/*!******************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/ascii.js ***! - \******************************************************************************************/ +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/responses.js": +/*!************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/comet38/responses.js ***! + \************************************************************************/ /***/ (function(__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromAscii = exports.toAscii = void 0; -function toAscii(input) { - const toNums = (str) => str.split("").map((x) => { - const charCode = x.charCodeAt(0); - // 0x00–0x1F control characters - // 0x20–0x7E printable characters - // 0x7F delete character - // 0x80–0xFF out of 7 bit ascii range - if (charCode < 0x20 || charCode > 0x7e) { - throw new Error("Cannot encode character that is out of printable ASCII range: " + charCode); - } - return charCode; - }); - return Uint8Array.from(toNums(input)); +exports.VoteType = exports.broadcastTxCommitSuccess = exports.broadcastTxSyncSuccess = void 0; +/** + * Returns true iff transaction made it successfully into the transaction pool + */ +function broadcastTxSyncSuccess(res) { + // code must be 0 on success + return res.code === 0; } -exports.toAscii = toAscii; -function fromAscii(data) { - const fromNums = (listOfNumbers) => listOfNumbers.map((x) => { - // 0x00–0x1F control characters - // 0x20–0x7E printable characters - // 0x7F delete character - // 0x80–0xFF out of 7 bit ascii range - if (x < 0x20 || x > 0x7e) { - throw new Error("Cannot decode character that is out of printable ASCII range: " + x); - } - return String.fromCharCode(x); - }); - return fromNums(Array.from(data)).join(""); +exports.broadcastTxSyncSuccess = broadcastTxSyncSuccess; +/** + * Returns true iff transaction made it successfully into a block + * (i.e. success in `check_tx` and `deliver_tx` field) + */ +function broadcastTxCommitSuccess(response) { + // code must be 0 on success + // deliverTx may be present but empty on failure + return response.checkTx.code === 0 && !!response.deliverTx && response.deliverTx.code === 0; } -exports.fromAscii = fromAscii; -//# sourceMappingURL=ascii.js.map +exports.broadcastTxCommitSuccess = broadcastTxCommitSuccess; +/** + * raw values from https://github.com/tendermint/tendermint/blob/dfa9a9a30a666132425b29454e90a472aa579a48/types/vote.go#L44 + */ +var VoteType; +(function (VoteType) { + VoteType[VoteType["PreVote"] = 1] = "PreVote"; + VoteType[VoteType["PreCommit"] = 2] = "PreCommit"; +})(VoteType = exports.VoteType || (exports.VoteType = {})); +//# sourceMappingURL=responses.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/base64.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/base64.js ***! - \*******************************************************************************************/ +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/dates.js": +/*!************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/dates.js ***! + \************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromBase64 = exports.toBase64 = void 0; -const base64js = __importStar(__webpack_require__(/*! base64-js */ "./node_modules/base64-js/index.js")); -function toBase64(data) { - return base64js.fromByteArray(data); +exports.DateTime = exports.toSeconds = exports.fromSeconds = exports.toRfc3339WithNanoseconds = exports.fromRfc3339WithNanoseconds = void 0; +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/math/build/index.js"); +function fromRfc3339WithNanoseconds(dateTimeString) { + const out = (0, encoding_1.fromRfc3339)(dateTimeString); + const nanosecondsMatch = dateTimeString.match(/\.(\d+)Z$/); + const nanoseconds = nanosecondsMatch ? nanosecondsMatch[1].slice(3) : ""; + out.nanoseconds = parseInt(nanoseconds.padEnd(6, "0"), 10); + return out; } -exports.toBase64 = toBase64; -function fromBase64(base64String) { - if (!base64String.match(/^[a-zA-Z0-9+/]*={0,2}$/)) { - throw new Error("Invalid base64 string format"); +exports.fromRfc3339WithNanoseconds = fromRfc3339WithNanoseconds; +function toRfc3339WithNanoseconds(dateTime) { + const millisecondIso = dateTime.toISOString(); + const nanoseconds = dateTime.nanoseconds?.toString() ?? ""; + return `${millisecondIso.slice(0, -1)}${nanoseconds.padStart(6, "0")}Z`; +} +exports.toRfc3339WithNanoseconds = toRfc3339WithNanoseconds; +function fromSeconds(seconds, nanos = 0) { + const checkedNanos = new math_1.Uint32(nanos).toNumber(); + if (checkedNanos > 999999999) { + throw new Error("Nano seconds must not exceed 999999999"); } - return base64js.toByteArray(base64String); + const out = new Date(seconds * 1000 + Math.floor(checkedNanos / 1000000)); + out.nanoseconds = checkedNanos % 1000000; + return out; } -exports.fromBase64 = fromBase64; -//# sourceMappingURL=base64.js.map +exports.fromSeconds = fromSeconds; +/** + * Calculates the UNIX timestamp in seconds as well as the nanoseconds after the given second. + * + * This is useful when dealing with external systems like the protobuf type + * [.google.protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Timestamp) + * or any other system that does not use millisecond precision. + */ +function toSeconds(date) { + return { + seconds: Math.floor(date.getTime() / 1000), + nanos: (date.getTime() % 1000) * 1000000 + (date.nanoseconds ?? 0), + }; +} +exports.toSeconds = toSeconds; +/** @deprecated Use fromRfc3339WithNanoseconds/toRfc3339WithNanoseconds instead */ +class DateTime { + /** @deprecated Use fromRfc3339WithNanoseconds instead */ + static decode(dateTimeString) { + return fromRfc3339WithNanoseconds(dateTimeString); + } + /** @deprecated Use toRfc3339WithNanoseconds instead */ + static encode(dateTime) { + return toRfc3339WithNanoseconds(dateTime); + } +} +exports.DateTime = DateTime; +//# sourceMappingURL=dates.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/bech32.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/bech32.js ***! - \*******************************************************************************************/ +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/index.js": +/*!************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/index.js ***! + \************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -29301,208 +16984,150 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? ( o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.normalizeBech32 = exports.fromBech32 = exports.toBech32 = void 0; -const bech32 = __importStar(__webpack_require__(/*! bech32 */ "./node_modules/bech32/index.js")); -function toBech32(prefix, data, limit) { - const address = bech32.encode(prefix, bech32.toWords(data), limit); - return address; -} -exports.toBech32 = toBech32; -function fromBech32(address, limit = Infinity) { - const decodedAddress = bech32.decode(address, limit); - return { - prefix: decodedAddress.prefix, - data: new Uint8Array(bech32.fromWords(decodedAddress.words)), - }; -} -exports.fromBech32 = fromBech32; -/** - * Takes a bech32 address and returns a normalized (i.e. lower case) representation of it. - * - * The input is validated along the way, which makes this significantly safer than - * using `address.toLowerCase()`. - */ -function normalizeBech32(address) { - const { prefix, data } = fromBech32(address); - return toBech32(prefix, data); -} -exports.normalizeBech32 = normalizeBech32; -//# sourceMappingURL=bech32.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/hex.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/hex.js ***! - \****************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromHex = exports.toHex = void 0; -function toHex(data) { - let out = ""; - for (const byte of data) { - out += ("0" + byte.toString(16)).slice(-2); - } - return out; -} -exports.toHex = toHex; -function fromHex(hexstring) { - if (hexstring.length % 2 !== 0) { - throw new Error("hex string length must be a multiple of 2"); - } - const out = new Uint8Array(hexstring.length / 2); - for (let i = 0; i < out.length; i++) { - const j = 2 * i; - const hexByteAsString = hexstring.slice(j, j + 2); - if (!hexByteAsString.match(/[0-9a-f]{2}/i)) { - throw new Error("hex string contains invalid characters"); - } - out[i] = parseInt(hexByteAsString, 16); - } - return out; -} -exports.fromHex = fromHex; -//# sourceMappingURL=hex.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/index.js": -/*!******************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/index.js ***! - \******************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toUtf8 = exports.fromUtf8 = exports.toRfc3339 = exports.fromRfc3339 = exports.toHex = exports.fromHex = exports.toBech32 = exports.normalizeBech32 = exports.fromBech32 = exports.toBase64 = exports.fromBase64 = exports.toAscii = exports.fromAscii = void 0; -var ascii_1 = __webpack_require__(/*! ./ascii */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/ascii.js"); -Object.defineProperty(exports, "fromAscii", ({ enumerable: true, get: function () { return ascii_1.fromAscii; } })); -Object.defineProperty(exports, "toAscii", ({ enumerable: true, get: function () { return ascii_1.toAscii; } })); -var base64_1 = __webpack_require__(/*! ./base64 */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/base64.js"); -Object.defineProperty(exports, "fromBase64", ({ enumerable: true, get: function () { return base64_1.fromBase64; } })); -Object.defineProperty(exports, "toBase64", ({ enumerable: true, get: function () { return base64_1.toBase64; } })); -var bech32_1 = __webpack_require__(/*! ./bech32 */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/bech32.js"); -Object.defineProperty(exports, "fromBech32", ({ enumerable: true, get: function () { return bech32_1.fromBech32; } })); -Object.defineProperty(exports, "normalizeBech32", ({ enumerable: true, get: function () { return bech32_1.normalizeBech32; } })); -Object.defineProperty(exports, "toBech32", ({ enumerable: true, get: function () { return bech32_1.toBech32; } })); -var hex_1 = __webpack_require__(/*! ./hex */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/hex.js"); -Object.defineProperty(exports, "fromHex", ({ enumerable: true, get: function () { return hex_1.fromHex; } })); -Object.defineProperty(exports, "toHex", ({ enumerable: true, get: function () { return hex_1.toHex; } })); -var rfc3339_1 = __webpack_require__(/*! ./rfc3339 */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/rfc3339.js"); -Object.defineProperty(exports, "fromRfc3339", ({ enumerable: true, get: function () { return rfc3339_1.fromRfc3339; } })); -Object.defineProperty(exports, "toRfc3339", ({ enumerable: true, get: function () { return rfc3339_1.toRfc3339; } })); -var utf8_1 = __webpack_require__(/*! ./utf8 */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/utf8.js"); -Object.defineProperty(exports, "fromUtf8", ({ enumerable: true, get: function () { return utf8_1.fromUtf8; } })); -Object.defineProperty(exports, "toUtf8", ({ enumerable: true, get: function () { return utf8_1.toUtf8; } })); + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.BlockIdFlag = exports.isTendermint37Client = exports.isTendermint34Client = exports.isComet38Client = exports.connectComet = exports.Tendermint37Client = exports.tendermint37 = exports.Tendermint34Client = exports.tendermint34 = exports.VoteType = exports.SubscriptionEventType = exports.Method = exports.broadcastTxSyncSuccess = exports.broadcastTxCommitSuccess = exports.WebsocketClient = exports.HttpClient = exports.HttpBatchClient = exports.Comet38Client = exports.comet38 = exports.toSeconds = exports.toRfc3339WithNanoseconds = exports.fromSeconds = exports.fromRfc3339WithNanoseconds = exports.DateTime = exports.rawSecp256k1PubkeyToRawAddress = exports.rawEd25519PubkeyToRawAddress = exports.pubkeyToRawAddress = exports.pubkeyToAddress = void 0; +var addresses_1 = __webpack_require__(/*! ./addresses */ "./node_modules/@cosmjs/tendermint-rpc/build/addresses.js"); +Object.defineProperty(exports, "pubkeyToAddress", ({ enumerable: true, get: function () { return addresses_1.pubkeyToAddress; } })); +Object.defineProperty(exports, "pubkeyToRawAddress", ({ enumerable: true, get: function () { return addresses_1.pubkeyToRawAddress; } })); +Object.defineProperty(exports, "rawEd25519PubkeyToRawAddress", ({ enumerable: true, get: function () { return addresses_1.rawEd25519PubkeyToRawAddress; } })); +Object.defineProperty(exports, "rawSecp256k1PubkeyToRawAddress", ({ enumerable: true, get: function () { return addresses_1.rawSecp256k1PubkeyToRawAddress; } })); +var dates_1 = __webpack_require__(/*! ./dates */ "./node_modules/@cosmjs/tendermint-rpc/build/dates.js"); +Object.defineProperty(exports, "DateTime", ({ enumerable: true, get: function () { return dates_1.DateTime; } })); +Object.defineProperty(exports, "fromRfc3339WithNanoseconds", ({ enumerable: true, get: function () { return dates_1.fromRfc3339WithNanoseconds; } })); +Object.defineProperty(exports, "fromSeconds", ({ enumerable: true, get: function () { return dates_1.fromSeconds; } })); +Object.defineProperty(exports, "toRfc3339WithNanoseconds", ({ enumerable: true, get: function () { return dates_1.toRfc3339WithNanoseconds; } })); +Object.defineProperty(exports, "toSeconds", ({ enumerable: true, get: function () { return dates_1.toSeconds; } })); +// The public Tendermint34Client.create constructor allows manually choosing an RpcClient. +// This is currently the only way to switch to the HttpBatchClient (which may become default at some point). +// Due to this API, we make RPC client implementations public. +exports.comet38 = __importStar(__webpack_require__(/*! ./comet38 */ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/index.js")); +var comet38_1 = __webpack_require__(/*! ./comet38 */ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/index.js"); +Object.defineProperty(exports, "Comet38Client", ({ enumerable: true, get: function () { return comet38_1.Comet38Client; } })); +var rpcclients_1 = __webpack_require__(/*! ./rpcclients */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/index.js"); +Object.defineProperty(exports, "HttpBatchClient", ({ enumerable: true, get: function () { return rpcclients_1.HttpBatchClient; } })); +Object.defineProperty(exports, "HttpClient", ({ enumerable: true, get: function () { return rpcclients_1.HttpClient; } })); +Object.defineProperty(exports, "WebsocketClient", ({ enumerable: true, get: function () { return rpcclients_1.WebsocketClient; } })); +var tendermint34_1 = __webpack_require__(/*! ./tendermint34 */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/index.js"); +Object.defineProperty(exports, "broadcastTxCommitSuccess", ({ enumerable: true, get: function () { return tendermint34_1.broadcastTxCommitSuccess; } })); +Object.defineProperty(exports, "broadcastTxSyncSuccess", ({ enumerable: true, get: function () { return tendermint34_1.broadcastTxSyncSuccess; } })); +Object.defineProperty(exports, "Method", ({ enumerable: true, get: function () { return tendermint34_1.Method; } })); +Object.defineProperty(exports, "SubscriptionEventType", ({ enumerable: true, get: function () { return tendermint34_1.SubscriptionEventType; } })); +Object.defineProperty(exports, "VoteType", ({ enumerable: true, get: function () { return tendermint34_1.VoteType; } })); +exports.tendermint34 = __importStar(__webpack_require__(/*! ./tendermint34 */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/index.js")); +var tendermint34_2 = __webpack_require__(/*! ./tendermint34 */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/index.js"); +Object.defineProperty(exports, "Tendermint34Client", ({ enumerable: true, get: function () { return tendermint34_2.Tendermint34Client; } })); +exports.tendermint37 = __importStar(__webpack_require__(/*! ./tendermint37 */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/index.js")); +var tendermint37_1 = __webpack_require__(/*! ./tendermint37 */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/index.js"); +Object.defineProperty(exports, "Tendermint37Client", ({ enumerable: true, get: function () { return tendermint37_1.Tendermint37Client; } })); +var tendermintclient_1 = __webpack_require__(/*! ./tendermintclient */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermintclient.js"); +Object.defineProperty(exports, "connectComet", ({ enumerable: true, get: function () { return tendermintclient_1.connectComet; } })); +Object.defineProperty(exports, "isComet38Client", ({ enumerable: true, get: function () { return tendermintclient_1.isComet38Client; } })); +Object.defineProperty(exports, "isTendermint34Client", ({ enumerable: true, get: function () { return tendermintclient_1.isTendermint34Client; } })); +Object.defineProperty(exports, "isTendermint37Client", ({ enumerable: true, get: function () { return tendermintclient_1.isTendermint37Client; } })); +var types_1 = __webpack_require__(/*! ./types */ "./node_modules/@cosmjs/tendermint-rpc/build/types.js"); +Object.defineProperty(exports, "BlockIdFlag", ({ enumerable: true, get: function () { return types_1.BlockIdFlag; } })); //# sourceMappingURL=index.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/rfc3339.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/rfc3339.js ***! - \********************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/inthelpers.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/inthelpers.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toRfc3339 = exports.fromRfc3339 = void 0; -const rfc3339Matcher = /^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2}):(\d{2})(\.\d{1,9})?((?:[+-]\d{2}:\d{2})|Z)$/; -function padded(integer, length = 2) { - return integer.toString().padStart(length, "0"); +exports.smallIntToApi = exports.apiToBigInt = exports.apiToSmallInt = void 0; +const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/math/build/index.js"); +const encodings_1 = __webpack_require__(/*! ./tendermint34/encodings */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/encodings.js"); +/** + * Takes an integer value from the Tendermint RPC API and + * returns it as number. + * + * Only works within the safe integer range. + */ +function apiToSmallInt(input) { + const asInt = typeof input === "number" ? new math_1.Int53(input) : math_1.Int53.fromString(input); + return asInt.toNumber(); } -function fromRfc3339(str) { - const matches = rfc3339Matcher.exec(str); - if (!matches) { - throw new Error("Date string is not in RFC3339 format"); - } - const year = +matches[1]; - const month = +matches[2]; - const day = +matches[3]; - const hour = +matches[4]; - const minute = +matches[5]; - const second = +matches[6]; - // fractional seconds match either undefined or a string like ".1", ".123456789" - const milliSeconds = matches[7] ? Math.floor(+matches[7] * 1000) : 0; - let tzOffsetSign; - let tzOffsetHours; - let tzOffsetMinutes; - // if timezone is undefined, it must be Z or nothing (otherwise the group would have captured). - if (matches[8] === "Z") { - tzOffsetSign = 1; - tzOffsetHours = 0; - tzOffsetMinutes = 0; - } - else { - tzOffsetSign = matches[8].substring(0, 1) === "-" ? -1 : 1; - tzOffsetHours = +matches[8].substring(1, 3); - tzOffsetMinutes = +matches[8].substring(4, 6); +exports.apiToSmallInt = apiToSmallInt; +/** + * Takes an integer value from the Tendermint RPC API and + * returns it as BigInt. + * + * This supports the full uint64 and int64 ranges. + */ +function apiToBigInt(input) { + (0, encodings_1.assertString)(input); // Runtime check on top of TypeScript just to be safe for semi-trusted API types + if (!input.match(/^-?[0-9]+$/)) { + throw new Error("Invalid string format"); } - const tzOffset = tzOffsetSign * (tzOffsetHours * 60 + tzOffsetMinutes) * 60; // seconds - const timestamp = Date.UTC(year, month - 1, day, hour, minute, second, milliSeconds) - tzOffset * 1000; - return new Date(timestamp); + return BigInt(input); } -exports.fromRfc3339 = fromRfc3339; -function toRfc3339(date) { - const year = date.getUTCFullYear(); - const month = padded(date.getUTCMonth() + 1); - const day = padded(date.getUTCDate()); - const hour = padded(date.getUTCHours()); - const minute = padded(date.getUTCMinutes()); - const second = padded(date.getUTCSeconds()); - const ms = padded(date.getUTCMilliseconds(), 3); - return `${year}-${month}-${day}T${hour}:${minute}:${second}.${ms}Z`; +exports.apiToBigInt = apiToBigInt; +/** + * Takes an integer in the safe integer range and returns + * a string representation to be used in the Tendermint RPC API. + */ +function smallIntToApi(num) { + return new math_1.Int53(num).toString(); } -exports.toRfc3339 = toRfc3339; -//# sourceMappingURL=rfc3339.js.map +exports.smallIntToApi = smallIntToApi; +//# sourceMappingURL=inthelpers.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/utf8.js": -/*!*****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/encoding/build/utf8.js ***! - \*****************************************************************************************/ +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/jsonrpc.js": +/*!**************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/jsonrpc.js ***! + \**************************************************************/ /***/ (function(__unused_webpack_module, exports) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromUtf8 = exports.toUtf8 = void 0; -function toUtf8(str) { - return new TextEncoder().encode(str); +exports.createJsonRpcRequest = void 0; +const numbersWithoutZero = "123456789"; +/** generates a random numeric character */ +function randomNumericChar() { + return numbersWithoutZero[Math.floor(Math.random() * numbersWithoutZero.length)]; } -exports.toUtf8 = toUtf8; /** - * Takes UTF-8 data and decodes it to a string. - * - * In lossy mode, the replacement character � is used to substitude invalid - * encodings. By default lossy mode is off and invalid data will lead to exceptions. + * An (absolutely not cryptographically secure) random integer > 0. */ -function fromUtf8(data, lossy = false) { - const fatal = !lossy; - return new TextDecoder("utf-8", { fatal }).decode(data); +function randomId() { + return parseInt(Array.from({ length: 12 }) + .map(() => randomNumericChar()) + .join(""), 10); } -exports.fromUtf8 = fromUtf8; -//# sourceMappingURL=utf8.js.map +/** Creates a JSON-RPC request with random ID */ +// eslint-disable-next-line @typescript-eslint/ban-types +function createJsonRpcRequest(method, params) { + const paramsCopy = params ? { ...params } : {}; + return { + jsonrpc: "2.0", + id: randomId(), + method: method, + params: paramsCopy, + }; +} +exports.createJsonRpcRequest = createJsonRpcRequest; +//# sourceMappingURL=jsonrpc.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/math/build/decimal.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/math/build/decimal.js ***! - \****************************************************************************************/ +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/http.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/http.js ***! + \**********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -29511,679 +17136,454 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Decimal = void 0; -const bn_js_1 = __importDefault(__webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js")); -// Too large values lead to massive memory usage. Limit to something sensible. -// The largest value we need is 18 (Ether). -const maxFractionalDigits = 100; +exports.http = void 0; +const axios_1 = __importDefault(__webpack_require__(/*! axios */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/dist/browser/axios.cjs")); +function filterBadStatus(res) { + if (res.status >= 400) { + throw new Error(`Bad status on response: ${res.status}`); + } + return res; +} /** - * A type for arbitrary precision, non-negative decimals. + * Node.js 18 comes with exprimental fetch support (https://nodejs.org/de/blog/announcements/v18-release-announce/). + * This is nice, but the implementation does not yet work wekk for us. We + * can just stick with axios on those systems for now. + */ +// eslint-disable-next-line @typescript-eslint/ban-types +function isExperimental(nodeJsFunc) { + // This works because we get this info in node 18: + // + // > fetch.toString() + // 'async function fetch(input, init = undefined) {\n' + + // " emitExperimentalWarning('The Fetch API');\n" + + // ' return lazyUndici().fetch(input, init);\n' + + // ' }' + return nodeJsFunc.toString().includes("emitExperimentalWarning"); +} +/** + * Helper to work around missing CORS support in Tendermint (https://github.com/tendermint/tendermint/pull/2800) * - * Instances of this class are immutable. + * For some reason, fetch does not complain about missing server-side CORS support. */ -class Decimal { - constructor(atomics, fractionalDigits) { - if (!atomics.match(/^[0-9]+$/)) { - throw new Error("Invalid string format. Only non-negative integers in decimal representation supported."); - } - this.data = { - atomics: new bn_js_1.default(atomics), - fractionalDigits: fractionalDigits, +// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types +async function http(method, url, headers, request) { + if (typeof fetch === "function" && !isExperimental(fetch)) { + const settings = { + method: method, + body: request ? JSON.stringify(request) : undefined, + headers: { + // eslint-disable-next-line @typescript-eslint/naming-convention + "Content-Type": "application/json", + ...headers, + }, }; + return fetch(url, settings) + .then(filterBadStatus) + .then((res) => res.json()); } - static fromUserInput(input, fractionalDigits) { - Decimal.verifyFractionalDigits(fractionalDigits); - const badCharacter = input.match(/[^0-9.]/); - if (badCharacter) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - throw new Error(`Invalid character at position ${badCharacter.index + 1}`); - } - let whole; - let fractional; - if (input === "") { - whole = "0"; - fractional = ""; - } - else if (input.search(/\./) === -1) { - // integer format, no separator - whole = input; - fractional = ""; + else { + return axios_1.default + .request({ url: url, method: method, data: request, headers: headers }) + .then((res) => res.data); + } +} +exports.http = http; +//# sourceMappingURL=http.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/httpbatchclient.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/httpbatchclient.js ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.HttpBatchClient = void 0; +const json_rpc_1 = __webpack_require__(/*! @cosmjs/json-rpc */ "./node_modules/@cosmjs/json-rpc/build/index.js"); +const http_1 = __webpack_require__(/*! ./http */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/http.js"); +const rpcclient_1 = __webpack_require__(/*! ./rpcclient */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/rpcclient.js"); +// Those values are private and can change any time. +// Does a user need to know them? I don't think so. You either set +// a custom value or leave the option field unset. +const defaultHttpBatchClientOptions = { + dispatchInterval: 20, + batchSizeLimit: 20, +}; +class HttpBatchClient { + constructor(endpoint, options = {}) { + this.queue = []; + this.options = { + batchSizeLimit: options.batchSizeLimit ?? defaultHttpBatchClientOptions.batchSizeLimit, + dispatchInterval: options.dispatchInterval ?? defaultHttpBatchClientOptions.dispatchInterval, + }; + if (typeof endpoint === "string") { + // accept host.name:port and assume http protocol + this.url = (0, rpcclient_1.hasProtocol)(endpoint) ? endpoint : "http://" + endpoint; } else { - const parts = input.split("."); - switch (parts.length) { - case 0: - case 1: - throw new Error("Fewer than two elements in split result. This must not happen here."); - case 2: - if (!parts[1]) - throw new Error("Fractional part missing"); - whole = parts[0]; - fractional = parts[1].replace(/0+$/, ""); - break; - default: - throw new Error("More than one separator found"); - } - } - if (fractional.length > fractionalDigits) { - throw new Error("Got more fractional digits than supported"); + this.url = endpoint.url; + this.headers = endpoint.headers; } - const quantity = `${whole}${fractional.padEnd(fractionalDigits, "0")}`; - return new Decimal(quantity, fractionalDigits); - } - static fromAtomics(atomics, fractionalDigits) { - Decimal.verifyFractionalDigits(fractionalDigits); - return new Decimal(atomics, fractionalDigits); + this.timer = setInterval(() => this.tick(), options.dispatchInterval); + this.validate(); } - /** - * Creates a Decimal with value 0.0 and the given number of fractial digits. - * - * Fractional digits are not relevant for the value but needed to be able - * to perform arithmetic operations with other decimals. - */ - static zero(fractionalDigits) { - Decimal.verifyFractionalDigits(fractionalDigits); - return new Decimal("0", fractionalDigits); + disconnect() { + this.timer && clearInterval(this.timer); + this.timer = undefined; } - /** - * Creates a Decimal with value 1.0 and the given number of fractial digits. - * - * Fractional digits are not relevant for the value but needed to be able - * to perform arithmetic operations with other decimals. - */ - static one(fractionalDigits) { - Decimal.verifyFractionalDigits(fractionalDigits); - return new Decimal("1" + "0".repeat(fractionalDigits), fractionalDigits); + async execute(request) { + return new Promise((resolve, reject) => { + this.queue.push({ request, resolve, reject }); + if (this.queue.length >= this.options.batchSizeLimit) { + // this train is full, let's go + this.tick(); + } + }); } - static verifyFractionalDigits(fractionalDigits) { - if (!Number.isInteger(fractionalDigits)) - throw new Error("Fractional digits is not an integer"); - if (fractionalDigits < 0) - throw new Error("Fractional digits must not be negative"); - if (fractionalDigits > maxFractionalDigits) { - throw new Error(`Fractional digits must not exceed ${maxFractionalDigits}`); + validate() { + if (!this.options.batchSizeLimit || + !Number.isSafeInteger(this.options.batchSizeLimit) || + this.options.batchSizeLimit < 1) { + throw new Error("batchSizeLimit must be a safe integer >= 1"); } } - static compare(a, b) { - if (a.fractionalDigits !== b.fractionalDigits) - throw new Error("Fractional digits do not match"); - return a.data.atomics.cmp(new bn_js_1.default(b.atomics)); - } - get atomics() { - return this.data.atomics.toString(); - } - get fractionalDigits() { - return this.data.fractionalDigits; - } - /** Creates a new instance with the same value */ - clone() { - return new Decimal(this.atomics, this.fractionalDigits); + /** + * This is called in an interval where promise rejections cannot be handled. + * So this is not async and HTTP errors need to be handled by the queued promises. + */ + tick() { + // Avoid race conditions + const batch = this.queue.splice(0, this.options.batchSizeLimit); + if (!batch.length) + return; + const requests = batch.map((s) => s.request); + const requestIds = requests.map((request) => request.id); + (0, http_1.http)("POST", this.url, this.headers, requests).then((raw) => { + // Requests with a single entry return as an object + const arr = Array.isArray(raw) ? raw : [raw]; + arr.forEach((el) => { + const req = batch.find((s) => s.request.id === el.id); + if (!req) + return; + const { reject, resolve } = req; + const response = (0, json_rpc_1.parseJsonRpcResponse)(el); + if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) { + reject(new Error(JSON.stringify(response.error))); + } + else { + resolve(response); + } + }); + }, (error) => { + for (const requestId of requestIds) { + const req = batch.find((s) => s.request.id === requestId); + if (!req) + return; + req.reject(error); + } + }); } - /** Returns the greatest decimal <= this which has no fractional part (rounding down) */ - floor() { - const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits)); - const whole = this.data.atomics.div(factor); - const fractional = this.data.atomics.mod(factor); - if (fractional.isZero()) { - return this.clone(); +} +exports.HttpBatchClient = HttpBatchClient; +//# sourceMappingURL=httpbatchclient.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/httpclient.js": +/*!****************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/httpclient.js ***! + \****************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.HttpClient = void 0; +const json_rpc_1 = __webpack_require__(/*! @cosmjs/json-rpc */ "./node_modules/@cosmjs/json-rpc/build/index.js"); +const http_1 = __webpack_require__(/*! ./http */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/http.js"); +const rpcclient_1 = __webpack_require__(/*! ./rpcclient */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/rpcclient.js"); +class HttpClient { + constructor(endpoint) { + if (typeof endpoint === "string") { + // accept host.name:port and assume http protocol + this.url = (0, rpcclient_1.hasProtocol)(endpoint) ? endpoint : "http://" + endpoint; } else { - return Decimal.fromAtomics(whole.mul(factor).toString(), this.fractionalDigits); + this.url = endpoint.url; + this.headers = endpoint.headers; } } - /** Returns the smallest decimal >= this which has no fractional part (rounding up) */ - ceil() { - const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits)); - const whole = this.data.atomics.div(factor); - const fractional = this.data.atomics.mod(factor); - if (fractional.isZero()) { - return this.clone(); - } - else { - return Decimal.fromAtomics(whole.addn(1).mul(factor).toString(), this.fractionalDigits); - } + disconnect() { + // nothing to be done } - toString() { - const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits)); - const whole = this.data.atomics.div(factor); - const fractional = this.data.atomics.mod(factor); - if (fractional.isZero()) { - return whole.toString(); - } - else { - const fullFractionalPart = fractional.toString().padStart(this.data.fractionalDigits, "0"); - const trimmedFractionalPart = fullFractionalPart.replace(/0+$/, ""); - return `${whole.toString()}.${trimmedFractionalPart}`; + async execute(request) { + const response = (0, json_rpc_1.parseJsonRpcResponse)(await (0, http_1.http)("POST", this.url, this.headers, request)); + if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) { + throw new Error(JSON.stringify(response.error)); } - } - /** - * Returns an approximation as a float type. Only use this if no - * exact calculation is required. - */ - toFloatApproximation() { - const out = Number(this.toString()); - if (Number.isNaN(out)) - throw new Error("Conversion to number failed"); - return out; - } - /** - * a.plus(b) returns a+b. - * - * Both values need to have the same fractional digits. - */ - plus(b) { - if (this.fractionalDigits !== b.fractionalDigits) - throw new Error("Fractional digits do not match"); - const sum = this.data.atomics.add(new bn_js_1.default(b.atomics)); - return new Decimal(sum.toString(), this.fractionalDigits); - } - /** - * a.minus(b) returns a-b. - * - * Both values need to have the same fractional digits. - * The resulting difference needs to be non-negative. - */ - minus(b) { - if (this.fractionalDigits !== b.fractionalDigits) - throw new Error("Fractional digits do not match"); - const difference = this.data.atomics.sub(new bn_js_1.default(b.atomics)); - if (difference.ltn(0)) - throw new Error("Difference must not be negative"); - return new Decimal(difference.toString(), this.fractionalDigits); - } - /** - * a.multiply(b) returns a*b. - * - * We only allow multiplication by unsigned integers to avoid rounding errors. - */ - multiply(b) { - const product = this.data.atomics.mul(new bn_js_1.default(b.toString())); - return new Decimal(product.toString(), this.fractionalDigits); - } - equals(b) { - return Decimal.compare(this, b) === 0; - } - isLessThan(b) { - return Decimal.compare(this, b) < 0; - } - isLessThanOrEqual(b) { - return Decimal.compare(this, b) <= 0; - } - isGreaterThan(b) { - return Decimal.compare(this, b) > 0; - } - isGreaterThanOrEqual(b) { - return Decimal.compare(this, b) >= 0; + return response; } } -exports.Decimal = Decimal; -//# sourceMappingURL=decimal.js.map +exports.HttpClient = HttpClient; +//# sourceMappingURL=httpclient.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/math/build/index.js": -/*!**************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/math/build/index.js ***! - \**************************************************************************************/ +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/index.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/index.js ***! + \***********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; +// This folder contains Tendermint-specific RPC clients Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Uint64 = exports.Uint53 = exports.Uint32 = exports.Int53 = exports.Decimal = void 0; -var decimal_1 = __webpack_require__(/*! ./decimal */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/math/build/decimal.js"); -Object.defineProperty(exports, "Decimal", ({ enumerable: true, get: function () { return decimal_1.Decimal; } })); -var integers_1 = __webpack_require__(/*! ./integers */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/math/build/integers.js"); -Object.defineProperty(exports, "Int53", ({ enumerable: true, get: function () { return integers_1.Int53; } })); -Object.defineProperty(exports, "Uint32", ({ enumerable: true, get: function () { return integers_1.Uint32; } })); -Object.defineProperty(exports, "Uint53", ({ enumerable: true, get: function () { return integers_1.Uint53; } })); -Object.defineProperty(exports, "Uint64", ({ enumerable: true, get: function () { return integers_1.Uint64; } })); +exports.WebsocketClient = exports.instanceOfRpcStreamingClient = exports.HttpClient = exports.HttpBatchClient = void 0; +var httpbatchclient_1 = __webpack_require__(/*! ./httpbatchclient */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/httpbatchclient.js"); +Object.defineProperty(exports, "HttpBatchClient", ({ enumerable: true, get: function () { return httpbatchclient_1.HttpBatchClient; } })); +var httpclient_1 = __webpack_require__(/*! ./httpclient */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/httpclient.js"); +Object.defineProperty(exports, "HttpClient", ({ enumerable: true, get: function () { return httpclient_1.HttpClient; } })); +var rpcclient_1 = __webpack_require__(/*! ./rpcclient */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/rpcclient.js"); +Object.defineProperty(exports, "instanceOfRpcStreamingClient", ({ enumerable: true, get: function () { return rpcclient_1.instanceOfRpcStreamingClient; } })); +var websocketclient_1 = __webpack_require__(/*! ./websocketclient */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/websocketclient.js"); +Object.defineProperty(exports, "WebsocketClient", ({ enumerable: true, get: function () { return websocketclient_1.WebsocketClient; } })); //# sourceMappingURL=index.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/math/build/integers.js": -/*!*****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/math/build/integers.js ***! - \*****************************************************************************************/ +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/rpcclient.js": +/*!***************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/rpcclient.js ***! + \***************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.hasProtocol = exports.instanceOfRpcStreamingClient = void 0; +function instanceOfRpcStreamingClient(client) { + return typeof client.listen === "function"; +} +exports.instanceOfRpcStreamingClient = instanceOfRpcStreamingClient; +// Helpers for all RPC clients +function hasProtocol(url) { + return url.search("://") !== -1; +} +exports.hasProtocol = hasProtocol; +//# sourceMappingURL=rpcclient.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/websocketclient.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/websocketclient.js ***! + \*********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Uint64 = exports.Uint53 = exports.Int53 = exports.Uint32 = void 0; -/* eslint-disable no-bitwise */ -const bn_js_1 = __importDefault(__webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js")); -const uint64MaxValue = new bn_js_1.default("18446744073709551615", 10, "be"); -class Uint32 { - constructor(input) { - if (Number.isNaN(input)) { - throw new Error("Input is not a number"); - } - if (!Number.isInteger(input)) { - throw new Error("Input is not an integer"); - } - if (input < 0 || input > 4294967295) { - throw new Error("Input not in uint32 range: " + input.toString()); - } - this.data = input; - } - /** @deprecated use Uint32.fromBytes */ - static fromBigEndianBytes(bytes) { - return Uint32.fromBytes(bytes); - } - /** - * Creates a Uint32 from a fixed length byte array. - * - * @param bytes a list of exactly 4 bytes - * @param endianess defaults to big endian - */ - static fromBytes(bytes, endianess = "be") { - if (bytes.length !== 4) { - throw new Error("Invalid input length. Expected 4 bytes."); - } - for (let i = 0; i < bytes.length; ++i) { - if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) { - throw new Error("Invalid value in byte. Found: " + bytes[i]); - } - } - const beBytes = endianess === "be" ? bytes : Array.from(bytes).reverse(); - // Use mulitiplication instead of shifting since bitwise operators are defined - // on SIGNED int32 in JavaScript and we don't want to risk surprises - return new Uint32(beBytes[0] * 2 ** 24 + beBytes[1] * 2 ** 16 + beBytes[2] * 2 ** 8 + beBytes[3]); - } - static fromString(str) { - if (!str.match(/^[0-9]+$/)) { - throw new Error("Invalid string format"); - } - return new Uint32(Number.parseInt(str, 10)); - } - toBytesBigEndian() { - // Use division instead of shifting since bitwise operators are defined - // on SIGNED int32 in JavaScript and we don't want to risk surprises - return new Uint8Array([ - Math.floor(this.data / 2 ** 24) & 0xff, - Math.floor(this.data / 2 ** 16) & 0xff, - Math.floor(this.data / 2 ** 8) & 0xff, - Math.floor(this.data / 2 ** 0) & 0xff, - ]); - } - toBytesLittleEndian() { - // Use division instead of shifting since bitwise operators are defined - // on SIGNED int32 in JavaScript and we don't want to risk surprises - return new Uint8Array([ - Math.floor(this.data / 2 ** 0) & 0xff, - Math.floor(this.data / 2 ** 8) & 0xff, - Math.floor(this.data / 2 ** 16) & 0xff, - Math.floor(this.data / 2 ** 24) & 0xff, - ]); - } - toNumber() { - return this.data; - } - toBigInt() { - return BigInt(this.toNumber()); - } - toString() { - return this.data.toString(); - } +exports.WebsocketClient = void 0; +const json_rpc_1 = __webpack_require__(/*! @cosmjs/json-rpc */ "./node_modules/@cosmjs/json-rpc/build/index.js"); +const socket_1 = __webpack_require__(/*! @cosmjs/socket */ "./node_modules/@cosmjs/socket/build/index.js"); +const stream_1 = __webpack_require__(/*! @cosmjs/stream */ "./node_modules/@cosmjs/stream/build/index.js"); +const xstream_1 = __webpack_require__(/*! xstream */ "./node_modules/xstream/index.js"); +const rpcclient_1 = __webpack_require__(/*! ./rpcclient */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/rpcclient.js"); +function defaultErrorHandler(error) { + throw error; } -exports.Uint32 = Uint32; -class Int53 { - constructor(input) { - if (Number.isNaN(input)) { - throw new Error("Input is not a number"); - } - if (!Number.isInteger(input)) { - throw new Error("Input is not an integer"); - } - if (input < Number.MIN_SAFE_INTEGER || input > Number.MAX_SAFE_INTEGER) { - throw new Error("Input not in int53 range: " + input.toString()); - } - this.data = input; - } - static fromString(str) { - if (!str.match(/^-?[0-9]+$/)) { - throw new Error("Invalid string format"); - } - return new Int53(Number.parseInt(str, 10)); - } - toNumber() { - return this.data; - } - toBigInt() { - return BigInt(this.toNumber()); - } - toString() { - return this.data.toString(); +function toJsonRpcResponse(message) { + // this should never happen, but I want an alert if it does + if (message.type !== "message") { + throw new Error(`Unexcepted message type on websocket: ${message.type}`); } + const jsonRpcEvent = (0, json_rpc_1.parseJsonRpcResponse)(JSON.parse(message.data)); + return jsonRpcEvent; } -exports.Int53 = Int53; -class Uint53 { - constructor(input) { - const signed = new Int53(input); - if (signed.toNumber() < 0) { - throw new Error("Input is negative"); - } - this.data = signed; - } - static fromString(str) { - const signed = Int53.fromString(str); - return new Uint53(signed.toNumber()); - } - toNumber() { - return this.data.toNumber(); - } - toBigInt() { - return BigInt(this.toNumber()); - } - toString() { - return this.data.toString(); +class RpcEventProducer { + constructor(request, socket) { + this.running = false; + this.subscriptions = []; + this.request = request; + this.socket = socket; } -} -exports.Uint53 = Uint53; -class Uint64 { - constructor(data) { - if (data.isNeg()) { - throw new Error("Input is negative"); - } - if (data.gt(uint64MaxValue)) { - throw new Error("Input exceeds uint64 range"); + /** + * Implementation of Producer.start + */ + start(listener) { + if (this.running) { + throw Error("Already started. Please stop first before restarting."); } - this.data = data; - } - /** @deprecated use Uint64.fromBytes */ - static fromBytesBigEndian(bytes) { - return Uint64.fromBytes(bytes); + this.running = true; + this.connectToClient(listener); + this.socket.queueRequest(JSON.stringify(this.request)); } /** - * Creates a Uint64 from a fixed length byte array. + * Implementation of Producer.stop * - * @param bytes a list of exactly 8 bytes - * @param endianess defaults to big endian + * Called by the stream when the stream's last listener stopped listening + * or when the producer completed. */ - static fromBytes(bytes, endianess = "be") { - if (bytes.length !== 8) { - throw new Error("Invalid input length. Expected 8 bytes."); - } - for (let i = 0; i < bytes.length; ++i) { - if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) { - throw new Error("Invalid value in byte. Found: " + bytes[i]); - } - } - const beBytes = endianess === "be" ? Array.from(bytes) : Array.from(bytes).reverse(); - return new Uint64(new bn_js_1.default(beBytes)); - } - static fromString(str) { - if (!str.match(/^[0-9]+$/)) { - throw new Error("Invalid string format"); - } - return new Uint64(new bn_js_1.default(str, 10, "be")); - } - static fromNumber(input) { - if (Number.isNaN(input)) { - throw new Error("Input is not a number"); - } - if (!Number.isInteger(input)) { - throw new Error("Input is not an integer"); - } - let bigint; + stop() { + this.running = false; + // Tell the server we are done in order to save resources. We cannot wait for the result. + // This may fail when socket connection is not open, thus ignore errors in queueRequest + const endRequest = { ...this.request, method: "unsubscribe" }; try { - bigint = new bn_js_1.default(input); + this.socket.queueRequest(JSON.stringify(endRequest)); } - catch { - throw new Error("Input is not a safe integer"); + catch (error) { + if (error instanceof Error && error.message.match(/socket has disconnected/i)) { + // ignore + } + else { + throw error; + } } - return new Uint64(bigint); - } - toBytesBigEndian() { - return Uint8Array.from(this.data.toArray("be", 8)); - } - toBytesLittleEndian() { - return Uint8Array.from(this.data.toArray("le", 8)); - } - toString() { - return this.data.toString(10); } - toBigInt() { - return BigInt(this.toString()); - } - toNumber() { - return this.data.toNumber(); + connectToClient(listener) { + const responseStream = this.socket.events.map(toJsonRpcResponse); + // this should unsubscribe itself, so doesn't need to be removed explicitly + const idSubscription = responseStream + .filter((response) => response.id === this.request.id) + .subscribe({ + next: (response) => { + if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) { + this.closeSubscriptions(); + listener.error(JSON.stringify(response.error)); + } + idSubscription.unsubscribe(); + }, + }); + // this will fire on a response (success or error) + // Tendermint adds an "#event" suffix for events that follow a previous subscription + // https://github.com/tendermint/tendermint/blob/v0.23.0/rpc/core/events.go#L107 + const idEventSubscription = responseStream + .filter((response) => response.id === this.request.id) + .subscribe({ + next: (response) => { + if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) { + this.closeSubscriptions(); + listener.error(JSON.stringify(response.error)); + } + else { + listener.next(response.result); + } + }, + }); + // this will fire in case the websocket disconnects cleanly + const nonResponseSubscription = responseStream.subscribe({ + error: (error) => { + this.closeSubscriptions(); + listener.error(error); + }, + complete: () => { + this.closeSubscriptions(); + listener.complete(); + }, + }); + this.subscriptions.push(idSubscription, idEventSubscription, nonResponseSubscription); } -} -exports.Uint64 = Uint64; -// Assign classes to unused variables in order to verify static interface conformance at compile time. -// Workaround for https://github.com/microsoft/TypeScript/issues/33892 -const _int53Class = Int53; -const _uint53Class = Uint53; -const _uint32Class = Uint32; -const _uint64Class = Uint64; -//# sourceMappingURL=integers.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/stream/build/concat.js": -/*!*****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/stream/build/concat.js ***! - \*****************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.concat = void 0; -const xstream_1 = __webpack_require__(/*! xstream */ "./node_modules/xstream/index.js"); -/** - * An implementation of concat that buffers all source stream events - * - * Marble diagram: - * - * ```text - * --1--2---3---4-| - * -a--b-c--d-| - * --------X---------Y---------Z- - * concat - * --1--2---3---4-abcdXY-------Z- - * ``` - * - * This is inspired by RxJS's concat as documented at http://rxmarbles.com/#concat and behaves - * differently than xstream's concat as discussed in https://github.com/staltz/xstream/issues/170. - * - */ -function concat(...streams) { - const subscriptions = new Array(); - const queues = new Array(); // one queue per stream - const completedStreams = new Set(); - let activeStreamIndex = 0; - function reset() { - while (subscriptions.length > 0) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const subscription = subscriptions.shift(); + closeSubscriptions() { + for (const subscription of this.subscriptions) { subscription.unsubscribe(); } - queues.length = 0; - completedStreams.clear(); - activeStreamIndex = 0; + // clear unused subscriptions + this.subscriptions = []; } - const producer = { - start: (listener) => { - streams.forEach((_) => queues.push([])); - function emitAllQueuesEvents(streamIndex) { - // eslint-disable-next-line no-constant-condition - while (true) { - const element = queues[streamIndex].shift(); - if (element === undefined) { - return; - } - listener.next(element); - } - } - function isDone() { - return activeStreamIndex >= streams.length; - } - if (isDone()) { - listener.complete(); - return; - } - streams.forEach((stream, index) => { - subscriptions.push(stream.subscribe({ - next: (value) => { - if (index === activeStreamIndex) { - listener.next(value); - } - else { - queues[index].push(value); - } - }, - complete: () => { - completedStreams.add(index); - while (completedStreams.has(activeStreamIndex)) { - // this stream completed: emit all and move on - emitAllQueuesEvents(activeStreamIndex); - activeStreamIndex++; - } - if (isDone()) { - listener.complete(); - } - else { - // now active stream can have some events queued but did not yet complete - emitAllQueuesEvents(activeStreamIndex); - } - }, - error: (error) => { - listener.error(error); - reset(); - }, - })); - }); - }, - stop: () => { - reset(); - }, - }; - return xstream_1.Stream.create(producer); } -exports.concat = concat; -//# sourceMappingURL=concat.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/stream/build/defaultvalueproducer.js": -/*!*******************************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/stream/build/defaultvalueproducer.js ***! - \*******************************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.DefaultValueProducer = void 0; -// allows pre-producing values before anyone is listening -class DefaultValueProducer { - constructor(value, callbacks) { - this.callbacks = callbacks; - this.internalValue = value; - } - get value() { - return this.internalValue; +class WebsocketClient { + constructor(baseUrl, onError = defaultErrorHandler) { + // Lazily create streams and use the same stream when listening to the same query twice. + // + // Creating streams is cheap since producer is not started as long as nobody listens to events. Thus this + // map is never cleared and there is no need to do so. But unsubscribe all the subscriptions! + this.subscriptionStreams = new Map(); + // accept host.name:port and assume ws protocol + // make sure we don't end up with ...//websocket + const path = baseUrl.endsWith("/") ? "websocket" : "/websocket"; + const cleanBaseUrl = (0, rpcclient_1.hasProtocol)(baseUrl) ? baseUrl : "ws://" + baseUrl; + this.url = cleanBaseUrl + path; + this.socket = new socket_1.ReconnectingSocket(this.url); + const errorSubscription = this.socket.events.subscribe({ + error: (error) => { + onError(error); + errorSubscription.unsubscribe(); + }, + }); + this.jsonRpcResponseStream = this.socket.events.map(toJsonRpcResponse); + this.socket.connect(); } - /** - * Update the current value. - * - * If producer is active (i.e. someone is listening), this emits an event. - * If not, just the current value is updated. - */ - update(value) { - this.internalValue = value; - if (this.listener) { - this.listener.next(value); + async execute(request) { + const pendingResponse = this.responseForRequestId(request.id); + this.socket.queueRequest(JSON.stringify(request)); + const response = await pendingResponse; + if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) { + throw new Error(JSON.stringify(response.error)); } + return response; } - /** - * Produce an error - */ - // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types - error(error) { - if (this.listener) { - this.listener.error(error); + listen(request) { + if (request.method !== "subscribe") { + throw new Error(`Request method must be "subscribe" to start event listening`); } - } - /** - * Called by the stream. Do not call this directly. - */ - start(listener) { - this.listener = listener; - listener.next(this.internalValue); - if (this.callbacks) { - this.callbacks.onStarted(); + const query = request.params.query; + if (typeof query !== "string") { + throw new Error("request.params.query must be a string"); + } + if (!this.subscriptionStreams.has(query)) { + const producer = new RpcEventProducer(request, this.socket); + const stream = xstream_1.Stream.create(producer); + this.subscriptionStreams.set(query, stream); } + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + return this.subscriptionStreams.get(query).filter((response) => response.query !== undefined); } /** - * Called by the stream. Do not call this directly. + * Resolves as soon as websocket is connected. execute() queues requests automatically, + * so this should be required for testing purposes only. */ - stop() { - if (this.callbacks) { - this.callbacks.onStop(); - } - this.listener = undefined; + async connected() { + await this.socket.connectionStatus.waitFor(socket_1.ConnectionStatus.Connected); + } + disconnect() { + this.socket.disconnect(); + } + async responseForRequestId(id) { + return (0, stream_1.firstEvent)(this.jsonRpcResponseStream.filter((r) => r.id === id)); } } -exports.DefaultValueProducer = DefaultValueProducer; -//# sourceMappingURL=defaultvalueproducer.js.map +exports.WebsocketClient = WebsocketClient; +//# sourceMappingURL=websocketclient.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/stream/build/dropduplicates.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/stream/build/dropduplicates.js ***! - \*************************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/index.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/index.js ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.dropDuplicates = void 0; -/** - * Drops duplicate values in a stream. - * - * Marble diagram: - * - * ```text - * -1-1-1-2-4-3-3-4-- - * dropDuplicates - * -1-----2-4-3------ - * ``` - * - * Each value must be uniquely identified by a string given by - * valueToKey(value). - * - * Internally this maintains a set of keys that have been processed already, - * i.e. memory consumption and Set lookup times should be considered when - * using this function. - */ -function dropDuplicates(valueToKey) { - const operand = (instream) => { - const emittedKeys = new Set(); - const deduplicatedStream = instream - .filter((value) => !emittedKeys.has(valueToKey(value))) - .debug((value) => emittedKeys.add(valueToKey(value))); - return deduplicatedStream; - }; - return operand; -} -exports.dropDuplicates = dropDuplicates; -//# sourceMappingURL=dropduplicates.js.map +exports.Responses = exports.Params = void 0; +var requests_1 = __webpack_require__(/*! ./requests */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/requests.js"); +Object.defineProperty(exports, "Params", ({ enumerable: true, get: function () { return requests_1.Params; } })); +var responses_1 = __webpack_require__(/*! ./responses */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/responses.js"); +Object.defineProperty(exports, "Responses", ({ enumerable: true, get: function () { return responses_1.Responses; } })); +//# sourceMappingURL=index.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/stream/build/index.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/stream/build/index.js ***! - \****************************************************************************************/ +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/requests.js": +/*!************************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/requests.js ***! + \************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -30199,2471 +17599,2750 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi if (k2 === undefined) k2 = k; o[k2] = m[k]; })); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ValueAndUpdates = exports.toListPromise = exports.fromListPromise = exports.firstEvent = exports.dropDuplicates = exports.DefaultValueProducer = exports.concat = void 0; -var concat_1 = __webpack_require__(/*! ./concat */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/stream/build/concat.js"); -Object.defineProperty(exports, "concat", ({ enumerable: true, get: function () { return concat_1.concat; } })); -var defaultvalueproducer_1 = __webpack_require__(/*! ./defaultvalueproducer */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/stream/build/defaultvalueproducer.js"); -Object.defineProperty(exports, "DefaultValueProducer", ({ enumerable: true, get: function () { return defaultvalueproducer_1.DefaultValueProducer; } })); -var dropduplicates_1 = __webpack_require__(/*! ./dropduplicates */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/stream/build/dropduplicates.js"); -Object.defineProperty(exports, "dropDuplicates", ({ enumerable: true, get: function () { return dropduplicates_1.dropDuplicates; } })); -var promise_1 = __webpack_require__(/*! ./promise */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/stream/build/promise.js"); -Object.defineProperty(exports, "firstEvent", ({ enumerable: true, get: function () { return promise_1.firstEvent; } })); -Object.defineProperty(exports, "fromListPromise", ({ enumerable: true, get: function () { return promise_1.fromListPromise; } })); -Object.defineProperty(exports, "toListPromise", ({ enumerable: true, get: function () { return promise_1.toListPromise; } })); -__exportStar(__webpack_require__(/*! ./reducer */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/stream/build/reducer.js"), exports); -var valueandupdates_1 = __webpack_require__(/*! ./valueandupdates */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/stream/build/valueandupdates.js"); -Object.defineProperty(exports, "ValueAndUpdates", ({ enumerable: true, get: function () { return valueandupdates_1.ValueAndUpdates; } })); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/stream/build/promise.js": -/*!******************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/stream/build/promise.js ***! - \******************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.firstEvent = exports.toListPromise = exports.fromListPromise = void 0; -const xstream_1 = __webpack_require__(/*! xstream */ "./node_modules/xstream/index.js"); -/** - * Emits one event for each list element as soon as the promise resolves - */ -function fromListPromise(promise) { - const producer = { - start: (listener) => { - // the code in `start` runs as soon as anyone listens to the stream - promise - .then((iterable) => { - for (const element of iterable) { - listener.next(element); - } - listener.complete(); - }) - .catch((error) => listener.error(error)); - }, - // eslint-disable-next-line @typescript-eslint/no-empty-function - stop: () => { }, +exports.Params = void 0; +/* eslint-disable @typescript-eslint/naming-convention */ +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +const inthelpers_1 = __webpack_require__(/*! ../../inthelpers */ "./node_modules/@cosmjs/tendermint-rpc/build/inthelpers.js"); +const jsonrpc_1 = __webpack_require__(/*! ../../jsonrpc */ "./node_modules/@cosmjs/tendermint-rpc/build/jsonrpc.js"); +const encodings_1 = __webpack_require__(/*! ../encodings */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/encodings.js"); +const requests = __importStar(__webpack_require__(/*! ../requests */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/requests.js")); +function encodeHeightParam(param) { + return { + height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.height), }; - return xstream_1.Stream.create(producer); -} -exports.fromListPromise = fromListPromise; -/** - * Listens to stream and collects events. When `count` events are collected, - * the promise resolves with an array of events. - * - * Rejects if stream completes before `count` events are collected. - */ -async function toListPromise(stream, count) { - return new Promise((resolve, reject) => { - if (count === 0) { - resolve([]); - return; - } - const events = new Array(); - // take() unsubscribes from source stream automatically - stream.take(count).subscribe({ - next: (event) => { - events.push(event); - if (events.length === count) { - resolve(events); - } - }, - complete: () => { - reject(`Stream completed before all events could be collected. ` + - `Collected ${events.length}, expected ${count}`); - }, - error: (error) => reject(error), - }); - }); -} -exports.toListPromise = toListPromise; -/** - * Listens to stream, collects one event and revolves. - * - * Rejects if stream completes before one event was fired. - */ -async function firstEvent(stream) { - return (await toListPromise(stream, 1))[0]; } -exports.firstEvent = firstEvent; -//# sourceMappingURL=promise.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/stream/build/reducer.js": -/*!******************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/stream/build/reducer.js ***! - \******************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.lastValue = exports.asArray = exports.countStream = exports.Reducer = void 0; -// Reducer takes a stream of events T and a ReducerFunc, that -// materializes a state of type U. -class Reducer { - constructor(stream, reducer, initState) { - this.stream = stream; - this.reducer = reducer; - this.state = initState; - this.completed = new Promise((resolve, reject) => { - const subscription = this.stream.subscribe({ - next: (evt) => { - this.state = this.reducer(this.state, evt); - }, - complete: () => { - resolve(); - // this must happen after resolve, to ensure stream.subscribe() has finished - subscription.unsubscribe(); - }, - error: (err) => { - reject(err); - // the stream already closed on error, but unsubscribe to be safe - subscription.unsubscribe(); - }, - }); - }); - } - // value returns current materialized state - value() { - return this.state; - } - // finished resolves on completed stream, rejects on stream error - async finished() { - return this.completed; - } +function encodeBlockchainRequestParams(param) { + return { + minHeight: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.minHeight), + maxHeight: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.maxHeight), + }; } -exports.Reducer = Reducer; -function increment(sum, _) { - return sum + 1; +function encodeBlockSearchParams(params) { + return { + query: params.query, + page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page), + per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page), + order_by: params.order_by, + }; } -// countStream returns a reducer that contains current count -// of events on the stream -function countStream(stream) { - return new Reducer(stream, increment, 0); +function encodeAbciQueryParams(params) { + return { + path: (0, encodings_1.assertNotEmpty)(params.path), + data: (0, encoding_1.toHex)(params.data), + height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.height), + prove: params.prove, + }; } -exports.countStream = countStream; -function append(list, evt) { - return [...list, evt]; +function encodeBroadcastTxParams(params) { + return { + tx: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.tx)), + }; } -// asArray maintains an array containing all events that have -// occurred on the stream -function asArray(stream) { - return new Reducer(stream, append, []); +function encodeTxParams(params) { + return { + hash: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.hash)), + prove: params.prove, + }; } -exports.asArray = asArray; -function last(_, event) { - return event; +function encodeTxSearchParams(params) { + return { + query: params.query, + prove: params.prove, + page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page), + per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page), + order_by: params.order_by, + }; } -// lastValue returns the last value read from the stream, or undefined if no values sent -function lastValue(stream) { - return new Reducer(stream, last, undefined); +function encodeValidatorsParams(params) { + return { + height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.height), + page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page), + per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page), + }; } -exports.lastValue = lastValue; -//# sourceMappingURL=reducer.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/stream/build/valueandupdates.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/stream/build/valueandupdates.js ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ValueAndUpdates = void 0; -const xstream_1 = __webpack_require__(/*! xstream */ "./node_modules/xstream/index.js"); -/** - * A read only wrapper around DefaultValueProducer that allows - * to synchronously get the current value using the .value property - * and listen to to updates by suscribing to the .updates stream - */ -class ValueAndUpdates { - constructor(producer) { - this.producer = producer; - this.updates = xstream_1.MemoryStream.createWithMemory(this.producer); +class Params { + static encodeAbciInfo(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method); } - get value() { - return this.producer.value; + static encodeAbciQuery(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeAbciQueryParams(req.params)); } - /** - * Resolves as soon as search value is found. - * - * @param search either a value or a function that must return true when found - * @returns the value of the update that caused the search match - */ - async waitFor(search) { - const searchImplementation = typeof search === "function" ? search : (value) => value === search; - return new Promise((resolve, reject) => { - const subscription = this.updates.subscribe({ - next: (newValue) => { - if (searchImplementation(newValue)) { - resolve(newValue); - // MemoryStream.subscribe() calls next with the last value. - // Make async to ensure the subscription exists - setTimeout(() => subscription.unsubscribe(), 0); - } - }, - complete: () => { - subscription.unsubscribe(); - reject("Update stream completed without expected value"); - }, - error: (error) => { - reject(error); - }, - }); - }); + static encodeBlock(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params)); } -} -exports.ValueAndUpdates = ValueAndUpdates; -//# sourceMappingURL=valueandupdates.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/arrays.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/arrays.js ***! - \****************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.arrayContentStartsWith = exports.arrayContentEquals = void 0; -/** - * Compares the content of two arrays-like objects for equality. - * - * Equality is defined as having equal length and element values, where element equality means `===` returning `true`. - * - * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type. - * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type. - */ -function arrayContentEquals(a, b) { - if (a.length !== b.length) - return false; - for (let i = 0; i < a.length; ++i) { - if (a[i] !== b[i]) - return false; + static encodeBlockchain(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockchainRequestParams(req.params)); } - return true; -} -exports.arrayContentEquals = arrayContentEquals; -/** - * Checks if `a` starts with the contents of `b`. - * - * This requires equality of the element values, where element equality means `===` returning `true`. - * - * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type. - * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type. - */ -function arrayContentStartsWith(a, b) { - if (a.length < b.length) - return false; - for (let i = 0; i < b.length; ++i) { - if (a[i] !== b[i]) - return false; + static encodeBlockResults(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params)); } - return true; -} -exports.arrayContentStartsWith = arrayContentStartsWith; -//# sourceMappingURL=arrays.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/assert.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/assert.js ***! - \****************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.assertDefinedAndNotNull = exports.assertDefined = exports.assert = void 0; -// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types -function assert(condition, msg) { - if (!condition) { - throw new Error(msg || "condition is not truthy"); + static encodeBlockSearch(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockSearchParams(req.params)); } -} -exports.assert = assert; -function assertDefined(value, msg) { - if (value === undefined) { - throw new Error(msg ?? "value is undefined"); + static encodeBroadcastTx(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBroadcastTxParams(req.params)); } -} -exports.assertDefined = assertDefined; -function assertDefinedAndNotNull(value, msg) { - if (value === undefined || value === null) { - throw new Error(msg ?? "value is undefined or null"); + static encodeCommit(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params)); + } + static encodeGenesis(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method); + } + static encodeHealth(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method); + } + static encodeNumUnconfirmedTxs(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method); + } + static encodeStatus(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method); + } + static encodeSubscribe(req) { + const eventTag = { key: "tm.event", value: req.query.type }; + const query = requests.buildQuery({ tags: [eventTag], raw: req.query.raw }); + return (0, jsonrpc_1.createJsonRpcRequest)("subscribe", { query: query }); + } + static encodeTx(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxParams(req.params)); + } + // TODO: encode params for query string??? + static encodeTxSearch(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxSearchParams(req.params)); + } + static encodeValidators(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeValidatorsParams(req.params)); } } -exports.assertDefinedAndNotNull = assertDefinedAndNotNull; -//# sourceMappingURL=assert.js.map +exports.Params = Params; +//# sourceMappingURL=requests.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/index.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/index.js ***! - \***************************************************************************************/ +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/responses.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/responses.js ***! + \*************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isUint8Array = exports.isNonNullObject = exports.isDefined = exports.sleep = exports.assertDefinedAndNotNull = exports.assertDefined = exports.assert = exports.arrayContentStartsWith = exports.arrayContentEquals = void 0; -var arrays_1 = __webpack_require__(/*! ./arrays */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/arrays.js"); -Object.defineProperty(exports, "arrayContentEquals", ({ enumerable: true, get: function () { return arrays_1.arrayContentEquals; } })); -Object.defineProperty(exports, "arrayContentStartsWith", ({ enumerable: true, get: function () { return arrays_1.arrayContentStartsWith; } })); -var assert_1 = __webpack_require__(/*! ./assert */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/assert.js"); -Object.defineProperty(exports, "assert", ({ enumerable: true, get: function () { return assert_1.assert; } })); -Object.defineProperty(exports, "assertDefined", ({ enumerable: true, get: function () { return assert_1.assertDefined; } })); -Object.defineProperty(exports, "assertDefinedAndNotNull", ({ enumerable: true, get: function () { return assert_1.assertDefinedAndNotNull; } })); -var sleep_1 = __webpack_require__(/*! ./sleep */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/sleep.js"); -Object.defineProperty(exports, "sleep", ({ enumerable: true, get: function () { return sleep_1.sleep; } })); -var typechecks_1 = __webpack_require__(/*! ./typechecks */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/typechecks.js"); -Object.defineProperty(exports, "isDefined", ({ enumerable: true, get: function () { return typechecks_1.isDefined; } })); -Object.defineProperty(exports, "isNonNullObject", ({ enumerable: true, get: function () { return typechecks_1.isNonNullObject; } })); -Object.defineProperty(exports, "isUint8Array", ({ enumerable: true, get: function () { return typechecks_1.isUint8Array; } })); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/sleep.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/sleep.js ***! - \***************************************************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.sleep = void 0; -async function sleep(ms) { - return new Promise((resolve) => setTimeout(resolve, ms)); +exports.Responses = exports.decodeValidatorInfo = exports.decodeValidatorGenesis = exports.decodeValidatorUpdate = exports.decodeEvent = void 0; +/* eslint-disable @typescript-eslint/naming-convention */ +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/utils/build/index.js"); +const dates_1 = __webpack_require__(/*! ../../dates */ "./node_modules/@cosmjs/tendermint-rpc/build/dates.js"); +const inthelpers_1 = __webpack_require__(/*! ../../inthelpers */ "./node_modules/@cosmjs/tendermint-rpc/build/inthelpers.js"); +const types_1 = __webpack_require__(/*! ../../types */ "./node_modules/@cosmjs/tendermint-rpc/build/types.js"); +const encodings_1 = __webpack_require__(/*! ../encodings */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/encodings.js"); +const hasher_1 = __webpack_require__(/*! ../hasher */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/hasher.js"); +function decodeAbciInfo(data) { + return { + data: data.data, + lastBlockHeight: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.last_block_height), + lastBlockAppHash: (0, encodings_1.may)(encoding_1.fromBase64, data.last_block_app_hash), + }; } -exports.sleep = sleep; -//# sourceMappingURL=sleep.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/typechecks.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/@cosmjs/utils/build/typechecks.js ***! - \********************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; -/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isDefined = exports.isUint8Array = exports.isNonNullObject = void 0; -/** - * Checks if data is a non-null object (i.e. matches the TypeScript object type). - * - * Note: this returns true for arrays, which are objects in JavaScript - * even though array and object are different types in JSON. - * - * @see https://www.typescriptlang.org/docs/handbook/basic-types.html#object - */ -// eslint-disable-next-line @typescript-eslint/ban-types -function isNonNullObject(data) { - return typeof data === "object" && data !== null; +function decodeQueryProof(data) { + return { + ops: data.ops.map((op) => ({ + type: op.type, + key: (0, encoding_1.fromBase64)(op.key), + data: (0, encoding_1.fromBase64)(op.data), + })), + }; } -exports.isNonNullObject = isNonNullObject; -/** - * Checks if data is an Uint8Array. Note: Buffer is treated as not a Uint8Array - */ -function isUint8Array(data) { - if (!isNonNullObject(data)) - return false; - // Avoid instanceof check which is unreliable in some JS environments - // https://medium.com/@simonwarta/limitations-of-the-instanceof-operator-f4bcdbe7a400 - // Use check that was discussed in https://github.com/crypto-browserify/pbkdf2/pull/81 - if (Object.prototype.toString.call(data) !== "[object Uint8Array]") - return false; - if (typeof Buffer !== "undefined" && typeof Buffer.isBuffer !== "undefined") { - // Buffer.isBuffer is available at runtime - if (Buffer.isBuffer(data)) - return false; +function decodeAbciQuery(data) { + return { + key: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(data.key ?? "")), + value: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(data.value ?? "")), + proof: (0, encodings_1.may)(decodeQueryProof, data.proofOps), + height: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.height), + code: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.code), + codespace: (0, encodings_1.assertString)(data.codespace ?? ""), + index: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.index), + log: data.log, + info: (0, encodings_1.assertString)(data.info ?? ""), + }; +} +function decodeAttribute(attribute) { + return { + key: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(attribute.key)), + value: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(attribute.value ?? "")), + }; +} +function decodeAttributes(attributes) { + return (0, encodings_1.assertArray)(attributes).map(decodeAttribute); +} +function decodeEvent(event) { + return { + type: event.type, + attributes: event.attributes ? decodeAttributes(event.attributes) : [], + }; +} +exports.decodeEvent = decodeEvent; +function decodeEvents(events) { + return (0, encodings_1.assertArray)(events).map(decodeEvent); +} +function decodeTxData(data) { + return { + code: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNumber)(data.code ?? 0)), + codespace: data.codespace, + log: data.log, + data: (0, encodings_1.may)(encoding_1.fromBase64, data.data), + events: data.events ? decodeEvents(data.events) : [], + gasWanted: (0, inthelpers_1.apiToBigInt)(data.gas_wanted ?? "0"), + gasUsed: (0, inthelpers_1.apiToBigInt)(data.gas_used ?? "0"), + }; +} +function decodePubkey(data) { + if ("Sum" in data) { + // we don't need to check type because we're checking algorithm + const [[algorithm, value]] = Object.entries(data.Sum.value); + (0, utils_1.assert)(algorithm === "ed25519" || algorithm === "secp256k1", `unknown pubkey type: ${algorithm}`); + return { + algorithm, + data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(value)), + }; + } + else { + switch (data.type) { + // go-amino special code + case "tendermint/PubKeyEd25519": + return { + algorithm: "ed25519", + data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)), + }; + case "tendermint/PubKeySecp256k1": + return { + algorithm: "secp256k1", + data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)), + }; + default: + throw new Error(`unknown pubkey type: ${data.type}`); + } } - return true; } -exports.isUint8Array = isUint8Array; /** - * Checks if input is not undefined in a TypeScript-friendly way. + * Note: we do not parse block.time_iota_ms for now because of this CHANGELOG entry * - * This is convenient to use in e.g. `Array.filter` as it will convert - * the type of a `Array` to `Array`. + * > Add time_iota_ms to block's consensus parameters (not exposed to the application) + * https://github.com/tendermint/tendermint/blob/master/CHANGELOG.md#v0310 */ -function isDefined(value) { - return value !== undefined; +function decodeBlockParams(data) { + return { + maxBytes: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_bytes)), + maxGas: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_gas)), + }; } -exports.isDefined = isDefined; -//# sourceMappingURL=typechecks.js.map - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/index.js": -/*!*************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/index.js ***! - \*************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! ./lib/axios */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/axios.js"); - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/adapters/xhr.js": -/*!************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/adapters/xhr.js ***! - \************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/utils.js"); -var settle = __webpack_require__(/*! ./../core/settle */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/settle.js"); -var cookies = __webpack_require__(/*! ./../helpers/cookies */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/cookies.js"); -var buildURL = __webpack_require__(/*! ./../helpers/buildURL */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/buildURL.js"); -var buildFullPath = __webpack_require__(/*! ../core/buildFullPath */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/buildFullPath.js"); -var parseHeaders = __webpack_require__(/*! ./../helpers/parseHeaders */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/parseHeaders.js"); -var isURLSameOrigin = __webpack_require__(/*! ./../helpers/isURLSameOrigin */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/isURLSameOrigin.js"); -var createError = __webpack_require__(/*! ../core/createError */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/createError.js"); - -module.exports = function xhrAdapter(config) { - return new Promise(function dispatchXhrRequest(resolve, reject) { - var requestData = config.data; - var requestHeaders = config.headers; - var responseType = config.responseType; - - if (utils.isFormData(requestData)) { - delete requestHeaders['Content-Type']; // Let the browser set it - } - - var request = new XMLHttpRequest(); - - // HTTP basic authentication - if (config.auth) { - var username = config.auth.username || ''; - var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : ''; - requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password); - } - - var fullPath = buildFullPath(config.baseURL, config.url); - request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); - - // Set the request timeout in MS - request.timeout = config.timeout; - - function onloadend() { - if (!request) { - return; - } - // Prepare the response - var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null; - var responseData = !responseType || responseType === 'text' || responseType === 'json' ? - request.responseText : request.response; - var response = { - data: responseData, - status: request.status, - statusText: request.statusText, - headers: responseHeaders, - config: config, - request: request - }; - - settle(resolve, reject, response); - - // Clean up request - request = null; - } - - if ('onloadend' in request) { - // Use onloadend if available - request.onloadend = onloadend; - } else { - // Listen for ready state to emulate onloadend - request.onreadystatechange = function handleLoad() { - if (!request || request.readyState !== 4) { - return; - } - - // The request errored out and we didn't get a response, this will be - // handled by onerror instead - // With one exception: request that using file: protocol, most browsers - // will return status as 0 even though it's a successful request - if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { - return; - } - // readystate handler is calling before onerror or ontimeout handlers, - // so we should call onloadend on the next 'tick' - setTimeout(onloadend); - }; - } - - // Handle browser request cancellation (as opposed to a manual cancellation) - request.onabort = function handleAbort() { - if (!request) { - return; - } - - reject(createError('Request aborted', config, 'ECONNABORTED', request)); - - // Clean up request - request = null; +function decodeEvidenceParams(data) { + return { + maxAgeNumBlocks: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_age_num_blocks)), + maxAgeDuration: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_age_duration)), }; - - // Handle low level network errors - request.onerror = function handleError() { - // Real errors are hidden from us by the browser - // onerror should only fire if it's a network error - reject(createError('Network Error', config, null, request)); - - // Clean up request - request = null; +} +function decodeConsensusParams(data) { + return { + block: decodeBlockParams((0, encodings_1.assertObject)(data.block)), + evidence: decodeEvidenceParams((0, encodings_1.assertObject)(data.evidence)), }; - - // Handle timeout - request.ontimeout = function handleTimeout() { - var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded'; - if (config.timeoutErrorMessage) { - timeoutErrorMessage = config.timeoutErrorMessage; - } - reject(createError( - timeoutErrorMessage, - config, - config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED', - request)); - - // Clean up request - request = null; +} +function decodeValidatorUpdate(data) { + return { + pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)), + votingPower: (0, inthelpers_1.apiToBigInt)(data.power ?? "0"), }; - - // Add xsrf header - // This is only done if running in a standard browser environment. - // Specifically not if we're in a web worker, or react-native. - if (utils.isStandardBrowserEnv()) { - // Add xsrf header - var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? - cookies.read(config.xsrfCookieName) : - undefined; - - if (xsrfValue) { - requestHeaders[config.xsrfHeaderName] = xsrfValue; - } +} +exports.decodeValidatorUpdate = decodeValidatorUpdate; +function decodeBlockResults(data) { + return { + height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), + results: (data.txs_results || []).map(decodeTxData), + validatorUpdates: (data.validator_updates || []).map(decodeValidatorUpdate), + consensusUpdates: (0, encodings_1.may)(decodeConsensusParams, data.consensus_param_updates), + beginBlockEvents: decodeEvents(data.begin_block_events || []), + endBlockEvents: decodeEvents(data.end_block_events || []), + }; +} +function decodeBlockId(data) { + return { + hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)), + parts: { + total: (0, encodings_1.assertNotEmpty)(data.parts.total), + hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.parts.hash)), + }, + }; +} +function decodeBlockVersion(data) { + return { + block: (0, inthelpers_1.apiToSmallInt)(data.block), + app: (0, inthelpers_1.apiToSmallInt)(data.app ?? 0), + }; +} +function decodeHeader(data) { + return { + version: decodeBlockVersion(data.version), + chainId: (0, encodings_1.assertNotEmpty)(data.chain_id), + height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), + time: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.time)), + // When there is no last block ID (i.e. this block's height is 1), we get an empty structure like this: + // { hash: '', parts: { total: 0, hash: '' } } + lastBlockId: data.last_block_id.hash ? decodeBlockId(data.last_block_id) : null, + lastCommitHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_commit_hash)), + dataHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.data_hash)), + validatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.validators_hash)), + nextValidatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.next_validators_hash)), + consensusHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.consensus_hash)), + appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)), + lastResultsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_results_hash)), + evidenceHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.evidence_hash)), + proposerAddress: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.proposer_address)), + }; +} +function decodeBlockMeta(data) { + return { + blockId: decodeBlockId(data.block_id), + blockSize: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.block_size)), + header: decodeHeader(data.header), + numTxs: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.num_txs)), + }; +} +function decodeBlockchain(data) { + return { + lastHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.last_height)), + blockMetas: (0, encodings_1.assertArray)(data.block_metas).map(decodeBlockMeta), + }; +} +function decodeBroadcastTxSync(data) { + return { + ...decodeTxData(data), + hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)), + }; +} +function decodeBroadcastTxCommit(data) { + return { + height: (0, inthelpers_1.apiToSmallInt)(data.height), + hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)), + checkTx: decodeTxData((0, encodings_1.assertObject)(data.check_tx)), + deliverTx: (0, encodings_1.may)(decodeTxData, data.deliver_tx), + }; +} +function decodeBlockIdFlag(blockIdFlag) { + (0, utils_1.assert)(blockIdFlag in types_1.BlockIdFlag); + return blockIdFlag; +} +function decodeCommitSignature(data) { + return { + blockIdFlag: decodeBlockIdFlag(data.block_id_flag), + validatorAddress: data.validator_address ? (0, encoding_1.fromHex)(data.validator_address) : undefined, + timestamp: data.timestamp ? (0, dates_1.fromRfc3339WithNanoseconds)(data.timestamp) : undefined, + signature: data.signature ? (0, encoding_1.fromBase64)(data.signature) : undefined, + }; +} +function decodeCommit(data) { + return { + blockId: decodeBlockId((0, encodings_1.assertObject)(data.block_id)), + height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), + round: (0, inthelpers_1.apiToSmallInt)(data.round), + signatures: (0, encodings_1.assertArray)(data.signatures).map(decodeCommitSignature), + }; +} +function decodeCommitResponse(data) { + return { + canonical: (0, encodings_1.assertBoolean)(data.canonical), + header: decodeHeader(data.signed_header.header), + commit: decodeCommit(data.signed_header.commit), + }; +} +function decodeValidatorGenesis(data) { + return { + address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)), + pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)), + votingPower: (0, inthelpers_1.apiToBigInt)((0, encodings_1.assertNotEmpty)(data.power)), + }; +} +exports.decodeValidatorGenesis = decodeValidatorGenesis; +function decodeGenesis(data) { + return { + genesisTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.genesis_time)), + chainId: (0, encodings_1.assertNotEmpty)(data.chain_id), + consensusParams: decodeConsensusParams(data.consensus_params), + validators: data.validators ? (0, encodings_1.assertArray)(data.validators).map(decodeValidatorGenesis) : [], + appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)), + appState: data.app_state, + }; +} +function decodeValidatorInfo(data) { + return { + pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)), + votingPower: (0, inthelpers_1.apiToBigInt)((0, encodings_1.assertNotEmpty)(data.voting_power)), + address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)), + proposerPriority: data.proposer_priority ? (0, inthelpers_1.apiToSmallInt)(data.proposer_priority) : undefined, + }; +} +exports.decodeValidatorInfo = decodeValidatorInfo; +function decodeNodeInfo(data) { + return { + id: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.id)), + listenAddr: (0, encodings_1.assertNotEmpty)(data.listen_addr), + network: (0, encodings_1.assertNotEmpty)(data.network), + version: (0, encodings_1.assertString)(data.version), + channels: (0, encodings_1.assertNotEmpty)(data.channels), + moniker: (0, encodings_1.assertNotEmpty)(data.moniker), + other: (0, encodings_1.dictionaryToStringMap)(data.other), + protocolVersion: { + app: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.app)), + block: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.block)), + p2p: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.p2p)), + }, + }; +} +function decodeSyncInfo(data) { + const earliestBlockHeight = data.earliest_block_height + ? (0, inthelpers_1.apiToSmallInt)(data.earliest_block_height) + : undefined; + const earliestBlockTime = data.earliest_block_time + ? (0, dates_1.fromRfc3339WithNanoseconds)(data.earliest_block_time) + : undefined; + return { + earliestAppHash: data.earliest_app_hash ? (0, encoding_1.fromHex)(data.earliest_app_hash) : undefined, + earliestBlockHash: data.earliest_block_hash ? (0, encoding_1.fromHex)(data.earliest_block_hash) : undefined, + earliestBlockHeight: earliestBlockHeight || undefined, + earliestBlockTime: earliestBlockTime?.getTime() ? earliestBlockTime : undefined, + latestBlockHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_block_hash)), + latestAppHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_app_hash)), + latestBlockTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.latest_block_time)), + latestBlockHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.latest_block_height)), + catchingUp: (0, encodings_1.assertBoolean)(data.catching_up), + }; +} +function decodeStatus(data) { + return { + nodeInfo: decodeNodeInfo(data.node_info), + syncInfo: decodeSyncInfo(data.sync_info), + validatorInfo: decodeValidatorInfo(data.validator_info), + }; +} +function decodeTxProof(data) { + return { + data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.data)), + rootHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.root_hash)), + proof: { + total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.proof.total)), + index: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.proof.index)), + leafHash: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.proof.leaf_hash)), + aunts: (0, encodings_1.assertArray)(data.proof.aunts).map(encoding_1.fromBase64), + }, + }; +} +function decodeTxResponse(data) { + return { + tx: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx)), + result: decodeTxData((0, encodings_1.assertObject)(data.tx_result)), + height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), + index: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNumber)(data.index)), + hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)), + proof: (0, encodings_1.may)(decodeTxProof, data.proof), + }; +} +function decodeTxSearch(data) { + return { + totalCount: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_count)), + txs: (0, encodings_1.assertArray)(data.txs).map(decodeTxResponse), + }; +} +function decodeTxEvent(data) { + const tx = (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx)); + return { + tx: tx, + hash: (0, hasher_1.hashTx)(tx), + result: decodeTxData(data.result), + height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), + }; +} +function decodeValidators(data) { + return { + blockHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.block_height)), + validators: (0, encodings_1.assertArray)(data.validators).map(decodeValidatorInfo), + count: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.count)), + total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total)), + }; +} +function decodeBlock(data) { + return { + header: decodeHeader((0, encodings_1.assertObject)(data.header)), + // For the block at height 1, last commit is not set. This is represented in an empty object like this: + // { height: '0', round: 0, block_id: { hash: '', parts: [Object] }, signatures: [] } + lastCommit: data.last_commit.block_id.hash ? decodeCommit((0, encodings_1.assertObject)(data.last_commit)) : null, + txs: data.data.txs ? (0, encodings_1.assertArray)(data.data.txs).map(encoding_1.fromBase64) : [], + // Lift up .evidence.evidence to just .evidence + // See https://github.com/tendermint/tendermint/issues/7697 + evidence: data.evidence?.evidence ?? [], + }; +} +function decodeBlockResponse(data) { + return { + blockId: decodeBlockId(data.block_id), + block: decodeBlock(data.block), + }; +} +function decodeBlockSearch(data) { + return { + totalCount: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_count)), + blocks: (0, encodings_1.assertArray)(data.blocks).map(decodeBlockResponse), + }; +} +function decodeNumUnconfirmedTxs(data) { + return { + total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total)), + totalBytes: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_bytes)), + }; +} +class Responses { + static decodeAbciInfo(response) { + return decodeAbciInfo((0, encodings_1.assertObject)(response.result.response)); + } + static decodeAbciQuery(response) { + return decodeAbciQuery((0, encodings_1.assertObject)(response.result.response)); } - - // Add headers to the request - if ('setRequestHeader' in request) { - utils.forEach(requestHeaders, function setRequestHeader(val, key) { - if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') { - // Remove Content-Type if data is undefined - delete requestHeaders[key]; - } else { - // Otherwise add header to the request - request.setRequestHeader(key, val); - } - }); + static decodeBlock(response) { + return decodeBlockResponse(response.result); } - - // Add withCredentials to request if needed - if (!utils.isUndefined(config.withCredentials)) { - request.withCredentials = !!config.withCredentials; + static decodeBlockResults(response) { + return decodeBlockResults(response.result); } - - // Add responseType to request if needed - if (responseType && responseType !== 'json') { - request.responseType = config.responseType; + static decodeBlockSearch(response) { + return decodeBlockSearch(response.result); } - - // Handle progress if needed - if (typeof config.onDownloadProgress === 'function') { - request.addEventListener('progress', config.onDownloadProgress); + static decodeBlockchain(response) { + return decodeBlockchain(response.result); } - - // Not all browsers support upload events - if (typeof config.onUploadProgress === 'function' && request.upload) { - request.upload.addEventListener('progress', config.onUploadProgress); + static decodeBroadcastTxSync(response) { + return decodeBroadcastTxSync(response.result); } - - if (config.cancelToken) { - // Handle cancellation - config.cancelToken.promise.then(function onCanceled(cancel) { - if (!request) { - return; - } - - request.abort(); - reject(cancel); - // Clean up request - request = null; - }); + static decodeBroadcastTxAsync(response) { + return Responses.decodeBroadcastTxSync(response); } - - if (!requestData) { - requestData = null; + static decodeBroadcastTxCommit(response) { + return decodeBroadcastTxCommit(response.result); } - - // Send the request - request.send(requestData); - }); -}; - + static decodeCommit(response) { + return decodeCommitResponse(response.result); + } + static decodeGenesis(response) { + return decodeGenesis((0, encodings_1.assertObject)(response.result.genesis)); + } + static decodeHealth() { + return null; + } + static decodeNumUnconfirmedTxs(response) { + return decodeNumUnconfirmedTxs(response.result); + } + static decodeStatus(response) { + return decodeStatus(response.result); + } + static decodeNewBlockEvent(event) { + return decodeBlock(event.data.value.block); + } + static decodeNewBlockHeaderEvent(event) { + return decodeHeader(event.data.value.header); + } + static decodeTxEvent(event) { + return decodeTxEvent(event.data.value.TxResult); + } + static decodeTx(response) { + return decodeTxResponse(response.result); + } + static decodeTxSearch(response) { + return decodeTxSearch(response.result); + } + static decodeValidators(response) { + return decodeValidators(response.result); + } +} +exports.Responses = Responses; +//# sourceMappingURL=responses.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/axios.js": +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/encodings.js": /*!*****************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/axios.js ***! + !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/encodings.js ***! \*****************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -var utils = __webpack_require__(/*! ./utils */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/utils.js"); -var bind = __webpack_require__(/*! ./helpers/bind */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/bind.js"); -var Axios = __webpack_require__(/*! ./core/Axios */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/Axios.js"); -var mergeConfig = __webpack_require__(/*! ./core/mergeConfig */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/mergeConfig.js"); -var defaults = __webpack_require__(/*! ./defaults */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/defaults.js"); - -/** - * Create an instance of Axios - * - * @param {Object} defaultConfig The default config for the instance - * @return {Axios} A new instance of Axios - */ -function createInstance(defaultConfig) { - var context = new Axios(defaultConfig); - var instance = bind(Axios.prototype.request, context); - - // Copy axios.prototype to instance - utils.extend(instance, Axios.prototype, context); - - // Copy context to instance - utils.extend(instance, context); - - return instance; -} - -// Create the default instance to be exported -var axios = createInstance(defaults); - -// Expose Axios class to allow class inheritance -axios.Axios = Axios; - -// Factory for creating new instances -axios.create = function create(instanceConfig) { - return createInstance(mergeConfig(axios.defaults, instanceConfig)); -}; - -// Expose Cancel & CancelToken -axios.Cancel = __webpack_require__(/*! ./cancel/Cancel */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/cancel/Cancel.js"); -axios.CancelToken = __webpack_require__(/*! ./cancel/CancelToken */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/cancel/CancelToken.js"); -axios.isCancel = __webpack_require__(/*! ./cancel/isCancel */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/cancel/isCancel.js"); - -// Expose all/spread -axios.all = function all(promises) { - return Promise.all(promises); -}; -axios.spread = __webpack_require__(/*! ./helpers/spread */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/spread.js"); - -// Expose isAxiosError -axios.isAxiosError = __webpack_require__(/*! ./helpers/isAxiosError */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/isAxiosError.js"); - -module.exports = axios; - -// Allow use of default import syntax in TypeScript -module.exports["default"] = axios; - - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/cancel/Cancel.js": -/*!*************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/cancel/Cancel.js ***! - \*************************************************************************************/ -/***/ (function(module) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; - +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.encodeBlockId = exports.encodeVersion = exports.encodeBytes = exports.encodeTime = exports.encodeUvarint = exports.encodeString = exports.dictionaryToStringMap = exports.may = exports.assertNotEmpty = exports.assertObject = exports.assertArray = exports.assertNumber = exports.assertString = exports.assertBoolean = exports.assertSet = void 0; +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); /** - * A `Cancel` is an object that is thrown when an operation is canceled. + * A runtime checker that ensures a given value is set (i.e. not undefined or null) * - * @class - * @param {string=} message The message. + * This is used when you want to verify that data at runtime matches the expected type. */ -function Cancel(message) { - this.message = message; +function assertSet(value) { + if (value === undefined) { + throw new Error("Value must not be undefined"); + } + if (value === null) { + throw new Error("Value must not be null"); + } + return value; } - -Cancel.prototype.toString = function toString() { - return 'Cancel' + (this.message ? ': ' + this.message : ''); -}; - -Cancel.prototype.__CANCEL__ = true; - -module.exports = Cancel; - - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/cancel/CancelToken.js": -/*!******************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/cancel/CancelToken.js ***! - \******************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -var Cancel = __webpack_require__(/*! ./Cancel */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/cancel/Cancel.js"); - +exports.assertSet = assertSet; /** - * A `CancelToken` is an object that can be used to request cancellation of an operation. + * A runtime checker that ensures a given value is a boolean * - * @class - * @param {Function} executor The executor function. + * This is used when you want to verify that data at runtime matches the expected type. + * This implies assertSet. */ -function CancelToken(executor) { - if (typeof executor !== 'function') { - throw new TypeError('executor must be a function.'); - } - - var resolvePromise; - this.promise = new Promise(function promiseExecutor(resolve) { - resolvePromise = resolve; - }); - - var token = this; - executor(function cancel(message) { - if (token.reason) { - // Cancellation has already been requested - return; +function assertBoolean(value) { + assertSet(value); + if (typeof value !== "boolean") { + throw new Error("Value must be a boolean"); } - - token.reason = new Cancel(message); - resolvePromise(token.reason); - }); + return value; } - -/** - * Throws a `Cancel` if cancellation has been requested. - */ -CancelToken.prototype.throwIfRequested = function throwIfRequested() { - if (this.reason) { - throw this.reason; - } -}; - -/** - * Returns an object that contains a new `CancelToken` and a function that, when called, - * cancels the `CancelToken`. - */ -CancelToken.source = function source() { - var cancel; - var token = new CancelToken(function executor(c) { - cancel = c; - }); - return { - token: token, - cancel: cancel - }; -}; - -module.exports = CancelToken; - - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/cancel/isCancel.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/cancel/isCancel.js ***! - \***************************************************************************************/ -/***/ (function(module) { - -"use strict"; - - -module.exports = function isCancel(value) { - return !!(value && value.__CANCEL__); -}; - - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/Axios.js": -/*!**********************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/Axios.js ***! - \**********************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/utils.js"); -var buildURL = __webpack_require__(/*! ../helpers/buildURL */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/buildURL.js"); -var InterceptorManager = __webpack_require__(/*! ./InterceptorManager */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/InterceptorManager.js"); -var dispatchRequest = __webpack_require__(/*! ./dispatchRequest */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/dispatchRequest.js"); -var mergeConfig = __webpack_require__(/*! ./mergeConfig */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/mergeConfig.js"); -var validator = __webpack_require__(/*! ../helpers/validator */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/validator.js"); - -var validators = validator.validators; +exports.assertBoolean = assertBoolean; /** - * Create a new instance of Axios + * A runtime checker that ensures a given value is a string. * - * @param {Object} instanceConfig The default config for the instance + * This is used when you want to verify that data at runtime matches the expected type. + * This implies assertSet. */ -function Axios(instanceConfig) { - this.defaults = instanceConfig; - this.interceptors = { - request: new InterceptorManager(), - response: new InterceptorManager() - }; +function assertString(value) { + assertSet(value); + if (typeof value !== "string") { + throw new Error("Value must be a string"); + } + return value; } - +exports.assertString = assertString; /** - * Dispatch a request + * A runtime checker that ensures a given value is a number * - * @param {Object} config The config specific for this request (merged with this.defaults) + * This is used when you want to verify that data at runtime matches the expected type. + * This implies assertSet. */ -Axios.prototype.request = function request(config) { - /*eslint no-param-reassign:0*/ - // Allow for axios('example/url'[, config]) a la fetch API - if (typeof config === 'string') { - config = arguments[1] || {}; - config.url = arguments[0]; - } else { - config = config || {}; - } - - config = mergeConfig(this.defaults, config); - - // Set config.method - if (config.method) { - config.method = config.method.toLowerCase(); - } else if (this.defaults.method) { - config.method = this.defaults.method.toLowerCase(); - } else { - config.method = 'get'; - } - - var transitional = config.transitional; - - if (transitional !== undefined) { - validator.assertOptions(transitional, { - silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'), - forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'), - clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0') - }, false); - } - - // filter out skipped interceptors - var requestInterceptorChain = []; - var 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); - }); - - var responseInterceptorChain = []; - this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { - responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); - }); - - var promise; - - if (!synchronousRequestInterceptors) { - var chain = [dispatchRequest, undefined]; - - Array.prototype.unshift.apply(chain, requestInterceptorChain); - chain = chain.concat(responseInterceptorChain); - - promise = Promise.resolve(config); - while (chain.length) { - promise = promise.then(chain.shift(), chain.shift()); - } - - return promise; - } - - - var newConfig = config; - while (requestInterceptorChain.length) { - var onFulfilled = requestInterceptorChain.shift(); - var onRejected = requestInterceptorChain.shift(); - try { - newConfig = onFulfilled(newConfig); - } catch (error) { - onRejected(error); - break; +function assertNumber(value) { + assertSet(value); + if (typeof value !== "number") { + throw new Error("Value must be a number"); } - } - - try { - promise = dispatchRequest(newConfig); - } catch (error) { - return Promise.reject(error); - } - - while (responseInterceptorChain.length) { - promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift()); - } - - return promise; -}; - -Axios.prototype.getUri = function getUri(config) { - config = mergeConfig(this.defaults, config); - return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, ''); -}; - -// Provide aliases for supported request methods -utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { - /*eslint func-names:0*/ - Axios.prototype[method] = function(url, config) { - return this.request(mergeConfig(config || {}, { - method: method, - url: url, - data: (config || {}).data - })); - }; -}); - -utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { - /*eslint func-names:0*/ - Axios.prototype[method] = function(url, data, config) { - return this.request(mergeConfig(config || {}, { - method: method, - url: url, - data: data - })); - }; -}); - -module.exports = Axios; - - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/InterceptorManager.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/InterceptorManager.js ***! - \***********************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/utils.js"); - -function InterceptorManager() { - this.handlers = []; + return value; } - -/** - * 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 - */ -InterceptorManager.prototype.use = function use(fulfilled, rejected, options) { - this.handlers.push({ - fulfilled: fulfilled, - rejected: 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` - */ -InterceptorManager.prototype.eject = function eject(id) { - if (this.handlers[id]) { - this.handlers[id] = null; - } -}; - +exports.assertNumber = assertNumber; /** - * Iterate over all the registered interceptors - * - * This method is particularly useful for skipping over any - * interceptors that may have become `null` calling `eject`. + * A runtime checker that ensures a given value is an array * - * @param {Function} fn The function to call for each interceptor + * This is used when you want to verify that data at runtime matches the expected type. + * This implies assertSet. */ -InterceptorManager.prototype.forEach = function forEach(fn) { - utils.forEach(this.handlers, function forEachHandler(h) { - if (h !== null) { - fn(h); +function assertArray(value) { + assertSet(value); + if (!Array.isArray(value)) { + throw new Error("Value must be a an array"); } - }); -}; - -module.exports = InterceptorManager; - - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/buildFullPath.js": -/*!******************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/buildFullPath.js ***! - \******************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -var isAbsoluteURL = __webpack_require__(/*! ../helpers/isAbsoluteURL */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/isAbsoluteURL.js"); -var combineURLs = __webpack_require__(/*! ../helpers/combineURLs */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/combineURLs.js"); - -/** - * Creates a new URL by combining the baseURL with the requestedURL, - * only when the requestedURL is not already an absolute URL. - * If the requestURL is absolute, this function returns the requestedURL untouched. - * - * @param {string} baseURL The base URL - * @param {string} requestedURL Absolute or relative URL to combine - * @returns {string} The combined full path - */ -module.exports = function buildFullPath(baseURL, requestedURL) { - if (baseURL && !isAbsoluteURL(requestedURL)) { - return combineURLs(baseURL, requestedURL); - } - return requestedURL; -}; - - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/createError.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/createError.js ***! - \****************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -var enhanceError = __webpack_require__(/*! ./enhanceError */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/enhanceError.js"); - -/** - * Create an Error with the specified message, config, error code, request and response. - * - * @param {string} message The error message. - * @param {Object} config The config. - * @param {string} [code] The error code (for example, 'ECONNABORTED'). - * @param {Object} [request] The request. - * @param {Object} [response] The response. - * @returns {Error} The created error. - */ -module.exports = function createError(message, config, code, request, response) { - var error = new Error(message); - return enhanceError(error, config, code, request, response); -}; - - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/dispatchRequest.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/dispatchRequest.js ***! - \********************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/utils.js"); -var transformData = __webpack_require__(/*! ./transformData */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/transformData.js"); -var isCancel = __webpack_require__(/*! ../cancel/isCancel */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/cancel/isCancel.js"); -var defaults = __webpack_require__(/*! ../defaults */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/defaults.js"); - -/** - * Throws a `Cancel` if cancellation has been requested. - */ -function throwIfCancellationRequested(config) { - if (config.cancelToken) { - config.cancelToken.throwIfRequested(); - } + return value; } - +exports.assertArray = assertArray; /** - * Dispatch a request to the server using the configured adapter. + * A runtime checker that ensures a given value is an object in the sense of JSON + * (an unordered collection of key–value pairs where the keys are strings) * - * @param {object} config The config that is to be used for the request - * @returns {Promise} The Promise to be fulfilled + * This is used when you want to verify that data at runtime matches the expected type. + * This implies assertSet. */ -module.exports = function dispatchRequest(config) { - throwIfCancellationRequested(config); - - // Ensure headers exist - config.headers = config.headers || {}; - - // Transform request data - config.data = transformData.call( - config, - config.data, - config.headers, - config.transformRequest - ); - - // Flatten headers - config.headers = utils.merge( - config.headers.common || {}, - config.headers[config.method] || {}, - config.headers - ); - - utils.forEach( - ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], - function cleanHeaderConfig(method) { - delete config.headers[method]; +function assertObject(value) { + assertSet(value); + if (typeof value !== "object") { + throw new Error("Value must be an object"); } - ); - - var adapter = config.adapter || defaults.adapter; - - return adapter(config).then(function onAdapterResolution(response) { - throwIfCancellationRequested(config); - - // Transform response data - response.data = transformData.call( - config, - response.data, - response.headers, - config.transformResponse - ); - - return response; - }, function onAdapterRejection(reason) { - if (!isCancel(reason)) { - throwIfCancellationRequested(config); - - // Transform response data - if (reason && reason.response) { - reason.response.data = transformData.call( - config, - reason.response.data, - reason.response.headers, - config.transformResponse - ); - } + // Exclude special kind of objects like Array, Date or Uint8Array + // Object.prototype.toString() returns a specified value: + // http://www.ecma-international.org/ecma-262/7.0/index.html#sec-object.prototype.tostring + if (Object.prototype.toString.call(value) !== "[object Object]") { + throw new Error("Value must be a simple object"); } - - return Promise.reject(reason); - }); -}; - - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/enhanceError.js": -/*!*****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/enhanceError.js ***! - \*****************************************************************************************/ -/***/ (function(module) { - -"use strict"; - - + return value; +} +exports.assertObject = assertObject; /** - * Update an Error with the specified config, error code, and response. + * Throws an error if value matches the empty value for the + * given type (array/string of length 0, number of value 0, ...) * - * @param {Error} error The error to update. - * @param {Object} config The config. - * @param {string} [code] The error code (for example, 'ECONNABORTED'). - * @param {Object} [request] The request. - * @param {Object} [response] The response. - * @returns {Error} The error. - */ -module.exports = function enhanceError(error, config, code, request, response) { - error.config = config; - if (code) { - error.code = code; - } - - error.request = request; - error.response = response; - error.isAxiosError = true; - - error.toJSON = function toJSON() { - 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: this.config, - code: this.code - }; - }; - return error; -}; - - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/mergeConfig.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/mergeConfig.js ***! - \****************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -var utils = __webpack_require__(/*! ../utils */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/utils.js"); - -/** - * Config-specific merge-function which creates a new config-object - * by merging two configuration objects together. + * Otherwise returns the value. * - * @param {Object} config1 - * @param {Object} config2 - * @returns {Object} New object resulting from merging config2 to config1 + * This implies assertSet */ -module.exports = function mergeConfig(config1, config2) { - // eslint-disable-next-line no-param-reassign - config2 = config2 || {}; - var config = {}; - - var valueFromConfig2Keys = ['url', 'method', 'data']; - var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params']; - var defaultToConfig2Keys = [ - 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', - 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', - 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress', - 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent', - 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding' - ]; - var directMergeKeys = ['validateStatus']; - - function getMergedValue(target, source) { - if (utils.isPlainObject(target) && utils.isPlainObject(source)) { - return utils.merge(target, source); - } else if (utils.isPlainObject(source)) { - return utils.merge({}, source); - } else if (utils.isArray(source)) { - return source.slice(); - } - return source; - } - - function mergeDeepProperties(prop) { - if (!utils.isUndefined(config2[prop])) { - config[prop] = getMergedValue(config1[prop], config2[prop]); - } else if (!utils.isUndefined(config1[prop])) { - config[prop] = getMergedValue(undefined, config1[prop]); - } - } - - utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) { - if (!utils.isUndefined(config2[prop])) { - config[prop] = getMergedValue(undefined, config2[prop]); +function assertNotEmpty(value) { + assertSet(value); + if (typeof value === "number" && value === 0) { + throw new Error("must provide a non-zero value"); } - }); - - utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties); - - utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) { - if (!utils.isUndefined(config2[prop])) { - config[prop] = getMergedValue(undefined, config2[prop]); - } else if (!utils.isUndefined(config1[prop])) { - config[prop] = getMergedValue(undefined, config1[prop]); + else if (value.length === 0) { + throw new Error("must provide a non-empty value"); } - }); - - utils.forEach(directMergeKeys, function merge(prop) { - if (prop in config2) { - config[prop] = getMergedValue(config1[prop], config2[prop]); - } else if (prop in config1) { - config[prop] = getMergedValue(undefined, config1[prop]); + return value; +} +exports.assertNotEmpty = assertNotEmpty; +// may will run the transform if value is defined, otherwise returns undefined +function may(transform, value) { + return value === undefined || value === null ? undefined : transform(value); +} +exports.may = may; +function dictionaryToStringMap(obj) { + const out = new Map(); + for (const key of Object.keys(obj)) { + const value = obj[key]; + if (typeof value !== "string") { + throw new Error("Found dictionary value of type other than string"); + } + out.set(key, value); } - }); - - var axiosKeys = valueFromConfig2Keys - .concat(mergeDeepPropertiesKeys) - .concat(defaultToConfig2Keys) - .concat(directMergeKeys); - - var otherKeys = Object - .keys(config1) - .concat(Object.keys(config2)) - .filter(function filterAxiosKeys(key) { - return axiosKeys.indexOf(key) === -1; - }); - - utils.forEach(otherKeys, mergeDeepProperties); - - return config; -}; - - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/settle.js": -/*!***********************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/settle.js ***! - \***********************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -var createError = __webpack_require__(/*! ./createError */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/createError.js"); - -/** - * Resolve or reject a Promise based on response status. - * - * @param {Function} resolve A function that resolves the promise. - * @param {Function} reject A function that rejects the promise. - * @param {object} response The response. - */ -module.exports = function settle(resolve, reject, response) { - var validateStatus = response.config.validateStatus; - if (!response.status || !validateStatus || validateStatus(response.status)) { - resolve(response); - } else { - reject(createError( - 'Request failed with status code ' + response.status, - response.config, - null, - response.request, - response - )); - } -}; - - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/transformData.js": -/*!******************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/transformData.js ***! - \******************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/utils.js"); -var defaults = __webpack_require__(/*! ./../defaults */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/defaults.js"); - -/** - * Transform the data for a request or a response - * - * @param {Object|String} data The data to be transformed - * @param {Array} headers The headers for the request or response - * @param {Array|Function} fns A single function or Array of functions - * @returns {*} The resulting transformed data - */ -module.exports = function transformData(data, headers, fns) { - var context = this || defaults; - /*eslint no-param-reassign:0*/ - utils.forEach(fns, function transform(fn) { - data = fn.call(context, data, headers); - }); - - return data; -}; - + return out; +} +exports.dictionaryToStringMap = dictionaryToStringMap; +// Encodings needed for hashing block headers +// Several of these functions are inspired by https://github.com/nomic-io/js-tendermint/blob/tendermint-0.30/src/ +// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L193-L195 +function encodeString(s) { + const utf8 = (0, encoding_1.toUtf8)(s); + return Uint8Array.from([utf8.length, ...utf8]); +} +exports.encodeString = encodeString; +// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L79-L87 +function encodeUvarint(n) { + return n >= 0x80 + ? // eslint-disable-next-line no-bitwise + Uint8Array.from([(n & 0xff) | 0x80, ...encodeUvarint(n >> 7)]) + : // eslint-disable-next-line no-bitwise + Uint8Array.from([n & 0xff]); +} +exports.encodeUvarint = encodeUvarint; +// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L134-L178 +function encodeTime(time) { + const milliseconds = time.getTime(); + const seconds = Math.floor(milliseconds / 1000); + const secondsArray = seconds ? [0x08, ...encodeUvarint(seconds)] : new Uint8Array(); + const nanoseconds = (time.nanoseconds || 0) + (milliseconds % 1000) * 1e6; + const nanosecondsArray = nanoseconds ? [0x10, ...encodeUvarint(nanoseconds)] : new Uint8Array(); + return Uint8Array.from([...secondsArray, ...nanosecondsArray]); +} +exports.encodeTime = encodeTime; +// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L180-L187 +function encodeBytes(bytes) { + // Since we're only dealing with short byte arrays we don't need a full VarBuffer implementation yet + if (bytes.length >= 0x80) + throw new Error("Not implemented for byte arrays of length 128 or more"); + return bytes.length ? Uint8Array.from([bytes.length, ...bytes]) : new Uint8Array(); +} +exports.encodeBytes = encodeBytes; +function encodeVersion(version) { + const blockArray = version.block + ? Uint8Array.from([0x08, ...encodeUvarint(version.block)]) + : new Uint8Array(); + const appArray = version.app ? Uint8Array.from([0x10, ...encodeUvarint(version.app)]) : new Uint8Array(); + return Uint8Array.from([...blockArray, ...appArray]); +} +exports.encodeVersion = encodeVersion; +function encodeBlockId(blockId) { + return Uint8Array.from([ + 0x0a, + blockId.hash.length, + ...blockId.hash, + 0x12, + blockId.parts.hash.length + 4, + 0x08, + blockId.parts.total, + 0x12, + blockId.parts.hash.length, + ...blockId.parts.hash, + ]); +} +exports.encodeBlockId = encodeBlockId; +//# sourceMappingURL=encodings.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/defaults.js": -/*!********************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/defaults.js ***! - \********************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/hasher.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/hasher.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; - -var utils = __webpack_require__(/*! ./utils */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/utils.js"); -var normalizeHeaderName = __webpack_require__(/*! ./helpers/normalizeHeaderName */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/normalizeHeaderName.js"); -var enhanceError = __webpack_require__(/*! ./core/enhanceError */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/core/enhanceError.js"); - -var DEFAULT_CONTENT_TYPE = { - 'Content-Type': 'application/x-www-form-urlencoded' -}; - -function setContentTypeIfUnset(headers, value) { - if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) { - headers['Content-Type'] = value; - } +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.hashBlock = exports.hashTx = void 0; +const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/crypto/build/index.js"); +const encodings_1 = __webpack_require__(/*! ./encodings */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/encodings.js"); +// hash is sha256 +// https://github.com/tendermint/tendermint/blob/master/UPGRADING.md#v0260 +function hashTx(tx) { + return (0, crypto_1.sha256)(tx); } - -function getDefaultAdapter() { - var adapter; - if (typeof XMLHttpRequest !== 'undefined') { - // For browsers use XHR adapter - adapter = __webpack_require__(/*! ./adapters/xhr */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/adapters/xhr.js"); - } else if ( true && Object.prototype.toString.call(({"env":{"NODE_ENV":"production"}})) === '[object process]') { - // For node use HTTP adapter - adapter = __webpack_require__(/*! ./adapters/http */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/adapters/xhr.js"); - } - return adapter; +exports.hashTx = hashTx; +function getSplitPoint(n) { + if (n < 1) + throw new Error("Cannot split an empty tree"); + const largestPowerOf2 = 2 ** Math.floor(Math.log2(n)); + return largestPowerOf2 < n ? largestPowerOf2 : largestPowerOf2 / 2; } - -function stringifySafely(rawValue, parser, encoder) { - if (utils.isString(rawValue)) { - try { - (parser || JSON.parse)(rawValue); - return utils.trim(rawValue); - } catch (e) { - if (e.name !== 'SyntaxError') { - throw e; - } - } - } - - return (encoder || JSON.stringify)(rawValue); +function hashLeaf(leaf) { + const hash = new crypto_1.Sha256(Uint8Array.from([0])); + hash.update(leaf); + return hash.digest(); } - -var defaults = { - - transitional: { - silentJSONParsing: true, - forcedJSONParsing: true, - clarifyTimeoutError: false - }, - - adapter: getDefaultAdapter(), - - transformRequest: [function transformRequest(data, headers) { - normalizeHeaderName(headers, 'Accept'); - normalizeHeaderName(headers, 'Content-Type'); - - if (utils.isFormData(data) || - utils.isArrayBuffer(data) || - utils.isBuffer(data) || - utils.isStream(data) || - utils.isFile(data) || - utils.isBlob(data) - ) { - return data; - } - if (utils.isArrayBufferView(data)) { - return data.buffer; - } - if (utils.isURLSearchParams(data)) { - setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8'); - return data.toString(); - } - if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) { - setContentTypeIfUnset(headers, 'application/json'); - return stringifySafely(data); - } - return data; - }], - - transformResponse: [function transformResponse(data) { - var transitional = this.transitional; - var silentJSONParsing = transitional && transitional.silentJSONParsing; - var forcedJSONParsing = transitional && transitional.forcedJSONParsing; - var strictJSONParsing = !silentJSONParsing && this.responseType === 'json'; - - if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) { - try { - return JSON.parse(data); - } catch (e) { - if (strictJSONParsing) { - if (e.name === 'SyntaxError') { - throw enhanceError(e, this, 'E_JSON_PARSE'); - } - throw e; +function hashInner(left, right) { + const hash = new crypto_1.Sha256(Uint8Array.from([1])); + hash.update(left); + hash.update(right); + return hash.digest(); +} +// See https://github.com/tendermint/tendermint/blob/v0.31.8/docs/spec/blockchain/encoding.md#merkleroot +// Note: the hashes input may not actually be hashes, especially before a recursive call +function hashTree(hashes) { + switch (hashes.length) { + case 0: + throw new Error("Cannot hash empty tree"); + case 1: + return hashLeaf(hashes[0]); + default: { + const slicePoint = getSplitPoint(hashes.length); + const left = hashTree(hashes.slice(0, slicePoint)); + const right = hashTree(hashes.slice(slicePoint)); + return hashInner(left, right); } - } - } - - 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, - - validateStatus: function validateStatus(status) { - return status >= 200 && status < 300; - } -}; - -defaults.headers = { - common: { - 'Accept': 'application/json, text/plain, */*' - } -}; - -utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { - defaults.headers[method] = {}; -}); - -utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { - defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); -}); - -module.exports = defaults; - - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/bind.js": -/*!************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/bind.js ***! - \************************************************************************************/ -/***/ (function(module) { - -"use strict"; - - -module.exports = function bind(fn, thisArg) { - return function wrap() { - var args = new Array(arguments.length); - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i]; } - return fn.apply(thisArg, args); - }; -}; - - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/buildURL.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/buildURL.js ***! - \****************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/utils.js"); - -function encode(val) { - return encodeURIComponent(val). - replace(/%3A/gi, ':'). - replace(/%24/g, '$'). - replace(/%2C/gi, ','). - replace(/%20/g, '+'). - replace(/%5B/gi, '['). - replace(/%5D/gi, ']'); } - -/** - * Build a URL by appending params to the end - * - * @param {string} url The base of the url (e.g., http://www.google.com) - * @param {object} [params] The params to be appended - * @returns {string} The formatted url - */ -module.exports = function buildURL(url, params, paramsSerializer) { - /*eslint no-param-reassign:0*/ - if (!params) { - return url; - } - - var serializedParams; - if (paramsSerializer) { - serializedParams = paramsSerializer(params); - } else if (utils.isURLSearchParams(params)) { - serializedParams = params.toString(); - } else { - var parts = []; - - utils.forEach(params, function serialize(val, key) { - if (val === null || typeof val === 'undefined') { - return; - } - - if (utils.isArray(val)) { - key = key + '[]'; - } else { - val = [val]; - } - - utils.forEach(val, function parseValue(v) { - if (utils.isDate(v)) { - v = v.toISOString(); - } else if (utils.isObject(v)) { - v = JSON.stringify(v); - } - parts.push(encode(key) + '=' + encode(v)); - }); - }); - - serializedParams = parts.join('&'); - } - - if (serializedParams) { - var hashmarkIndex = url.indexOf('#'); - if (hashmarkIndex !== -1) { - url = url.slice(0, hashmarkIndex); +function hashBlock(header) { + if (!header.lastBlockId) { + throw new Error("Hashing a block header with no last block ID (i.e. header at height 1) is not supported. If you need this, contributions are welcome. Please add documentation and test vectors for this case."); } - - url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; - } - - return url; -}; - - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/combineURLs.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/combineURLs.js ***! - \*******************************************************************************************/ -/***/ (function(module) { - -"use strict"; - - -/** - * Creates a new URL by combining the specified URLs - * - * @param {string} baseURL The base URL - * @param {string} relativeURL The relative URL - * @returns {string} The combined URL - */ -module.exports = function combineURLs(baseURL, relativeURL) { - return relativeURL - ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') - : baseURL; -}; - - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/cookies.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/cookies.js ***! - \***************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/utils.js"); - -module.exports = ( - utils.isStandardBrowserEnv() ? - - // Standard browser envs support document.cookie - (function standardBrowserEnv() { - return { - write: function write(name, value, expires, path, domain, secure) { - var cookie = []; - cookie.push(name + '=' + encodeURIComponent(value)); - - if (utils.isNumber(expires)) { - cookie.push('expires=' + new Date(expires).toGMTString()); - } - - if (utils.isString(path)) { - cookie.push('path=' + path); - } - - if (utils.isString(domain)) { - cookie.push('domain=' + domain); - } - - if (secure === true) { - cookie.push('secure'); - } - - document.cookie = cookie.join('; '); - }, - - read: function read(name) { - var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); - return (match ? decodeURIComponent(match[3]) : null); - }, - - remove: function remove(name) { - this.write(name, '', Date.now() - 86400000); - } - }; - })() : - - // Non standard browser env (web workers, react-native) lack needed support. - (function nonStandardBrowserEnv() { - return { - write: function write() {}, - read: function read() { return null; }, - remove: function remove() {} - }; - })() -); - + const encodedFields = [ + (0, encodings_1.encodeVersion)(header.version), + (0, encodings_1.encodeString)(header.chainId), + (0, encodings_1.encodeUvarint)(header.height), + (0, encodings_1.encodeTime)(header.time), + (0, encodings_1.encodeBlockId)(header.lastBlockId), + (0, encodings_1.encodeBytes)(header.lastCommitHash), + (0, encodings_1.encodeBytes)(header.dataHash), + (0, encodings_1.encodeBytes)(header.validatorsHash), + (0, encodings_1.encodeBytes)(header.nextValidatorsHash), + (0, encodings_1.encodeBytes)(header.consensusHash), + (0, encodings_1.encodeBytes)(header.appHash), + (0, encodings_1.encodeBytes)(header.lastResultsHash), + (0, encodings_1.encodeBytes)(header.evidenceHash), + (0, encodings_1.encodeBytes)(header.proposerAddress), + ]; + return hashTree(encodedFields); +} +exports.hashBlock = hashBlock; +//# sourceMappingURL=hasher.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/isAbsoluteURL.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/isAbsoluteURL.js ***! - \*********************************************************************************************/ -/***/ (function(module) { +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/index.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/index.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; - -/** - * Determines whether the specified URL is absolute - * - * @param {string} url The URL to test - * @returns {boolean} True if the specified URL is absolute, otherwise false - */ -module.exports = function isAbsoluteURL(url) { - // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). - // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed - // by any combination of letters, digits, plus, period, or hyphen. - return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url); -}; - +// Note: all exports in this module are publicly available via +// `import { tendermint34 } from "@cosmjs/tendermint-rpc"` +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Tendermint34Client = exports.VoteType = exports.broadcastTxSyncSuccess = exports.broadcastTxCommitSuccess = exports.SubscriptionEventType = exports.Method = void 0; +var requests_1 = __webpack_require__(/*! ./requests */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/requests.js"); +Object.defineProperty(exports, "Method", ({ enumerable: true, get: function () { return requests_1.Method; } })); +Object.defineProperty(exports, "SubscriptionEventType", ({ enumerable: true, get: function () { return requests_1.SubscriptionEventType; } })); +var responses_1 = __webpack_require__(/*! ./responses */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/responses.js"); +Object.defineProperty(exports, "broadcastTxCommitSuccess", ({ enumerable: true, get: function () { return responses_1.broadcastTxCommitSuccess; } })); +Object.defineProperty(exports, "broadcastTxSyncSuccess", ({ enumerable: true, get: function () { return responses_1.broadcastTxSyncSuccess; } })); +Object.defineProperty(exports, "VoteType", ({ enumerable: true, get: function () { return responses_1.VoteType; } })); +var tendermint34client_1 = __webpack_require__(/*! ./tendermint34client */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/tendermint34client.js"); +Object.defineProperty(exports, "Tendermint34Client", ({ enumerable: true, get: function () { return tendermint34client_1.Tendermint34Client; } })); +//# sourceMappingURL=index.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/isAxiosError.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/isAxiosError.js ***! - \********************************************************************************************/ -/***/ (function(module) { +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/requests.js": +/*!****************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/requests.js ***! + \****************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { "use strict"; - +/* eslint-disable @typescript-eslint/naming-convention */ +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.buildQuery = exports.SubscriptionEventType = exports.Method = void 0; /** - * Determines whether the payload is an error thrown by Axios + * RPC methods as documented in https://docs.tendermint.com/master/rpc/ * - * @param {*} payload The value to test - * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false + * Enum raw value must match the spelling in the "shell" example call (snake_case) */ -module.exports = function isAxiosError(payload) { - return (typeof payload === 'object') && (payload.isAxiosError === true); -}; - +var Method; +(function (Method) { + Method["AbciInfo"] = "abci_info"; + Method["AbciQuery"] = "abci_query"; + Method["Block"] = "block"; + /** Get block headers for minHeight <= height <= maxHeight. */ + Method["Blockchain"] = "blockchain"; + Method["BlockResults"] = "block_results"; + Method["BlockSearch"] = "block_search"; + Method["BroadcastTxAsync"] = "broadcast_tx_async"; + Method["BroadcastTxSync"] = "broadcast_tx_sync"; + Method["BroadcastTxCommit"] = "broadcast_tx_commit"; + Method["Commit"] = "commit"; + Method["Genesis"] = "genesis"; + Method["Health"] = "health"; + Method["NumUnconfirmedTxs"] = "num_unconfirmed_txs"; + Method["Status"] = "status"; + Method["Subscribe"] = "subscribe"; + Method["Tx"] = "tx"; + Method["TxSearch"] = "tx_search"; + Method["Validators"] = "validators"; + Method["Unsubscribe"] = "unsubscribe"; +})(Method = exports.Method || (exports.Method = {})); +/** + * Raw values must match the tendermint event name + * + * @see https://godoc.org/github.com/tendermint/tendermint/types#pkg-constants + */ +var SubscriptionEventType; +(function (SubscriptionEventType) { + SubscriptionEventType["NewBlock"] = "NewBlock"; + SubscriptionEventType["NewBlockHeader"] = "NewBlockHeader"; + SubscriptionEventType["Tx"] = "Tx"; +})(SubscriptionEventType = exports.SubscriptionEventType || (exports.SubscriptionEventType = {})); +function buildQuery(components) { + const tags = components.tags ? components.tags : []; + const tagComponents = tags.map((tag) => `${tag.key}='${tag.value}'`); + const rawComponents = components.raw ? [components.raw] : []; + return [...tagComponents, ...rawComponents].join(" AND "); +} +exports.buildQuery = buildQuery; +//# sourceMappingURL=requests.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/isURLSameOrigin.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/isURLSameOrigin.js ***! - \***********************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/responses.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/responses.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { "use strict"; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.VoteType = exports.broadcastTxCommitSuccess = exports.broadcastTxSyncSuccess = void 0; +/** + * Returns true iff transaction made it successfully into the transaction pool + */ +function broadcastTxSyncSuccess(res) { + // code must be 0 on success + return res.code === 0; +} +exports.broadcastTxSyncSuccess = broadcastTxSyncSuccess; +/** + * Returns true iff transaction made it successfully into a block + * (i.e. success in `check_tx` and `deliver_tx` field) + */ +function broadcastTxCommitSuccess(response) { + // code must be 0 on success + // deliverTx may be present but empty on failure + return response.checkTx.code === 0 && !!response.deliverTx && response.deliverTx.code === 0; +} +exports.broadcastTxCommitSuccess = broadcastTxCommitSuccess; +/** + * raw values from https://github.com/tendermint/tendermint/blob/dfa9a9a30a666132425b29454e90a472aa579a48/types/vote.go#L44 + */ +var VoteType; +(function (VoteType) { + VoteType[VoteType["PreVote"] = 1] = "PreVote"; + VoteType[VoteType["PreCommit"] = 2] = "PreCommit"; +})(VoteType = exports.VoteType || (exports.VoteType = {})); +//# sourceMappingURL=responses.js.map -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/utils.js"); - -module.exports = ( - utils.isStandardBrowserEnv() ? +/***/ }), - // 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() { - var msie = /(msie|trident)/i.test(navigator.userAgent); - var urlParsingNode = document.createElement('a'); - var originURL; +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/tendermint34client.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/tendermint34client.js ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - /** - * Parse a URL to discover it's components - * - * @param {String} url The URL to be parsed - * @returns {Object} - */ - function resolveURL(url) { - var href = url; +"use strict"; - if (msie) { - // IE needs attribute set twice to normalize properties - urlParsingNode.setAttribute('href', href); - href = urlParsingNode.href; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Tendermint34Client = void 0; +const jsonrpc_1 = __webpack_require__(/*! ../jsonrpc */ "./node_modules/@cosmjs/tendermint-rpc/build/jsonrpc.js"); +const rpcclients_1 = __webpack_require__(/*! ../rpcclients */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/index.js"); +const adaptor_1 = __webpack_require__(/*! ./adaptor */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/index.js"); +const requests = __importStar(__webpack_require__(/*! ./requests */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/requests.js")); +class Tendermint34Client { + /** + * Creates a new Tendermint client for the given endpoint. + * + * Uses HTTP when the URL schema is http or https. Uses WebSockets otherwise. + */ + static async connect(endpoint) { + let rpcClient; + if (typeof endpoint === "object") { + rpcClient = new rpcclients_1.HttpClient(endpoint); } - - urlParsingNode.setAttribute('href', href); - - // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + else { + const useHttp = endpoint.startsWith("http://") || endpoint.startsWith("https://"); + rpcClient = useHttp ? new rpcclients_1.HttpClient(endpoint) : new rpcclients_1.WebsocketClient(endpoint); + } + // For some very strange reason I don't understand, tests start to fail on some systems + // (our CI) when skipping the status call before doing other queries. Sleeping a little + // while did not help. Thus we query the version as a way to say "hi" to the backend, + // even in cases where we don't use the result. + const _version = await this.detectVersion(rpcClient); + return Tendermint34Client.create(rpcClient); + } + /** + * Creates a new Tendermint client given an RPC client. + */ + static async create(rpcClient) { + return new Tendermint34Client(rpcClient); + } + static async detectVersion(client) { + const req = (0, jsonrpc_1.createJsonRpcRequest)(requests.Method.Status); + const response = await client.execute(req); + const result = response.result; + if (!result || !result.node_info) { + throw new Error("Unrecognized format for status response"); + } + const version = result.node_info.version; + if (typeof version !== "string") { + throw new Error("Unrecognized version format: must be string"); + } + return version; + } + /** + * Use `Tendermint34Client.connect` or `Tendermint34Client.create` to create an instance. + */ + constructor(client) { + this.client = client; + } + disconnect() { + this.client.disconnect(); + } + async abciInfo() { + const query = { method: requests.Method.AbciInfo }; + return this.doCall(query, adaptor_1.Params.encodeAbciInfo, adaptor_1.Responses.decodeAbciInfo); + } + async abciQuery(params) { + const query = { params: params, method: requests.Method.AbciQuery }; + return this.doCall(query, adaptor_1.Params.encodeAbciQuery, adaptor_1.Responses.decodeAbciQuery); + } + async block(height) { + const query = { method: requests.Method.Block, params: { height: height } }; + return this.doCall(query, adaptor_1.Params.encodeBlock, adaptor_1.Responses.decodeBlock); + } + async blockResults(height) { + const query = { + method: requests.Method.BlockResults, + params: { height: height }, + }; + return this.doCall(query, adaptor_1.Params.encodeBlockResults, adaptor_1.Responses.decodeBlockResults); + } + /** + * Search for events that are in a block. + * + * NOTE + * This method will error on any node that is running a Tendermint version lower than 0.34.9. + * + * @see https://docs.tendermint.com/master/rpc/#/Info/block_search + */ + async blockSearch(params) { + const query = { params: params, method: requests.Method.BlockSearch }; + const resp = await this.doCall(query, adaptor_1.Params.encodeBlockSearch, adaptor_1.Responses.decodeBlockSearch); + return { + ...resp, + // make sure we sort by height, as tendermint may be sorting by string value of the height + blocks: [...resp.blocks].sort((a, b) => a.block.header.height - b.block.header.height), + }; + } + // this should paginate through all blockSearch options to ensure it returns all results. + // starts with page 1 or whatever was provided (eg. to start on page 7) + // + // NOTE + // This method will error on any node that is running a Tendermint version lower than 0.34.9. + async blockSearchAll(params) { + let page = params.page || 1; + const blocks = []; + let done = false; + while (!done) { + const resp = await this.blockSearch({ ...params, page: page }); + blocks.push(...resp.blocks); + if (blocks.length < resp.totalCount) { + page++; + } + else { + done = true; + } + } + // make sure we sort by height, as tendermint may be sorting by string value of the height + // and the earlier items may be in a higher page than the later items + blocks.sort((a, b) => a.block.header.height - b.block.header.height); 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 + totalCount: blocks.length, + blocks: blocks, }; - } + } + /** + * Queries block headers filtered by minHeight <= height <= maxHeight. + * + * @param minHeight The minimum height to be included in the result. Defaults to 0. + * @param maxHeight The maximum height to be included in the result. Defaults to infinity. + */ + async blockchain(minHeight, maxHeight) { + const query = { + method: requests.Method.Blockchain, + params: { + minHeight: minHeight, + maxHeight: maxHeight, + }, + }; + return this.doCall(query, adaptor_1.Params.encodeBlockchain, adaptor_1.Responses.decodeBlockchain); + } + /** + * Broadcast transaction to mempool and wait for response + * + * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_sync + */ + async broadcastTxSync(params) { + const query = { params: params, method: requests.Method.BroadcastTxSync }; + return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxSync); + } + /** + * Broadcast transaction to mempool and do not wait for result + * + * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_async + */ + async broadcastTxAsync(params) { + const query = { params: params, method: requests.Method.BroadcastTxAsync }; + return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxAsync); + } + /** + * Broadcast transaction to mempool and wait for block + * + * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_commit + */ + async broadcastTxCommit(params) { + const query = { params: params, method: requests.Method.BroadcastTxCommit }; + return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxCommit); + } + async commit(height) { + const query = { method: requests.Method.Commit, params: { height: height } }; + return this.doCall(query, adaptor_1.Params.encodeCommit, adaptor_1.Responses.decodeCommit); + } + async genesis() { + const query = { method: requests.Method.Genesis }; + return this.doCall(query, adaptor_1.Params.encodeGenesis, adaptor_1.Responses.decodeGenesis); + } + async health() { + const query = { method: requests.Method.Health }; + return this.doCall(query, adaptor_1.Params.encodeHealth, adaptor_1.Responses.decodeHealth); + } + async numUnconfirmedTxs() { + const query = { method: requests.Method.NumUnconfirmedTxs }; + return this.doCall(query, adaptor_1.Params.encodeNumUnconfirmedTxs, adaptor_1.Responses.decodeNumUnconfirmedTxs); + } + async status() { + const query = { method: requests.Method.Status }; + return this.doCall(query, adaptor_1.Params.encodeStatus, adaptor_1.Responses.decodeStatus); + } + subscribeNewBlock() { + const request = { + method: requests.Method.Subscribe, + query: { type: requests.SubscriptionEventType.NewBlock }, + }; + return this.subscribe(request, adaptor_1.Responses.decodeNewBlockEvent); + } + subscribeNewBlockHeader() { + const request = { + method: requests.Method.Subscribe, + query: { type: requests.SubscriptionEventType.NewBlockHeader }, + }; + return this.subscribe(request, adaptor_1.Responses.decodeNewBlockHeaderEvent); + } + subscribeTx(query) { + const request = { + method: requests.Method.Subscribe, + query: { + type: requests.SubscriptionEventType.Tx, + raw: query, + }, + }; + return this.subscribe(request, adaptor_1.Responses.decodeTxEvent); + } + /** + * Get a single transaction by hash + * + * @see https://docs.tendermint.com/master/rpc/#/Info/tx + */ + async tx(params) { + const query = { params: params, method: requests.Method.Tx }; + return this.doCall(query, adaptor_1.Params.encodeTx, adaptor_1.Responses.decodeTx); + } + /** + * Search for transactions that are in a block + * + * @see https://docs.tendermint.com/master/rpc/#/Info/tx_search + */ + async txSearch(params) { + const query = { params: params, method: requests.Method.TxSearch }; + return this.doCall(query, adaptor_1.Params.encodeTxSearch, adaptor_1.Responses.decodeTxSearch); + } + // this should paginate through all txSearch options to ensure it returns all results. + // starts with page 1 or whatever was provided (eg. to start on page 7) + async txSearchAll(params) { + let page = params.page || 1; + const txs = []; + let done = false; + while (!done) { + const resp = await this.txSearch({ ...params, page: page }); + txs.push(...resp.txs); + if (txs.length < resp.totalCount) { + page++; + } + else { + done = true; + } + } + return { + totalCount: txs.length, + txs: txs, + }; + } + async validators(params) { + const query = { + method: requests.Method.Validators, + params: params, + }; + return this.doCall(query, adaptor_1.Params.encodeValidators, adaptor_1.Responses.decodeValidators); + } + async validatorsAll(height) { + const validators = []; + let page = 1; + let done = false; + let blockHeight = height; + while (!done) { + const response = await this.validators({ + per_page: 50, + height: blockHeight, + page: page, + }); + validators.push(...response.validators); + blockHeight = blockHeight || response.blockHeight; + if (validators.length < response.total) { + page++; + } + else { + done = true; + } + } + return { + // NOTE: Default value is for type safety but this should always be set + blockHeight: blockHeight ?? 0, + count: validators.length, + total: validators.length, + validators: validators, + }; + } + // doCall is a helper to handle the encode/call/decode logic + async doCall(request, encode, decode) { + const req = encode(request); + const result = await this.client.execute(req); + return decode(result); + } + subscribe(request, decode) { + if (!(0, rpcclients_1.instanceOfRpcStreamingClient)(this.client)) { + throw new Error("This RPC client type cannot subscribe to events"); + } + const req = adaptor_1.Params.encodeSubscribe(request); + const eventStream = this.client.listen(req); + return eventStream.map((event) => { + return decode(event); + }); + } +} +exports.Tendermint34Client = Tendermint34Client; +//# sourceMappingURL=tendermint34client.js.map - originURL = resolveURL(window.location.href); +/***/ }), - /** - * Determine if a URL shares the same origin as the current location - * - * @param {String} requestURL The URL to test - * @returns {boolean} True if URL shares the same origin, otherwise false - */ - return function isURLSameOrigin(requestURL) { - var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; - return (parsed.protocol === originURL.protocol && - parsed.host === originURL.host); - }; - })() : +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/index.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/index.js ***! + \*********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - // Non standard browser envs (web workers, react-native) lack needed support. - (function nonStandardBrowserEnv() { - return function isURLSameOrigin() { - return true; - }; - })() -); +"use strict"; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Responses = exports.Params = void 0; +var requests_1 = __webpack_require__(/*! ./requests */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/requests.js"); +Object.defineProperty(exports, "Params", ({ enumerable: true, get: function () { return requests_1.Params; } })); +var responses_1 = __webpack_require__(/*! ./responses */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/responses.js"); +Object.defineProperty(exports, "Responses", ({ enumerable: true, get: function () { return responses_1.Responses; } })); +//# sourceMappingURL=index.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/normalizeHeaderName.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/normalizeHeaderName.js ***! - \***************************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/requests.js": +/*!************************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/requests.js ***! + \************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; - -var utils = __webpack_require__(/*! ../utils */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/utils.js"); - -module.exports = function normalizeHeaderName(headers, normalizedName) { - utils.forEach(headers, function processHeader(value, name) { - if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { - headers[normalizedName] = value; - delete headers[name]; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; } - }); + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; }; - +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Params = void 0; +/* eslint-disable @typescript-eslint/naming-convention */ +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +const inthelpers_1 = __webpack_require__(/*! ../../inthelpers */ "./node_modules/@cosmjs/tendermint-rpc/build/inthelpers.js"); +const jsonrpc_1 = __webpack_require__(/*! ../../jsonrpc */ "./node_modules/@cosmjs/tendermint-rpc/build/jsonrpc.js"); +const encodings_1 = __webpack_require__(/*! ../encodings */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/encodings.js"); +const requests = __importStar(__webpack_require__(/*! ../requests */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/requests.js")); +function encodeHeightParam(param) { + return { + height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.height), + }; +} +function encodeBlockchainRequestParams(param) { + return { + minHeight: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.minHeight), + maxHeight: (0, encodings_1.may)(inthelpers_1.smallIntToApi, param.maxHeight), + }; +} +function encodeBlockSearchParams(params) { + return { + query: params.query, + page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page), + per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page), + order_by: params.order_by, + }; +} +function encodeAbciQueryParams(params) { + return { + path: (0, encodings_1.assertNotEmpty)(params.path), + data: (0, encoding_1.toHex)(params.data), + height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.height), + prove: params.prove, + }; +} +function encodeBroadcastTxParams(params) { + return { + tx: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.tx)), + }; +} +function encodeTxParams(params) { + return { + hash: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.hash)), + prove: params.prove, + }; +} +function encodeTxSearchParams(params) { + return { + query: params.query, + prove: params.prove, + page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page), + per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page), + order_by: params.order_by, + }; +} +function encodeValidatorsParams(params) { + return { + height: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.height), + page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.page), + per_page: (0, encodings_1.may)(inthelpers_1.smallIntToApi, params.per_page), + }; +} +class Params { + static encodeAbciInfo(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method); + } + static encodeAbciQuery(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeAbciQueryParams(req.params)); + } + static encodeBlock(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params)); + } + static encodeBlockchain(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockchainRequestParams(req.params)); + } + static encodeBlockResults(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params)); + } + static encodeBlockSearch(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockSearchParams(req.params)); + } + static encodeBroadcastTx(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBroadcastTxParams(req.params)); + } + static encodeCommit(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params)); + } + static encodeGenesis(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method); + } + static encodeHealth(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method); + } + static encodeNumUnconfirmedTxs(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method); + } + static encodeStatus(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method); + } + static encodeSubscribe(req) { + const eventTag = { key: "tm.event", value: req.query.type }; + const query = requests.buildQuery({ tags: [eventTag], raw: req.query.raw }); + return (0, jsonrpc_1.createJsonRpcRequest)("subscribe", { query: query }); + } + static encodeTx(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxParams(req.params)); + } + // TODO: encode params for query string??? + static encodeTxSearch(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxSearchParams(req.params)); + } + static encodeValidators(req) { + return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeValidatorsParams(req.params)); + } +} +exports.Params = Params; +//# sourceMappingURL=requests.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/parseHeaders.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/parseHeaders.js ***! - \********************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/responses.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/responses.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; - -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/utils.js"); - -// Headers whose duplicates are ignored by node -// c.f. https://nodejs.org/api/http.html#http_message_headers -var ignoreDuplicateOf = [ - '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' -]; - +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Responses = exports.decodeValidatorInfo = exports.decodeValidatorGenesis = exports.decodeValidatorUpdate = exports.decodeEvent = void 0; +/* eslint-disable @typescript-eslint/naming-convention */ +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/utils/build/index.js"); +const dates_1 = __webpack_require__(/*! ../../dates */ "./node_modules/@cosmjs/tendermint-rpc/build/dates.js"); +const inthelpers_1 = __webpack_require__(/*! ../../inthelpers */ "./node_modules/@cosmjs/tendermint-rpc/build/inthelpers.js"); +const types_1 = __webpack_require__(/*! ../../types */ "./node_modules/@cosmjs/tendermint-rpc/build/types.js"); +const encodings_1 = __webpack_require__(/*! ../encodings */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/encodings.js"); +const hasher_1 = __webpack_require__(/*! ../hasher */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/hasher.js"); +function decodeAbciInfo(data) { + return { + data: data.data, + lastBlockHeight: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.last_block_height), + lastBlockAppHash: (0, encodings_1.may)(encoding_1.fromBase64, data.last_block_app_hash), + }; +} +function decodeQueryProof(data) { + return { + ops: data.ops.map((op) => ({ + type: op.type, + key: (0, encoding_1.fromBase64)(op.key), + data: (0, encoding_1.fromBase64)(op.data), + })), + }; +} +function decodeAbciQuery(data) { + return { + key: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(data.key ?? "")), + value: (0, encoding_1.fromBase64)((0, encodings_1.assertString)(data.value ?? "")), + proof: (0, encodings_1.may)(decodeQueryProof, data.proofOps), + height: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.height), + code: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.code), + codespace: (0, encodings_1.assertString)(data.codespace ?? ""), + index: (0, encodings_1.may)(inthelpers_1.apiToSmallInt, data.index), + log: data.log, + info: (0, encodings_1.assertString)(data.info ?? ""), + }; +} +function decodeEventAttribute(attribute) { + return { + key: (0, encodings_1.assertNotEmpty)(attribute.key), + value: attribute.value ?? "", + }; +} +function decodeAttributes(attributes) { + return (0, encodings_1.assertArray)(attributes).map(decodeEventAttribute); +} +function decodeEvent(event) { + return { + type: event.type, + attributes: event.attributes ? decodeAttributes(event.attributes) : [], + }; +} +exports.decodeEvent = decodeEvent; +function decodeEvents(events) { + return (0, encodings_1.assertArray)(events).map(decodeEvent); +} +function decodeTxData(data) { + return { + code: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNumber)(data.code ?? 0)), + codespace: data.codespace, + log: data.log, + data: (0, encodings_1.may)(encoding_1.fromBase64, data.data), + events: data.events ? decodeEvents(data.events) : [], + gasWanted: (0, inthelpers_1.apiToBigInt)(data.gas_wanted ?? "0"), + gasUsed: (0, inthelpers_1.apiToBigInt)(data.gas_used ?? "0"), + }; +} +function decodePubkey(data) { + if ("Sum" in data) { + // we don't need to check type because we're checking algorithm + const [[algorithm, value]] = Object.entries(data.Sum.value); + (0, utils_1.assert)(algorithm === "ed25519" || algorithm === "secp256k1", `unknown pubkey type: ${algorithm}`); + return { + algorithm, + data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(value)), + }; + } + else { + switch (data.type) { + // go-amino special code + case "tendermint/PubKeyEd25519": + return { + algorithm: "ed25519", + data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)), + }; + case "tendermint/PubKeySecp256k1": + return { + algorithm: "secp256k1", + data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)), + }; + default: + throw new Error(`unknown pubkey type: ${data.type}`); + } + } +} /** - * Parse headers into an object - * - * ``` - * Date: Wed, 27 Aug 2014 08:58:49 GMT - * Content-Type: application/json - * Connection: keep-alive - * Transfer-Encoding: chunked - * ``` + * Note: we do not parse block.time_iota_ms for now because of this CHANGELOG entry * - * @param {String} headers Headers needing to be parsed - * @returns {Object} Headers parsed into an object + * > Add time_iota_ms to block's consensus parameters (not exposed to the application) + * https://github.com/tendermint/tendermint/blob/master/CHANGELOG.md#v0310 */ -module.exports = function parseHeaders(headers) { - var parsed = {}; - var key; - var val; - var i; - - if (!headers) { return parsed; } - - utils.forEach(headers.split('\n'), function parser(line) { - i = line.indexOf(':'); - key = utils.trim(line.substr(0, i)).toLowerCase(); - val = utils.trim(line.substr(i + 1)); - - if (key) { - if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { - return; - } - if (key === 'set-cookie') { - parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]); - } else { - parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; - } +function decodeBlockParams(data) { + return { + maxBytes: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_bytes)), + maxGas: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_gas)), + }; +} +function decodeEvidenceParams(data) { + return { + maxAgeNumBlocks: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_age_num_blocks)), + maxAgeDuration: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.max_age_duration)), + }; +} +function decodeConsensusParams(data) { + return { + block: decodeBlockParams((0, encodings_1.assertObject)(data.block)), + evidence: decodeEvidenceParams((0, encodings_1.assertObject)(data.evidence)), + }; +} +function decodeValidatorUpdate(data) { + return { + pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)), + votingPower: (0, inthelpers_1.apiToBigInt)(data.power ?? "0"), + }; +} +exports.decodeValidatorUpdate = decodeValidatorUpdate; +function decodeBlockResults(data) { + return { + height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), + results: (data.txs_results || []).map(decodeTxData), + validatorUpdates: (data.validator_updates || []).map(decodeValidatorUpdate), + consensusUpdates: (0, encodings_1.may)(decodeConsensusParams, data.consensus_param_updates), + beginBlockEvents: decodeEvents(data.begin_block_events || []), + endBlockEvents: decodeEvents(data.end_block_events || []), + }; +} +function decodeBlockId(data) { + return { + hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)), + parts: { + total: (0, encodings_1.assertNotEmpty)(data.parts.total), + hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.parts.hash)), + }, + }; +} +function decodeBlockVersion(data) { + return { + block: (0, inthelpers_1.apiToSmallInt)(data.block), + app: (0, inthelpers_1.apiToSmallInt)(data.app ?? 0), + }; +} +function decodeHeader(data) { + return { + version: decodeBlockVersion(data.version), + chainId: (0, encodings_1.assertNotEmpty)(data.chain_id), + height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), + time: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.time)), + // When there is no last block ID (i.e. this block's height is 1), we get an empty structure like this: + // { hash: '', parts: { total: 0, hash: '' } } + lastBlockId: data.last_block_id.hash ? decodeBlockId(data.last_block_id) : null, + lastCommitHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_commit_hash)), + dataHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.data_hash)), + validatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.validators_hash)), + nextValidatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.next_validators_hash)), + consensusHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.consensus_hash)), + appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)), + lastResultsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_results_hash)), + evidenceHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.evidence_hash)), + proposerAddress: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.proposer_address)), + }; +} +function decodeBlockMeta(data) { + return { + blockId: decodeBlockId(data.block_id), + blockSize: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.block_size)), + header: decodeHeader(data.header), + numTxs: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.num_txs)), + }; +} +function decodeBlockchain(data) { + return { + lastHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.last_height)), + blockMetas: (0, encodings_1.assertArray)(data.block_metas).map(decodeBlockMeta), + }; +} +function decodeBroadcastTxSync(data) { + return { + ...decodeTxData(data), + hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)), + }; +} +function decodeBroadcastTxCommit(data) { + return { + height: (0, inthelpers_1.apiToSmallInt)(data.height), + hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)), + checkTx: decodeTxData((0, encodings_1.assertObject)(data.check_tx)), + deliverTx: (0, encodings_1.may)(decodeTxData, data.deliver_tx), + }; +} +function decodeBlockIdFlag(blockIdFlag) { + (0, utils_1.assert)(blockIdFlag in types_1.BlockIdFlag); + return blockIdFlag; +} +function decodeCommitSignature(data) { + return { + blockIdFlag: decodeBlockIdFlag(data.block_id_flag), + validatorAddress: data.validator_address ? (0, encoding_1.fromHex)(data.validator_address) : undefined, + timestamp: data.timestamp ? (0, dates_1.fromRfc3339WithNanoseconds)(data.timestamp) : undefined, + signature: data.signature ? (0, encoding_1.fromBase64)(data.signature) : undefined, + }; +} +function decodeCommit(data) { + return { + blockId: decodeBlockId((0, encodings_1.assertObject)(data.block_id)), + height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), + round: (0, inthelpers_1.apiToSmallInt)(data.round), + signatures: (0, encodings_1.assertArray)(data.signatures).map(decodeCommitSignature), + }; +} +function decodeCommitResponse(data) { + return { + canonical: (0, encodings_1.assertBoolean)(data.canonical), + header: decodeHeader(data.signed_header.header), + commit: decodeCommit(data.signed_header.commit), + }; +} +function decodeValidatorGenesis(data) { + return { + address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)), + pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)), + votingPower: (0, inthelpers_1.apiToBigInt)((0, encodings_1.assertNotEmpty)(data.power)), + }; +} +exports.decodeValidatorGenesis = decodeValidatorGenesis; +function decodeGenesis(data) { + return { + genesisTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.genesis_time)), + chainId: (0, encodings_1.assertNotEmpty)(data.chain_id), + consensusParams: decodeConsensusParams(data.consensus_params), + validators: data.validators ? (0, encodings_1.assertArray)(data.validators).map(decodeValidatorGenesis) : [], + appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)), + appState: data.app_state, + }; +} +function decodeValidatorInfo(data) { + return { + pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)), + votingPower: (0, inthelpers_1.apiToBigInt)((0, encodings_1.assertNotEmpty)(data.voting_power)), + address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)), + proposerPriority: data.proposer_priority ? (0, inthelpers_1.apiToSmallInt)(data.proposer_priority) : undefined, + }; +} +exports.decodeValidatorInfo = decodeValidatorInfo; +function decodeNodeInfo(data) { + return { + id: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.id)), + listenAddr: (0, encodings_1.assertNotEmpty)(data.listen_addr), + network: (0, encodings_1.assertNotEmpty)(data.network), + version: (0, encodings_1.assertString)(data.version), + channels: (0, encodings_1.assertNotEmpty)(data.channels), + moniker: (0, encodings_1.assertNotEmpty)(data.moniker), + other: (0, encodings_1.dictionaryToStringMap)(data.other), + protocolVersion: { + app: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.app)), + block: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.block)), + p2p: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.protocol_version.p2p)), + }, + }; +} +function decodeSyncInfo(data) { + const earliestBlockHeight = data.earliest_block_height + ? (0, inthelpers_1.apiToSmallInt)(data.earliest_block_height) + : undefined; + const earliestBlockTime = data.earliest_block_time + ? (0, dates_1.fromRfc3339WithNanoseconds)(data.earliest_block_time) + : undefined; + return { + earliestAppHash: data.earliest_app_hash ? (0, encoding_1.fromHex)(data.earliest_app_hash) : undefined, + earliestBlockHash: data.earliest_block_hash ? (0, encoding_1.fromHex)(data.earliest_block_hash) : undefined, + earliestBlockHeight: earliestBlockHeight || undefined, + earliestBlockTime: earliestBlockTime?.getTime() ? earliestBlockTime : undefined, + latestBlockHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_block_hash)), + latestAppHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_app_hash)), + latestBlockTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.latest_block_time)), + latestBlockHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.latest_block_height)), + catchingUp: (0, encodings_1.assertBoolean)(data.catching_up), + }; +} +function decodeStatus(data) { + return { + nodeInfo: decodeNodeInfo(data.node_info), + syncInfo: decodeSyncInfo(data.sync_info), + validatorInfo: decodeValidatorInfo(data.validator_info), + }; +} +function decodeTxProof(data) { + return { + data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.data)), + rootHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.root_hash)), + proof: { + total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.proof.total)), + index: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.proof.index)), + leafHash: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.proof.leaf_hash)), + aunts: (0, encodings_1.assertArray)(data.proof.aunts).map(encoding_1.fromBase64), + }, + }; +} +function decodeTxResponse(data) { + return { + tx: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx)), + result: decodeTxData((0, encodings_1.assertObject)(data.tx_result)), + height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), + index: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNumber)(data.index)), + hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)), + proof: (0, encodings_1.may)(decodeTxProof, data.proof), + }; +} +function decodeTxSearch(data) { + return { + totalCount: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_count)), + txs: (0, encodings_1.assertArray)(data.txs).map(decodeTxResponse), + }; +} +function decodeTxEvent(data) { + const tx = (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx)); + return { + tx: tx, + hash: (0, hasher_1.hashTx)(tx), + result: decodeTxData(data.result), + height: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.height)), + }; +} +function decodeValidators(data) { + return { + blockHeight: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.block_height)), + validators: (0, encodings_1.assertArray)(data.validators).map(decodeValidatorInfo), + count: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.count)), + total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total)), + }; +} +function decodeBlock(data) { + return { + header: decodeHeader((0, encodings_1.assertObject)(data.header)), + // For the block at height 1, last commit is not set. This is represented in an empty object like this: + // { height: '0', round: 0, block_id: { hash: '', parts: [Object] }, signatures: [] } + lastCommit: data.last_commit.block_id.hash ? decodeCommit((0, encodings_1.assertObject)(data.last_commit)) : null, + txs: data.data.txs ? (0, encodings_1.assertArray)(data.data.txs).map(encoding_1.fromBase64) : [], + // Lift up .evidence.evidence to just .evidence + // See https://github.com/tendermint/tendermint/issues/7697 + evidence: data.evidence?.evidence ?? [], + }; +} +function decodeBlockResponse(data) { + return { + blockId: decodeBlockId(data.block_id), + block: decodeBlock(data.block), + }; +} +function decodeBlockSearch(data) { + return { + totalCount: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_count)), + blocks: (0, encodings_1.assertArray)(data.blocks).map(decodeBlockResponse), + }; +} +function decodeNumUnconfirmedTxs(data) { + return { + total: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total)), + totalBytes: (0, inthelpers_1.apiToSmallInt)((0, encodings_1.assertNotEmpty)(data.total_bytes)), + }; +} +class Responses { + static decodeAbciInfo(response) { + return decodeAbciInfo((0, encodings_1.assertObject)(response.result.response)); + } + static decodeAbciQuery(response) { + return decodeAbciQuery((0, encodings_1.assertObject)(response.result.response)); + } + static decodeBlock(response) { + return decodeBlockResponse(response.result); + } + static decodeBlockResults(response) { + return decodeBlockResults(response.result); + } + static decodeBlockSearch(response) { + return decodeBlockSearch(response.result); + } + static decodeBlockchain(response) { + return decodeBlockchain(response.result); + } + static decodeBroadcastTxSync(response) { + return decodeBroadcastTxSync(response.result); + } + static decodeBroadcastTxAsync(response) { + return Responses.decodeBroadcastTxSync(response); + } + static decodeBroadcastTxCommit(response) { + return decodeBroadcastTxCommit(response.result); + } + static decodeCommit(response) { + return decodeCommitResponse(response.result); + } + static decodeGenesis(response) { + return decodeGenesis((0, encodings_1.assertObject)(response.result.genesis)); + } + static decodeHealth() { + return null; + } + static decodeNumUnconfirmedTxs(response) { + return decodeNumUnconfirmedTxs(response.result); + } + static decodeStatus(response) { + return decodeStatus(response.result); } - }); - - return parsed; -}; - - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/spread.js": -/*!**************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/spread.js ***! - \**************************************************************************************/ -/***/ (function(module) { - -"use strict"; - - -/** - * Syntactic sugar for invoking a function and expanding an array for arguments. - * - * Common use case would be to use `Function.prototype.apply`. - * - * ```js - * function f(x, y, z) {} - * var args = [1, 2, 3]; - * f.apply(null, args); - * ``` - * - * With `spread` this example can be re-written. - * - * ```js - * spread(function(x, y, z) {})([1, 2, 3]); - * ``` - * - * @param {Function} callback - * @returns {Function} - */ -module.exports = function spread(callback) { - return function wrap(arr) { - return callback.apply(null, arr); - }; -}; - - -/***/ }), - -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/validator.js": -/*!*****************************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/validator.js ***! - \*****************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -var pkg = __webpack_require__(/*! ./../../package.json */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/package.json"); - -var validators = {}; - -// eslint-disable-next-line func-names -['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) { - validators[type] = function validator(thing) { - return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type; - }; -}); - -var deprecatedWarnings = {}; -var currentVerArr = pkg.version.split('.'); - -/** - * Compare package versions - * @param {string} version - * @param {string?} thanVersion - * @returns {boolean} - */ -function isOlderVersion(version, thanVersion) { - var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr; - var destVer = version.split('.'); - for (var i = 0; i < 3; i++) { - if (pkgVersionArr[i] > destVer[i]) { - return true; - } else if (pkgVersionArr[i] < destVer[i]) { - return false; + static decodeNewBlockEvent(event) { + return decodeBlock(event.data.value.block); } - } - return false; -} - -/** - * Transitional option validator - * @param {function|boolean?} validator - * @param {string?} version - * @param {string} message - * @returns {function} - */ -validators.transitional = function transitional(validator, version, message) { - var isDeprecated = version && isOlderVersion(version); - - function formatMessage(opt, desc) { - return '[Axios v' + pkg.version + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : ''); - } - - // eslint-disable-next-line func-names - return function(value, opt, opts) { - if (validator === false) { - throw new Error(formatMessage(opt, ' has been removed in ' + version)); + static decodeNewBlockHeaderEvent(event) { + return decodeHeader(event.data.value.header); } - - if (isDeprecated && !deprecatedWarnings[opt]) { - deprecatedWarnings[opt] = true; - // eslint-disable-next-line no-console - console.warn( - formatMessage( - opt, - ' has been deprecated since v' + version + ' and will be removed in the near future' - ) - ); + static decodeTxEvent(event) { + return decodeTxEvent(event.data.value.TxResult); } - - return validator ? validator(value, opt, opts) : true; - }; -}; - -/** - * Assert object's properties type - * @param {object} options - * @param {object} schema - * @param {boolean?} allowUnknown - */ - -function assertOptions(options, schema, allowUnknown) { - if (typeof options !== 'object') { - throw new TypeError('options must be an object'); - } - var keys = Object.keys(options); - var i = keys.length; - while (i-- > 0) { - var opt = keys[i]; - var validator = schema[opt]; - if (validator) { - var value = options[opt]; - var result = value === undefined || validator(value, opt, options); - if (result !== true) { - throw new TypeError('option ' + opt + ' must be ' + result); - } - continue; + static decodeTx(response) { + return decodeTxResponse(response.result); } - if (allowUnknown !== true) { - throw Error('Unknown option ' + opt); + static decodeTxSearch(response) { + return decodeTxSearch(response.result); + } + static decodeValidators(response) { + return decodeValidators(response.result); } - } } - -module.exports = { - isOlderVersion: isOlderVersion, - assertOptions: assertOptions, - validators: validators -}; - +exports.Responses = Responses; +//# sourceMappingURL=responses.js.map /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/utils.js": +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/encodings.js": /*!*****************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/utils.js ***! + !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/encodings.js ***! \*****************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; - -var bind = __webpack_require__(/*! ./helpers/bind */ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/lib/helpers/bind.js"); - -// utils is a library of generic helper functions non-specific to axios - -var toString = Object.prototype.toString; - +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.encodeBlockId = exports.encodeVersion = exports.encodeBytes = exports.encodeTime = exports.encodeUvarint = exports.encodeString = exports.dictionaryToStringMap = exports.may = exports.assertNotEmpty = exports.assertObject = exports.assertArray = exports.assertNumber = exports.assertString = exports.assertBoolean = exports.assertSet = void 0; +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); /** - * Determine if a value is an Array + * A runtime checker that ensures a given value is set (i.e. not undefined or null) * - * @param {Object} val The value to test - * @returns {boolean} True if value is an Array, otherwise false + * This is used when you want to verify that data at runtime matches the expected type. */ -function isArray(val) { - return toString.call(val) === '[object Array]'; +function assertSet(value) { + if (value === undefined) { + throw new Error("Value must not be undefined"); + } + if (value === null) { + throw new Error("Value must not be null"); + } + return value; } - +exports.assertSet = assertSet; /** - * Determine if a value is undefined + * A runtime checker that ensures a given value is a boolean * - * @param {Object} val The value to test - * @returns {boolean} True if the value is undefined, otherwise false + * This is used when you want to verify that data at runtime matches the expected type. + * This implies assertSet. */ -function isUndefined(val) { - return typeof val === 'undefined'; +function assertBoolean(value) { + assertSet(value); + if (typeof value !== "boolean") { + throw new Error("Value must be a boolean"); + } + return value; } - +exports.assertBoolean = assertBoolean; /** - * Determine if a value is a Buffer + * A runtime checker that ensures a given value is a string. * - * @param {Object} val The value to test - * @returns {boolean} True if value is a Buffer, otherwise false + * This is used when you want to verify that data at runtime matches the expected type. + * This implies assertSet. */ -function isBuffer(val) { - return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) - && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val); +function assertString(value) { + assertSet(value); + if (typeof value !== "string") { + throw new Error("Value must be a string"); + } + return value; } - +exports.assertString = assertString; /** - * Determine if a value is an ArrayBuffer + * A runtime checker that ensures a given value is a number * - * @param {Object} val The value to test - * @returns {boolean} True if value is an ArrayBuffer, otherwise false + * This is used when you want to verify that data at runtime matches the expected type. + * This implies assertSet. */ -function isArrayBuffer(val) { - return toString.call(val) === '[object ArrayBuffer]'; +function assertNumber(value) { + assertSet(value); + if (typeof value !== "number") { + throw new Error("Value must be a number"); + } + return value; } - +exports.assertNumber = assertNumber; /** - * Determine if a value is a FormData + * A runtime checker that ensures a given value is an array * - * @param {Object} val The value to test - * @returns {boolean} True if value is an FormData, otherwise false + * This is used when you want to verify that data at runtime matches the expected type. + * This implies assertSet. */ -function isFormData(val) { - return (typeof FormData !== 'undefined') && (val instanceof FormData); +function assertArray(value) { + assertSet(value); + if (!Array.isArray(value)) { + throw new Error("Value must be a an array"); + } + return value; } - +exports.assertArray = assertArray; /** - * Determine if a value is a view on an ArrayBuffer + * A runtime checker that ensures a given value is an object in the sense of JSON + * (an unordered collection of key–value pairs where the keys are strings) * - * @param {Object} val The value to test - * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + * This is used when you want to verify that data at runtime matches the expected type. + * This implies assertSet. */ -function isArrayBufferView(val) { - var result; - if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { - result = ArrayBuffer.isView(val); - } else { - result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer); - } - return result; +function assertObject(value) { + assertSet(value); + if (typeof value !== "object") { + throw new Error("Value must be an object"); + } + // Exclude special kind of objects like Array, Date or Uint8Array + // Object.prototype.toString() returns a specified value: + // http://www.ecma-international.org/ecma-262/7.0/index.html#sec-object.prototype.tostring + if (Object.prototype.toString.call(value) !== "[object Object]") { + throw new Error("Value must be a simple object"); + } + return value; } - +exports.assertObject = assertObject; /** - * Determine if a value is a String + * Throws an error if value matches the empty value for the + * given type (array/string of length 0, number of value 0, ...) * - * @param {Object} val The value to test - * @returns {boolean} True if value is a String, otherwise false - */ -function isString(val) { - return typeof val === 'string'; -} - -/** - * Determine if a value is a Number + * Otherwise returns the value. * - * @param {Object} val The value to test - * @returns {boolean} True if value is a Number, otherwise false + * This implies assertSet */ -function isNumber(val) { - return typeof val === 'number'; +function assertNotEmpty(value) { + assertSet(value); + if (typeof value === "number" && value === 0) { + throw new Error("must provide a non-zero value"); + } + else if (value.length === 0) { + throw new Error("must provide a non-empty value"); + } + return value; } - -/** - * Determine if a value is an Object - * - * @param {Object} val The value to test - * @returns {boolean} True if value is an Object, otherwise false - */ -function isObject(val) { - return val !== null && typeof val === 'object'; +exports.assertNotEmpty = assertNotEmpty; +// may will run the transform if value is defined, otherwise returns undefined +function may(transform, value) { + return value === undefined || value === null ? undefined : transform(value); +} +exports.may = may; +function dictionaryToStringMap(obj) { + const out = new Map(); + for (const key of Object.keys(obj)) { + const value = obj[key]; + if (typeof value !== "string") { + throw new Error("Found dictionary value of type other than string"); + } + out.set(key, value); + } + return out; +} +exports.dictionaryToStringMap = dictionaryToStringMap; +// Encodings needed for hashing block headers +// Several of these functions are inspired by https://github.com/nomic-io/js-tendermint/blob/tendermint-0.30/src/ +// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L193-L195 +function encodeString(s) { + const utf8 = (0, encoding_1.toUtf8)(s); + return Uint8Array.from([utf8.length, ...utf8]); +} +exports.encodeString = encodeString; +// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L79-L87 +function encodeUvarint(n) { + return n >= 0x80 + ? // eslint-disable-next-line no-bitwise + Uint8Array.from([(n & 0xff) | 0x80, ...encodeUvarint(n >> 7)]) + : // eslint-disable-next-line no-bitwise + Uint8Array.from([n & 0xff]); +} +exports.encodeUvarint = encodeUvarint; +// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L134-L178 +function encodeTime(time) { + const milliseconds = time.getTime(); + const seconds = Math.floor(milliseconds / 1000); + const secondsArray = seconds ? [0x08, ...encodeUvarint(seconds)] : new Uint8Array(); + const nanoseconds = (time.nanoseconds || 0) + (milliseconds % 1000) * 1e6; + const nanosecondsArray = nanoseconds ? [0x10, ...encodeUvarint(nanoseconds)] : new Uint8Array(); + return Uint8Array.from([...secondsArray, ...nanosecondsArray]); +} +exports.encodeTime = encodeTime; +// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L180-L187 +function encodeBytes(bytes) { + // Since we're only dealing with short byte arrays we don't need a full VarBuffer implementation yet + if (bytes.length >= 0x80) + throw new Error("Not implemented for byte arrays of length 128 or more"); + return bytes.length ? Uint8Array.from([bytes.length, ...bytes]) : new Uint8Array(); +} +exports.encodeBytes = encodeBytes; +function encodeVersion(version) { + const blockArray = version.block + ? Uint8Array.from([0x08, ...encodeUvarint(version.block)]) + : new Uint8Array(); + const appArray = version.app ? Uint8Array.from([0x10, ...encodeUvarint(version.app)]) : new Uint8Array(); + return Uint8Array.from([...blockArray, ...appArray]); +} +exports.encodeVersion = encodeVersion; +function encodeBlockId(blockId) { + return Uint8Array.from([ + 0x0a, + blockId.hash.length, + ...blockId.hash, + 0x12, + blockId.parts.hash.length + 4, + 0x08, + blockId.parts.total, + 0x12, + blockId.parts.hash.length, + ...blockId.parts.hash, + ]); } +exports.encodeBlockId = encodeBlockId; +//# sourceMappingURL=encodings.js.map -/** - * Determine if a value is a plain Object - * - * @param {Object} val The value to test - * @return {boolean} True if value is a plain Object, otherwise false - */ -function isPlainObject(val) { - if (toString.call(val) !== '[object Object]') { - return false; - } +/***/ }), - var prototype = Object.getPrototypeOf(val); - return prototype === null || prototype === Object.prototype; -} +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/hasher.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/hasher.js ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { -/** - * Determine if a value is a Date - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a Date, otherwise false - */ -function isDate(val) { - return toString.call(val) === '[object Date]'; -} +"use strict"; -/** - * Determine if a value is a File - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a File, otherwise false - */ -function isFile(val) { - return toString.call(val) === '[object File]'; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.hashBlock = exports.hashTx = void 0; +const crypto_1 = __webpack_require__(/*! @cosmjs/crypto */ "./node_modules/@cosmjs/crypto/build/index.js"); +const encodings_1 = __webpack_require__(/*! ./encodings */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/encodings.js"); +// hash is sha256 +// https://github.com/tendermint/tendermint/blob/master/UPGRADING.md#v0260 +function hashTx(tx) { + return (0, crypto_1.sha256)(tx); } - -/** - * Determine if a value is a Blob - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a Blob, otherwise false - */ -function isBlob(val) { - return toString.call(val) === '[object Blob]'; +exports.hashTx = hashTx; +function getSplitPoint(n) { + if (n < 1) + throw new Error("Cannot split an empty tree"); + const largestPowerOf2 = 2 ** Math.floor(Math.log2(n)); + return largestPowerOf2 < n ? largestPowerOf2 : largestPowerOf2 / 2; } - -/** - * Determine if a value is a Function - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a Function, otherwise false - */ -function isFunction(val) { - return toString.call(val) === '[object Function]'; +function hashLeaf(leaf) { + const hash = new crypto_1.Sha256(Uint8Array.from([0])); + hash.update(leaf); + return hash.digest(); +} +function hashInner(left, right) { + const hash = new crypto_1.Sha256(Uint8Array.from([1])); + hash.update(left); + hash.update(right); + return hash.digest(); +} +// See https://github.com/tendermint/tendermint/blob/v0.31.8/docs/spec/blockchain/encoding.md#merkleroot +// Note: the hashes input may not actually be hashes, especially before a recursive call +function hashTree(hashes) { + switch (hashes.length) { + case 0: + throw new Error("Cannot hash empty tree"); + case 1: + return hashLeaf(hashes[0]); + default: { + const slicePoint = getSplitPoint(hashes.length); + const left = hashTree(hashes.slice(0, slicePoint)); + const right = hashTree(hashes.slice(slicePoint)); + return hashInner(left, right); + } + } +} +function hashBlock(header) { + if (!header.lastBlockId) { + throw new Error("Hashing a block header with no last block ID (i.e. header at height 1) is not supported. If you need this, contributions are welcome. Please add documentation and test vectors for this case."); + } + const encodedFields = [ + (0, encodings_1.encodeVersion)(header.version), + (0, encodings_1.encodeString)(header.chainId), + (0, encodings_1.encodeUvarint)(header.height), + (0, encodings_1.encodeTime)(header.time), + (0, encodings_1.encodeBlockId)(header.lastBlockId), + (0, encodings_1.encodeBytes)(header.lastCommitHash), + (0, encodings_1.encodeBytes)(header.dataHash), + (0, encodings_1.encodeBytes)(header.validatorsHash), + (0, encodings_1.encodeBytes)(header.nextValidatorsHash), + (0, encodings_1.encodeBytes)(header.consensusHash), + (0, encodings_1.encodeBytes)(header.appHash), + (0, encodings_1.encodeBytes)(header.lastResultsHash), + (0, encodings_1.encodeBytes)(header.evidenceHash), + (0, encodings_1.encodeBytes)(header.proposerAddress), + ]; + return hashTree(encodedFields); } +exports.hashBlock = hashBlock; +//# sourceMappingURL=hasher.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/index.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/index.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +// Note: all exports in this module are publicly available via +// `import { tendermint37 } from "@cosmjs/tendermint-rpc"` +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Tendermint37Client = exports.VoteType = exports.broadcastTxSyncSuccess = exports.broadcastTxCommitSuccess = exports.SubscriptionEventType = exports.Method = void 0; +var requests_1 = __webpack_require__(/*! ./requests */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/requests.js"); +Object.defineProperty(exports, "Method", ({ enumerable: true, get: function () { return requests_1.Method; } })); +Object.defineProperty(exports, "SubscriptionEventType", ({ enumerable: true, get: function () { return requests_1.SubscriptionEventType; } })); +var responses_1 = __webpack_require__(/*! ./responses */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/responses.js"); +Object.defineProperty(exports, "broadcastTxCommitSuccess", ({ enumerable: true, get: function () { return responses_1.broadcastTxCommitSuccess; } })); +Object.defineProperty(exports, "broadcastTxSyncSuccess", ({ enumerable: true, get: function () { return responses_1.broadcastTxSyncSuccess; } })); +Object.defineProperty(exports, "VoteType", ({ enumerable: true, get: function () { return responses_1.VoteType; } })); +var tendermint37client_1 = __webpack_require__(/*! ./tendermint37client */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/tendermint37client.js"); +Object.defineProperty(exports, "Tendermint37Client", ({ enumerable: true, get: function () { return tendermint37client_1.Tendermint37Client; } })); +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/requests.js": +/*!****************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/requests.js ***! + \****************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +/* eslint-disable @typescript-eslint/naming-convention */ +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.buildQuery = exports.SubscriptionEventType = exports.Method = void 0; /** - * Determine if a value is a Stream + * RPC methods as documented in https://docs.tendermint.com/master/rpc/ * - * @param {Object} val The value to test - * @returns {boolean} True if value is a Stream, otherwise false + * Enum raw value must match the spelling in the "shell" example call (snake_case) */ -function isStream(val) { - return isObject(val) && isFunction(val.pipe); -} - +var Method; +(function (Method) { + Method["AbciInfo"] = "abci_info"; + Method["AbciQuery"] = "abci_query"; + Method["Block"] = "block"; + /** Get block headers for minHeight <= height <= maxHeight. */ + Method["Blockchain"] = "blockchain"; + Method["BlockResults"] = "block_results"; + Method["BlockSearch"] = "block_search"; + Method["BroadcastTxAsync"] = "broadcast_tx_async"; + Method["BroadcastTxSync"] = "broadcast_tx_sync"; + Method["BroadcastTxCommit"] = "broadcast_tx_commit"; + Method["Commit"] = "commit"; + Method["Genesis"] = "genesis"; + Method["Health"] = "health"; + Method["NumUnconfirmedTxs"] = "num_unconfirmed_txs"; + Method["Status"] = "status"; + Method["Subscribe"] = "subscribe"; + Method["Tx"] = "tx"; + Method["TxSearch"] = "tx_search"; + Method["Validators"] = "validators"; + Method["Unsubscribe"] = "unsubscribe"; +})(Method = exports.Method || (exports.Method = {})); /** - * Determine if a value is a URLSearchParams object + * Raw values must match the tendermint event name * - * @param {Object} val The value to test - * @returns {boolean} True if value is a URLSearchParams object, otherwise false + * @see https://godoc.org/github.com/tendermint/tendermint/types#pkg-constants */ -function isURLSearchParams(val) { - return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams; +var SubscriptionEventType; +(function (SubscriptionEventType) { + SubscriptionEventType["NewBlock"] = "NewBlock"; + SubscriptionEventType["NewBlockHeader"] = "NewBlockHeader"; + SubscriptionEventType["Tx"] = "Tx"; +})(SubscriptionEventType = exports.SubscriptionEventType || (exports.SubscriptionEventType = {})); +function buildQuery(components) { + const tags = components.tags ? components.tags : []; + const tagComponents = tags.map((tag) => `${tag.key}='${tag.value}'`); + const rawComponents = components.raw ? [components.raw] : []; + return [...tagComponents, ...rawComponents].join(" AND "); } +exports.buildQuery = buildQuery; +//# sourceMappingURL=requests.js.map + +/***/ }), + +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/responses.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/responses.js ***! + \*****************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.VoteType = exports.broadcastTxCommitSuccess = exports.broadcastTxSyncSuccess = void 0; /** - * Trim excess whitespace off the beginning and end of a string - * - * @param {String} str The String to trim - * @returns {String} The String freed of excess whitespace + * Returns true iff transaction made it successfully into the transaction pool */ -function trim(str) { - return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, ''); +function broadcastTxSyncSuccess(res) { + // code must be 0 on success + return res.code === 0; } - +exports.broadcastTxSyncSuccess = broadcastTxSyncSuccess; /** - * Determine if we're running in a standard browser environment - * - * This allows axios to run in a web worker, and react-native. - * Both environments support XMLHttpRequest, but not fully standard globals. - * - * web workers: - * typeof window -> undefined - * typeof document -> undefined - * - * react-native: - * navigator.product -> 'ReactNative' - * nativescript - * navigator.product -> 'NativeScript' or 'NS' + * Returns true iff transaction made it successfully into a block + * (i.e. success in `check_tx` and `deliver_tx` field) */ -function isStandardBrowserEnv() { - if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || - navigator.product === 'NativeScript' || - navigator.product === 'NS')) { - return false; - } - return ( - typeof window !== 'undefined' && - typeof document !== 'undefined' - ); +function broadcastTxCommitSuccess(response) { + // code must be 0 on success + // deliverTx may be present but empty on failure + return response.checkTx.code === 0 && !!response.deliverTx && response.deliverTx.code === 0; } - +exports.broadcastTxCommitSuccess = broadcastTxCommitSuccess; /** - * Iterate over an Array or an Object invoking a function for each item. - * - * If `obj` is an Array callback will be called passing - * the value, index, and complete array for each item. - * - * If 'obj' is an Object callback will be called passing - * the value, key, and complete object for each property. - * - * @param {Object|Array} obj The object to iterate - * @param {Function} fn The callback to invoke for each item + * raw values from https://github.com/tendermint/tendermint/blob/dfa9a9a30a666132425b29454e90a472aa579a48/types/vote.go#L44 */ -function forEach(obj, fn) { - // Don't bother if no value provided - if (obj === null || typeof obj === 'undefined') { - return; - } +var VoteType; +(function (VoteType) { + VoteType[VoteType["PreVote"] = 1] = "PreVote"; + VoteType[VoteType["PreCommit"] = 2] = "PreCommit"; +})(VoteType = exports.VoteType || (exports.VoteType = {})); +//# sourceMappingURL=responses.js.map - // Force an array if not already something iterable - if (typeof obj !== 'object') { - /*eslint no-param-reassign:0*/ - obj = [obj]; - } +/***/ }), - if (isArray(obj)) { - // Iterate over array values - for (var i = 0, l = obj.length; i < l; i++) { - fn.call(null, obj[i], i, obj); +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/tendermint37client.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/tendermint37client.js ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; } - } else { - // Iterate over object keys - for (var key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key)) { - fn.call(null, obj[key], key, obj); - } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Tendermint37Client = void 0; +const jsonrpc_1 = __webpack_require__(/*! ../jsonrpc */ "./node_modules/@cosmjs/tendermint-rpc/build/jsonrpc.js"); +const rpcclients_1 = __webpack_require__(/*! ../rpcclients */ "./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/index.js"); +const adaptor_1 = __webpack_require__(/*! ./adaptor */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/adaptor/index.js"); +const requests = __importStar(__webpack_require__(/*! ./requests */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/requests.js")); +class Tendermint37Client { + /** + * Creates a new Tendermint client for the given endpoint. + * + * Uses HTTP when the URL schema is http or https. Uses WebSockets otherwise. + */ + static async connect(endpoint) { + let rpcClient; + if (typeof endpoint === "object") { + rpcClient = new rpcclients_1.HttpClient(endpoint); + } + else { + const useHttp = endpoint.startsWith("http://") || endpoint.startsWith("https://"); + rpcClient = useHttp ? new rpcclients_1.HttpClient(endpoint) : new rpcclients_1.WebsocketClient(endpoint); + } + // For some very strange reason I don't understand, tests start to fail on some systems + // (our CI) when skipping the status call before doing other queries. Sleeping a little + // while did not help. Thus we query the version as a way to say "hi" to the backend, + // even in cases where we don't use the result. + const _version = await this.detectVersion(rpcClient); + return Tendermint37Client.create(rpcClient); + } + /** + * Creates a new Tendermint client given an RPC client. + */ + static async create(rpcClient) { + return new Tendermint37Client(rpcClient); + } + static async detectVersion(client) { + const req = (0, jsonrpc_1.createJsonRpcRequest)(requests.Method.Status); + const response = await client.execute(req); + const result = response.result; + if (!result || !result.node_info) { + throw new Error("Unrecognized format for status response"); + } + const version = result.node_info.version; + if (typeof version !== "string") { + throw new Error("Unrecognized version format: must be string"); + } + return version; + } + /** + * Use `Tendermint37Client.connect` or `Tendermint37Client.create` to create an instance. + */ + constructor(client) { + this.client = client; + } + disconnect() { + this.client.disconnect(); + } + async abciInfo() { + const query = { method: requests.Method.AbciInfo }; + return this.doCall(query, adaptor_1.Params.encodeAbciInfo, adaptor_1.Responses.decodeAbciInfo); + } + async abciQuery(params) { + const query = { params: params, method: requests.Method.AbciQuery }; + return this.doCall(query, adaptor_1.Params.encodeAbciQuery, adaptor_1.Responses.decodeAbciQuery); + } + async block(height) { + const query = { method: requests.Method.Block, params: { height: height } }; + return this.doCall(query, adaptor_1.Params.encodeBlock, adaptor_1.Responses.decodeBlock); + } + async blockResults(height) { + const query = { + method: requests.Method.BlockResults, + params: { height: height }, + }; + return this.doCall(query, adaptor_1.Params.encodeBlockResults, adaptor_1.Responses.decodeBlockResults); + } + /** + * Search for events that are in a block. + * + * NOTE + * This method will error on any node that is running a Tendermint version lower than 0.34.9. + * + * @see https://docs.tendermint.com/master/rpc/#/Info/block_search + */ + async blockSearch(params) { + const query = { params: params, method: requests.Method.BlockSearch }; + const resp = await this.doCall(query, adaptor_1.Params.encodeBlockSearch, adaptor_1.Responses.decodeBlockSearch); + return { + ...resp, + // make sure we sort by height, as tendermint may be sorting by string value of the height + blocks: [...resp.blocks].sort((a, b) => a.block.header.height - b.block.header.height), + }; + } + // this should paginate through all blockSearch options to ensure it returns all results. + // starts with page 1 or whatever was provided (eg. to start on page 7) + // + // NOTE + // This method will error on any node that is running a Tendermint version lower than 0.34.9. + async blockSearchAll(params) { + let page = params.page || 1; + const blocks = []; + let done = false; + while (!done) { + const resp = await this.blockSearch({ ...params, page: page }); + blocks.push(...resp.blocks); + if (blocks.length < resp.totalCount) { + page++; + } + else { + done = true; + } + } + // make sure we sort by height, as tendermint may be sorting by string value of the height + // and the earlier items may be in a higher page than the later items + blocks.sort((a, b) => a.block.header.height - b.block.header.height); + return { + totalCount: blocks.length, + blocks: blocks, + }; + } + /** + * Queries block headers filtered by minHeight <= height <= maxHeight. + * + * @param minHeight The minimum height to be included in the result. Defaults to 0. + * @param maxHeight The maximum height to be included in the result. Defaults to infinity. + */ + async blockchain(minHeight, maxHeight) { + const query = { + method: requests.Method.Blockchain, + params: { + minHeight: minHeight, + maxHeight: maxHeight, + }, + }; + return this.doCall(query, adaptor_1.Params.encodeBlockchain, adaptor_1.Responses.decodeBlockchain); + } + /** + * Broadcast transaction to mempool and wait for response + * + * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_sync + */ + async broadcastTxSync(params) { + const query = { params: params, method: requests.Method.BroadcastTxSync }; + return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxSync); + } + /** + * Broadcast transaction to mempool and do not wait for result + * + * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_async + */ + async broadcastTxAsync(params) { + const query = { params: params, method: requests.Method.BroadcastTxAsync }; + return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxAsync); + } + /** + * Broadcast transaction to mempool and wait for block + * + * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_commit + */ + async broadcastTxCommit(params) { + const query = { params: params, method: requests.Method.BroadcastTxCommit }; + return this.doCall(query, adaptor_1.Params.encodeBroadcastTx, adaptor_1.Responses.decodeBroadcastTxCommit); + } + async commit(height) { + const query = { method: requests.Method.Commit, params: { height: height } }; + return this.doCall(query, adaptor_1.Params.encodeCommit, adaptor_1.Responses.decodeCommit); + } + async genesis() { + const query = { method: requests.Method.Genesis }; + return this.doCall(query, adaptor_1.Params.encodeGenesis, adaptor_1.Responses.decodeGenesis); + } + async health() { + const query = { method: requests.Method.Health }; + return this.doCall(query, adaptor_1.Params.encodeHealth, adaptor_1.Responses.decodeHealth); + } + async numUnconfirmedTxs() { + const query = { method: requests.Method.NumUnconfirmedTxs }; + return this.doCall(query, adaptor_1.Params.encodeNumUnconfirmedTxs, adaptor_1.Responses.decodeNumUnconfirmedTxs); + } + async status() { + const query = { method: requests.Method.Status }; + return this.doCall(query, adaptor_1.Params.encodeStatus, adaptor_1.Responses.decodeStatus); + } + subscribeNewBlock() { + const request = { + method: requests.Method.Subscribe, + query: { type: requests.SubscriptionEventType.NewBlock }, + }; + return this.subscribe(request, adaptor_1.Responses.decodeNewBlockEvent); + } + subscribeNewBlockHeader() { + const request = { + method: requests.Method.Subscribe, + query: { type: requests.SubscriptionEventType.NewBlockHeader }, + }; + return this.subscribe(request, adaptor_1.Responses.decodeNewBlockHeaderEvent); + } + subscribeTx(query) { + const request = { + method: requests.Method.Subscribe, + query: { + type: requests.SubscriptionEventType.Tx, + raw: query, + }, + }; + return this.subscribe(request, adaptor_1.Responses.decodeTxEvent); + } + /** + * Get a single transaction by hash + * + * @see https://docs.tendermint.com/master/rpc/#/Info/tx + */ + async tx(params) { + const query = { params: params, method: requests.Method.Tx }; + return this.doCall(query, adaptor_1.Params.encodeTx, adaptor_1.Responses.decodeTx); + } + /** + * Search for transactions that are in a block + * + * @see https://docs.tendermint.com/master/rpc/#/Info/tx_search + */ + async txSearch(params) { + const query = { params: params, method: requests.Method.TxSearch }; + return this.doCall(query, adaptor_1.Params.encodeTxSearch, adaptor_1.Responses.decodeTxSearch); + } + // this should paginate through all txSearch options to ensure it returns all results. + // starts with page 1 or whatever was provided (eg. to start on page 7) + async txSearchAll(params) { + let page = params.page || 1; + const txs = []; + let done = false; + while (!done) { + const resp = await this.txSearch({ ...params, page: page }); + txs.push(...resp.txs); + if (txs.length < resp.totalCount) { + page++; + } + else { + done = true; + } + } + return { + totalCount: txs.length, + txs: txs, + }; + } + async validators(params) { + const query = { + method: requests.Method.Validators, + params: params, + }; + return this.doCall(query, adaptor_1.Params.encodeValidators, adaptor_1.Responses.decodeValidators); + } + async validatorsAll(height) { + const validators = []; + let page = 1; + let done = false; + let blockHeight = height; + while (!done) { + const response = await this.validators({ + per_page: 50, + height: blockHeight, + page: page, + }); + validators.push(...response.validators); + blockHeight = blockHeight || response.blockHeight; + if (validators.length < response.total) { + page++; + } + else { + done = true; + } + } + return { + // NOTE: Default value is for type safety but this should always be set + blockHeight: blockHeight ?? 0, + count: validators.length, + total: validators.length, + validators: validators, + }; + } + // doCall is a helper to handle the encode/call/decode logic + async doCall(request, encode, decode) { + const req = encode(request); + const result = await this.client.execute(req); + return decode(result); + } + subscribe(request, decode) { + if (!(0, rpcclients_1.instanceOfRpcStreamingClient)(this.client)) { + throw new Error("This RPC client type cannot subscribe to events"); + } + const req = adaptor_1.Params.encodeSubscribe(request); + const eventStream = this.client.listen(req); + return eventStream.map((event) => { + return decode(event); + }); } - } } +exports.Tendermint37Client = Tendermint37Client; +//# sourceMappingURL=tendermint37client.js.map -/** - * Accepts varargs expecting each argument to be an object, then - * immutably merges the properties of each object and returns result. - * - * When multiple objects contain the same key the later object in - * the arguments list will take precedence. - * - * Example: - * - * ```js - * var result = merge({foo: 123}, {foo: 456}); - * console.log(result.foo); // outputs 456 - * ``` - * - * @param {Object} obj1 Object to merge - * @returns {Object} Result of all merge properties - */ -function merge(/* obj1, obj2, obj3, ... */) { - var result = {}; - function assignValue(val, key) { - if (isPlainObject(result[key]) && isPlainObject(val)) { - result[key] = merge(result[key], val); - } else if (isPlainObject(val)) { - result[key] = merge({}, val); - } else if (isArray(val)) { - result[key] = val.slice(); - } else { - result[key] = val; - } - } +/***/ }), - for (var i = 0, l = arguments.length; i < l; i++) { - forEach(arguments[i], assignValue); - } - return result; -} +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/tendermintclient.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/tendermintclient.js ***! + \***********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.connectComet = exports.isComet38Client = exports.isTendermint37Client = exports.isTendermint34Client = void 0; +const comet38_1 = __webpack_require__(/*! ./comet38 */ "./node_modules/@cosmjs/tendermint-rpc/build/comet38/index.js"); +const tendermint34_1 = __webpack_require__(/*! ./tendermint34 */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/index.js"); +const tendermint37_1 = __webpack_require__(/*! ./tendermint37 */ "./node_modules/@cosmjs/tendermint-rpc/build/tendermint37/index.js"); +function isTendermint34Client(client) { + return client instanceof tendermint34_1.Tendermint34Client; +} +exports.isTendermint34Client = isTendermint34Client; +function isTendermint37Client(client) { + return client instanceof tendermint37_1.Tendermint37Client; +} +exports.isTendermint37Client = isTendermint37Client; +function isComet38Client(client) { + return client instanceof comet38_1.Comet38Client; +} +exports.isComet38Client = isComet38Client; /** - * Extends object a by mutably adding to it the properties of object b. - * - * @param {Object} a The object to be extended - * @param {Object} b The object to copy properties from - * @param {Object} thisArg The object to bind function to - * @return {Object} The resulting value of object a + * Auto-detects the version of the backend and uses a suitable client. */ -function extend(a, b, thisArg) { - forEach(b, function assignValue(val, key) { - if (thisArg && typeof val === 'function') { - a[key] = bind(val, thisArg); - } else { - a[key] = val; +async function connectComet(endpoint) { + // Tendermint/CometBFT 0.34/0.37/0.38 auto-detection. Starting with 0.37 we seem to get reliable versions again 🎉 + // Using 0.34 as the fallback. + let out; + const tm37Client = await tendermint37_1.Tendermint37Client.connect(endpoint); + const version = (await tm37Client.status()).nodeInfo.version; + if (version.startsWith("0.37.")) { + out = tm37Client; } - }); - return a; + else if (version.startsWith("0.38.")) { + tm37Client.disconnect(); + out = await comet38_1.Comet38Client.connect(endpoint); + } + else { + tm37Client.disconnect(); + out = await tendermint34_1.Tendermint34Client.connect(endpoint); + } + return out; } +exports.connectComet = connectComet; +//# sourceMappingURL=tendermintclient.js.map -/** - * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) - * - * @param {string} content with BOM - * @return {string} content value without BOM - */ -function stripBOM(content) { - if (content.charCodeAt(0) === 0xFEFF) { - content = content.slice(1); - } - return content; -} +/***/ }), -module.exports = { - isArray: isArray, - isArrayBuffer: isArrayBuffer, - isBuffer: isBuffer, - isFormData: isFormData, - isArrayBufferView: isArrayBufferView, - isString: isString, - isNumber: isNumber, - isObject: isObject, - isPlainObject: isPlainObject, - isUndefined: isUndefined, - isDate: isDate, - isFile: isFile, - isBlob: isBlob, - isFunction: isFunction, - isStream: isStream, - isURLSearchParams: isURLSearchParams, - isStandardBrowserEnv: isStandardBrowserEnv, - forEach: forEach, - merge: merge, - extend: extend, - trim: trim, - stripBOM: stripBOM -}; +/***/ "./node_modules/@cosmjs/tendermint-rpc/build/types.js": +/*!************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/build/types.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +// Types in this file are exported outside of the @cosmjs/tendermint-rpc package, +// e.g. as part of a request or response +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.BlockIdFlag = void 0; +var BlockIdFlag; +(function (BlockIdFlag) { + BlockIdFlag[BlockIdFlag["Unknown"] = 0] = "Unknown"; + BlockIdFlag[BlockIdFlag["Absent"] = 1] = "Absent"; + BlockIdFlag[BlockIdFlag["Commit"] = 2] = "Commit"; + BlockIdFlag[BlockIdFlag["Nil"] = 3] = "Nil"; + BlockIdFlag[BlockIdFlag["Unrecognized"] = -1] = "Unrecognized"; +})(BlockIdFlag = exports.BlockIdFlag || (exports.BlockIdFlag = {})); +//# sourceMappingURL=types.js.map /***/ }), @@ -54158,10074 +41837,16648 @@ var __WEBPACK_AMD_DEFINE_RESULT__;;(function (globalObject) { o[19] = c; out.length++; } - return out; + return out; + }; + + // Polyfill comb + if (!Math.imul) { + comb10MulTo = smallMulTo; + } + + function bigMulTo (self, num, out) { + out.negative = num.negative ^ self.negative; + out.length = self.length + num.length; + + var carry = 0; + var hncarry = 0; + for (var k = 0; k < out.length - 1; k++) { + // Sum all words with the same `i + j = k` and accumulate `ncarry`, + // note that ncarry could be >= 0x3ffffff + var ncarry = hncarry; + hncarry = 0; + var rword = carry & 0x3ffffff; + var maxJ = Math.min(k, num.length - 1); + for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { + var i = k - j; + var a = self.words[i] | 0; + var b = num.words[j] | 0; + var r = a * b; + + var lo = r & 0x3ffffff; + ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0; + lo = (lo + rword) | 0; + rword = lo & 0x3ffffff; + ncarry = (ncarry + (lo >>> 26)) | 0; + + hncarry += ncarry >>> 26; + ncarry &= 0x3ffffff; + } + out.words[k] = rword; + carry = ncarry; + ncarry = hncarry; + } + if (carry !== 0) { + out.words[k] = carry; + } else { + out.length--; + } + + return out._strip(); + } + + function jumboMulTo (self, num, out) { + // Temporary disable, see https://github.com/indutny/bn.js/issues/211 + // var fftm = new FFTM(); + // return fftm.mulp(self, num, out); + return bigMulTo(self, num, out); + } + + BN.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; + }; + + // Cooley-Tukey algorithm for FFT + // slightly revisited to rely on looping instead of recursion + + function FFTM (x, y) { + this.x = x; + this.y = y; + } + + FFTM.prototype.makeRBT = function makeRBT (N) { + var t = new Array(N); + var l = BN.prototype._countBits(N) - 1; + for (var i = 0; i < N; i++) { + t[i] = this.revBin(i, l, N); + } + + return t; + }; + + // Returns binary-reversed representation of `x` + FFTM.prototype.revBin = function revBin (x, l, N) { + if (x === 0 || x === N - 1) return x; + + var rb = 0; + for (var i = 0; i < l; i++) { + rb |= (x & 1) << (l - i - 1); + x >>= 1; + } + + return rb; + }; + + // Performs "tweedling" phase, therefore 'emulating' + // behaviour of the recursive algorithm + FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) { + for (var i = 0; i < N; i++) { + rtws[i] = rws[rbt[i]]; + itws[i] = iws[rbt[i]]; + } + }; + + FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) { + this.permute(rbt, rws, iws, rtws, itws, N); + + for (var s = 1; s < N; 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 < N; 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; + + /* jshint maxdepth : false */ + if (j !== l) { + rx = rtwdf * rtwdf_ - itwdf * itwdf_; + + itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; + rtwdf_ = rx; + } + } + } + } + }; + + FFTM.prototype.guessLen13b = function guessLen13b (n, m) { + var N = Math.max(m, n) | 1; + var odd = N & 1; + var i = 0; + for (N = N / 2 | 0; N; N = N >>> 1) { + i++; + } + + return 1 << i + 1 + odd; + }; + + FFTM.prototype.conjugate = function conjugate (rws, iws, N) { + if (N <= 1) return; + + for (var i = 0; i < N / 2; i++) { + var t = rws[i]; + + rws[i] = rws[N - i - 1]; + rws[N - i - 1] = t; + + t = iws[i]; + + iws[i] = -iws[N - i - 1]; + iws[N - i - 1] = -t; + } + }; + + FFTM.prototype.normalize13b = function normalize13b (ws, N) { + var carry = 0; + for (var i = 0; i < N / 2; i++) { + var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + + Math.round(ws[2 * i] / N) + + carry; + + ws[i] = w & 0x3ffffff; + + if (w < 0x4000000) { + carry = 0; + } else { + carry = w / 0x4000000 | 0; + } + } + + return ws; + }; + + FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) { + var carry = 0; + for (var i = 0; i < len; i++) { + carry = carry + (ws[i] | 0); + + rws[2 * i] = carry & 0x1fff; carry = carry >>> 13; + rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13; + } + + // Pad with zeroes + for (i = 2 * len; i < N; ++i) { + rws[i] = 0; + } + + assert(carry === 0); + assert((carry & ~0x1fff) === 0); + }; + + FFTM.prototype.stub = function stub (N) { + var ph = new Array(N); + for (var i = 0; i < N; i++) { + ph[i] = 0; + } + + return ph; + }; + + FFTM.prototype.mulp = function mulp (x, y, out) { + var N = 2 * this.guessLen13b(x.length, y.length); + + var rbt = this.makeRBT(N); + + var _ = this.stub(N); + + var rws = new Array(N); + var rwst = new Array(N); + var iwst = new Array(N); + + var nrws = new Array(N); + var nrwst = new Array(N); + var niwst = new Array(N); + + var rmws = out.words; + rmws.length = N; + + this.convert13b(x.words, x.length, rws, N); + this.convert13b(y.words, y.length, nrws, N); + + this.transform(rws, _, rwst, iwst, N, rbt); + this.transform(nrws, _, nrwst, niwst, N, rbt); + + for (var i = 0; i < N; 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, N); + this.transform(rwst, iwst, rmws, _, N, rbt); + this.conjugate(rmws, _, N); + this.normalize13b(rmws, N); + + out.negative = x.negative ^ y.negative; + out.length = x.length + y.length; + return out._strip(); + }; + + // Multiply `this` by `num` + BN.prototype.mul = function mul (num) { + var out = new BN(null); + out.words = new Array(this.length + num.length); + return this.mulTo(num, out); + }; + + // Multiply employing FFT + BN.prototype.mulf = function mulf (num) { + var out = new BN(null); + out.words = new Array(this.length + num.length); + return jumboMulTo(this, num, out); + }; + + // In-place Multiplication + BN.prototype.imul = function imul (num) { + return this.clone().mulTo(num, this); + }; + + BN.prototype.imuln = function imuln (num) { + var isNegNum = num < 0; + if (isNegNum) num = -num; + + assert(typeof num === 'number'); + assert(num < 0x4000000); + + // Carry + var carry = 0; + for (var i = 0; i < this.length; i++) { + var w = (this.words[i] | 0) * num; + var lo = (w & 0x3ffffff) + (carry & 0x3ffffff); + carry >>= 26; + carry += (w / 0x4000000) | 0; + // NOTE: lo is 27bit maximum + carry += lo >>> 26; + this.words[i] = lo & 0x3ffffff; + } + + if (carry !== 0) { + this.words[i] = carry; + this.length++; + } + + return isNegNum ? this.ineg() : this; + }; + + BN.prototype.muln = function muln (num) { + return this.clone().imuln(num); + }; + + // `this` * `this` + BN.prototype.sqr = function sqr () { + return this.mul(this); + }; + + // `this` * `this` in-place + BN.prototype.isqr = function isqr () { + return this.imul(this.clone()); + }; + + // Math.pow(`this`, `num`) + BN.prototype.pow = function pow (num) { + var w = toBitArray(num); + if (w.length === 0) return new BN(1); + + // Skip leading zeroes + 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; + }; + + // Shift-left in-place + BN.prototype.iushln = function iushln (bits) { + assert(typeof bits === 'number' && bits >= 0); + var r = bits % 26; + var s = (bits - r) / 26; + var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r); + var i; + + if (r !== 0) { + var carry = 0; + + for (i = 0; i < this.length; i++) { + var newCarry = this.words[i] & carryMask; + var c = ((this.words[i] | 0) - newCarry) << r; + this.words[i] = c | carry; + carry = newCarry >>> (26 - r); + } + + 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(); + }; + + BN.prototype.ishln = function ishln (bits) { + // TODO(indutny): implement me + assert(this.negative === 0); + return this.iushln(bits); + }; + + // Shift-right in-place + // NOTE: `hint` is a lowest bit before trailing zeroes + // NOTE: if `extended` is present - it will be filled with destroyed bits + BN.prototype.iushrn = function iushrn (bits, hint, extended) { + assert(typeof bits === 'number' && bits >= 0); + var h; + if (hint) { + h = (hint - (hint % 26)) / 26; + } else { + h = 0; + } + + var r = bits % 26; + var s = Math.min((bits - r) / 26, this.length); + var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r); + var maskedWords = extended; + + h -= s; + h = Math.max(0, h); + + // Extended mode, copy masked part + if (maskedWords) { + for (var i = 0; i < s; i++) { + maskedWords.words[i] = this.words[i]; + } + maskedWords.length = s; + } + + if (s === 0) { + // No-op, we should not move anything at all + } 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 - r)) | (word >>> r); + carry = word & mask; + } + + // Push carried bits as a mask + if (maskedWords && carry !== 0) { + maskedWords.words[maskedWords.length++] = carry; + } + + if (this.length === 0) { + this.words[0] = 0; + this.length = 1; + } + + return this._strip(); + }; + + BN.prototype.ishrn = function ishrn (bits, hint, extended) { + // TODO(indutny): implement me + assert(this.negative === 0); + return this.iushrn(bits, hint, extended); + }; + + // Shift-left + BN.prototype.shln = function shln (bits) { + return this.clone().ishln(bits); + }; + + BN.prototype.ushln = function ushln (bits) { + return this.clone().iushln(bits); + }; + + // Shift-right + BN.prototype.shrn = function shrn (bits) { + return this.clone().ishrn(bits); + }; + + BN.prototype.ushrn = function ushrn (bits) { + return this.clone().iushrn(bits); + }; + + // Test if n bit is set + BN.prototype.testn = function testn (bit) { + assert(typeof bit === 'number' && bit >= 0); + var r = bit % 26; + var s = (bit - r) / 26; + var q = 1 << r; + + // Fast case: bit is much higher than all existing words + if (this.length <= s) return false; + + // Check bit and return + var w = this.words[s]; + + return !!(w & q); + }; + + // Return only lowers bits of number (in-place) + BN.prototype.imaskn = function imaskn (bits) { + assert(typeof bits === 'number' && bits >= 0); + var r = bits % 26; + var s = (bits - r) / 26; + + assert(this.negative === 0, 'imaskn works only with positive numbers'); + + if (this.length <= s) { + return this; + } + + if (r !== 0) { + s++; + } + this.length = Math.min(s, this.length); + + if (r !== 0) { + var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r); + this.words[this.length - 1] &= mask; + } + + return this._strip(); + }; + + // Return only lowers bits of number + BN.prototype.maskn = function maskn (bits) { + return this.clone().imaskn(bits); + }; + + // Add plain number `num` to `this` + BN.prototype.iaddn = function iaddn (num) { + assert(typeof num === 'number'); + assert(num < 0x4000000); + if (num < 0) return this.isubn(-num); + + // Possible sign change + 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; + } + + // Add without checks + return this._iaddn(num); + }; + + BN.prototype._iaddn = function _iaddn (num) { + this.words[0] += num; + + // Carry + for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) { + this.words[i] -= 0x4000000; + 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; + }; + + // Subtract plain number `num` from `this` + BN.prototype.isubn = function isubn (num) { + assert(typeof num === 'number'); + assert(num < 0x4000000); + 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 { + // Carry + for (var i = 0; i < this.length && this.words[i] < 0; i++) { + this.words[i] += 0x4000000; + this.words[i + 1] -= 1; + } + } + + return this._strip(); + }; + + BN.prototype.addn = function addn (num) { + return this.clone().iaddn(num); + }; + + BN.prototype.subn = function subn (num) { + return this.clone().isubn(num); + }; + + BN.prototype.iabs = function iabs () { + this.negative = 0; + + return this; + }; + + BN.prototype.abs = function abs () { + return this.clone().iabs(); + }; + + BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, 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) * mul; + w -= right & 0x3ffffff; + carry = (w >> 26) - ((right / 0x4000000) | 0); + this.words[i + shift] = w & 0x3ffffff; + } + for (; i < this.length - shift; i++) { + w = (this.words[i + shift] | 0) + carry; + carry = w >> 26; + this.words[i + shift] = w & 0x3ffffff; + } + + if (carry === 0) return this._strip(); + + // Subtraction overflow + assert(carry === -1); + carry = 0; + for (i = 0; i < this.length; i++) { + w = -(this.words[i] | 0) + carry; + carry = w >> 26; + this.words[i] = w & 0x3ffffff; + } + this.negative = 1; + + return this._strip(); + }; + + BN.prototype._wordDiv = function _wordDiv (num, mode) { + var shift = this.length - num.length; + + var a = this.clone(); + var b = num; + + // Normalize + 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; + } + + // Initialize quotient + var m = a.length - b.length; + var q; + + if (mode !== 'mod') { + q = new BN(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) * 0x4000000 + + (a.words[b.length + j - 1] | 0); + + // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max + // (0x7ffffff) + qj = Math.min((qj / bhi) | 0, 0x3ffffff); + + 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(); + + // Denormalize + if (mode !== 'div' && shift !== 0) { + a.iushrn(shift); + } + + return { + div: q || null, + mod: a + }; }; - // Polyfill comb - if (!Math.imul) { - comb10MulTo = smallMulTo; - } + // NOTE: 1) `mode` can be set to `mod` to request mod only, + // to `div` to request div only, or be absent to + // request both div & mod + // 2) `positive` is true if unsigned mod is requested + BN.prototype.divmod = function divmod (num, mode, positive) { + assert(!num.isZero()); - function bigMulTo (self, num, out) { - out.negative = num.negative ^ self.negative; - out.length = self.length + num.length; + if (this.isZero()) { + return { + div: new BN(0), + mod: new BN(0) + }; + } - var carry = 0; - var hncarry = 0; - for (var k = 0; k < out.length - 1; k++) { - // Sum all words with the same `i + j = k` and accumulate `ncarry`, - // note that ncarry could be >= 0x3ffffff - var ncarry = hncarry; - hncarry = 0; - var rword = carry & 0x3ffffff; - var maxJ = Math.min(k, num.length - 1); - for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { - var i = k - j; - var a = self.words[i] | 0; - var b = num.words[j] | 0; - var r = a * b; + var div, mod, res; + if (this.negative !== 0 && num.negative === 0) { + res = this.neg().divmod(num, mode); - var lo = r & 0x3ffffff; - ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0; - lo = (lo + rword) | 0; - rword = lo & 0x3ffffff; - ncarry = (ncarry + (lo >>> 26)) | 0; + if (mode !== 'mod') { + div = res.div.neg(); + } - hncarry += ncarry >>> 26; - ncarry &= 0x3ffffff; + if (mode !== 'div') { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.iadd(num); + } } - out.words[k] = rword; - carry = ncarry; - ncarry = hncarry; + + return { + div: div, + mod: mod + }; } - if (carry !== 0) { - out.words[k] = carry; - } else { - out.length--; + + if (this.negative === 0 && num.negative !== 0) { + res = this.divmod(num.neg(), mode); + + if (mode !== 'mod') { + div = res.div.neg(); + } + + return { + div: div, + mod: res.mod + }; } - return out._strip(); - } + if ((this.negative & num.negative) !== 0) { + res = this.neg().divmod(num.neg(), mode); - function jumboMulTo (self, num, out) { - // Temporary disable, see https://github.com/indutny/bn.js/issues/211 - // var fftm = new FFTM(); - // return fftm.mulp(self, num, out); - return bigMulTo(self, num, out); - } + if (mode !== 'div') { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.isub(num); + } + } - BN.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 { + div: res.div, + mod: mod + }; } - return res; - }; + // Both numbers are positive at this point - // Cooley-Tukey algorithm for FFT - // slightly revisited to rely on looping instead of recursion + // Strip both numbers to approximate shift value + if (num.length > this.length || this.cmp(num) < 0) { + return { + div: new BN(0), + mod: this + }; + } - function FFTM (x, y) { - this.x = x; - this.y = y; - } + // Very short reduction + if (num.length === 1) { + if (mode === 'div') { + return { + div: this.divn(num.words[0]), + mod: null + }; + } - FFTM.prototype.makeRBT = function makeRBT (N) { - var t = new Array(N); - var l = BN.prototype._countBits(N) - 1; - for (var i = 0; i < N; i++) { - t[i] = this.revBin(i, l, N); + if (mode === 'mod') { + return { + div: null, + mod: new BN(this.modrn(num.words[0])) + }; + } + + return { + div: this.divn(num.words[0]), + mod: new BN(this.modrn(num.words[0])) + }; } - return t; + return this._wordDiv(num, mode); }; - // Returns binary-reversed representation of `x` - FFTM.prototype.revBin = function revBin (x, l, N) { - if (x === 0 || x === N - 1) return x; + // Find `this` / `num` + BN.prototype.div = function div (num) { + return this.divmod(num, 'div', false).div; + }; - var rb = 0; - for (var i = 0; i < l; i++) { - rb |= (x & 1) << (l - i - 1); - x >>= 1; + // Find `this` % `num` + BN.prototype.mod = function mod (num) { + return this.divmod(num, 'mod', false).mod; + }; + + BN.prototype.umod = function umod (num) { + return this.divmod(num, 'mod', true).mod; + }; + + // Find Round(`this` / `num`) + BN.prototype.divRound = function divRound (num) { + var dm = this.divmod(num); + + // Fast case - exact division + 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 r2 = num.andln(1); + var cmp = mod.cmp(half); + + // Round down + if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div; + + // Round up + return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); + }; + + BN.prototype.modrn = function modrn (num) { + var isNegNum = num < 0; + if (isNegNum) num = -num; + + assert(num <= 0x3ffffff); + 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 rb; + return isNegNum ? -acc : acc; }; - // Performs "tweedling" phase, therefore 'emulating' - // behaviour of the recursive algorithm - FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) { - for (var i = 0; i < N; i++) { - rtws[i] = rws[rbt[i]]; - itws[i] = iws[rbt[i]]; + // WARNING: DEPRECATED + BN.prototype.modn = function modn (num) { + return this.modrn(num); + }; + + // In-place division by number + BN.prototype.idivn = function idivn (num) { + var isNegNum = num < 0; + if (isNegNum) num = -num; + + assert(num <= 0x3ffffff); + + var carry = 0; + for (var i = this.length - 1; i >= 0; i--) { + var w = (this.words[i] | 0) + carry * 0x4000000; + this.words[i] = (w / num) | 0; + carry = w % num; } + + this._strip(); + return isNegNum ? this.ineg() : this; }; - FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) { - this.permute(rbt, rws, iws, rtws, itws, N); + BN.prototype.divn = function divn (num) { + return this.clone().idivn(num); + }; - for (var s = 1; s < N; s <<= 1) { - var l = s << 1; + BN.prototype.egcd = function egcd (p) { + assert(p.negative === 0); + assert(!p.isZero()); - var rtwdf = Math.cos(2 * Math.PI / l); - var itwdf = Math.sin(2 * Math.PI / l); + var x = this; + var y = p.clone(); - for (var p = 0; p < N; p += l) { - var rtwdf_ = rtwdf; - var itwdf_ = itwdf; + if (x.negative !== 0) { + x = x.umod(p); + } else { + x = x.clone(); + } - for (var j = 0; j < s; j++) { - var re = rtws[p + j]; - var ie = itws[p + j]; + // A * x + B * y = x + var A = new BN(1); + var B = new BN(0); - var ro = rtws[p + j + s]; - var io = itws[p + j + s]; + // C * x + D * y = y + var C = new BN(0); + var D = new BN(1); - var rx = rtwdf_ * ro - itwdf_ * io; + var g = 0; - io = rtwdf_ * io + itwdf_ * ro; - ro = rx; + while (x.isEven() && y.isEven()) { + x.iushrn(1); + y.iushrn(1); + ++g; + } - rtws[p + j] = re + ro; - itws[p + j] = ie + io; + var yp = y.clone(); + var xp = x.clone(); - rtws[p + j + s] = re - ro; - itws[p + j + s] = ie - io; + 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); + } - /* jshint maxdepth : false */ - if (j !== l) { - rx = rtwdf * rtwdf_ - itwdf * itwdf_; + A.iushrn(1); + B.iushrn(1); + } + } - itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; - rtwdf_ = rx; + 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) + }; }; - FFTM.prototype.guessLen13b = function guessLen13b (n, m) { - var N = Math.max(m, n) | 1; - var odd = N & 1; - var i = 0; - for (N = N / 2 | 0; N; N = N >>> 1) { - i++; + // This is reduced incarnation of the binary EEA + // above, designated to invert members of the + // _prime_ fields F(p) at a maximal speed + BN.prototype._invmp = function _invmp (p) { + assert(p.negative === 0); + assert(!p.isZero()); + + var a = this; + var b = p.clone(); + + if (a.negative !== 0) { + a = a.umod(p); + } else { + a = a.clone(); } - return 1 << i + 1 + odd; - }; + var x1 = new BN(1); + var x2 = new BN(0); - FFTM.prototype.conjugate = function conjugate (rws, iws, N) { - if (N <= 1) return; + var delta = b.clone(); - for (var i = 0; i < N / 2; i++) { - var t = rws[i]; + 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); + } - rws[i] = rws[N - i - 1]; - rws[N - i - 1] = t; + x1.iushrn(1); + } + } - t = iws[i]; + 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); + } - iws[i] = -iws[N - i - 1]; - iws[N - i - 1] = -t; + 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; }; - FFTM.prototype.normalize13b = function normalize13b (ws, N) { - var carry = 0; - for (var i = 0; i < N / 2; i++) { - var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + - Math.round(ws[2 * i] / N) + - carry; + BN.prototype.gcd = function gcd (num) { + if (this.isZero()) return num.abs(); + if (num.isZero()) return this.abs(); - ws[i] = w & 0x3ffffff; + var a = this.clone(); + var b = num.clone(); + a.negative = 0; + b.negative = 0; - if (w < 0x4000000) { - carry = 0; - } else { - carry = w / 0x4000000 | 0; - } + // Remove common factor of two + for (var shift = 0; a.isEven() && b.isEven(); shift++) { + a.iushrn(1); + b.iushrn(1); } - return ws; + do { + while (a.isEven()) { + a.iushrn(1); + } + while (b.isEven()) { + b.iushrn(1); + } + + var r = a.cmp(b); + if (r < 0) { + // Swap `a` and `b` to make `a` always bigger than `b` + var t = a; + a = b; + b = t; + } else if (r === 0 || b.cmpn(1) === 0) { + break; + } + + a.isub(b); + } while (true); + + return b.iushln(shift); }; - FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) { - var carry = 0; - for (var i = 0; i < len; i++) { - carry = carry + (ws[i] | 0); + // Invert number in the field F(num) + BN.prototype.invm = function invm (num) { + return this.egcd(num).a.umod(num); + }; - rws[2 * i] = carry & 0x1fff; carry = carry >>> 13; - rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13; + BN.prototype.isEven = function isEven () { + return (this.words[0] & 1) === 0; + }; + + BN.prototype.isOdd = function isOdd () { + return (this.words[0] & 1) === 1; + }; + + // And first word and num + BN.prototype.andln = function andln (num) { + return this.words[0] & num; + }; + + // Increment at the bit position in-line + BN.prototype.bincn = function bincn (bit) { + assert(typeof bit === 'number'); + var r = bit % 26; + var s = (bit - r) / 26; + var q = 1 << r; + + // Fast case: bit is much higher than all existing words + if (this.length <= s) { + this._expand(s + 1); + this.words[s] |= q; + return this; } - // Pad with zeroes - for (i = 2 * len; i < N; ++i) { - rws[i] = 0; + // Add bit and propagate, if needed + 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 &= 0x3ffffff; + this.words[i] = w; + } + if (carry !== 0) { + this.words[i] = carry; + this.length++; } + return this; + }; - assert(carry === 0); - assert((carry & ~0x1fff) === 0); + BN.prototype.isZero = function isZero () { + return this.length === 1 && this.words[0] === 0; }; - FFTM.prototype.stub = function stub (N) { - var ph = new Array(N); - for (var i = 0; i < N; i++) { - ph[i] = 0; + BN.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; + } + + assert(num <= 0x3ffffff, '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; + }; - return ph; + // Compare two numbers and return: + // 1 - if `this` > `num` + // 0 - if `this` == `num` + // -1 - if `this` < `num` + BN.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; }; - FFTM.prototype.mulp = function mulp (x, y, out) { - var N = 2 * this.guessLen13b(x.length, y.length); + // Unsigned comparison + BN.prototype.ucmp = function ucmp (num) { + // At this point both numbers have the same sign + if (this.length > num.length) return 1; + if (this.length < num.length) return -1; - var rbt = this.makeRBT(N); + var res = 0; + for (var i = this.length - 1; i >= 0; i--) { + var a = this.words[i] | 0; + var b = num.words[i] | 0; - var _ = this.stub(N); + if (a === b) continue; + if (a < b) { + res = -1; + } else if (a > b) { + res = 1; + } + break; + } + return res; + }; - var rws = new Array(N); - var rwst = new Array(N); - var iwst = new Array(N); + BN.prototype.gtn = function gtn (num) { + return this.cmpn(num) === 1; + }; - var nrws = new Array(N); - var nrwst = new Array(N); - var niwst = new Array(N); + BN.prototype.gt = function gt (num) { + return this.cmp(num) === 1; + }; - var rmws = out.words; - rmws.length = N; + BN.prototype.gten = function gten (num) { + return this.cmpn(num) >= 0; + }; - this.convert13b(x.words, x.length, rws, N); - this.convert13b(y.words, y.length, nrws, N); + BN.prototype.gte = function gte (num) { + return this.cmp(num) >= 0; + }; - this.transform(rws, _, rwst, iwst, N, rbt); - this.transform(nrws, _, nrwst, niwst, N, rbt); + BN.prototype.ltn = function ltn (num) { + return this.cmpn(num) === -1; + }; - for (var i = 0; i < N; i++) { - var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i]; - iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i]; - rwst[i] = rx; - } + BN.prototype.lt = function lt (num) { + return this.cmp(num) === -1; + }; - this.conjugate(rwst, iwst, N); - this.transform(rwst, iwst, rmws, _, N, rbt); - this.conjugate(rmws, _, N); - this.normalize13b(rmws, N); + BN.prototype.lten = function lten (num) { + return this.cmpn(num) <= 0; + }; - out.negative = x.negative ^ y.negative; - out.length = x.length + y.length; - return out._strip(); + BN.prototype.lte = function lte (num) { + return this.cmp(num) <= 0; }; - // Multiply `this` by `num` - BN.prototype.mul = function mul (num) { - var out = new BN(null); - out.words = new Array(this.length + num.length); - return this.mulTo(num, out); + BN.prototype.eqn = function eqn (num) { + return this.cmpn(num) === 0; }; - // Multiply employing FFT - BN.prototype.mulf = function mulf (num) { - var out = new BN(null); - out.words = new Array(this.length + num.length); - return jumboMulTo(this, num, out); + BN.prototype.eq = function eq (num) { + return this.cmp(num) === 0; }; - // In-place Multiplication - BN.prototype.imul = function imul (num) { - return this.clone().mulTo(num, this); + // + // A reduce context, could be using montgomery or something better, depending + // on the `m` itself. + // + BN.red = function red (num) { + return new Red(num); }; - BN.prototype.imuln = function imuln (num) { - var isNegNum = num < 0; - if (isNegNum) num = -num; + BN.prototype.toRed = function toRed (ctx) { + assert(!this.red, 'Already a number in reduction context'); + assert(this.negative === 0, 'red works only with positives'); + return ctx.convertTo(this)._forceRed(ctx); + }; - assert(typeof num === 'number'); - assert(num < 0x4000000); + BN.prototype.fromRed = function fromRed () { + assert(this.red, 'fromRed works only with numbers in reduction context'); + return this.red.convertFrom(this); + }; - // Carry - var carry = 0; - for (var i = 0; i < this.length; i++) { - var w = (this.words[i] | 0) * num; - var lo = (w & 0x3ffffff) + (carry & 0x3ffffff); - carry >>= 26; - carry += (w / 0x4000000) | 0; - // NOTE: lo is 27bit maximum - carry += lo >>> 26; - this.words[i] = lo & 0x3ffffff; - } + BN.prototype._forceRed = function _forceRed (ctx) { + this.red = ctx; + return this; + }; - if (carry !== 0) { - this.words[i] = carry; - this.length++; - } + BN.prototype.forceRed = function forceRed (ctx) { + assert(!this.red, 'Already a number in reduction context'); + return this._forceRed(ctx); + }; - return isNegNum ? this.ineg() : this; + BN.prototype.redAdd = function redAdd (num) { + assert(this.red, 'redAdd works only with red numbers'); + return this.red.add(this, num); }; - BN.prototype.muln = function muln (num) { - return this.clone().imuln(num); + BN.prototype.redIAdd = function redIAdd (num) { + assert(this.red, 'redIAdd works only with red numbers'); + return this.red.iadd(this, num); }; - // `this` * `this` - BN.prototype.sqr = function sqr () { - return this.mul(this); + BN.prototype.redSub = function redSub (num) { + assert(this.red, 'redSub works only with red numbers'); + return this.red.sub(this, num); }; - // `this` * `this` in-place - BN.prototype.isqr = function isqr () { - return this.imul(this.clone()); + BN.prototype.redISub = function redISub (num) { + assert(this.red, 'redISub works only with red numbers'); + return this.red.isub(this, num); }; - // Math.pow(`this`, `num`) - BN.prototype.pow = function pow (num) { - var w = toBitArray(num); - if (w.length === 0) return new BN(1); + BN.prototype.redShl = function redShl (num) { + assert(this.red, 'redShl works only with red numbers'); + return this.red.shl(this, num); + }; - // Skip leading zeroes - var res = this; - for (var i = 0; i < w.length; i++, res = res.sqr()) { - if (w[i] !== 0) break; - } + BN.prototype.redMul = function redMul (num) { + assert(this.red, 'redMul works only with red numbers'); + this.red._verify2(this, num); + return this.red.mul(this, num); + }; - if (++i < w.length) { - for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) { - if (w[i] === 0) continue; + BN.prototype.redIMul = function redIMul (num) { + assert(this.red, 'redMul works only with red numbers'); + this.red._verify2(this, num); + return this.red.imul(this, num); + }; - res = res.mul(q); + BN.prototype.redSqr = function redSqr () { + assert(this.red, 'redSqr works only with red numbers'); + this.red._verify1(this); + return this.red.sqr(this); + }; + + BN.prototype.redISqr = function redISqr () { + assert(this.red, 'redISqr works only with red numbers'); + this.red._verify1(this); + return this.red.isqr(this); + }; + + // Square root over p + BN.prototype.redSqrt = function redSqrt () { + assert(this.red, 'redSqrt works only with red numbers'); + this.red._verify1(this); + return this.red.sqrt(this); + }; + + BN.prototype.redInvm = function redInvm () { + assert(this.red, 'redInvm works only with red numbers'); + this.red._verify1(this); + return this.red.invm(this); + }; + + // Return negative clone of `this` % `red modulo` + BN.prototype.redNeg = function redNeg () { + assert(this.red, 'redNeg works only with red numbers'); + this.red._verify1(this); + return this.red.neg(this); + }; + + BN.prototype.redPow = function redPow (num) { + assert(this.red && !num.red, 'redPow(normalNum)'); + this.red._verify1(this); + return this.red.pow(this, num); + }; + + // Prime numbers with efficient reduction + var primes = { + k256: null, + p224: null, + p192: null, + p25519: null + }; + + // Pseudo-Mersenne prime + function MPrime (name, p) { + // P = 2 ^ N - K + this.name = name; + this.p = new BN(p, 16); + this.n = this.p.bitLength(); + this.k = new BN(1).iushln(this.n).isub(this.p); + + this.tmp = this._tmp(); + } + + MPrime.prototype._tmp = function _tmp () { + var tmp = new BN(null); + tmp.words = new Array(Math.ceil(this.n / 13)); + return tmp; + }; + + MPrime.prototype.ireduce = function ireduce (num) { + // Assumes that `num` is less than `P^2` + // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P) + var r = num; + var rlen; + + do { + this.split(r, this.tmp); + r = this.imulK(r); + r = r.iadd(this.tmp); + rlen = r.bitLength(); + } while (rlen > this.n); + + var cmp = rlen < this.n ? -1 : r.ucmp(this.p); + if (cmp === 0) { + r.words[0] = 0; + r.length = 1; + } else if (cmp > 0) { + r.isub(this.p); + } else { + if (r.strip !== undefined) { + // r is a BN v4 instance + r.strip(); + } else { + // r is a BN v5 instance + r._strip(); } } - return res; + return r; }; - // Shift-left in-place - BN.prototype.iushln = function iushln (bits) { - assert(typeof bits === 'number' && bits >= 0); - var r = bits % 26; - var s = (bits - r) / 26; - var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r); - var i; + MPrime.prototype.split = function split (input, out) { + input.iushrn(this.n, 0, out); + }; - if (r !== 0) { - var carry = 0; + MPrime.prototype.imulK = function imulK (num) { + return num.imul(this.k); + }; - for (i = 0; i < this.length; i++) { - var newCarry = this.words[i] & carryMask; - var c = ((this.words[i] | 0) - newCarry) << r; - this.words[i] = c | carry; - carry = newCarry >>> (26 - r); - } + function K256 () { + MPrime.call( + this, + 'k256', + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f'); + } + inherits(K256, MPrime); - if (carry) { - this.words[i] = carry; - this.length++; - } + K256.prototype.split = function split (input, output) { + // 256 = 9 * 26 + 22 + var mask = 0x3fffff; + + var outLen = Math.min(input.length, 9); + for (var i = 0; i < outLen; i++) { + output.words[i] = input.words[i]; } + output.length = outLen; - if (s !== 0) { - for (i = this.length - 1; i >= 0; i--) { - this.words[i + s] = this.words[i]; - } + if (input.length <= 9) { + input.words[0] = 0; + input.length = 1; + return; + } - for (i = 0; i < s; i++) { - this.words[i] = 0; - } + // Shift by 9 limbs + var prev = input.words[9]; + output.words[output.length++] = prev & mask; - this.length += s; + 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; } + }; - return this._strip(); + K256.prototype.imulK = function imulK (num) { + // K = 0x1000003d1 = [ 0x40, 0x3d1 ] + num.words[num.length] = 0; + num.words[num.length + 1] = 0; + num.length += 2; + + // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390 + var lo = 0; + for (var i = 0; i < num.length; i++) { + var w = num.words[i] | 0; + lo += w * 0x3d1; + num.words[i] = lo & 0x3ffffff; + lo = w * 0x40 + ((lo / 0x4000000) | 0); + } + + // Fast length reduction + if (num.words[num.length - 1] === 0) { + num.length--; + if (num.words[num.length - 1] === 0) { + num.length--; + } + } + return num; }; - BN.prototype.ishln = function ishln (bits) { - // TODO(indutny): implement me - assert(this.negative === 0); - return this.iushln(bits); + function P224 () { + MPrime.call( + this, + 'p224', + 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001'); + } + inherits(P224, MPrime); + + function P192 () { + MPrime.call( + this, + 'p192', + 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff'); + } + inherits(P192, MPrime); + + function P25519 () { + // 2 ^ 255 - 19 + MPrime.call( + this, + '25519', + '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed'); + } + inherits(P25519, MPrime); + + P25519.prototype.imulK = function imulK (num) { + // K = 0x13 + var carry = 0; + for (var i = 0; i < num.length; i++) { + var hi = (num.words[i] | 0) * 0x13 + carry; + var lo = hi & 0x3ffffff; + hi >>>= 26; + + num.words[i] = lo; + carry = hi; + } + if (carry !== 0) { + num.words[num.length++] = carry; + } + return num; }; - // Shift-right in-place - // NOTE: `hint` is a lowest bit before trailing zeroes - // NOTE: if `extended` is present - it will be filled with destroyed bits - BN.prototype.iushrn = function iushrn (bits, hint, extended) { - assert(typeof bits === 'number' && bits >= 0); - var h; - if (hint) { - h = (hint - (hint % 26)) / 26; + // Exported mostly for testing purposes, use plain name instead + BN._prime = function prime (name) { + // Cached version of prime + if (primes[name]) return primes[name]; + + var prime; + if (name === 'k256') { + prime = new K256(); + } else if (name === 'p224') { + prime = new P224(); + } else if (name === 'p192') { + prime = new P192(); + } else if (name === 'p25519') { + prime = new P25519(); } else { - h = 0; + throw new Error('Unknown prime ' + name); + } + primes[name] = prime; + + return prime; + }; + + // + // Base reduction engine + // + function Red (m) { + if (typeof m === 'string') { + var prime = BN._prime(m); + this.m = prime.p; + this.prime = prime; + } else { + assert(m.gtn(1), 'modulus must be greater than 1'); + this.m = m; + this.prime = null; + } + } + + Red.prototype._verify1 = function _verify1 (a) { + assert(a.negative === 0, 'red works only with positives'); + assert(a.red, 'red works only with red numbers'); + }; + + Red.prototype._verify2 = function _verify2 (a, b) { + assert((a.negative | b.negative) === 0, 'red works only with positives'); + assert(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 neg (a) { + if (a.isZero()) { + return a.clone(); } - var r = bits % 26; - var s = Math.min((bits - r) / 26, this.length); - var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r); - var maskedWords = extended; + return this.m.sub(a)._forceRed(this); + }; - h -= s; - h = Math.max(0, h); + Red.prototype.add = function add (a, b) { + this._verify2(a, b); - // Extended mode, copy masked part - if (maskedWords) { - for (var i = 0; i < s; i++) { - maskedWords.words[i] = this.words[i]; - } - maskedWords.length = s; + var res = a.add(b); + if (res.cmp(this.m) >= 0) { + res.isub(this.m); } + return res._forceRed(this); + }; - if (s === 0) { - // No-op, we should not move anything at all - } 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; - } + Red.prototype.iadd = function iadd (a, b) { + this._verify2(a, b); - 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 - r)) | (word >>> r); - carry = word & mask; + var res = a.iadd(b); + if (res.cmp(this.m) >= 0) { + res.isub(this.m); } + return res; + }; - // Push carried bits as a mask - if (maskedWords && carry !== 0) { - maskedWords.words[maskedWords.length++] = carry; - } + Red.prototype.sub = function sub (a, b) { + this._verify2(a, b); - if (this.length === 0) { - this.words[0] = 0; - this.length = 1; + var res = a.sub(b); + if (res.cmpn(0) < 0) { + res.iadd(this.m); } + return res._forceRed(this); + }; - return this._strip(); + 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; }; - BN.prototype.ishrn = function ishrn (bits, hint, extended) { - // TODO(indutny): implement me - assert(this.negative === 0); - return this.iushrn(bits, hint, extended); + Red.prototype.shl = function shl (a, num) { + this._verify1(a); + return this.imod(a.ushln(num)); }; - // Shift-left - BN.prototype.shln = function shln (bits) { - return this.clone().ishln(bits); + Red.prototype.imul = function imul (a, b) { + this._verify2(a, b); + return this.imod(a.imul(b)); }; - BN.prototype.ushln = function ushln (bits) { - return this.clone().iushln(bits); + Red.prototype.mul = function mul (a, b) { + this._verify2(a, b); + return this.imod(a.mul(b)); }; - // Shift-right - BN.prototype.shrn = function shrn (bits) { - return this.clone().ishrn(bits); + Red.prototype.isqr = function isqr (a) { + return this.imul(a, a.clone()); }; - BN.prototype.ushrn = function ushrn (bits) { - return this.clone().iushrn(bits); + Red.prototype.sqr = function sqr (a) { + return this.mul(a, a); }; - // Test if n bit is set - BN.prototype.testn = function testn (bit) { - assert(typeof bit === 'number' && bit >= 0); - var r = bit % 26; - var s = (bit - r) / 26; - var q = 1 << r; + Red.prototype.sqrt = function sqrt (a) { + if (a.isZero()) return a.clone(); - // Fast case: bit is much higher than all existing words - if (this.length <= s) return false; + var mod3 = this.m.andln(3); + assert(mod3 % 2 === 1); - // Check bit and return - var w = this.words[s]; + // Fast case + if (mod3 === 3) { + var pow = this.m.add(new BN(1)).iushrn(2); + return this.pow(a, pow); + } - return !!(w & q); - }; + // Tonelli-Shanks algorithm (Totally unoptimized and slow) + // + // Find Q and S, that Q * 2 ^ S = (P - 1) + var q = this.m.subn(1); + var s = 0; + while (!q.isZero() && q.andln(1) === 0) { + s++; + q.iushrn(1); + } + assert(!q.isZero()); - // Return only lowers bits of number (in-place) - BN.prototype.imaskn = function imaskn (bits) { - assert(typeof bits === 'number' && bits >= 0); - var r = bits % 26; - var s = (bits - r) / 26; + var one = new BN(1).toRed(this); + var nOne = one.redNeg(); - assert(this.negative === 0, 'imaskn works only with positive numbers'); + // Find quadratic non-residue + // NOTE: Max is such because of generalized Riemann hypothesis. + var lpow = this.m.subn(1).iushrn(1); + var z = this.m.bitLength(); + z = new BN(2 * z * z).toRed(this); - if (this.length <= s) { - return this; + while (this.pow(z, lpow).cmp(nOne) !== 0) { + z.redIAdd(nOne); } - if (r !== 0) { - s++; - } - this.length = Math.min(s, this.length); + var c = this.pow(z, q); + var r = 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(); + } + assert(i < m); + var b = this.pow(c, new BN(1).iushln(m - i - 1)); - if (r !== 0) { - var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r); - this.words[this.length - 1] &= mask; + r = r.redMul(b); + c = b.redSqr(); + t = t.redMul(c); + m = i; } - return this._strip(); + return r; }; - // Return only lowers bits of number - BN.prototype.maskn = function maskn (bits) { - return this.clone().imaskn(bits); + 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); + } }; - // Add plain number `num` to `this` - BN.prototype.iaddn = function iaddn (num) { - assert(typeof num === 'number'); - assert(num < 0x4000000); - if (num < 0) return this.isubn(-num); + Red.prototype.pow = function pow (a, num) { + if (num.isZero()) return new BN(1).toRed(this); + if (num.cmpn(1) === 0) return a.clone(); - // Possible sign change - 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; - } + var windowSize = 4; + var wnd = new Array(1 << windowSize); + wnd[0] = new BN(1).toRed(this); + wnd[1] = a; + for (var i = 2; i < wnd.length; i++) { + wnd[i] = this.mul(wnd[i - 1], a); + } - this.negative = 0; - this.isubn(num); - this.negative = 1; - return this; + var res = wnd[0]; + var current = 0; + var currentLen = 0; + var start = num.bitLength() % 26; + if (start === 0) { + start = 26; } - // Add without checks - return this._iaddn(num); - }; + 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); + } - BN.prototype._iaddn = function _iaddn (num) { - this.words[0] += num; + if (bit === 0 && current === 0) { + currentLen = 0; + continue; + } - // Carry - for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) { - this.words[i] -= 0x4000000; - if (i === this.length - 1) { - this.words[i + 1] = 1; - } else { - this.words[i + 1]++; + 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; } - this.length = Math.max(this.length, i + 1); - return this; + return res; }; - // Subtract plain number `num` from `this` - BN.prototype.isubn = function isubn (num) { - assert(typeof num === 'number'); - assert(num < 0x4000000); - if (num < 0) return this.iaddn(-num); + Red.prototype.convertTo = function convertTo (num) { + var r = num.umod(this.m); - if (this.negative !== 0) { - this.negative = 0; - this.iaddn(num); - this.negative = 1; - return this; - } + return r === num ? r.clone() : r; + }; - this.words[0] -= num; + Red.prototype.convertFrom = function convertFrom (num) { + var res = num.clone(); + res.red = null; + return res; + }; - if (this.length === 1 && this.words[0] < 0) { - this.words[0] = -this.words[0]; - this.negative = 1; - } else { - // Carry - for (var i = 0; i < this.length && this.words[i] < 0; i++) { - this.words[i] += 0x4000000; - this.words[i + 1] -= 1; - } - } + // + // Montgomery method engine + // - return this._strip(); + BN.mont = function mont (num) { + return new Mont(num); }; - BN.prototype.addn = function addn (num) { - return this.clone().iaddn(num); - }; + function Mont (m) { + Red.call(this, m); - BN.prototype.subn = function subn (num) { - return this.clone().isubn(num); - }; + this.shift = this.m.bitLength(); + if (this.shift % 26 !== 0) { + this.shift += 26 - (this.shift % 26); + } - BN.prototype.iabs = function iabs () { - this.negative = 0; + this.r = new BN(1).iushln(this.shift); + this.r2 = this.imod(this.r.sqr()); + this.rinv = this.r._invmp(this.m); - return this; + 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); + } + inherits(Mont, Red); + + Mont.prototype.convertTo = function convertTo (num) { + return this.imod(num.ushln(this.shift)); }; - BN.prototype.abs = function abs () { - return this.clone().iabs(); + Mont.prototype.convertFrom = function convertFrom (num) { + var r = this.imod(num.mul(this.rinv)); + r.red = null; + return r; }; - BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) { - var len = num.length + shift; - var i; + Mont.prototype.imul = function imul (a, b) { + if (a.isZero() || b.isZero()) { + a.words[0] = 0; + a.length = 1; + return a; + } - this._expand(len); + 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; - 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) * mul; - w -= right & 0x3ffffff; - carry = (w >> 26) - ((right / 0x4000000) | 0); - this.words[i + shift] = w & 0x3ffffff; - } - for (; i < this.length - shift; i++) { - w = (this.words[i + shift] | 0) + carry; - carry = w >> 26; - this.words[i + shift] = w & 0x3ffffff; + if (u.cmp(this.m) >= 0) { + res = u.isub(this.m); + } else if (u.cmpn(0) < 0) { + res = u.iadd(this.m); } - if (carry === 0) return this._strip(); + return res._forceRed(this); + }; - // Subtraction overflow - assert(carry === -1); - carry = 0; - for (i = 0; i < this.length; i++) { - w = -(this.words[i] | 0) + carry; - carry = w >> 26; - this.words[i] = w & 0x3ffffff; + Mont.prototype.mul = function mul (a, b) { + if (a.isZero() || b.isZero()) return new BN(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); } - this.negative = 1; - return this._strip(); + return res._forceRed(this); }; - BN.prototype._wordDiv = function _wordDiv (num, mode) { - var shift = this.length - num.length; + Mont.prototype.invm = function invm (a) { + // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R + var res = this.imod(a._invmp(this.m).mul(this.r2)); + return res._forceRed(this); + }; +})( false || module, this); - var a = this.clone(); - var b = num; - // Normalize - 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; - } +/***/ }), - // Initialize quotient - var m = a.length - b.length; - var q; +/***/ "./node_modules/brorand/index.js": +/*!***************************************!*\ + !*** ./node_modules/brorand/index.js ***! + \***************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - if (mode !== 'mod') { - q = new BN(null); - q.length = m + 1; - q.words = new Array(q.length); - for (var i = 0; i < q.length; i++) { - q.words[i] = 0; - } - } +var r; - var diff = a.clone()._ishlnsubmul(b, 1, m); - if (diff.negative === 0) { - a = diff; - if (q) { - q.words[m] = 1; - } - } +module.exports = function rand(len) { + if (!r) + r = new Rand(null); - for (var j = m - 1; j >= 0; j--) { - var qj = (a.words[b.length + j] | 0) * 0x4000000 + - (a.words[b.length + j - 1] | 0); + return r.generate(len); +}; - // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max - // (0x7ffffff) - qj = Math.min((qj / bhi) | 0, 0x3ffffff); +function Rand(rand) { + this.rand = rand; +} +module.exports.Rand = Rand; - 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(); +Rand.prototype.generate = function generate(len) { + return this._rand(len); +}; - // Denormalize - if (mode !== 'div' && shift !== 0) { - a.iushrn(shift); - } +// Emulate crypto API using randy +Rand.prototype._rand = function _rand(n) { + if (this.rand.getBytes) + return this.rand.getBytes(n); - return { - div: q || null, - mod: a + var res = new Uint8Array(n); + for (var i = 0; i < res.length; i++) + res[i] = this.rand.getByte(); + return res; +}; + +if (typeof self === 'object') { + if (self.crypto && self.crypto.getRandomValues) { + // Modern browsers + Rand.prototype._rand = function _rand(n) { + var arr = new Uint8Array(n); + self.crypto.getRandomValues(arr); + return arr; + }; + } else if (self.msCrypto && self.msCrypto.getRandomValues) { + // IE + Rand.prototype._rand = function _rand(n) { + var arr = new Uint8Array(n); + self.msCrypto.getRandomValues(arr); + return arr; }; - }; - // NOTE: 1) `mode` can be set to `mod` to request mod only, - // to `div` to request div only, or be absent to - // request both div & mod - // 2) `positive` is true if unsigned mod is requested - BN.prototype.divmod = function divmod (num, mode, positive) { - assert(!num.isZero()); + // Safari's WebWorkers do not have `crypto` + } else if (typeof window === 'object') { + // Old junk + Rand.prototype._rand = function() { + throw new Error('Not implemented yet'); + }; + } +} else { + // Node.js or Web worker with no crypto support + try { + var crypto = __webpack_require__(/*! crypto */ "?3fc0"); + if (typeof crypto.randomBytes !== 'function') + throw new Error('Not supported'); - if (this.isZero()) { - return { - div: new BN(0), - mod: new BN(0) - }; - } + Rand.prototype._rand = function _rand(n) { + return crypto.randomBytes(n); + }; + } catch (e) { + } +} - 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); - } - } +/***/ "./node_modules/browserify-aes/aes.js": +/*!********************************************!*\ + !*** ./node_modules/browserify-aes/aes.js ***! + \********************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - return { - div: div, - mod: mod - }; - } +// based on the aes implimentation in triple sec +// https://github.com/keybase/triplesec +// which is in turn based on the one from crypto-js +// https://code.google.com/p/crypto-js/ - if (this.negative === 0 && num.negative !== 0) { - res = this.divmod(num.neg(), mode); +var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) - if (mode !== 'mod') { - div = res.div.neg(); - } +function asUInt32Array (buf) { + if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf) - return { - div: div, - mod: res.mod - }; - } + var len = (buf.length / 4) | 0 + var out = new Array(len) - if ((this.negative & num.negative) !== 0) { - res = this.neg().divmod(num.neg(), mode); + for (var i = 0; i < len; i++) { + out[i] = buf.readUInt32BE(i * 4) + } - if (mode !== 'div') { - mod = res.mod.neg(); - if (positive && mod.negative !== 0) { - mod.isub(num); - } - } + return out +} - return { - div: res.div, - mod: mod - }; - } +function scrubVec (v) { + for (var i = 0; i < v.length; v++) { + v[i] = 0 + } +} - // Both numbers are positive at this point +function cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) { + var SUB_MIX0 = SUB_MIX[0] + var SUB_MIX1 = SUB_MIX[1] + var SUB_MIX2 = SUB_MIX[2] + var SUB_MIX3 = SUB_MIX[3] - // Strip both numbers to approximate shift value - if (num.length > this.length || this.cmp(num) < 0) { - return { - div: new BN(0), - mod: this - }; - } + var s0 = M[0] ^ keySchedule[0] + var s1 = M[1] ^ keySchedule[1] + var s2 = M[2] ^ keySchedule[2] + var s3 = M[3] ^ keySchedule[3] + var t0, t1, t2, t3 + var ksRow = 4 - // Very short reduction - if (num.length === 1) { - if (mode === 'div') { - return { - div: this.divn(num.words[0]), - mod: null - }; - } + for (var round = 1; round < nRounds; round++) { + t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++] + t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++] + t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++] + t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++] + s0 = t0 + s1 = t1 + s2 = t2 + s3 = t3 + } - if (mode === 'mod') { - return { - div: null, - mod: new BN(this.modrn(num.words[0])) - }; - } + t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++] + t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++] + t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++] + t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++] + t0 = t0 >>> 0 + t1 = t1 >>> 0 + t2 = t2 >>> 0 + t3 = t3 >>> 0 - return { - div: this.divn(num.words[0]), - mod: new BN(this.modrn(num.words[0])) - }; + return [t0, t1, t2, t3] +} + +// AES constants +var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36] +var G = (function () { + // Compute double table + var d = new Array(256) + for (var j = 0; j < 256; j++) { + if (j < 128) { + d[j] = j << 1 + } else { + d[j] = (j << 1) ^ 0x11b } + } - return this._wordDiv(num, mode); - }; + var SBOX = [] + var INV_SBOX = [] + var SUB_MIX = [[], [], [], []] + var INV_SUB_MIX = [[], [], [], []] - // Find `this` / `num` - BN.prototype.div = function div (num) { - return this.divmod(num, 'div', false).div; - }; + // Walk GF(2^8) + var x = 0 + var xi = 0 + for (var i = 0; i < 256; ++i) { + // Compute sbox + var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4) + sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63 + SBOX[x] = sx + INV_SBOX[sx] = x - // Find `this` % `num` - BN.prototype.mod = function mod (num) { - return this.divmod(num, 'mod', false).mod; - }; + // Compute multiplication + var x2 = d[x] + var x4 = d[x2] + var x8 = d[x4] - BN.prototype.umod = function umod (num) { - return this.divmod(num, 'mod', true).mod; - }; + // Compute sub bytes, mix columns tables + var t = (d[sx] * 0x101) ^ (sx * 0x1010100) + SUB_MIX[0][x] = (t << 24) | (t >>> 8) + SUB_MIX[1][x] = (t << 16) | (t >>> 16) + SUB_MIX[2][x] = (t << 8) | (t >>> 24) + SUB_MIX[3][x] = t - // Find Round(`this` / `num`) - BN.prototype.divRound = function divRound (num) { - var dm = this.divmod(num); + // Compute inv sub bytes, inv mix columns tables + t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100) + INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8) + INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16) + INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24) + INV_SUB_MIX[3][sx] = t - // Fast case - exact division - if (dm.mod.isZero()) return dm.div; + if (x === 0) { + x = xi = 1 + } else { + x = x2 ^ d[d[d[x8 ^ x2]]] + xi ^= d[d[xi]] + } + } - var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; + return { + SBOX: SBOX, + INV_SBOX: INV_SBOX, + SUB_MIX: SUB_MIX, + INV_SUB_MIX: INV_SUB_MIX + } +})() - var half = num.ushrn(1); - var r2 = num.andln(1); - var cmp = mod.cmp(half); +function AES (key) { + this._key = asUInt32Array(key) + this._reset() +} - // Round down - if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div; +AES.blockSize = 4 * 4 +AES.keySize = 256 / 8 +AES.prototype.blockSize = AES.blockSize +AES.prototype.keySize = AES.keySize +AES.prototype._reset = function () { + var keyWords = this._key + var keySize = keyWords.length + var nRounds = keySize + 6 + var ksRows = (nRounds + 1) * 4 - // Round up - return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); - }; + var keySchedule = [] + for (var k = 0; k < keySize; k++) { + keySchedule[k] = keyWords[k] + } - BN.prototype.modrn = function modrn (num) { - var isNegNum = num < 0; - if (isNegNum) num = -num; + for (k = keySize; k < ksRows; k++) { + var t = keySchedule[k - 1] - assert(num <= 0x3ffffff); - var p = (1 << 26) % num; + if (k % keySize === 0) { + t = (t << 8) | (t >>> 24) + t = + (G.SBOX[t >>> 24] << 24) | + (G.SBOX[(t >>> 16) & 0xff] << 16) | + (G.SBOX[(t >>> 8) & 0xff] << 8) | + (G.SBOX[t & 0xff]) - var acc = 0; - for (var i = this.length - 1; i >= 0; i--) { - acc = (p * acc + (this.words[i] | 0)) % num; + t ^= RCON[(k / keySize) | 0] << 24 + } else if (keySize > 6 && k % keySize === 4) { + t = + (G.SBOX[t >>> 24] << 24) | + (G.SBOX[(t >>> 16) & 0xff] << 16) | + (G.SBOX[(t >>> 8) & 0xff] << 8) | + (G.SBOX[t & 0xff]) } - return isNegNum ? -acc : acc; - }; + keySchedule[k] = keySchedule[k - keySize] ^ t + } - // WARNING: DEPRECATED - BN.prototype.modn = function modn (num) { - return this.modrn(num); - }; + var invKeySchedule = [] + for (var ik = 0; ik < ksRows; ik++) { + var ksR = ksRows - ik + var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)] - // In-place division by number - BN.prototype.idivn = function idivn (num) { - var isNegNum = num < 0; - if (isNegNum) num = -num; + if (ik < 4 || ksR <= 4) { + invKeySchedule[ik] = tt + } else { + invKeySchedule[ik] = + G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^ + G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^ + G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^ + G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]] + } + } - assert(num <= 0x3ffffff); + this._nRounds = nRounds + this._keySchedule = keySchedule + this._invKeySchedule = invKeySchedule +} - var carry = 0; - for (var i = this.length - 1; i >= 0; i--) { - var w = (this.words[i] | 0) + carry * 0x4000000; - this.words[i] = (w / num) | 0; - carry = w % num; - } +AES.prototype.encryptBlockRaw = function (M) { + M = asUInt32Array(M) + return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds) +} - this._strip(); - return isNegNum ? this.ineg() : this; - }; +AES.prototype.encryptBlock = function (M) { + var out = this.encryptBlockRaw(M) + var buf = Buffer.allocUnsafe(16) + buf.writeUInt32BE(out[0], 0) + buf.writeUInt32BE(out[1], 4) + buf.writeUInt32BE(out[2], 8) + buf.writeUInt32BE(out[3], 12) + return buf +} - BN.prototype.divn = function divn (num) { - return this.clone().idivn(num); - }; +AES.prototype.decryptBlock = function (M) { + M = asUInt32Array(M) - BN.prototype.egcd = function egcd (p) { - assert(p.negative === 0); - assert(!p.isZero()); + // swap + var m1 = M[1] + M[1] = M[3] + M[3] = m1 - var x = this; - var y = p.clone(); + var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds) + var buf = Buffer.allocUnsafe(16) + buf.writeUInt32BE(out[0], 0) + buf.writeUInt32BE(out[3], 4) + buf.writeUInt32BE(out[2], 8) + buf.writeUInt32BE(out[1], 12) + return buf +} - if (x.negative !== 0) { - x = x.umod(p); - } else { - x = x.clone(); - } +AES.prototype.scrub = function () { + scrubVec(this._keySchedule) + scrubVec(this._invKeySchedule) + scrubVec(this._key) +} - // A * x + B * y = x - var A = new BN(1); - var B = new BN(0); +module.exports.AES = AES - // C * x + D * y = y - var C = new BN(0); - var D = new BN(1); - var g = 0; +/***/ }), - while (x.isEven() && y.isEven()) { - x.iushrn(1); - y.iushrn(1); - ++g; - } +/***/ "./node_modules/browserify-aes/authCipher.js": +/*!***************************************************!*\ + !*** ./node_modules/browserify-aes/authCipher.js ***! + \***************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - var yp = y.clone(); - var xp = x.clone(); +var aes = __webpack_require__(/*! ./aes */ "./node_modules/browserify-aes/aes.js") +var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) +var Transform = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") +var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") +var GHASH = __webpack_require__(/*! ./ghash */ "./node_modules/browserify-aes/ghash.js") +var xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js") +var incr32 = __webpack_require__(/*! ./incr32 */ "./node_modules/browserify-aes/incr32.js") - 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); - } +function xorTest (a, b) { + var out = 0 + if (a.length !== b.length) out++ - A.iushrn(1); - B.iushrn(1); - } - } + var len = Math.min(a.length, b.length) + for (var i = 0; i < len; ++i) { + out += (a[i] ^ b[i]) + } - 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); - } + return out +} - C.iushrn(1); - D.iushrn(1); - } - } +function calcIv (self, iv, ck) { + if (iv.length === 12) { + self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])]) + return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])]) + } + var ghash = new GHASH(ck) + var len = iv.length + var toPad = len % 16 + ghash.update(iv) + if (toPad) { + toPad = 16 - toPad + ghash.update(Buffer.alloc(toPad, 0)) + } + ghash.update(Buffer.alloc(8, 0)) + var ivBits = len * 8 + var tail = Buffer.alloc(8) + tail.writeUIntBE(ivBits, 0, 8) + ghash.update(tail) + self._finID = ghash.state + var out = Buffer.from(self._finID) + incr32(out) + return out +} +function StreamCipher (mode, key, iv, decrypt) { + Transform.call(this) - if (x.cmp(y) >= 0) { - x.isub(y); - A.isub(C); - B.isub(D); - } else { - y.isub(x); - C.isub(A); - D.isub(B); - } - } + var h = Buffer.alloc(4, 0) - return { - a: C, - b: D, - gcd: y.iushln(g) - }; - }; + this._cipher = new aes.AES(key) + var ck = this._cipher.encryptBlock(h) + this._ghash = new GHASH(ck) + iv = calcIv(this, iv, ck) - // This is reduced incarnation of the binary EEA - // above, designated to invert members of the - // _prime_ fields F(p) at a maximal speed - BN.prototype._invmp = function _invmp (p) { - assert(p.negative === 0); - assert(!p.isZero()); + this._prev = Buffer.from(iv) + this._cache = Buffer.allocUnsafe(0) + this._secCache = Buffer.allocUnsafe(0) + this._decrypt = decrypt + this._alen = 0 + this._len = 0 + this._mode = mode - var a = this; - var b = p.clone(); + this._authTag = null + this._called = false +} - if (a.negative !== 0) { - a = a.umod(p); - } else { - a = a.clone(); - } +inherits(StreamCipher, Transform) - var x1 = new BN(1); - var x2 = new BN(0); +StreamCipher.prototype._update = function (chunk) { + if (!this._called && this._alen) { + var rump = 16 - (this._alen % 16) + if (rump < 16) { + rump = Buffer.alloc(rump, 0) + this._ghash.update(rump) + } + } - var delta = b.clone(); + this._called = true + var out = this._mode.encrypt(this, chunk) + if (this._decrypt) { + this._ghash.update(chunk) + } else { + this._ghash.update(out) + } + this._len += chunk.length + return out +} - 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); - } +StreamCipher.prototype._final = function () { + if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data') - x1.iushrn(1); - } - } + var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID)) + if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data') - 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); - } + this._authTag = tag + this._cipher.scrub() +} - x2.iushrn(1); - } - } +StreamCipher.prototype.getAuthTag = function getAuthTag () { + if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state') - if (a.cmp(b) >= 0) { - a.isub(b); - x1.isub(x2); - } else { - b.isub(a); - x2.isub(x1); - } - } + return this._authTag +} - var res; - if (a.cmpn(1) === 0) { - res = x1; - } else { - res = x2; - } +StreamCipher.prototype.setAuthTag = function setAuthTag (tag) { + if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state') - if (res.cmpn(0) < 0) { - res.iadd(p); - } + this._authTag = tag +} - return res; - }; +StreamCipher.prototype.setAAD = function setAAD (buf) { + if (this._called) throw new Error('Attempting to set AAD in unsupported state') - BN.prototype.gcd = function gcd (num) { - if (this.isZero()) return num.abs(); - if (num.isZero()) return this.abs(); + this._ghash.update(buf) + this._alen += buf.length +} - var a = this.clone(); - var b = num.clone(); - a.negative = 0; - b.negative = 0; +module.exports = StreamCipher - // Remove common factor of two - 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 r = a.cmp(b); - if (r < 0) { - // Swap `a` and `b` to make `a` always bigger than `b` - var t = a; - a = b; - b = t; - } else if (r === 0 || b.cmpn(1) === 0) { - break; - } +/***/ "./node_modules/browserify-aes/browser.js": +/*!************************************************!*\ + !*** ./node_modules/browserify-aes/browser.js ***! + \************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - a.isub(b); - } while (true); +var ciphers = __webpack_require__(/*! ./encrypter */ "./node_modules/browserify-aes/encrypter.js") +var deciphers = __webpack_require__(/*! ./decrypter */ "./node_modules/browserify-aes/decrypter.js") +var modes = __webpack_require__(/*! ./modes/list.json */ "./node_modules/browserify-aes/modes/list.json") - return b.iushln(shift); - }; +function getCiphers () { + return Object.keys(modes) +} - // Invert number in the field F(num) - BN.prototype.invm = function invm (num) { - return this.egcd(num).a.umod(num); - }; +exports.createCipher = exports.Cipher = ciphers.createCipher +exports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv +exports.createDecipher = exports.Decipher = deciphers.createDecipher +exports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv +exports.listCiphers = exports.getCiphers = getCiphers - BN.prototype.isEven = function isEven () { - return (this.words[0] & 1) === 0; - }; - BN.prototype.isOdd = function isOdd () { - return (this.words[0] & 1) === 1; - }; +/***/ }), - // And first word and num - BN.prototype.andln = function andln (num) { - return this.words[0] & num; - }; +/***/ "./node_modules/browserify-aes/decrypter.js": +/*!**************************************************!*\ + !*** ./node_modules/browserify-aes/decrypter.js ***! + \**************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - // Increment at the bit position in-line - BN.prototype.bincn = function bincn (bit) { - assert(typeof bit === 'number'); - var r = bit % 26; - var s = (bit - r) / 26; - var q = 1 << r; +var AuthCipher = __webpack_require__(/*! ./authCipher */ "./node_modules/browserify-aes/authCipher.js") +var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) +var MODES = __webpack_require__(/*! ./modes */ "./node_modules/browserify-aes/modes/index.js") +var StreamCipher = __webpack_require__(/*! ./streamCipher */ "./node_modules/browserify-aes/streamCipher.js") +var Transform = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") +var aes = __webpack_require__(/*! ./aes */ "./node_modules/browserify-aes/aes.js") +var ebtk = __webpack_require__(/*! evp_bytestokey */ "./node_modules/evp_bytestokey/index.js") +var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") - // Fast case: bit is much higher than all existing words - if (this.length <= s) { - this._expand(s + 1); - this.words[s] |= q; - return this; - } +function Decipher (mode, key, iv) { + Transform.call(this) - // Add bit and propagate, if needed - 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 &= 0x3ffffff; - this.words[i] = w; - } - if (carry !== 0) { - this.words[i] = carry; - this.length++; - } - return this; - }; + this._cache = new Splitter() + this._last = void 0 + this._cipher = new aes.AES(key) + this._prev = Buffer.from(iv) + this._mode = mode + this._autopadding = true +} - BN.prototype.isZero = function isZero () { - return this.length === 1 && this.words[0] === 0; - }; +inherits(Decipher, Transform) - BN.prototype.cmpn = function cmpn (num) { - var negative = num < 0; +Decipher.prototype._update = function (data) { + this._cache.add(data) + var chunk + var thing + var out = [] + while ((chunk = this._cache.get(this._autopadding))) { + thing = this._mode.decrypt(this, chunk) + out.push(thing) + } + return Buffer.concat(out) +} - if (this.negative !== 0 && !negative) return -1; - if (this.negative === 0 && negative) return 1; +Decipher.prototype._final = function () { + var chunk = this._cache.flush() + if (this._autopadding) { + return unpad(this._mode.decrypt(this, chunk)) + } else if (chunk) { + throw new Error('data not multiple of block length') + } +} - this._strip(); +Decipher.prototype.setAutoPadding = function (setTo) { + this._autopadding = !!setTo + return this +} - var res; - if (this.length > 1) { - res = 1; - } else { - if (negative) { - num = -num; - } +function Splitter () { + this.cache = Buffer.allocUnsafe(0) +} - assert(num <= 0x3ffffff, 'Number is too big'); +Splitter.prototype.add = function (data) { + this.cache = Buffer.concat([this.cache, data]) +} - var w = this.words[0] | 0; - res = w === num ? 0 : w < num ? -1 : 1; +Splitter.prototype.get = function (autoPadding) { + var out + if (autoPadding) { + if (this.cache.length > 16) { + out = this.cache.slice(0, 16) + this.cache = this.cache.slice(16) + return out } - if (this.negative !== 0) return -res | 0; - return res; - }; + } else { + if (this.cache.length >= 16) { + out = this.cache.slice(0, 16) + this.cache = this.cache.slice(16) + return out + } + } - // Compare two numbers and return: - // 1 - if `this` > `num` - // 0 - if `this` == `num` - // -1 - if `this` < `num` - BN.prototype.cmp = function cmp (num) { - if (this.negative !== 0 && num.negative === 0) return -1; - if (this.negative === 0 && num.negative !== 0) return 1; + return null +} - var res = this.ucmp(num); - if (this.negative !== 0) return -res | 0; - return res; - }; +Splitter.prototype.flush = function () { + if (this.cache.length) return this.cache +} - // Unsigned comparison - BN.prototype.ucmp = function ucmp (num) { - // At this point both numbers have the same sign - if (this.length > num.length) return 1; - if (this.length < num.length) return -1; +function unpad (last) { + var padded = last[15] + if (padded < 1 || padded > 16) { + throw new Error('unable to decrypt data') + } + var i = -1 + while (++i < padded) { + if (last[(i + (16 - padded))] !== padded) { + throw new Error('unable to decrypt data') + } + } + if (padded === 16) return - var res = 0; - for (var i = this.length - 1; i >= 0; i--) { - var a = this.words[i] | 0; - var b = num.words[i] | 0; + return last.slice(0, 16 - padded) +} - if (a === b) continue; - if (a < b) { - res = -1; - } else if (a > b) { - res = 1; - } - break; - } - return res; - }; +function createDecipheriv (suite, password, iv) { + var config = MODES[suite.toLowerCase()] + if (!config) throw new TypeError('invalid suite type') - BN.prototype.gtn = function gtn (num) { - return this.cmpn(num) === 1; - }; + if (typeof iv === 'string') iv = Buffer.from(iv) + if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length) - BN.prototype.gt = function gt (num) { - return this.cmp(num) === 1; - }; + if (typeof password === 'string') password = Buffer.from(password) + if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length) - BN.prototype.gten = function gten (num) { - return this.cmpn(num) >= 0; - }; + if (config.type === 'stream') { + return new StreamCipher(config.module, password, iv, true) + } else if (config.type === 'auth') { + return new AuthCipher(config.module, password, iv, true) + } - BN.prototype.gte = function gte (num) { - return this.cmp(num) >= 0; - }; + return new Decipher(config.module, password, iv) +} - BN.prototype.ltn = function ltn (num) { - return this.cmpn(num) === -1; - }; +function createDecipher (suite, password) { + var config = MODES[suite.toLowerCase()] + if (!config) throw new TypeError('invalid suite type') - BN.prototype.lt = function lt (num) { - return this.cmp(num) === -1; - }; + var keys = ebtk(password, false, config.key, config.iv) + return createDecipheriv(suite, keys.key, keys.iv) +} - BN.prototype.lten = function lten (num) { - return this.cmpn(num) <= 0; - }; +exports.createDecipher = createDecipher +exports.createDecipheriv = createDecipheriv - BN.prototype.lte = function lte (num) { - return this.cmp(num) <= 0; - }; - BN.prototype.eqn = function eqn (num) { - return this.cmpn(num) === 0; - }; +/***/ }), - BN.prototype.eq = function eq (num) { - return this.cmp(num) === 0; - }; +/***/ "./node_modules/browserify-aes/encrypter.js": +/*!**************************************************!*\ + !*** ./node_modules/browserify-aes/encrypter.js ***! + \**************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - // - // A reduce context, could be using montgomery or something better, depending - // on the `m` itself. - // - BN.red = function red (num) { - return new Red(num); - }; +var MODES = __webpack_require__(/*! ./modes */ "./node_modules/browserify-aes/modes/index.js") +var AuthCipher = __webpack_require__(/*! ./authCipher */ "./node_modules/browserify-aes/authCipher.js") +var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) +var StreamCipher = __webpack_require__(/*! ./streamCipher */ "./node_modules/browserify-aes/streamCipher.js") +var Transform = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") +var aes = __webpack_require__(/*! ./aes */ "./node_modules/browserify-aes/aes.js") +var ebtk = __webpack_require__(/*! evp_bytestokey */ "./node_modules/evp_bytestokey/index.js") +var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") - BN.prototype.toRed = function toRed (ctx) { - assert(!this.red, 'Already a number in reduction context'); - assert(this.negative === 0, 'red works only with positives'); - return ctx.convertTo(this)._forceRed(ctx); - }; +function Cipher (mode, key, iv) { + Transform.call(this) - BN.prototype.fromRed = function fromRed () { - assert(this.red, 'fromRed works only with numbers in reduction context'); - return this.red.convertFrom(this); - }; + this._cache = new Splitter() + this._cipher = new aes.AES(key) + this._prev = Buffer.from(iv) + this._mode = mode + this._autopadding = true +} - BN.prototype._forceRed = function _forceRed (ctx) { - this.red = ctx; - return this; - }; +inherits(Cipher, Transform) - BN.prototype.forceRed = function forceRed (ctx) { - assert(!this.red, 'Already a number in reduction context'); - return this._forceRed(ctx); - }; +Cipher.prototype._update = function (data) { + this._cache.add(data) + var chunk + var thing + var out = [] - BN.prototype.redAdd = function redAdd (num) { - assert(this.red, 'redAdd works only with red numbers'); - return this.red.add(this, num); - }; + while ((chunk = this._cache.get())) { + thing = this._mode.encrypt(this, chunk) + out.push(thing) + } - BN.prototype.redIAdd = function redIAdd (num) { - assert(this.red, 'redIAdd works only with red numbers'); - return this.red.iadd(this, num); - }; + return Buffer.concat(out) +} - BN.prototype.redSub = function redSub (num) { - assert(this.red, 'redSub works only with red numbers'); - return this.red.sub(this, num); - }; +var PADDING = Buffer.alloc(16, 0x10) - BN.prototype.redISub = function redISub (num) { - assert(this.red, 'redISub works only with red numbers'); - return this.red.isub(this, num); - }; +Cipher.prototype._final = function () { + var chunk = this._cache.flush() + if (this._autopadding) { + chunk = this._mode.encrypt(this, chunk) + this._cipher.scrub() + return chunk + } - BN.prototype.redShl = function redShl (num) { - assert(this.red, 'redShl works only with red numbers'); - return this.red.shl(this, num); - }; + if (!chunk.equals(PADDING)) { + this._cipher.scrub() + throw new Error('data not multiple of block length') + } +} - BN.prototype.redMul = function redMul (num) { - assert(this.red, 'redMul works only with red numbers'); - this.red._verify2(this, num); - return this.red.mul(this, num); - }; +Cipher.prototype.setAutoPadding = function (setTo) { + this._autopadding = !!setTo + return this +} - BN.prototype.redIMul = function redIMul (num) { - assert(this.red, 'redMul works only with red numbers'); - this.red._verify2(this, num); - return this.red.imul(this, num); - }; +function Splitter () { + this.cache = Buffer.allocUnsafe(0) +} - BN.prototype.redSqr = function redSqr () { - assert(this.red, 'redSqr works only with red numbers'); - this.red._verify1(this); - return this.red.sqr(this); - }; +Splitter.prototype.add = function (data) { + this.cache = Buffer.concat([this.cache, data]) +} - BN.prototype.redISqr = function redISqr () { - assert(this.red, 'redISqr works only with red numbers'); - this.red._verify1(this); - return this.red.isqr(this); - }; +Splitter.prototype.get = function () { + if (this.cache.length > 15) { + var out = this.cache.slice(0, 16) + this.cache = this.cache.slice(16) + return out + } + return null +} - // Square root over p - BN.prototype.redSqrt = function redSqrt () { - assert(this.red, 'redSqrt works only with red numbers'); - this.red._verify1(this); - return this.red.sqrt(this); - }; +Splitter.prototype.flush = function () { + var len = 16 - this.cache.length + var padBuff = Buffer.allocUnsafe(len) - BN.prototype.redInvm = function redInvm () { - assert(this.red, 'redInvm works only with red numbers'); - this.red._verify1(this); - return this.red.invm(this); - }; + var i = -1 + while (++i < len) { + padBuff.writeUInt8(len, i) + } - // Return negative clone of `this` % `red modulo` - BN.prototype.redNeg = function redNeg () { - assert(this.red, 'redNeg works only with red numbers'); - this.red._verify1(this); - return this.red.neg(this); - }; + return Buffer.concat([this.cache, padBuff]) +} - BN.prototype.redPow = function redPow (num) { - assert(this.red && !num.red, 'redPow(normalNum)'); - this.red._verify1(this); - return this.red.pow(this, num); - }; +function createCipheriv (suite, password, iv) { + var config = MODES[suite.toLowerCase()] + if (!config) throw new TypeError('invalid suite type') - // Prime numbers with efficient reduction - var primes = { - k256: null, - p224: null, - p192: null, - p25519: null - }; + if (typeof password === 'string') password = Buffer.from(password) + if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length) - // Pseudo-Mersenne prime - function MPrime (name, p) { - // P = 2 ^ N - K - this.name = name; - this.p = new BN(p, 16); - this.n = this.p.bitLength(); - this.k = new BN(1).iushln(this.n).isub(this.p); + if (typeof iv === 'string') iv = Buffer.from(iv) + if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length) - this.tmp = this._tmp(); + if (config.type === 'stream') { + return new StreamCipher(config.module, password, iv) + } else if (config.type === 'auth') { + return new AuthCipher(config.module, password, iv) } - MPrime.prototype._tmp = function _tmp () { - var tmp = new BN(null); - tmp.words = new Array(Math.ceil(this.n / 13)); - return tmp; - }; + return new Cipher(config.module, password, iv) +} - MPrime.prototype.ireduce = function ireduce (num) { - // Assumes that `num` is less than `P^2` - // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P) - var r = num; - var rlen; +function createCipher (suite, password) { + var config = MODES[suite.toLowerCase()] + if (!config) throw new TypeError('invalid suite type') - do { - this.split(r, this.tmp); - r = this.imulK(r); - r = r.iadd(this.tmp); - rlen = r.bitLength(); - } while (rlen > this.n); + var keys = ebtk(password, false, config.key, config.iv) + return createCipheriv(suite, keys.key, keys.iv) +} - var cmp = rlen < this.n ? -1 : r.ucmp(this.p); - if (cmp === 0) { - r.words[0] = 0; - r.length = 1; - } else if (cmp > 0) { - r.isub(this.p); - } else { - if (r.strip !== undefined) { - // r is a BN v4 instance - r.strip(); - } else { - // r is a BN v5 instance - r._strip(); - } - } +exports.createCipheriv = createCipheriv +exports.createCipher = createCipher - return r; - }; - MPrime.prototype.split = function split (input, out) { - input.iushrn(this.n, 0, out); - }; +/***/ }), - MPrime.prototype.imulK = function imulK (num) { - return num.imul(this.k); - }; +/***/ "./node_modules/browserify-aes/ghash.js": +/*!**********************************************!*\ + !*** ./node_modules/browserify-aes/ghash.js ***! + \**********************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - function K256 () { - MPrime.call( - this, - 'k256', - 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f'); - } - inherits(K256, MPrime); +var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) +var ZEROES = Buffer.alloc(16, 0) - K256.prototype.split = function split (input, output) { - // 256 = 9 * 26 + 22 - var mask = 0x3fffff; +function toArray (buf) { + return [ + buf.readUInt32BE(0), + buf.readUInt32BE(4), + buf.readUInt32BE(8), + buf.readUInt32BE(12) + ] +} - var outLen = Math.min(input.length, 9); - for (var i = 0; i < outLen; i++) { - output.words[i] = input.words[i]; - } - output.length = outLen; +function fromArray (out) { + var buf = Buffer.allocUnsafe(16) + buf.writeUInt32BE(out[0] >>> 0, 0) + buf.writeUInt32BE(out[1] >>> 0, 4) + buf.writeUInt32BE(out[2] >>> 0, 8) + buf.writeUInt32BE(out[3] >>> 0, 12) + return buf +} - if (input.length <= 9) { - input.words[0] = 0; - input.length = 1; - return; - } +function GHASH (key) { + this.h = key + this.state = Buffer.alloc(16, 0) + this.cache = Buffer.allocUnsafe(0) +} - // Shift by 9 limbs - var prev = input.words[9]; - output.words[output.length++] = prev & mask; +// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html +// by Juho Vähä-Herttua +GHASH.prototype.ghash = function (block) { + var i = -1 + while (++i < block.length) { + this.state[i] ^= block[i] + } + this._multiply() +} - 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; +GHASH.prototype._multiply = function () { + var Vi = toArray(this.h) + var Zi = [0, 0, 0, 0] + var j, xi, lsbVi + var i = -1 + while (++i < 128) { + xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0 + if (xi) { + // Z_i+1 = Z_i ^ V_i + Zi[0] ^= Vi[0] + Zi[1] ^= Vi[1] + Zi[2] ^= Vi[2] + Zi[3] ^= Vi[3] } - }; - K256.prototype.imulK = function imulK (num) { - // K = 0x1000003d1 = [ 0x40, 0x3d1 ] - num.words[num.length] = 0; - num.words[num.length + 1] = 0; - num.length += 2; + // Store the value of LSB(V_i) + lsbVi = (Vi[3] & 1) !== 0 - // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390 - var lo = 0; - for (var i = 0; i < num.length; i++) { - var w = num.words[i] | 0; - lo += w * 0x3d1; - num.words[i] = lo & 0x3ffffff; - lo = w * 0x40 + ((lo / 0x4000000) | 0); + // V_i+1 = V_i >> 1 + for (j = 3; j > 0; j--) { + Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31) } + Vi[0] = Vi[0] >>> 1 - // Fast length reduction - if (num.words[num.length - 1] === 0) { - num.length--; - if (num.words[num.length - 1] === 0) { - num.length--; - } + // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R + if (lsbVi) { + Vi[0] = Vi[0] ^ (0xe1 << 24) } - return num; - }; - - function P224 () { - MPrime.call( - this, - 'p224', - 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001'); } - inherits(P224, MPrime); + this.state = fromArray(Zi) +} - function P192 () { - MPrime.call( - this, - 'p192', - 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff'); +GHASH.prototype.update = function (buf) { + this.cache = Buffer.concat([this.cache, buf]) + var chunk + while (this.cache.length >= 16) { + chunk = this.cache.slice(0, 16) + this.cache = this.cache.slice(16) + this.ghash(chunk) } - inherits(P192, MPrime); +} - function P25519 () { - // 2 ^ 255 - 19 - MPrime.call( - this, - '25519', - '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed'); +GHASH.prototype.final = function (abl, bl) { + if (this.cache.length) { + this.ghash(Buffer.concat([this.cache, ZEROES], 16)) } - inherits(P25519, MPrime); - P25519.prototype.imulK = function imulK (num) { - // K = 0x13 - var carry = 0; - for (var i = 0; i < num.length; i++) { - var hi = (num.words[i] | 0) * 0x13 + carry; - var lo = hi & 0x3ffffff; - hi >>>= 26; + this.ghash(fromArray([0, abl, 0, bl])) + return this.state +} - num.words[i] = lo; - carry = hi; - } - if (carry !== 0) { - num.words[num.length++] = carry; - } - return num; - }; +module.exports = GHASH - // Exported mostly for testing purposes, use plain name instead - BN._prime = function prime (name) { - // Cached version of prime - if (primes[name]) return primes[name]; - var prime; - if (name === 'k256') { - prime = new K256(); - } else if (name === 'p224') { - prime = new P224(); - } else if (name === 'p192') { - prime = new P192(); - } else if (name === 'p25519') { - prime = new P25519(); - } else { - throw new Error('Unknown prime ' + name); - } - primes[name] = prime; +/***/ }), - return prime; - }; +/***/ "./node_modules/browserify-aes/incr32.js": +/*!***********************************************!*\ + !*** ./node_modules/browserify-aes/incr32.js ***! + \***********************************************/ +/***/ (function(module) { - // - // Base reduction engine - // - function Red (m) { - if (typeof m === 'string') { - var prime = BN._prime(m); - this.m = prime.p; - this.prime = prime; +function incr32 (iv) { + var len = iv.length + var item + while (len--) { + item = iv.readUInt8(len) + if (item === 255) { + iv.writeUInt8(0, len) } else { - assert(m.gtn(1), 'modulus must be greater than 1'); - this.m = m; - this.prime = null; + item++ + iv.writeUInt8(item, len) + break } } +} +module.exports = incr32 - Red.prototype._verify1 = function _verify1 (a) { - assert(a.negative === 0, 'red works only with positives'); - assert(a.red, 'red works only with red numbers'); - }; - - Red.prototype._verify2 = function _verify2 (a, b) { - assert((a.negative | b.negative) === 0, 'red works only with positives'); - assert(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 neg (a) { - if (a.isZero()) { - return a.clone(); - } - - return this.m.sub(a)._forceRed(this); - }; - - Red.prototype.add = function add (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; - }; +/***/ "./node_modules/browserify-aes/modes/cbc.js": +/*!**************************************************!*\ + !*** ./node_modules/browserify-aes/modes/cbc.js ***! + \**************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - Red.prototype.sub = function sub (a, b) { - this._verify2(a, b); +var xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js") - var res = a.sub(b); - if (res.cmpn(0) < 0) { - res.iadd(this.m); - } - return res._forceRed(this); - }; +exports.encrypt = function (self, block) { + var data = xor(block, self._prev) - Red.prototype.isub = function isub (a, b) { - this._verify2(a, b); + self._prev = self._cipher.encryptBlock(data) + return self._prev +} - var res = a.isub(b); - if (res.cmpn(0) < 0) { - res.iadd(this.m); - } - return res; - }; +exports.decrypt = function (self, block) { + var pad = self._prev - Red.prototype.shl = function shl (a, num) { - this._verify1(a); - return this.imod(a.ushln(num)); - }; + self._prev = block + var out = self._cipher.decryptBlock(block) - Red.prototype.imul = function imul (a, b) { - this._verify2(a, b); - return this.imod(a.imul(b)); - }; + return xor(out, pad) +} - Red.prototype.mul = function mul (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); - }; +/***/ "./node_modules/browserify-aes/modes/cfb.js": +/*!**************************************************!*\ + !*** ./node_modules/browserify-aes/modes/cfb.js ***! + \**************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - Red.prototype.sqrt = function sqrt (a) { - if (a.isZero()) return a.clone(); +var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) +var xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js") - var mod3 = this.m.andln(3); - assert(mod3 % 2 === 1); +function encryptStart (self, data, decrypt) { + var len = data.length + var out = xor(data, self._cache) + self._cache = self._cache.slice(len) + self._prev = Buffer.concat([self._prev, decrypt ? data : out]) + return out +} - // Fast case - if (mod3 === 3) { - var pow = this.m.add(new BN(1)).iushrn(2); - return this.pow(a, pow); - } +exports.encrypt = function (self, data, decrypt) { + var out = Buffer.allocUnsafe(0) + var len - // Tonelli-Shanks algorithm (Totally unoptimized and slow) - // - // Find Q and S, that Q * 2 ^ S = (P - 1) - var q = this.m.subn(1); - var s = 0; - while (!q.isZero() && q.andln(1) === 0) { - s++; - q.iushrn(1); + while (data.length) { + if (self._cache.length === 0) { + self._cache = self._cipher.encryptBlock(self._prev) + self._prev = Buffer.allocUnsafe(0) } - assert(!q.isZero()); - - var one = new BN(1).toRed(this); - var nOne = one.redNeg(); - // Find quadratic non-residue - // NOTE: Max is such because of generalized Riemann hypothesis. - var lpow = this.m.subn(1).iushrn(1); - var z = this.m.bitLength(); - z = new BN(2 * z * z).toRed(this); - - while (this.pow(z, lpow).cmp(nOne) !== 0) { - z.redIAdd(nOne); + if (self._cache.length <= data.length) { + len = self._cache.length + out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)]) + data = data.slice(len) + } else { + out = Buffer.concat([out, encryptStart(self, data, decrypt)]) + break } + } - var c = this.pow(z, q); - var r = 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(); - } - assert(i < m); - var b = this.pow(c, new BN(1).iushln(m - i - 1)); + return out +} - r = r.redMul(b); - c = b.redSqr(); - t = t.redMul(c); - m = i; - } - return r; - }; +/***/ }), - 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); - } - }; +/***/ "./node_modules/browserify-aes/modes/cfb1.js": +/*!***************************************************!*\ + !*** ./node_modules/browserify-aes/modes/cfb1.js ***! + \***************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - Red.prototype.pow = function pow (a, num) { - if (num.isZero()) return new BN(1).toRed(this); - if (num.cmpn(1) === 0) return a.clone(); +var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) - var windowSize = 4; - var wnd = new Array(1 << windowSize); - wnd[0] = new BN(1).toRed(this); - wnd[1] = a; - for (var i = 2; i < wnd.length; i++) { - wnd[i] = this.mul(wnd[i - 1], a); - } +function encryptByte (self, byteParam, decrypt) { + var pad + var i = -1 + var len = 8 + var out = 0 + var bit, value + while (++i < len) { + pad = self._cipher.encryptBlock(self._prev) + bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0 + value = pad[0] ^ bit + out += ((value & 0x80) >> (i % 8)) + self._prev = shiftIn(self._prev, decrypt ? bit : value) + } + return out +} - var res = wnd[0]; - var current = 0; - var currentLen = 0; - var start = num.bitLength() % 26; - if (start === 0) { - start = 26; - } +function shiftIn (buffer, value) { + var len = buffer.length + var i = -1 + var out = Buffer.allocUnsafe(buffer.length) + buffer = Buffer.concat([buffer, Buffer.from([value])]) - 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); - } + while (++i < len) { + out[i] = buffer[i] << 1 | buffer[i + 1] >> (7) + } - if (bit === 0 && current === 0) { - currentLen = 0; - continue; - } + return out +} - current <<= 1; - current |= bit; - currentLen++; - if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue; +exports.encrypt = function (self, chunk, decrypt) { + var len = chunk.length + var out = Buffer.allocUnsafe(len) + var i = -1 - res = this.mul(res, wnd[current]); - currentLen = 0; - current = 0; - } - start = 26; - } + while (++i < len) { + out[i] = encryptByte(self, chunk[i], decrypt) + } - return res; - }; + return out +} - Red.prototype.convertTo = function convertTo (num) { - var r = num.umod(this.m); - return r === num ? r.clone() : r; - }; +/***/ }), - Red.prototype.convertFrom = function convertFrom (num) { - var res = num.clone(); - res.red = null; - return res; - }; +/***/ "./node_modules/browserify-aes/modes/cfb8.js": +/*!***************************************************!*\ + !*** ./node_modules/browserify-aes/modes/cfb8.js ***! + \***************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - // - // Montgomery method engine - // +var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) - BN.mont = function mont (num) { - return new Mont(num); - }; +function encryptByte (self, byteParam, decrypt) { + var pad = self._cipher.encryptBlock(self._prev) + var out = pad[0] ^ byteParam - function Mont (m) { - Red.call(this, m); + self._prev = Buffer.concat([ + self._prev.slice(1), + Buffer.from([decrypt ? byteParam : out]) + ]) - this.shift = this.m.bitLength(); - if (this.shift % 26 !== 0) { - this.shift += 26 - (this.shift % 26); - } + return out +} - this.r = new BN(1).iushln(this.shift); - this.r2 = this.imod(this.r.sqr()); - this.rinv = this.r._invmp(this.m); +exports.encrypt = function (self, chunk, decrypt) { + var len = chunk.length + var out = Buffer.allocUnsafe(len) + var i = -1 - 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); + while (++i < len) { + out[i] = encryptByte(self, chunk[i], decrypt) } - inherits(Mont, Red); - Mont.prototype.convertTo = function convertTo (num) { - return this.imod(num.ushln(this.shift)); - }; + return out +} - Mont.prototype.convertFrom = function convertFrom (num) { - var r = this.imod(num.mul(this.rinv)); - r.red = null; - return r; - }; - 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; +/***/ "./node_modules/browserify-aes/modes/ctr.js": +/*!**************************************************!*\ + !*** ./node_modules/browserify-aes/modes/ctr.js ***! + \**************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - if (u.cmp(this.m) >= 0) { - res = u.isub(this.m); - } else if (u.cmpn(0) < 0) { - res = u.iadd(this.m); - } +var xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js") +var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) +var incr32 = __webpack_require__(/*! ../incr32 */ "./node_modules/browserify-aes/incr32.js") - return res._forceRed(this); - }; +function getBlock (self) { + var out = self._cipher.encryptBlockRaw(self._prev) + incr32(self._prev) + return out +} - Mont.prototype.mul = function mul (a, b) { - if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this); +var blockSize = 16 +exports.encrypt = function (self, chunk) { + var chunkNum = Math.ceil(chunk.length / blockSize) + var start = self._cache.length + self._cache = Buffer.concat([ + self._cache, + Buffer.allocUnsafe(chunkNum * blockSize) + ]) + for (var i = 0; i < chunkNum; i++) { + var out = getBlock(self) + var offset = start + i * blockSize + self._cache.writeUInt32BE(out[0], offset + 0) + self._cache.writeUInt32BE(out[1], offset + 4) + self._cache.writeUInt32BE(out[2], offset + 8) + self._cache.writeUInt32BE(out[3], offset + 12) + } + var pad = self._cache.slice(0, chunk.length) + self._cache = self._cache.slice(chunk.length) + return xor(chunk, pad) +} - 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) { - // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R - var res = this.imod(a._invmp(this.m).mul(this.r2)); - return res._forceRed(this); - }; -})( false || module, this); +/***/ "./node_modules/browserify-aes/modes/ecb.js": +/*!**************************************************!*\ + !*** ./node_modules/browserify-aes/modes/ecb.js ***! + \**************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +exports.encrypt = function (self, block) { + return self._cipher.encryptBlock(block) +} + +exports.decrypt = function (self, block) { + return self._cipher.decryptBlock(block) +} /***/ }), -/***/ "./node_modules/brorand/index.js": -/*!***************************************!*\ - !*** ./node_modules/brorand/index.js ***! - \***************************************/ +/***/ "./node_modules/browserify-aes/modes/index.js": +/*!****************************************************!*\ + !*** ./node_modules/browserify-aes/modes/index.js ***! + \****************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { -var r; - -module.exports = function rand(len) { - if (!r) - r = new Rand(null); +var modeModules = { + ECB: __webpack_require__(/*! ./ecb */ "./node_modules/browserify-aes/modes/ecb.js"), + CBC: __webpack_require__(/*! ./cbc */ "./node_modules/browserify-aes/modes/cbc.js"), + CFB: __webpack_require__(/*! ./cfb */ "./node_modules/browserify-aes/modes/cfb.js"), + CFB8: __webpack_require__(/*! ./cfb8 */ "./node_modules/browserify-aes/modes/cfb8.js"), + CFB1: __webpack_require__(/*! ./cfb1 */ "./node_modules/browserify-aes/modes/cfb1.js"), + OFB: __webpack_require__(/*! ./ofb */ "./node_modules/browserify-aes/modes/ofb.js"), + CTR: __webpack_require__(/*! ./ctr */ "./node_modules/browserify-aes/modes/ctr.js"), + GCM: __webpack_require__(/*! ./ctr */ "./node_modules/browserify-aes/modes/ctr.js") +} - return r.generate(len); -}; +var modes = __webpack_require__(/*! ./list.json */ "./node_modules/browserify-aes/modes/list.json") -function Rand(rand) { - this.rand = rand; +for (var key in modes) { + modes[key].module = modeModules[modes[key].mode] } -module.exports.Rand = Rand; -Rand.prototype.generate = function generate(len) { - return this._rand(len); -}; +module.exports = modes -// Emulate crypto API using randy -Rand.prototype._rand = function _rand(n) { - if (this.rand.getBytes) - return this.rand.getBytes(n); - var res = new Uint8Array(n); - for (var i = 0; i < res.length; i++) - res[i] = this.rand.getByte(); - return res; -}; +/***/ }), -if (typeof self === 'object') { - if (self.crypto && self.crypto.getRandomValues) { - // Modern browsers - Rand.prototype._rand = function _rand(n) { - var arr = new Uint8Array(n); - self.crypto.getRandomValues(arr); - return arr; - }; - } else if (self.msCrypto && self.msCrypto.getRandomValues) { - // IE - Rand.prototype._rand = function _rand(n) { - var arr = new Uint8Array(n); - self.msCrypto.getRandomValues(arr); - return arr; - }; +/***/ "./node_modules/browserify-aes/modes/ofb.js": +/*!**************************************************!*\ + !*** ./node_modules/browserify-aes/modes/ofb.js ***! + \**************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - // Safari's WebWorkers do not have `crypto` - } else if (typeof window === 'object') { - // Old junk - Rand.prototype._rand = function() { - throw new Error('Not implemented yet'); - }; - } -} else { - // Node.js or Web worker with no crypto support - try { - var crypto = __webpack_require__(/*! crypto */ "?3fc0"); - if (typeof crypto.randomBytes !== 'function') - throw new Error('Not supported'); +/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; +var xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js") - Rand.prototype._rand = function _rand(n) { - return crypto.randomBytes(n); - }; - } catch (e) { +function getBlock (self) { + self._prev = self._cipher.encryptBlock(self._prev) + return self._prev +} + +exports.encrypt = function (self, chunk) { + while (self._cache.length < chunk.length) { + self._cache = Buffer.concat([self._cache, getBlock(self)]) } + + var pad = self._cache.slice(0, chunk.length) + self._cache = self._cache.slice(chunk.length) + return xor(chunk, pad) } /***/ }), -/***/ "./node_modules/browserify-aes/aes.js": -/*!********************************************!*\ - !*** ./node_modules/browserify-aes/aes.js ***! - \********************************************/ +/***/ "./node_modules/browserify-aes/streamCipher.js": +/*!*****************************************************!*\ + !*** ./node_modules/browserify-aes/streamCipher.js ***! + \*****************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { -// based on the aes implimentation in triple sec -// https://github.com/keybase/triplesec -// which is in turn based on the one from crypto-js -// https://code.google.com/p/crypto-js/ - +var aes = __webpack_require__(/*! ./aes */ "./node_modules/browserify-aes/aes.js") var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) +var Transform = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") +var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") -function asUInt32Array (buf) { - if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf) +function StreamCipher (mode, key, iv, decrypt) { + Transform.call(this) - var len = (buf.length / 4) | 0 - var out = new Array(len) + this._cipher = new aes.AES(key) + this._prev = Buffer.from(iv) + this._cache = Buffer.allocUnsafe(0) + this._secCache = Buffer.allocUnsafe(0) + this._decrypt = decrypt + this._mode = mode +} - for (var i = 0; i < len; i++) { - out[i] = buf.readUInt32BE(i * 4) - } +inherits(StreamCipher, Transform) - return out +StreamCipher.prototype._update = function (chunk) { + return this._mode.encrypt(this, chunk, this._decrypt) } -function scrubVec (v) { - for (var i = 0; i < v.length; v++) { - v[i] = 0 - } +StreamCipher.prototype._final = function () { + this._cipher.scrub() } -function cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) { - var SUB_MIX0 = SUB_MIX[0] - var SUB_MIX1 = SUB_MIX[1] - var SUB_MIX2 = SUB_MIX[2] - var SUB_MIX3 = SUB_MIX[3] +module.exports = StreamCipher - var s0 = M[0] ^ keySchedule[0] - var s1 = M[1] ^ keySchedule[1] - var s2 = M[2] ^ keySchedule[2] - var s3 = M[3] ^ keySchedule[3] - var t0, t1, t2, t3 - var ksRow = 4 - for (var round = 1; round < nRounds; round++) { - t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++] - t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++] - t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++] - t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++] - s0 = t0 - s1 = t1 - s2 = t2 - s3 = t3 - } +/***/ }), - t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++] - t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++] - t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++] - t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++] - t0 = t0 >>> 0 - t1 = t1 >>> 0 - t2 = t2 >>> 0 - t3 = t3 >>> 0 +/***/ "./node_modules/browserify-cipher/browser.js": +/*!***************************************************!*\ + !*** ./node_modules/browserify-cipher/browser.js ***! + \***************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - return [t0, t1, t2, t3] -} +var DES = __webpack_require__(/*! browserify-des */ "./node_modules/browserify-des/index.js") +var aes = __webpack_require__(/*! browserify-aes/browser */ "./node_modules/browserify-aes/browser.js") +var aesModes = __webpack_require__(/*! browserify-aes/modes */ "./node_modules/browserify-aes/modes/index.js") +var desModes = __webpack_require__(/*! browserify-des/modes */ "./node_modules/browserify-des/modes.js") +var ebtk = __webpack_require__(/*! evp_bytestokey */ "./node_modules/evp_bytestokey/index.js") -// AES constants -var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36] -var G = (function () { - // Compute double table - var d = new Array(256) - for (var j = 0; j < 256; j++) { - if (j < 128) { - d[j] = j << 1 - } else { - d[j] = (j << 1) ^ 0x11b - } +function createCipher (suite, password) { + suite = suite.toLowerCase() + + var keyLen, ivLen + if (aesModes[suite]) { + keyLen = aesModes[suite].key + ivLen = aesModes[suite].iv + } else if (desModes[suite]) { + keyLen = desModes[suite].key * 8 + ivLen = desModes[suite].iv + } else { + throw new TypeError('invalid suite type') } - var SBOX = [] - var INV_SBOX = [] - var SUB_MIX = [[], [], [], []] - var INV_SUB_MIX = [[], [], [], []] + var keys = ebtk(password, false, keyLen, ivLen) + return createCipheriv(suite, keys.key, keys.iv) +} - // Walk GF(2^8) - var x = 0 - var xi = 0 - for (var i = 0; i < 256; ++i) { - // Compute sbox - var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4) - sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63 - SBOX[x] = sx - INV_SBOX[sx] = x +function createDecipher (suite, password) { + suite = suite.toLowerCase() - // Compute multiplication - var x2 = d[x] - var x4 = d[x2] - var x8 = d[x4] + var keyLen, ivLen + if (aesModes[suite]) { + keyLen = aesModes[suite].key + ivLen = aesModes[suite].iv + } else if (desModes[suite]) { + keyLen = desModes[suite].key * 8 + ivLen = desModes[suite].iv + } else { + throw new TypeError('invalid suite type') + } - // Compute sub bytes, mix columns tables - var t = (d[sx] * 0x101) ^ (sx * 0x1010100) - SUB_MIX[0][x] = (t << 24) | (t >>> 8) - SUB_MIX[1][x] = (t << 16) | (t >>> 16) - SUB_MIX[2][x] = (t << 8) | (t >>> 24) - SUB_MIX[3][x] = t + var keys = ebtk(password, false, keyLen, ivLen) + return createDecipheriv(suite, keys.key, keys.iv) +} - // Compute inv sub bytes, inv mix columns tables - t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100) - INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8) - INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16) - INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24) - INV_SUB_MIX[3][sx] = t +function createCipheriv (suite, key, iv) { + suite = suite.toLowerCase() + if (aesModes[suite]) return aes.createCipheriv(suite, key, iv) + if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite }) - if (x === 0) { - x = xi = 1 - } else { - x = x2 ^ d[d[d[x8 ^ x2]]] - xi ^= d[d[xi]] - } - } + throw new TypeError('invalid suite type') +} - return { - SBOX: SBOX, - INV_SBOX: INV_SBOX, - SUB_MIX: SUB_MIX, - INV_SUB_MIX: INV_SUB_MIX - } -})() +function createDecipheriv (suite, key, iv) { + suite = suite.toLowerCase() + if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv) + if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true }) -function AES (key) { - this._key = asUInt32Array(key) - this._reset() + throw new TypeError('invalid suite type') } -AES.blockSize = 4 * 4 -AES.keySize = 256 / 8 -AES.prototype.blockSize = AES.blockSize -AES.prototype.keySize = AES.keySize -AES.prototype._reset = function () { - var keyWords = this._key - var keySize = keyWords.length - var nRounds = keySize + 6 - var ksRows = (nRounds + 1) * 4 +function getCiphers () { + return Object.keys(desModes).concat(aes.getCiphers()) +} - var keySchedule = [] - for (var k = 0; k < keySize; k++) { - keySchedule[k] = keyWords[k] - } +exports.createCipher = exports.Cipher = createCipher +exports.createCipheriv = exports.Cipheriv = createCipheriv +exports.createDecipher = exports.Decipher = createDecipher +exports.createDecipheriv = exports.Decipheriv = createDecipheriv +exports.listCiphers = exports.getCiphers = getCiphers - for (k = keySize; k < ksRows; k++) { - var t = keySchedule[k - 1] - if (k % keySize === 0) { - t = (t << 8) | (t >>> 24) - t = - (G.SBOX[t >>> 24] << 24) | - (G.SBOX[(t >>> 16) & 0xff] << 16) | - (G.SBOX[(t >>> 8) & 0xff] << 8) | - (G.SBOX[t & 0xff]) +/***/ }), - t ^= RCON[(k / keySize) | 0] << 24 - } else if (keySize > 6 && k % keySize === 4) { - t = - (G.SBOX[t >>> 24] << 24) | - (G.SBOX[(t >>> 16) & 0xff] << 16) | - (G.SBOX[(t >>> 8) & 0xff] << 8) | - (G.SBOX[t & 0xff]) - } +/***/ "./node_modules/browserify-des/index.js": +/*!**********************************************!*\ + !*** ./node_modules/browserify-des/index.js ***! + \**********************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - keySchedule[k] = keySchedule[k - keySize] ^ t +var CipherBase = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") +var des = __webpack_require__(/*! des.js */ "./node_modules/des.js/lib/des.js") +var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") +var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) + +var modes = { + 'des-ede3-cbc': des.CBC.instantiate(des.EDE), + 'des-ede3': des.EDE, + 'des-ede-cbc': des.CBC.instantiate(des.EDE), + 'des-ede': des.EDE, + 'des-cbc': des.CBC.instantiate(des.DES), + 'des-ecb': des.DES +} +modes.des = modes['des-cbc'] +modes.des3 = modes['des-ede3-cbc'] +module.exports = DES +inherits(DES, CipherBase) +function DES (opts) { + CipherBase.call(this) + var modeName = opts.mode.toLowerCase() + var mode = modes[modeName] + var type + if (opts.decrypt) { + type = 'decrypt' + } else { + type = 'encrypt' + } + var key = opts.key + if (!Buffer.isBuffer(key)) { + key = Buffer.from(key) } + if (modeName === 'des-ede' || modeName === 'des-ede-cbc') { + key = Buffer.concat([key, key.slice(0, 8)]) + } + var iv = opts.iv + if (!Buffer.isBuffer(iv)) { + iv = Buffer.from(iv) + } + this._des = mode.create({ + key: key, + iv: iv, + type: type + }) +} +DES.prototype._update = function (data) { + return Buffer.from(this._des.update(data)) +} +DES.prototype._final = function () { + return Buffer.from(this._des.final()) +} - var invKeySchedule = [] - for (var ik = 0; ik < ksRows; ik++) { - var ksR = ksRows - ik - var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)] - if (ik < 4 || ksR <= 4) { - invKeySchedule[ik] = tt - } else { - invKeySchedule[ik] = - G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^ - G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^ - G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^ - G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]] - } - } +/***/ }), - this._nRounds = nRounds - this._keySchedule = keySchedule - this._invKeySchedule = invKeySchedule -} +/***/ "./node_modules/browserify-des/modes.js": +/*!**********************************************!*\ + !*** ./node_modules/browserify-des/modes.js ***! + \**********************************************/ +/***/ (function(__unused_webpack_module, exports) { -AES.prototype.encryptBlockRaw = function (M) { - M = asUInt32Array(M) - return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds) +exports["des-ecb"] = { + key: 8, + iv: 0 } - -AES.prototype.encryptBlock = function (M) { - var out = this.encryptBlockRaw(M) - var buf = Buffer.allocUnsafe(16) - buf.writeUInt32BE(out[0], 0) - buf.writeUInt32BE(out[1], 4) - buf.writeUInt32BE(out[2], 8) - buf.writeUInt32BE(out[3], 12) - return buf +exports["des-cbc"] = exports.des = { + key: 8, + iv: 8 +} +exports["des-ede3-cbc"] = exports.des3 = { + key: 24, + iv: 8 +} +exports["des-ede3"] = { + key: 24, + iv: 0 +} +exports["des-ede-cbc"] = { + key: 16, + iv: 8 +} +exports["des-ede"] = { + key: 16, + iv: 0 } -AES.prototype.decryptBlock = function (M) { - M = asUInt32Array(M) - // swap - var m1 = M[1] - M[1] = M[3] - M[3] = m1 +/***/ }), - var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds) - var buf = Buffer.allocUnsafe(16) - buf.writeUInt32BE(out[0], 0) - buf.writeUInt32BE(out[3], 4) - buf.writeUInt32BE(out[2], 8) - buf.writeUInt32BE(out[1], 12) - return buf +/***/ "./node_modules/browserify-rsa/index.js": +/*!**********************************************!*\ + !*** ./node_modules/browserify-rsa/index.js ***! + \**********************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; +var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js") +var randomBytes = __webpack_require__(/*! randombytes */ "./node_modules/randombytes/browser.js") + +function blind (priv) { + var r = getr(priv) + var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed() + return { blinder: blinder, unblinder: r.invm(priv.modulus) } } -AES.prototype.scrub = function () { - scrubVec(this._keySchedule) - scrubVec(this._invKeySchedule) - scrubVec(this._key) +function getr (priv) { + var len = priv.modulus.byteLength() + var r + do { + r = new BN(randomBytes(len)) + } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2)) + return r } -module.exports.AES = AES +function crt (msg, priv) { + var blinds = blind(priv) + var len = priv.modulus.byteLength() + var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus) + var c1 = blinded.toRed(BN.mont(priv.prime1)) + var c2 = blinded.toRed(BN.mont(priv.prime2)) + var qinv = priv.coefficient + var p = priv.prime1 + var q = priv.prime2 + var m1 = c1.redPow(priv.exponent1).fromRed() + var m2 = c2.redPow(priv.exponent2).fromRed() + var h = m1.isub(m2).imul(qinv).umod(p).imul(q) + return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len) +} +crt.getr = getr + +module.exports = crt /***/ }), -/***/ "./node_modules/browserify-aes/authCipher.js": -/*!***************************************************!*\ - !*** ./node_modules/browserify-aes/authCipher.js ***! - \***************************************************/ +/***/ "./node_modules/browserify-sign/algos.js": +/*!***********************************************!*\ + !*** ./node_modules/browserify-sign/algos.js ***! + \***********************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +module.exports = __webpack_require__(/*! ./browser/algorithms.json */ "./node_modules/browserify-sign/browser/algorithms.json") + + +/***/ }), + +/***/ "./node_modules/browserify-sign/browser/index.js": +/*!*******************************************************!*\ + !*** ./node_modules/browserify-sign/browser/index.js ***! + \*******************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { -var aes = __webpack_require__(/*! ./aes */ "./node_modules/browserify-aes/aes.js") var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) -var Transform = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") +var createHash = __webpack_require__(/*! create-hash */ "./node_modules/create-hash/browser.js") +var stream = __webpack_require__(/*! readable-stream */ "./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js") var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") -var GHASH = __webpack_require__(/*! ./ghash */ "./node_modules/browserify-aes/ghash.js") -var xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js") -var incr32 = __webpack_require__(/*! ./incr32 */ "./node_modules/browserify-aes/incr32.js") +var sign = __webpack_require__(/*! ./sign */ "./node_modules/browserify-sign/browser/sign.js") +var verify = __webpack_require__(/*! ./verify */ "./node_modules/browserify-sign/browser/verify.js") -function xorTest (a, b) { - var out = 0 - if (a.length !== b.length) out++ +var algorithms = __webpack_require__(/*! ./algorithms.json */ "./node_modules/browserify-sign/browser/algorithms.json") +Object.keys(algorithms).forEach(function (key) { + algorithms[key].id = Buffer.from(algorithms[key].id, 'hex') + algorithms[key.toLowerCase()] = algorithms[key] +}) - var len = Math.min(a.length, b.length) - for (var i = 0; i < len; ++i) { - out += (a[i] ^ b[i]) - } +function Sign (algorithm) { + stream.Writable.call(this) - return out + var data = algorithms[algorithm] + if (!data) throw new Error('Unknown message digest') + + this._hashType = data.hash + this._hash = createHash(data.hash) + this._tag = data.id + this._signType = data.sign } +inherits(Sign, stream.Writable) -function calcIv (self, iv, ck) { - if (iv.length === 12) { - self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])]) - return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])]) - } - var ghash = new GHASH(ck) - var len = iv.length - var toPad = len % 16 - ghash.update(iv) - if (toPad) { - toPad = 16 - toPad - ghash.update(Buffer.alloc(toPad, 0)) - } - ghash.update(Buffer.alloc(8, 0)) - var ivBits = len * 8 - var tail = Buffer.alloc(8) - tail.writeUIntBE(ivBits, 0, 8) - ghash.update(tail) - self._finID = ghash.state - var out = Buffer.from(self._finID) - incr32(out) - return out +Sign.prototype._write = function _write (data, _, done) { + this._hash.update(data) + done() } -function StreamCipher (mode, key, iv, decrypt) { - Transform.call(this) - var h = Buffer.alloc(4, 0) +Sign.prototype.update = function update (data, enc) { + if (typeof data === 'string') data = Buffer.from(data, enc) - this._cipher = new aes.AES(key) - var ck = this._cipher.encryptBlock(h) - this._ghash = new GHASH(ck) - iv = calcIv(this, iv, ck) + this._hash.update(data) + return this +} - this._prev = Buffer.from(iv) - this._cache = Buffer.allocUnsafe(0) - this._secCache = Buffer.allocUnsafe(0) - this._decrypt = decrypt - this._alen = 0 - this._len = 0 - this._mode = mode +Sign.prototype.sign = function signMethod (key, enc) { + this.end() + var hash = this._hash.digest() + var sig = sign(hash, key, this._hashType, this._signType, this._tag) - this._authTag = null - this._called = false + return enc ? sig.toString(enc) : sig } -inherits(StreamCipher, Transform) +function Verify (algorithm) { + stream.Writable.call(this) -StreamCipher.prototype._update = function (chunk) { - if (!this._called && this._alen) { - var rump = 16 - (this._alen % 16) - if (rump < 16) { - rump = Buffer.alloc(rump, 0) - this._ghash.update(rump) - } - } + var data = algorithms[algorithm] + if (!data) throw new Error('Unknown message digest') - this._called = true - var out = this._mode.encrypt(this, chunk) - if (this._decrypt) { - this._ghash.update(chunk) - } else { - this._ghash.update(out) - } - this._len += chunk.length - return out + this._hash = createHash(data.hash) + this._tag = data.id + this._signType = data.sign } +inherits(Verify, stream.Writable) -StreamCipher.prototype._final = function () { - if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data') - - var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID)) - if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data') - - this._authTag = tag - this._cipher.scrub() +Verify.prototype._write = function _write (data, _, done) { + this._hash.update(data) + done() } -StreamCipher.prototype.getAuthTag = function getAuthTag () { - if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state') +Verify.prototype.update = function update (data, enc) { + if (typeof data === 'string') data = Buffer.from(data, enc) - return this._authTag + this._hash.update(data) + return this } -StreamCipher.prototype.setAuthTag = function setAuthTag (tag) { - if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state') +Verify.prototype.verify = function verifyMethod (key, sig, enc) { + if (typeof sig === 'string') sig = Buffer.from(sig, enc) - this._authTag = tag + this.end() + var hash = this._hash.digest() + return verify(sig, hash, key, this._signType, this._tag) } -StreamCipher.prototype.setAAD = function setAAD (buf) { - if (this._called) throw new Error('Attempting to set AAD in unsupported state') +function createSign (algorithm) { + return new Sign(algorithm) +} - this._ghash.update(buf) - this._alen += buf.length +function createVerify (algorithm) { + return new Verify(algorithm) } -module.exports = StreamCipher +module.exports = { + Sign: createSign, + Verify: createVerify, + createSign: createSign, + createVerify: createVerify +} /***/ }), -/***/ "./node_modules/browserify-aes/browser.js": -/*!************************************************!*\ - !*** ./node_modules/browserify-aes/browser.js ***! - \************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { +/***/ "./node_modules/browserify-sign/browser/sign.js": +/*!******************************************************!*\ + !*** ./node_modules/browserify-sign/browser/sign.js ***! + \******************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { -var ciphers = __webpack_require__(/*! ./encrypter */ "./node_modules/browserify-aes/encrypter.js") -var deciphers = __webpack_require__(/*! ./decrypter */ "./node_modules/browserify-aes/decrypter.js") -var modes = __webpack_require__(/*! ./modes/list.json */ "./node_modules/browserify-aes/modes/list.json") +// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js +var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) +var createHmac = __webpack_require__(/*! create-hmac */ "./node_modules/create-hmac/browser.js") +var crt = __webpack_require__(/*! browserify-rsa */ "./node_modules/browserify-rsa/index.js") +var EC = (__webpack_require__(/*! elliptic */ "./node_modules/elliptic/lib/elliptic.js").ec) +var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js") +var parseKeys = __webpack_require__(/*! parse-asn1 */ "./node_modules/parse-asn1/index.js") +var curves = __webpack_require__(/*! ./curves.json */ "./node_modules/browserify-sign/browser/curves.json") -function getCiphers () { - return Object.keys(modes) +function sign (hash, key, hashType, signType, tag) { + var priv = parseKeys(key) + if (priv.curve) { + // rsa keys can be interpreted as ecdsa ones in openssl + if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type') + return ecSign(hash, priv) + } else if (priv.type === 'dsa') { + if (signType !== 'dsa') throw new Error('wrong private key type') + return dsaSign(hash, priv, hashType) + } else { + if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type') + } + hash = Buffer.concat([tag, hash]) + var len = priv.modulus.byteLength() + var pad = [0, 1] + while (hash.length + pad.length + 1 < len) pad.push(0xff) + pad.push(0x00) + var i = -1 + while (++i < hash.length) pad.push(hash[i]) + + var out = crt(pad, priv) + return out } -exports.createCipher = exports.Cipher = ciphers.createCipher -exports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv -exports.createDecipher = exports.Decipher = deciphers.createDecipher -exports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv -exports.listCiphers = exports.getCiphers = getCiphers +function ecSign (hash, priv) { + var curveId = curves[priv.curve.join('.')] + if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.')) + var curve = new EC(curveId) + var key = curve.keyFromPrivate(priv.privateKey) + var out = key.sign(hash) -/***/ }), + return Buffer.from(out.toDER()) +} -/***/ "./node_modules/browserify-aes/decrypter.js": -/*!**************************************************!*\ - !*** ./node_modules/browserify-aes/decrypter.js ***! - \**************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { +function dsaSign (hash, priv, algo) { + var x = priv.params.priv_key + var p = priv.params.p + var q = priv.params.q + var g = priv.params.g + var r = new BN(0) + var k + var H = bits2int(hash, q).mod(q) + var s = false + var kv = getKey(x, q, hash, algo) + while (s === false) { + k = makeKey(q, kv, algo) + r = makeR(g, k, p, q) + s = k.invm(q).imul(H.add(x.mul(r))).mod(q) + if (s.cmpn(0) === 0) { + s = false + r = new BN(0) + } + } + return toDER(r, s) +} -var AuthCipher = __webpack_require__(/*! ./authCipher */ "./node_modules/browserify-aes/authCipher.js") -var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) -var MODES = __webpack_require__(/*! ./modes */ "./node_modules/browserify-aes/modes/index.js") -var StreamCipher = __webpack_require__(/*! ./streamCipher */ "./node_modules/browserify-aes/streamCipher.js") -var Transform = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") -var aes = __webpack_require__(/*! ./aes */ "./node_modules/browserify-aes/aes.js") -var ebtk = __webpack_require__(/*! evp_bytestokey */ "./node_modules/evp_bytestokey/index.js") -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") +function toDER (r, s) { + r = r.toArray() + s = s.toArray() -function Decipher (mode, key, iv) { - Transform.call(this) + // Pad values + if (r[0] & 0x80) r = [0].concat(r) + if (s[0] & 0x80) s = [0].concat(s) - this._cache = new Splitter() - this._last = void 0 - this._cipher = new aes.AES(key) - this._prev = Buffer.from(iv) - this._mode = mode - this._autopadding = true + var total = r.length + s.length + 4 + var res = [0x30, total, 0x02, r.length] + res = res.concat(r, [0x02, s.length], s) + return Buffer.from(res) } -inherits(Decipher, Transform) - -Decipher.prototype._update = function (data) { - this._cache.add(data) - var chunk - var thing - var out = [] - while ((chunk = this._cache.get(this._autopadding))) { - thing = this._mode.decrypt(this, chunk) - out.push(thing) +function getKey (x, q, hash, algo) { + x = Buffer.from(x.toArray()) + if (x.length < q.byteLength()) { + var zeros = Buffer.alloc(q.byteLength() - x.length) + x = Buffer.concat([zeros, x]) } - return Buffer.concat(out) + var hlen = hash.length + var hbits = bits2octets(hash, q) + var v = Buffer.alloc(hlen) + v.fill(1) + var k = Buffer.alloc(hlen) + k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest() + v = createHmac(algo, k).update(v).digest() + k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest() + v = createHmac(algo, k).update(v).digest() + return { k: k, v: v } } -Decipher.prototype._final = function () { - var chunk = this._cache.flush() - if (this._autopadding) { - return unpad(this._mode.decrypt(this, chunk)) - } else if (chunk) { - throw new Error('data not multiple of block length') - } +function bits2int (obits, q) { + var bits = new BN(obits) + var shift = (obits.length << 3) - q.bitLength() + if (shift > 0) bits.ishrn(shift) + return bits } -Decipher.prototype.setAutoPadding = function (setTo) { - this._autopadding = !!setTo - return this +function bits2octets (bits, q) { + bits = bits2int(bits, q) + bits = bits.mod(q) + var out = Buffer.from(bits.toArray()) + if (out.length < q.byteLength()) { + var zeros = Buffer.alloc(q.byteLength() - out.length) + out = Buffer.concat([zeros, out]) + } + return out } -function Splitter () { - this.cache = Buffer.allocUnsafe(0) +function makeKey (q, kv, algo) { + var t + var k + + do { + t = Buffer.alloc(0) + + while (t.length * 8 < q.bitLength()) { + kv.v = createHmac(algo, kv.k).update(kv.v).digest() + t = Buffer.concat([t, kv.v]) + } + + k = bits2int(t, q) + kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest() + kv.v = createHmac(algo, kv.k).update(kv.v).digest() + } while (k.cmp(q) !== -1) + + return k } -Splitter.prototype.add = function (data) { - this.cache = Buffer.concat([this.cache, data]) +function makeR (g, k, p, q) { + return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q) } -Splitter.prototype.get = function (autoPadding) { - var out - if (autoPadding) { - if (this.cache.length > 16) { - out = this.cache.slice(0, 16) - this.cache = this.cache.slice(16) - return out - } +module.exports = sign +module.exports.getKey = getKey +module.exports.makeKey = makeKey + + +/***/ }), + +/***/ "./node_modules/browserify-sign/browser/verify.js": +/*!********************************************************!*\ + !*** ./node_modules/browserify-sign/browser/verify.js ***! + \********************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js +var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) +var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js") +var EC = (__webpack_require__(/*! elliptic */ "./node_modules/elliptic/lib/elliptic.js").ec) +var parseKeys = __webpack_require__(/*! parse-asn1 */ "./node_modules/parse-asn1/index.js") +var curves = __webpack_require__(/*! ./curves.json */ "./node_modules/browserify-sign/browser/curves.json") + +function verify (sig, hash, key, signType, tag) { + var pub = parseKeys(key) + if (pub.type === 'ec') { + // rsa keys can be interpreted as ecdsa ones in openssl + if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type') + return ecVerify(sig, hash, pub) + } else if (pub.type === 'dsa') { + if (signType !== 'dsa') throw new Error('wrong public key type') + return dsaVerify(sig, hash, pub) } else { - if (this.cache.length >= 16) { - out = this.cache.slice(0, 16) - this.cache = this.cache.slice(16) - return out - } + if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type') } - - return null -} - -Splitter.prototype.flush = function () { - if (this.cache.length) return this.cache -} - -function unpad (last) { - var padded = last[15] - if (padded < 1 || padded > 16) { - throw new Error('unable to decrypt data') + hash = Buffer.concat([tag, hash]) + var len = pub.modulus.byteLength() + var pad = [1] + var padNum = 0 + while (hash.length + pad.length + 2 < len) { + pad.push(0xff) + padNum++ } + pad.push(0x00) var i = -1 - while (++i < padded) { - if (last[(i + (16 - padded))] !== padded) { - throw new Error('unable to decrypt data') - } + while (++i < hash.length) { + pad.push(hash[i]) } - if (padded === 16) return - - return last.slice(0, 16 - padded) -} + pad = Buffer.from(pad) + var red = BN.mont(pub.modulus) + sig = new BN(sig).toRed(red) -function createDecipheriv (suite, password, iv) { - var config = MODES[suite.toLowerCase()] - if (!config) throw new TypeError('invalid suite type') + sig = sig.redPow(new BN(pub.publicExponent)) + sig = Buffer.from(sig.fromRed().toArray()) + var out = padNum < 8 ? 1 : 0 + len = Math.min(sig.length, pad.length) + if (sig.length !== pad.length) out = 1 - if (typeof iv === 'string') iv = Buffer.from(iv) - if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length) + i = -1 + while (++i < len) out |= sig[i] ^ pad[i] + return out === 0 +} - if (typeof password === 'string') password = Buffer.from(password) - if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length) +function ecVerify (sig, hash, pub) { + var curveId = curves[pub.data.algorithm.curve.join('.')] + if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.')) - if (config.type === 'stream') { - return new StreamCipher(config.module, password, iv, true) - } else if (config.type === 'auth') { - return new AuthCipher(config.module, password, iv, true) - } + var curve = new EC(curveId) + var pubkey = pub.data.subjectPrivateKey.data - return new Decipher(config.module, password, iv) + return curve.verify(hash, sig, pubkey) } -function createDecipher (suite, password) { - var config = MODES[suite.toLowerCase()] - if (!config) throw new TypeError('invalid suite type') +function dsaVerify (sig, hash, pub) { + var p = pub.data.p + var q = pub.data.q + var g = pub.data.g + var y = pub.data.pub_key + var unpacked = parseKeys.signature.decode(sig, 'der') + var s = unpacked.s + var r = unpacked.r + checkValue(s, q) + checkValue(r, q) + var montp = BN.mont(p) + var w = s.invm(q) + var v = g.toRed(montp) + .redPow(new BN(hash).mul(w).mod(q)) + .fromRed() + .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed()) + .mod(p) + .mod(q) + return v.cmp(r) === 0 +} - var keys = ebtk(password, false, config.key, config.iv) - return createDecipheriv(suite, keys.key, keys.iv) +function checkValue (b, q) { + if (b.cmpn(0) <= 0) throw new Error('invalid sig') + if (b.cmp(q) >= q) throw new Error('invalid sig') } -exports.createDecipher = createDecipher -exports.createDecipheriv = createDecipheriv +module.exports = verify /***/ }), -/***/ "./node_modules/browserify-aes/encrypter.js": -/*!**************************************************!*\ - !*** ./node_modules/browserify-aes/encrypter.js ***! - \**************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -var MODES = __webpack_require__(/*! ./modes */ "./node_modules/browserify-aes/modes/index.js") -var AuthCipher = __webpack_require__(/*! ./authCipher */ "./node_modules/browserify-aes/authCipher.js") -var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) -var StreamCipher = __webpack_require__(/*! ./streamCipher */ "./node_modules/browserify-aes/streamCipher.js") -var Transform = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") -var aes = __webpack_require__(/*! ./aes */ "./node_modules/browserify-aes/aes.js") -var ebtk = __webpack_require__(/*! evp_bytestokey */ "./node_modules/evp_bytestokey/index.js") -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js ***! + \*************************************************************************************/ +/***/ (function(module) { -function Cipher (mode, key, iv) { - Transform.call(this) +"use strict"; - this._cache = new Splitter() - this._cipher = new aes.AES(key) - this._prev = Buffer.from(iv) - this._mode = mode - this._autopadding = true -} -inherits(Cipher, Transform) +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } -Cipher.prototype._update = function (data) { - this._cache.add(data) - var chunk - var thing - var out = [] +var codes = {}; - while ((chunk = this._cache.get())) { - thing = this._mode.encrypt(this, chunk) - out.push(thing) +function createErrorType(code, message, Base) { + if (!Base) { + Base = Error; } - return Buffer.concat(out) -} + function getMessage(arg1, arg2, arg3) { + if (typeof message === 'string') { + return message; + } else { + return message(arg1, arg2, arg3); + } + } -var PADDING = Buffer.alloc(16, 0x10) + var NodeError = + /*#__PURE__*/ + function (_Base) { + _inheritsLoose(NodeError, _Base); -Cipher.prototype._final = function () { - var chunk = this._cache.flush() - if (this._autopadding) { - chunk = this._mode.encrypt(this, chunk) - this._cipher.scrub() - return chunk - } + function NodeError(arg1, arg2, arg3) { + return _Base.call(this, getMessage(arg1, arg2, arg3)) || this; + } - if (!chunk.equals(PADDING)) { - this._cipher.scrub() - throw new Error('data not multiple of block length') - } -} + return NodeError; + }(Base); -Cipher.prototype.setAutoPadding = function (setTo) { - this._autopadding = !!setTo - return this -} + NodeError.prototype.name = Base.name; + NodeError.prototype.code = code; + codes[code] = NodeError; +} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js -function Splitter () { - this.cache = Buffer.allocUnsafe(0) -} -Splitter.prototype.add = function (data) { - this.cache = Buffer.concat([this.cache, data]) -} +function oneOf(expected, thing) { + if (Array.isArray(expected)) { + var len = expected.length; + expected = expected.map(function (i) { + return String(i); + }); -Splitter.prototype.get = function () { - if (this.cache.length > 15) { - var out = this.cache.slice(0, 16) - this.cache = this.cache.slice(16) - return out + if (len > 2) { + return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(', '), ", or ") + expected[len - 1]; + } else if (len === 2) { + return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]); + } else { + return "of ".concat(thing, " ").concat(expected[0]); + } + } else { + return "of ".concat(thing, " ").concat(String(expected)); } - return null -} +} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith -Splitter.prototype.flush = function () { - var len = 16 - this.cache.length - var padBuff = Buffer.allocUnsafe(len) - var i = -1 - while (++i < len) { - padBuff.writeUInt8(len, i) - } +function startsWith(str, search, pos) { + return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search; +} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith - return Buffer.concat([this.cache, padBuff]) -} -function createCipheriv (suite, password, iv) { - var config = MODES[suite.toLowerCase()] - if (!config) throw new TypeError('invalid suite type') +function endsWith(str, search, this_len) { + if (this_len === undefined || this_len > str.length) { + this_len = str.length; + } - if (typeof password === 'string') password = Buffer.from(password) - if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length) + return str.substring(this_len - search.length, this_len) === search; +} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes - if (typeof iv === 'string') iv = Buffer.from(iv) - if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length) - if (config.type === 'stream') { - return new StreamCipher(config.module, password, iv) - } else if (config.type === 'auth') { - return new AuthCipher(config.module, password, iv) +function includes(str, search, start) { + if (typeof start !== 'number') { + start = 0; } - return new Cipher(config.module, password, iv) + if (start + search.length > str.length) { + return false; + } else { + return str.indexOf(search, start) !== -1; + } } -function createCipher (suite, password) { - var config = MODES[suite.toLowerCase()] - if (!config) throw new TypeError('invalid suite type') +createErrorType('ERR_INVALID_OPT_VALUE', function (name, value) { + return 'The value "' + value + '" is invalid for option "' + name + '"'; +}, TypeError); +createErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) { + // determiner: 'must be' or 'must not be' + var determiner; - var keys = ebtk(password, false, config.key, config.iv) - return createCipheriv(suite, keys.key, keys.iv) -} + if (typeof expected === 'string' && startsWith(expected, 'not ')) { + determiner = 'must not be'; + expected = expected.replace(/^not /, ''); + } else { + determiner = 'must be'; + } -exports.createCipheriv = createCipheriv -exports.createCipher = createCipher + var msg; + + if (endsWith(name, ' argument')) { + // For cases like 'first argument' + msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, 'type')); + } else { + var type = includes(name, '.') ? 'property' : 'argument'; + msg = "The \"".concat(name, "\" ").concat(type, " ").concat(determiner, " ").concat(oneOf(expected, 'type')); + } + + msg += ". Received type ".concat(typeof actual); + return msg; +}, TypeError); +createErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF'); +createErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) { + return 'The ' + name + ' method is not implemented'; +}); +createErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close'); +createErrorType('ERR_STREAM_DESTROYED', function (name) { + return 'Cannot call ' + name + ' after a stream was destroyed'; +}); +createErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times'); +createErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable'); +createErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end'); +createErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError); +createErrorType('ERR_UNKNOWN_ENCODING', function (arg) { + return 'Unknown encoding: ' + arg; +}, TypeError); +createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event'); +module.exports.codes = codes; /***/ }), -/***/ "./node_modules/browserify-aes/ghash.js": -/*!**********************************************!*\ - !*** ./node_modules/browserify-aes/ghash.js ***! - \**********************************************/ +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js": +/*!*****************************************************************************************!*\ + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js ***! + \*****************************************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { -var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) -var ZEROES = Buffer.alloc(16, 0) +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. -function toArray (buf) { - return [ - buf.readUInt32BE(0), - buf.readUInt32BE(4), - buf.readUInt32BE(8), - buf.readUInt32BE(12) - ] -} +// a duplex stream is just a stream that is both readable and writable. +// Since JS doesn't have multiple prototypal inheritance, this class +// prototypally inherits from Readable, and then parasitically from +// Writable. -function fromArray (out) { - var buf = Buffer.allocUnsafe(16) - buf.writeUInt32BE(out[0] >>> 0, 0) - buf.writeUInt32BE(out[1] >>> 0, 4) - buf.writeUInt32BE(out[2] >>> 0, 8) - buf.writeUInt32BE(out[3] >>> 0, 12) - return buf -} -function GHASH (key) { - this.h = key - this.state = Buffer.alloc(16, 0) - this.cache = Buffer.allocUnsafe(0) -} -// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html -// by Juho Vähä-Herttua -GHASH.prototype.ghash = function (block) { - var i = -1 - while (++i < block.length) { - this.state[i] ^= block[i] +/**/ +var objectKeys = Object.keys || function (obj) { + var keys = []; + for (var key in obj) keys.push(key); + return keys; +}; +/**/ + +module.exports = Duplex; +var Readable = __webpack_require__(/*! ./_stream_readable */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js"); +var Writable = __webpack_require__(/*! ./_stream_writable */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js"); +__webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js")(Duplex, Readable); +{ + // Allow the keys array to be GC'ed. + var keys = objectKeys(Writable.prototype); + for (var v = 0; v < keys.length; v++) { + var method = keys[v]; + if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; } - this._multiply() } - -GHASH.prototype._multiply = function () { - var Vi = toArray(this.h) - var Zi = [0, 0, 0, 0] - var j, xi, lsbVi - var i = -1 - while (++i < 128) { - xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0 - if (xi) { - // Z_i+1 = Z_i ^ V_i - Zi[0] ^= Vi[0] - Zi[1] ^= Vi[1] - Zi[2] ^= Vi[2] - Zi[3] ^= Vi[3] - } - - // Store the value of LSB(V_i) - lsbVi = (Vi[3] & 1) !== 0 - - // V_i+1 = V_i >> 1 - for (j = 3; j > 0; j--) { - Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31) - } - Vi[0] = Vi[0] >>> 1 - - // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R - if (lsbVi) { - Vi[0] = Vi[0] ^ (0xe1 << 24) +function Duplex(options) { + if (!(this instanceof Duplex)) return new Duplex(options); + Readable.call(this, options); + Writable.call(this, options); + this.allowHalfOpen = true; + if (options) { + if (options.readable === false) this.readable = false; + if (options.writable === false) this.writable = false; + if (options.allowHalfOpen === false) { + this.allowHalfOpen = false; + this.once('end', onend); } } - this.state = fromArray(Zi) } - -GHASH.prototype.update = function (buf) { - this.cache = Buffer.concat([this.cache, buf]) - var chunk - while (this.cache.length >= 16) { - chunk = this.cache.slice(0, 16) - this.cache = this.cache.slice(16) - this.ghash(chunk) +Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.highWaterMark; } -} - -GHASH.prototype.final = function (abl, bl) { - if (this.cache.length) { - this.ghash(Buffer.concat([this.cache, ZEROES], 16)) +}); +Object.defineProperty(Duplex.prototype, 'writableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState && this._writableState.getBuffer(); } +}); +Object.defineProperty(Duplex.prototype, 'writableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.length; + } +}); - this.ghash(fromArray([0, abl, 0, bl])) - return this.state -} - -module.exports = GHASH - - -/***/ }), - -/***/ "./node_modules/browserify-aes/incr32.js": -/*!***********************************************!*\ - !*** ./node_modules/browserify-aes/incr32.js ***! - \***********************************************/ -/***/ (function(module) { +// the no-half-open enforcer +function onend() { + // If the writable side ended, then we're ok. + if (this._writableState.ended) return; -function incr32 (iv) { - var len = iv.length - var item - while (len--) { - item = iv.readUInt8(len) - if (item === 255) { - iv.writeUInt8(0, len) - } else { - item++ - iv.writeUInt8(item, len) - break - } - } + // no more data can be written. + // But allow more writes to happen in this tick. + ({"env":{"NODE_ENV":"production"}}).nextTick(onEndNT, this); } -module.exports = incr32 +function onEndNT(self) { + self.end(); +} +Object.defineProperty(Duplex.prototype, 'destroyed', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._readableState === undefined || this._writableState === undefined) { + return false; + } + return this._readableState.destroyed && this._writableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (this._readableState === undefined || this._writableState === undefined) { + return; + } + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + this._writableState.destroyed = value; + } +}); /***/ }), -/***/ "./node_modules/browserify-aes/modes/cbc.js": -/*!**************************************************!*\ - !*** ./node_modules/browserify-aes/modes/cbc.js ***! - \**************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -var xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js") +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js": +/*!**********************************************************************************************!*\ + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js ***! + \**********************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { -exports.encrypt = function (self, block) { - var data = xor(block, self._prev) +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. - self._prev = self._cipher.encryptBlock(data) - return self._prev -} +// a passthrough stream. +// basically just the most minimal sort of Transform stream. +// Every written chunk gets output as-is. -exports.decrypt = function (self, block) { - var pad = self._prev - self._prev = block - var out = self._cipher.decryptBlock(block) - return xor(out, pad) +module.exports = PassThrough; +var Transform = __webpack_require__(/*! ./_stream_transform */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js"); +__webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js")(PassThrough, Transform); +function PassThrough(options) { + if (!(this instanceof PassThrough)) return new PassThrough(options); + Transform.call(this, options); } - +PassThrough.prototype._transform = function (chunk, encoding, cb) { + cb(null, chunk); +}; /***/ }), -/***/ "./node_modules/browserify-aes/modes/cfb.js": -/*!**************************************************!*\ - !*** ./node_modules/browserify-aes/modes/cfb.js ***! - \**************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) -var xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js") +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js": +/*!*******************************************************************************************!*\ + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js ***! + \*******************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { -function encryptStart (self, data, decrypt) { - var len = data.length - var out = xor(data, self._cache) - self._cache = self._cache.slice(len) - self._prev = Buffer.concat([self._prev, decrypt ? data : out]) - return out -} +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. -exports.encrypt = function (self, data, decrypt) { - var out = Buffer.allocUnsafe(0) - var len - while (data.length) { - if (self._cache.length === 0) { - self._cache = self._cipher.encryptBlock(self._prev) - self._prev = Buffer.allocUnsafe(0) - } - if (self._cache.length <= data.length) { - len = self._cache.length - out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)]) - data = data.slice(len) - } else { - out = Buffer.concat([out, encryptStart(self, data, decrypt)]) - break - } - } +module.exports = Readable; - return out -} +/**/ +var Duplex; +/**/ +Readable.ReadableState = ReadableState; -/***/ }), +/**/ +var EE = (__webpack_require__(/*! events */ "./node_modules/events/events.js").EventEmitter); +var EElistenerCount = function EElistenerCount(emitter, type) { + return emitter.listeners(type).length; +}; +/**/ -/***/ "./node_modules/browserify-aes/modes/cfb1.js": -/*!***************************************************!*\ - !*** ./node_modules/browserify-aes/modes/cfb1.js ***! - \***************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { +/**/ +var Stream = __webpack_require__(/*! ./internal/streams/stream */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js"); +/**/ -var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) +var Buffer = (__webpack_require__(/*! buffer */ "./node_modules/buffer/index.js").Buffer); +var OurUint8Array = (typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} -function encryptByte (self, byteParam, decrypt) { - var pad - var i = -1 - var len = 8 - var out = 0 - var bit, value - while (++i < len) { - pad = self._cipher.encryptBlock(self._prev) - bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0 - value = pad[0] ^ bit - out += ((value & 0x80) >> (i % 8)) - self._prev = shiftIn(self._prev, decrypt ? bit : value) - } - return out +/**/ +var debugUtil = __webpack_require__(/*! util */ "?593c"); +var debug; +if (debugUtil && debugUtil.debuglog) { + debug = debugUtil.debuglog('stream'); +} else { + debug = function debug() {}; } +/**/ -function shiftIn (buffer, value) { - var len = buffer.length - var i = -1 - var out = Buffer.allocUnsafe(buffer.length) - buffer = Buffer.concat([buffer, Buffer.from([value])]) +var BufferList = __webpack_require__(/*! ./internal/streams/buffer_list */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js"); +var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js"); +var _require = __webpack_require__(/*! ./internal/streams/state */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js"), + getHighWaterMark = _require.getHighWaterMark; +var _require$codes = (__webpack_require__(/*! ../errors */ "./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js").codes), + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; - while (++i < len) { - out[i] = buffer[i] << 1 | buffer[i + 1] >> (7) - } +// Lazy loaded to improve the startup performance. +var StringDecoder; +var createReadableStreamAsyncIterator; +var from; +__webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js")(Readable, Stream); +var errorOrDestroy = destroyImpl.errorOrDestroy; +var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; +function prependListener(emitter, event, fn) { + // Sadly this is not cacheable as some libraries bundle their own + // event emitter implementation with them. + if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); - return out + // This is a hack to make sure that our error handler is attached before any + // userland ones. NEVER DO THIS. This is here only because this code needs + // to continue to work with older versions of Node.js that do not include + // the prependListener() method. The goal is to eventually remove this hack. + if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; } +function ReadableState(options, stream, isDuplex) { + Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js"); + options = options || {}; -exports.encrypt = function (self, chunk, decrypt) { - var len = chunk.length - var out = Buffer.allocUnsafe(len) - var i = -1 + // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream. + // These options can be provided separately as readableXXX and writableXXX. + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; - while (++i < len) { - out[i] = encryptByte(self, chunk[i], decrypt) - } + // object stream flag. Used to make read(n) ignore n and to + // make all the buffer merging and length checks go away + this.objectMode = !!options.objectMode; + if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; - return out -} + // the point at which it stops calling _read() to fill the buffer + // Note: 0 is a valid value, means "don't call _read preemptively ever" + this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); + // A linked list is used to store data chunks instead of an array because the + // linked list can remove elements from the beginning faster than + // array.shift() + this.buffer = new BufferList(); + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = null; + this.ended = false; + this.endEmitted = false; + this.reading = false; -/***/ }), + // a flag to be able to tell if the event 'readable'/'data' is emitted + // immediately, or on a later tick. We set this to true at first, because + // any actions that shouldn't happen until "later" should generally also + // not happen before the first read call. + this.sync = true; -/***/ "./node_modules/browserify-aes/modes/cfb8.js": -/*!***************************************************!*\ - !*** ./node_modules/browserify-aes/modes/cfb8.js ***! - \***************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + // whenever we return null, then we set a flag to say + // that we're awaiting a 'readable' event emission. + this.needReadable = false; + this.emittedReadable = false; + this.readableListening = false; + this.resumeScheduled = false; + this.paused = true; -var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) + // Should close be emitted on destroy. Defaults to true. + this.emitClose = options.emitClose !== false; -function encryptByte (self, byteParam, decrypt) { - var pad = self._cipher.encryptBlock(self._prev) - var out = pad[0] ^ byteParam + // Should .destroy() be called after 'end' (and potentially 'finish') + this.autoDestroy = !!options.autoDestroy; - self._prev = Buffer.concat([ - self._prev.slice(1), - Buffer.from([decrypt ? byteParam : out]) - ]) + // has it been destroyed + this.destroyed = false; - return out -} + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; -exports.encrypt = function (self, chunk, decrypt) { - var len = chunk.length - var out = Buffer.allocUnsafe(len) - var i = -1 + // the number of writers that are awaiting a drain event in .pipe()s + this.awaitDrain = 0; - while (++i < len) { - out[i] = encryptByte(self, chunk[i], decrypt) + // if true, a maybeReadMore has been scheduled + this.readingMore = false; + this.decoder = null; + this.encoding = null; + if (options.encoding) { + if (!StringDecoder) StringDecoder = (__webpack_require__(/*! string_decoder/ */ "./node_modules/string_decoder/lib/string_decoder.js").StringDecoder); + this.decoder = new StringDecoder(options.encoding); + this.encoding = options.encoding; } - - return out } +function Readable(options) { + Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js"); + if (!(this instanceof Readable)) return new Readable(options); + // Checking for a Stream.Duplex instance is faster here instead of inside + // the ReadableState constructor, at least with V8 6.5 + var isDuplex = this instanceof Duplex; + this._readableState = new ReadableState(options, this, isDuplex); -/***/ }), + // legacy + this.readable = true; + if (options) { + if (typeof options.read === 'function') this._read = options.read; + if (typeof options.destroy === 'function') this._destroy = options.destroy; + } + Stream.call(this); +} +Object.defineProperty(Readable.prototype, 'destroyed', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._readableState === undefined) { + return false; + } + return this._readableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._readableState) { + return; + } -/***/ "./node_modules/browserify-aes/modes/ctr.js": -/*!**************************************************!*\ - !*** ./node_modules/browserify-aes/modes/ctr.js ***! - \**************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + } +}); +Readable.prototype.destroy = destroyImpl.destroy; +Readable.prototype._undestroy = destroyImpl.undestroy; +Readable.prototype._destroy = function (err, cb) { + cb(err); +}; -var xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js") -var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) -var incr32 = __webpack_require__(/*! ../incr32 */ "./node_modules/browserify-aes/incr32.js") +// Manually shove something into the read() buffer. +// This returns true if the highWaterMark has not been hit yet, +// similar to how Writable.write() returns true if you should +// write() some more. +Readable.prototype.push = function (chunk, encoding) { + var state = this._readableState; + var skipChunkCheck; + if (!state.objectMode) { + if (typeof chunk === 'string') { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = Buffer.from(chunk, encoding); + encoding = ''; + } + skipChunkCheck = true; + } + } else { + skipChunkCheck = true; + } + return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); +}; -function getBlock (self) { - var out = self._cipher.encryptBlockRaw(self._prev) - incr32(self._prev) - return out -} +// Unshift should *always* be something directly out of read() +Readable.prototype.unshift = function (chunk) { + return readableAddChunk(this, chunk, null, true, false); +}; +function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { + debug('readableAddChunk', chunk); + var state = stream._readableState; + if (chunk === null) { + state.reading = false; + onEofChunk(stream, state); + } else { + var er; + if (!skipChunkCheck) er = chunkInvalid(state, chunk); + if (er) { + errorOrDestroy(stream, er); + } else if (state.objectMode || chunk && chunk.length > 0) { + if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { + chunk = _uint8ArrayToBuffer(chunk); + } + if (addToFront) { + if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true); + } else if (state.ended) { + errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()); + } else if (state.destroyed) { + return false; + } else { + state.reading = false; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); + } else { + addChunk(stream, state, chunk, false); + } + } + } else if (!addToFront) { + state.reading = false; + maybeReadMore(stream, state); + } + } -var blockSize = 16 -exports.encrypt = function (self, chunk) { - var chunkNum = Math.ceil(chunk.length / blockSize) - var start = self._cache.length - self._cache = Buffer.concat([ - self._cache, - Buffer.allocUnsafe(chunkNum * blockSize) - ]) - for (var i = 0; i < chunkNum; i++) { - var out = getBlock(self) - var offset = start + i * blockSize - self._cache.writeUInt32BE(out[0], offset + 0) - self._cache.writeUInt32BE(out[1], offset + 4) - self._cache.writeUInt32BE(out[2], offset + 8) - self._cache.writeUInt32BE(out[3], offset + 12) + // We can push more data if we are below the highWaterMark. + // Also, if we have no data yet, we can stand some more bytes. + // This is to work around cases where hwm=0, such as the repl. + return !state.ended && (state.length < state.highWaterMark || state.length === 0); +} +function addChunk(stream, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync) { + state.awaitDrain = 0; + stream.emit('data', chunk); + } else { + // update the buffer info. + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); + if (state.needReadable) emitReadable(stream); } - var pad = self._cache.slice(0, chunk.length) - self._cache = self._cache.slice(chunk.length) - return xor(chunk, pad) + maybeReadMore(stream, state); } +function chunkInvalid(state, chunk) { + var er; + if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk); + } + return er; +} +Readable.prototype.isPaused = function () { + return this._readableState.flowing === false; +}; +// backwards compatibility. +Readable.prototype.setEncoding = function (enc) { + if (!StringDecoder) StringDecoder = (__webpack_require__(/*! string_decoder/ */ "./node_modules/string_decoder/lib/string_decoder.js").StringDecoder); + var decoder = new StringDecoder(enc); + this._readableState.decoder = decoder; + // If setEncoding(null), decoder.encoding equals utf8 + this._readableState.encoding = this._readableState.decoder.encoding; -/***/ }), - -/***/ "./node_modules/browserify-aes/modes/ecb.js": -/*!**************************************************!*\ - !*** ./node_modules/browserify-aes/modes/ecb.js ***! - \**************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -exports.encrypt = function (self, block) { - return self._cipher.encryptBlock(block) -} + // Iterate over current buffer to convert already stored Buffers: + var p = this._readableState.buffer.head; + var content = ''; + while (p !== null) { + content += decoder.write(p.data); + p = p.next; + } + this._readableState.buffer.clear(); + if (content !== '') this._readableState.buffer.push(content); + this._readableState.length = content.length; + return this; +}; -exports.decrypt = function (self, block) { - return self._cipher.decryptBlock(block) +// Don't raise the hwm > 1GB +var MAX_HWM = 0x40000000; +function computeNewHighWaterMark(n) { + if (n >= MAX_HWM) { + // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE. + n = MAX_HWM; + } else { + // Get the next highest power of 2 to prevent increasing hwm excessively in + // tiny amounts + n--; + n |= n >>> 1; + n |= n >>> 2; + n |= n >>> 4; + n |= n >>> 8; + n |= n >>> 16; + n++; + } + return n; } - -/***/ }), - -/***/ "./node_modules/browserify-aes/modes/index.js": -/*!****************************************************!*\ - !*** ./node_modules/browserify-aes/modes/index.js ***! - \****************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var modeModules = { - ECB: __webpack_require__(/*! ./ecb */ "./node_modules/browserify-aes/modes/ecb.js"), - CBC: __webpack_require__(/*! ./cbc */ "./node_modules/browserify-aes/modes/cbc.js"), - CFB: __webpack_require__(/*! ./cfb */ "./node_modules/browserify-aes/modes/cfb.js"), - CFB8: __webpack_require__(/*! ./cfb8 */ "./node_modules/browserify-aes/modes/cfb8.js"), - CFB1: __webpack_require__(/*! ./cfb1 */ "./node_modules/browserify-aes/modes/cfb1.js"), - OFB: __webpack_require__(/*! ./ofb */ "./node_modules/browserify-aes/modes/ofb.js"), - CTR: __webpack_require__(/*! ./ctr */ "./node_modules/browserify-aes/modes/ctr.js"), - GCM: __webpack_require__(/*! ./ctr */ "./node_modules/browserify-aes/modes/ctr.js") +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function howMuchToRead(n, state) { + if (n <= 0 || state.length === 0 && state.ended) return 0; + if (state.objectMode) return 1; + if (n !== n) { + // Only flow one buffer at a time + if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; + } + // If we're asking for more than the current hwm, then raise the hwm. + if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); + if (n <= state.length) return n; + // Don't have enough + if (!state.ended) { + state.needReadable = true; + return 0; + } + return state.length; } -var modes = __webpack_require__(/*! ./list.json */ "./node_modules/browserify-aes/modes/list.json") +// you can override either this method, or the async _read(n) below. +Readable.prototype.read = function (n) { + debug('read', n); + n = parseInt(n, 10); + var state = this._readableState; + var nOrig = n; + if (n !== 0) state.emittedReadable = false; -for (var key in modes) { - modes[key].module = modeModules[modes[key].mode] -} + // if we're doing read(0) to trigger a readable event, but we + // already have a bunch of data in the buffer, then just trigger + // the 'readable' event and move on. + if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { + debug('read: emitReadable', state.length, state.ended); + if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); + return null; + } + n = howMuchToRead(n, state); -module.exports = modes + // if we've ended, and we're now clear, then finish it up. + if (n === 0 && state.ended) { + if (state.length === 0) endReadable(this); + return null; + } + // All the actual chunk generation logic needs to be + // *below* the call to _read. The reason is that in certain + // synthetic stream cases, such as passthrough streams, _read + // may be a completely synchronous operation which may change + // the state of the read buffer, providing enough data when + // before there was *not* enough. + // + // So, the steps are: + // 1. Figure out what the state of things will be after we do + // a read from the buffer. + // + // 2. If that resulting state will trigger a _read, then call _read. + // Note that this may be asynchronous, or synchronous. Yes, it is + // deeply ugly to write APIs this way, but that still doesn't mean + // that the Readable class should behave improperly, as streams are + // designed to be sync/async agnostic. + // Take note if the _read call is sync or async (ie, if the read call + // has returned yet), so that we know whether or not it's safe to emit + // 'readable' etc. + // + // 3. Actually pull the requested chunks out of the buffer and return. -/***/ }), + // if we need a readable event, then we need to do some reading. + var doRead = state.needReadable; + debug('need readable', doRead); -/***/ "./node_modules/browserify-aes/modes/ofb.js": -/*!**************************************************!*\ - !*** ./node_modules/browserify-aes/modes/ofb.js ***! - \**************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + // if we currently have less than the highWaterMark, then also read some + if (state.length === 0 || state.length - n < state.highWaterMark) { + doRead = true; + debug('length less than watermark', doRead); + } -/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; -var xor = __webpack_require__(/*! buffer-xor */ "./node_modules/buffer-xor/index.js") + // however, if we've ended, then there's no point, and if we're already + // reading, then it's unnecessary. + if (state.ended || state.reading) { + doRead = false; + debug('reading or ended', doRead); + } else if (doRead) { + debug('do read'); + state.reading = true; + state.sync = true; + // if the length is currently zero, then we *need* a readable event. + if (state.length === 0) state.needReadable = true; + // call internal read method + this._read(state.highWaterMark); + state.sync = false; + // If _read pushed data synchronously, then `reading` will be false, + // and we need to re-evaluate how much data we can return to the user. + if (!state.reading) n = howMuchToRead(nOrig, state); + } + var ret; + if (n > 0) ret = fromList(n, state);else ret = null; + if (ret === null) { + state.needReadable = state.length <= state.highWaterMark; + n = 0; + } else { + state.length -= n; + state.awaitDrain = 0; + } + if (state.length === 0) { + // If we have nothing in the buffer, then we want to know + // as soon as we *do* get something into the buffer. + if (!state.ended) state.needReadable = true; -function getBlock (self) { - self._prev = self._cipher.encryptBlock(self._prev) - return self._prev + // If we tried to read() past the EOF, then emit end on the next tick. + if (nOrig !== n && state.ended) endReadable(this); + } + if (ret !== null) this.emit('data', ret); + return ret; +}; +function onEofChunk(stream, state) { + debug('onEofChunk'); + if (state.ended) return; + if (state.decoder) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + state.ended = true; + if (state.sync) { + // if we are sync, wait until next tick to emit the data. + // Otherwise we risk emitting data in the flow() + // the readable code triggers during a read() call + emitReadable(stream); + } else { + // emit 'readable' now to make sure it gets picked up. + state.needReadable = false; + if (!state.emittedReadable) { + state.emittedReadable = true; + emitReadable_(stream); + } + } } -exports.encrypt = function (self, chunk) { - while (self._cache.length < chunk.length) { - self._cache = Buffer.concat([self._cache, getBlock(self)]) +// Don't emit readable right away in sync mode, because this can trigger +// another read() call => stack overflow. This way, it might trigger +// a nextTick recursion warning, but that's not so bad. +function emitReadable(stream) { + var state = stream._readableState; + debug('emitReadable', state.needReadable, state.emittedReadable); + state.needReadable = false; + if (!state.emittedReadable) { + debug('emitReadable', state.flowing); + state.emittedReadable = true; + ({"env":{"NODE_ENV":"production"}}).nextTick(emitReadable_, stream); + } +} +function emitReadable_(stream) { + var state = stream._readableState; + debug('emitReadable_', state.destroyed, state.length, state.ended); + if (!state.destroyed && (state.length || state.ended)) { + stream.emit('readable'); + state.emittedReadable = false; } - var pad = self._cache.slice(0, chunk.length) - self._cache = self._cache.slice(chunk.length) - return xor(chunk, pad) + // The stream needs another readable event if + // 1. It is not flowing, as the flow mechanism will take + // care of it. + // 2. It is not ended. + // 3. It is below the highWaterMark, so we can schedule + // another readable later. + state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark; + flow(stream); } +// at this point, the user has presumably seen the 'readable' event, +// and called read() to consume some data. that may have triggered +// in turn another _read(n) call, in which case reading = true if +// it's in progress. +// However, if we're not ended, or reading, and the length < hwm, +// then go ahead and try to read some more preemptively. +function maybeReadMore(stream, state) { + if (!state.readingMore) { + state.readingMore = true; + ({"env":{"NODE_ENV":"production"}}).nextTick(maybeReadMore_, stream, state); + } +} +function maybeReadMore_(stream, state) { + // Attempt to read more data if we should. + // + // The conditions for reading more data are (one of): + // - Not enough data buffered (state.length < state.highWaterMark). The loop + // is responsible for filling the buffer with enough data if such data + // is available. If highWaterMark is 0 and we are not in the flowing mode + // we should _not_ attempt to buffer any extra data. We'll get more data + // when the stream consumer calls read() instead. + // - No data in the buffer, and the stream is in flowing mode. In this mode + // the loop below is responsible for ensuring read() is called. Failing to + // call read here would abort the flow and there's no other mechanism for + // continuing the flow if the stream consumer has just subscribed to the + // 'data' event. + // + // In addition to the above conditions to keep reading data, the following + // conditions prevent the data from being read: + // - The stream has ended (state.ended). + // - There is already a pending 'read' operation (state.reading). This is a + // case where the the stream has called the implementation defined _read() + // method, but they are processing the call asynchronously and have _not_ + // called push() with new data. In this case we skip performing more + // read()s. The execution ends in this method again after the _read() ends + // up calling push() with more data. + while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) { + var len = state.length; + debug('maybeReadMore read 0'); + stream.read(0); + if (len === state.length) + // didn't get any data, stop spinning. + break; + } + state.readingMore = false; +} -/***/ }), +// abstract method. to be overridden in specific implementation classes. +// call cb(er, data) where data is <= n in length. +// for virtual (non-string, non-buffer) streams, "length" is somewhat +// arbitrary, and perhaps not very meaningful. +Readable.prototype._read = function (n) { + errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()')); +}; +Readable.prototype.pipe = function (dest, pipeOpts) { + var src = this; + var state = this._readableState; + switch (state.pipesCount) { + case 0: + state.pipes = dest; + break; + case 1: + state.pipes = [state.pipes, dest]; + break; + default: + state.pipes.push(dest); + break; + } + state.pipesCount += 1; + debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); + var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== ({"env":{"NODE_ENV":"production"}}).stdout && dest !== ({"env":{"NODE_ENV":"production"}}).stderr; + var endFn = doEnd ? onend : unpipe; + if (state.endEmitted) ({"env":{"NODE_ENV":"production"}}).nextTick(endFn);else src.once('end', endFn); + dest.on('unpipe', onunpipe); + function onunpipe(readable, unpipeInfo) { + debug('onunpipe'); + if (readable === src) { + if (unpipeInfo && unpipeInfo.hasUnpiped === false) { + unpipeInfo.hasUnpiped = true; + cleanup(); + } + } + } + function onend() { + debug('onend'); + dest.end(); + } -/***/ "./node_modules/browserify-aes/streamCipher.js": -/*!*****************************************************!*\ - !*** ./node_modules/browserify-aes/streamCipher.js ***! - \*****************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + // when the dest drains, it reduces the awaitDrain counter + // on the source. This would be more elegant with a .once() + // handler in flow(), but adding and removing repeatedly is + // too slow. + var ondrain = pipeOnDrain(src); + dest.on('drain', ondrain); + var cleanedUp = false; + function cleanup() { + debug('cleanup'); + // cleanup event handlers once the pipe is broken + dest.removeListener('close', onclose); + dest.removeListener('finish', onfinish); + dest.removeListener('drain', ondrain); + dest.removeListener('error', onerror); + dest.removeListener('unpipe', onunpipe); + src.removeListener('end', onend); + src.removeListener('end', unpipe); + src.removeListener('data', ondata); + cleanedUp = true; -var aes = __webpack_require__(/*! ./aes */ "./node_modules/browserify-aes/aes.js") -var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) -var Transform = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") + // if the reader is waiting for a drain event from this + // specific writer, then it would cause it to never start + // flowing again. + // So, if this is awaiting a drain, then we just call it now. + // If we don't know, then assume that we are waiting for one. + if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); + } + src.on('data', ondata); + function ondata(chunk) { + debug('ondata'); + var ret = dest.write(chunk); + debug('dest.write', ret); + if (ret === false) { + // If the user unpiped during `dest.write()`, it is possible + // to get stuck in a permanently paused state if that write + // also returned false. + // => Check whether `dest` is still a piping destination. + if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { + debug('false write response, pause', state.awaitDrain); + state.awaitDrain++; + } + src.pause(); + } + } -function StreamCipher (mode, key, iv, decrypt) { - Transform.call(this) + // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. + function onerror(er) { + debug('onerror', er); + unpipe(); + dest.removeListener('error', onerror); + if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er); + } - this._cipher = new aes.AES(key) - this._prev = Buffer.from(iv) - this._cache = Buffer.allocUnsafe(0) - this._secCache = Buffer.allocUnsafe(0) - this._decrypt = decrypt - this._mode = mode -} + // Make sure our error handler is attached before userland ones. + prependListener(dest, 'error', onerror); -inherits(StreamCipher, Transform) + // Both close and finish should trigger unpipe, but only once. + function onclose() { + dest.removeListener('finish', onfinish); + unpipe(); + } + dest.once('close', onclose); + function onfinish() { + debug('onfinish'); + dest.removeListener('close', onclose); + unpipe(); + } + dest.once('finish', onfinish); + function unpipe() { + debug('unpipe'); + src.unpipe(dest); + } -StreamCipher.prototype._update = function (chunk) { - return this._mode.encrypt(this, chunk, this._decrypt) -} + // tell the dest that it's being piped to + dest.emit('pipe', src); -StreamCipher.prototype._final = function () { - this._cipher.scrub() + // start the flow if it hasn't been started already. + if (!state.flowing) { + debug('pipe resume'); + src.resume(); + } + return dest; +}; +function pipeOnDrain(src) { + return function pipeOnDrainFunctionResult() { + var state = src._readableState; + debug('pipeOnDrain', state.awaitDrain); + if (state.awaitDrain) state.awaitDrain--; + if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { + state.flowing = true; + flow(src); + } + }; } +Readable.prototype.unpipe = function (dest) { + var state = this._readableState; + var unpipeInfo = { + hasUnpiped: false + }; -module.exports = StreamCipher - - -/***/ }), + // if we're not piping anywhere, then do nothing. + if (state.pipesCount === 0) return this; -/***/ "./node_modules/browserify-cipher/browser.js": -/*!***************************************************!*\ - !*** ./node_modules/browserify-cipher/browser.js ***! - \***************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + // just one destination. most common case. + if (state.pipesCount === 1) { + // passed in one, but it's not the right one. + if (dest && dest !== state.pipes) return this; + if (!dest) dest = state.pipes; -var DES = __webpack_require__(/*! browserify-des */ "./node_modules/browserify-des/index.js") -var aes = __webpack_require__(/*! browserify-aes/browser */ "./node_modules/browserify-aes/browser.js") -var aesModes = __webpack_require__(/*! browserify-aes/modes */ "./node_modules/browserify-aes/modes/index.js") -var desModes = __webpack_require__(/*! browserify-des/modes */ "./node_modules/browserify-des/modes.js") -var ebtk = __webpack_require__(/*! evp_bytestokey */ "./node_modules/evp_bytestokey/index.js") + // got a match. + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + if (dest) dest.emit('unpipe', this, unpipeInfo); + return this; + } -function createCipher (suite, password) { - suite = suite.toLowerCase() + // slow case. multiple pipe destinations. - var keyLen, ivLen - if (aesModes[suite]) { - keyLen = aesModes[suite].key - ivLen = aesModes[suite].iv - } else if (desModes[suite]) { - keyLen = desModes[suite].key * 8 - ivLen = desModes[suite].iv - } else { - throw new TypeError('invalid suite type') + if (!dest) { + // remove all. + var dests = state.pipes; + var len = state.pipesCount; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, { + hasUnpiped: false + }); + return this; } - var keys = ebtk(password, false, keyLen, ivLen) - return createCipheriv(suite, keys.key, keys.iv) -} + // try to find the right one. + var index = indexOf(state.pipes, dest); + if (index === -1) return this; + state.pipes.splice(index, 1); + state.pipesCount -= 1; + if (state.pipesCount === 1) state.pipes = state.pipes[0]; + dest.emit('unpipe', this, unpipeInfo); + return this; +}; -function createDecipher (suite, password) { - suite = suite.toLowerCase() +// set up data events if they are asked for +// Ensure readable listeners eventually get something +Readable.prototype.on = function (ev, fn) { + var res = Stream.prototype.on.call(this, ev, fn); + var state = this._readableState; + if (ev === 'data') { + // update readableListening so that resume() may be a no-op + // a few lines down. This is needed to support once('readable'). + state.readableListening = this.listenerCount('readable') > 0; - var keyLen, ivLen - if (aesModes[suite]) { - keyLen = aesModes[suite].key - ivLen = aesModes[suite].iv - } else if (desModes[suite]) { - keyLen = desModes[suite].key * 8 - ivLen = desModes[suite].iv - } else { - throw new TypeError('invalid suite type') + // Try start flowing on next tick if stream isn't explicitly paused + if (state.flowing !== false) this.resume(); + } else if (ev === 'readable') { + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true; + state.flowing = false; + state.emittedReadable = false; + debug('on readable', state.length, state.reading); + if (state.length) { + emitReadable(this); + } else if (!state.reading) { + ({"env":{"NODE_ENV":"production"}}).nextTick(nReadingNextTick, this); + } + } + } + return res; +}; +Readable.prototype.addListener = Readable.prototype.on; +Readable.prototype.removeListener = function (ev, fn) { + var res = Stream.prototype.removeListener.call(this, ev, fn); + if (ev === 'readable') { + // We need to check if there is someone still listening to + // readable and reset the state. However this needs to happen + // after readable has been emitted but before I/O (nextTick) to + // support once('readable', fn) cycles. This means that calling + // resume within the same tick will have no + // effect. + ({"env":{"NODE_ENV":"production"}}).nextTick(updateReadableListening, this); + } + return res; +}; +Readable.prototype.removeAllListeners = function (ev) { + var res = Stream.prototype.removeAllListeners.apply(this, arguments); + if (ev === 'readable' || ev === undefined) { + // We need to check if there is someone still listening to + // readable and reset the state. However this needs to happen + // after readable has been emitted but before I/O (nextTick) to + // support once('readable', fn) cycles. This means that calling + // resume within the same tick will have no + // effect. + ({"env":{"NODE_ENV":"production"}}).nextTick(updateReadableListening, this); } + return res; +}; +function updateReadableListening(self) { + var state = self._readableState; + state.readableListening = self.listenerCount('readable') > 0; + if (state.resumeScheduled && !state.paused) { + // flowing needs to be set to true now, otherwise + // the upcoming resume will not flow. + state.flowing = true; - var keys = ebtk(password, false, keyLen, ivLen) - return createDecipheriv(suite, keys.key, keys.iv) + // crude way to check if we should resume + } else if (self.listenerCount('data') > 0) { + self.resume(); + } } - -function createCipheriv (suite, key, iv) { - suite = suite.toLowerCase() - if (aesModes[suite]) return aes.createCipheriv(suite, key, iv) - if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite }) - - throw new TypeError('invalid suite type') +function nReadingNextTick(self) { + debug('readable nexttick read 0'); + self.read(0); } -function createDecipheriv (suite, key, iv) { - suite = suite.toLowerCase() - if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv) - if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true }) - - throw new TypeError('invalid suite type') +// pause() and resume() are remnants of the legacy readable stream API +// If the user uses them, then switch into old mode. +Readable.prototype.resume = function () { + var state = this._readableState; + if (!state.flowing) { + debug('resume'); + // we flow only if there is no one listening + // for readable, but we still have to call + // resume() + state.flowing = !state.readableListening; + resume(this, state); + } + state.paused = false; + return this; +}; +function resume(stream, state) { + if (!state.resumeScheduled) { + state.resumeScheduled = true; + ({"env":{"NODE_ENV":"production"}}).nextTick(resume_, stream, state); + } } - -function getCiphers () { - return Object.keys(desModes).concat(aes.getCiphers()) +function resume_(stream, state) { + debug('resume', state.reading); + if (!state.reading) { + stream.read(0); + } + state.resumeScheduled = false; + stream.emit('resume'); + flow(stream); + if (state.flowing && !state.reading) stream.read(0); +} +Readable.prototype.pause = function () { + debug('call pause flowing=%j', this._readableState.flowing); + if (this._readableState.flowing !== false) { + debug('pause'); + this._readableState.flowing = false; + this.emit('pause'); + } + this._readableState.paused = true; + return this; +}; +function flow(stream) { + var state = stream._readableState; + debug('flow', state.flowing); + while (state.flowing && stream.read() !== null); } -exports.createCipher = exports.Cipher = createCipher -exports.createCipheriv = exports.Cipheriv = createCipheriv -exports.createDecipher = exports.Decipher = createDecipher -exports.createDecipheriv = exports.Decipheriv = createDecipheriv -exports.listCiphers = exports.getCiphers = getCiphers - +// wrap an old-style stream as the async data source. +// This is *not* part of the readable stream interface. +// It is an ugly unfortunate mess of history. +Readable.prototype.wrap = function (stream) { + var _this = this; + var state = this._readableState; + var paused = false; + stream.on('end', function () { + debug('wrapped end'); + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) _this.push(chunk); + } + _this.push(null); + }); + stream.on('data', function (chunk) { + debug('wrapped data'); + if (state.decoder) chunk = state.decoder.write(chunk); -/***/ }), + // don't skip over falsy values in objectMode + if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; + var ret = _this.push(chunk); + if (!ret) { + paused = true; + stream.pause(); + } + }); -/***/ "./node_modules/browserify-des/index.js": -/*!**********************************************!*\ - !*** ./node_modules/browserify-des/index.js ***! - \**********************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + // proxy all the other methods. + // important when wrapping filters and duplexes. + for (var i in stream) { + if (this[i] === undefined && typeof stream[i] === 'function') { + this[i] = function methodWrap(method) { + return function methodWrapReturnFunction() { + return stream[method].apply(stream, arguments); + }; + }(i); + } + } -var CipherBase = __webpack_require__(/*! cipher-base */ "./node_modules/cipher-base/index.js") -var des = __webpack_require__(/*! des.js */ "./node_modules/des.js/lib/des.js") -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") -var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) + // proxy certain important events. + for (var n = 0; n < kProxyEvents.length; n++) { + stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); + } -var modes = { - 'des-ede3-cbc': des.CBC.instantiate(des.EDE), - 'des-ede3': des.EDE, - 'des-ede-cbc': des.CBC.instantiate(des.EDE), - 'des-ede': des.EDE, - 'des-cbc': des.CBC.instantiate(des.DES), - 'des-ecb': des.DES + // when we try to consume some more bytes, simply unpause the + // underlying stream. + this._read = function (n) { + debug('wrapped _read', n); + if (paused) { + paused = false; + stream.resume(); + } + }; + return this; +}; +if (typeof Symbol === 'function') { + Readable.prototype[Symbol.asyncIterator] = function () { + if (createReadableStreamAsyncIterator === undefined) { + createReadableStreamAsyncIterator = __webpack_require__(/*! ./internal/streams/async_iterator */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js"); + } + return createReadableStreamAsyncIterator(this); + }; } -modes.des = modes['des-cbc'] -modes.des3 = modes['des-ede3-cbc'] -module.exports = DES -inherits(DES, CipherBase) -function DES (opts) { - CipherBase.call(this) - var modeName = opts.mode.toLowerCase() - var mode = modes[modeName] - var type - if (opts.decrypt) { - type = 'decrypt' - } else { - type = 'encrypt' - } - var key = opts.key - if (!Buffer.isBuffer(key)) { - key = Buffer.from(key) +Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.highWaterMark; } - if (modeName === 'des-ede' || modeName === 'des-ede-cbc') { - key = Buffer.concat([key, key.slice(0, 8)]) +}); +Object.defineProperty(Readable.prototype, 'readableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState && this._readableState.buffer; } - var iv = opts.iv - if (!Buffer.isBuffer(iv)) { - iv = Buffer.from(iv) +}); +Object.defineProperty(Readable.prototype, 'readableFlowing', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.flowing; + }, + set: function set(state) { + if (this._readableState) { + this._readableState.flowing = state; + } } - this._des = mode.create({ - key: key, - iv: iv, - type: type - }) -} -DES.prototype._update = function (data) { - return Buffer.from(this._des.update(data)) -} -DES.prototype._final = function () { - return Buffer.from(this._des.final()) -} - - -/***/ }), +}); -/***/ "./node_modules/browserify-des/modes.js": -/*!**********************************************!*\ - !*** ./node_modules/browserify-des/modes.js ***! - \**********************************************/ -/***/ (function(__unused_webpack_module, exports) { +// exposed for testing purposes only. +Readable._fromList = fromList; +Object.defineProperty(Readable.prototype, 'readableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.length; + } +}); -exports["des-ecb"] = { - key: 8, - iv: 0 -} -exports["des-cbc"] = exports.des = { - key: 8, - iv: 8 +// Pluck off n bytes from an array of buffers. +// Length is the combined lengths of all the buffers in the list. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function fromList(n, state) { + // nothing buffered + if (state.length === 0) return null; + var ret; + if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { + // read it all, truncate the list + if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length); + state.buffer.clear(); + } else { + // read part of list + ret = state.buffer.consume(n, state.decoder); + } + return ret; } -exports["des-ede3-cbc"] = exports.des3 = { - key: 24, - iv: 8 +function endReadable(stream) { + var state = stream._readableState; + debug('endReadable', state.endEmitted); + if (!state.endEmitted) { + state.ended = true; + ({"env":{"NODE_ENV":"production"}}).nextTick(endReadableNT, state, stream); + } } -exports["des-ede3"] = { - key: 24, - iv: 0 +function endReadableNT(state, stream) { + debug('endReadableNT', state.endEmitted, state.length); + + // Check that we didn't get one last unshift. + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream.readable = false; + stream.emit('end'); + if (state.autoDestroy) { + // In case of duplex streams we need a way to detect + // if the writable side is ready for autoDestroy as well + var wState = stream._writableState; + if (!wState || wState.autoDestroy && wState.finished) { + stream.destroy(); + } + } + } } -exports["des-ede-cbc"] = { - key: 16, - iv: 8 +if (typeof Symbol === 'function') { + Readable.from = function (iterable, opts) { + if (from === undefined) { + from = __webpack_require__(/*! ./internal/streams/from */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js"); + } + return from(Readable, iterable, opts); + }; } -exports["des-ede"] = { - key: 16, - iv: 0 +function indexOf(xs, x) { + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) return i; + } + return -1; } - /***/ }), -/***/ "./node_modules/browserify-rsa/index.js": -/*!**********************************************!*\ - !*** ./node_modules/browserify-rsa/index.js ***! - \**********************************************/ +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js": +/*!********************************************************************************************!*\ + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js ***! + \********************************************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { -/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; -var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js") -var randomBytes = __webpack_require__(/*! randombytes */ "./node_modules/randombytes/browser.js") +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. -function blind (priv) { - var r = getr(priv) - var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed() - return { blinder: blinder, unblinder: r.invm(priv.modulus) } -} +// a transform stream is a readable/writable stream where you do +// something with the data. Sometimes it's called a "filter", +// but that's not a great name for it, since that implies a thing where +// some bits pass through, and others are simply ignored. (That would +// be a valid example of a transform, of course.) +// +// While the output is causally related to the input, it's not a +// necessarily symmetric or synchronous transformation. For example, +// a zlib stream might take multiple plain-text writes(), and then +// emit a single compressed chunk some time in the future. +// +// Here's how this works: +// +// The Transform stream has all the aspects of the readable and writable +// stream classes. When you write(chunk), that calls _write(chunk,cb) +// internally, and returns false if there's a lot of pending writes +// buffered up. When you call read(), that calls _read(n) until +// there's enough pending readable data buffered up. +// +// In a transform stream, the written data is placed in a buffer. When +// _read(n) is called, it transforms the queued up data, calling the +// buffered _write cb's as it consumes chunks. If consuming a single +// written chunk would result in multiple output chunks, then the first +// outputted bit calls the readcb, and subsequent chunks just go into +// the read buffer, and will cause it to emit 'readable' if necessary. +// +// This way, back-pressure is actually determined by the reading side, +// since _read has to be called to start processing a new chunk. However, +// a pathological inflate type of transform can cause excessive buffering +// here. For example, imagine a stream where every byte of input is +// interpreted as an integer from 0-255, and then results in that many +// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in +// 1kb of data being output. In this case, you could write a very small +// amount of input, and end up with a very large amount of output. In +// such a pathological inflating mechanism, there'd be no way to tell +// the system to stop doing the transform. A single 4MB write could +// cause the system to run out of memory. +// +// However, even in such a pathological case, only a single written chunk +// would be consumed, and then the rest would wait (un-transformed) until +// the results of the previous transformed chunk were consumed. -function getr (priv) { - var len = priv.modulus.byteLength() - var r - do { - r = new BN(randomBytes(len)) - } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2)) - return r -} -function crt (msg, priv) { - var blinds = blind(priv) - var len = priv.modulus.byteLength() - var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus) - var c1 = blinded.toRed(BN.mont(priv.prime1)) - var c2 = blinded.toRed(BN.mont(priv.prime2)) - var qinv = priv.coefficient - var p = priv.prime1 - var q = priv.prime2 - var m1 = c1.redPow(priv.exponent1).fromRed() - var m2 = c2.redPow(priv.exponent2).fromRed() - var h = m1.isub(m2).imul(qinv).umod(p).imul(q) - return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len) + +module.exports = Transform; +var _require$codes = (__webpack_require__(/*! ../errors */ "./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js").codes), + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, + ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0; +var Duplex = __webpack_require__(/*! ./_stream_duplex */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js"); +__webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js")(Transform, Duplex); +function afterTransform(er, data) { + var ts = this._transformState; + ts.transforming = false; + var cb = ts.writecb; + if (cb === null) { + return this.emit('error', new ERR_MULTIPLE_CALLBACK()); + } + ts.writechunk = null; + ts.writecb = null; + if (data != null) + // single equals check for both `null` and `undefined` + this.push(data); + cb(er); + var rs = this._readableState; + rs.reading = false; + if (rs.needReadable || rs.length < rs.highWaterMark) { + this._read(rs.highWaterMark); + } } -crt.getr = getr +function Transform(options) { + if (!(this instanceof Transform)) return new Transform(options); + Duplex.call(this, options); + this._transformState = { + afterTransform: afterTransform.bind(this), + needTransform: false, + transforming: false, + writecb: null, + writechunk: null, + writeencoding: null + }; -module.exports = crt + // start out asking for a readable event once data is transformed. + this._readableState.needReadable = true; + // we have implemented the _read method, and done the other things + // that Readable wants before the first _read call, so unset the + // sync guard flag. + this._readableState.sync = false; + if (options) { + if (typeof options.transform === 'function') this._transform = options.transform; + if (typeof options.flush === 'function') this._flush = options.flush; + } -/***/ }), + // When the writable side finishes, then flush out anything remaining. + this.on('prefinish', prefinish); +} +function prefinish() { + var _this = this; + if (typeof this._flush === 'function' && !this._readableState.destroyed) { + this._flush(function (er, data) { + done(_this, er, data); + }); + } else { + done(this, null, null); + } +} +Transform.prototype.push = function (chunk, encoding) { + this._transformState.needTransform = false; + return Duplex.prototype.push.call(this, chunk, encoding); +}; -/***/ "./node_modules/browserify-sign/algos.js": -/*!***********************************************!*\ - !*** ./node_modules/browserify-sign/algos.js ***! - \***********************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +// This is the part where you do stuff! +// override this function in implementation classes. +// 'chunk' is an input chunk. +// +// Call `push(newChunk)` to pass along transformed output +// to the readable side. You may call 'push' zero or more times. +// +// Call `cb(err)` when you are done with this chunk. If you pass +// an error, then that'll put the hurt on the whole operation. If you +// never call cb(), then you'll never get another chunk. +Transform.prototype._transform = function (chunk, encoding, cb) { + cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()')); +}; +Transform.prototype._write = function (chunk, encoding, cb) { + var ts = this._transformState; + ts.writecb = cb; + ts.writechunk = chunk; + ts.writeencoding = encoding; + if (!ts.transforming) { + var rs = this._readableState; + if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); + } +}; -module.exports = __webpack_require__(/*! ./browser/algorithms.json */ "./node_modules/browserify-sign/browser/algorithms.json") +// Doesn't matter what the args are here. +// _transform does all the work. +// That we got here means that the readable side wants more data. +Transform.prototype._read = function (n) { + var ts = this._transformState; + if (ts.writechunk !== null && !ts.transforming) { + ts.transforming = true; + this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); + } else { + // mark that we need a transform, so that any data that comes in + // will get processed, now that we've asked for it. + ts.needTransform = true; + } +}; +Transform.prototype._destroy = function (err, cb) { + Duplex.prototype._destroy.call(this, err, function (err2) { + cb(err2); + }); +}; +function done(stream, er, data) { + if (er) return stream.emit('error', er); + if (data != null) + // single equals check for both `null` and `undefined` + stream.push(data); + // TODO(BridgeAR): Write a test for these two error cases + // if there's nothing in the write buffer, then that means + // that nothing more will ever be provided + if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0(); + if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING(); + return stream.push(null); +} /***/ }), -/***/ "./node_modules/browserify-sign/browser/index.js": -/*!*******************************************************!*\ - !*** ./node_modules/browserify-sign/browser/index.js ***! - \*******************************************************/ +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js": +/*!*******************************************************************************************!*\ + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js ***! + \*******************************************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { -var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) -var createHash = __webpack_require__(/*! create-hash */ "./node_modules/create-hash/browser.js") -var stream = __webpack_require__(/*! readable-stream */ "./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js") -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") -var sign = __webpack_require__(/*! ./sign */ "./node_modules/browserify-sign/browser/sign.js") -var verify = __webpack_require__(/*! ./verify */ "./node_modules/browserify-sign/browser/verify.js") +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. -var algorithms = __webpack_require__(/*! ./algorithms.json */ "./node_modules/browserify-sign/browser/algorithms.json") -Object.keys(algorithms).forEach(function (key) { - algorithms[key].id = Buffer.from(algorithms[key].id, 'hex') - algorithms[key.toLowerCase()] = algorithms[key] -}) +// A bit simpler than readable streams. +// Implement an async ._write(chunk, encoding, cb), and it'll handle all +// the drain event emission and buffering. -function Sign (algorithm) { - stream.Writable.call(this) - var data = algorithms[algorithm] - if (!data) throw new Error('Unknown message digest') - this._hashType = data.hash - this._hash = createHash(data.hash) - this._tag = data.id - this._signType = data.sign -} -inherits(Sign, stream.Writable) +module.exports = Writable; -Sign.prototype._write = function _write (data, _, done) { - this._hash.update(data) - done() +/* */ +function WriteReq(chunk, encoding, cb) { + this.chunk = chunk; + this.encoding = encoding; + this.callback = cb; + this.next = null; } -Sign.prototype.update = function update (data, enc) { - if (typeof data === 'string') data = Buffer.from(data, enc) - - this._hash.update(data) - return this +// It seems a linked list but it is not +// there will be only 2 of these for each stream +function CorkedRequest(state) { + var _this = this; + this.next = null; + this.entry = null; + this.finish = function () { + onCorkedFinish(_this, state); + }; } +/* */ -Sign.prototype.sign = function signMethod (key, enc) { - this.end() - var hash = this._hash.digest() - var sig = sign(hash, key, this._hashType, this._signType, this._tag) +/**/ +var Duplex; +/**/ - return enc ? sig.toString(enc) : sig -} +Writable.WritableState = WritableState; -function Verify (algorithm) { - stream.Writable.call(this) +/**/ +var internalUtil = { + deprecate: __webpack_require__(/*! util-deprecate */ "./node_modules/util-deprecate/browser.js") +}; +/**/ - var data = algorithms[algorithm] - if (!data) throw new Error('Unknown message digest') +/**/ +var Stream = __webpack_require__(/*! ./internal/streams/stream */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js"); +/**/ - this._hash = createHash(data.hash) - this._tag = data.id - this._signType = data.sign +var Buffer = (__webpack_require__(/*! buffer */ "./node_modules/buffer/index.js").Buffer); +var OurUint8Array = (typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); } -inherits(Verify, stream.Writable) - -Verify.prototype._write = function _write (data, _, done) { - this._hash.update(data) - done() +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; } +var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js"); +var _require = __webpack_require__(/*! ./internal/streams/state */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js"), + getHighWaterMark = _require.getHighWaterMark; +var _require$codes = (__webpack_require__(/*! ../errors */ "./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js").codes), + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, + ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, + ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, + ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; +var errorOrDestroy = destroyImpl.errorOrDestroy; +__webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js")(Writable, Stream); +function nop() {} +function WritableState(options, stream, isDuplex) { + Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js"); + options = options || {}; -Verify.prototype.update = function update (data, enc) { - if (typeof data === 'string') data = Buffer.from(data, enc) + // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream, + // e.g. options.readableObjectMode vs. options.writableObjectMode, etc. + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; - this._hash.update(data) - return this -} + // object stream flag to indicate whether or not this stream + // contains buffers or objects. + this.objectMode = !!options.objectMode; + if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; -Verify.prototype.verify = function verifyMethod (key, sig, enc) { - if (typeof sig === 'string') sig = Buffer.from(sig, enc) + // the point at which write() starts returning false + // Note: 0 is a valid value, means that we always return false if + // the entire buffer is not flushed immediately on write() + this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); - this.end() - var hash = this._hash.digest() - return verify(sig, hash, key, this._signType, this._tag) -} + // if _final has been called + this.finalCalled = false; -function createSign (algorithm) { - return new Sign(algorithm) -} + // drain event flag. + this.needDrain = false; + // at the start of calling end() + this.ending = false; + // when end() has been called, and returned + this.ended = false; + // when 'finish' is emitted + this.finished = false; -function createVerify (algorithm) { - return new Verify(algorithm) -} + // has it been destroyed + this.destroyed = false; -module.exports = { - Sign: createSign, - Verify: createVerify, - createSign: createSign, - createVerify: createVerify -} + // should we decode strings into buffers before passing to _write? + // this is here so that some node-core streams can optimize string + // handling at a lower level. + var noDecode = options.decodeStrings === false; + this.decodeStrings = !noDecode; + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; -/***/ }), + // not an actual buffer we keep track of, but a measurement + // of how much we're waiting to get pushed to some underlying + // socket or file. + this.length = 0; -/***/ "./node_modules/browserify-sign/browser/sign.js": -/*!******************************************************!*\ - !*** ./node_modules/browserify-sign/browser/sign.js ***! - \******************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + // a flag to see when we're in the middle of a write. + this.writing = false; -// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js -var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) -var createHmac = __webpack_require__(/*! create-hmac */ "./node_modules/create-hmac/browser.js") -var crt = __webpack_require__(/*! browserify-rsa */ "./node_modules/browserify-rsa/index.js") -var EC = (__webpack_require__(/*! elliptic */ "./node_modules/elliptic/lib/elliptic.js").ec) -var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js") -var parseKeys = __webpack_require__(/*! parse-asn1 */ "./node_modules/parse-asn1/index.js") -var curves = __webpack_require__(/*! ./curves.json */ "./node_modules/browserify-sign/browser/curves.json") + // when true all writes will be buffered until .uncork() call + this.corked = 0; -function sign (hash, key, hashType, signType, tag) { - var priv = parseKeys(key) - if (priv.curve) { - // rsa keys can be interpreted as ecdsa ones in openssl - if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type') - return ecSign(hash, priv) - } else if (priv.type === 'dsa') { - if (signType !== 'dsa') throw new Error('wrong private key type') - return dsaSign(hash, priv, hashType) - } else { - if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type') - } - hash = Buffer.concat([tag, hash]) - var len = priv.modulus.byteLength() - var pad = [0, 1] - while (hash.length + pad.length + 1 < len) pad.push(0xff) - pad.push(0x00) - var i = -1 - while (++i < hash.length) pad.push(hash[i]) + // a flag to be able to tell if the onwrite cb is called immediately, + // or on a later tick. We set this to true at first, because any + // actions that shouldn't happen until "later" should generally also + // not happen before the first write call. + this.sync = true; - var out = crt(pad, priv) - return out -} + // a flag to know if we're processing previously buffered items, which + // may call the _write() callback in the same tick, so that we don't + // end up in an overlapped onwrite situation. + this.bufferProcessing = false; -function ecSign (hash, priv) { - var curveId = curves[priv.curve.join('.')] - if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.')) + // the callback that's passed to _write(chunk,cb) + this.onwrite = function (er) { + onwrite(stream, er); + }; - var curve = new EC(curveId) - var key = curve.keyFromPrivate(priv.privateKey) - var out = key.sign(hash) + // the callback that the user supplies to write(chunk,encoding,cb) + this.writecb = null; - return Buffer.from(out.toDER()) -} + // the amount that is being written when _write is called. + this.writelen = 0; + this.bufferedRequest = null; + this.lastBufferedRequest = null; -function dsaSign (hash, priv, algo) { - var x = priv.params.priv_key - var p = priv.params.p - var q = priv.params.q - var g = priv.params.g - var r = new BN(0) - var k - var H = bits2int(hash, q).mod(q) - var s = false - var kv = getKey(x, q, hash, algo) - while (s === false) { - k = makeKey(q, kv, algo) - r = makeR(g, k, p, q) - s = k.invm(q).imul(H.add(x.mul(r))).mod(q) - if (s.cmpn(0) === 0) { - s = false - r = new BN(0) - } - } - return toDER(r, s) -} + // number of pending user-supplied write callbacks + // this must be 0 before 'finish' can be emitted + this.pendingcb = 0; -function toDER (r, s) { - r = r.toArray() - s = s.toArray() + // emit prefinish if the only thing we're waiting for is _write cbs + // This is relevant for synchronous Transform streams + this.prefinished = false; - // Pad values - if (r[0] & 0x80) r = [0].concat(r) - if (s[0] & 0x80) s = [0].concat(s) + // True if the error was already emitted and should not be thrown again + this.errorEmitted = false; - var total = r.length + s.length + 4 - var res = [0x30, total, 0x02, r.length] - res = res.concat(r, [0x02, s.length], s) - return Buffer.from(res) -} + // Should close be emitted on destroy. Defaults to true. + this.emitClose = options.emitClose !== false; -function getKey (x, q, hash, algo) { - x = Buffer.from(x.toArray()) - if (x.length < q.byteLength()) { - var zeros = Buffer.alloc(q.byteLength() - x.length) - x = Buffer.concat([zeros, x]) - } - var hlen = hash.length - var hbits = bits2octets(hash, q) - var v = Buffer.alloc(hlen) - v.fill(1) - var k = Buffer.alloc(hlen) - k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest() - v = createHmac(algo, k).update(v).digest() - k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest() - v = createHmac(algo, k).update(v).digest() - return { k: k, v: v } -} + // Should .destroy() be called after 'finish' (and potentially 'end') + this.autoDestroy = !!options.autoDestroy; -function bits2int (obits, q) { - var bits = new BN(obits) - var shift = (obits.length << 3) - q.bitLength() - if (shift > 0) bits.ishrn(shift) - return bits -} + // count buffered requests + this.bufferedRequestCount = 0; -function bits2octets (bits, q) { - bits = bits2int(bits, q) - bits = bits.mod(q) - var out = Buffer.from(bits.toArray()) - if (out.length < q.byteLength()) { - var zeros = Buffer.alloc(q.byteLength() - out.length) - out = Buffer.concat([zeros, out]) - } - return out + // allocate the first CorkedRequest, there is always + // one allocated and free to use, and we maintain at most two + this.corkedRequestsFree = new CorkedRequest(this); } +WritableState.prototype.getBuffer = function getBuffer() { + var current = this.bufferedRequest; + var out = []; + while (current) { + out.push(current); + current = current.next; + } + return out; +}; +(function () { + try { + Object.defineProperty(WritableState.prototype, 'buffer', { + get: internalUtil.deprecate(function writableStateBufferGetter() { + return this.getBuffer(); + }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') + }); + } catch (_) {} +})(); -function makeKey (q, kv, algo) { - var t - var k - - do { - t = Buffer.alloc(0) - - while (t.length * 8 < q.bitLength()) { - kv.v = createHmac(algo, kv.k).update(kv.v).digest() - t = Buffer.concat([t, kv.v]) +// Test _writableState for inheritance to account for Duplex streams, +// whose prototype chain only points to Readable. +var realHasInstance; +if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { + realHasInstance = Function.prototype[Symbol.hasInstance]; + Object.defineProperty(Writable, Symbol.hasInstance, { + value: function value(object) { + if (realHasInstance.call(this, object)) return true; + if (this !== Writable) return false; + return object && object._writableState instanceof WritableState; } - - k = bits2int(t, q) - kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest() - kv.v = createHmac(algo, kv.k).update(kv.v).digest() - } while (k.cmp(q) !== -1) - - return k -} - -function makeR (g, k, p, q) { - return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q) + }); +} else { + realHasInstance = function realHasInstance(object) { + return object instanceof this; + }; } +function Writable(options) { + Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js"); -module.exports = sign -module.exports.getKey = getKey -module.exports.makeKey = makeKey - - -/***/ }), + // Writable ctor is applied to Duplexes, too. + // `realHasInstance` is necessary because using plain `instanceof` + // would return false, as no `_writableState` property is attached. -/***/ "./node_modules/browserify-sign/browser/verify.js": -/*!********************************************************!*\ - !*** ./node_modules/browserify-sign/browser/verify.js ***! - \********************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + // Trying to use the custom `instanceof` for Writable here will also break the + // Node.js LazyTransform implementation, which has a non-trivial getter for + // `_writableState` that would lead to infinite recursion. -// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js -var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) -var BN = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js") -var EC = (__webpack_require__(/*! elliptic */ "./node_modules/elliptic/lib/elliptic.js").ec) -var parseKeys = __webpack_require__(/*! parse-asn1 */ "./node_modules/parse-asn1/index.js") -var curves = __webpack_require__(/*! ./curves.json */ "./node_modules/browserify-sign/browser/curves.json") + // Checking for a Stream.Duplex instance is faster here instead of inside + // the WritableState constructor, at least with V8 6.5 + var isDuplex = this instanceof Duplex; + if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); + this._writableState = new WritableState(options, this, isDuplex); -function verify (sig, hash, key, signType, tag) { - var pub = parseKeys(key) - if (pub.type === 'ec') { - // rsa keys can be interpreted as ecdsa ones in openssl - if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type') - return ecVerify(sig, hash, pub) - } else if (pub.type === 'dsa') { - if (signType !== 'dsa') throw new Error('wrong public key type') - return dsaVerify(sig, hash, pub) - } else { - if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type') - } - hash = Buffer.concat([tag, hash]) - var len = pub.modulus.byteLength() - var pad = [1] - var padNum = 0 - while (hash.length + pad.length + 2 < len) { - pad.push(0xff) - padNum++ - } - pad.push(0x00) - var i = -1 - while (++i < hash.length) { - pad.push(hash[i]) + // legacy. + this.writable = true; + if (options) { + if (typeof options.write === 'function') this._write = options.write; + if (typeof options.writev === 'function') this._writev = options.writev; + if (typeof options.destroy === 'function') this._destroy = options.destroy; + if (typeof options.final === 'function') this._final = options.final; } - pad = Buffer.from(pad) - var red = BN.mont(pub.modulus) - sig = new BN(sig).toRed(red) - - sig = sig.redPow(new BN(pub.publicExponent)) - sig = Buffer.from(sig.fromRed().toArray()) - var out = padNum < 8 ? 1 : 0 - len = Math.min(sig.length, pad.length) - if (sig.length !== pad.length) out = 1 - - i = -1 - while (++i < len) out |= sig[i] ^ pad[i] - return out === 0 + Stream.call(this); } -function ecVerify (sig, hash, pub) { - var curveId = curves[pub.data.algorithm.curve.join('.')] - if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.')) - - var curve = new EC(curveId) - var pubkey = pub.data.subjectPrivateKey.data - - return curve.verify(hash, sig, pubkey) +// Otherwise people can pipe Writable streams, which is just wrong. +Writable.prototype.pipe = function () { + errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); +}; +function writeAfterEnd(stream, cb) { + var er = new ERR_STREAM_WRITE_AFTER_END(); + // TODO: defer error events consistently everywhere, not just the cb + errorOrDestroy(stream, er); + ({"env":{"NODE_ENV":"production"}}).nextTick(cb, er); } -function dsaVerify (sig, hash, pub) { - var p = pub.data.p - var q = pub.data.q - var g = pub.data.g - var y = pub.data.pub_key - var unpacked = parseKeys.signature.decode(sig, 'der') - var s = unpacked.s - var r = unpacked.r - checkValue(s, q) - checkValue(r, q) - var montp = BN.mont(p) - var w = s.invm(q) - var v = g.toRed(montp) - .redPow(new BN(hash).mul(w).mod(q)) - .fromRed() - .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed()) - .mod(p) - .mod(q) - return v.cmp(r) === 0 +// Checks that a user-supplied chunk is valid, especially for the particular +// mode the stream is in. Currently this means that `null` is never accepted +// and undefined/non-string values are only allowed in object mode. +function validChunk(stream, state, chunk, cb) { + var er; + if (chunk === null) { + er = new ERR_STREAM_NULL_VALUES(); + } else if (typeof chunk !== 'string' && !state.objectMode) { + er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk); + } + if (er) { + errorOrDestroy(stream, er); + ({"env":{"NODE_ENV":"production"}}).nextTick(cb, er); + return false; + } + return true; } - -function checkValue (b, q) { - if (b.cmpn(0) <= 0) throw new Error('invalid sig') - if (b.cmp(q) >= q) throw new Error('invalid sig') +Writable.prototype.write = function (chunk, encoding, cb) { + var state = this._writableState; + var ret = false; + var isBuf = !state.objectMode && _isUint8Array(chunk); + if (isBuf && !Buffer.isBuffer(chunk)) { + chunk = _uint8ArrayToBuffer(chunk); + } + if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; + if (typeof cb !== 'function') cb = nop; + if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { + state.pendingcb++; + ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); + } + return ret; +}; +Writable.prototype.cork = function () { + this._writableState.corked++; +}; +Writable.prototype.uncork = function () { + var state = this._writableState; + if (state.corked) { + state.corked--; + if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); + } +}; +Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { + // node::ParseEncoding() requires lower case. + if (typeof encoding === 'string') encoding = encoding.toLowerCase(); + if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding); + this._writableState.defaultEncoding = encoding; + return this; +}; +Object.defineProperty(Writable.prototype, 'writableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState && this._writableState.getBuffer(); + } +}); +function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { + chunk = Buffer.from(chunk, encoding); + } + return chunk; } - -module.exports = verify - - -/***/ }), - -/***/ "./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js": -/*!*************************************************************************************!*\ - !*** ./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js ***! - \*************************************************************************************/ -/***/ (function(module) { - -"use strict"; - - -function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } - -var codes = {}; - -function createErrorType(code, message, Base) { - if (!Base) { - Base = Error; +Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.highWaterMark; } +}); - function getMessage(arg1, arg2, arg3) { - if (typeof message === 'string') { - return message; - } else { - return message(arg1, arg2, arg3); +// if we're already writing something, then just put this +// in the queue, and wait our turn. Otherwise, call _write +// If we return false, then we need a drain event, so set that flag. +function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { + if (!isBuf) { + var newChunk = decodeChunk(state, chunk, encoding); + if (chunk !== newChunk) { + isBuf = true; + encoding = 'buffer'; + chunk = newChunk; } } - - var NodeError = - /*#__PURE__*/ - function (_Base) { - _inheritsLoose(NodeError, _Base); - - function NodeError(arg1, arg2, arg3) { - return _Base.call(this, getMessage(arg1, arg2, arg3)) || this; - } - - return NodeError; - }(Base); - - NodeError.prototype.name = Base.name; - NodeError.prototype.code = code; - codes[code] = NodeError; -} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js - - -function oneOf(expected, thing) { - if (Array.isArray(expected)) { - var len = expected.length; - expected = expected.map(function (i) { - return String(i); - }); - - if (len > 2) { - return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(', '), ", or ") + expected[len - 1]; - } else if (len === 2) { - return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]); + var len = state.objectMode ? 1 : chunk.length; + state.length += len; + var ret = state.length < state.highWaterMark; + // we must ensure that previous needDrain will not be reset to false. + if (!ret) state.needDrain = true; + if (state.writing || state.corked) { + var last = state.lastBufferedRequest; + state.lastBufferedRequest = { + chunk: chunk, + encoding: encoding, + isBuf: isBuf, + callback: cb, + next: null + }; + if (last) { + last.next = state.lastBufferedRequest; } else { - return "of ".concat(thing, " ").concat(expected[0]); + state.bufferedRequest = state.lastBufferedRequest; } + state.bufferedRequestCount += 1; } else { - return "of ".concat(thing, " ").concat(String(expected)); + doWrite(stream, state, false, len, chunk, encoding, cb); } -} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith - - -function startsWith(str, search, pos) { - return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search; -} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith - - -function endsWith(str, search, this_len) { - if (this_len === undefined || this_len > str.length) { - this_len = str.length; + return ret; +} +function doWrite(stream, state, writev, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); + state.sync = false; +} +function onwriteError(stream, state, sync, er, cb) { + --state.pendingcb; + if (sync) { + // defer the callback if we are being called synchronously + // to avoid piling up things on the stack + ({"env":{"NODE_ENV":"production"}}).nextTick(cb, er); + // this can emit finish, and it will always happen + // after error + ({"env":{"NODE_ENV":"production"}}).nextTick(finishMaybe, stream, state); + stream._writableState.errorEmitted = true; + errorOrDestroy(stream, er); + } else { + // the caller expect this to happen before if + // it is async + cb(er); + stream._writableState.errorEmitted = true; + errorOrDestroy(stream, er); + // this can emit finish, but finish must + // always follow error + finishMaybe(stream, state); } - - return str.substring(this_len - search.length, this_len) === search; -} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes - - -function includes(str, search, start) { - if (typeof start !== 'number') { - start = 0; +} +function onwriteStateUpdate(state) { + state.writing = false; + state.writecb = null; + state.length -= state.writelen; + state.writelen = 0; +} +function onwrite(stream, er) { + var state = stream._writableState; + var sync = state.sync; + var cb = state.writecb; + if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK(); + onwriteStateUpdate(state); + if (er) onwriteError(stream, state, sync, er, cb);else { + // Check if we're actually ready to finish, but don't emit yet + var finished = needFinish(state) || stream.destroyed; + if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { + clearBuffer(stream, state); + } + if (sync) { + ({"env":{"NODE_ENV":"production"}}).nextTick(afterWrite, stream, state, finished, cb); + } else { + afterWrite(stream, state, finished, cb); + } } +} +function afterWrite(stream, state, finished, cb) { + if (!finished) onwriteDrain(stream, state); + state.pendingcb--; + cb(); + finishMaybe(stream, state); +} - if (start + search.length > str.length) { - return false; - } else { - return str.indexOf(search, start) !== -1; +// Must force callback to be called on nextTick, so that we don't +// emit 'drain' before the write() consumer gets the 'false' return +// value, and has a chance to attach a 'drain' listener. +function onwriteDrain(stream, state) { + if (state.length === 0 && state.needDrain) { + state.needDrain = false; + stream.emit('drain'); } } -createErrorType('ERR_INVALID_OPT_VALUE', function (name, value) { - return 'The value "' + value + '" is invalid for option "' + name + '"'; -}, TypeError); -createErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) { - // determiner: 'must be' or 'must not be' - var determiner; +// if there's something in the buffer waiting, then process it +function clearBuffer(stream, state) { + state.bufferProcessing = true; + var entry = state.bufferedRequest; + if (stream._writev && entry && entry.next) { + // Fast case, write everything using _writev() + var l = state.bufferedRequestCount; + var buffer = new Array(l); + var holder = state.corkedRequestsFree; + holder.entry = entry; + var count = 0; + var allBuffers = true; + while (entry) { + buffer[count] = entry; + if (!entry.isBuf) allBuffers = false; + entry = entry.next; + count += 1; + } + buffer.allBuffers = allBuffers; + doWrite(stream, state, true, state.length, buffer, '', holder.finish); - if (typeof expected === 'string' && startsWith(expected, 'not ')) { - determiner = 'must not be'; - expected = expected.replace(/^not /, ''); + // doWrite is almost always async, defer these to save a bit of time + // as the hot path ends with doWrite + state.pendingcb++; + state.lastBufferedRequest = null; + if (holder.next) { + state.corkedRequestsFree = holder.next; + holder.next = null; + } else { + state.corkedRequestsFree = new CorkedRequest(state); + } + state.bufferedRequestCount = 0; } else { - determiner = 'must be'; + // Slow case, write chunks one-by-one + while (entry) { + var chunk = entry.chunk; + var encoding = entry.encoding; + var cb = entry.callback; + var len = state.objectMode ? 1 : chunk.length; + doWrite(stream, state, false, len, chunk, encoding, cb); + entry = entry.next; + state.bufferedRequestCount--; + // if we didn't call the onwrite immediately, then + // it means that we need to wait until it does. + // also, that means that the chunk and cb are currently + // being processed, so move the buffer counter past them. + if (state.writing) { + break; + } + } + if (entry === null) state.lastBufferedRequest = null; } - - var msg; - - if (endsWith(name, ' argument')) { - // For cases like 'first argument' - msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, 'type')); - } else { - var type = includes(name, '.') ? 'property' : 'argument'; - msg = "The \"".concat(name, "\" ").concat(type, " ").concat(determiner, " ").concat(oneOf(expected, 'type')); + state.bufferedRequest = entry; + state.bufferProcessing = false; +} +Writable.prototype._write = function (chunk, encoding, cb) { + cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()')); +}; +Writable.prototype._writev = null; +Writable.prototype.end = function (chunk, encoding, cb) { + var state = this._writableState; + if (typeof chunk === 'function') { + cb = chunk; + chunk = null; + encoding = null; + } else if (typeof encoding === 'function') { + cb = encoding; + encoding = null; } + if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - msg += ". Received type ".concat(typeof actual); - return msg; -}, TypeError); -createErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF'); -createErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) { - return 'The ' + name + ' method is not implemented'; -}); -createErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close'); -createErrorType('ERR_STREAM_DESTROYED', function (name) { - return 'Cannot call ' + name + ' after a stream was destroyed'; -}); -createErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times'); -createErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable'); -createErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end'); -createErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError); -createErrorType('ERR_UNKNOWN_ENCODING', function (arg) { - return 'Unknown encoding: ' + arg; -}, TypeError); -createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event'); -module.exports.codes = codes; - - -/***/ }), - -/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js": -/*!*****************************************************************************************!*\ - !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js ***! - \*****************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// a duplex stream is just a stream that is both readable and writable. -// Since JS doesn't have multiple prototypal inheritance, this class -// prototypally inherits from Readable, and then parasitically from -// Writable. - - + // .end() fully uncorks + if (state.corked) { + state.corked = 1; + this.uncork(); + } -/**/ -var objectKeys = Object.keys || function (obj) { - var keys = []; - for (var key in obj) keys.push(key); - return keys; + // ignore unnecessary end() calls. + if (!state.ending) endWritable(this, state, cb); + return this; }; -/**/ - -module.exports = Duplex; -var Readable = __webpack_require__(/*! ./_stream_readable */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js"); -var Writable = __webpack_require__(/*! ./_stream_writable */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js"); -__webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js")(Duplex, Readable); -{ - // Allow the keys array to be GC'ed. - var keys = objectKeys(Writable.prototype); - for (var v = 0; v < keys.length; v++) { - var method = keys[v]; - if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; +Object.defineProperty(Writable.prototype, 'writableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.length; } +}); +function needFinish(state) { + return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; } -function Duplex(options) { - if (!(this instanceof Duplex)) return new Duplex(options); - Readable.call(this, options); - Writable.call(this, options); - this.allowHalfOpen = true; - if (options) { - if (options.readable === false) this.readable = false; - if (options.writable === false) this.writable = false; - if (options.allowHalfOpen === false) { - this.allowHalfOpen = false; - this.once('end', onend); +function callFinal(stream, state) { + stream._final(function (err) { + state.pendingcb--; + if (err) { + errorOrDestroy(stream, err); + } + state.prefinished = true; + stream.emit('prefinish'); + finishMaybe(stream, state); + }); +} +function prefinish(stream, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream._final === 'function' && !state.destroyed) { + state.pendingcb++; + state.finalCalled = true; + ({"env":{"NODE_ENV":"production"}}).nextTick(callFinal, stream, state); + } else { + state.prefinished = true; + stream.emit('prefinish'); + } + } +} +function finishMaybe(stream, state) { + var need = needFinish(state); + if (need) { + prefinish(stream, state); + if (state.pendingcb === 0) { + state.finished = true; + stream.emit('finish'); + if (state.autoDestroy) { + // In case of duplex streams we need a way to detect + // if the readable side is ready for autoDestroy as well + var rState = stream._readableState; + if (!rState || rState.autoDestroy && rState.endEmitted) { + stream.destroy(); + } + } } } + return need; } -Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.highWaterMark; - } -}); -Object.defineProperty(Duplex.prototype, 'writableBuffer', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState && this._writableState.getBuffer(); +function endWritable(stream, state, cb) { + state.ending = true; + finishMaybe(stream, state); + if (cb) { + if (state.finished) ({"env":{"NODE_ENV":"production"}}).nextTick(cb);else stream.once('finish', cb); } -}); -Object.defineProperty(Duplex.prototype, 'writableLength', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.length; + state.ended = true; + stream.writable = false; +} +function onCorkedFinish(corkReq, state, err) { + var entry = corkReq.entry; + corkReq.entry = null; + while (entry) { + var cb = entry.callback; + state.pendingcb--; + cb(err); + entry = entry.next; } -}); - -// the no-half-open enforcer -function onend() { - // If the writable side ended, then we're ok. - if (this._writableState.ended) return; - // no more data can be written. - // But allow more writes to happen in this tick. - ({"env":{"NODE_ENV":"production"}}).nextTick(onEndNT, this); -} -function onEndNT(self) { - self.end(); + // reuse the free corkReq. + state.corkedRequestsFree.next = corkReq; } -Object.defineProperty(Duplex.prototype, 'destroyed', { +Object.defineProperty(Writable.prototype, 'destroyed', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in // userland will fail enumerable: false, get: function get() { - if (this._readableState === undefined || this._writableState === undefined) { + if (this._writableState === undefined) { return false; } - return this._readableState.destroyed && this._writableState.destroyed; + return this._writableState.destroyed; }, set: function set(value) { // we ignore the value if the stream // has not been initialized yet - if (this._readableState === undefined || this._writableState === undefined) { + if (!this._writableState) { return; } // backward compatibility, the user is explicitly // managing destroyed - this._readableState.destroyed = value; this._writableState.destroyed = value; } }); +Writable.prototype.destroy = destroyImpl.destroy; +Writable.prototype._undestroy = destroyImpl.undestroy; +Writable.prototype._destroy = function (err, cb) { + cb(err); +}; /***/ }), -/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js ***! - \**********************************************************************************************/ +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js": +/*!**********************************************************************************************************!*\ + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js ***! + \**********************************************************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { "use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// a passthrough stream. -// basically just the most minimal sort of Transform stream. -// Every written chunk gets output as-is. - -module.exports = PassThrough; -var Transform = __webpack_require__(/*! ./_stream_transform */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js"); -__webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js")(PassThrough, Transform); -function PassThrough(options) { - if (!(this instanceof PassThrough)) return new PassThrough(options); - Transform.call(this, options); +var _Object$setPrototypeO; +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +var finished = __webpack_require__(/*! ./end-of-stream */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); +var kLastResolve = Symbol('lastResolve'); +var kLastReject = Symbol('lastReject'); +var kError = Symbol('error'); +var kEnded = Symbol('ended'); +var kLastPromise = Symbol('lastPromise'); +var kHandlePromise = Symbol('handlePromise'); +var kStream = Symbol('stream'); +function createIterResult(value, done) { + return { + value: value, + done: done + }; } -PassThrough.prototype._transform = function (chunk, encoding, cb) { - cb(null, chunk); +function readAndResolve(iter) { + var resolve = iter[kLastResolve]; + if (resolve !== null) { + var data = iter[kStream].read(); + // we defer if data is null + // we can be expecting either 'end' or + // 'error' + if (data !== null) { + iter[kLastPromise] = null; + iter[kLastResolve] = null; + iter[kLastReject] = null; + resolve(createIterResult(data, false)); + } + } +} +function onReadable(iter) { + // we wait for the next tick, because it might + // emit an error with process.nextTick + ({"env":{"NODE_ENV":"production"}}).nextTick(readAndResolve, iter); +} +function wrapForNext(lastPromise, iter) { + return function (resolve, reject) { + lastPromise.then(function () { + if (iter[kEnded]) { + resolve(createIterResult(undefined, true)); + return; + } + iter[kHandlePromise](resolve, reject); + }, reject); + }; +} +var AsyncIteratorPrototype = Object.getPrototypeOf(function () {}); +var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = { + get stream() { + return this[kStream]; + }, + next: function next() { + var _this = this; + // if we have detected an error in the meanwhile + // reject straight away + var error = this[kError]; + if (error !== null) { + return Promise.reject(error); + } + if (this[kEnded]) { + return Promise.resolve(createIterResult(undefined, true)); + } + if (this[kStream].destroyed) { + // We need to defer via nextTick because if .destroy(err) is + // called, the error will be emitted via nextTick, and + // we cannot guarantee that there is no error lingering around + // waiting to be emitted. + return new Promise(function (resolve, reject) { + ({"env":{"NODE_ENV":"production"}}).nextTick(function () { + if (_this[kError]) { + reject(_this[kError]); + } else { + resolve(createIterResult(undefined, true)); + } + }); + }); + } + + // if we have multiple next() calls + // we will wait for the previous Promise to finish + // this logic is optimized to support for await loops, + // where next() is only called once at a time + var lastPromise = this[kLastPromise]; + var promise; + if (lastPromise) { + promise = new Promise(wrapForNext(lastPromise, this)); + } else { + // fast path needed to support multiple this.push() + // without triggering the next() queue + var data = this[kStream].read(); + if (data !== null) { + return Promise.resolve(createIterResult(data, false)); + } + promise = new Promise(this[kHandlePromise]); + } + this[kLastPromise] = promise; + return promise; + } +}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () { + return this; +}), _defineProperty(_Object$setPrototypeO, "return", function _return() { + var _this2 = this; + // destroy(err, cb) is a private API + // we can guarantee we have that here, because we control the + // Readable class this is attached to + return new Promise(function (resolve, reject) { + _this2[kStream].destroy(null, function (err) { + if (err) { + reject(err); + return; + } + resolve(createIterResult(undefined, true)); + }); + }); +}), _Object$setPrototypeO), AsyncIteratorPrototype); +var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) { + var _Object$create; + var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, { + value: stream, + writable: true + }), _defineProperty(_Object$create, kLastResolve, { + value: null, + writable: true + }), _defineProperty(_Object$create, kLastReject, { + value: null, + writable: true + }), _defineProperty(_Object$create, kError, { + value: null, + writable: true + }), _defineProperty(_Object$create, kEnded, { + value: stream._readableState.endEmitted, + writable: true + }), _defineProperty(_Object$create, kHandlePromise, { + value: function value(resolve, reject) { + var data = iterator[kStream].read(); + if (data) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(data, false)); + } else { + iterator[kLastResolve] = resolve; + iterator[kLastReject] = reject; + } + }, + writable: true + }), _Object$create)); + iterator[kLastPromise] = null; + finished(stream, function (err) { + if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') { + var reject = iterator[kLastReject]; + // reject if we are waiting for data in the Promise + // returned by next() and store the error + if (reject !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + reject(err); + } + iterator[kError] = err; + return; + } + var resolve = iterator[kLastResolve]; + if (resolve !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(undefined, true)); + } + iterator[kEnded] = true; + }); + stream.on('readable', onReadable.bind(null, iterator)); + return iterator; }; +module.exports = createReadableStreamAsyncIterator; /***/ }), -/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js ***! - \*******************************************************************************************/ +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js": +/*!*******************************************************************************************************!*\ + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js ***! + \*******************************************************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { "use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -module.exports = Readable; - -/**/ -var Duplex; -/**/ - -Readable.ReadableState = ReadableState; +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +var _require = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js"), + Buffer = _require.Buffer; +var _require2 = __webpack_require__(/*! util */ "?cad2"), + inspect = _require2.inspect; +var custom = inspect && inspect.custom || 'inspect'; +function copyBuffer(src, target, offset) { + Buffer.prototype.copy.call(src, target, offset); +} +module.exports = /*#__PURE__*/function () { + function BufferList() { + _classCallCheck(this, BufferList); + this.head = null; + this.tail = null; + this.length = 0; + } + _createClass(BufferList, [{ + key: "push", + value: function push(v) { + var entry = { + data: v, + next: null + }; + if (this.length > 0) this.tail.next = entry;else this.head = entry; + this.tail = entry; + ++this.length; + } + }, { + key: "unshift", + value: function unshift(v) { + var entry = { + data: v, + next: this.head + }; + if (this.length === 0) this.tail = entry; + this.head = entry; + ++this.length; + } + }, { + key: "shift", + value: function shift() { + if (this.length === 0) return; + var ret = this.head.data; + if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; + --this.length; + return ret; + } + }, { + key: "clear", + value: function clear() { + this.head = this.tail = null; + this.length = 0; + } + }, { + key: "join", + value: function join(s) { + if (this.length === 0) return ''; + var p = this.head; + var ret = '' + p.data; + while (p = p.next) ret += s + p.data; + return ret; + } + }, { + key: "concat", + value: function concat(n) { + if (this.length === 0) return Buffer.alloc(0); + var ret = Buffer.allocUnsafe(n >>> 0); + var p = this.head; + var i = 0; + while (p) { + copyBuffer(p.data, ret, i); + i += p.data.length; + p = p.next; + } + return ret; + } -/**/ -var EE = (__webpack_require__(/*! events */ "./node_modules/events/events.js").EventEmitter); -var EElistenerCount = function EElistenerCount(emitter, type) { - return emitter.listeners(type).length; -}; -/**/ + // Consumes a specified amount of bytes or characters from the buffered data. + }, { + key: "consume", + value: function consume(n, hasStrings) { + var ret; + if (n < this.head.data.length) { + // `slice` is the same for buffers and strings. + ret = this.head.data.slice(0, n); + this.head.data = this.head.data.slice(n); + } else if (n === this.head.data.length) { + // First chunk is a perfect match. + ret = this.shift(); + } else { + // Result spans more than one buffer. + ret = hasStrings ? this._getString(n) : this._getBuffer(n); + } + return ret; + } + }, { + key: "first", + value: function first() { + return this.head.data; + } -/**/ -var Stream = __webpack_require__(/*! ./internal/streams/stream */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js"); -/**/ + // Consumes a specified amount of characters from the buffered data. + }, { + key: "_getString", + value: function _getString(n) { + var p = this.head; + var c = 1; + var ret = p.data; + n -= ret.length; + while (p = p.next) { + var str = p.data; + var nb = n > str.length ? str.length : n; + if (nb === str.length) ret += str;else ret += str.slice(0, n); + n -= nb; + if (n === 0) { + if (nb === str.length) { + ++c; + if (p.next) this.head = p.next;else this.head = this.tail = null; + } else { + this.head = p; + p.data = str.slice(nb); + } + break; + } + ++c; + } + this.length -= c; + return ret; + } -var Buffer = (__webpack_require__(/*! buffer */ "./node_modules/buffer/index.js").Buffer); -var OurUint8Array = (typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; -function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk); -} -function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; -} + // Consumes a specified amount of bytes from the buffered data. + }, { + key: "_getBuffer", + value: function _getBuffer(n) { + var ret = Buffer.allocUnsafe(n); + var p = this.head; + var c = 1; + p.data.copy(ret); + n -= p.data.length; + while (p = p.next) { + var buf = p.data; + var nb = n > buf.length ? buf.length : n; + buf.copy(ret, ret.length - n, 0, nb); + n -= nb; + if (n === 0) { + if (nb === buf.length) { + ++c; + if (p.next) this.head = p.next;else this.head = this.tail = null; + } else { + this.head = p; + p.data = buf.slice(nb); + } + break; + } + ++c; + } + this.length -= c; + return ret; + } -/**/ -var debugUtil = __webpack_require__(/*! util */ "?593c"); -var debug; -if (debugUtil && debugUtil.debuglog) { - debug = debugUtil.debuglog('stream'); -} else { - debug = function debug() {}; -} -/**/ + // Make sure the linked list only shows the minimal necessary information. + }, { + key: custom, + value: function value(_, options) { + return inspect(this, _objectSpread(_objectSpread({}, options), {}, { + // Only inspect one level. + depth: 0, + // It should not recurse. + customInspect: false + })); + } + }]); + return BufferList; +}(); -var BufferList = __webpack_require__(/*! ./internal/streams/buffer_list */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js"); -var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js"); -var _require = __webpack_require__(/*! ./internal/streams/state */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js"), - getHighWaterMark = _require.getHighWaterMark; -var _require$codes = (__webpack_require__(/*! ../errors */ "./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js").codes), - ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; +/***/ }), -// Lazy loaded to improve the startup performance. -var StringDecoder; -var createReadableStreamAsyncIterator; -var from; -__webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js")(Readable, Stream); -var errorOrDestroy = destroyImpl.errorOrDestroy; -var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; -function prependListener(emitter, event, fn) { - // Sadly this is not cacheable as some libraries bundle their own - // event emitter implementation with them. - if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js": +/*!***************************************************************************************************!*\ + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js ***! + \***************************************************************************************************/ +/***/ (function(module) { - // This is a hack to make sure that our error handler is attached before any - // userland ones. NEVER DO THIS. This is here only because this code needs - // to continue to work with older versions of Node.js that do not include - // the prependListener() method. The goal is to eventually remove this hack. - if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; -} -function ReadableState(options, stream, isDuplex) { - Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js"); - options = options || {}; +"use strict"; - // Duplex streams are both readable and writable, but share - // the same options object. - // However, some cases require setting options to different - // values for the readable and the writable sides of the duplex stream. - // These options can be provided separately as readableXXX and writableXXX. - if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; - // object stream flag. Used to make read(n) ignore n and to - // make all the buffer merging and length checks go away - this.objectMode = !!options.objectMode; - if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; +// undocumented cb() API, needed for core, not for public API +function destroy(err, cb) { + var _this = this; + var readableDestroyed = this._readableState && this._readableState.destroyed; + var writableDestroyed = this._writableState && this._writableState.destroyed; + if (readableDestroyed || writableDestroyed) { + if (cb) { + cb(err); + } else if (err) { + if (!this._writableState) { + ({"env":{"NODE_ENV":"production"}}).nextTick(emitErrorNT, this, err); + } else if (!this._writableState.errorEmitted) { + this._writableState.errorEmitted = true; + ({"env":{"NODE_ENV":"production"}}).nextTick(emitErrorNT, this, err); + } + } + return this; + } - // the point at which it stops calling _read() to fill the buffer - // Note: 0 is a valid value, means "don't call _read preemptively ever" - this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); + // we set destroyed to true before firing error callbacks in order + // to make it re-entrance safe in case destroy() is called within callbacks - // A linked list is used to store data chunks instead of an array because the - // linked list can remove elements from the beginning faster than - // array.shift() - this.buffer = new BufferList(); - this.length = 0; - this.pipes = null; - this.pipesCount = 0; - this.flowing = null; - this.ended = false; - this.endEmitted = false; - this.reading = false; + if (this._readableState) { + this._readableState.destroyed = true; + } - // a flag to be able to tell if the event 'readable'/'data' is emitted - // immediately, or on a later tick. We set this to true at first, because - // any actions that shouldn't happen until "later" should generally also - // not happen before the first read call. - this.sync = true; + // if this is a duplex stream mark the writable part as destroyed as well + if (this._writableState) { + this._writableState.destroyed = true; + } + this._destroy(err || null, function (err) { + if (!cb && err) { + if (!_this._writableState) { + ({"env":{"NODE_ENV":"production"}}).nextTick(emitErrorAndCloseNT, _this, err); + } else if (!_this._writableState.errorEmitted) { + _this._writableState.errorEmitted = true; + ({"env":{"NODE_ENV":"production"}}).nextTick(emitErrorAndCloseNT, _this, err); + } else { + ({"env":{"NODE_ENV":"production"}}).nextTick(emitCloseNT, _this); + } + } else if (cb) { + ({"env":{"NODE_ENV":"production"}}).nextTick(emitCloseNT, _this); + cb(err); + } else { + ({"env":{"NODE_ENV":"production"}}).nextTick(emitCloseNT, _this); + } + }); + return this; +} +function emitErrorAndCloseNT(self, err) { + emitErrorNT(self, err); + emitCloseNT(self); +} +function emitCloseNT(self) { + if (self._writableState && !self._writableState.emitClose) return; + if (self._readableState && !self._readableState.emitClose) return; + self.emit('close'); +} +function undestroy() { + if (this._readableState) { + this._readableState.destroyed = false; + this._readableState.reading = false; + this._readableState.ended = false; + this._readableState.endEmitted = false; + } + if (this._writableState) { + this._writableState.destroyed = false; + this._writableState.ended = false; + this._writableState.ending = false; + this._writableState.finalCalled = false; + this._writableState.prefinished = false; + this._writableState.finished = false; + this._writableState.errorEmitted = false; + } +} +function emitErrorNT(self, err) { + self.emit('error', err); +} +function errorOrDestroy(stream, err) { + // We have tests that rely on errors being emitted + // in the same tick, so changing this is semver major. + // For now when you opt-in to autoDestroy we allow + // the error to be emitted nextTick. In a future + // semver major update we should change the default to this. - // whenever we return null, then we set a flag to say - // that we're awaiting a 'readable' event emission. - this.needReadable = false; - this.emittedReadable = false; - this.readableListening = false; - this.resumeScheduled = false; - this.paused = true; + var rState = stream._readableState; + var wState = stream._writableState; + if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err); +} +module.exports = { + destroy: destroy, + undestroy: undestroy, + errorOrDestroy: errorOrDestroy +}; - // Should close be emitted on destroy. Defaults to true. - this.emitClose = options.emitClose !== false; +/***/ }), - // Should .destroy() be called after 'end' (and potentially 'finish') - this.autoDestroy = !!options.autoDestroy; +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js": +/*!*********************************************************************************************************!*\ + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js ***! + \*********************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - // has it been destroyed - this.destroyed = false; +"use strict"; +// Ported from https://github.com/mafintosh/end-of-stream with +// permission from the author, Mathias Buus (@mafintosh). - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - // the number of writers that are awaiting a drain event in .pipe()s - this.awaitDrain = 0; - // if true, a maybeReadMore has been scheduled - this.readingMore = false; - this.decoder = null; - this.encoding = null; - if (options.encoding) { - if (!StringDecoder) StringDecoder = (__webpack_require__(/*! string_decoder/ */ "./node_modules/string_decoder/lib/string_decoder.js").StringDecoder); - this.decoder = new StringDecoder(options.encoding); - this.encoding = options.encoding; - } +var ERR_STREAM_PREMATURE_CLOSE = (__webpack_require__(/*! ../../../errors */ "./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js").codes.ERR_STREAM_PREMATURE_CLOSE); +function once(callback) { + var called = false; + return function () { + if (called) return; + called = true; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + callback.apply(this, args); + }; } -function Readable(options) { - Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js"); - if (!(this instanceof Readable)) return new Readable(options); - - // Checking for a Stream.Duplex instance is faster here instead of inside - // the ReadableState constructor, at least with V8 6.5 - var isDuplex = this instanceof Duplex; - this._readableState = new ReadableState(options, this, isDuplex); - - // legacy - this.readable = true; - if (options) { - if (typeof options.read === 'function') this._read = options.read; - if (typeof options.destroy === 'function') this._destroy = options.destroy; - } - Stream.call(this); +function noop() {} +function isRequest(stream) { + return stream.setHeader && typeof stream.abort === 'function'; } -Object.defineProperty(Readable.prototype, 'destroyed', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - if (this._readableState === undefined) { - return false; +function eos(stream, opts, callback) { + if (typeof opts === 'function') return eos(stream, null, opts); + if (!opts) opts = {}; + callback = once(callback || noop); + var readable = opts.readable || opts.readable !== false && stream.readable; + var writable = opts.writable || opts.writable !== false && stream.writable; + var onlegacyfinish = function onlegacyfinish() { + if (!stream.writable) onfinish(); + }; + var writableEnded = stream._writableState && stream._writableState.finished; + var onfinish = function onfinish() { + writable = false; + writableEnded = true; + if (!readable) callback.call(stream); + }; + var readableEnded = stream._readableState && stream._readableState.endEmitted; + var onend = function onend() { + readable = false; + readableEnded = true; + if (!writable) callback.call(stream); + }; + var onerror = function onerror(err) { + callback.call(stream, err); + }; + var onclose = function onclose() { + var err; + if (readable && !readableEnded) { + if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); + return callback.call(stream, err); } - return this._readableState.destroyed; - }, - set: function set(value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._readableState) { - return; + if (writable && !writableEnded) { + if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); + return callback.call(stream, err); } - - // backward compatibility, the user is explicitly - // managing destroyed - this._readableState.destroyed = value; + }; + var onrequest = function onrequest() { + stream.req.on('finish', onfinish); + }; + if (isRequest(stream)) { + stream.on('complete', onfinish); + stream.on('abort', onclose); + if (stream.req) onrequest();else stream.on('request', onrequest); + } else if (writable && !stream._writableState) { + // legacy streams + stream.on('end', onlegacyfinish); + stream.on('close', onlegacyfinish); } -}); -Readable.prototype.destroy = destroyImpl.destroy; -Readable.prototype._undestroy = destroyImpl.undestroy; -Readable.prototype._destroy = function (err, cb) { - cb(err); -}; + stream.on('end', onend); + stream.on('finish', onfinish); + if (opts.error !== false) stream.on('error', onerror); + stream.on('close', onclose); + return function () { + stream.removeListener('complete', onfinish); + stream.removeListener('abort', onclose); + stream.removeListener('request', onrequest); + if (stream.req) stream.req.removeListener('finish', onfinish); + stream.removeListener('end', onlegacyfinish); + stream.removeListener('close', onlegacyfinish); + stream.removeListener('finish', onfinish); + stream.removeListener('end', onend); + stream.removeListener('error', onerror); + stream.removeListener('close', onclose); + }; +} +module.exports = eos; -// Manually shove something into the read() buffer. -// This returns true if the highWaterMark has not been hit yet, -// similar to how Writable.write() returns true if you should -// write() some more. -Readable.prototype.push = function (chunk, encoding) { - var state = this._readableState; - var skipChunkCheck; - if (!state.objectMode) { - if (typeof chunk === 'string') { - encoding = encoding || state.defaultEncoding; - if (encoding !== state.encoding) { - chunk = Buffer.from(chunk, encoding); - encoding = ''; - } - skipChunkCheck = true; - } - } else { - skipChunkCheck = true; - } - return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); -}; +/***/ }), -// Unshift should *always* be something directly out of read() -Readable.prototype.unshift = function (chunk) { - return readableAddChunk(this, chunk, null, true, false); -}; -function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { - debug('readableAddChunk', chunk); - var state = stream._readableState; - if (chunk === null) { - state.reading = false; - onEofChunk(stream, state); - } else { - var er; - if (!skipChunkCheck) er = chunkInvalid(state, chunk); - if (er) { - errorOrDestroy(stream, er); - } else if (state.objectMode || chunk && chunk.length > 0) { - if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { - chunk = _uint8ArrayToBuffer(chunk); - } - if (addToFront) { - if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true); - } else if (state.ended) { - errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()); - } else if (state.destroyed) { - return false; - } else { - state.reading = false; - if (state.decoder && !encoding) { - chunk = state.decoder.write(chunk); - if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); - } else { - addChunk(stream, state, chunk, false); - } - } - } else if (!addToFront) { - state.reading = false; - maybeReadMore(stream, state); - } - } +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js": +/*!********************************************************************************************************!*\ + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js ***! + \********************************************************************************************************/ +/***/ (function(module) { - // We can push more data if we are below the highWaterMark. - // Also, if we have no data yet, we can stand some more bytes. - // This is to work around cases where hwm=0, such as the repl. - return !state.ended && (state.length < state.highWaterMark || state.length === 0); -} -function addChunk(stream, state, chunk, addToFront) { - if (state.flowing && state.length === 0 && !state.sync) { - state.awaitDrain = 0; - stream.emit('data', chunk); - } else { - // update the buffer info. - state.length += state.objectMode ? 1 : chunk.length; - if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); - if (state.needReadable) emitReadable(stream); - } - maybeReadMore(stream, state); -} -function chunkInvalid(state, chunk) { - var er; - if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk); - } - return er; -} -Readable.prototype.isPaused = function () { - return this._readableState.flowing === false; +module.exports = function () { + throw new Error('Readable.from is not available in the browser') }; -// backwards compatibility. -Readable.prototype.setEncoding = function (enc) { - if (!StringDecoder) StringDecoder = (__webpack_require__(/*! string_decoder/ */ "./node_modules/string_decoder/lib/string_decoder.js").StringDecoder); - var decoder = new StringDecoder(enc); - this._readableState.decoder = decoder; - // If setEncoding(null), decoder.encoding equals utf8 - this._readableState.encoding = this._readableState.decoder.encoding; - // Iterate over current buffer to convert already stored Buffers: - var p = this._readableState.buffer.head; - var content = ''; - while (p !== null) { - content += decoder.write(p.data); - p = p.next; - } - this._readableState.buffer.clear(); - if (content !== '') this._readableState.buffer.push(content); - this._readableState.length = content.length; - return this; -}; +/***/ }), -// Don't raise the hwm > 1GB -var MAX_HWM = 0x40000000; -function computeNewHighWaterMark(n) { - if (n >= MAX_HWM) { - // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE. - n = MAX_HWM; - } else { - // Get the next highest power of 2 to prevent increasing hwm excessively in - // tiny amounts - n--; - n |= n >>> 1; - n |= n >>> 2; - n |= n >>> 4; - n |= n >>> 8; - n |= n >>> 16; - n++; - } - return n; +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js ***! + \****************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +// Ported from https://github.com/mafintosh/pump with +// permission from the author, Mathias Buus (@mafintosh). + + + +var eos; +function once(callback) { + var called = false; + return function () { + if (called) return; + called = true; + callback.apply(void 0, arguments); + }; +} +var _require$codes = (__webpack_require__(/*! ../../../errors */ "./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js").codes), + ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; +function noop(err) { + // Rethrow the error if it exists to avoid swallowing it + if (err) throw err; +} +function isRequest(stream) { + return stream.setHeader && typeof stream.abort === 'function'; } +function destroyer(stream, reading, writing, callback) { + callback = once(callback); + var closed = false; + stream.on('close', function () { + closed = true; + }); + if (eos === undefined) eos = __webpack_require__(/*! ./end-of-stream */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); + eos(stream, { + readable: reading, + writable: writing + }, function (err) { + if (err) return callback(err); + closed = true; + callback(); + }); + var destroyed = false; + return function (err) { + if (closed) return; + if (destroyed) return; + destroyed = true; -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function howMuchToRead(n, state) { - if (n <= 0 || state.length === 0 && state.ended) return 0; - if (state.objectMode) return 1; - if (n !== n) { - // Only flow one buffer at a time - if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; + // request.destroy just do .end - .abort is what we want + if (isRequest(stream)) return stream.abort(); + if (typeof stream.destroy === 'function') return stream.destroy(); + callback(err || new ERR_STREAM_DESTROYED('pipe')); + }; +} +function call(fn) { + fn(); +} +function pipe(from, to) { + return from.pipe(to); +} +function popCallback(streams) { + if (!streams.length) return noop; + if (typeof streams[streams.length - 1] !== 'function') return noop; + return streams.pop(); +} +function pipeline() { + for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) { + streams[_key] = arguments[_key]; } - // If we're asking for more than the current hwm, then raise the hwm. - if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - if (n <= state.length) return n; - // Don't have enough - if (!state.ended) { - state.needReadable = true; - return 0; + var callback = popCallback(streams); + if (Array.isArray(streams[0])) streams = streams[0]; + if (streams.length < 2) { + throw new ERR_MISSING_ARGS('streams'); } - return state.length; + var error; + var destroys = streams.map(function (stream, i) { + var reading = i < streams.length - 1; + var writing = i > 0; + return destroyer(stream, reading, writing, function (err) { + if (!error) error = err; + if (err) destroys.forEach(call); + if (reading) return; + destroys.forEach(call); + callback(error); + }); + }); + return streams.reduce(pipe); } +module.exports = pipeline; -// you can override either this method, or the async _read(n) below. -Readable.prototype.read = function (n) { - debug('read', n); - n = parseInt(n, 10); - var state = this._readableState; - var nOrig = n; - if (n !== 0) state.emittedReadable = false; +/***/ }), - // if we're doing read(0) to trigger a readable event, but we - // already have a bunch of data in the buffer, then just trigger - // the 'readable' event and move on. - if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { - debug('read: emitReadable', state.length, state.ended); - if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); - return null; - } - n = howMuchToRead(n, state); +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js": +/*!*************************************************************************************************!*\ + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js ***! + \*************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - // if we've ended, and we're now clear, then finish it up. - if (n === 0 && state.ended) { - if (state.length === 0) endReadable(this); - return null; +"use strict"; + + +var ERR_INVALID_OPT_VALUE = (__webpack_require__(/*! ../../../errors */ "./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js").codes.ERR_INVALID_OPT_VALUE); +function highWaterMarkFrom(options, isDuplex, duplexKey) { + return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; +} +function getHighWaterMark(state, options, duplexKey, isDuplex) { + var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); + if (hwm != null) { + if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { + var name = isDuplex ? duplexKey : 'highWaterMark'; + throw new ERR_INVALID_OPT_VALUE(name, hwm); + } + return Math.floor(hwm); } - // All the actual chunk generation logic needs to be - // *below* the call to _read. The reason is that in certain - // synthetic stream cases, such as passthrough streams, _read - // may be a completely synchronous operation which may change - // the state of the read buffer, providing enough data when - // before there was *not* enough. - // - // So, the steps are: - // 1. Figure out what the state of things will be after we do - // a read from the buffer. - // - // 2. If that resulting state will trigger a _read, then call _read. - // Note that this may be asynchronous, or synchronous. Yes, it is - // deeply ugly to write APIs this way, but that still doesn't mean - // that the Readable class should behave improperly, as streams are - // designed to be sync/async agnostic. - // Take note if the _read call is sync or async (ie, if the read call - // has returned yet), so that we know whether or not it's safe to emit - // 'readable' etc. - // - // 3. Actually pull the requested chunks out of the buffer and return. + // Default value + return state.objectMode ? 16 : 16 * 1024; +} +module.exports = { + getHighWaterMark: getHighWaterMark +}; - // if we need a readable event, then we need to do some reading. - var doRead = state.needReadable; - debug('need readable', doRead); +/***/ }), - // if we currently have less than the highWaterMark, then also read some - if (state.length === 0 || state.length - n < state.highWaterMark) { - doRead = true; - debug('length less than watermark', doRead); - } +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js": +/*!**********************************************************************************************************!*\ + !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js ***! + \**********************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. - if (state.ended || state.reading) { - doRead = false; - debug('reading or ended', doRead); - } else if (doRead) { - debug('do read'); - state.reading = true; - state.sync = true; - // if the length is currently zero, then we *need* a readable event. - if (state.length === 0) state.needReadable = true; - // call internal read method - this._read(state.highWaterMark); - state.sync = false; - // If _read pushed data synchronously, then `reading` will be false, - // and we need to re-evaluate how much data we can return to the user. - if (!state.reading) n = howMuchToRead(nOrig, state); - } - var ret; - if (n > 0) ret = fromList(n, state);else ret = null; - if (ret === null) { - state.needReadable = state.length <= state.highWaterMark; - n = 0; - } else { - state.length -= n; - state.awaitDrain = 0; - } - if (state.length === 0) { - // If we have nothing in the buffer, then we want to know - // as soon as we *do* get something into the buffer. - if (!state.ended) state.needReadable = true; +module.exports = __webpack_require__(/*! events */ "./node_modules/events/events.js").EventEmitter; - // If we tried to read() past the EOF, then emit end on the next tick. - if (nOrig !== n && state.ended) endReadable(this); - } - if (ret !== null) this.emit('data', ret); - return ret; -}; -function onEofChunk(stream, state) { - debug('onEofChunk'); - if (state.ended) return; - if (state.decoder) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) { - state.buffer.push(chunk); - state.length += state.objectMode ? 1 : chunk.length; - } - } - state.ended = true; - if (state.sync) { - // if we are sync, wait until next tick to emit the data. - // Otherwise we risk emitting data in the flow() - // the readable code triggers during a read() call - emitReadable(stream); - } else { - // emit 'readable' now to make sure it gets picked up. - state.needReadable = false; - if (!state.emittedReadable) { - state.emittedReadable = true; - emitReadable_(stream); - } - } -} -// Don't emit readable right away in sync mode, because this can trigger -// another read() call => stack overflow. This way, it might trigger -// a nextTick recursion warning, but that's not so bad. -function emitReadable(stream) { - var state = stream._readableState; - debug('emitReadable', state.needReadable, state.emittedReadable); - state.needReadable = false; - if (!state.emittedReadable) { - debug('emitReadable', state.flowing); - state.emittedReadable = true; - ({"env":{"NODE_ENV":"production"}}).nextTick(emitReadable_, stream); - } -} -function emitReadable_(stream) { - var state = stream._readableState; - debug('emitReadable_', state.destroyed, state.length, state.ended); - if (!state.destroyed && (state.length || state.ended)) { - stream.emit('readable'); - state.emittedReadable = false; - } +/***/ }), - // The stream needs another readable event if - // 1. It is not flowing, as the flow mechanism will take - // care of it. - // 2. It is not ended. - // 3. It is below the highWaterMark, so we can schedule - // another readable later. - state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark; - flow(stream); -} +/***/ "./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js": +/*!***************************************************************************************!*\ + !*** ./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js ***! + \***************************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { -// at this point, the user has presumably seen the 'readable' event, -// and called read() to consume some data. that may have triggered -// in turn another _read(n) call, in which case reading = true if -// it's in progress. -// However, if we're not ended, or reading, and the length < hwm, -// then go ahead and try to read some more preemptively. -function maybeReadMore(stream, state) { - if (!state.readingMore) { - state.readingMore = true; - ({"env":{"NODE_ENV":"production"}}).nextTick(maybeReadMore_, stream, state); - } -} -function maybeReadMore_(stream, state) { - // Attempt to read more data if we should. - // - // The conditions for reading more data are (one of): - // - Not enough data buffered (state.length < state.highWaterMark). The loop - // is responsible for filling the buffer with enough data if such data - // is available. If highWaterMark is 0 and we are not in the flowing mode - // we should _not_ attempt to buffer any extra data. We'll get more data - // when the stream consumer calls read() instead. - // - No data in the buffer, and the stream is in flowing mode. In this mode - // the loop below is responsible for ensuring read() is called. Failing to - // call read here would abort the flow and there's no other mechanism for - // continuing the flow if the stream consumer has just subscribed to the - // 'data' event. - // - // In addition to the above conditions to keep reading data, the following - // conditions prevent the data from being read: - // - The stream has ended (state.ended). - // - There is already a pending 'read' operation (state.reading). This is a - // case where the the stream has called the implementation defined _read() - // method, but they are processing the call asynchronously and have _not_ - // called push() with new data. In this case we skip performing more - // read()s. The execution ends in this method again after the _read() ends - // up calling push() with more data. - while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) { - var len = state.length; - debug('maybeReadMore read 0'); - stream.read(0); - if (len === state.length) - // didn't get any data, stop spinning. - break; - } - state.readingMore = false; -} +exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js"); +exports.Stream = exports; +exports.Readable = exports; +exports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js"); +exports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js"); +exports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js"); +exports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js"); +exports.finished = __webpack_require__(/*! ./lib/internal/streams/end-of-stream.js */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); +exports.pipeline = __webpack_require__(/*! ./lib/internal/streams/pipeline.js */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js"); -// abstract method. to be overridden in specific implementation classes. -// call cb(er, data) where data is <= n in length. -// for virtual (non-string, non-buffer) streams, "length" is somewhat -// arbitrary, and perhaps not very meaningful. -Readable.prototype._read = function (n) { - errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()')); -}; -Readable.prototype.pipe = function (dest, pipeOpts) { - var src = this; - var state = this._readableState; - switch (state.pipesCount) { - case 0: - state.pipes = dest; - break; - case 1: - state.pipes = [state.pipes, dest]; - break; - default: - state.pipes.push(dest); - break; - } - state.pipesCount += 1; - debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); - var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== ({"env":{"NODE_ENV":"production"}}).stdout && dest !== ({"env":{"NODE_ENV":"production"}}).stderr; - var endFn = doEnd ? onend : unpipe; - if (state.endEmitted) ({"env":{"NODE_ENV":"production"}}).nextTick(endFn);else src.once('end', endFn); - dest.on('unpipe', onunpipe); - function onunpipe(readable, unpipeInfo) { - debug('onunpipe'); - if (readable === src) { - if (unpipeInfo && unpipeInfo.hasUnpiped === false) { - unpipeInfo.hasUnpiped = true; - cleanup(); - } - } - } - function onend() { - debug('onend'); - dest.end(); - } - // when the dest drains, it reduces the awaitDrain counter - // on the source. This would be more elegant with a .once() - // handler in flow(), but adding and removing repeatedly is - // too slow. - var ondrain = pipeOnDrain(src); - dest.on('drain', ondrain); - var cleanedUp = false; - function cleanup() { - debug('cleanup'); - // cleanup event handlers once the pipe is broken - dest.removeListener('close', onclose); - dest.removeListener('finish', onfinish); - dest.removeListener('drain', ondrain); - dest.removeListener('error', onerror); - dest.removeListener('unpipe', onunpipe); - src.removeListener('end', onend); - src.removeListener('end', unpipe); - src.removeListener('data', ondata); - cleanedUp = true; +/***/ }), - // if the reader is waiting for a drain event from this - // specific writer, then it would cause it to never start - // flowing again. - // So, if this is awaiting a drain, then we just call it now. - // If we don't know, then assume that we are waiting for one. - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); - } - src.on('data', ondata); - function ondata(chunk) { - debug('ondata'); - var ret = dest.write(chunk); - debug('dest.write', ret); - if (ret === false) { - // If the user unpiped during `dest.write()`, it is possible - // to get stuck in a permanently paused state if that write - // also returned false. - // => Check whether `dest` is still a piping destination. - if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { - debug('false write response, pause', state.awaitDrain); - state.awaitDrain++; - } - src.pause(); - } - } +/***/ "./node_modules/browserify-zlib/lib/binding.js": +/*!*****************************************************!*\ + !*** ./node_modules/browserify-zlib/lib/binding.js ***! + \*****************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. - function onerror(er) { - debug('onerror', er); - unpipe(); - dest.removeListener('error', onerror); - if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er); - } +"use strict"; +/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; - // Make sure our error handler is attached before userland ones. - prependListener(dest, 'error', onerror); +/* eslint camelcase: "off" */ - // Both close and finish should trigger unpipe, but only once. - function onclose() { - dest.removeListener('finish', onfinish); - unpipe(); - } - dest.once('close', onclose); - function onfinish() { - debug('onfinish'); - dest.removeListener('close', onclose); - unpipe(); - } - dest.once('finish', onfinish); - function unpipe() { - debug('unpipe'); - src.unpipe(dest); - } +var assert = __webpack_require__(/*! assert */ "./node_modules/assert/build/assert.js"); - // tell the dest that it's being piped to - dest.emit('pipe', src); +var Zstream = __webpack_require__(/*! pako/lib/zlib/zstream */ "./node_modules/pako/lib/zlib/zstream.js"); +var zlib_deflate = __webpack_require__(/*! pako/lib/zlib/deflate.js */ "./node_modules/pako/lib/zlib/deflate.js"); +var zlib_inflate = __webpack_require__(/*! pako/lib/zlib/inflate.js */ "./node_modules/pako/lib/zlib/inflate.js"); +var constants = __webpack_require__(/*! pako/lib/zlib/constants */ "./node_modules/pako/lib/zlib/constants.js"); - // start the flow if it hasn't been started already. - if (!state.flowing) { - debug('pipe resume'); - src.resume(); - } - return dest; -}; -function pipeOnDrain(src) { - return function pipeOnDrainFunctionResult() { - var state = src._readableState; - debug('pipeOnDrain', state.awaitDrain); - if (state.awaitDrain) state.awaitDrain--; - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { - state.flowing = true; - flow(src); - } - }; +for (var key in constants) { + exports[key] = constants[key]; } -Readable.prototype.unpipe = function (dest) { - var state = this._readableState; - var unpipeInfo = { - hasUnpiped: false - }; - // if we're not piping anywhere, then do nothing. - if (state.pipesCount === 0) return this; +// zlib modes +exports.NONE = 0; +exports.DEFLATE = 1; +exports.INFLATE = 2; +exports.GZIP = 3; +exports.GUNZIP = 4; +exports.DEFLATERAW = 5; +exports.INFLATERAW = 6; +exports.UNZIP = 7; - // just one destination. most common case. - if (state.pipesCount === 1) { - // passed in one, but it's not the right one. - if (dest && dest !== state.pipes) return this; - if (!dest) dest = state.pipes; +var GZIP_HEADER_ID1 = 0x1f; +var GZIP_HEADER_ID2 = 0x8b; - // got a match. - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - if (dest) dest.emit('unpipe', this, unpipeInfo); - return this; +/** + * Emulate Node's zlib C++ layer for use by the JS layer in index.js + */ +function Zlib(mode) { + if (typeof mode !== 'number' || mode < exports.DEFLATE || mode > exports.UNZIP) { + throw new TypeError('Bad argument'); } - // slow case. multiple pipe destinations. + this.dictionary = null; + this.err = 0; + this.flush = 0; + this.init_done = false; + this.level = 0; + this.memLevel = 0; + this.mode = mode; + this.strategy = 0; + this.windowBits = 0; + this.write_in_progress = false; + this.pending_close = false; + this.gzip_id_bytes_read = 0; +} - if (!dest) { - // remove all. - var dests = state.pipes; - var len = state.pipesCount; - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, { - hasUnpiped: false - }); - return this; +Zlib.prototype.close = function () { + if (this.write_in_progress) { + this.pending_close = true; + return; } - // try to find the right one. - var index = indexOf(state.pipes, dest); - if (index === -1) return this; - state.pipes.splice(index, 1); - state.pipesCount -= 1; - if (state.pipesCount === 1) state.pipes = state.pipes[0]; - dest.emit('unpipe', this, unpipeInfo); - return this; -}; + this.pending_close = false; -// set up data events if they are asked for -// Ensure readable listeners eventually get something -Readable.prototype.on = function (ev, fn) { - var res = Stream.prototype.on.call(this, ev, fn); - var state = this._readableState; - if (ev === 'data') { - // update readableListening so that resume() may be a no-op - // a few lines down. This is needed to support once('readable'). - state.readableListening = this.listenerCount('readable') > 0; + assert(this.init_done, 'close before init'); + assert(this.mode <= exports.UNZIP); - // Try start flowing on next tick if stream isn't explicitly paused - if (state.flowing !== false) this.resume(); - } else if (ev === 'readable') { - if (!state.endEmitted && !state.readableListening) { - state.readableListening = state.needReadable = true; - state.flowing = false; - state.emittedReadable = false; - debug('on readable', state.length, state.reading); - if (state.length) { - emitReadable(this); - } else if (!state.reading) { - ({"env":{"NODE_ENV":"production"}}).nextTick(nReadingNextTick, this); - } - } + if (this.mode === exports.DEFLATE || this.mode === exports.GZIP || this.mode === exports.DEFLATERAW) { + zlib_deflate.deflateEnd(this.strm); + } else if (this.mode === exports.INFLATE || this.mode === exports.GUNZIP || this.mode === exports.INFLATERAW || this.mode === exports.UNZIP) { + zlib_inflate.inflateEnd(this.strm); } - return res; + + this.mode = exports.NONE; + + this.dictionary = null; }; -Readable.prototype.addListener = Readable.prototype.on; -Readable.prototype.removeListener = function (ev, fn) { - var res = Stream.prototype.removeListener.call(this, ev, fn); - if (ev === 'readable') { - // We need to check if there is someone still listening to - // readable and reset the state. However this needs to happen - // after readable has been emitted but before I/O (nextTick) to - // support once('readable', fn) cycles. This means that calling - // resume within the same tick will have no - // effect. - ({"env":{"NODE_ENV":"production"}}).nextTick(updateReadableListening, this); - } - return res; + +Zlib.prototype.write = function (flush, input, in_off, in_len, out, out_off, out_len) { + return this._write(true, flush, input, in_off, in_len, out, out_off, out_len); }; -Readable.prototype.removeAllListeners = function (ev) { - var res = Stream.prototype.removeAllListeners.apply(this, arguments); - if (ev === 'readable' || ev === undefined) { - // We need to check if there is someone still listening to - // readable and reset the state. However this needs to happen - // after readable has been emitted but before I/O (nextTick) to - // support once('readable', fn) cycles. This means that calling - // resume within the same tick will have no - // effect. - ({"env":{"NODE_ENV":"production"}}).nextTick(updateReadableListening, this); - } - return res; + +Zlib.prototype.writeSync = function (flush, input, in_off, in_len, out, out_off, out_len) { + return this._write(false, flush, input, in_off, in_len, out, out_off, out_len); }; -function updateReadableListening(self) { - var state = self._readableState; - state.readableListening = self.listenerCount('readable') > 0; - if (state.resumeScheduled && !state.paused) { - // flowing needs to be set to true now, otherwise - // the upcoming resume will not flow. - state.flowing = true; - // crude way to check if we should resume - } else if (self.listenerCount('data') > 0) { - self.resume(); - } -} -function nReadingNextTick(self) { - debug('readable nexttick read 0'); - self.read(0); -} +Zlib.prototype._write = function (async, flush, input, in_off, in_len, out, out_off, out_len) { + assert.equal(arguments.length, 8); -// pause() and resume() are remnants of the legacy readable stream API -// If the user uses them, then switch into old mode. -Readable.prototype.resume = function () { - var state = this._readableState; - if (!state.flowing) { - debug('resume'); - // we flow only if there is no one listening - // for readable, but we still have to call - // resume() - state.flowing = !state.readableListening; - resume(this, state); - } - state.paused = false; - return this; -}; -function resume(stream, state) { - if (!state.resumeScheduled) { - state.resumeScheduled = true; - ({"env":{"NODE_ENV":"production"}}).nextTick(resume_, stream, state); - } -} -function resume_(stream, state) { - debug('resume', state.reading); - if (!state.reading) { - stream.read(0); + assert(this.init_done, 'write before init'); + assert(this.mode !== exports.NONE, 'already finalized'); + assert.equal(false, this.write_in_progress, 'write already in progress'); + assert.equal(false, this.pending_close, 'close is pending'); + + this.write_in_progress = true; + + assert.equal(false, flush === undefined, 'must provide flush value'); + + this.write_in_progress = true; + + if (flush !== exports.Z_NO_FLUSH && flush !== exports.Z_PARTIAL_FLUSH && flush !== exports.Z_SYNC_FLUSH && flush !== exports.Z_FULL_FLUSH && flush !== exports.Z_FINISH && flush !== exports.Z_BLOCK) { + throw new Error('Invalid flush value'); } - state.resumeScheduled = false; - stream.emit('resume'); - flow(stream); - if (state.flowing && !state.reading) stream.read(0); -} -Readable.prototype.pause = function () { - debug('call pause flowing=%j', this._readableState.flowing); - if (this._readableState.flowing !== false) { - debug('pause'); - this._readableState.flowing = false; - this.emit('pause'); + + if (input == null) { + input = Buffer.alloc(0); + in_len = 0; + in_off = 0; } - this._readableState.paused = true; - return this; -}; -function flow(stream) { - var state = stream._readableState; - debug('flow', state.flowing); - while (state.flowing && stream.read() !== null); -} -// wrap an old-style stream as the async data source. -// This is *not* part of the readable stream interface. -// It is an ugly unfortunate mess of history. -Readable.prototype.wrap = function (stream) { - var _this = this; - var state = this._readableState; - var paused = false; - stream.on('end', function () { - debug('wrapped end'); - if (state.decoder && !state.ended) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) _this.push(chunk); - } - _this.push(null); - }); - stream.on('data', function (chunk) { - debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); + this.strm.avail_in = in_len; + this.strm.input = input; + this.strm.next_in = in_off; + this.strm.avail_out = out_len; + this.strm.output = out; + this.strm.next_out = out_off; + this.flush = flush; - // don't skip over falsy values in objectMode - if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - var ret = _this.push(chunk); - if (!ret) { - paused = true; - stream.pause(); - } - }); + if (!async) { + // sync version + this._process(); - // proxy all the other methods. - // important when wrapping filters and duplexes. - for (var i in stream) { - if (this[i] === undefined && typeof stream[i] === 'function') { - this[i] = function methodWrap(method) { - return function methodWrapReturnFunction() { - return stream[method].apply(stream, arguments); - }; - }(i); + if (this._checkError()) { + return this._afterSync(); } + return; } - // proxy certain important events. - for (var n = 0; n < kProxyEvents.length; n++) { - stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); - } + // async version + var self = this; + ({"env":{"NODE_ENV":"production"}}).nextTick(function () { + self._process(); + self._after(); + }); - // when we try to consume some more bytes, simply unpause the - // underlying stream. - this._read = function (n) { - debug('wrapped _read', n); - if (paused) { - paused = false; - stream.resume(); - } - }; return this; }; -if (typeof Symbol === 'function') { - Readable.prototype[Symbol.asyncIterator] = function () { - if (createReadableStreamAsyncIterator === undefined) { - createReadableStreamAsyncIterator = __webpack_require__(/*! ./internal/streams/async_iterator */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js"); - } - return createReadableStreamAsyncIterator(this); - }; -} -Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState.highWaterMark; - } -}); -Object.defineProperty(Readable.prototype, 'readableBuffer', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState && this._readableState.buffer; - } -}); -Object.defineProperty(Readable.prototype, 'readableFlowing', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState.flowing; - }, - set: function set(state) { - if (this._readableState) { - this._readableState.flowing = state; - } - } -}); -// exposed for testing purposes only. -Readable._fromList = fromList; -Object.defineProperty(Readable.prototype, 'readableLength', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState.length; - } -}); +Zlib.prototype._afterSync = function () { + var avail_out = this.strm.avail_out; + var avail_in = this.strm.avail_in; -// Pluck off n bytes from an array of buffers. -// Length is the combined lengths of all the buffers in the list. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function fromList(n, state) { - // nothing buffered - if (state.length === 0) return null; - var ret; - if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { - // read it all, truncate the list - if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length); - state.buffer.clear(); - } else { - // read part of list - ret = state.buffer.consume(n, state.decoder); - } - return ret; -} -function endReadable(stream) { - var state = stream._readableState; - debug('endReadable', state.endEmitted); - if (!state.endEmitted) { - state.ended = true; - ({"env":{"NODE_ENV":"production"}}).nextTick(endReadableNT, state, stream); - } -} -function endReadableNT(state, stream) { - debug('endReadableNT', state.endEmitted, state.length); + this.write_in_progress = false; - // Check that we didn't get one last unshift. - if (!state.endEmitted && state.length === 0) { - state.endEmitted = true; - stream.readable = false; - stream.emit('end'); - if (state.autoDestroy) { - // In case of duplex streams we need a way to detect - // if the writable side is ready for autoDestroy as well - var wState = stream._writableState; - if (!wState || wState.autoDestroy && wState.finished) { - stream.destroy(); + return [avail_in, avail_out]; +}; + +Zlib.prototype._process = function () { + var next_expected_header_byte = null; + + // If the avail_out is left at 0, then it means that it ran out + // of room. If there was avail_out left over, then it means + // that all of the input was consumed. + switch (this.mode) { + case exports.DEFLATE: + case exports.GZIP: + case exports.DEFLATERAW: + this.err = zlib_deflate.deflate(this.strm, this.flush); + break; + case exports.UNZIP: + if (this.strm.avail_in > 0) { + next_expected_header_byte = this.strm.next_in; } - } - } -} -if (typeof Symbol === 'function') { - Readable.from = function (iterable, opts) { - if (from === undefined) { - from = __webpack_require__(/*! ./internal/streams/from */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js"); - } - return from(Readable, iterable, opts); - }; -} -function indexOf(xs, x) { - for (var i = 0, l = xs.length; i < l; i++) { - if (xs[i] === x) return i; - } - return -1; -} -/***/ }), + switch (this.gzip_id_bytes_read) { + case 0: + if (next_expected_header_byte === null) { + break; + } -/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js ***! - \********************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + if (this.strm.input[next_expected_header_byte] === GZIP_HEADER_ID1) { + this.gzip_id_bytes_read = 1; + next_expected_header_byte++; -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. + if (this.strm.avail_in === 1) { + // The only available byte was already read. + break; + } + } else { + this.mode = exports.INFLATE; + break; + } -// a transform stream is a readable/writable stream where you do -// something with the data. Sometimes it's called a "filter", -// but that's not a great name for it, since that implies a thing where -// some bits pass through, and others are simply ignored. (That would -// be a valid example of a transform, of course.) -// -// While the output is causally related to the input, it's not a -// necessarily symmetric or synchronous transformation. For example, -// a zlib stream might take multiple plain-text writes(), and then -// emit a single compressed chunk some time in the future. -// -// Here's how this works: -// -// The Transform stream has all the aspects of the readable and writable -// stream classes. When you write(chunk), that calls _write(chunk,cb) -// internally, and returns false if there's a lot of pending writes -// buffered up. When you call read(), that calls _read(n) until -// there's enough pending readable data buffered up. -// -// In a transform stream, the written data is placed in a buffer. When -// _read(n) is called, it transforms the queued up data, calling the -// buffered _write cb's as it consumes chunks. If consuming a single -// written chunk would result in multiple output chunks, then the first -// outputted bit calls the readcb, and subsequent chunks just go into -// the read buffer, and will cause it to emit 'readable' if necessary. -// -// This way, back-pressure is actually determined by the reading side, -// since _read has to be called to start processing a new chunk. However, -// a pathological inflate type of transform can cause excessive buffering -// here. For example, imagine a stream where every byte of input is -// interpreted as an integer from 0-255, and then results in that many -// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in -// 1kb of data being output. In this case, you could write a very small -// amount of input, and end up with a very large amount of output. In -// such a pathological inflating mechanism, there'd be no way to tell -// the system to stop doing the transform. A single 4MB write could -// cause the system to run out of memory. -// -// However, even in such a pathological case, only a single written chunk -// would be consumed, and then the rest would wait (un-transformed) until -// the results of the previous transformed chunk were consumed. + // fallthrough + case 1: + if (next_expected_header_byte === null) { + break; + } + if (this.strm.input[next_expected_header_byte] === GZIP_HEADER_ID2) { + this.gzip_id_bytes_read = 2; + this.mode = exports.GUNZIP; + } else { + // There is no actual difference between INFLATE and INFLATERAW + // (after initialization). + this.mode = exports.INFLATE; + } + break; + default: + throw new Error('invalid number of gzip magic number bytes read'); + } -module.exports = Transform; -var _require$codes = (__webpack_require__(/*! ../errors */ "./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js").codes), - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, - ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, - ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0; -var Duplex = __webpack_require__(/*! ./_stream_duplex */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js"); -__webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js")(Transform, Duplex); -function afterTransform(er, data) { - var ts = this._transformState; - ts.transforming = false; - var cb = ts.writecb; - if (cb === null) { - return this.emit('error', new ERR_MULTIPLE_CALLBACK()); + // fallthrough + case exports.INFLATE: + case exports.GUNZIP: + case exports.INFLATERAW: + this.err = zlib_inflate.inflate(this.strm, this.flush + + // If data was encoded with dictionary + );if (this.err === exports.Z_NEED_DICT && this.dictionary) { + // Load it + this.err = zlib_inflate.inflateSetDictionary(this.strm, this.dictionary); + if (this.err === exports.Z_OK) { + // And try to decode again + this.err = zlib_inflate.inflate(this.strm, this.flush); + } else if (this.err === exports.Z_DATA_ERROR) { + // Both inflateSetDictionary() and inflate() return Z_DATA_ERROR. + // Make it possible for After() to tell a bad dictionary from bad + // input. + this.err = exports.Z_NEED_DICT; + } + } + while (this.strm.avail_in > 0 && this.mode === exports.GUNZIP && this.err === exports.Z_STREAM_END && this.strm.next_in[0] !== 0x00) { + // Bytes remain in input buffer. Perhaps this is another compressed + // member in the same archive, or just trailing garbage. + // Trailing zero bytes are okay, though, since they are frequently + // used for padding. + + this.reset(); + this.err = zlib_inflate.inflate(this.strm, this.flush); + } + break; + default: + throw new Error('Unknown mode ' + this.mode); } - ts.writechunk = null; - ts.writecb = null; - if (data != null) - // single equals check for both `null` and `undefined` - this.push(data); - cb(er); - var rs = this._readableState; - rs.reading = false; - if (rs.needReadable || rs.length < rs.highWaterMark) { - this._read(rs.highWaterMark); +}; + +Zlib.prototype._checkError = function () { + // Acceptable error states depend on the type of zlib stream. + switch (this.err) { + case exports.Z_OK: + case exports.Z_BUF_ERROR: + if (this.strm.avail_out !== 0 && this.flush === exports.Z_FINISH) { + this._error('unexpected end of file'); + return false; + } + break; + case exports.Z_STREAM_END: + // normal statuses, not fatal + break; + case exports.Z_NEED_DICT: + if (this.dictionary == null) { + this._error('Missing dictionary'); + } else { + this._error('Bad dictionary'); + } + return false; + default: + // something else. + this._error('Zlib error'); + return false; } -} -function Transform(options) { - if (!(this instanceof Transform)) return new Transform(options); - Duplex.call(this, options); - this._transformState = { - afterTransform: afterTransform.bind(this), - needTransform: false, - transforming: false, - writecb: null, - writechunk: null, - writeencoding: null - }; - // start out asking for a readable event once data is transformed. - this._readableState.needReadable = true; + return true; +}; - // we have implemented the _read method, and done the other things - // that Readable wants before the first _read call, so unset the - // sync guard flag. - this._readableState.sync = false; - if (options) { - if (typeof options.transform === 'function') this._transform = options.transform; - if (typeof options.flush === 'function') this._flush = options.flush; +Zlib.prototype._after = function () { + if (!this._checkError()) { + return; } - // When the writable side finishes, then flush out anything remaining. - this.on('prefinish', prefinish); -} -function prefinish() { - var _this = this; - if (typeof this._flush === 'function' && !this._readableState.destroyed) { - this._flush(function (er, data) { - done(_this, er, data); - }); - } else { - done(this, null, null); + var avail_out = this.strm.avail_out; + var avail_in = this.strm.avail_in; + + this.write_in_progress = false; + + // call the write() cb + this.callback(avail_in, avail_out); + + if (this.pending_close) { + this.close(); } -} -Transform.prototype.push = function (chunk, encoding) { - this._transformState.needTransform = false; - return Duplex.prototype.push.call(this, chunk, encoding); }; -// This is the part where you do stuff! -// override this function in implementation classes. -// 'chunk' is an input chunk. -// -// Call `push(newChunk)` to pass along transformed output -// to the readable side. You may call 'push' zero or more times. -// -// Call `cb(err)` when you are done with this chunk. If you pass -// an error, then that'll put the hurt on the whole operation. If you -// never call cb(), then you'll never get another chunk. -Transform.prototype._transform = function (chunk, encoding, cb) { - cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()')); -}; -Transform.prototype._write = function (chunk, encoding, cb) { - var ts = this._transformState; - ts.writecb = cb; - ts.writechunk = chunk; - ts.writeencoding = encoding; - if (!ts.transforming) { - var rs = this._readableState; - if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); +Zlib.prototype._error = function (message) { + if (this.strm.msg) { + message = this.strm.msg; } -}; + this.onerror(message, this.err -// Doesn't matter what the args are here. -// _transform does all the work. -// That we got here means that the readable side wants more data. -Transform.prototype._read = function (n) { - var ts = this._transformState; - if (ts.writechunk !== null && !ts.transforming) { - ts.transforming = true; - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); - } else { - // mark that we need a transform, so that any data that comes in - // will get processed, now that we've asked for it. - ts.needTransform = true; + // no hope of rescue. + );this.write_in_progress = false; + if (this.pending_close) { + this.close(); } }; -Transform.prototype._destroy = function (err, cb) { - Duplex.prototype._destroy.call(this, err, function (err2) { - cb(err2); - }); + +Zlib.prototype.init = function (windowBits, level, memLevel, strategy, dictionary) { + assert(arguments.length === 4 || arguments.length === 5, 'init(windowBits, level, memLevel, strategy, [dictionary])'); + + assert(windowBits >= 8 && windowBits <= 15, 'invalid windowBits'); + assert(level >= -1 && level <= 9, 'invalid compression level'); + + assert(memLevel >= 1 && memLevel <= 9, 'invalid memlevel'); + + assert(strategy === exports.Z_FILTERED || strategy === exports.Z_HUFFMAN_ONLY || strategy === exports.Z_RLE || strategy === exports.Z_FIXED || strategy === exports.Z_DEFAULT_STRATEGY, 'invalid strategy'); + + this._init(level, windowBits, memLevel, strategy, dictionary); + this._setDictionary(); }; -function done(stream, er, data) { - if (er) return stream.emit('error', er); - if (data != null) - // single equals check for both `null` and `undefined` - stream.push(data); - // TODO(BridgeAR): Write a test for these two error cases - // if there's nothing in the write buffer, then that means - // that nothing more will ever be provided - if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0(); - if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING(); - return stream.push(null); -} +Zlib.prototype.params = function () { + throw new Error('deflateParams Not supported'); +}; -/***/ }), +Zlib.prototype.reset = function () { + this._reset(); + this._setDictionary(); +}; -/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js ***! - \*******************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +Zlib.prototype._init = function (level, windowBits, memLevel, strategy, dictionary) { + this.level = level; + this.windowBits = windowBits; + this.memLevel = memLevel; + this.strategy = strategy; -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. + this.flush = exports.Z_NO_FLUSH; -// A bit simpler than readable streams. -// Implement an async ._write(chunk, encoding, cb), and it'll handle all -// the drain event emission and buffering. + this.err = exports.Z_OK; + if (this.mode === exports.GZIP || this.mode === exports.GUNZIP) { + this.windowBits += 16; + } + if (this.mode === exports.UNZIP) { + this.windowBits += 32; + } -module.exports = Writable; + if (this.mode === exports.DEFLATERAW || this.mode === exports.INFLATERAW) { + this.windowBits = -1 * this.windowBits; + } -/* */ -function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; - this.next = null; -} + this.strm = new Zstream(); -// It seems a linked list but it is not -// there will be only 2 of these for each stream -function CorkedRequest(state) { - var _this = this; - this.next = null; - this.entry = null; - this.finish = function () { - onCorkedFinish(_this, state); - }; -} -/* */ + switch (this.mode) { + case exports.DEFLATE: + case exports.GZIP: + case exports.DEFLATERAW: + this.err = zlib_deflate.deflateInit2(this.strm, this.level, exports.Z_DEFLATED, this.windowBits, this.memLevel, this.strategy); + break; + case exports.INFLATE: + case exports.GUNZIP: + case exports.INFLATERAW: + case exports.UNZIP: + this.err = zlib_inflate.inflateInit2(this.strm, this.windowBits); + break; + default: + throw new Error('Unknown mode ' + this.mode); + } -/**/ -var Duplex; -/**/ + if (this.err !== exports.Z_OK) { + this._error('Init error'); + } -Writable.WritableState = WritableState; + this.dictionary = dictionary; -/**/ -var internalUtil = { - deprecate: __webpack_require__(/*! util-deprecate */ "./node_modules/util-deprecate/browser.js") + this.write_in_progress = false; + this.init_done = true; }; -/**/ -/**/ -var Stream = __webpack_require__(/*! ./internal/streams/stream */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js"); -/**/ +Zlib.prototype._setDictionary = function () { + if (this.dictionary == null) { + return; + } -var Buffer = (__webpack_require__(/*! buffer */ "./node_modules/buffer/index.js").Buffer); -var OurUint8Array = (typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; -function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk); -} -function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; -} -var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js"); -var _require = __webpack_require__(/*! ./internal/streams/state */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js"), - getHighWaterMark = _require.getHighWaterMark; -var _require$codes = (__webpack_require__(/*! ../errors */ "./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js").codes), - ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, - ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, - ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, - ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, - ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, - ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; -var errorOrDestroy = destroyImpl.errorOrDestroy; -__webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js")(Writable, Stream); -function nop() {} -function WritableState(options, stream, isDuplex) { - Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js"); - options = options || {}; + this.err = exports.Z_OK; - // Duplex streams are both readable and writable, but share - // the same options object. - // However, some cases require setting options to different - // values for the readable and the writable sides of the duplex stream, - // e.g. options.readableObjectMode vs. options.writableObjectMode, etc. - if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; + switch (this.mode) { + case exports.DEFLATE: + case exports.DEFLATERAW: + this.err = zlib_deflate.deflateSetDictionary(this.strm, this.dictionary); + break; + default: + break; + } - // object stream flag to indicate whether or not this stream - // contains buffers or objects. - this.objectMode = !!options.objectMode; - if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; + if (this.err !== exports.Z_OK) { + this._error('Failed to set dictionary'); + } +}; - // the point at which write() starts returning false - // Note: 0 is a valid value, means that we always return false if - // the entire buffer is not flushed immediately on write() - this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); +Zlib.prototype._reset = function () { + this.err = exports.Z_OK; - // if _final has been called - this.finalCalled = false; + switch (this.mode) { + case exports.DEFLATE: + case exports.DEFLATERAW: + case exports.GZIP: + this.err = zlib_deflate.deflateReset(this.strm); + break; + case exports.INFLATE: + case exports.INFLATERAW: + case exports.GUNZIP: + this.err = zlib_inflate.inflateReset(this.strm); + break; + default: + break; + } - // drain event flag. - this.needDrain = false; - // at the start of calling end() - this.ending = false; - // when end() has been called, and returned - this.ended = false; - // when 'finish' is emitted - this.finished = false; + if (this.err !== exports.Z_OK) { + this._error('Failed to reset stream'); + } +}; - // has it been destroyed - this.destroyed = false; +exports.Zlib = Zlib; - // should we decode strings into buffers before passing to _write? - // this is here so that some node-core streams can optimize string - // handling at a lower level. - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; +/***/ }), - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; +/***/ "./node_modules/browserify-zlib/lib/index.js": +/*!***************************************************!*\ + !*** ./node_modules/browserify-zlib/lib/index.js ***! + \***************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - // not an actual buffer we keep track of, but a measurement - // of how much we're waiting to get pushed to some underlying - // socket or file. - this.length = 0; +"use strict"; - // a flag to see when we're in the middle of a write. - this.writing = false; - // when true all writes will be buffered until .uncork() call - this.corked = 0; +var Buffer = (__webpack_require__(/*! buffer */ "./node_modules/buffer/index.js").Buffer); +var Transform = (__webpack_require__(/*! stream */ "./node_modules/stream-browserify/index.js").Transform); +var binding = __webpack_require__(/*! ./binding */ "./node_modules/browserify-zlib/lib/binding.js"); +var util = __webpack_require__(/*! util */ "./node_modules/util/util.js"); +var assert = (__webpack_require__(/*! assert */ "./node_modules/assert/build/assert.js").ok); +var kMaxLength = (__webpack_require__(/*! buffer */ "./node_modules/buffer/index.js").kMaxLength); +var kRangeErrorMessage = 'Cannot create final Buffer. It would be larger ' + 'than 0x' + kMaxLength.toString(16) + ' bytes'; - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; +// zlib doesn't provide these, so kludge them in following the same +// const naming scheme zlib uses. +binding.Z_MIN_WINDOWBITS = 8; +binding.Z_MAX_WINDOWBITS = 15; +binding.Z_DEFAULT_WINDOWBITS = 15; - // a flag to know if we're processing previously buffered items, which - // may call the _write() callback in the same tick, so that we don't - // end up in an overlapped onwrite situation. - this.bufferProcessing = false; +// fewer than 64 bytes per chunk is stupid. +// technically it could work with as few as 8, but even 64 bytes +// is absurdly low. Usually a MB or more is best. +binding.Z_MIN_CHUNK = 64; +binding.Z_MAX_CHUNK = Infinity; +binding.Z_DEFAULT_CHUNK = 16 * 1024; - // the callback that's passed to _write(chunk,cb) - this.onwrite = function (er) { - onwrite(stream, er); - }; +binding.Z_MIN_MEMLEVEL = 1; +binding.Z_MAX_MEMLEVEL = 9; +binding.Z_DEFAULT_MEMLEVEL = 8; - // the callback that the user supplies to write(chunk,encoding,cb) - this.writecb = null; +binding.Z_MIN_LEVEL = -1; +binding.Z_MAX_LEVEL = 9; +binding.Z_DEFAULT_LEVEL = binding.Z_DEFAULT_COMPRESSION; - // the amount that is being written when _write is called. - this.writelen = 0; - this.bufferedRequest = null; - this.lastBufferedRequest = null; +// expose all the zlib constants +var bkeys = Object.keys(binding); +for (var bk = 0; bk < bkeys.length; bk++) { + var bkey = bkeys[bk]; + if (bkey.match(/^Z/)) { + Object.defineProperty(exports, bkey, { + enumerable: true, value: binding[bkey], writable: false + }); + } +} - // number of pending user-supplied write callbacks - // this must be 0 before 'finish' can be emitted - this.pendingcb = 0; +// translation table for return codes. +var codes = { + Z_OK: binding.Z_OK, + Z_STREAM_END: binding.Z_STREAM_END, + Z_NEED_DICT: binding.Z_NEED_DICT, + Z_ERRNO: binding.Z_ERRNO, + Z_STREAM_ERROR: binding.Z_STREAM_ERROR, + Z_DATA_ERROR: binding.Z_DATA_ERROR, + Z_MEM_ERROR: binding.Z_MEM_ERROR, + Z_BUF_ERROR: binding.Z_BUF_ERROR, + Z_VERSION_ERROR: binding.Z_VERSION_ERROR +}; - // emit prefinish if the only thing we're waiting for is _write cbs - // This is relevant for synchronous Transform streams - this.prefinished = false; +var ckeys = Object.keys(codes); +for (var ck = 0; ck < ckeys.length; ck++) { + var ckey = ckeys[ck]; + codes[codes[ckey]] = ckey; +} - // True if the error was already emitted and should not be thrown again - this.errorEmitted = false; +Object.defineProperty(exports, "codes", ({ + enumerable: true, value: Object.freeze(codes), writable: false +})); - // Should close be emitted on destroy. Defaults to true. - this.emitClose = options.emitClose !== false; +exports.Deflate = Deflate; +exports.Inflate = Inflate; +exports.Gzip = Gzip; +exports.Gunzip = Gunzip; +exports.DeflateRaw = DeflateRaw; +exports.InflateRaw = InflateRaw; +exports.Unzip = Unzip; - // Should .destroy() be called after 'finish' (and potentially 'end') - this.autoDestroy = !!options.autoDestroy; +exports.createDeflate = function (o) { + return new Deflate(o); +}; - // count buffered requests - this.bufferedRequestCount = 0; +exports.createInflate = function (o) { + return new Inflate(o); +}; - // allocate the first CorkedRequest, there is always - // one allocated and free to use, and we maintain at most two - this.corkedRequestsFree = new CorkedRequest(this); -} -WritableState.prototype.getBuffer = function getBuffer() { - var current = this.bufferedRequest; - var out = []; - while (current) { - out.push(current); - current = current.next; - } - return out; +exports.createDeflateRaw = function (o) { + return new DeflateRaw(o); }; -(function () { - try { - Object.defineProperty(WritableState.prototype, 'buffer', { - get: internalUtil.deprecate(function writableStateBufferGetter() { - return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') - }); - } catch (_) {} -})(); -// Test _writableState for inheritance to account for Duplex streams, -// whose prototype chain only points to Readable. -var realHasInstance; -if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { - realHasInstance = Function.prototype[Symbol.hasInstance]; - Object.defineProperty(Writable, Symbol.hasInstance, { - value: function value(object) { - if (realHasInstance.call(this, object)) return true; - if (this !== Writable) return false; - return object && object._writableState instanceof WritableState; - } - }); -} else { - realHasInstance = function realHasInstance(object) { - return object instanceof this; - }; -} -function Writable(options) { - Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js"); +exports.createInflateRaw = function (o) { + return new InflateRaw(o); +}; - // Writable ctor is applied to Duplexes, too. - // `realHasInstance` is necessary because using plain `instanceof` - // would return false, as no `_writableState` property is attached. +exports.createGzip = function (o) { + return new Gzip(o); +}; - // Trying to use the custom `instanceof` for Writable here will also break the - // Node.js LazyTransform implementation, which has a non-trivial getter for - // `_writableState` that would lead to infinite recursion. +exports.createGunzip = function (o) { + return new Gunzip(o); +}; - // Checking for a Stream.Duplex instance is faster here instead of inside - // the WritableState constructor, at least with V8 6.5 - var isDuplex = this instanceof Duplex; - if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); - this._writableState = new WritableState(options, this, isDuplex); +exports.createUnzip = function (o) { + return new Unzip(o); +}; - // legacy. - this.writable = true; - if (options) { - if (typeof options.write === 'function') this._write = options.write; - if (typeof options.writev === 'function') this._writev = options.writev; - if (typeof options.destroy === 'function') this._destroy = options.destroy; - if (typeof options.final === 'function') this._final = options.final; +// Convenience methods. +// compress/decompress a string or buffer in one step. +exports.deflate = function (buffer, opts, callback) { + if (typeof opts === 'function') { + callback = opts; + opts = {}; } - Stream.call(this); -} + return zlibBuffer(new Deflate(opts), buffer, callback); +}; -// Otherwise people can pipe Writable streams, which is just wrong. -Writable.prototype.pipe = function () { - errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); +exports.deflateSync = function (buffer, opts) { + return zlibBufferSync(new Deflate(opts), buffer); }; -function writeAfterEnd(stream, cb) { - var er = new ERR_STREAM_WRITE_AFTER_END(); - // TODO: defer error events consistently everywhere, not just the cb - errorOrDestroy(stream, er); - ({"env":{"NODE_ENV":"production"}}).nextTick(cb, er); -} -// Checks that a user-supplied chunk is valid, especially for the particular -// mode the stream is in. Currently this means that `null` is never accepted -// and undefined/non-string values are only allowed in object mode. -function validChunk(stream, state, chunk, cb) { - var er; - if (chunk === null) { - er = new ERR_STREAM_NULL_VALUES(); - } else if (typeof chunk !== 'string' && !state.objectMode) { - er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk); - } - if (er) { - errorOrDestroy(stream, er); - ({"env":{"NODE_ENV":"production"}}).nextTick(cb, er); - return false; - } - return true; -} -Writable.prototype.write = function (chunk, encoding, cb) { - var state = this._writableState; - var ret = false; - var isBuf = !state.objectMode && _isUint8Array(chunk); - if (isBuf && !Buffer.isBuffer(chunk)) { - chunk = _uint8ArrayToBuffer(chunk); - } - if (typeof encoding === 'function') { - cb = encoding; - encoding = null; +exports.gzip = function (buffer, opts, callback) { + if (typeof opts === 'function') { + callback = opts; + opts = {}; } - if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; - if (typeof cb !== 'function') cb = nop; - if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { - state.pendingcb++; - ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); + return zlibBuffer(new Gzip(opts), buffer, callback); +}; + +exports.gzipSync = function (buffer, opts) { + return zlibBufferSync(new Gzip(opts), buffer); +}; + +exports.deflateRaw = function (buffer, opts, callback) { + if (typeof opts === 'function') { + callback = opts; + opts = {}; } - return ret; + return zlibBuffer(new DeflateRaw(opts), buffer, callback); }; -Writable.prototype.cork = function () { - this._writableState.corked++; + +exports.deflateRawSync = function (buffer, opts) { + return zlibBufferSync(new DeflateRaw(opts), buffer); }; -Writable.prototype.uncork = function () { - var state = this._writableState; - if (state.corked) { - state.corked--; - if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); + +exports.unzip = function (buffer, opts, callback) { + if (typeof opts === 'function') { + callback = opts; + opts = {}; } + return zlibBuffer(new Unzip(opts), buffer, callback); }; -Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { - // node::ParseEncoding() requires lower case. - if (typeof encoding === 'string') encoding = encoding.toLowerCase(); - if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding); - this._writableState.defaultEncoding = encoding; - return this; + +exports.unzipSync = function (buffer, opts) { + return zlibBufferSync(new Unzip(opts), buffer); }; -Object.defineProperty(Writable.prototype, 'writableBuffer', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState && this._writableState.getBuffer(); + +exports.inflate = function (buffer, opts, callback) { + if (typeof opts === 'function') { + callback = opts; + opts = {}; } -}); -function decodeChunk(state, chunk, encoding) { - if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { - chunk = Buffer.from(chunk, encoding); + return zlibBuffer(new Inflate(opts), buffer, callback); +}; + +exports.inflateSync = function (buffer, opts) { + return zlibBufferSync(new Inflate(opts), buffer); +}; + +exports.gunzip = function (buffer, opts, callback) { + if (typeof opts === 'function') { + callback = opts; + opts = {}; } - return chunk; -} -Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.highWaterMark; + return zlibBuffer(new Gunzip(opts), buffer, callback); +}; + +exports.gunzipSync = function (buffer, opts) { + return zlibBufferSync(new Gunzip(opts), buffer); +}; + +exports.inflateRaw = function (buffer, opts, callback) { + if (typeof opts === 'function') { + callback = opts; + opts = {}; } -}); + return zlibBuffer(new InflateRaw(opts), buffer, callback); +}; -// if we're already writing something, then just put this -// in the queue, and wait our turn. Otherwise, call _write -// If we return false, then we need a drain event, so set that flag. -function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { - if (!isBuf) { - var newChunk = decodeChunk(state, chunk, encoding); - if (chunk !== newChunk) { - isBuf = true; - encoding = 'buffer'; - chunk = newChunk; +exports.inflateRawSync = function (buffer, opts) { + return zlibBufferSync(new InflateRaw(opts), buffer); +}; + +function zlibBuffer(engine, buffer, callback) { + var buffers = []; + var nread = 0; + + engine.on('error', onError); + engine.on('end', onEnd); + + engine.end(buffer); + flow(); + + function flow() { + var chunk; + while (null !== (chunk = engine.read())) { + buffers.push(chunk); + nread += chunk.length; } + engine.once('readable', flow); } - var len = state.objectMode ? 1 : chunk.length; - state.length += len; - var ret = state.length < state.highWaterMark; - // we must ensure that previous needDrain will not be reset to false. - if (!ret) state.needDrain = true; - if (state.writing || state.corked) { - var last = state.lastBufferedRequest; - state.lastBufferedRequest = { - chunk: chunk, - encoding: encoding, - isBuf: isBuf, - callback: cb, - next: null - }; - if (last) { - last.next = state.lastBufferedRequest; + + function onError(err) { + engine.removeListener('end', onEnd); + engine.removeListener('readable', flow); + callback(err); + } + + function onEnd() { + var buf; + var err = null; + + if (nread >= kMaxLength) { + err = new RangeError(kRangeErrorMessage); } else { - state.bufferedRequest = state.lastBufferedRequest; + buf = Buffer.concat(buffers, nread); } - state.bufferedRequestCount += 1; - } else { - doWrite(stream, state, false, len, chunk, encoding, cb); + + buffers = []; + engine.close(); + callback(err, buf); } - return ret; } -function doWrite(stream, state, writev, len, chunk, encoding, cb) { - state.writelen = len; - state.writecb = cb; - state.writing = true; - state.sync = true; - if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); - state.sync = false; + +function zlibBufferSync(engine, buffer) { + if (typeof buffer === 'string') buffer = Buffer.from(buffer); + + if (!Buffer.isBuffer(buffer)) throw new TypeError('Not a string or buffer'); + + var flushFlag = engine._finishFlushFlag; + + return engine._processChunk(buffer, flushFlag); } -function onwriteError(stream, state, sync, er, cb) { - --state.pendingcb; - if (sync) { - // defer the callback if we are being called synchronously - // to avoid piling up things on the stack - ({"env":{"NODE_ENV":"production"}}).nextTick(cb, er); - // this can emit finish, and it will always happen - // after error - ({"env":{"NODE_ENV":"production"}}).nextTick(finishMaybe, stream, state); - stream._writableState.errorEmitted = true; - errorOrDestroy(stream, er); - } else { - // the caller expect this to happen before if - // it is async - cb(er); - stream._writableState.errorEmitted = true; - errorOrDestroy(stream, er); - // this can emit finish, but finish must - // always follow error - finishMaybe(stream, state); - } + +// generic zlib +// minimal 2-byte header +function Deflate(opts) { + if (!(this instanceof Deflate)) return new Deflate(opts); + Zlib.call(this, opts, binding.DEFLATE); } -function onwriteStateUpdate(state) { - state.writing = false; - state.writecb = null; - state.length -= state.writelen; - state.writelen = 0; + +function Inflate(opts) { + if (!(this instanceof Inflate)) return new Inflate(opts); + Zlib.call(this, opts, binding.INFLATE); } -function onwrite(stream, er) { - var state = stream._writableState; - var sync = state.sync; - var cb = state.writecb; - if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK(); - onwriteStateUpdate(state); - if (er) onwriteError(stream, state, sync, er, cb);else { - // Check if we're actually ready to finish, but don't emit yet - var finished = needFinish(state) || stream.destroyed; - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { - clearBuffer(stream, state); - } - if (sync) { - ({"env":{"NODE_ENV":"production"}}).nextTick(afterWrite, stream, state, finished, cb); - } else { - afterWrite(stream, state, finished, cb); - } - } + +// gzip - bigger header, same deflate compression +function Gzip(opts) { + if (!(this instanceof Gzip)) return new Gzip(opts); + Zlib.call(this, opts, binding.GZIP); } -function afterWrite(stream, state, finished, cb) { - if (!finished) onwriteDrain(stream, state); - state.pendingcb--; - cb(); - finishMaybe(stream, state); + +function Gunzip(opts) { + if (!(this instanceof Gunzip)) return new Gunzip(opts); + Zlib.call(this, opts, binding.GUNZIP); } -// Must force callback to be called on nextTick, so that we don't -// emit 'drain' before the write() consumer gets the 'false' return -// value, and has a chance to attach a 'drain' listener. -function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { - state.needDrain = false; - stream.emit('drain'); - } +// raw - no header +function DeflateRaw(opts) { + if (!(this instanceof DeflateRaw)) return new DeflateRaw(opts); + Zlib.call(this, opts, binding.DEFLATERAW); } -// if there's something in the buffer waiting, then process it -function clearBuffer(stream, state) { - state.bufferProcessing = true; - var entry = state.bufferedRequest; - if (stream._writev && entry && entry.next) { - // Fast case, write everything using _writev() - var l = state.bufferedRequestCount; - var buffer = new Array(l); - var holder = state.corkedRequestsFree; - holder.entry = entry; - var count = 0; - var allBuffers = true; - while (entry) { - buffer[count] = entry; - if (!entry.isBuf) allBuffers = false; - entry = entry.next; - count += 1; - } - buffer.allBuffers = allBuffers; - doWrite(stream, state, true, state.length, buffer, '', holder.finish); +function InflateRaw(opts) { + if (!(this instanceof InflateRaw)) return new InflateRaw(opts); + Zlib.call(this, opts, binding.INFLATERAW); +} - // doWrite is almost always async, defer these to save a bit of time - // as the hot path ends with doWrite - state.pendingcb++; - state.lastBufferedRequest = null; - if (holder.next) { - state.corkedRequestsFree = holder.next; - holder.next = null; - } else { - state.corkedRequestsFree = new CorkedRequest(state); +// auto-detect header. +function Unzip(opts) { + if (!(this instanceof Unzip)) return new Unzip(opts); + Zlib.call(this, opts, binding.UNZIP); +} + +function isValidFlushFlag(flag) { + return flag === binding.Z_NO_FLUSH || flag === binding.Z_PARTIAL_FLUSH || flag === binding.Z_SYNC_FLUSH || flag === binding.Z_FULL_FLUSH || flag === binding.Z_FINISH || flag === binding.Z_BLOCK; +} + +// the Zlib class they all inherit from +// This thing manages the queue of requests, and returns +// true or false if there is anything in the queue when +// you call the .write() method. + +function Zlib(opts, mode) { + var _this = this; + + this._opts = opts = opts || {}; + this._chunkSize = opts.chunkSize || exports.Z_DEFAULT_CHUNK; + + Transform.call(this, opts); + + if (opts.flush && !isValidFlushFlag(opts.flush)) { + throw new Error('Invalid flush flag: ' + opts.flush); + } + if (opts.finishFlush && !isValidFlushFlag(opts.finishFlush)) { + throw new Error('Invalid flush flag: ' + opts.finishFlush); + } + + this._flushFlag = opts.flush || binding.Z_NO_FLUSH; + this._finishFlushFlag = typeof opts.finishFlush !== 'undefined' ? opts.finishFlush : binding.Z_FINISH; + + if (opts.chunkSize) { + if (opts.chunkSize < exports.Z_MIN_CHUNK || opts.chunkSize > exports.Z_MAX_CHUNK) { + throw new Error('Invalid chunk size: ' + opts.chunkSize); } - state.bufferedRequestCount = 0; - } else { - // Slow case, write chunks one-by-one - while (entry) { - var chunk = entry.chunk; - var encoding = entry.encoding; - var cb = entry.callback; - var len = state.objectMode ? 1 : chunk.length; - doWrite(stream, state, false, len, chunk, encoding, cb); - entry = entry.next; - state.bufferedRequestCount--; - // if we didn't call the onwrite immediately, then - // it means that we need to wait until it does. - // also, that means that the chunk and cb are currently - // being processed, so move the buffer counter past them. - if (state.writing) { - break; - } + } + + if (opts.windowBits) { + if (opts.windowBits < exports.Z_MIN_WINDOWBITS || opts.windowBits > exports.Z_MAX_WINDOWBITS) { + throw new Error('Invalid windowBits: ' + opts.windowBits); } - if (entry === null) state.lastBufferedRequest = null; } - state.bufferedRequest = entry; - state.bufferProcessing = false; -} -Writable.prototype._write = function (chunk, encoding, cb) { - cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()')); -}; -Writable.prototype._writev = null; -Writable.prototype.end = function (chunk, encoding, cb) { - var state = this._writableState; - if (typeof chunk === 'function') { - cb = chunk; - chunk = null; - encoding = null; - } else if (typeof encoding === 'function') { - cb = encoding; - encoding = null; + + if (opts.level) { + if (opts.level < exports.Z_MIN_LEVEL || opts.level > exports.Z_MAX_LEVEL) { + throw new Error('Invalid compression level: ' + opts.level); + } } - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - // .end() fully uncorks - if (state.corked) { - state.corked = 1; - this.uncork(); + if (opts.memLevel) { + if (opts.memLevel < exports.Z_MIN_MEMLEVEL || opts.memLevel > exports.Z_MAX_MEMLEVEL) { + throw new Error('Invalid memLevel: ' + opts.memLevel); + } } - // ignore unnecessary end() calls. - if (!state.ending) endWritable(this, state, cb); - return this; -}; -Object.defineProperty(Writable.prototype, 'writableLength', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.length; + if (opts.strategy) { + if (opts.strategy != exports.Z_FILTERED && opts.strategy != exports.Z_HUFFMAN_ONLY && opts.strategy != exports.Z_RLE && opts.strategy != exports.Z_FIXED && opts.strategy != exports.Z_DEFAULT_STRATEGY) { + throw new Error('Invalid strategy: ' + opts.strategy); + } } -}); -function needFinish(state) { - return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; -} -function callFinal(stream, state) { - stream._final(function (err) { - state.pendingcb--; - if (err) { - errorOrDestroy(stream, err); + + if (opts.dictionary) { + if (!Buffer.isBuffer(opts.dictionary)) { + throw new Error('Invalid dictionary: it should be a Buffer instance'); } - state.prefinished = true; - stream.emit('prefinish'); - finishMaybe(stream, state); + } + + this._handle = new binding.Zlib(mode); + + var self = this; + this._hadError = false; + this._handle.onerror = function (message, errno) { + // there is no way to cleanly recover. + // continuing only obscures problems. + _close(self); + self._hadError = true; + + var error = new Error(message); + error.errno = errno; + error.code = exports.codes[errno]; + self.emit('error', error); + }; + + var level = exports.Z_DEFAULT_COMPRESSION; + if (typeof opts.level === 'number') level = opts.level; + + var strategy = exports.Z_DEFAULT_STRATEGY; + if (typeof opts.strategy === 'number') strategy = opts.strategy; + + this._handle.init(opts.windowBits || exports.Z_DEFAULT_WINDOWBITS, level, opts.memLevel || exports.Z_DEFAULT_MEMLEVEL, strategy, opts.dictionary); + + this._buffer = Buffer.allocUnsafe(this._chunkSize); + this._offset = 0; + this._level = level; + this._strategy = strategy; + + this.once('end', this.close); + + Object.defineProperty(this, '_closed', { + get: function () { + return !_this._handle; + }, + configurable: true, + enumerable: true }); } -function prefinish(stream, state) { - if (!state.prefinished && !state.finalCalled) { - if (typeof stream._final === 'function' && !state.destroyed) { - state.pendingcb++; - state.finalCalled = true; - ({"env":{"NODE_ENV":"production"}}).nextTick(callFinal, stream, state); - } else { - state.prefinished = true; - stream.emit('prefinish'); - } - } -} -function finishMaybe(stream, state) { - var need = needFinish(state); - if (need) { - prefinish(stream, state); - if (state.pendingcb === 0) { - state.finished = true; - stream.emit('finish'); - if (state.autoDestroy) { - // In case of duplex streams we need a way to detect - // if the readable side is ready for autoDestroy as well - var rState = stream._readableState; - if (!rState || rState.autoDestroy && rState.endEmitted) { - stream.destroy(); - } - } - } - } - return need; -} -function endWritable(stream, state, cb) { - state.ending = true; - finishMaybe(stream, state); - if (cb) { - if (state.finished) ({"env":{"NODE_ENV":"production"}}).nextTick(cb);else stream.once('finish', cb); + +util.inherits(Zlib, Transform); + +Zlib.prototype.params = function (level, strategy, callback) { + if (level < exports.Z_MIN_LEVEL || level > exports.Z_MAX_LEVEL) { + throw new RangeError('Invalid compression level: ' + level); } - state.ended = true; - stream.writable = false; -} -function onCorkedFinish(corkReq, state, err) { - var entry = corkReq.entry; - corkReq.entry = null; - while (entry) { - var cb = entry.callback; - state.pendingcb--; - cb(err); - entry = entry.next; + if (strategy != exports.Z_FILTERED && strategy != exports.Z_HUFFMAN_ONLY && strategy != exports.Z_RLE && strategy != exports.Z_FIXED && strategy != exports.Z_DEFAULT_STRATEGY) { + throw new TypeError('Invalid strategy: ' + strategy); } - // reuse the free corkReq. - state.corkedRequestsFree.next = corkReq; -} -Object.defineProperty(Writable.prototype, 'destroyed', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - if (this._writableState === undefined) { - return false; - } - return this._writableState.destroyed; - }, - set: function set(value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._writableState) { - return; - } - - // backward compatibility, the user is explicitly - // managing destroyed - this._writableState.destroyed = value; + if (this._level !== level || this._strategy !== strategy) { + var self = this; + this.flush(binding.Z_SYNC_FLUSH, function () { + assert(self._handle, 'zlib binding closed'); + self._handle.params(level, strategy); + if (!self._hadError) { + self._level = level; + self._strategy = strategy; + if (callback) callback(); + } + }); + } else { + ({"env":{"NODE_ENV":"production"}}).nextTick(callback); } -}); -Writable.prototype.destroy = destroyImpl.destroy; -Writable.prototype._undestroy = destroyImpl.undestroy; -Writable.prototype._destroy = function (err, cb) { - cb(err); }; -/***/ }), +Zlib.prototype.reset = function () { + assert(this._handle, 'zlib binding closed'); + return this._handle.reset(); +}; -/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js": -/*!**********************************************************************************************************!*\ - !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js ***! - \**********************************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +// This is the _flush function called by the transform class, +// internally, when the last chunk has been written. +Zlib.prototype._flush = function (callback) { + this._transform(Buffer.alloc(0), '', callback); +}; -"use strict"; +Zlib.prototype.flush = function (kind, callback) { + var _this2 = this; + var ws = this._writableState; -var _Object$setPrototypeO; -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } -function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } -var finished = __webpack_require__(/*! ./end-of-stream */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); -var kLastResolve = Symbol('lastResolve'); -var kLastReject = Symbol('lastReject'); -var kError = Symbol('error'); -var kEnded = Symbol('ended'); -var kLastPromise = Symbol('lastPromise'); -var kHandlePromise = Symbol('handlePromise'); -var kStream = Symbol('stream'); -function createIterResult(value, done) { - return { - value: value, - done: done - }; -} -function readAndResolve(iter) { - var resolve = iter[kLastResolve]; - if (resolve !== null) { - var data = iter[kStream].read(); - // we defer if data is null - // we can be expecting either 'end' or - // 'error' - if (data !== null) { - iter[kLastPromise] = null; - iter[kLastResolve] = null; - iter[kLastReject] = null; - resolve(createIterResult(data, false)); + if (typeof kind === 'function' || kind === undefined && !callback) { + callback = kind; + kind = binding.Z_FULL_FLUSH; + } + + if (ws.ended) { + if (callback) ({"env":{"NODE_ENV":"production"}}).nextTick(callback); + } else if (ws.ending) { + if (callback) this.once('end', callback); + } else if (ws.needDrain) { + if (callback) { + this.once('drain', function () { + return _this2.flush(kind, callback); + }); } + } else { + this._flushFlag = kind; + this.write(Buffer.alloc(0), '', callback); } +}; + +Zlib.prototype.close = function (callback) { + _close(this, callback); + ({"env":{"NODE_ENV":"production"}}).nextTick(emitCloseNT, this); +}; + +function _close(engine, callback) { + if (callback) ({"env":{"NODE_ENV":"production"}}).nextTick(callback); + + // Caller may invoke .close after a zlib error (which will null _handle). + if (!engine._handle) return; + + engine._handle.close(); + engine._handle = null; } -function onReadable(iter) { - // we wait for the next tick, because it might - // emit an error with process.nextTick - ({"env":{"NODE_ENV":"production"}}).nextTick(readAndResolve, iter); -} -function wrapForNext(lastPromise, iter) { - return function (resolve, reject) { - lastPromise.then(function () { - if (iter[kEnded]) { - resolve(createIterResult(undefined, true)); - return; - } - iter[kHandlePromise](resolve, reject); - }, reject); - }; + +function emitCloseNT(self) { + self.emit('close'); } -var AsyncIteratorPrototype = Object.getPrototypeOf(function () {}); -var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = { - get stream() { - return this[kStream]; - }, - next: function next() { - var _this = this; - // if we have detected an error in the meanwhile - // reject straight away - var error = this[kError]; - if (error !== null) { - return Promise.reject(error); - } - if (this[kEnded]) { - return Promise.resolve(createIterResult(undefined, true)); - } - if (this[kStream].destroyed) { - // We need to defer via nextTick because if .destroy(err) is - // called, the error will be emitted via nextTick, and - // we cannot guarantee that there is no error lingering around - // waiting to be emitted. - return new Promise(function (resolve, reject) { - ({"env":{"NODE_ENV":"production"}}).nextTick(function () { - if (_this[kError]) { - reject(_this[kError]); - } else { - resolve(createIterResult(undefined, true)); - } - }); - }); - } - // if we have multiple next() calls - // we will wait for the previous Promise to finish - // this logic is optimized to support for await loops, - // where next() is only called once at a time - var lastPromise = this[kLastPromise]; - var promise; - if (lastPromise) { - promise = new Promise(wrapForNext(lastPromise, this)); - } else { - // fast path needed to support multiple this.push() - // without triggering the next() queue - var data = this[kStream].read(); - if (data !== null) { - return Promise.resolve(createIterResult(data, false)); - } - promise = new Promise(this[kHandlePromise]); +Zlib.prototype._transform = function (chunk, encoding, cb) { + var flushFlag; + var ws = this._writableState; + var ending = ws.ending || ws.ended; + var last = ending && (!chunk || ws.length === chunk.length); + + if (chunk !== null && !Buffer.isBuffer(chunk)) return cb(new Error('invalid input')); + + if (!this._handle) return cb(new Error('zlib binding closed')); + + // If it's the last chunk, or a final flush, we use the Z_FINISH flush flag + // (or whatever flag was provided using opts.finishFlush). + // If it's explicitly flushing at some other time, then we use + // Z_FULL_FLUSH. Otherwise, use Z_NO_FLUSH for maximum compression + // goodness. + if (last) flushFlag = this._finishFlushFlag;else { + flushFlag = this._flushFlag; + // once we've flushed the last of the queue, stop flushing and + // go back to the normal behavior. + if (chunk.length >= ws.length) { + this._flushFlag = this._opts.flush || binding.Z_NO_FLUSH; } - this[kLastPromise] = promise; - return promise; } -}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () { - return this; -}), _defineProperty(_Object$setPrototypeO, "return", function _return() { - var _this2 = this; - // destroy(err, cb) is a private API - // we can guarantee we have that here, because we control the - // Readable class this is attached to - return new Promise(function (resolve, reject) { - _this2[kStream].destroy(null, function (err) { - if (err) { - reject(err); - return; - } - resolve(createIterResult(undefined, true)); - }); - }); -}), _Object$setPrototypeO), AsyncIteratorPrototype); -var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) { - var _Object$create; - var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, { - value: stream, - writable: true - }), _defineProperty(_Object$create, kLastResolve, { - value: null, - writable: true - }), _defineProperty(_Object$create, kLastReject, { - value: null, - writable: true - }), _defineProperty(_Object$create, kError, { - value: null, - writable: true - }), _defineProperty(_Object$create, kEnded, { - value: stream._readableState.endEmitted, - writable: true - }), _defineProperty(_Object$create, kHandlePromise, { - value: function value(resolve, reject) { - var data = iterator[kStream].read(); - if (data) { - iterator[kLastPromise] = null; - iterator[kLastResolve] = null; - iterator[kLastReject] = null; - resolve(createIterResult(data, false)); - } else { - iterator[kLastResolve] = resolve; - iterator[kLastReject] = reject; - } - }, - writable: true - }), _Object$create)); - iterator[kLastPromise] = null; - finished(stream, function (err) { - if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') { - var reject = iterator[kLastReject]; - // reject if we are waiting for data in the Promise - // returned by next() and store the error - if (reject !== null) { - iterator[kLastPromise] = null; - iterator[kLastResolve] = null; - iterator[kLastReject] = null; - reject(err); - } - iterator[kError] = err; - return; - } - var resolve = iterator[kLastResolve]; - if (resolve !== null) { - iterator[kLastPromise] = null; - iterator[kLastResolve] = null; - iterator[kLastReject] = null; - resolve(createIterResult(undefined, true)); - } - iterator[kEnded] = true; - }); - stream.on('readable', onReadable.bind(null, iterator)); - return iterator; + + this._processChunk(chunk, flushFlag, cb); }; -module.exports = createReadableStreamAsyncIterator; -/***/ }), +Zlib.prototype._processChunk = function (chunk, flushFlag, cb) { + var availInBefore = chunk && chunk.length; + var availOutBefore = this._chunkSize - this._offset; + var inOff = 0; -/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js": -/*!*******************************************************************************************************!*\ - !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js ***! - \*******************************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + var self = this; -"use strict"; + var async = typeof cb === 'function'; + if (!async) { + var buffers = []; + var nread = 0; -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } -function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } -var _require = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js"), - Buffer = _require.Buffer; -var _require2 = __webpack_require__(/*! util */ "?cad2"), - inspect = _require2.inspect; -var custom = inspect && inspect.custom || 'inspect'; -function copyBuffer(src, target, offset) { - Buffer.prototype.copy.call(src, target, offset); -} -module.exports = /*#__PURE__*/function () { - function BufferList() { - _classCallCheck(this, BufferList); - this.head = null; - this.tail = null; - this.length = 0; - } - _createClass(BufferList, [{ - key: "push", - value: function push(v) { - var entry = { - data: v, - next: null - }; - if (this.length > 0) this.tail.next = entry;else this.head = entry; - this.tail = entry; - ++this.length; - } - }, { - key: "unshift", - value: function unshift(v) { - var entry = { - data: v, - next: this.head - }; - if (this.length === 0) this.tail = entry; - this.head = entry; - ++this.length; - } - }, { - key: "shift", - value: function shift() { - if (this.length === 0) return; - var ret = this.head.data; - if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; - --this.length; - return ret; - } - }, { - key: "clear", - value: function clear() { - this.head = this.tail = null; - this.length = 0; + var error; + this.on('error', function (er) { + error = er; + }); + + assert(this._handle, 'zlib binding closed'); + do { + var res = this._handle.writeSync(flushFlag, chunk, // in + inOff, // in_off + availInBefore, // in_len + this._buffer, // out + this._offset, //out_off + availOutBefore); // out_len + } while (!this._hadError && callback(res[0], res[1])); + + if (this._hadError) { + throw error; } - }, { - key: "join", - value: function join(s) { - if (this.length === 0) return ''; - var p = this.head; - var ret = '' + p.data; - while (p = p.next) ret += s + p.data; - return ret; + + if (nread >= kMaxLength) { + _close(this); + throw new RangeError(kRangeErrorMessage); } - }, { - key: "concat", - value: function concat(n) { - if (this.length === 0) return Buffer.alloc(0); - var ret = Buffer.allocUnsafe(n >>> 0); - var p = this.head; - var i = 0; - while (p) { - copyBuffer(p.data, ret, i); - i += p.data.length; - p = p.next; - } - return ret; + + var buf = Buffer.concat(buffers, nread); + _close(this); + + return buf; + } + + assert(this._handle, 'zlib binding closed'); + var req = this._handle.write(flushFlag, chunk, // in + inOff, // in_off + availInBefore, // in_len + this._buffer, // out + this._offset, //out_off + availOutBefore); // out_len + + req.buffer = chunk; + req.callback = callback; + + function callback(availInAfter, availOutAfter) { + // When the callback is used in an async write, the callback's + // context is the `req` object that was created. The req object + // is === this._handle, and that's why it's important to null + // out the values after they are done being used. `this._handle` + // can stay in memory longer than the callback and buffer are needed. + if (this) { + this.buffer = null; + this.callback = null; } - // Consumes a specified amount of bytes or characters from the buffered data. - }, { - key: "consume", - value: function consume(n, hasStrings) { - var ret; - if (n < this.head.data.length) { - // `slice` is the same for buffers and strings. - ret = this.head.data.slice(0, n); - this.head.data = this.head.data.slice(n); - } else if (n === this.head.data.length) { - // First chunk is a perfect match. - ret = this.shift(); + if (self._hadError) return; + + var have = availOutBefore - availOutAfter; + assert(have >= 0, 'have should not go down'); + + if (have > 0) { + var out = self._buffer.slice(self._offset, self._offset + have); + self._offset += have; + // serve some output to the consumer. + if (async) { + self.push(out); } else { - // Result spans more than one buffer. - ret = hasStrings ? this._getString(n) : this._getBuffer(n); + buffers.push(out); + nread += out.length; } - return ret; - } - }, { - key: "first", - value: function first() { - return this.head.data; } - // Consumes a specified amount of characters from the buffered data. - }, { - key: "_getString", - value: function _getString(n) { - var p = this.head; - var c = 1; - var ret = p.data; - n -= ret.length; - while (p = p.next) { - var str = p.data; - var nb = n > str.length ? str.length : n; - if (nb === str.length) ret += str;else ret += str.slice(0, n); - n -= nb; - if (n === 0) { - if (nb === str.length) { - ++c; - if (p.next) this.head = p.next;else this.head = this.tail = null; - } else { - this.head = p; - p.data = str.slice(nb); - } - break; - } - ++c; - } - this.length -= c; - return ret; + // exhausted the output buffer, or used all the input create a new one. + if (availOutAfter === 0 || self._offset >= self._chunkSize) { + availOutBefore = self._chunkSize; + self._offset = 0; + self._buffer = Buffer.allocUnsafe(self._chunkSize); } - // Consumes a specified amount of bytes from the buffered data. - }, { - key: "_getBuffer", - value: function _getBuffer(n) { - var ret = Buffer.allocUnsafe(n); - var p = this.head; - var c = 1; - p.data.copy(ret); - n -= p.data.length; - while (p = p.next) { - var buf = p.data; - var nb = n > buf.length ? buf.length : n; - buf.copy(ret, ret.length - n, 0, nb); - n -= nb; - if (n === 0) { - if (nb === buf.length) { - ++c; - if (p.next) this.head = p.next;else this.head = this.tail = null; - } else { - this.head = p; - p.data = buf.slice(nb); - } - break; - } - ++c; - } - this.length -= c; - return ret; - } + if (availOutAfter === 0) { + // Not actually done. Need to reprocess. + // Also, update the availInBefore to the availInAfter value, + // so that if we have to hit it a third (fourth, etc.) time, + // it'll have the correct byte counts. + inOff += availInBefore - availInAfter; + availInBefore = availInAfter; - // Make sure the linked list only shows the minimal necessary information. - }, { - key: custom, - value: function value(_, options) { - return inspect(this, _objectSpread(_objectSpread({}, options), {}, { - // Only inspect one level. - depth: 0, - // It should not recurse. - customInspect: false - })); + if (!async) return true; + + var newReq = self._handle.write(flushFlag, chunk, inOff, availInBefore, self._buffer, self._offset, self._chunkSize); + newReq.callback = callback; // this same function + newReq.buffer = chunk; + return; } - }]); - return BufferList; -}(); + + if (!async) return false; + + // finished with the chunk. + cb(); + } +}; + +util.inherits(Deflate, Zlib); +util.inherits(Inflate, Zlib); +util.inherits(Gzip, Zlib); +util.inherits(Gunzip, Zlib); +util.inherits(DeflateRaw, Zlib); +util.inherits(InflateRaw, Zlib); +util.inherits(Unzip, Zlib); /***/ }), -/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js ***! - \***************************************************************************************************/ -/***/ (function(module) { +/***/ "./node_modules/buffer-xor/index.js": +/*!******************************************!*\ + !*** ./node_modules/buffer-xor/index.js ***! + \******************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; +module.exports = function xor (a, b) { + var length = Math.min(a.length, b.length) + var buffer = new Buffer(length) + + for (var i = 0; i < length; ++i) { + buffer[i] = a[i] ^ b[i] + } + + return buffer +} + + +/***/ }), + +/***/ "./node_modules/buffer/index.js": +/*!**************************************!*\ + !*** ./node_modules/buffer/index.js ***! + \**************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +/* eslint-disable no-proto */ -// undocumented cb() API, needed for core, not for public API -function destroy(err, cb) { - var _this = this; - var readableDestroyed = this._readableState && this._readableState.destroyed; - var writableDestroyed = this._writableState && this._writableState.destroyed; - if (readableDestroyed || writableDestroyed) { - if (cb) { - cb(err); - } else if (err) { - if (!this._writableState) { - ({"env":{"NODE_ENV":"production"}}).nextTick(emitErrorNT, this, err); - } else if (!this._writableState.errorEmitted) { - this._writableState.errorEmitted = true; - ({"env":{"NODE_ENV":"production"}}).nextTick(emitErrorNT, this, err); - } - } - return this; + +const base64 = __webpack_require__(/*! base64-js */ "./node_modules/base64-js/index.js") +const ieee754 = __webpack_require__(/*! ieee754 */ "./node_modules/ieee754/index.js") +const customInspectSymbol = + (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation + ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation + : null + +exports.Buffer = Buffer +exports.SlowBuffer = SlowBuffer +exports.INSPECT_MAX_BYTES = 50 + +const K_MAX_LENGTH = 0x7fffffff +exports.kMaxLength = K_MAX_LENGTH + +/** + * If `Buffer.TYPED_ARRAY_SUPPORT`: + * === true Use Uint8Array implementation (fastest) + * === false Print warning and recommend using `buffer` v4.x which has an Object + * implementation (most compatible, even IE6) + * + * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, + * Opera 11.6+, iOS 4.2+. + * + * We report that the browser does not support typed arrays if the are not subclassable + * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array` + * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support + * for __proto__ and has a buggy typed array implementation. + */ +Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport() + +if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' && + typeof console.error === 'function') { + console.error( + 'This browser lacks typed array (Uint8Array) support which is required by ' + + '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.' + ) +} + +function typedArraySupport () { + // Can typed array instances can be augmented? + try { + const arr = new Uint8Array(1) + const proto = { foo: function () { return 42 } } + Object.setPrototypeOf(proto, Uint8Array.prototype) + Object.setPrototypeOf(arr, proto) + return arr.foo() === 42 + } catch (e) { + return false } +} - // we set destroyed to true before firing error callbacks in order - // to make it re-entrance safe in case destroy() is called within callbacks +Object.defineProperty(Buffer.prototype, 'parent', { + enumerable: true, + get: function () { + if (!Buffer.isBuffer(this)) return undefined + return this.buffer + } +}) - if (this._readableState) { - this._readableState.destroyed = true; +Object.defineProperty(Buffer.prototype, 'offset', { + enumerable: true, + get: function () { + if (!Buffer.isBuffer(this)) return undefined + return this.byteOffset } +}) - // if this is a duplex stream mark the writable part as destroyed as well - if (this._writableState) { - this._writableState.destroyed = true; +function createBuffer (length) { + if (length > K_MAX_LENGTH) { + throw new RangeError('The value "' + length + '" is invalid for option "size"') } - this._destroy(err || null, function (err) { - if (!cb && err) { - if (!_this._writableState) { - ({"env":{"NODE_ENV":"production"}}).nextTick(emitErrorAndCloseNT, _this, err); - } else if (!_this._writableState.errorEmitted) { - _this._writableState.errorEmitted = true; - ({"env":{"NODE_ENV":"production"}}).nextTick(emitErrorAndCloseNT, _this, err); - } else { - ({"env":{"NODE_ENV":"production"}}).nextTick(emitCloseNT, _this); - } - } else if (cb) { - ({"env":{"NODE_ENV":"production"}}).nextTick(emitCloseNT, _this); - cb(err); - } else { - ({"env":{"NODE_ENV":"production"}}).nextTick(emitCloseNT, _this); - } - }); - return this; -} -function emitErrorAndCloseNT(self, err) { - emitErrorNT(self, err); - emitCloseNT(self); + // Return an augmented `Uint8Array` instance + const buf = new Uint8Array(length) + Object.setPrototypeOf(buf, Buffer.prototype) + return buf } -function emitCloseNT(self) { - if (self._writableState && !self._writableState.emitClose) return; - if (self._readableState && !self._readableState.emitClose) return; - self.emit('close'); + +/** + * The Buffer constructor returns instances of `Uint8Array` that have their + * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of + * `Uint8Array`, so the returned instances will have all the node `Buffer` methods + * and the `Uint8Array` methods. Square bracket notation works as expected -- it + * returns a single octet. + * + * The `Uint8Array` prototype remains unmodified. + */ + +function Buffer (arg, encodingOrOffset, length) { + // Common case. + if (typeof arg === 'number') { + if (typeof encodingOrOffset === 'string') { + throw new TypeError( + 'The "string" argument must be of type string. Received type number' + ) + } + return allocUnsafe(arg) + } + return from(arg, encodingOrOffset, length) } -function undestroy() { - if (this._readableState) { - this._readableState.destroyed = false; - this._readableState.reading = false; - this._readableState.ended = false; - this._readableState.endEmitted = false; + +Buffer.poolSize = 8192 // not used by this implementation + +function from (value, encodingOrOffset, length) { + if (typeof value === 'string') { + return fromString(value, encodingOrOffset) } - if (this._writableState) { - this._writableState.destroyed = false; - this._writableState.ended = false; - this._writableState.ending = false; - this._writableState.finalCalled = false; - this._writableState.prefinished = false; - this._writableState.finished = false; - this._writableState.errorEmitted = false; + + if (ArrayBuffer.isView(value)) { + return fromArrayView(value) } -} -function emitErrorNT(self, err) { - self.emit('error', err); -} -function errorOrDestroy(stream, err) { - // We have tests that rely on errors being emitted - // in the same tick, so changing this is semver major. - // For now when you opt-in to autoDestroy we allow - // the error to be emitted nextTick. In a future - // semver major update we should change the default to this. - var rState = stream._readableState; - var wState = stream._writableState; - if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err); -} -module.exports = { - destroy: destroy, - undestroy: undestroy, - errorOrDestroy: errorOrDestroy -}; + if (value == null) { + throw new TypeError( + 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + + 'or Array-like Object. Received type ' + (typeof value) + ) + } -/***/ }), + if (isInstance(value, ArrayBuffer) || + (value && isInstance(value.buffer, ArrayBuffer))) { + return fromArrayBuffer(value, encodingOrOffset, length) + } -/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js": -/*!*********************************************************************************************************!*\ - !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js ***! - \*********************************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + if (typeof SharedArrayBuffer !== 'undefined' && + (isInstance(value, SharedArrayBuffer) || + (value && isInstance(value.buffer, SharedArrayBuffer)))) { + return fromArrayBuffer(value, encodingOrOffset, length) + } -"use strict"; -// Ported from https://github.com/mafintosh/end-of-stream with -// permission from the author, Mathias Buus (@mafintosh). + if (typeof value === 'number') { + throw new TypeError( + 'The "value" argument must not be of type number. Received type number' + ) + } + + const valueOf = value.valueOf && value.valueOf() + if (valueOf != null && valueOf !== value) { + return Buffer.from(valueOf, encodingOrOffset, length) + } + const b = fromObject(value) + if (b) return b + if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null && + typeof value[Symbol.toPrimitive] === 'function') { + return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length) + } -var ERR_STREAM_PREMATURE_CLOSE = (__webpack_require__(/*! ../../../errors */ "./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js").codes.ERR_STREAM_PREMATURE_CLOSE); -function once(callback) { - var called = false; - return function () { - if (called) return; - called = true; - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - callback.apply(this, args); - }; + throw new TypeError( + 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + + 'or Array-like Object. Received type ' + (typeof value) + ) } -function noop() {} -function isRequest(stream) { - return stream.setHeader && typeof stream.abort === 'function'; + +/** + * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError + * if value is a number. + * Buffer.from(str[, encoding]) + * Buffer.from(array) + * Buffer.from(buffer) + * Buffer.from(arrayBuffer[, byteOffset[, length]]) + **/ +Buffer.from = function (value, encodingOrOffset, length) { + return from(value, encodingOrOffset, length) } -function eos(stream, opts, callback) { - if (typeof opts === 'function') return eos(stream, null, opts); - if (!opts) opts = {}; - callback = once(callback || noop); - var readable = opts.readable || opts.readable !== false && stream.readable; - var writable = opts.writable || opts.writable !== false && stream.writable; - var onlegacyfinish = function onlegacyfinish() { - if (!stream.writable) onfinish(); - }; - var writableEnded = stream._writableState && stream._writableState.finished; - var onfinish = function onfinish() { - writable = false; - writableEnded = true; - if (!readable) callback.call(stream); - }; - var readableEnded = stream._readableState && stream._readableState.endEmitted; - var onend = function onend() { - readable = false; - readableEnded = true; - if (!writable) callback.call(stream); - }; - var onerror = function onerror(err) { - callback.call(stream, err); - }; - var onclose = function onclose() { - var err; - if (readable && !readableEnded) { - if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); - return callback.call(stream, err); - } - if (writable && !writableEnded) { - if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); - return callback.call(stream, err); - } - }; - var onrequest = function onrequest() { - stream.req.on('finish', onfinish); - }; - if (isRequest(stream)) { - stream.on('complete', onfinish); - stream.on('abort', onclose); - if (stream.req) onrequest();else stream.on('request', onrequest); - } else if (writable && !stream._writableState) { - // legacy streams - stream.on('end', onlegacyfinish); - stream.on('close', onlegacyfinish); + +// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug: +// https://github.com/feross/buffer/pull/148 +Object.setPrototypeOf(Buffer.prototype, Uint8Array.prototype) +Object.setPrototypeOf(Buffer, Uint8Array) + +function assertSize (size) { + if (typeof size !== 'number') { + throw new TypeError('"size" argument must be of type number') + } else if (size < 0) { + throw new RangeError('The value "' + size + '" is invalid for option "size"') } - stream.on('end', onend); - stream.on('finish', onfinish); - if (opts.error !== false) stream.on('error', onerror); - stream.on('close', onclose); - return function () { - stream.removeListener('complete', onfinish); - stream.removeListener('abort', onclose); - stream.removeListener('request', onrequest); - if (stream.req) stream.req.removeListener('finish', onfinish); - stream.removeListener('end', onlegacyfinish); - stream.removeListener('close', onlegacyfinish); - stream.removeListener('finish', onfinish); - stream.removeListener('end', onend); - stream.removeListener('error', onerror); - stream.removeListener('close', onclose); - }; } -module.exports = eos; -/***/ }), +function alloc (size, fill, encoding) { + assertSize(size) + if (size <= 0) { + return createBuffer(size) + } + if (fill !== undefined) { + // Only pay attention to encoding if it's a string. This + // prevents accidentally sending in a number that would + // be interpreted as a start offset. + return typeof encoding === 'string' + ? createBuffer(size).fill(fill, encoding) + : createBuffer(size).fill(fill) + } + return createBuffer(size) +} -/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js": -/*!********************************************************************************************************!*\ - !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js ***! - \********************************************************************************************************/ -/***/ (function(module) { +/** + * Creates a new filled Buffer instance. + * alloc(size[, fill[, encoding]]) + **/ +Buffer.alloc = function (size, fill, encoding) { + return alloc(size, fill, encoding) +} -module.exports = function () { - throw new Error('Readable.from is not available in the browser') -}; +function allocUnsafe (size) { + assertSize(size) + return createBuffer(size < 0 ? 0 : checked(size) | 0) +} +/** + * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. + * */ +Buffer.allocUnsafe = function (size) { + return allocUnsafe(size) +} +/** + * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. + */ +Buffer.allocUnsafeSlow = function (size) { + return allocUnsafe(size) +} -/***/ }), +function fromString (string, encoding) { + if (typeof encoding !== 'string' || encoding === '') { + encoding = 'utf8' + } -/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js ***! - \****************************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + if (!Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } -"use strict"; -// Ported from https://github.com/mafintosh/pump with -// permission from the author, Mathias Buus (@mafintosh). + const length = byteLength(string, encoding) | 0 + let buf = createBuffer(length) + const actual = buf.write(string, encoding) + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + buf = buf.slice(0, actual) + } -var eos; -function once(callback) { - var called = false; - return function () { - if (called) return; - called = true; - callback.apply(void 0, arguments); - }; -} -var _require$codes = (__webpack_require__(/*! ../../../errors */ "./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js").codes), - ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, - ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; -function noop(err) { - // Rethrow the error if it exists to avoid swallowing it - if (err) throw err; -} -function isRequest(stream) { - return stream.setHeader && typeof stream.abort === 'function'; + return buf } -function destroyer(stream, reading, writing, callback) { - callback = once(callback); - var closed = false; - stream.on('close', function () { - closed = true; - }); - if (eos === undefined) eos = __webpack_require__(/*! ./end-of-stream */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); - eos(stream, { - readable: reading, - writable: writing - }, function (err) { - if (err) return callback(err); - closed = true; - callback(); - }); - var destroyed = false; - return function (err) { - if (closed) return; - if (destroyed) return; - destroyed = true; - // request.destroy just do .end - .abort is what we want - if (isRequest(stream)) return stream.abort(); - if (typeof stream.destroy === 'function') return stream.destroy(); - callback(err || new ERR_STREAM_DESTROYED('pipe')); - }; -} -function call(fn) { - fn(); -} -function pipe(from, to) { - return from.pipe(to); -} -function popCallback(streams) { - if (!streams.length) return noop; - if (typeof streams[streams.length - 1] !== 'function') return noop; - return streams.pop(); -} -function pipeline() { - for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) { - streams[_key] = arguments[_key]; +function fromArrayLike (array) { + const length = array.length < 0 ? 0 : checked(array.length) | 0 + const buf = createBuffer(length) + for (let i = 0; i < length; i += 1) { + buf[i] = array[i] & 255 } - var callback = popCallback(streams); - if (Array.isArray(streams[0])) streams = streams[0]; - if (streams.length < 2) { - throw new ERR_MISSING_ARGS('streams'); + return buf +} + +function fromArrayView (arrayView) { + if (isInstance(arrayView, Uint8Array)) { + const copy = new Uint8Array(arrayView) + return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength) } - var error; - var destroys = streams.map(function (stream, i) { - var reading = i < streams.length - 1; - var writing = i > 0; - return destroyer(stream, reading, writing, function (err) { - if (!error) error = err; - if (err) destroys.forEach(call); - if (reading) return; - destroys.forEach(call); - callback(error); - }); - }); - return streams.reduce(pipe); + return fromArrayLike(arrayView) } -module.exports = pipeline; -/***/ }), +function fromArrayBuffer (array, byteOffset, length) { + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('"offset" is outside of buffer bounds') + } -/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js ***! - \*************************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('"length" is outside of buffer bounds') + } -"use strict"; + let buf + if (byteOffset === undefined && length === undefined) { + buf = new Uint8Array(array) + } else if (length === undefined) { + buf = new Uint8Array(array, byteOffset) + } else { + buf = new Uint8Array(array, byteOffset, length) + } + // Return an augmented `Uint8Array` instance + Object.setPrototypeOf(buf, Buffer.prototype) -var ERR_INVALID_OPT_VALUE = (__webpack_require__(/*! ../../../errors */ "./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js").codes.ERR_INVALID_OPT_VALUE); -function highWaterMarkFrom(options, isDuplex, duplexKey) { - return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; + return buf } -function getHighWaterMark(state, options, duplexKey, isDuplex) { - var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); - if (hwm != null) { - if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { - var name = isDuplex ? duplexKey : 'highWaterMark'; - throw new ERR_INVALID_OPT_VALUE(name, hwm); + +function fromObject (obj) { + if (Buffer.isBuffer(obj)) { + const len = checked(obj.length) | 0 + const buf = createBuffer(len) + + if (buf.length === 0) { + return buf } - return Math.floor(hwm); + + obj.copy(buf, 0, 0, len) + return buf } - // Default value - return state.objectMode ? 16 : 16 * 1024; + if (obj.length !== undefined) { + if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) { + return createBuffer(0) + } + return fromArrayLike(obj) + } + + if (obj.type === 'Buffer' && Array.isArray(obj.data)) { + return fromArrayLike(obj.data) + } } -module.exports = { - getHighWaterMark: getHighWaterMark -}; -/***/ }), +function checked (length) { + // Note: cannot use `length < K_MAX_LENGTH` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= K_MAX_LENGTH) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes') + } + return length | 0 +} -/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js": -/*!**********************************************************************************************************!*\ - !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js ***! - \**********************************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +function SlowBuffer (length) { + if (+length != length) { // eslint-disable-line eqeqeq + length = 0 + } + return Buffer.alloc(+length) +} -module.exports = __webpack_require__(/*! events */ "./node_modules/events/events.js").EventEmitter; +Buffer.isBuffer = function isBuffer (b) { + return b != null && b._isBuffer === true && + b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false +} +Buffer.compare = function compare (a, b) { + if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength) + if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength) + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + throw new TypeError( + 'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array' + ) + } -/***/ }), + if (a === b) return 0 -/***/ "./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js ***! - \***************************************************************************************/ -/***/ (function(module, exports, __webpack_require__) { + let x = a.length + let y = b.length -exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js"); -exports.Stream = exports; -exports.Readable = exports; -exports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js"); -exports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js"); -exports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js"); -exports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js"); -exports.finished = __webpack_require__(/*! ./lib/internal/streams/end-of-stream.js */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); -exports.pipeline = __webpack_require__(/*! ./lib/internal/streams/pipeline.js */ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js"); + for (let i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i] + y = b[i] + break + } + } + if (x < y) return -1 + if (y < x) return 1 + return 0 +} -/***/ }), +Buffer.isEncoding = function isEncoding (encoding) { + switch (String(encoding).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'latin1': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return true + default: + return false + } +} -/***/ "./node_modules/browserify-zlib/lib/binding.js": -/*!*****************************************************!*\ - !*** ./node_modules/browserify-zlib/lib/binding.js ***! - \*****************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { +Buffer.concat = function concat (list, length) { + if (!Array.isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } -"use strict"; -/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; + if (list.length === 0) { + return Buffer.alloc(0) + } -/* eslint camelcase: "off" */ + let i + if (length === undefined) { + length = 0 + for (i = 0; i < list.length; ++i) { + length += list[i].length + } + } -var assert = __webpack_require__(/*! assert */ "./node_modules/assert/build/assert.js"); + const buffer = Buffer.allocUnsafe(length) + let pos = 0 + for (i = 0; i < list.length; ++i) { + let buf = list[i] + if (isInstance(buf, Uint8Array)) { + if (pos + buf.length > buffer.length) { + if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf) + buf.copy(buffer, pos) + } else { + Uint8Array.prototype.set.call( + buffer, + buf, + pos + ) + } + } else if (!Buffer.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } else { + buf.copy(buffer, pos) + } + pos += buf.length + } + return buffer +} -var Zstream = __webpack_require__(/*! pako/lib/zlib/zstream */ "./node_modules/pako/lib/zlib/zstream.js"); -var zlib_deflate = __webpack_require__(/*! pako/lib/zlib/deflate.js */ "./node_modules/pako/lib/zlib/deflate.js"); -var zlib_inflate = __webpack_require__(/*! pako/lib/zlib/inflate.js */ "./node_modules/pako/lib/zlib/inflate.js"); -var constants = __webpack_require__(/*! pako/lib/zlib/constants */ "./node_modules/pako/lib/zlib/constants.js"); +function byteLength (string, encoding) { + if (Buffer.isBuffer(string)) { + return string.length + } + if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) { + return string.byteLength + } + if (typeof string !== 'string') { + throw new TypeError( + 'The "string" argument must be one of type string, Buffer, or ArrayBuffer. ' + + 'Received type ' + typeof string + ) + } -for (var key in constants) { - exports[key] = constants[key]; + const len = string.length + const mustMatch = (arguments.length > 2 && arguments[2] === true) + if (!mustMatch && len === 0) return 0 + + // Use a for loop to avoid recursion + let loweredCase = false + for (;;) { + switch (encoding) { + case 'ascii': + case 'latin1': + case 'binary': + return len + case 'utf8': + case 'utf-8': + return utf8ToBytes(string).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2 + case 'hex': + return len >>> 1 + case 'base64': + return base64ToBytes(string).length + default: + if (loweredCase) { + return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8 + } + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } } +Buffer.byteLength = byteLength -// zlib modes -exports.NONE = 0; -exports.DEFLATE = 1; -exports.INFLATE = 2; -exports.GZIP = 3; -exports.GUNZIP = 4; -exports.DEFLATERAW = 5; -exports.INFLATERAW = 6; -exports.UNZIP = 7; +function slowToString (encoding, start, end) { + let loweredCase = false -var GZIP_HEADER_ID1 = 0x1f; -var GZIP_HEADER_ID2 = 0x8b; + // No need to verify that "this.length <= MAX_UINT32" since it's a read-only + // property of a typed array. -/** - * Emulate Node's zlib C++ layer for use by the JS layer in index.js - */ -function Zlib(mode) { - if (typeof mode !== 'number' || mode < exports.DEFLATE || mode > exports.UNZIP) { - throw new TypeError('Bad argument'); + // This behaves neither like String nor Uint8Array in that we set start/end + // to their upper/lower bounds if the value passed is out of range. + // undefined is handled specially as per ECMA-262 6th Edition, + // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. + if (start === undefined || start < 0) { + start = 0 + } + // Return early if start > this.length. Done here to prevent potential uint32 + // coercion fail below. + if (start > this.length) { + return '' } - this.dictionary = null; - this.err = 0; - this.flush = 0; - this.init_done = false; - this.level = 0; - this.memLevel = 0; - this.mode = mode; - this.strategy = 0; - this.windowBits = 0; - this.write_in_progress = false; - this.pending_close = false; - this.gzip_id_bytes_read = 0; -} - -Zlib.prototype.close = function () { - if (this.write_in_progress) { - this.pending_close = true; - return; + if (end === undefined || end > this.length) { + end = this.length } - this.pending_close = false; + if (end <= 0) { + return '' + } - assert(this.init_done, 'close before init'); - assert(this.mode <= exports.UNZIP); + // Force coercion to uint32. This will also coerce falsey/NaN values to 0. + end >>>= 0 + start >>>= 0 - if (this.mode === exports.DEFLATE || this.mode === exports.GZIP || this.mode === exports.DEFLATERAW) { - zlib_deflate.deflateEnd(this.strm); - } else if (this.mode === exports.INFLATE || this.mode === exports.GUNZIP || this.mode === exports.INFLATERAW || this.mode === exports.UNZIP) { - zlib_inflate.inflateEnd(this.strm); + if (end <= start) { + return '' } - this.mode = exports.NONE; + if (!encoding) encoding = 'utf8' - this.dictionary = null; -}; + while (true) { + switch (encoding) { + case 'hex': + return hexSlice(this, start, end) -Zlib.prototype.write = function (flush, input, in_off, in_len, out, out_off, out_len) { - return this._write(true, flush, input, in_off, in_len, out, out_off, out_len); -}; + case 'utf8': + case 'utf-8': + return utf8Slice(this, start, end) -Zlib.prototype.writeSync = function (flush, input, in_off, in_len, out, out_off, out_len) { - return this._write(false, flush, input, in_off, in_len, out, out_off, out_len); -}; + case 'ascii': + return asciiSlice(this, start, end) -Zlib.prototype._write = function (async, flush, input, in_off, in_len, out, out_off, out_len) { - assert.equal(arguments.length, 8); + case 'latin1': + case 'binary': + return latin1Slice(this, start, end) - assert(this.init_done, 'write before init'); - assert(this.mode !== exports.NONE, 'already finalized'); - assert.equal(false, this.write_in_progress, 'write already in progress'); - assert.equal(false, this.pending_close, 'close is pending'); + case 'base64': + return base64Slice(this, start, end) - this.write_in_progress = true; + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return utf16leSlice(this, start, end) - assert.equal(false, flush === undefined, 'must provide flush value'); + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = (encoding + '').toLowerCase() + loweredCase = true + } + } +} - this.write_in_progress = true; +// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package) +// to detect a Buffer instance. It's not possible to use `instanceof Buffer` +// reliably in a browserify context because there could be multiple different +// copies of the 'buffer' package in use. This method works even for Buffer +// instances that were created from another copy of the `buffer` package. +// See: https://github.com/feross/buffer/issues/154 +Buffer.prototype._isBuffer = true - if (flush !== exports.Z_NO_FLUSH && flush !== exports.Z_PARTIAL_FLUSH && flush !== exports.Z_SYNC_FLUSH && flush !== exports.Z_FULL_FLUSH && flush !== exports.Z_FINISH && flush !== exports.Z_BLOCK) { - throw new Error('Invalid flush value'); - } +function swap (b, n, m) { + const i = b[n] + b[n] = b[m] + b[m] = i +} - if (input == null) { - input = Buffer.alloc(0); - in_len = 0; - in_off = 0; +Buffer.prototype.swap16 = function swap16 () { + const len = this.length + if (len % 2 !== 0) { + throw new RangeError('Buffer size must be a multiple of 16-bits') } + for (let i = 0; i < len; i += 2) { + swap(this, i, i + 1) + } + return this +} - this.strm.avail_in = in_len; - this.strm.input = input; - this.strm.next_in = in_off; - this.strm.avail_out = out_len; - this.strm.output = out; - this.strm.next_out = out_off; - this.flush = flush; - - if (!async) { - // sync version - this._process(); +Buffer.prototype.swap32 = function swap32 () { + const len = this.length + if (len % 4 !== 0) { + throw new RangeError('Buffer size must be a multiple of 32-bits') + } + for (let i = 0; i < len; i += 4) { + swap(this, i, i + 3) + swap(this, i + 1, i + 2) + } + return this +} - if (this._checkError()) { - return this._afterSync(); - } - return; +Buffer.prototype.swap64 = function swap64 () { + const len = this.length + if (len % 8 !== 0) { + throw new RangeError('Buffer size must be a multiple of 64-bits') + } + for (let i = 0; i < len; i += 8) { + swap(this, i, i + 7) + swap(this, i + 1, i + 6) + swap(this, i + 2, i + 5) + swap(this, i + 3, i + 4) } + return this +} - // async version - var self = this; - ({"env":{"NODE_ENV":"production"}}).nextTick(function () { - self._process(); - self._after(); - }); +Buffer.prototype.toString = function toString () { + const length = this.length + if (length === 0) return '' + if (arguments.length === 0) return utf8Slice(this, 0, length) + return slowToString.apply(this, arguments) +} - return this; -}; +Buffer.prototype.toLocaleString = Buffer.prototype.toString -Zlib.prototype._afterSync = function () { - var avail_out = this.strm.avail_out; - var avail_in = this.strm.avail_in; +Buffer.prototype.equals = function equals (b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return true + return Buffer.compare(this, b) === 0 +} - this.write_in_progress = false; +Buffer.prototype.inspect = function inspect () { + let str = '' + const max = exports.INSPECT_MAX_BYTES + str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim() + if (this.length > max) str += ' ... ' + return '' +} +if (customInspectSymbol) { + Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect +} - return [avail_in, avail_out]; -}; +Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { + if (isInstance(target, Uint8Array)) { + target = Buffer.from(target, target.offset, target.byteLength) + } + if (!Buffer.isBuffer(target)) { + throw new TypeError( + 'The "target" argument must be one of type Buffer or Uint8Array. ' + + 'Received type ' + (typeof target) + ) + } -Zlib.prototype._process = function () { - var next_expected_header_byte = null; + if (start === undefined) { + start = 0 + } + if (end === undefined) { + end = target ? target.length : 0 + } + if (thisStart === undefined) { + thisStart = 0 + } + if (thisEnd === undefined) { + thisEnd = this.length + } - // If the avail_out is left at 0, then it means that it ran out - // of room. If there was avail_out left over, then it means - // that all of the input was consumed. - switch (this.mode) { - case exports.DEFLATE: - case exports.GZIP: - case exports.DEFLATERAW: - this.err = zlib_deflate.deflate(this.strm, this.flush); - break; - case exports.UNZIP: - if (this.strm.avail_in > 0) { - next_expected_header_byte = this.strm.next_in; - } + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError('out of range index') + } - switch (this.gzip_id_bytes_read) { - case 0: - if (next_expected_header_byte === null) { - break; - } + if (thisStart >= thisEnd && start >= end) { + return 0 + } + if (thisStart >= thisEnd) { + return -1 + } + if (start >= end) { + return 1 + } - if (this.strm.input[next_expected_header_byte] === GZIP_HEADER_ID1) { - this.gzip_id_bytes_read = 1; - next_expected_header_byte++; + start >>>= 0 + end >>>= 0 + thisStart >>>= 0 + thisEnd >>>= 0 - if (this.strm.avail_in === 1) { - // The only available byte was already read. - break; - } - } else { - this.mode = exports.INFLATE; - break; - } + if (this === target) return 0 - // fallthrough - case 1: - if (next_expected_header_byte === null) { - break; - } + let x = thisEnd - thisStart + let y = end - start + const len = Math.min(x, y) - if (this.strm.input[next_expected_header_byte] === GZIP_HEADER_ID2) { - this.gzip_id_bytes_read = 2; - this.mode = exports.GUNZIP; - } else { - // There is no actual difference between INFLATE and INFLATERAW - // (after initialization). - this.mode = exports.INFLATE; - } + const thisCopy = this.slice(thisStart, thisEnd) + const targetCopy = target.slice(start, end) - break; - default: - throw new Error('invalid number of gzip magic number bytes read'); - } + for (let i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i] + y = targetCopy[i] + break + } + } - // fallthrough - case exports.INFLATE: - case exports.GUNZIP: - case exports.INFLATERAW: - this.err = zlib_inflate.inflate(this.strm, this.flush + if (x < y) return -1 + if (y < x) return 1 + return 0 +} - // If data was encoded with dictionary - );if (this.err === exports.Z_NEED_DICT && this.dictionary) { - // Load it - this.err = zlib_inflate.inflateSetDictionary(this.strm, this.dictionary); - if (this.err === exports.Z_OK) { - // And try to decode again - this.err = zlib_inflate.inflate(this.strm, this.flush); - } else if (this.err === exports.Z_DATA_ERROR) { - // Both inflateSetDictionary() and inflate() return Z_DATA_ERROR. - // Make it possible for After() to tell a bad dictionary from bad - // input. - this.err = exports.Z_NEED_DICT; - } - } - while (this.strm.avail_in > 0 && this.mode === exports.GUNZIP && this.err === exports.Z_STREAM_END && this.strm.next_in[0] !== 0x00) { - // Bytes remain in input buffer. Perhaps this is another compressed - // member in the same archive, or just trailing garbage. - // Trailing zero bytes are okay, though, since they are frequently - // used for padding. +// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, +// OR the last index of `val` in `buffer` at offset <= `byteOffset`. +// +// Arguments: +// - buffer - a Buffer to search +// - val - a string, Buffer, or number +// - byteOffset - an index into `buffer`; will be clamped to an int32 +// - encoding - an optional encoding, relevant is val is a string +// - dir - true for indexOf, false for lastIndexOf +function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { + // Empty buffer means no match + if (buffer.length === 0) return -1 - this.reset(); - this.err = zlib_inflate.inflate(this.strm, this.flush); - } - break; - default: - throw new Error('Unknown mode ' + this.mode); + // Normalize byteOffset + if (typeof byteOffset === 'string') { + encoding = byteOffset + byteOffset = 0 + } else if (byteOffset > 0x7fffffff) { + byteOffset = 0x7fffffff + } else if (byteOffset < -0x80000000) { + byteOffset = -0x80000000 } -}; - -Zlib.prototype._checkError = function () { - // Acceptable error states depend on the type of zlib stream. - switch (this.err) { - case exports.Z_OK: - case exports.Z_BUF_ERROR: - if (this.strm.avail_out !== 0 && this.flush === exports.Z_FINISH) { - this._error('unexpected end of file'); - return false; - } - break; - case exports.Z_STREAM_END: - // normal statuses, not fatal - break; - case exports.Z_NEED_DICT: - if (this.dictionary == null) { - this._error('Missing dictionary'); - } else { - this._error('Bad dictionary'); - } - return false; - default: - // something else. - this._error('Zlib error'); - return false; + byteOffset = +byteOffset // Coerce to Number. + if (numberIsNaN(byteOffset)) { + // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer + byteOffset = dir ? 0 : (buffer.length - 1) } - return true; -}; + // Normalize byteOffset: negative offsets start from the end of the buffer + if (byteOffset < 0) byteOffset = buffer.length + byteOffset + if (byteOffset >= buffer.length) { + if (dir) return -1 + else byteOffset = buffer.length - 1 + } else if (byteOffset < 0) { + if (dir) byteOffset = 0 + else return -1 + } -Zlib.prototype._after = function () { - if (!this._checkError()) { - return; + // Normalize val + if (typeof val === 'string') { + val = Buffer.from(val, encoding) } - var avail_out = this.strm.avail_out; - var avail_in = this.strm.avail_in; + // Finally, search either indexOf (if dir is true) or lastIndexOf + if (Buffer.isBuffer(val)) { + // Special case: looking for empty string/buffer always fails + if (val.length === 0) { + return -1 + } + return arrayIndexOf(buffer, val, byteOffset, encoding, dir) + } else if (typeof val === 'number') { + val = val & 0xFF // Search for a byte value [0-255] + if (typeof Uint8Array.prototype.indexOf === 'function') { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) + } + } + return arrayIndexOf(buffer, [val], byteOffset, encoding, dir) + } - this.write_in_progress = false; + throw new TypeError('val must be string, number or Buffer') +} - // call the write() cb - this.callback(avail_in, avail_out); +function arrayIndexOf (arr, val, byteOffset, encoding, dir) { + let indexSize = 1 + let arrLength = arr.length + let valLength = val.length - if (this.pending_close) { - this.close(); + if (encoding !== undefined) { + encoding = String(encoding).toLowerCase() + if (encoding === 'ucs2' || encoding === 'ucs-2' || + encoding === 'utf16le' || encoding === 'utf-16le') { + if (arr.length < 2 || val.length < 2) { + return -1 + } + indexSize = 2 + arrLength /= 2 + valLength /= 2 + byteOffset /= 2 + } } -}; -Zlib.prototype._error = function (message) { - if (this.strm.msg) { - message = this.strm.msg; + function read (buf, i) { + if (indexSize === 1) { + return buf[i] + } else { + return buf.readUInt16BE(i * indexSize) + } } - this.onerror(message, this.err - // no hope of rescue. - );this.write_in_progress = false; - if (this.pending_close) { - this.close(); + let i + if (dir) { + let foundIndex = -1 + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize + } else { + if (foundIndex !== -1) i -= i - foundIndex + foundIndex = -1 + } + } + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength + for (i = byteOffset; i >= 0; i--) { + let found = true + for (let j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false + break + } + } + if (found) return i + } } -}; -Zlib.prototype.init = function (windowBits, level, memLevel, strategy, dictionary) { - assert(arguments.length === 4 || arguments.length === 5, 'init(windowBits, level, memLevel, strategy, [dictionary])'); + return -1 +} - assert(windowBits >= 8 && windowBits <= 15, 'invalid windowBits'); - assert(level >= -1 && level <= 9, 'invalid compression level'); +Buffer.prototype.includes = function includes (val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1 +} - assert(memLevel >= 1 && memLevel <= 9, 'invalid memlevel'); +Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true) +} - assert(strategy === exports.Z_FILTERED || strategy === exports.Z_HUFFMAN_ONLY || strategy === exports.Z_RLE || strategy === exports.Z_FIXED || strategy === exports.Z_DEFAULT_STRATEGY, 'invalid strategy'); +Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false) +} - this._init(level, windowBits, memLevel, strategy, dictionary); - this._setDictionary(); -}; +function hexWrite (buf, string, offset, length) { + offset = Number(offset) || 0 + const remaining = buf.length - offset + if (!length) { + length = remaining + } else { + length = Number(length) + if (length > remaining) { + length = remaining + } + } -Zlib.prototype.params = function () { - throw new Error('deflateParams Not supported'); -}; + const strLen = string.length -Zlib.prototype.reset = function () { - this._reset(); - this._setDictionary(); -}; + if (length > strLen / 2) { + length = strLen / 2 + } + let i + for (i = 0; i < length; ++i) { + const parsed = parseInt(string.substr(i * 2, 2), 16) + if (numberIsNaN(parsed)) return i + buf[offset + i] = parsed + } + return i +} -Zlib.prototype._init = function (level, windowBits, memLevel, strategy, dictionary) { - this.level = level; - this.windowBits = windowBits; - this.memLevel = memLevel; - this.strategy = strategy; +function utf8Write (buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) +} - this.flush = exports.Z_NO_FLUSH; +function asciiWrite (buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length) +} - this.err = exports.Z_OK; +function base64Write (buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length) +} - if (this.mode === exports.GZIP || this.mode === exports.GUNZIP) { - this.windowBits += 16; - } +function ucs2Write (buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) +} - if (this.mode === exports.UNZIP) { - this.windowBits += 32; +Buffer.prototype.write = function write (string, offset, length, encoding) { + // Buffer#write(string) + if (offset === undefined) { + encoding = 'utf8' + length = this.length + offset = 0 + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + encoding = offset + length = this.length + offset = 0 + // Buffer#write(string, offset[, length][, encoding]) + } else if (isFinite(offset)) { + offset = offset >>> 0 + if (isFinite(length)) { + length = length >>> 0 + if (encoding === undefined) encoding = 'utf8' + } else { + encoding = length + length = undefined + } + } else { + throw new Error( + 'Buffer.write(string, encoding, offset[, length]) is no longer supported' + ) } - if (this.mode === exports.DEFLATERAW || this.mode === exports.INFLATERAW) { - this.windowBits = -1 * this.windowBits; + const remaining = this.length - offset + if (length === undefined || length > remaining) length = remaining + + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds') } - this.strm = new Zstream(); + if (!encoding) encoding = 'utf8' - switch (this.mode) { - case exports.DEFLATE: - case exports.GZIP: - case exports.DEFLATERAW: - this.err = zlib_deflate.deflateInit2(this.strm, this.level, exports.Z_DEFLATED, this.windowBits, this.memLevel, this.strategy); - break; - case exports.INFLATE: - case exports.GUNZIP: - case exports.INFLATERAW: - case exports.UNZIP: - this.err = zlib_inflate.inflateInit2(this.strm, this.windowBits); - break; - default: - throw new Error('Unknown mode ' + this.mode); - } + let loweredCase = false + for (;;) { + switch (encoding) { + case 'hex': + return hexWrite(this, string, offset, length) - if (this.err !== exports.Z_OK) { - this._error('Init error'); - } + case 'utf8': + case 'utf-8': + return utf8Write(this, string, offset, length) - this.dictionary = dictionary; + case 'ascii': + case 'latin1': + case 'binary': + return asciiWrite(this, string, offset, length) - this.write_in_progress = false; - this.init_done = true; -}; + case 'base64': + // Warning: maxLength not taken into account in base64Write + return base64Write(this, string, offset, length) -Zlib.prototype._setDictionary = function () { - if (this.dictionary == null) { - return; + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return ucs2Write(this, string, offset, length) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } } +} - this.err = exports.Z_OK; - - switch (this.mode) { - case exports.DEFLATE: - case exports.DEFLATERAW: - this.err = zlib_deflate.deflateSetDictionary(this.strm, this.dictionary); - break; - default: - break; +Buffer.prototype.toJSON = function toJSON () { + return { + type: 'Buffer', + data: Array.prototype.slice.call(this._arr || this, 0) } +} - if (this.err !== exports.Z_OK) { - this._error('Failed to set dictionary'); +function base64Slice (buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf) + } else { + return base64.fromByteArray(buf.slice(start, end)) } -}; +} -Zlib.prototype._reset = function () { - this.err = exports.Z_OK; +function utf8Slice (buf, start, end) { + end = Math.min(buf.length, end) + const res = [] - switch (this.mode) { - case exports.DEFLATE: - case exports.DEFLATERAW: - case exports.GZIP: - this.err = zlib_deflate.deflateReset(this.strm); - break; - case exports.INFLATE: - case exports.INFLATERAW: - case exports.GUNZIP: - this.err = zlib_inflate.inflateReset(this.strm); - break; - default: - break; - } + let i = start + while (i < end) { + const firstByte = buf[i] + let codePoint = null + let bytesPerSequence = (firstByte > 0xEF) + ? 4 + : (firstByte > 0xDF) + ? 3 + : (firstByte > 0xBF) + ? 2 + : 1 - if (this.err !== exports.Z_OK) { - this._error('Failed to reset stream'); - } -}; + if (i + bytesPerSequence <= end) { + let secondByte, thirdByte, fourthByte, tempCodePoint -exports.Zlib = Zlib; + switch (bytesPerSequence) { + case 1: + if (firstByte < 0x80) { + codePoint = firstByte + } + break + case 2: + secondByte = buf[i + 1] + if ((secondByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) + if (tempCodePoint > 0x7F) { + codePoint = tempCodePoint + } + } + break + case 3: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) + if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { + codePoint = tempCodePoint + } + } + break + case 4: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + fourthByte = buf[i + 3] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) + if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { + codePoint = tempCodePoint + } + } + } + } -/***/ }), + if (codePoint === null) { + // we did not generate a valid codePoint so insert a + // replacement char (U+FFFD) and advance only 1 byte + codePoint = 0xFFFD + bytesPerSequence = 1 + } else if (codePoint > 0xFFFF) { + // encode to utf16 (surrogate pair dance) + codePoint -= 0x10000 + res.push(codePoint >>> 10 & 0x3FF | 0xD800) + codePoint = 0xDC00 | codePoint & 0x3FF + } -/***/ "./node_modules/browserify-zlib/lib/index.js": -/*!***************************************************!*\ - !*** ./node_modules/browserify-zlib/lib/index.js ***! - \***************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + res.push(codePoint) + i += bytesPerSequence + } -"use strict"; + return decodeCodePointsArray(res) +} +// Based on http://stackoverflow.com/a/22747272/680742, the browser with +// the lowest limit is Chrome, with 0x10000 args. +// We go 1 magnitude less, for safety +const MAX_ARGUMENTS_LENGTH = 0x1000 -var Buffer = (__webpack_require__(/*! buffer */ "./node_modules/buffer/index.js").Buffer); -var Transform = (__webpack_require__(/*! stream */ "./node_modules/stream-browserify/index.js").Transform); -var binding = __webpack_require__(/*! ./binding */ "./node_modules/browserify-zlib/lib/binding.js"); -var util = __webpack_require__(/*! util */ "./node_modules/util/util.js"); -var assert = (__webpack_require__(/*! assert */ "./node_modules/assert/build/assert.js").ok); -var kMaxLength = (__webpack_require__(/*! buffer */ "./node_modules/buffer/index.js").kMaxLength); -var kRangeErrorMessage = 'Cannot create final Buffer. It would be larger ' + 'than 0x' + kMaxLength.toString(16) + ' bytes'; +function decodeCodePointsArray (codePoints) { + const len = codePoints.length + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints) // avoid extra slice() + } -// zlib doesn't provide these, so kludge them in following the same -// const naming scheme zlib uses. -binding.Z_MIN_WINDOWBITS = 8; -binding.Z_MAX_WINDOWBITS = 15; -binding.Z_DEFAULT_WINDOWBITS = 15; + // Decode in chunks to avoid "call stack size exceeded". + let res = '' + let i = 0 + while (i < len) { + res += String.fromCharCode.apply( + String, + codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) + ) + } + return res +} -// fewer than 64 bytes per chunk is stupid. -// technically it could work with as few as 8, but even 64 bytes -// is absurdly low. Usually a MB or more is best. -binding.Z_MIN_CHUNK = 64; -binding.Z_MAX_CHUNK = Infinity; -binding.Z_DEFAULT_CHUNK = 16 * 1024; +function asciiSlice (buf, start, end) { + let ret = '' + end = Math.min(buf.length, end) -binding.Z_MIN_MEMLEVEL = 1; -binding.Z_MAX_MEMLEVEL = 9; -binding.Z_DEFAULT_MEMLEVEL = 8; + for (let i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 0x7F) + } + return ret +} -binding.Z_MIN_LEVEL = -1; -binding.Z_MAX_LEVEL = 9; -binding.Z_DEFAULT_LEVEL = binding.Z_DEFAULT_COMPRESSION; +function latin1Slice (buf, start, end) { + let ret = '' + end = Math.min(buf.length, end) -// expose all the zlib constants -var bkeys = Object.keys(binding); -for (var bk = 0; bk < bkeys.length; bk++) { - var bkey = bkeys[bk]; - if (bkey.match(/^Z/)) { - Object.defineProperty(exports, bkey, { - enumerable: true, value: binding[bkey], writable: false - }); + for (let i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]) } + return ret } -// translation table for return codes. -var codes = { - Z_OK: binding.Z_OK, - Z_STREAM_END: binding.Z_STREAM_END, - Z_NEED_DICT: binding.Z_NEED_DICT, - Z_ERRNO: binding.Z_ERRNO, - Z_STREAM_ERROR: binding.Z_STREAM_ERROR, - Z_DATA_ERROR: binding.Z_DATA_ERROR, - Z_MEM_ERROR: binding.Z_MEM_ERROR, - Z_BUF_ERROR: binding.Z_BUF_ERROR, - Z_VERSION_ERROR: binding.Z_VERSION_ERROR -}; +function hexSlice (buf, start, end) { + const len = buf.length -var ckeys = Object.keys(codes); -for (var ck = 0; ck < ckeys.length; ck++) { - var ckey = ckeys[ck]; - codes[codes[ckey]] = ckey; + if (!start || start < 0) start = 0 + if (!end || end < 0 || end > len) end = len + + let out = '' + for (let i = start; i < end; ++i) { + out += hexSliceLookupTable[buf[i]] + } + return out } -Object.defineProperty(exports, "codes", ({ - enumerable: true, value: Object.freeze(codes), writable: false -})); +function utf16leSlice (buf, start, end) { + const bytes = buf.slice(start, end) + let res = '' + // If bytes.length is odd, the last 8 bits must be ignored (same as node.js) + for (let i = 0; i < bytes.length - 1; i += 2) { + res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256)) + } + return res +} -exports.Deflate = Deflate; -exports.Inflate = Inflate; -exports.Gzip = Gzip; -exports.Gunzip = Gunzip; -exports.DeflateRaw = DeflateRaw; -exports.InflateRaw = InflateRaw; -exports.Unzip = Unzip; +Buffer.prototype.slice = function slice (start, end) { + const len = this.length + start = ~~start + end = end === undefined ? len : ~~end -exports.createDeflate = function (o) { - return new Deflate(o); -}; + if (start < 0) { + start += len + if (start < 0) start = 0 + } else if (start > len) { + start = len + } -exports.createInflate = function (o) { - return new Inflate(o); -}; + if (end < 0) { + end += len + if (end < 0) end = 0 + } else if (end > len) { + end = len + } -exports.createDeflateRaw = function (o) { - return new DeflateRaw(o); -}; + if (end < start) end = start -exports.createInflateRaw = function (o) { - return new InflateRaw(o); -}; + const newBuf = this.subarray(start, end) + // Return an augmented `Uint8Array` instance + Object.setPrototypeOf(newBuf, Buffer.prototype) -exports.createGzip = function (o) { - return new Gzip(o); -}; + return newBuf +} -exports.createGunzip = function (o) { - return new Gunzip(o); -}; +/* + * Need to make sure that buffer isn't trying to write out of bounds. + */ +function checkOffset (offset, ext, length) { + if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') + if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') +} -exports.createUnzip = function (o) { - return new Unzip(o); -}; +Buffer.prototype.readUintLE = +Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) -// Convenience methods. -// compress/decompress a string or buffer in one step. -exports.deflate = function (buffer, opts, callback) { - if (typeof opts === 'function') { - callback = opts; - opts = {}; + let val = this[offset] + let mul = 1 + let i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul } - return zlibBuffer(new Deflate(opts), buffer, callback); -}; -exports.deflateSync = function (buffer, opts) { - return zlibBufferSync(new Deflate(opts), buffer); -}; + return val +} -exports.gzip = function (buffer, opts, callback) { - if (typeof opts === 'function') { - callback = opts; - opts = {}; +Buffer.prototype.readUintBE = +Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) { + checkOffset(offset, byteLength, this.length) } - return zlibBuffer(new Gzip(opts), buffer, callback); -}; - -exports.gzipSync = function (buffer, opts) { - return zlibBufferSync(new Gzip(opts), buffer); -}; -exports.deflateRaw = function (buffer, opts, callback) { - if (typeof opts === 'function') { - callback = opts; - opts = {}; + let val = this[offset + --byteLength] + let mul = 1 + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul } - return zlibBuffer(new DeflateRaw(opts), buffer, callback); -}; -exports.deflateRawSync = function (buffer, opts) { - return zlibBufferSync(new DeflateRaw(opts), buffer); -}; + return val +} -exports.unzip = function (buffer, opts, callback) { - if (typeof opts === 'function') { - callback = opts; - opts = {}; - } - return zlibBuffer(new Unzip(opts), buffer, callback); -}; +Buffer.prototype.readUint8 = +Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 1, this.length) + return this[offset] +} -exports.unzipSync = function (buffer, opts) { - return zlibBufferSync(new Unzip(opts), buffer); -}; +Buffer.prototype.readUint16LE = +Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 2, this.length) + return this[offset] | (this[offset + 1] << 8) +} -exports.inflate = function (buffer, opts, callback) { - if (typeof opts === 'function') { - callback = opts; - opts = {}; - } - return zlibBuffer(new Inflate(opts), buffer, callback); -}; +Buffer.prototype.readUint16BE = +Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 2, this.length) + return (this[offset] << 8) | this[offset + 1] +} -exports.inflateSync = function (buffer, opts) { - return zlibBufferSync(new Inflate(opts), buffer); -}; +Buffer.prototype.readUint32LE = +Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) -exports.gunzip = function (buffer, opts, callback) { - if (typeof opts === 'function') { - callback = opts; - opts = {}; - } - return zlibBuffer(new Gunzip(opts), buffer, callback); -}; + return ((this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16)) + + (this[offset + 3] * 0x1000000) +} -exports.gunzipSync = function (buffer, opts) { - return zlibBufferSync(new Gunzip(opts), buffer); -}; +Buffer.prototype.readUint32BE = +Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) -exports.inflateRaw = function (buffer, opts, callback) { - if (typeof opts === 'function') { - callback = opts; - opts = {}; - } - return zlibBuffer(new InflateRaw(opts), buffer, callback); -}; + return (this[offset] * 0x1000000) + + ((this[offset + 1] << 16) | + (this[offset + 2] << 8) | + this[offset + 3]) +} -exports.inflateRawSync = function (buffer, opts) { - return zlibBufferSync(new InflateRaw(opts), buffer); -}; +Buffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) { + offset = offset >>> 0 + validateNumber(offset, 'offset') + const first = this[offset] + const last = this[offset + 7] + if (first === undefined || last === undefined) { + boundsError(offset, this.length - 8) + } -function zlibBuffer(engine, buffer, callback) { - var buffers = []; - var nread = 0; + const lo = first + + this[++offset] * 2 ** 8 + + this[++offset] * 2 ** 16 + + this[++offset] * 2 ** 24 - engine.on('error', onError); - engine.on('end', onEnd); + const hi = this[++offset] + + this[++offset] * 2 ** 8 + + this[++offset] * 2 ** 16 + + last * 2 ** 24 - engine.end(buffer); - flow(); + return BigInt(lo) + (BigInt(hi) << BigInt(32)) +}) - function flow() { - var chunk; - while (null !== (chunk = engine.read())) { - buffers.push(chunk); - nread += chunk.length; - } - engine.once('readable', flow); +Buffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) { + offset = offset >>> 0 + validateNumber(offset, 'offset') + const first = this[offset] + const last = this[offset + 7] + if (first === undefined || last === undefined) { + boundsError(offset, this.length - 8) } - function onError(err) { - engine.removeListener('end', onEnd); - engine.removeListener('readable', flow); - callback(err); - } + const hi = first * 2 ** 24 + + this[++offset] * 2 ** 16 + + this[++offset] * 2 ** 8 + + this[++offset] - function onEnd() { - var buf; - var err = null; + const lo = this[++offset] * 2 ** 24 + + this[++offset] * 2 ** 16 + + this[++offset] * 2 ** 8 + + last - if (nread >= kMaxLength) { - err = new RangeError(kRangeErrorMessage); - } else { - buf = Buffer.concat(buffers, nread); - } + return (BigInt(hi) << BigInt(32)) + BigInt(lo) +}) - buffers = []; - engine.close(); - callback(err, buf); +Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + let val = this[offset] + let mul = 1 + let i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val } -function zlibBufferSync(engine, buffer) { - if (typeof buffer === 'string') buffer = Buffer.from(buffer); +Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) - if (!Buffer.isBuffer(buffer)) throw new TypeError('Not a string or buffer'); + let i = byteLength + let mul = 1 + let val = this[offset + --i] + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul + } + mul *= 0x80 - var flushFlag = engine._finishFlushFlag; + if (val >= mul) val -= Math.pow(2, 8 * byteLength) - return engine._processChunk(buffer, flushFlag); + return val } -// generic zlib -// minimal 2-byte header -function Deflate(opts) { - if (!(this instanceof Deflate)) return new Deflate(opts); - Zlib.call(this, opts, binding.DEFLATE); +Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 1, this.length) + if (!(this[offset] & 0x80)) return (this[offset]) + return ((0xff - this[offset] + 1) * -1) } -function Inflate(opts) { - if (!(this instanceof Inflate)) return new Inflate(opts); - Zlib.call(this, opts, binding.INFLATE); +Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 2, this.length) + const val = this[offset] | (this[offset + 1] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val } -// gzip - bigger header, same deflate compression -function Gzip(opts) { - if (!(this instanceof Gzip)) return new Gzip(opts); - Zlib.call(this, opts, binding.GZIP); +Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 2, this.length) + const val = this[offset + 1] | (this[offset] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val } -function Gunzip(opts) { - if (!(this instanceof Gunzip)) return new Gunzip(opts); - Zlib.call(this, opts, binding.GUNZIP); -} +Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) -// raw - no header -function DeflateRaw(opts) { - if (!(this instanceof DeflateRaw)) return new DeflateRaw(opts); - Zlib.call(this, opts, binding.DEFLATERAW); + return (this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16) | + (this[offset + 3] << 24) } -function InflateRaw(opts) { - if (!(this instanceof InflateRaw)) return new InflateRaw(opts); - Zlib.call(this, opts, binding.INFLATERAW); -} +Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) -// auto-detect header. -function Unzip(opts) { - if (!(this instanceof Unzip)) return new Unzip(opts); - Zlib.call(this, opts, binding.UNZIP); + return (this[offset] << 24) | + (this[offset + 1] << 16) | + (this[offset + 2] << 8) | + (this[offset + 3]) } -function isValidFlushFlag(flag) { - return flag === binding.Z_NO_FLUSH || flag === binding.Z_PARTIAL_FLUSH || flag === binding.Z_SYNC_FLUSH || flag === binding.Z_FULL_FLUSH || flag === binding.Z_FINISH || flag === binding.Z_BLOCK; -} +Buffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) { + offset = offset >>> 0 + validateNumber(offset, 'offset') + const first = this[offset] + const last = this[offset + 7] + if (first === undefined || last === undefined) { + boundsError(offset, this.length - 8) + } -// the Zlib class they all inherit from -// This thing manages the queue of requests, and returns -// true or false if there is anything in the queue when -// you call the .write() method. + const val = this[offset + 4] + + this[offset + 5] * 2 ** 8 + + this[offset + 6] * 2 ** 16 + + (last << 24) // Overflow -function Zlib(opts, mode) { - var _this = this; + return (BigInt(val) << BigInt(32)) + + BigInt(first + + this[++offset] * 2 ** 8 + + this[++offset] * 2 ** 16 + + this[++offset] * 2 ** 24) +}) - this._opts = opts = opts || {}; - this._chunkSize = opts.chunkSize || exports.Z_DEFAULT_CHUNK; +Buffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) { + offset = offset >>> 0 + validateNumber(offset, 'offset') + const first = this[offset] + const last = this[offset + 7] + if (first === undefined || last === undefined) { + boundsError(offset, this.length - 8) + } - Transform.call(this, opts); + const val = (first << 24) + // Overflow + this[++offset] * 2 ** 16 + + this[++offset] * 2 ** 8 + + this[++offset] - if (opts.flush && !isValidFlushFlag(opts.flush)) { - throw new Error('Invalid flush flag: ' + opts.flush); - } - if (opts.finishFlush && !isValidFlushFlag(opts.finishFlush)) { - throw new Error('Invalid flush flag: ' + opts.finishFlush); - } + return (BigInt(val) << BigInt(32)) + + BigInt(this[++offset] * 2 ** 24 + + this[++offset] * 2 ** 16 + + this[++offset] * 2 ** 8 + + last) +}) - this._flushFlag = opts.flush || binding.Z_NO_FLUSH; - this._finishFlushFlag = typeof opts.finishFlush !== 'undefined' ? opts.finishFlush : binding.Z_FINISH; +Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, true, 23, 4) +} - if (opts.chunkSize) { - if (opts.chunkSize < exports.Z_MIN_CHUNK || opts.chunkSize > exports.Z_MAX_CHUNK) { - throw new Error('Invalid chunk size: ' + opts.chunkSize); - } - } +Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, false, 23, 4) +} - if (opts.windowBits) { - if (opts.windowBits < exports.Z_MIN_WINDOWBITS || opts.windowBits > exports.Z_MAX_WINDOWBITS) { - throw new Error('Invalid windowBits: ' + opts.windowBits); - } - } +Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, true, 52, 8) +} - if (opts.level) { - if (opts.level < exports.Z_MIN_LEVEL || opts.level > exports.Z_MAX_LEVEL) { - throw new Error('Invalid compression level: ' + opts.level); - } - } +Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, false, 52, 8) +} - if (opts.memLevel) { - if (opts.memLevel < exports.Z_MIN_MEMLEVEL || opts.memLevel > exports.Z_MAX_MEMLEVEL) { - throw new Error('Invalid memLevel: ' + opts.memLevel); - } - } +function checkInt (buf, value, offset, ext, max, min) { + if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') + if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') + if (offset + ext > buf.length) throw new RangeError('Index out of range') +} - if (opts.strategy) { - if (opts.strategy != exports.Z_FILTERED && opts.strategy != exports.Z_HUFFMAN_ONLY && opts.strategy != exports.Z_RLE && opts.strategy != exports.Z_FIXED && opts.strategy != exports.Z_DEFAULT_STRATEGY) { - throw new Error('Invalid strategy: ' + opts.strategy); - } +Buffer.prototype.writeUintLE = +Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) { + const maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) } - if (opts.dictionary) { - if (!Buffer.isBuffer(opts.dictionary)) { - throw new Error('Invalid dictionary: it should be a Buffer instance'); - } + let mul = 1 + let i = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF } - this._handle = new binding.Zlib(mode); + return offset + byteLength +} - var self = this; - this._hadError = false; - this._handle.onerror = function (message, errno) { - // there is no way to cleanly recover. - // continuing only obscures problems. - _close(self); - self._hadError = true; +Buffer.prototype.writeUintBE = +Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) { + const maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } - var error = new Error(message); - error.errno = errno; - error.code = exports.codes[errno]; - self.emit('error', error); - }; + let i = byteLength - 1 + let mul = 1 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } - var level = exports.Z_DEFAULT_COMPRESSION; - if (typeof opts.level === 'number') level = opts.level; + return offset + byteLength +} - var strategy = exports.Z_DEFAULT_STRATEGY; - if (typeof opts.strategy === 'number') strategy = opts.strategy; +Buffer.prototype.writeUint8 = +Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) + this[offset] = (value & 0xff) + return offset + 1 +} - this._handle.init(opts.windowBits || exports.Z_DEFAULT_WINDOWBITS, level, opts.memLevel || exports.Z_DEFAULT_MEMLEVEL, strategy, opts.dictionary); +Buffer.prototype.writeUint16LE = +Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + return offset + 2 +} - this._buffer = Buffer.allocUnsafe(this._chunkSize); - this._offset = 0; - this._level = level; - this._strategy = strategy; +Buffer.prototype.writeUint16BE = +Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + return offset + 2 +} - this.once('end', this.close); +Buffer.prototype.writeUint32LE = +Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + this[offset + 3] = (value >>> 24) + this[offset + 2] = (value >>> 16) + this[offset + 1] = (value >>> 8) + this[offset] = (value & 0xff) + return offset + 4 +} - Object.defineProperty(this, '_closed', { - get: function () { - return !_this._handle; - }, - configurable: true, - enumerable: true - }); +Buffer.prototype.writeUint32BE = +Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + return offset + 4 } -util.inherits(Zlib, Transform); +function wrtBigUInt64LE (buf, value, offset, min, max) { + checkIntBI(value, min, max, buf, offset, 7) -Zlib.prototype.params = function (level, strategy, callback) { - if (level < exports.Z_MIN_LEVEL || level > exports.Z_MAX_LEVEL) { - throw new RangeError('Invalid compression level: ' + level); - } - if (strategy != exports.Z_FILTERED && strategy != exports.Z_HUFFMAN_ONLY && strategy != exports.Z_RLE && strategy != exports.Z_FIXED && strategy != exports.Z_DEFAULT_STRATEGY) { - throw new TypeError('Invalid strategy: ' + strategy); - } + let lo = Number(value & BigInt(0xffffffff)) + buf[offset++] = lo + lo = lo >> 8 + buf[offset++] = lo + lo = lo >> 8 + buf[offset++] = lo + lo = lo >> 8 + buf[offset++] = lo + let hi = Number(value >> BigInt(32) & BigInt(0xffffffff)) + buf[offset++] = hi + hi = hi >> 8 + buf[offset++] = hi + hi = hi >> 8 + buf[offset++] = hi + hi = hi >> 8 + buf[offset++] = hi + return offset +} - if (this._level !== level || this._strategy !== strategy) { - var self = this; - this.flush(binding.Z_SYNC_FLUSH, function () { - assert(self._handle, 'zlib binding closed'); - self._handle.params(level, strategy); - if (!self._hadError) { - self._level = level; - self._strategy = strategy; - if (callback) callback(); - } - }); - } else { - ({"env":{"NODE_ENV":"production"}}).nextTick(callback); - } -}; +function wrtBigUInt64BE (buf, value, offset, min, max) { + checkIntBI(value, min, max, buf, offset, 7) -Zlib.prototype.reset = function () { - assert(this._handle, 'zlib binding closed'); - return this._handle.reset(); -}; + let lo = Number(value & BigInt(0xffffffff)) + buf[offset + 7] = lo + lo = lo >> 8 + buf[offset + 6] = lo + lo = lo >> 8 + buf[offset + 5] = lo + lo = lo >> 8 + buf[offset + 4] = lo + let hi = Number(value >> BigInt(32) & BigInt(0xffffffff)) + buf[offset + 3] = hi + hi = hi >> 8 + buf[offset + 2] = hi + hi = hi >> 8 + buf[offset + 1] = hi + hi = hi >> 8 + buf[offset] = hi + return offset + 8 +} -// This is the _flush function called by the transform class, -// internally, when the last chunk has been written. -Zlib.prototype._flush = function (callback) { - this._transform(Buffer.alloc(0), '', callback); -}; +Buffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) { + return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff')) +}) -Zlib.prototype.flush = function (kind, callback) { - var _this2 = this; +Buffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) { + return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff')) +}) - var ws = this._writableState; +Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) { + const limit = Math.pow(2, (8 * byteLength) - 1) - if (typeof kind === 'function' || kind === undefined && !callback) { - callback = kind; - kind = binding.Z_FULL_FLUSH; + checkInt(this, value, offset, byteLength, limit - 1, -limit) } - if (ws.ended) { - if (callback) ({"env":{"NODE_ENV":"production"}}).nextTick(callback); - } else if (ws.ending) { - if (callback) this.once('end', callback); - } else if (ws.needDrain) { - if (callback) { - this.once('drain', function () { - return _this2.flush(kind, callback); - }); + let i = 0 + let mul = 1 + let sub = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1 } - } else { - this._flushFlag = kind; - this.write(Buffer.alloc(0), '', callback); + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF } -}; -Zlib.prototype.close = function (callback) { - _close(this, callback); - ({"env":{"NODE_ENV":"production"}}).nextTick(emitCloseNT, this); -}; - -function _close(engine, callback) { - if (callback) ({"env":{"NODE_ENV":"production"}}).nextTick(callback); - - // Caller may invoke .close after a zlib error (which will null _handle). - if (!engine._handle) return; - - engine._handle.close(); - engine._handle = null; -} - -function emitCloseNT(self) { - self.emit('close'); + return offset + byteLength } -Zlib.prototype._transform = function (chunk, encoding, cb) { - var flushFlag; - var ws = this._writableState; - var ending = ws.ending || ws.ended; - var last = ending && (!chunk || ws.length === chunk.length); - - if (chunk !== null && !Buffer.isBuffer(chunk)) return cb(new Error('invalid input')); +Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) { + const limit = Math.pow(2, (8 * byteLength) - 1) - if (!this._handle) return cb(new Error('zlib binding closed')); + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } - // If it's the last chunk, or a final flush, we use the Z_FINISH flush flag - // (or whatever flag was provided using opts.finishFlush). - // If it's explicitly flushing at some other time, then we use - // Z_FULL_FLUSH. Otherwise, use Z_NO_FLUSH for maximum compression - // goodness. - if (last) flushFlag = this._finishFlushFlag;else { - flushFlag = this._flushFlag; - // once we've flushed the last of the queue, stop flushing and - // go back to the normal behavior. - if (chunk.length >= ws.length) { - this._flushFlag = this._opts.flush || binding.Z_NO_FLUSH; + let i = byteLength - 1 + let mul = 1 + let sub = 0 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1 } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF } - this._processChunk(chunk, flushFlag, cb); -}; - -Zlib.prototype._processChunk = function (chunk, flushFlag, cb) { - var availInBefore = chunk && chunk.length; - var availOutBefore = this._chunkSize - this._offset; - var inOff = 0; + return offset + byteLength +} - var self = this; +Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) + if (value < 0) value = 0xff + value + 1 + this[offset] = (value & 0xff) + return offset + 1 +} - var async = typeof cb === 'function'; +Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + return offset + 2 +} - if (!async) { - var buffers = []; - var nread = 0; +Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + return offset + 2 +} - var error; - this.on('error', function (er) { - error = er; - }); +Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + this[offset + 2] = (value >>> 16) + this[offset + 3] = (value >>> 24) + return offset + 4 +} - assert(this._handle, 'zlib binding closed'); - do { - var res = this._handle.writeSync(flushFlag, chunk, // in - inOff, // in_off - availInBefore, // in_len - this._buffer, // out - this._offset, //out_off - availOutBefore); // out_len - } while (!this._hadError && callback(res[0], res[1])); +Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (value < 0) value = 0xffffffff + value + 1 + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + return offset + 4 +} - if (this._hadError) { - throw error; - } +Buffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) { + return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff')) +}) - if (nread >= kMaxLength) { - _close(this); - throw new RangeError(kRangeErrorMessage); - } +Buffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) { + return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff')) +}) - var buf = Buffer.concat(buffers, nread); - _close(this); +function checkIEEE754 (buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError('Index out of range') + if (offset < 0) throw new RangeError('Index out of range') +} - return buf; +function writeFloat (buf, value, offset, littleEndian, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) } + ieee754.write(buf, value, offset, littleEndian, 23, 4) + return offset + 4 +} - assert(this._handle, 'zlib binding closed'); - var req = this._handle.write(flushFlag, chunk, // in - inOff, // in_off - availInBefore, // in_len - this._buffer, // out - this._offset, //out_off - availOutBefore); // out_len +Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert) +} - req.buffer = chunk; - req.callback = callback; +Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert) +} - function callback(availInAfter, availOutAfter) { - // When the callback is used in an async write, the callback's - // context is the `req` object that was created. The req object - // is === this._handle, and that's why it's important to null - // out the values after they are done being used. `this._handle` - // can stay in memory longer than the callback and buffer are needed. - if (this) { - this.buffer = null; - this.callback = null; - } +function writeDouble (buf, value, offset, littleEndian, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) + } + ieee754.write(buf, value, offset, littleEndian, 52, 8) + return offset + 8 +} - if (self._hadError) return; +Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert) +} - var have = availOutBefore - availOutAfter; - assert(have >= 0, 'have should not go down'); +Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert) +} - if (have > 0) { - var out = self._buffer.slice(self._offset, self._offset + have); - self._offset += have; - // serve some output to the consumer. - if (async) { - self.push(out); - } else { - buffers.push(out); - nread += out.length; - } - } +// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) +Buffer.prototype.copy = function copy (target, targetStart, start, end) { + if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer') + if (!start) start = 0 + if (!end && end !== 0) end = this.length + if (targetStart >= target.length) targetStart = target.length + if (!targetStart) targetStart = 0 + if (end > 0 && end < start) end = start - // exhausted the output buffer, or used all the input create a new one. - if (availOutAfter === 0 || self._offset >= self._chunkSize) { - availOutBefore = self._chunkSize; - self._offset = 0; - self._buffer = Buffer.allocUnsafe(self._chunkSize); - } + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 - if (availOutAfter === 0) { - // Not actually done. Need to reprocess. - // Also, update the availInBefore to the availInAfter value, - // so that if we have to hit it a third (fourth, etc.) time, - // it'll have the correct byte counts. - inOff += availInBefore - availInAfter; - availInBefore = availInAfter; + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('Index out of range') + if (end < 0) throw new RangeError('sourceEnd out of bounds') - if (!async) return true; + // Are we oob? + if (end > this.length) end = this.length + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start + } - var newReq = self._handle.write(flushFlag, chunk, inOff, availInBefore, self._buffer, self._offset, self._chunkSize); - newReq.callback = callback; // this same function - newReq.buffer = chunk; - return; - } + const len = end - start - if (!async) return false; + if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') { + // Use built-in when available, missing from IE11 + this.copyWithin(targetStart, start, end) + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, end), + targetStart + ) + } - // finished with the chunk. - cb(); + return len +} + +// Usage: +// buffer.fill(number[, offset[, end]]) +// buffer.fill(buffer[, offset[, end]]) +// buffer.fill(string[, offset[, end]][, encoding]) +Buffer.prototype.fill = function fill (val, start, end, encoding) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + encoding = start + start = 0 + end = this.length + } else if (typeof end === 'string') { + encoding = end + end = this.length + } + if (encoding !== undefined && typeof encoding !== 'string') { + throw new TypeError('encoding must be a string') + } + if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } + if (val.length === 1) { + const code = val.charCodeAt(0) + if ((encoding === 'utf8' && code < 128) || + encoding === 'latin1') { + // Fast path: If `val` fits into a single byte, use that numeric value. + val = code + } + } + } else if (typeof val === 'number') { + val = val & 255 + } else if (typeof val === 'boolean') { + val = Number(val) } -}; -util.inherits(Deflate, Zlib); -util.inherits(Inflate, Zlib); -util.inherits(Gzip, Zlib); -util.inherits(Gunzip, Zlib); -util.inherits(DeflateRaw, Zlib); -util.inherits(InflateRaw, Zlib); -util.inherits(Unzip, Zlib); + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index') + } -/***/ }), + if (end <= start) { + return this + } -/***/ "./node_modules/buffer-xor/index.js": -/*!******************************************!*\ - !*** ./node_modules/buffer-xor/index.js ***! - \******************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + start = start >>> 0 + end = end === undefined ? this.length : end >>> 0 -/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; -module.exports = function xor (a, b) { - var length = Math.min(a.length, b.length) - var buffer = new Buffer(length) + if (!val) val = 0 - for (var i = 0; i < length; ++i) { - buffer[i] = a[i] ^ b[i] + let i + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val + } + } else { + const bytes = Buffer.isBuffer(val) + ? val + : Buffer.from(val, encoding) + const len = bytes.length + if (len === 0) { + throw new TypeError('The value "' + val + + '" is invalid for argument "value"') + } + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len] + } } - return buffer + return this } +// CUSTOM ERRORS +// ============= -/***/ }), +// Simplified versions from Node, changed for Buffer-only usage +const errors = {} +function E (sym, getMessage, Base) { + errors[sym] = class NodeError extends Base { + constructor () { + super() -/***/ "./node_modules/buffer/index.js": -/*!**************************************!*\ - !*** ./node_modules/buffer/index.js ***! - \**************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + Object.defineProperty(this, 'message', { + value: getMessage.apply(this, arguments), + writable: true, + configurable: true + }) -"use strict"; -/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ -/* eslint-disable no-proto */ + // Add the error code to the name to include it in the stack trace. + this.name = `${this.name} [${sym}]` + // Access the stack to generate the error message including the error code + // from the name. + this.stack // eslint-disable-line no-unused-expressions + // Reset the name to the actual name. + delete this.name + } + + get code () { + return sym + } + set code (value) { + Object.defineProperty(this, 'code', { + configurable: true, + enumerable: true, + value, + writable: true + }) + } + toString () { + return `${this.name} [${sym}]: ${this.message}` + } + } +} -const base64 = __webpack_require__(/*! base64-js */ "./node_modules/base64-js/index.js") -const ieee754 = __webpack_require__(/*! ieee754 */ "./node_modules/ieee754/index.js") -const customInspectSymbol = - (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation - ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation - : null +E('ERR_BUFFER_OUT_OF_BOUNDS', + function (name) { + if (name) { + return `${name} is outside of buffer bounds` + } -exports.Buffer = Buffer -exports.SlowBuffer = SlowBuffer -exports.INSPECT_MAX_BYTES = 50 + return 'Attempt to access memory outside buffer bounds' + }, RangeError) +E('ERR_INVALID_ARG_TYPE', + function (name, actual) { + return `The "${name}" argument must be of type number. Received type ${typeof actual}` + }, TypeError) +E('ERR_OUT_OF_RANGE', + function (str, range, input) { + let msg = `The value of "${str}" is out of range.` + let received = input + if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) { + received = addNumericalSeparator(String(input)) + } else if (typeof input === 'bigint') { + received = String(input) + if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) { + received = addNumericalSeparator(received) + } + received += 'n' + } + msg += ` It must be ${range}. Received ${received}` + return msg + }, RangeError) -const K_MAX_LENGTH = 0x7fffffff -exports.kMaxLength = K_MAX_LENGTH +function addNumericalSeparator (val) { + let res = '' + let i = val.length + const start = val[0] === '-' ? 1 : 0 + for (; i >= start + 4; i -= 3) { + res = `_${val.slice(i - 3, i)}${res}` + } + return `${val.slice(0, i)}${res}` +} -/** - * If `Buffer.TYPED_ARRAY_SUPPORT`: - * === true Use Uint8Array implementation (fastest) - * === false Print warning and recommend using `buffer` v4.x which has an Object - * implementation (most compatible, even IE6) - * - * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, - * Opera 11.6+, iOS 4.2+. - * - * We report that the browser does not support typed arrays if the are not subclassable - * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array` - * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support - * for __proto__ and has a buggy typed array implementation. - */ -Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport() +// CHECK FUNCTIONS +// =============== -if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' && - typeof console.error === 'function') { - console.error( - 'This browser lacks typed array (Uint8Array) support which is required by ' + - '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.' - ) +function checkBounds (buf, offset, byteLength) { + validateNumber(offset, 'offset') + if (buf[offset] === undefined || buf[offset + byteLength] === undefined) { + boundsError(offset, buf.length - (byteLength + 1)) + } } -function typedArraySupport () { - // Can typed array instances can be augmented? - try { - const arr = new Uint8Array(1) - const proto = { foo: function () { return 42 } } - Object.setPrototypeOf(proto, Uint8Array.prototype) - Object.setPrototypeOf(arr, proto) - return arr.foo() === 42 - } catch (e) { - return false +function checkIntBI (value, min, max, buf, offset, byteLength) { + if (value > max || value < min) { + const n = typeof min === 'bigint' ? 'n' : '' + let range + if (byteLength > 3) { + if (min === 0 || min === BigInt(0)) { + range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}` + } else { + range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` + + `${(byteLength + 1) * 8 - 1}${n}` + } + } else { + range = `>= ${min}${n} and <= ${max}${n}` + } + throw new errors.ERR_OUT_OF_RANGE('value', range, value) } + checkBounds(buf, offset, byteLength) } -Object.defineProperty(Buffer.prototype, 'parent', { - enumerable: true, - get: function () { - if (!Buffer.isBuffer(this)) return undefined - return this.buffer +function validateNumber (value, name) { + if (typeof value !== 'number') { + throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value) } -}) +} -Object.defineProperty(Buffer.prototype, 'offset', { - enumerable: true, - get: function () { - if (!Buffer.isBuffer(this)) return undefined - return this.byteOffset +function boundsError (value, length, type) { + if (Math.floor(value) !== value) { + validateNumber(value, type) + throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value) } -}) -function createBuffer (length) { - if (length > K_MAX_LENGTH) { - throw new RangeError('The value "' + length + '" is invalid for option "size"') + if (length < 0) { + throw new errors.ERR_BUFFER_OUT_OF_BOUNDS() } - // Return an augmented `Uint8Array` instance - const buf = new Uint8Array(length) - Object.setPrototypeOf(buf, Buffer.prototype) - return buf + + throw new errors.ERR_OUT_OF_RANGE(type || 'offset', + `>= ${type ? 1 : 0} and <= ${length}`, + value) } -/** - * The Buffer constructor returns instances of `Uint8Array` that have their - * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of - * `Uint8Array`, so the returned instances will have all the node `Buffer` methods - * and the `Uint8Array` methods. Square bracket notation works as expected -- it - * returns a single octet. - * - * The `Uint8Array` prototype remains unmodified. - */ +// HELPER FUNCTIONS +// ================ -function Buffer (arg, encodingOrOffset, length) { - // Common case. - if (typeof arg === 'number') { - if (typeof encodingOrOffset === 'string') { - throw new TypeError( - 'The "string" argument must be of type string. Received type number' - ) - } - return allocUnsafe(arg) +const INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g + +function base64clean (str) { + // Node takes equal signs as end of the Base64 encoding + str = str.split('=')[0] + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = str.trim().replace(INVALID_BASE64_RE, '') + // Node converts strings with length < 2 to '' + if (str.length < 2) return '' + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + '=' } - return from(arg, encodingOrOffset, length) + return str } -Buffer.poolSize = 8192 // not used by this implementation - -function from (value, encodingOrOffset, length) { - if (typeof value === 'string') { - return fromString(value, encodingOrOffset) - } +function utf8ToBytes (string, units) { + units = units || Infinity + let codePoint + const length = string.length + let leadSurrogate = null + const bytes = [] - if (ArrayBuffer.isView(value)) { - return fromArrayView(value) - } + for (let i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i) - if (value == null) { - throw new TypeError( - 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + - 'or Array-like Object. Received type ' + (typeof value) - ) - } + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } - if (isInstance(value, ArrayBuffer) || - (value && isInstance(value.buffer, ArrayBuffer))) { - return fromArrayBuffer(value, encodingOrOffset, length) - } + // valid lead + leadSurrogate = codePoint - if (typeof SharedArrayBuffer !== 'undefined' && - (isInstance(value, SharedArrayBuffer) || - (value && isInstance(value.buffer, SharedArrayBuffer)))) { - return fromArrayBuffer(value, encodingOrOffset, length) - } + continue + } - if (typeof value === 'number') { - throw new TypeError( - 'The "value" argument must not be of type number. Received type number' - ) - } + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + leadSurrogate = codePoint + continue + } - const valueOf = value.valueOf && value.valueOf() - if (valueOf != null && valueOf !== value) { - return Buffer.from(valueOf, encodingOrOffset, length) - } + // valid surrogate pair + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + } - const b = fromObject(value) - if (b) return b + leadSurrogate = null - if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null && - typeof value[Symbol.toPrimitive] === 'function') { - return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length) + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint) + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else { + throw new Error('Invalid code point') + } } - throw new TypeError( - 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + - 'or Array-like Object. Received type ' + (typeof value) - ) + return bytes } -/** - * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError - * if value is a number. - * Buffer.from(str[, encoding]) - * Buffer.from(array) - * Buffer.from(buffer) - * Buffer.from(arrayBuffer[, byteOffset[, length]]) - **/ -Buffer.from = function (value, encodingOrOffset, length) { - return from(value, encodingOrOffset, length) +function asciiToBytes (str) { + const byteArray = [] + for (let i = 0; i < str.length; ++i) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xFF) + } + return byteArray } -// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug: -// https://github.com/feross/buffer/pull/148 -Object.setPrototypeOf(Buffer.prototype, Uint8Array.prototype) -Object.setPrototypeOf(Buffer, Uint8Array) +function utf16leToBytes (str, units) { + let c, hi, lo + const byteArray = [] + for (let i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break -function assertSize (size) { - if (typeof size !== 'number') { - throw new TypeError('"size" argument must be of type number') - } else if (size < 0) { - throw new RangeError('The value "' + size + '" is invalid for option "size"') + c = str.charCodeAt(i) + hi = c >> 8 + lo = c % 256 + byteArray.push(lo) + byteArray.push(hi) } -} -function alloc (size, fill, encoding) { - assertSize(size) - if (size <= 0) { - return createBuffer(size) - } - if (fill !== undefined) { - // Only pay attention to encoding if it's a string. This - // prevents accidentally sending in a number that would - // be interpreted as a start offset. - return typeof encoding === 'string' - ? createBuffer(size).fill(fill, encoding) - : createBuffer(size).fill(fill) - } - return createBuffer(size) + return byteArray } -/** - * Creates a new filled Buffer instance. - * alloc(size[, fill[, encoding]]) - **/ -Buffer.alloc = function (size, fill, encoding) { - return alloc(size, fill, encoding) +function base64ToBytes (str) { + return base64.toByteArray(base64clean(str)) } -function allocUnsafe (size) { - assertSize(size) - return createBuffer(size < 0 ? 0 : checked(size) | 0) +function blitBuffer (src, dst, offset, length) { + let i + for (i = 0; i < length; ++i) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i] + } + return i } -/** - * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. - * */ -Buffer.allocUnsafe = function (size) { - return allocUnsafe(size) +// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass +// the `instanceof` check but they should be treated as of that type. +// See: https://github.com/feross/buffer/issues/166 +function isInstance (obj, type) { + return obj instanceof type || + (obj != null && obj.constructor != null && obj.constructor.name != null && + obj.constructor.name === type.name) } -/** - * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. - */ -Buffer.allocUnsafeSlow = function (size) { - return allocUnsafe(size) +function numberIsNaN (obj) { + // For IE11 support + return obj !== obj // eslint-disable-line no-self-compare } -function fromString (string, encoding) { - if (typeof encoding !== 'string' || encoding === '') { - encoding = 'utf8' - } - - if (!Buffer.isEncoding(encoding)) { - throw new TypeError('Unknown encoding: ' + encoding) +// Create lookup table for `toString('hex')` +// See: https://github.com/feross/buffer/issues/219 +const hexSliceLookupTable = (function () { + const alphabet = '0123456789abcdef' + const table = new Array(256) + for (let i = 0; i < 16; ++i) { + const i16 = i * 16 + for (let j = 0; j < 16; ++j) { + table[i16 + j] = alphabet[i] + alphabet[j] + } } + return table +})() - const length = byteLength(string, encoding) | 0 - let buf = createBuffer(length) +// Return not function with Error if BigInt not supported +function defineBigIntMethod (fn) { + return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn +} - const actual = buf.write(string, encoding) +function BufferBigIntNotDefined () { + throw new Error('BigInt not supported') +} - if (actual !== length) { - // Writing a hex string, for example, that contains invalid characters will - // cause everything after the first invalid character to be ignored. (e.g. - // 'abxxcd' will be treated as 'ab') - buf = buf.slice(0, actual) - } - return buf -} +/***/ }), -function fromArrayLike (array) { - const length = array.length < 0 ? 0 : checked(array.length) | 0 - const buf = createBuffer(length) - for (let i = 0; i < length; i += 1) { - buf[i] = array[i] & 255 - } - return buf -} +/***/ "./node_modules/builtin-status-codes/browser.js": +/*!******************************************************!*\ + !*** ./node_modules/builtin-status-codes/browser.js ***! + \******************************************************/ +/***/ (function(module) { -function fromArrayView (arrayView) { - if (isInstance(arrayView, Uint8Array)) { - const copy = new Uint8Array(arrayView) - return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength) - } - return fromArrayLike(arrayView) +module.exports = { + "100": "Continue", + "101": "Switching Protocols", + "102": "Processing", + "200": "OK", + "201": "Created", + "202": "Accepted", + "203": "Non-Authoritative Information", + "204": "No Content", + "205": "Reset Content", + "206": "Partial Content", + "207": "Multi-Status", + "208": "Already Reported", + "226": "IM Used", + "300": "Multiple Choices", + "301": "Moved Permanently", + "302": "Found", + "303": "See Other", + "304": "Not Modified", + "305": "Use Proxy", + "307": "Temporary Redirect", + "308": "Permanent Redirect", + "400": "Bad Request", + "401": "Unauthorized", + "402": "Payment Required", + "403": "Forbidden", + "404": "Not Found", + "405": "Method Not Allowed", + "406": "Not Acceptable", + "407": "Proxy Authentication Required", + "408": "Request Timeout", + "409": "Conflict", + "410": "Gone", + "411": "Length Required", + "412": "Precondition Failed", + "413": "Payload Too Large", + "414": "URI Too Long", + "415": "Unsupported Media Type", + "416": "Range Not Satisfiable", + "417": "Expectation Failed", + "418": "I'm a teapot", + "421": "Misdirected Request", + "422": "Unprocessable Entity", + "423": "Locked", + "424": "Failed Dependency", + "425": "Unordered Collection", + "426": "Upgrade Required", + "428": "Precondition Required", + "429": "Too Many Requests", + "431": "Request Header Fields Too Large", + "451": "Unavailable For Legal Reasons", + "500": "Internal Server Error", + "501": "Not Implemented", + "502": "Bad Gateway", + "503": "Service Unavailable", + "504": "Gateway Timeout", + "505": "HTTP Version Not Supported", + "506": "Variant Also Negotiates", + "507": "Insufficient Storage", + "508": "Loop Detected", + "509": "Bandwidth Limit Exceeded", + "510": "Not Extended", + "511": "Network Authentication Required" } -function fromArrayBuffer (array, byteOffset, length) { - if (byteOffset < 0 || array.byteLength < byteOffset) { - throw new RangeError('"offset" is outside of buffer bounds') - } - if (array.byteLength < byteOffset + (length || 0)) { - throw new RangeError('"length" is outside of buffer bounds') - } +/***/ }), - let buf - if (byteOffset === undefined && length === undefined) { - buf = new Uint8Array(array) - } else if (length === undefined) { - buf = new Uint8Array(array, byteOffset) - } else { - buf = new Uint8Array(array, byteOffset, length) - } +/***/ "./node_modules/call-bind/callBound.js": +/*!*********************************************!*\ + !*** ./node_modules/call-bind/callBound.js ***! + \*********************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - // Return an augmented `Uint8Array` instance - Object.setPrototypeOf(buf, Buffer.prototype) +"use strict"; - return buf -} -function fromObject (obj) { - if (Buffer.isBuffer(obj)) { - const len = checked(obj.length) | 0 - const buf = createBuffer(len) +var GetIntrinsic = __webpack_require__(/*! get-intrinsic */ "./node_modules/get-intrinsic/index.js"); - if (buf.length === 0) { - return buf - } +var callBind = __webpack_require__(/*! ./ */ "./node_modules/call-bind/index.js"); - obj.copy(buf, 0, 0, len) - return buf - } +var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf')); - if (obj.length !== undefined) { - if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) { - return createBuffer(0) - } - return fromArrayLike(obj) - } +module.exports = function callBoundIntrinsic(name, allowMissing) { + var intrinsic = GetIntrinsic(name, !!allowMissing); + if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) { + return callBind(intrinsic); + } + return intrinsic; +}; - if (obj.type === 'Buffer' && Array.isArray(obj.data)) { - return fromArrayLike(obj.data) - } -} -function checked (length) { - // Note: cannot use `length < K_MAX_LENGTH` here because that fails when - // length is NaN (which is otherwise coerced to zero.) - if (length >= K_MAX_LENGTH) { - throw new RangeError('Attempt to allocate Buffer larger than maximum ' + - 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes') - } - return length | 0 -} +/***/ }), -function SlowBuffer (length) { - if (+length != length) { // eslint-disable-line eqeqeq - length = 0 - } - return Buffer.alloc(+length) -} +/***/ "./node_modules/call-bind/index.js": +/*!*****************************************!*\ + !*** ./node_modules/call-bind/index.js ***! + \*****************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { -Buffer.isBuffer = function isBuffer (b) { - return b != null && b._isBuffer === true && - b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false -} +"use strict"; -Buffer.compare = function compare (a, b) { - if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength) - if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength) - if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { - throw new TypeError( - 'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array' - ) - } - if (a === b) return 0 +var bind = __webpack_require__(/*! function-bind */ "./node_modules/function-bind/index.js"); +var GetIntrinsic = __webpack_require__(/*! get-intrinsic */ "./node_modules/get-intrinsic/index.js"); - let x = a.length - let y = b.length +var $apply = GetIntrinsic('%Function.prototype.apply%'); +var $call = GetIntrinsic('%Function.prototype.call%'); +var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply); - for (let i = 0, len = Math.min(x, y); i < len; ++i) { - if (a[i] !== b[i]) { - x = a[i] - y = b[i] - break - } - } +var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true); +var $defineProperty = GetIntrinsic('%Object.defineProperty%', true); +var $max = GetIntrinsic('%Math.max%'); - if (x < y) return -1 - if (y < x) return 1 - return 0 +if ($defineProperty) { + try { + $defineProperty({}, 'a', { value: 1 }); + } catch (e) { + // IE 8 has a broken defineProperty + $defineProperty = null; + } } -Buffer.isEncoding = function isEncoding (encoding) { - switch (String(encoding).toLowerCase()) { - case 'hex': - case 'utf8': - case 'utf-8': - case 'ascii': - case 'latin1': - case 'binary': - case 'base64': - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return true - default: - return false - } +module.exports = function callBind(originalFunction) { + var func = $reflectApply(bind, $call, arguments); + if ($gOPD && $defineProperty) { + var desc = $gOPD(func, 'length'); + if (desc.configurable) { + // original length, plus the receiver, minus any additional arguments (after the receiver) + $defineProperty( + func, + 'length', + { value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) } + ); + } + } + return func; +}; + +var applyBind = function applyBind() { + return $reflectApply(bind, $apply, arguments); +}; + +if ($defineProperty) { + $defineProperty(module.exports, 'apply', { value: applyBind }); +} else { + module.exports.apply = applyBind; } -Buffer.concat = function concat (list, length) { - if (!Array.isArray(list)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - if (list.length === 0) { - return Buffer.alloc(0) - } +/***/ }), - let i - if (length === undefined) { - length = 0 - for (i = 0; i < list.length; ++i) { - length += list[i].length - } - } +/***/ "./node_modules/cipher-base/index.js": +/*!*******************************************!*\ + !*** ./node_modules/cipher-base/index.js ***! + \*******************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - const buffer = Buffer.allocUnsafe(length) - let pos = 0 - for (i = 0; i < list.length; ++i) { - let buf = list[i] - if (isInstance(buf, Uint8Array)) { - if (pos + buf.length > buffer.length) { - if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf) - buf.copy(buffer, pos) - } else { - Uint8Array.prototype.set.call( - buffer, - buf, - pos - ) - } - } else if (!Buffer.isBuffer(buf)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } else { - buf.copy(buffer, pos) - } - pos += buf.length - } - return buffer -} +var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) +var Transform = (__webpack_require__(/*! stream */ "./node_modules/stream-browserify/index.js").Transform) +var StringDecoder = (__webpack_require__(/*! string_decoder */ "./node_modules/string_decoder/lib/string_decoder.js").StringDecoder) +var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") -function byteLength (string, encoding) { - if (Buffer.isBuffer(string)) { - return string.length - } - if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) { - return string.byteLength +function CipherBase (hashMode) { + Transform.call(this) + this.hashMode = typeof hashMode === 'string' + if (this.hashMode) { + this[hashMode] = this._finalOrDigest + } else { + this.final = this._finalOrDigest } - if (typeof string !== 'string') { - throw new TypeError( - 'The "string" argument must be one of type string, Buffer, or ArrayBuffer. ' + - 'Received type ' + typeof string - ) + if (this._final) { + this.__final = this._final + this._final = null } + this._decoder = null + this._encoding = null +} +inherits(CipherBase, Transform) - const len = string.length - const mustMatch = (arguments.length > 2 && arguments[2] === true) - if (!mustMatch && len === 0) return 0 - - // Use a for loop to avoid recursion - let loweredCase = false - for (;;) { - switch (encoding) { - case 'ascii': - case 'latin1': - case 'binary': - return len - case 'utf8': - case 'utf-8': - return utf8ToBytes(string).length - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return len * 2 - case 'hex': - return len >>> 1 - case 'base64': - return base64ToBytes(string).length - default: - if (loweredCase) { - return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8 - } - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } +CipherBase.prototype.update = function (data, inputEnc, outputEnc) { + if (typeof data === 'string') { + data = Buffer.from(data, inputEnc) } + + var outData = this._update(data) + if (this.hashMode) return this + + if (outputEnc) { + outData = this._toString(outData, outputEnc) + } + + return outData } -Buffer.byteLength = byteLength -function slowToString (encoding, start, end) { - let loweredCase = false +CipherBase.prototype.setAutoPadding = function () {} +CipherBase.prototype.getAuthTag = function () { + throw new Error('trying to get auth tag in unsupported state') +} - // No need to verify that "this.length <= MAX_UINT32" since it's a read-only - // property of a typed array. +CipherBase.prototype.setAuthTag = function () { + throw new Error('trying to set auth tag in unsupported state') +} - // This behaves neither like String nor Uint8Array in that we set start/end - // to their upper/lower bounds if the value passed is out of range. - // undefined is handled specially as per ECMA-262 6th Edition, - // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. - if (start === undefined || start < 0) { - start = 0 +CipherBase.prototype.setAAD = function () { + throw new Error('trying to set aad in unsupported state') +} + +CipherBase.prototype._transform = function (data, _, next) { + var err + try { + if (this.hashMode) { + this._update(data) + } else { + this.push(this._update(data)) + } + } catch (e) { + err = e + } finally { + next(err) } - // Return early if start > this.length. Done here to prevent potential uint32 - // coercion fail below. - if (start > this.length) { - return '' +} +CipherBase.prototype._flush = function (done) { + var err + try { + this.push(this.__final()) + } catch (e) { + err = e } - if (end === undefined || end > this.length) { - end = this.length + done(err) +} +CipherBase.prototype._finalOrDigest = function (outputEnc) { + var outData = this.__final() || Buffer.alloc(0) + if (outputEnc) { + outData = this._toString(outData, outputEnc, true) } + return outData +} - if (end <= 0) { - return '' +CipherBase.prototype._toString = function (value, enc, fin) { + if (!this._decoder) { + this._decoder = new StringDecoder(enc) + this._encoding = enc } - // Force coercion to uint32. This will also coerce falsey/NaN values to 0. - end >>>= 0 - start >>>= 0 + if (this._encoding !== enc) throw new Error('can\'t switch encodings') - if (end <= start) { - return '' + var out = this._decoder.write(value) + if (fin) { + out += this._decoder.end() } - if (!encoding) encoding = 'utf8' - - while (true) { - switch (encoding) { - case 'hex': - return hexSlice(this, start, end) + return out +} - case 'utf8': - case 'utf-8': - return utf8Slice(this, start, end) +module.exports = CipherBase - case 'ascii': - return asciiSlice(this, start, end) - case 'latin1': - case 'binary': - return latin1Slice(this, start, end) +/***/ }), - case 'base64': - return base64Slice(this, start, end) +/***/ "./node_modules/cosmjs-types/binary.js": +/*!*********************************************!*\ + !*** ./node_modules/cosmjs-types/binary.js ***! + \*********************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return utf16leSlice(this, start, end) +"use strict"; - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = (encoding + '').toLowerCase() - loweredCase = true +/* eslint-disable */ +/** + * This file and any referenced files were automatically generated by @cosmology/telescope@1.0.7 + * DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain + * and run the transpile command or yarn proto command to regenerate this bundle. + */ +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.BinaryWriter = exports.BinaryReader = exports.WireType = void 0; +// Copyright (c) 2016, Daniel Wirtz All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of its author, nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// --- +// Code generated by the command line utilities is owned by the owner +// of the input file used when generating it. This code is not +// standalone and requires a support library to be linked with it. This +// support library is itself covered by the above license. +const utf8_1 = __webpack_require__(/*! ./utf8 */ "./node_modules/cosmjs-types/utf8.js"); +const varint_1 = __webpack_require__(/*! ./varint */ "./node_modules/cosmjs-types/varint.js"); +var WireType; +(function (WireType) { + WireType[WireType["Varint"] = 0] = "Varint"; + WireType[WireType["Fixed64"] = 1] = "Fixed64"; + WireType[WireType["Bytes"] = 2] = "Bytes"; + WireType[WireType["Fixed32"] = 5] = "Fixed32"; +})(WireType || (exports.WireType = WireType = {})); +class BinaryReader { + assertBounds() { + if (this.pos > this.len) + throw new RangeError("premature EOF"); + } + constructor(buf) { + this.buf = buf ? new Uint8Array(buf) : new Uint8Array(0); + this.pos = 0; + this.type = 0; + this.len = this.buf.length; } - } + tag() { + const tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7; + if (fieldNo <= 0 || wireType < 0 || wireType > 5) + throw new Error("illegal tag: field no " + fieldNo + " wire type " + wireType); + return [fieldNo, wireType, tag]; + } + skip(length) { + if (typeof length === "number") { + if (this.pos + length > this.len) + throw indexOutOfRange(this, length); + this.pos += length; + } + else { + do { + if (this.pos >= this.len) + throw indexOutOfRange(this); + } while (this.buf[this.pos++] & 128); + } + return this; + } + skipType(wireType) { + switch (wireType) { + case WireType.Varint: + this.skip(); + break; + case WireType.Fixed64: + this.skip(8); + break; + case WireType.Bytes: + this.skip(this.uint32()); + break; + case 3: + while ((wireType = this.uint32() & 7) !== 4) { + this.skipType(wireType); + } + break; + case WireType.Fixed32: + this.skip(4); + break; + /* istanbul ignore next */ + default: + throw Error("invalid wire type " + wireType + " at offset " + this.pos); + } + return this; + } + uint32() { + return varint_1.varint32read.bind(this)(); + } + int32() { + return this.uint32() | 0; + } + sint32() { + const num = this.uint32(); + return num % 2 === 1 ? (num + 1) / -2 : num / 2; // zigzag encoding + } + fixed32() { + const val = (0, varint_1.readUInt32)(this.buf, this.pos); + this.pos += 4; + return val; + } + sfixed32() { + const val = (0, varint_1.readInt32)(this.buf, this.pos); + this.pos += 4; + return val; + } + int64() { + const [lo, hi] = varint_1.varint64read.bind(this)(); + return BigInt((0, varint_1.int64ToString)(lo, hi)); + } + uint64() { + const [lo, hi] = varint_1.varint64read.bind(this)(); + return BigInt((0, varint_1.uInt64ToString)(lo, hi)); + } + sint64() { + let [lo, hi] = varint_1.varint64read.bind(this)(); + // zig zag + [lo, hi] = (0, varint_1.zzDecode)(lo, hi); + return BigInt((0, varint_1.int64ToString)(lo, hi)); + } + fixed64() { + const lo = this.sfixed32(); + const hi = this.sfixed32(); + return BigInt((0, varint_1.uInt64ToString)(lo, hi)); + } + sfixed64() { + const lo = this.sfixed32(); + const hi = this.sfixed32(); + return BigInt((0, varint_1.int64ToString)(lo, hi)); + } + float() { + throw new Error("float not supported"); + } + double() { + throw new Error("double not supported"); + } + bool() { + const [lo, hi] = varint_1.varint64read.bind(this)(); + return lo !== 0 || hi !== 0; + } + bytes() { + const len = this.uint32(), start = this.pos; + this.pos += len; + this.assertBounds(); + return this.buf.subarray(start, start + len); + } + string() { + const bytes = this.bytes(); + return (0, utf8_1.utf8Read)(bytes, 0, bytes.length); + } +} +exports.BinaryReader = BinaryReader; +class Op { + constructor(fn, len, val) { + this.fn = fn; + this.len = len; + this.val = val; + } + proceed(buf, pos) { + if (this.fn) { + this.fn(this.val, buf, pos); + } + } +} +class State { + constructor(writer) { + this.head = writer.head; + this.tail = writer.tail; + this.len = writer.len; + this.next = writer.states; + } +} +class BinaryWriter { + constructor() { + this.len = 0; + // uint64 is the same with int64 + this.uint64 = BinaryWriter.prototype.int64; + // sfixed64 is the same with fixed64 + this.sfixed64 = BinaryWriter.prototype.fixed64; + // sfixed32 is the same with fixed32 + this.sfixed32 = BinaryWriter.prototype.fixed32; + this.head = new Op(null, 0, 0); + this.tail = this.head; + this.states = null; + } + static create() { + return new BinaryWriter(); + } + static alloc(size) { + if (typeof Uint8Array !== "undefined") { + return pool((size) => new Uint8Array(size), Uint8Array.prototype.subarray)(size); + } + else { + return new Array(size); + } + } + _push(fn, len, val) { + this.tail = this.tail.next = new Op(fn, len, val); + this.len += len; + return this; + } + finish() { + let head = this.head.next, pos = 0; + const buf = BinaryWriter.alloc(this.len); + while (head) { + head.proceed(buf, pos); + pos += head.len; + head = head.next; + } + return buf; + } + fork() { + this.states = new State(this); + this.head = this.tail = new Op(null, 0, 0); + this.len = 0; + return this; + } + reset() { + if (this.states) { + this.head = this.states.head; + this.tail = this.states.tail; + this.len = this.states.len; + this.states = this.states.next; + } + else { + this.head = this.tail = new Op(null, 0, 0); + this.len = 0; + } + return this; + } + ldelim() { + const head = this.head, tail = this.tail, len = this.len; + this.reset().uint32(len); + if (len) { + this.tail.next = head.next; // skip noop + this.tail = tail; + this.len += len; + } + return this; + } + tag(fieldNo, type) { + return this.uint32(((fieldNo << 3) | type) >>> 0); + } + uint32(value) { + this.len += (this.tail = this.tail.next = + new Op(varint_1.writeVarint32, (value = value >>> 0) < 128 ? 1 : value < 16384 ? 2 : value < 2097152 ? 3 : value < 268435456 ? 4 : 5, value)).len; + return this; + } + int32(value) { + return value < 0 + ? this._push(varint_1.writeVarint64, 10, (0, varint_1.int64FromString)(value.toString())) // 10 bytes per spec + : this.uint32(value); + } + sint32(value) { + return this.uint32(((value << 1) ^ (value >> 31)) >>> 0); + } + int64(value) { + const { lo, hi } = (0, varint_1.int64FromString)(value.toString()); + return this._push(varint_1.writeVarint64, (0, varint_1.int64Length)(lo, hi), { lo, hi }); + } + sint64(value) { + let { lo, hi } = (0, varint_1.int64FromString)(value.toString()); + // zig zag + [lo, hi] = (0, varint_1.zzEncode)(lo, hi); + return this._push(varint_1.writeVarint64, (0, varint_1.int64Length)(lo, hi), { lo, hi }); + } + fixed64(value) { + const { lo, hi } = (0, varint_1.int64FromString)(value.toString()); + return this._push(varint_1.writeFixed32, 4, lo)._push(varint_1.writeFixed32, 4, hi); + } + bool(value) { + return this._push(varint_1.writeByte, 1, value ? 1 : 0); + } + fixed32(value) { + return this._push(varint_1.writeFixed32, 4, value >>> 0); + } + float(value) { + throw new Error("float not supported" + value); + } + double(value) { + throw new Error("double not supported" + value); + } + bytes(value) { + const len = value.length >>> 0; + if (!len) + return this._push(varint_1.writeByte, 1, 0); + return this.uint32(len)._push(writeBytes, len, value); + } + string(value) { + const len = (0, utf8_1.utf8Length)(value); + return len ? this.uint32(len)._push(utf8_1.utf8Write, len, value) : this._push(varint_1.writeByte, 1, 0); + } +} +exports.BinaryWriter = BinaryWriter; +function writeBytes(val, buf, pos) { + if (typeof Uint8Array !== "undefined") { + buf.set(val, pos); + } + else { + for (let i = 0; i < val.length; ++i) + buf[pos + i] = val[i]; + } +} +function pool(alloc, slice, size) { + const SIZE = size || 8192; + const MAX = SIZE >>> 1; + let slab = null; + let offset = SIZE; + return function pool_alloc(size) { + if (size < 1 || size > MAX) + return alloc(size); + if (offset + size > SIZE) { + slab = alloc(SIZE); + offset = 0; + } + const buf = slice.call(slab, offset, (offset += size)); + if (offset & 7) + // align to 32 bit + offset = (offset | 7) + 1; + return buf; + }; } +function indexOutOfRange(reader, writeLength) { + return RangeError("index out of range: " + reader.pos + " + " + (writeLength || 1) + " > " + reader.len); +} +//# sourceMappingURL=binary.js.map -// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package) -// to detect a Buffer instance. It's not possible to use `instanceof Buffer` -// reliably in a browserify context because there could be multiple different -// copies of the 'buffer' package in use. This method works even for Buffer -// instances that were created from another copy of the `buffer` package. -// See: https://github.com/feross/buffer/issues/154 -Buffer.prototype._isBuffer = true +/***/ }), -function swap (b, n, m) { - const i = b[n] - b[n] = b[m] - b[m] = i -} +/***/ "./node_modules/cosmjs-types/cosmos/auth/v1beta1/auth.js": +/*!***************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/auth/v1beta1/auth.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { -Buffer.prototype.swap16 = function swap16 () { - const len = this.length - if (len % 2 !== 0) { - throw new RangeError('Buffer size must be a multiple of 16-bits') - } - for (let i = 0; i < len; i += 2) { - swap(this, i, i + 1) - } - return this +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Params = exports.ModuleCredential = exports.ModuleAccount = exports.BaseAccount = exports.protobufPackage = void 0; +/* eslint-disable */ +const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "cosmos.auth.v1beta1"; +function createBaseBaseAccount() { + return { + address: "", + pubKey: undefined, + accountNumber: BigInt(0), + sequence: BigInt(0), + }; +} +exports.BaseAccount = { + typeUrl: "/cosmos.auth.v1beta1.BaseAccount", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.address !== "") { + writer.uint32(10).string(message.address); + } + if (message.pubKey !== undefined) { + any_1.Any.encode(message.pubKey, writer.uint32(18).fork()).ldelim(); + } + if (message.accountNumber !== BigInt(0)) { + writer.uint32(24).uint64(message.accountNumber); + } + if (message.sequence !== BigInt(0)) { + writer.uint32(32).uint64(message.sequence); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseBaseAccount(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.address = reader.string(); + break; + case 2: + message.pubKey = any_1.Any.decode(reader, reader.uint32()); + break; + case 3: + message.accountNumber = reader.uint64(); + break; + case 4: + message.sequence = reader.uint64(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseBaseAccount(); + if ((0, helpers_1.isSet)(object.address)) + obj.address = String(object.address); + if ((0, helpers_1.isSet)(object.pubKey)) + obj.pubKey = any_1.Any.fromJSON(object.pubKey); + if ((0, helpers_1.isSet)(object.accountNumber)) + obj.accountNumber = BigInt(object.accountNumber.toString()); + if ((0, helpers_1.isSet)(object.sequence)) + obj.sequence = BigInt(object.sequence.toString()); + return obj; + }, + toJSON(message) { + const obj = {}; + message.address !== undefined && (obj.address = message.address); + message.pubKey !== undefined && (obj.pubKey = message.pubKey ? any_1.Any.toJSON(message.pubKey) : undefined); + message.accountNumber !== undefined && + (obj.accountNumber = (message.accountNumber || BigInt(0)).toString()); + message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString()); + return obj; + }, + fromPartial(object) { + const message = createBaseBaseAccount(); + message.address = object.address ?? ""; + if (object.pubKey !== undefined && object.pubKey !== null) { + message.pubKey = any_1.Any.fromPartial(object.pubKey); + } + if (object.accountNumber !== undefined && object.accountNumber !== null) { + message.accountNumber = BigInt(object.accountNumber.toString()); + } + if (object.sequence !== undefined && object.sequence !== null) { + message.sequence = BigInt(object.sequence.toString()); + } + return message; + }, +}; +function createBaseModuleAccount() { + return { + baseAccount: undefined, + name: "", + permissions: [], + }; +} +exports.ModuleAccount = { + typeUrl: "/cosmos.auth.v1beta1.ModuleAccount", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.baseAccount !== undefined) { + exports.BaseAccount.encode(message.baseAccount, writer.uint32(10).fork()).ldelim(); + } + if (message.name !== "") { + writer.uint32(18).string(message.name); + } + for (const v of message.permissions) { + writer.uint32(26).string(v); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseModuleAccount(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseAccount = exports.BaseAccount.decode(reader, reader.uint32()); + break; + case 2: + message.name = reader.string(); + break; + case 3: + message.permissions.push(reader.string()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseModuleAccount(); + if ((0, helpers_1.isSet)(object.baseAccount)) + obj.baseAccount = exports.BaseAccount.fromJSON(object.baseAccount); + if ((0, helpers_1.isSet)(object.name)) + obj.name = String(object.name); + if (Array.isArray(object?.permissions)) + obj.permissions = object.permissions.map((e) => String(e)); + return obj; + }, + toJSON(message) { + const obj = {}; + message.baseAccount !== undefined && + (obj.baseAccount = message.baseAccount ? exports.BaseAccount.toJSON(message.baseAccount) : undefined); + message.name !== undefined && (obj.name = message.name); + if (message.permissions) { + obj.permissions = message.permissions.map((e) => e); + } + else { + obj.permissions = []; + } + return obj; + }, + fromPartial(object) { + const message = createBaseModuleAccount(); + if (object.baseAccount !== undefined && object.baseAccount !== null) { + message.baseAccount = exports.BaseAccount.fromPartial(object.baseAccount); + } + message.name = object.name ?? ""; + message.permissions = object.permissions?.map((e) => e) || []; + return message; + }, +}; +function createBaseModuleCredential() { + return { + moduleName: "", + derivationKeys: [], + }; +} +exports.ModuleCredential = { + typeUrl: "/cosmos.auth.v1beta1.ModuleCredential", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.moduleName !== "") { + writer.uint32(10).string(message.moduleName); + } + for (const v of message.derivationKeys) { + writer.uint32(18).bytes(v); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseModuleCredential(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.moduleName = reader.string(); + break; + case 2: + message.derivationKeys.push(reader.bytes()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseModuleCredential(); + if ((0, helpers_1.isSet)(object.moduleName)) + obj.moduleName = String(object.moduleName); + if (Array.isArray(object?.derivationKeys)) + obj.derivationKeys = object.derivationKeys.map((e) => (0, helpers_1.bytesFromBase64)(e)); + return obj; + }, + toJSON(message) { + const obj = {}; + message.moduleName !== undefined && (obj.moduleName = message.moduleName); + if (message.derivationKeys) { + obj.derivationKeys = message.derivationKeys.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array())); + } + else { + obj.derivationKeys = []; + } + return obj; + }, + fromPartial(object) { + const message = createBaseModuleCredential(); + message.moduleName = object.moduleName ?? ""; + message.derivationKeys = object.derivationKeys?.map((e) => e) || []; + return message; + }, +}; +function createBaseParams() { + return { + maxMemoCharacters: BigInt(0), + txSigLimit: BigInt(0), + txSizeCostPerByte: BigInt(0), + sigVerifyCostEd25519: BigInt(0), + sigVerifyCostSecp256k1: BigInt(0), + }; } +exports.Params = { + typeUrl: "/cosmos.auth.v1beta1.Params", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.maxMemoCharacters !== BigInt(0)) { + writer.uint32(8).uint64(message.maxMemoCharacters); + } + if (message.txSigLimit !== BigInt(0)) { + writer.uint32(16).uint64(message.txSigLimit); + } + if (message.txSizeCostPerByte !== BigInt(0)) { + writer.uint32(24).uint64(message.txSizeCostPerByte); + } + if (message.sigVerifyCostEd25519 !== BigInt(0)) { + writer.uint32(32).uint64(message.sigVerifyCostEd25519); + } + if (message.sigVerifyCostSecp256k1 !== BigInt(0)) { + writer.uint32(40).uint64(message.sigVerifyCostSecp256k1); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseParams(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.maxMemoCharacters = reader.uint64(); + break; + case 2: + message.txSigLimit = reader.uint64(); + break; + case 3: + message.txSizeCostPerByte = reader.uint64(); + break; + case 4: + message.sigVerifyCostEd25519 = reader.uint64(); + break; + case 5: + message.sigVerifyCostSecp256k1 = reader.uint64(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseParams(); + if ((0, helpers_1.isSet)(object.maxMemoCharacters)) + obj.maxMemoCharacters = BigInt(object.maxMemoCharacters.toString()); + if ((0, helpers_1.isSet)(object.txSigLimit)) + obj.txSigLimit = BigInt(object.txSigLimit.toString()); + if ((0, helpers_1.isSet)(object.txSizeCostPerByte)) + obj.txSizeCostPerByte = BigInt(object.txSizeCostPerByte.toString()); + if ((0, helpers_1.isSet)(object.sigVerifyCostEd25519)) + obj.sigVerifyCostEd25519 = BigInt(object.sigVerifyCostEd25519.toString()); + if ((0, helpers_1.isSet)(object.sigVerifyCostSecp256k1)) + obj.sigVerifyCostSecp256k1 = BigInt(object.sigVerifyCostSecp256k1.toString()); + return obj; + }, + toJSON(message) { + const obj = {}; + message.maxMemoCharacters !== undefined && + (obj.maxMemoCharacters = (message.maxMemoCharacters || BigInt(0)).toString()); + message.txSigLimit !== undefined && (obj.txSigLimit = (message.txSigLimit || BigInt(0)).toString()); + message.txSizeCostPerByte !== undefined && + (obj.txSizeCostPerByte = (message.txSizeCostPerByte || BigInt(0)).toString()); + message.sigVerifyCostEd25519 !== undefined && + (obj.sigVerifyCostEd25519 = (message.sigVerifyCostEd25519 || BigInt(0)).toString()); + message.sigVerifyCostSecp256k1 !== undefined && + (obj.sigVerifyCostSecp256k1 = (message.sigVerifyCostSecp256k1 || BigInt(0)).toString()); + return obj; + }, + fromPartial(object) { + const message = createBaseParams(); + if (object.maxMemoCharacters !== undefined && object.maxMemoCharacters !== null) { + message.maxMemoCharacters = BigInt(object.maxMemoCharacters.toString()); + } + if (object.txSigLimit !== undefined && object.txSigLimit !== null) { + message.txSigLimit = BigInt(object.txSigLimit.toString()); + } + if (object.txSizeCostPerByte !== undefined && object.txSizeCostPerByte !== null) { + message.txSizeCostPerByte = BigInt(object.txSizeCostPerByte.toString()); + } + if (object.sigVerifyCostEd25519 !== undefined && object.sigVerifyCostEd25519 !== null) { + message.sigVerifyCostEd25519 = BigInt(object.sigVerifyCostEd25519.toString()); + } + if (object.sigVerifyCostSecp256k1 !== undefined && object.sigVerifyCostSecp256k1 !== null) { + message.sigVerifyCostSecp256k1 = BigInt(object.sigVerifyCostSecp256k1.toString()); + } + return message; + }, +}; +//# sourceMappingURL=auth.js.map -Buffer.prototype.swap32 = function swap32 () { - const len = this.length - if (len % 4 !== 0) { - throw new RangeError('Buffer size must be a multiple of 32-bits') - } - for (let i = 0; i < len; i += 4) { - swap(this, i, i + 3) - swap(this, i + 1, i + 2) - } - return this +/***/ }), + +/***/ "./node_modules/cosmjs-types/cosmos/auth/v1beta1/query.js": +/*!****************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/auth/v1beta1/query.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.QueryClientImpl = exports.QueryAccountInfoResponse = exports.QueryAccountInfoRequest = exports.QueryAccountAddressByIDResponse = exports.QueryAccountAddressByIDRequest = exports.AddressStringToBytesResponse = exports.AddressStringToBytesRequest = exports.AddressBytesToStringResponse = exports.AddressBytesToStringRequest = exports.Bech32PrefixResponse = exports.Bech32PrefixRequest = exports.QueryModuleAccountByNameResponse = exports.QueryModuleAccountByNameRequest = exports.QueryModuleAccountsResponse = exports.QueryModuleAccountsRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryAccountResponse = exports.QueryAccountRequest = exports.QueryAccountsResponse = exports.QueryAccountsRequest = exports.protobufPackage = void 0; +/* eslint-disable */ +const pagination_1 = __webpack_require__(/*! ../../base/query/v1beta1/pagination */ "./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js"); +const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); +const auth_1 = __webpack_require__(/*! ./auth */ "./node_modules/cosmjs-types/cosmos/auth/v1beta1/auth.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "cosmos.auth.v1beta1"; +function createBaseQueryAccountsRequest() { + return { + pagination: undefined, + }; +} +exports.QueryAccountsRequest = { + typeUrl: "/cosmos.auth.v1beta1.QueryAccountsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryAccountsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryAccountsRequest(); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; + }, + toJSON(message) { + const obj = {}; + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryAccountsRequest(); + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } + return message; + }, +}; +function createBaseQueryAccountsResponse() { + return { + accounts: [], + pagination: undefined, + }; +} +exports.QueryAccountsResponse = { + typeUrl: "/cosmos.auth.v1beta1.QueryAccountsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.accounts) { + any_1.Any.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryAccountsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.accounts.push(any_1.Any.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryAccountsResponse(); + if (Array.isArray(object?.accounts)) + obj.accounts = object.accounts.map((e) => any_1.Any.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; + }, + toJSON(message) { + const obj = {}; + if (message.accounts) { + obj.accounts = message.accounts.map((e) => (e ? any_1.Any.toJSON(e) : undefined)); + } + else { + obj.accounts = []; + } + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryAccountsResponse(); + message.accounts = object.accounts?.map((e) => any_1.Any.fromPartial(e)) || []; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } + return message; + }, +}; +function createBaseQueryAccountRequest() { + return { + address: "", + }; +} +exports.QueryAccountRequest = { + typeUrl: "/cosmos.auth.v1beta1.QueryAccountRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.address !== "") { + writer.uint32(10).string(message.address); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryAccountRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.address = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryAccountRequest(); + if ((0, helpers_1.isSet)(object.address)) + obj.address = String(object.address); + return obj; + }, + toJSON(message) { + const obj = {}; + message.address !== undefined && (obj.address = message.address); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryAccountRequest(); + message.address = object.address ?? ""; + return message; + }, +}; +function createBaseQueryAccountResponse() { + return { + account: undefined, + }; +} +exports.QueryAccountResponse = { + typeUrl: "/cosmos.auth.v1beta1.QueryAccountResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.account !== undefined) { + any_1.Any.encode(message.account, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryAccountResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.account = any_1.Any.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryAccountResponse(); + if ((0, helpers_1.isSet)(object.account)) + obj.account = any_1.Any.fromJSON(object.account); + return obj; + }, + toJSON(message) { + const obj = {}; + message.account !== undefined && + (obj.account = message.account ? any_1.Any.toJSON(message.account) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryAccountResponse(); + if (object.account !== undefined && object.account !== null) { + message.account = any_1.Any.fromPartial(object.account); + } + return message; + }, +}; +function createBaseQueryParamsRequest() { + return {}; +} +exports.QueryParamsRequest = { + typeUrl: "/cosmos.auth.v1beta1.QueryParamsRequest", + encode(_, writer = binary_1.BinaryWriter.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryParamsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_) { + const obj = createBaseQueryParamsRequest(); + return obj; + }, + toJSON(_) { + const obj = {}; + return obj; + }, + fromPartial(_) { + const message = createBaseQueryParamsRequest(); + return message; + }, +}; +function createBaseQueryParamsResponse() { + return { + params: auth_1.Params.fromPartial({}), + }; +} +exports.QueryParamsResponse = { + typeUrl: "/cosmos.auth.v1beta1.QueryParamsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.params !== undefined) { + auth_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryParamsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.params = auth_1.Params.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryParamsResponse(); + if ((0, helpers_1.isSet)(object.params)) + obj.params = auth_1.Params.fromJSON(object.params); + return obj; + }, + toJSON(message) { + const obj = {}; + message.params !== undefined && (obj.params = message.params ? auth_1.Params.toJSON(message.params) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryParamsResponse(); + if (object.params !== undefined && object.params !== null) { + message.params = auth_1.Params.fromPartial(object.params); + } + return message; + }, +}; +function createBaseQueryModuleAccountsRequest() { + return {}; +} +exports.QueryModuleAccountsRequest = { + typeUrl: "/cosmos.auth.v1beta1.QueryModuleAccountsRequest", + encode(_, writer = binary_1.BinaryWriter.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryModuleAccountsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_) { + const obj = createBaseQueryModuleAccountsRequest(); + return obj; + }, + toJSON(_) { + const obj = {}; + return obj; + }, + fromPartial(_) { + const message = createBaseQueryModuleAccountsRequest(); + return message; + }, +}; +function createBaseQueryModuleAccountsResponse() { + return { + accounts: [], + }; +} +exports.QueryModuleAccountsResponse = { + typeUrl: "/cosmos.auth.v1beta1.QueryModuleAccountsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.accounts) { + any_1.Any.encode(v, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryModuleAccountsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.accounts.push(any_1.Any.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryModuleAccountsResponse(); + if (Array.isArray(object?.accounts)) + obj.accounts = object.accounts.map((e) => any_1.Any.fromJSON(e)); + return obj; + }, + toJSON(message) { + const obj = {}; + if (message.accounts) { + obj.accounts = message.accounts.map((e) => (e ? any_1.Any.toJSON(e) : undefined)); + } + else { + obj.accounts = []; + } + return obj; + }, + fromPartial(object) { + const message = createBaseQueryModuleAccountsResponse(); + message.accounts = object.accounts?.map((e) => any_1.Any.fromPartial(e)) || []; + return message; + }, +}; +function createBaseQueryModuleAccountByNameRequest() { + return { + name: "", + }; +} +exports.QueryModuleAccountByNameRequest = { + typeUrl: "/cosmos.auth.v1beta1.QueryModuleAccountByNameRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.name !== "") { + writer.uint32(10).string(message.name); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryModuleAccountByNameRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryModuleAccountByNameRequest(); + if ((0, helpers_1.isSet)(object.name)) + obj.name = String(object.name); + return obj; + }, + toJSON(message) { + const obj = {}; + message.name !== undefined && (obj.name = message.name); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryModuleAccountByNameRequest(); + message.name = object.name ?? ""; + return message; + }, +}; +function createBaseQueryModuleAccountByNameResponse() { + return { + account: undefined, + }; +} +exports.QueryModuleAccountByNameResponse = { + typeUrl: "/cosmos.auth.v1beta1.QueryModuleAccountByNameResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.account !== undefined) { + any_1.Any.encode(message.account, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryModuleAccountByNameResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.account = any_1.Any.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryModuleAccountByNameResponse(); + if ((0, helpers_1.isSet)(object.account)) + obj.account = any_1.Any.fromJSON(object.account); + return obj; + }, + toJSON(message) { + const obj = {}; + message.account !== undefined && + (obj.account = message.account ? any_1.Any.toJSON(message.account) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryModuleAccountByNameResponse(); + if (object.account !== undefined && object.account !== null) { + message.account = any_1.Any.fromPartial(object.account); + } + return message; + }, +}; +function createBaseBech32PrefixRequest() { + return {}; +} +exports.Bech32PrefixRequest = { + typeUrl: "/cosmos.auth.v1beta1.Bech32PrefixRequest", + encode(_, writer = binary_1.BinaryWriter.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseBech32PrefixRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_) { + const obj = createBaseBech32PrefixRequest(); + return obj; + }, + toJSON(_) { + const obj = {}; + return obj; + }, + fromPartial(_) { + const message = createBaseBech32PrefixRequest(); + return message; + }, +}; +function createBaseBech32PrefixResponse() { + return { + bech32Prefix: "", + }; +} +exports.Bech32PrefixResponse = { + typeUrl: "/cosmos.auth.v1beta1.Bech32PrefixResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.bech32Prefix !== "") { + writer.uint32(10).string(message.bech32Prefix); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseBech32PrefixResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.bech32Prefix = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseBech32PrefixResponse(); + if ((0, helpers_1.isSet)(object.bech32Prefix)) + obj.bech32Prefix = String(object.bech32Prefix); + return obj; + }, + toJSON(message) { + const obj = {}; + message.bech32Prefix !== undefined && (obj.bech32Prefix = message.bech32Prefix); + return obj; + }, + fromPartial(object) { + const message = createBaseBech32PrefixResponse(); + message.bech32Prefix = object.bech32Prefix ?? ""; + return message; + }, +}; +function createBaseAddressBytesToStringRequest() { + return { + addressBytes: new Uint8Array(), + }; +} +exports.AddressBytesToStringRequest = { + typeUrl: "/cosmos.auth.v1beta1.AddressBytesToStringRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.addressBytes.length !== 0) { + writer.uint32(10).bytes(message.addressBytes); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAddressBytesToStringRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.addressBytes = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseAddressBytesToStringRequest(); + if ((0, helpers_1.isSet)(object.addressBytes)) + obj.addressBytes = (0, helpers_1.bytesFromBase64)(object.addressBytes); + return obj; + }, + toJSON(message) { + const obj = {}; + message.addressBytes !== undefined && + (obj.addressBytes = (0, helpers_1.base64FromBytes)(message.addressBytes !== undefined ? message.addressBytes : new Uint8Array())); + return obj; + }, + fromPartial(object) { + const message = createBaseAddressBytesToStringRequest(); + message.addressBytes = object.addressBytes ?? new Uint8Array(); + return message; + }, +}; +function createBaseAddressBytesToStringResponse() { + return { + addressString: "", + }; +} +exports.AddressBytesToStringResponse = { + typeUrl: "/cosmos.auth.v1beta1.AddressBytesToStringResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.addressString !== "") { + writer.uint32(10).string(message.addressString); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAddressBytesToStringResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.addressString = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseAddressBytesToStringResponse(); + if ((0, helpers_1.isSet)(object.addressString)) + obj.addressString = String(object.addressString); + return obj; + }, + toJSON(message) { + const obj = {}; + message.addressString !== undefined && (obj.addressString = message.addressString); + return obj; + }, + fromPartial(object) { + const message = createBaseAddressBytesToStringResponse(); + message.addressString = object.addressString ?? ""; + return message; + }, +}; +function createBaseAddressStringToBytesRequest() { + return { + addressString: "", + }; } - -Buffer.prototype.swap64 = function swap64 () { - const len = this.length - if (len % 8 !== 0) { - throw new RangeError('Buffer size must be a multiple of 64-bits') - } - for (let i = 0; i < len; i += 8) { - swap(this, i, i + 7) - swap(this, i + 1, i + 6) - swap(this, i + 2, i + 5) - swap(this, i + 3, i + 4) - } - return this +exports.AddressStringToBytesRequest = { + typeUrl: "/cosmos.auth.v1beta1.AddressStringToBytesRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.addressString !== "") { + writer.uint32(10).string(message.addressString); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAddressStringToBytesRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.addressString = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseAddressStringToBytesRequest(); + if ((0, helpers_1.isSet)(object.addressString)) + obj.addressString = String(object.addressString); + return obj; + }, + toJSON(message) { + const obj = {}; + message.addressString !== undefined && (obj.addressString = message.addressString); + return obj; + }, + fromPartial(object) { + const message = createBaseAddressStringToBytesRequest(); + message.addressString = object.addressString ?? ""; + return message; + }, +}; +function createBaseAddressStringToBytesResponse() { + return { + addressBytes: new Uint8Array(), + }; } - -Buffer.prototype.toString = function toString () { - const length = this.length - if (length === 0) return '' - if (arguments.length === 0) return utf8Slice(this, 0, length) - return slowToString.apply(this, arguments) +exports.AddressStringToBytesResponse = { + typeUrl: "/cosmos.auth.v1beta1.AddressStringToBytesResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.addressBytes.length !== 0) { + writer.uint32(10).bytes(message.addressBytes); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAddressStringToBytesResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.addressBytes = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseAddressStringToBytesResponse(); + if ((0, helpers_1.isSet)(object.addressBytes)) + obj.addressBytes = (0, helpers_1.bytesFromBase64)(object.addressBytes); + return obj; + }, + toJSON(message) { + const obj = {}; + message.addressBytes !== undefined && + (obj.addressBytes = (0, helpers_1.base64FromBytes)(message.addressBytes !== undefined ? message.addressBytes : new Uint8Array())); + return obj; + }, + fromPartial(object) { + const message = createBaseAddressStringToBytesResponse(); + message.addressBytes = object.addressBytes ?? new Uint8Array(); + return message; + }, +}; +function createBaseQueryAccountAddressByIDRequest() { + return { + id: BigInt(0), + accountId: BigInt(0), + }; } - -Buffer.prototype.toLocaleString = Buffer.prototype.toString - -Buffer.prototype.equals = function equals (b) { - if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') - if (this === b) return true - return Buffer.compare(this, b) === 0 +exports.QueryAccountAddressByIDRequest = { + typeUrl: "/cosmos.auth.v1beta1.QueryAccountAddressByIDRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.id !== BigInt(0)) { + writer.uint32(8).int64(message.id); + } + if (message.accountId !== BigInt(0)) { + writer.uint32(16).uint64(message.accountId); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryAccountAddressByIDRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.id = reader.int64(); + break; + case 2: + message.accountId = reader.uint64(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryAccountAddressByIDRequest(); + if ((0, helpers_1.isSet)(object.id)) + obj.id = BigInt(object.id.toString()); + if ((0, helpers_1.isSet)(object.accountId)) + obj.accountId = BigInt(object.accountId.toString()); + return obj; + }, + toJSON(message) { + const obj = {}; + message.id !== undefined && (obj.id = (message.id || BigInt(0)).toString()); + message.accountId !== undefined && (obj.accountId = (message.accountId || BigInt(0)).toString()); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryAccountAddressByIDRequest(); + if (object.id !== undefined && object.id !== null) { + message.id = BigInt(object.id.toString()); + } + if (object.accountId !== undefined && object.accountId !== null) { + message.accountId = BigInt(object.accountId.toString()); + } + return message; + }, +}; +function createBaseQueryAccountAddressByIDResponse() { + return { + accountAddress: "", + }; } - -Buffer.prototype.inspect = function inspect () { - let str = '' - const max = exports.INSPECT_MAX_BYTES - str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim() - if (this.length > max) str += ' ... ' - return '' +exports.QueryAccountAddressByIDResponse = { + typeUrl: "/cosmos.auth.v1beta1.QueryAccountAddressByIDResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.accountAddress !== "") { + writer.uint32(10).string(message.accountAddress); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryAccountAddressByIDResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.accountAddress = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryAccountAddressByIDResponse(); + if ((0, helpers_1.isSet)(object.accountAddress)) + obj.accountAddress = String(object.accountAddress); + return obj; + }, + toJSON(message) { + const obj = {}; + message.accountAddress !== undefined && (obj.accountAddress = message.accountAddress); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryAccountAddressByIDResponse(); + message.accountAddress = object.accountAddress ?? ""; + return message; + }, +}; +function createBaseQueryAccountInfoRequest() { + return { + address: "", + }; } -if (customInspectSymbol) { - Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect +exports.QueryAccountInfoRequest = { + typeUrl: "/cosmos.auth.v1beta1.QueryAccountInfoRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.address !== "") { + writer.uint32(10).string(message.address); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryAccountInfoRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.address = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryAccountInfoRequest(); + if ((0, helpers_1.isSet)(object.address)) + obj.address = String(object.address); + return obj; + }, + toJSON(message) { + const obj = {}; + message.address !== undefined && (obj.address = message.address); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryAccountInfoRequest(); + message.address = object.address ?? ""; + return message; + }, +}; +function createBaseQueryAccountInfoResponse() { + return { + info: undefined, + }; } - -Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { - if (isInstance(target, Uint8Array)) { - target = Buffer.from(target, target.offset, target.byteLength) - } - if (!Buffer.isBuffer(target)) { - throw new TypeError( - 'The "target" argument must be one of type Buffer or Uint8Array. ' + - 'Received type ' + (typeof target) - ) - } - - if (start === undefined) { - start = 0 - } - if (end === undefined) { - end = target ? target.length : 0 - } - if (thisStart === undefined) { - thisStart = 0 - } - if (thisEnd === undefined) { - thisEnd = this.length - } - - if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { - throw new RangeError('out of range index') - } - - if (thisStart >= thisEnd && start >= end) { - return 0 - } - if (thisStart >= thisEnd) { - return -1 - } - if (start >= end) { - return 1 - } - - start >>>= 0 - end >>>= 0 - thisStart >>>= 0 - thisEnd >>>= 0 - - if (this === target) return 0 - - let x = thisEnd - thisStart - let y = end - start - const len = Math.min(x, y) - - const thisCopy = this.slice(thisStart, thisEnd) - const targetCopy = target.slice(start, end) - - for (let i = 0; i < len; ++i) { - if (thisCopy[i] !== targetCopy[i]) { - x = thisCopy[i] - y = targetCopy[i] - break +exports.QueryAccountInfoResponse = { + typeUrl: "/cosmos.auth.v1beta1.QueryAccountInfoResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.info !== undefined) { + auth_1.BaseAccount.encode(message.info, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryAccountInfoResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.info = auth_1.BaseAccount.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryAccountInfoResponse(); + if ((0, helpers_1.isSet)(object.info)) + obj.info = auth_1.BaseAccount.fromJSON(object.info); + return obj; + }, + toJSON(message) { + const obj = {}; + message.info !== undefined && (obj.info = message.info ? auth_1.BaseAccount.toJSON(message.info) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryAccountInfoResponse(); + if (object.info !== undefined && object.info !== null) { + message.info = auth_1.BaseAccount.fromPartial(object.info); + } + return message; + }, +}; +class QueryClientImpl { + constructor(rpc) { + this.rpc = rpc; + this.Accounts = this.Accounts.bind(this); + this.Account = this.Account.bind(this); + this.AccountAddressByID = this.AccountAddressByID.bind(this); + this.Params = this.Params.bind(this); + this.ModuleAccounts = this.ModuleAccounts.bind(this); + this.ModuleAccountByName = this.ModuleAccountByName.bind(this); + this.Bech32Prefix = this.Bech32Prefix.bind(this); + this.AddressBytesToString = this.AddressBytesToString.bind(this); + this.AddressStringToBytes = this.AddressStringToBytes.bind(this); + this.AccountInfo = this.AccountInfo.bind(this); } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 -} - -// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, -// OR the last index of `val` in `buffer` at offset <= `byteOffset`. -// -// Arguments: -// - buffer - a Buffer to search -// - val - a string, Buffer, or number -// - byteOffset - an index into `buffer`; will be clamped to an int32 -// - encoding - an optional encoding, relevant is val is a string -// - dir - true for indexOf, false for lastIndexOf -function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { - // Empty buffer means no match - if (buffer.length === 0) return -1 - - // Normalize byteOffset - if (typeof byteOffset === 'string') { - encoding = byteOffset - byteOffset = 0 - } else if (byteOffset > 0x7fffffff) { - byteOffset = 0x7fffffff - } else if (byteOffset < -0x80000000) { - byteOffset = -0x80000000 - } - byteOffset = +byteOffset // Coerce to Number. - if (numberIsNaN(byteOffset)) { - // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer - byteOffset = dir ? 0 : (buffer.length - 1) - } - - // Normalize byteOffset: negative offsets start from the end of the buffer - if (byteOffset < 0) byteOffset = buffer.length + byteOffset - if (byteOffset >= buffer.length) { - if (dir) return -1 - else byteOffset = buffer.length - 1 - } else if (byteOffset < 0) { - if (dir) byteOffset = 0 - else return -1 - } - - // Normalize val - if (typeof val === 'string') { - val = Buffer.from(val, encoding) - } - - // Finally, search either indexOf (if dir is true) or lastIndexOf - if (Buffer.isBuffer(val)) { - // Special case: looking for empty string/buffer always fails - if (val.length === 0) { - return -1 + Accounts(request = { + pagination: pagination_1.PageRequest.fromPartial({}), + }) { + const data = exports.QueryAccountsRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "Accounts", data); + return promise.then((data) => exports.QueryAccountsResponse.decode(new binary_1.BinaryReader(data))); } - return arrayIndexOf(buffer, val, byteOffset, encoding, dir) - } else if (typeof val === 'number') { - val = val & 0xFF // Search for a byte value [0-255] - if (typeof Uint8Array.prototype.indexOf === 'function') { - if (dir) { - return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) - } else { - return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) - } + Account(request) { + const data = exports.QueryAccountRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "Account", data); + return promise.then((data) => exports.QueryAccountResponse.decode(new binary_1.BinaryReader(data))); } - return arrayIndexOf(buffer, [val], byteOffset, encoding, dir) - } - - throw new TypeError('val must be string, number or Buffer') -} - -function arrayIndexOf (arr, val, byteOffset, encoding, dir) { - let indexSize = 1 - let arrLength = arr.length - let valLength = val.length - - if (encoding !== undefined) { - encoding = String(encoding).toLowerCase() - if (encoding === 'ucs2' || encoding === 'ucs-2' || - encoding === 'utf16le' || encoding === 'utf-16le') { - if (arr.length < 2 || val.length < 2) { - return -1 - } - indexSize = 2 - arrLength /= 2 - valLength /= 2 - byteOffset /= 2 + AccountAddressByID(request) { + const data = exports.QueryAccountAddressByIDRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "AccountAddressByID", data); + return promise.then((data) => exports.QueryAccountAddressByIDResponse.decode(new binary_1.BinaryReader(data))); } - } - - function read (buf, i) { - if (indexSize === 1) { - return buf[i] - } else { - return buf.readUInt16BE(i * indexSize) + Params(request = {}) { + const data = exports.QueryParamsRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "Params", data); + return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data))); } - } - - let i - if (dir) { - let foundIndex = -1 - for (i = byteOffset; i < arrLength; i++) { - if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { - if (foundIndex === -1) foundIndex = i - if (i - foundIndex + 1 === valLength) return foundIndex * indexSize - } else { - if (foundIndex !== -1) i -= i - foundIndex - foundIndex = -1 - } + ModuleAccounts(request = {}) { + const data = exports.QueryModuleAccountsRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "ModuleAccounts", data); + return promise.then((data) => exports.QueryModuleAccountsResponse.decode(new binary_1.BinaryReader(data))); } - } else { - if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength - for (i = byteOffset; i >= 0; i--) { - let found = true - for (let j = 0; j < valLength; j++) { - if (read(arr, i + j) !== read(val, j)) { - found = false - break - } - } - if (found) return i + ModuleAccountByName(request) { + const data = exports.QueryModuleAccountByNameRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "ModuleAccountByName", data); + return promise.then((data) => exports.QueryModuleAccountByNameResponse.decode(new binary_1.BinaryReader(data))); } - } - - return -1 -} - -Buffer.prototype.includes = function includes (val, byteOffset, encoding) { - return this.indexOf(val, byteOffset, encoding) !== -1 -} - -Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, true) -} - -Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, false) -} - -function hexWrite (buf, string, offset, length) { - offset = Number(offset) || 0 - const remaining = buf.length - offset - if (!length) { - length = remaining - } else { - length = Number(length) - if (length > remaining) { - length = remaining + Bech32Prefix(request = {}) { + const data = exports.Bech32PrefixRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "Bech32Prefix", data); + return promise.then((data) => exports.Bech32PrefixResponse.decode(new binary_1.BinaryReader(data))); } - } - - const strLen = string.length - - if (length > strLen / 2) { - length = strLen / 2 - } - let i - for (i = 0; i < length; ++i) { - const parsed = parseInt(string.substr(i * 2, 2), 16) - if (numberIsNaN(parsed)) return i - buf[offset + i] = parsed - } - return i -} - -function utf8Write (buf, string, offset, length) { - return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) -} - -function asciiWrite (buf, string, offset, length) { - return blitBuffer(asciiToBytes(string), buf, offset, length) -} - -function base64Write (buf, string, offset, length) { - return blitBuffer(base64ToBytes(string), buf, offset, length) -} - -function ucs2Write (buf, string, offset, length) { - return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) -} - -Buffer.prototype.write = function write (string, offset, length, encoding) { - // Buffer#write(string) - if (offset === undefined) { - encoding = 'utf8' - length = this.length - offset = 0 - // Buffer#write(string, encoding) - } else if (length === undefined && typeof offset === 'string') { - encoding = offset - length = this.length - offset = 0 - // Buffer#write(string, offset[, length][, encoding]) - } else if (isFinite(offset)) { - offset = offset >>> 0 - if (isFinite(length)) { - length = length >>> 0 - if (encoding === undefined) encoding = 'utf8' - } else { - encoding = length - length = undefined + AddressBytesToString(request) { + const data = exports.AddressBytesToStringRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "AddressBytesToString", data); + return promise.then((data) => exports.AddressBytesToStringResponse.decode(new binary_1.BinaryReader(data))); } - } else { - throw new Error( - 'Buffer.write(string, encoding, offset[, length]) is no longer supported' - ) - } - - const remaining = this.length - offset - if (length === undefined || length > remaining) length = remaining - - if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { - throw new RangeError('Attempt to write outside buffer bounds') - } - - if (!encoding) encoding = 'utf8' - - let loweredCase = false - for (;;) { - switch (encoding) { - case 'hex': - return hexWrite(this, string, offset, length) - - case 'utf8': - case 'utf-8': - return utf8Write(this, string, offset, length) - - case 'ascii': - case 'latin1': - case 'binary': - return asciiWrite(this, string, offset, length) - - case 'base64': - // Warning: maxLength not taken into account in base64Write - return base64Write(this, string, offset, length) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return ucs2Write(this, string, offset, length) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = ('' + encoding).toLowerCase() - loweredCase = true + AddressStringToBytes(request) { + const data = exports.AddressStringToBytesRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "AddressStringToBytes", data); + return promise.then((data) => exports.AddressStringToBytesResponse.decode(new binary_1.BinaryReader(data))); + } + AccountInfo(request) { + const data = exports.QueryAccountInfoRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "AccountInfo", data); + return promise.then((data) => exports.QueryAccountInfoResponse.decode(new binary_1.BinaryReader(data))); } - } -} - -Buffer.prototype.toJSON = function toJSON () { - return { - type: 'Buffer', - data: Array.prototype.slice.call(this._arr || this, 0) - } -} - -function base64Slice (buf, start, end) { - if (start === 0 && end === buf.length) { - return base64.fromByteArray(buf) - } else { - return base64.fromByteArray(buf.slice(start, end)) - } } +exports.QueryClientImpl = QueryClientImpl; +//# sourceMappingURL=query.js.map -function utf8Slice (buf, start, end) { - end = Math.min(buf.length, end) - const res = [] +/***/ }), - let i = start - while (i < end) { - const firstByte = buf[i] - let codePoint = null - let bytesPerSequence = (firstByte > 0xEF) - ? 4 - : (firstByte > 0xDF) - ? 3 - : (firstByte > 0xBF) - ? 2 - : 1 +/***/ "./node_modules/cosmjs-types/cosmos/authz/v1beta1/authz.js": +/*!*****************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/authz/v1beta1/authz.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - if (i + bytesPerSequence <= end) { - let secondByte, thirdByte, fourthByte, tempCodePoint +"use strict"; - switch (bytesPerSequence) { - case 1: - if (firstByte < 0x80) { - codePoint = firstByte - } - break - case 2: - secondByte = buf[i + 1] - if ((secondByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) - if (tempCodePoint > 0x7F) { - codePoint = tempCodePoint +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.GrantQueueItem = exports.GrantAuthorization = exports.Grant = exports.GenericAuthorization = exports.protobufPackage = void 0; +/* eslint-disable */ +const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); +const timestamp_1 = __webpack_require__(/*! ../../../google/protobuf/timestamp */ "./node_modules/cosmjs-types/google/protobuf/timestamp.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "cosmos.authz.v1beta1"; +function createBaseGenericAuthorization() { + return { + msg: "", + }; +} +exports.GenericAuthorization = { + typeUrl: "/cosmos.authz.v1beta1.GenericAuthorization", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.msg !== "") { + writer.uint32(10).string(message.msg); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGenericAuthorization(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.msg = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; } - } - break - case 3: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) - if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { - codePoint = tempCodePoint + } + return message; + }, + fromJSON(object) { + const obj = createBaseGenericAuthorization(); + if ((0, helpers_1.isSet)(object.msg)) + obj.msg = String(object.msg); + return obj; + }, + toJSON(message) { + const obj = {}; + message.msg !== undefined && (obj.msg = message.msg); + return obj; + }, + fromPartial(object) { + const message = createBaseGenericAuthorization(); + message.msg = object.msg ?? ""; + return message; + }, +}; +function createBaseGrant() { + return { + authorization: undefined, + expiration: undefined, + }; +} +exports.Grant = { + typeUrl: "/cosmos.authz.v1beta1.Grant", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.authorization !== undefined) { + any_1.Any.encode(message.authorization, writer.uint32(10).fork()).ldelim(); + } + if (message.expiration !== undefined) { + timestamp_1.Timestamp.encode(message.expiration, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGrant(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.authorization = any_1.Any.decode(reader, reader.uint32()); + break; + case 2: + message.expiration = timestamp_1.Timestamp.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; } - } - break - case 4: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - fourthByte = buf[i + 3] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) - if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { - codePoint = tempCodePoint + } + return message; + }, + fromJSON(object) { + const obj = createBaseGrant(); + if ((0, helpers_1.isSet)(object.authorization)) + obj.authorization = any_1.Any.fromJSON(object.authorization); + if ((0, helpers_1.isSet)(object.expiration)) + obj.expiration = (0, helpers_1.fromJsonTimestamp)(object.expiration); + return obj; + }, + toJSON(message) { + const obj = {}; + message.authorization !== undefined && + (obj.authorization = message.authorization ? any_1.Any.toJSON(message.authorization) : undefined); + message.expiration !== undefined && (obj.expiration = (0, helpers_1.fromTimestamp)(message.expiration).toISOString()); + return obj; + }, + fromPartial(object) { + const message = createBaseGrant(); + if (object.authorization !== undefined && object.authorization !== null) { + message.authorization = any_1.Any.fromPartial(object.authorization); + } + if (object.expiration !== undefined && object.expiration !== null) { + message.expiration = timestamp_1.Timestamp.fromPartial(object.expiration); + } + return message; + }, +}; +function createBaseGrantAuthorization() { + return { + granter: "", + grantee: "", + authorization: undefined, + expiration: undefined, + }; +} +exports.GrantAuthorization = { + typeUrl: "/cosmos.authz.v1beta1.GrantAuthorization", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.granter !== "") { + writer.uint32(10).string(message.granter); + } + if (message.grantee !== "") { + writer.uint32(18).string(message.grantee); + } + if (message.authorization !== undefined) { + any_1.Any.encode(message.authorization, writer.uint32(26).fork()).ldelim(); + } + if (message.expiration !== undefined) { + timestamp_1.Timestamp.encode(message.expiration, writer.uint32(34).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGrantAuthorization(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.granter = reader.string(); + break; + case 2: + message.grantee = reader.string(); + break; + case 3: + message.authorization = any_1.Any.decode(reader, reader.uint32()); + break; + case 4: + message.expiration = timestamp_1.Timestamp.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; } - } - } - } - - if (codePoint === null) { - // we did not generate a valid codePoint so insert a - // replacement char (U+FFFD) and advance only 1 byte - codePoint = 0xFFFD - bytesPerSequence = 1 - } else if (codePoint > 0xFFFF) { - // encode to utf16 (surrogate pair dance) - codePoint -= 0x10000 - res.push(codePoint >>> 10 & 0x3FF | 0xD800) - codePoint = 0xDC00 | codePoint & 0x3FF - } - - res.push(codePoint) - i += bytesPerSequence - } - - return decodeCodePointsArray(res) + } + return message; + }, + fromJSON(object) { + const obj = createBaseGrantAuthorization(); + if ((0, helpers_1.isSet)(object.granter)) + obj.granter = String(object.granter); + if ((0, helpers_1.isSet)(object.grantee)) + obj.grantee = String(object.grantee); + if ((0, helpers_1.isSet)(object.authorization)) + obj.authorization = any_1.Any.fromJSON(object.authorization); + if ((0, helpers_1.isSet)(object.expiration)) + obj.expiration = (0, helpers_1.fromJsonTimestamp)(object.expiration); + return obj; + }, + toJSON(message) { + const obj = {}; + message.granter !== undefined && (obj.granter = message.granter); + message.grantee !== undefined && (obj.grantee = message.grantee); + message.authorization !== undefined && + (obj.authorization = message.authorization ? any_1.Any.toJSON(message.authorization) : undefined); + message.expiration !== undefined && (obj.expiration = (0, helpers_1.fromTimestamp)(message.expiration).toISOString()); + return obj; + }, + fromPartial(object) { + const message = createBaseGrantAuthorization(); + message.granter = object.granter ?? ""; + message.grantee = object.grantee ?? ""; + if (object.authorization !== undefined && object.authorization !== null) { + message.authorization = any_1.Any.fromPartial(object.authorization); + } + if (object.expiration !== undefined && object.expiration !== null) { + message.expiration = timestamp_1.Timestamp.fromPartial(object.expiration); + } + return message; + }, +}; +function createBaseGrantQueueItem() { + return { + msgTypeUrls: [], + }; } +exports.GrantQueueItem = { + typeUrl: "/cosmos.authz.v1beta1.GrantQueueItem", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.msgTypeUrls) { + writer.uint32(10).string(v); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGrantQueueItem(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.msgTypeUrls.push(reader.string()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseGrantQueueItem(); + if (Array.isArray(object?.msgTypeUrls)) + obj.msgTypeUrls = object.msgTypeUrls.map((e) => String(e)); + return obj; + }, + toJSON(message) { + const obj = {}; + if (message.msgTypeUrls) { + obj.msgTypeUrls = message.msgTypeUrls.map((e) => e); + } + else { + obj.msgTypeUrls = []; + } + return obj; + }, + fromPartial(object) { + const message = createBaseGrantQueueItem(); + message.msgTypeUrls = object.msgTypeUrls?.map((e) => e) || []; + return message; + }, +}; +//# sourceMappingURL=authz.js.map -// Based on http://stackoverflow.com/a/22747272/680742, the browser with -// the lowest limit is Chrome, with 0x10000 args. -// We go 1 magnitude less, for safety -const MAX_ARGUMENTS_LENGTH = 0x1000 - -function decodeCodePointsArray (codePoints) { - const len = codePoints.length - if (len <= MAX_ARGUMENTS_LENGTH) { - return String.fromCharCode.apply(String, codePoints) // avoid extra slice() - } +/***/ }), - // Decode in chunks to avoid "call stack size exceeded". - let res = '' - let i = 0 - while (i < len) { - res += String.fromCharCode.apply( - String, - codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) - ) - } - return res -} +/***/ "./node_modules/cosmjs-types/cosmos/authz/v1beta1/query.js": +/*!*****************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/authz/v1beta1/query.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { -function asciiSlice (buf, start, end) { - let ret = '' - end = Math.min(buf.length, end) +"use strict"; - for (let i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i] & 0x7F) - } - return ret +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.QueryClientImpl = exports.QueryGranteeGrantsResponse = exports.QueryGranteeGrantsRequest = exports.QueryGranterGrantsResponse = exports.QueryGranterGrantsRequest = exports.QueryGrantsResponse = exports.QueryGrantsRequest = exports.protobufPackage = void 0; +/* eslint-disable */ +const pagination_1 = __webpack_require__(/*! ../../base/query/v1beta1/pagination */ "./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js"); +const authz_1 = __webpack_require__(/*! ./authz */ "./node_modules/cosmjs-types/cosmos/authz/v1beta1/authz.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "cosmos.authz.v1beta1"; +function createBaseQueryGrantsRequest() { + return { + granter: "", + grantee: "", + msgTypeUrl: "", + pagination: undefined, + }; } - -function latin1Slice (buf, start, end) { - let ret = '' - end = Math.min(buf.length, end) - - for (let i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i]) - } - return ret +exports.QueryGrantsRequest = { + typeUrl: "/cosmos.authz.v1beta1.QueryGrantsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.granter !== "") { + writer.uint32(10).string(message.granter); + } + if (message.grantee !== "") { + writer.uint32(18).string(message.grantee); + } + if (message.msgTypeUrl !== "") { + writer.uint32(26).string(message.msgTypeUrl); + } + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryGrantsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.granter = reader.string(); + break; + case 2: + message.grantee = reader.string(); + break; + case 3: + message.msgTypeUrl = reader.string(); + break; + case 4: + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryGrantsRequest(); + if ((0, helpers_1.isSet)(object.granter)) + obj.granter = String(object.granter); + if ((0, helpers_1.isSet)(object.grantee)) + obj.grantee = String(object.grantee); + if ((0, helpers_1.isSet)(object.msgTypeUrl)) + obj.msgTypeUrl = String(object.msgTypeUrl); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; + }, + toJSON(message) { + const obj = {}; + message.granter !== undefined && (obj.granter = message.granter); + message.grantee !== undefined && (obj.grantee = message.grantee); + message.msgTypeUrl !== undefined && (obj.msgTypeUrl = message.msgTypeUrl); + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryGrantsRequest(); + message.granter = object.granter ?? ""; + message.grantee = object.grantee ?? ""; + message.msgTypeUrl = object.msgTypeUrl ?? ""; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } + return message; + }, +}; +function createBaseQueryGrantsResponse() { + return { + grants: [], + pagination: undefined, + }; } - -function hexSlice (buf, start, end) { - const len = buf.length - - if (!start || start < 0) start = 0 - if (!end || end < 0 || end > len) end = len - - let out = '' - for (let i = start; i < end; ++i) { - out += hexSliceLookupTable[buf[i]] - } - return out +exports.QueryGrantsResponse = { + typeUrl: "/cosmos.authz.v1beta1.QueryGrantsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.grants) { + authz_1.Grant.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryGrantsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.grants.push(authz_1.Grant.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryGrantsResponse(); + if (Array.isArray(object?.grants)) + obj.grants = object.grants.map((e) => authz_1.Grant.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; + }, + toJSON(message) { + const obj = {}; + if (message.grants) { + obj.grants = message.grants.map((e) => (e ? authz_1.Grant.toJSON(e) : undefined)); + } + else { + obj.grants = []; + } + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryGrantsResponse(); + message.grants = object.grants?.map((e) => authz_1.Grant.fromPartial(e)) || []; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } + return message; + }, +}; +function createBaseQueryGranterGrantsRequest() { + return { + granter: "", + pagination: undefined, + }; } - -function utf16leSlice (buf, start, end) { - const bytes = buf.slice(start, end) - let res = '' - // If bytes.length is odd, the last 8 bits must be ignored (same as node.js) - for (let i = 0; i < bytes.length - 1; i += 2) { - res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256)) - } - return res +exports.QueryGranterGrantsRequest = { + typeUrl: "/cosmos.authz.v1beta1.QueryGranterGrantsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.granter !== "") { + writer.uint32(10).string(message.granter); + } + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryGranterGrantsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.granter = reader.string(); + break; + case 2: + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryGranterGrantsRequest(); + if ((0, helpers_1.isSet)(object.granter)) + obj.granter = String(object.granter); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; + }, + toJSON(message) { + const obj = {}; + message.granter !== undefined && (obj.granter = message.granter); + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryGranterGrantsRequest(); + message.granter = object.granter ?? ""; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } + return message; + }, +}; +function createBaseQueryGranterGrantsResponse() { + return { + grants: [], + pagination: undefined, + }; } - -Buffer.prototype.slice = function slice (start, end) { - const len = this.length - start = ~~start - end = end === undefined ? len : ~~end - - if (start < 0) { - start += len - if (start < 0) start = 0 - } else if (start > len) { - start = len - } - - if (end < 0) { - end += len - if (end < 0) end = 0 - } else if (end > len) { - end = len - } - - if (end < start) end = start - - const newBuf = this.subarray(start, end) - // Return an augmented `Uint8Array` instance - Object.setPrototypeOf(newBuf, Buffer.prototype) - - return newBuf +exports.QueryGranterGrantsResponse = { + typeUrl: "/cosmos.authz.v1beta1.QueryGranterGrantsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.grants) { + authz_1.GrantAuthorization.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryGranterGrantsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.grants.push(authz_1.GrantAuthorization.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryGranterGrantsResponse(); + if (Array.isArray(object?.grants)) + obj.grants = object.grants.map((e) => authz_1.GrantAuthorization.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; + }, + toJSON(message) { + const obj = {}; + if (message.grants) { + obj.grants = message.grants.map((e) => (e ? authz_1.GrantAuthorization.toJSON(e) : undefined)); + } + else { + obj.grants = []; + } + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryGranterGrantsResponse(); + message.grants = object.grants?.map((e) => authz_1.GrantAuthorization.fromPartial(e)) || []; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } + return message; + }, +}; +function createBaseQueryGranteeGrantsRequest() { + return { + grantee: "", + pagination: undefined, + }; } - -/* - * Need to make sure that buffer isn't trying to write out of bounds. - */ -function checkOffset (offset, ext, length) { - if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') - if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') +exports.QueryGranteeGrantsRequest = { + typeUrl: "/cosmos.authz.v1beta1.QueryGranteeGrantsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.grantee !== "") { + writer.uint32(10).string(message.grantee); + } + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryGranteeGrantsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.grantee = reader.string(); + break; + case 2: + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryGranteeGrantsRequest(); + if ((0, helpers_1.isSet)(object.grantee)) + obj.grantee = String(object.grantee); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; + }, + toJSON(message) { + const obj = {}; + message.grantee !== undefined && (obj.grantee = message.grantee); + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryGranteeGrantsRequest(); + message.grantee = object.grantee ?? ""; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } + return message; + }, +}; +function createBaseQueryGranteeGrantsResponse() { + return { + grants: [], + pagination: undefined, + }; } - -Buffer.prototype.readUintLE = -Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - let val = this[offset] - let mul = 1 - let i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - - return val +exports.QueryGranteeGrantsResponse = { + typeUrl: "/cosmos.authz.v1beta1.QueryGranteeGrantsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.grants) { + authz_1.GrantAuthorization.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryGranteeGrantsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.grants.push(authz_1.GrantAuthorization.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryGranteeGrantsResponse(); + if (Array.isArray(object?.grants)) + obj.grants = object.grants.map((e) => authz_1.GrantAuthorization.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; + }, + toJSON(message) { + const obj = {}; + if (message.grants) { + obj.grants = message.grants.map((e) => (e ? authz_1.GrantAuthorization.toJSON(e) : undefined)); + } + else { + obj.grants = []; + } + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryGranteeGrantsResponse(); + message.grants = object.grants?.map((e) => authz_1.GrantAuthorization.fromPartial(e)) || []; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } + return message; + }, +}; +class QueryClientImpl { + constructor(rpc) { + this.rpc = rpc; + this.Grants = this.Grants.bind(this); + this.GranterGrants = this.GranterGrants.bind(this); + this.GranteeGrants = this.GranteeGrants.bind(this); + } + Grants(request) { + const data = exports.QueryGrantsRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.authz.v1beta1.Query", "Grants", data); + return promise.then((data) => exports.QueryGrantsResponse.decode(new binary_1.BinaryReader(data))); + } + GranterGrants(request) { + const data = exports.QueryGranterGrantsRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.authz.v1beta1.Query", "GranterGrants", data); + return promise.then((data) => exports.QueryGranterGrantsResponse.decode(new binary_1.BinaryReader(data))); + } + GranteeGrants(request) { + const data = exports.QueryGranteeGrantsRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.authz.v1beta1.Query", "GranteeGrants", data); + return promise.then((data) => exports.QueryGranteeGrantsResponse.decode(new binary_1.BinaryReader(data))); + } } +exports.QueryClientImpl = QueryClientImpl; +//# sourceMappingURL=query.js.map -Buffer.prototype.readUintBE = -Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - checkOffset(offset, byteLength, this.length) - } - - let val = this[offset + --byteLength] - let mul = 1 - while (byteLength > 0 && (mul *= 0x100)) { - val += this[offset + --byteLength] * mul - } +/***/ }), - return val -} +/***/ "./node_modules/cosmjs-types/cosmos/authz/v1beta1/tx.js": +/*!**************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/authz/v1beta1/tx.js ***! + \**************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { -Buffer.prototype.readUint8 = -Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 1, this.length) - return this[offset] -} +"use strict"; -Buffer.prototype.readUint16LE = -Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - return this[offset] | (this[offset + 1] << 8) +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.MsgClientImpl = exports.MsgRevokeResponse = exports.MsgRevoke = exports.MsgGrantResponse = exports.MsgExec = exports.MsgExecResponse = exports.MsgGrant = exports.protobufPackage = void 0; +/* eslint-disable */ +const authz_1 = __webpack_require__(/*! ./authz */ "./node_modules/cosmjs-types/cosmos/authz/v1beta1/authz.js"); +const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "cosmos.authz.v1beta1"; +function createBaseMsgGrant() { + return { + granter: "", + grantee: "", + grant: authz_1.Grant.fromPartial({}), + }; } - -Buffer.prototype.readUint16BE = -Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - return (this[offset] << 8) | this[offset + 1] +exports.MsgGrant = { + typeUrl: "/cosmos.authz.v1beta1.MsgGrant", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.granter !== "") { + writer.uint32(10).string(message.granter); + } + if (message.grantee !== "") { + writer.uint32(18).string(message.grantee); + } + if (message.grant !== undefined) { + authz_1.Grant.encode(message.grant, writer.uint32(26).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgGrant(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.granter = reader.string(); + break; + case 2: + message.grantee = reader.string(); + break; + case 3: + message.grant = authz_1.Grant.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseMsgGrant(); + if ((0, helpers_1.isSet)(object.granter)) + obj.granter = String(object.granter); + if ((0, helpers_1.isSet)(object.grantee)) + obj.grantee = String(object.grantee); + if ((0, helpers_1.isSet)(object.grant)) + obj.grant = authz_1.Grant.fromJSON(object.grant); + return obj; + }, + toJSON(message) { + const obj = {}; + message.granter !== undefined && (obj.granter = message.granter); + message.grantee !== undefined && (obj.grantee = message.grantee); + message.grant !== undefined && (obj.grant = message.grant ? authz_1.Grant.toJSON(message.grant) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseMsgGrant(); + message.granter = object.granter ?? ""; + message.grantee = object.grantee ?? ""; + if (object.grant !== undefined && object.grant !== null) { + message.grant = authz_1.Grant.fromPartial(object.grant); + } + return message; + }, +}; +function createBaseMsgExecResponse() { + return { + results: [], + }; } - -Buffer.prototype.readUint32LE = -Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return ((this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16)) + - (this[offset + 3] * 0x1000000) +exports.MsgExecResponse = { + typeUrl: "/cosmos.authz.v1beta1.MsgExecResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.results) { + writer.uint32(10).bytes(v); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgExecResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.results.push(reader.bytes()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseMsgExecResponse(); + if (Array.isArray(object?.results)) + obj.results = object.results.map((e) => (0, helpers_1.bytesFromBase64)(e)); + return obj; + }, + toJSON(message) { + const obj = {}; + if (message.results) { + obj.results = message.results.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array())); + } + else { + obj.results = []; + } + return obj; + }, + fromPartial(object) { + const message = createBaseMsgExecResponse(); + message.results = object.results?.map((e) => e) || []; + return message; + }, +}; +function createBaseMsgExec() { + return { + grantee: "", + msgs: [], + }; } - -Buffer.prototype.readUint32BE = -Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] * 0x1000000) + - ((this[offset + 1] << 16) | - (this[offset + 2] << 8) | - this[offset + 3]) +exports.MsgExec = { + typeUrl: "/cosmos.authz.v1beta1.MsgExec", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.grantee !== "") { + writer.uint32(10).string(message.grantee); + } + for (const v of message.msgs) { + any_1.Any.encode(v, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgExec(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.grantee = reader.string(); + break; + case 2: + message.msgs.push(any_1.Any.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseMsgExec(); + if ((0, helpers_1.isSet)(object.grantee)) + obj.grantee = String(object.grantee); + if (Array.isArray(object?.msgs)) + obj.msgs = object.msgs.map((e) => any_1.Any.fromJSON(e)); + return obj; + }, + toJSON(message) { + const obj = {}; + message.grantee !== undefined && (obj.grantee = message.grantee); + if (message.msgs) { + obj.msgs = message.msgs.map((e) => (e ? any_1.Any.toJSON(e) : undefined)); + } + else { + obj.msgs = []; + } + return obj; + }, + fromPartial(object) { + const message = createBaseMsgExec(); + message.grantee = object.grantee ?? ""; + message.msgs = object.msgs?.map((e) => any_1.Any.fromPartial(e)) || []; + return message; + }, +}; +function createBaseMsgGrantResponse() { + return {}; } - -Buffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) { - offset = offset >>> 0 - validateNumber(offset, 'offset') - const first = this[offset] - const last = this[offset + 7] - if (first === undefined || last === undefined) { - boundsError(offset, this.length - 8) - } - - const lo = first + - this[++offset] * 2 ** 8 + - this[++offset] * 2 ** 16 + - this[++offset] * 2 ** 24 - - const hi = this[++offset] + - this[++offset] * 2 ** 8 + - this[++offset] * 2 ** 16 + - last * 2 ** 24 - - return BigInt(lo) + (BigInt(hi) << BigInt(32)) -}) - -Buffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) { - offset = offset >>> 0 - validateNumber(offset, 'offset') - const first = this[offset] - const last = this[offset + 7] - if (first === undefined || last === undefined) { - boundsError(offset, this.length - 8) - } - - const hi = first * 2 ** 24 + - this[++offset] * 2 ** 16 + - this[++offset] * 2 ** 8 + - this[++offset] - - const lo = this[++offset] * 2 ** 24 + - this[++offset] * 2 ** 16 + - this[++offset] * 2 ** 8 + - last - - return (BigInt(hi) << BigInt(32)) + BigInt(lo) -}) - -Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - let val = this[offset] - let mul = 1 - let i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val +exports.MsgGrantResponse = { + typeUrl: "/cosmos.authz.v1beta1.MsgGrantResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgGrantResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_) { + const obj = createBaseMsgGrantResponse(); + return obj; + }, + toJSON(_) { + const obj = {}; + return obj; + }, + fromPartial(_) { + const message = createBaseMsgGrantResponse(); + return message; + }, +}; +function createBaseMsgRevoke() { + return { + granter: "", + grantee: "", + msgTypeUrl: "", + }; } - -Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - let i = byteLength - let mul = 1 - let val = this[offset + --i] - while (i > 0 && (mul *= 0x100)) { - val += this[offset + --i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val +exports.MsgRevoke = { + typeUrl: "/cosmos.authz.v1beta1.MsgRevoke", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.granter !== "") { + writer.uint32(10).string(message.granter); + } + if (message.grantee !== "") { + writer.uint32(18).string(message.grantee); + } + if (message.msgTypeUrl !== "") { + writer.uint32(26).string(message.msgTypeUrl); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgRevoke(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.granter = reader.string(); + break; + case 2: + message.grantee = reader.string(); + break; + case 3: + message.msgTypeUrl = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseMsgRevoke(); + if ((0, helpers_1.isSet)(object.granter)) + obj.granter = String(object.granter); + if ((0, helpers_1.isSet)(object.grantee)) + obj.grantee = String(object.grantee); + if ((0, helpers_1.isSet)(object.msgTypeUrl)) + obj.msgTypeUrl = String(object.msgTypeUrl); + return obj; + }, + toJSON(message) { + const obj = {}; + message.granter !== undefined && (obj.granter = message.granter); + message.grantee !== undefined && (obj.grantee = message.grantee); + message.msgTypeUrl !== undefined && (obj.msgTypeUrl = message.msgTypeUrl); + return obj; + }, + fromPartial(object) { + const message = createBaseMsgRevoke(); + message.granter = object.granter ?? ""; + message.grantee = object.grantee ?? ""; + message.msgTypeUrl = object.msgTypeUrl ?? ""; + return message; + }, +}; +function createBaseMsgRevokeResponse() { + return {}; } - -Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 1, this.length) - if (!(this[offset] & 0x80)) return (this[offset]) - return ((0xff - this[offset] + 1) * -1) +exports.MsgRevokeResponse = { + typeUrl: "/cosmos.authz.v1beta1.MsgRevokeResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgRevokeResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_) { + const obj = createBaseMsgRevokeResponse(); + return obj; + }, + toJSON(_) { + const obj = {}; + return obj; + }, + fromPartial(_) { + const message = createBaseMsgRevokeResponse(); + return message; + }, +}; +class MsgClientImpl { + constructor(rpc) { + this.rpc = rpc; + this.Grant = this.Grant.bind(this); + this.Exec = this.Exec.bind(this); + this.Revoke = this.Revoke.bind(this); + } + Grant(request) { + const data = exports.MsgGrant.encode(request).finish(); + const promise = this.rpc.request("cosmos.authz.v1beta1.Msg", "Grant", data); + return promise.then((data) => exports.MsgGrantResponse.decode(new binary_1.BinaryReader(data))); + } + Exec(request) { + const data = exports.MsgExec.encode(request).finish(); + const promise = this.rpc.request("cosmos.authz.v1beta1.Msg", "Exec", data); + return promise.then((data) => exports.MsgExecResponse.decode(new binary_1.BinaryReader(data))); + } + Revoke(request) { + const data = exports.MsgRevoke.encode(request).finish(); + const promise = this.rpc.request("cosmos.authz.v1beta1.Msg", "Revoke", data); + return promise.then((data) => exports.MsgRevokeResponse.decode(new binary_1.BinaryReader(data))); + } } +exports.MsgClientImpl = MsgClientImpl; +//# sourceMappingURL=tx.js.map -Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - const val = this[offset] | (this[offset + 1] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val -} +/***/ }), -Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - const val = this[offset + 1] | (this[offset] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val -} +/***/ "./node_modules/cosmjs-types/cosmos/bank/v1beta1/bank.js": +/*!***************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/bank/v1beta1/bank.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { -Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) +"use strict"; - return (this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16) | - (this[offset + 3] << 24) +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Metadata = exports.DenomUnit = exports.Supply = exports.Output = exports.Input = exports.SendEnabled = exports.Params = exports.protobufPackage = void 0; +/* eslint-disable */ +const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "cosmos.bank.v1beta1"; +function createBaseParams() { + return { + sendEnabled: [], + defaultSendEnabled: false, + }; } - -Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] << 24) | - (this[offset + 1] << 16) | - (this[offset + 2] << 8) | - (this[offset + 3]) +exports.Params = { + typeUrl: "/cosmos.bank.v1beta1.Params", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.sendEnabled) { + exports.SendEnabled.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.defaultSendEnabled === true) { + writer.uint32(16).bool(message.defaultSendEnabled); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseParams(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.sendEnabled.push(exports.SendEnabled.decode(reader, reader.uint32())); + break; + case 2: + message.defaultSendEnabled = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseParams(); + if (Array.isArray(object?.sendEnabled)) + obj.sendEnabled = object.sendEnabled.map((e) => exports.SendEnabled.fromJSON(e)); + if ((0, helpers_1.isSet)(object.defaultSendEnabled)) + obj.defaultSendEnabled = Boolean(object.defaultSendEnabled); + return obj; + }, + toJSON(message) { + const obj = {}; + if (message.sendEnabled) { + obj.sendEnabled = message.sendEnabled.map((e) => (e ? exports.SendEnabled.toJSON(e) : undefined)); + } + else { + obj.sendEnabled = []; + } + message.defaultSendEnabled !== undefined && (obj.defaultSendEnabled = message.defaultSendEnabled); + return obj; + }, + fromPartial(object) { + const message = createBaseParams(); + message.sendEnabled = object.sendEnabled?.map((e) => exports.SendEnabled.fromPartial(e)) || []; + message.defaultSendEnabled = object.defaultSendEnabled ?? false; + return message; + }, +}; +function createBaseSendEnabled() { + return { + denom: "", + enabled: false, + }; } - -Buffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) { - offset = offset >>> 0 - validateNumber(offset, 'offset') - const first = this[offset] - const last = this[offset + 7] - if (first === undefined || last === undefined) { - boundsError(offset, this.length - 8) - } - - const val = this[offset + 4] + - this[offset + 5] * 2 ** 8 + - this[offset + 6] * 2 ** 16 + - (last << 24) // Overflow - - return (BigInt(val) << BigInt(32)) + - BigInt(first + - this[++offset] * 2 ** 8 + - this[++offset] * 2 ** 16 + - this[++offset] * 2 ** 24) -}) - -Buffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) { - offset = offset >>> 0 - validateNumber(offset, 'offset') - const first = this[offset] - const last = this[offset + 7] - if (first === undefined || last === undefined) { - boundsError(offset, this.length - 8) - } - - const val = (first << 24) + // Overflow - this[++offset] * 2 ** 16 + - this[++offset] * 2 ** 8 + - this[++offset] - - return (BigInt(val) << BigInt(32)) + - BigInt(this[++offset] * 2 ** 24 + - this[++offset] * 2 ** 16 + - this[++offset] * 2 ** 8 + - last) -}) - -Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, true, 23, 4) +exports.SendEnabled = { + typeUrl: "/cosmos.bank.v1beta1.SendEnabled", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.denom !== "") { + writer.uint32(10).string(message.denom); + } + if (message.enabled === true) { + writer.uint32(16).bool(message.enabled); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSendEnabled(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.denom = reader.string(); + break; + case 2: + message.enabled = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseSendEnabled(); + if ((0, helpers_1.isSet)(object.denom)) + obj.denom = String(object.denom); + if ((0, helpers_1.isSet)(object.enabled)) + obj.enabled = Boolean(object.enabled); + return obj; + }, + toJSON(message) { + const obj = {}; + message.denom !== undefined && (obj.denom = message.denom); + message.enabled !== undefined && (obj.enabled = message.enabled); + return obj; + }, + fromPartial(object) { + const message = createBaseSendEnabled(); + message.denom = object.denom ?? ""; + message.enabled = object.enabled ?? false; + return message; + }, +}; +function createBaseInput() { + return { + address: "", + coins: [], + }; } - -Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, false, 23, 4) +exports.Input = { + typeUrl: "/cosmos.bank.v1beta1.Input", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.address !== "") { + writer.uint32(10).string(message.address); + } + for (const v of message.coins) { + coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.address = reader.string(); + break; + case 2: + message.coins.push(coin_1.Coin.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseInput(); + if ((0, helpers_1.isSet)(object.address)) + obj.address = String(object.address); + if (Array.isArray(object?.coins)) + obj.coins = object.coins.map((e) => coin_1.Coin.fromJSON(e)); + return obj; + }, + toJSON(message) { + const obj = {}; + message.address !== undefined && (obj.address = message.address); + if (message.coins) { + obj.coins = message.coins.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + } + else { + obj.coins = []; + } + return obj; + }, + fromPartial(object) { + const message = createBaseInput(); + message.address = object.address ?? ""; + message.coins = object.coins?.map((e) => coin_1.Coin.fromPartial(e)) || []; + return message; + }, +}; +function createBaseOutput() { + return { + address: "", + coins: [], + }; } - -Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, true, 52, 8) +exports.Output = { + typeUrl: "/cosmos.bank.v1beta1.Output", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.address !== "") { + writer.uint32(10).string(message.address); + } + for (const v of message.coins) { + coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseOutput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.address = reader.string(); + break; + case 2: + message.coins.push(coin_1.Coin.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseOutput(); + if ((0, helpers_1.isSet)(object.address)) + obj.address = String(object.address); + if (Array.isArray(object?.coins)) + obj.coins = object.coins.map((e) => coin_1.Coin.fromJSON(e)); + return obj; + }, + toJSON(message) { + const obj = {}; + message.address !== undefined && (obj.address = message.address); + if (message.coins) { + obj.coins = message.coins.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + } + else { + obj.coins = []; + } + return obj; + }, + fromPartial(object) { + const message = createBaseOutput(); + message.address = object.address ?? ""; + message.coins = object.coins?.map((e) => coin_1.Coin.fromPartial(e)) || []; + return message; + }, +}; +function createBaseSupply() { + return { + total: [], + }; } - -Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, false, 52, 8) +exports.Supply = { + typeUrl: "/cosmos.bank.v1beta1.Supply", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.total) { + coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSupply(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.total.push(coin_1.Coin.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseSupply(); + if (Array.isArray(object?.total)) + obj.total = object.total.map((e) => coin_1.Coin.fromJSON(e)); + return obj; + }, + toJSON(message) { + const obj = {}; + if (message.total) { + obj.total = message.total.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + } + else { + obj.total = []; + } + return obj; + }, + fromPartial(object) { + const message = createBaseSupply(); + message.total = object.total?.map((e) => coin_1.Coin.fromPartial(e)) || []; + return message; + }, +}; +function createBaseDenomUnit() { + return { + denom: "", + exponent: 0, + aliases: [], + }; } - -function checkInt (buf, value, offset, ext, max, min) { - if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') - if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') - if (offset + ext > buf.length) throw new RangeError('Index out of range') +exports.DenomUnit = { + typeUrl: "/cosmos.bank.v1beta1.DenomUnit", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.denom !== "") { + writer.uint32(10).string(message.denom); + } + if (message.exponent !== 0) { + writer.uint32(16).uint32(message.exponent); + } + for (const v of message.aliases) { + writer.uint32(26).string(v); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDenomUnit(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.denom = reader.string(); + break; + case 2: + message.exponent = reader.uint32(); + break; + case 3: + message.aliases.push(reader.string()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseDenomUnit(); + if ((0, helpers_1.isSet)(object.denom)) + obj.denom = String(object.denom); + if ((0, helpers_1.isSet)(object.exponent)) + obj.exponent = Number(object.exponent); + if (Array.isArray(object?.aliases)) + obj.aliases = object.aliases.map((e) => String(e)); + return obj; + }, + toJSON(message) { + const obj = {}; + message.denom !== undefined && (obj.denom = message.denom); + message.exponent !== undefined && (obj.exponent = Math.round(message.exponent)); + if (message.aliases) { + obj.aliases = message.aliases.map((e) => e); + } + else { + obj.aliases = []; + } + return obj; + }, + fromPartial(object) { + const message = createBaseDenomUnit(); + message.denom = object.denom ?? ""; + message.exponent = object.exponent ?? 0; + message.aliases = object.aliases?.map((e) => e) || []; + return message; + }, +}; +function createBaseMetadata() { + return { + description: "", + denomUnits: [], + base: "", + display: "", + name: "", + symbol: "", + uri: "", + uriHash: "", + }; } +exports.Metadata = { + typeUrl: "/cosmos.bank.v1beta1.Metadata", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.description !== "") { + writer.uint32(10).string(message.description); + } + for (const v of message.denomUnits) { + exports.DenomUnit.encode(v, writer.uint32(18).fork()).ldelim(); + } + if (message.base !== "") { + writer.uint32(26).string(message.base); + } + if (message.display !== "") { + writer.uint32(34).string(message.display); + } + if (message.name !== "") { + writer.uint32(42).string(message.name); + } + if (message.symbol !== "") { + writer.uint32(50).string(message.symbol); + } + if (message.uri !== "") { + writer.uint32(58).string(message.uri); + } + if (message.uriHash !== "") { + writer.uint32(66).string(message.uriHash); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMetadata(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.description = reader.string(); + break; + case 2: + message.denomUnits.push(exports.DenomUnit.decode(reader, reader.uint32())); + break; + case 3: + message.base = reader.string(); + break; + case 4: + message.display = reader.string(); + break; + case 5: + message.name = reader.string(); + break; + case 6: + message.symbol = reader.string(); + break; + case 7: + message.uri = reader.string(); + break; + case 8: + message.uriHash = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseMetadata(); + if ((0, helpers_1.isSet)(object.description)) + obj.description = String(object.description); + if (Array.isArray(object?.denomUnits)) + obj.denomUnits = object.denomUnits.map((e) => exports.DenomUnit.fromJSON(e)); + if ((0, helpers_1.isSet)(object.base)) + obj.base = String(object.base); + if ((0, helpers_1.isSet)(object.display)) + obj.display = String(object.display); + if ((0, helpers_1.isSet)(object.name)) + obj.name = String(object.name); + if ((0, helpers_1.isSet)(object.symbol)) + obj.symbol = String(object.symbol); + if ((0, helpers_1.isSet)(object.uri)) + obj.uri = String(object.uri); + if ((0, helpers_1.isSet)(object.uriHash)) + obj.uriHash = String(object.uriHash); + return obj; + }, + toJSON(message) { + const obj = {}; + message.description !== undefined && (obj.description = message.description); + if (message.denomUnits) { + obj.denomUnits = message.denomUnits.map((e) => (e ? exports.DenomUnit.toJSON(e) : undefined)); + } + else { + obj.denomUnits = []; + } + message.base !== undefined && (obj.base = message.base); + message.display !== undefined && (obj.display = message.display); + message.name !== undefined && (obj.name = message.name); + message.symbol !== undefined && (obj.symbol = message.symbol); + message.uri !== undefined && (obj.uri = message.uri); + message.uriHash !== undefined && (obj.uriHash = message.uriHash); + return obj; + }, + fromPartial(object) { + const message = createBaseMetadata(); + message.description = object.description ?? ""; + message.denomUnits = object.denomUnits?.map((e) => exports.DenomUnit.fromPartial(e)) || []; + message.base = object.base ?? ""; + message.display = object.display ?? ""; + message.name = object.name ?? ""; + message.symbol = object.symbol ?? ""; + message.uri = object.uri ?? ""; + message.uriHash = object.uriHash ?? ""; + return message; + }, +}; +//# sourceMappingURL=bank.js.map -Buffer.prototype.writeUintLE = -Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - const maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - - let mul = 1 - let i = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength -} +/***/ }), -Buffer.prototype.writeUintBE = -Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - const maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } +/***/ "./node_modules/cosmjs-types/cosmos/bank/v1beta1/query.js": +/*!****************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/bank/v1beta1/query.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - let i = byteLength - 1 - let mul = 1 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } +"use strict"; - return offset + byteLength +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.QueryClientImpl = exports.QuerySendEnabledResponse = exports.QuerySendEnabledRequest = exports.QueryDenomOwnersResponse = exports.DenomOwner = exports.QueryDenomOwnersRequest = exports.QueryDenomMetadataResponse = exports.QueryDenomMetadataRequest = exports.QueryDenomsMetadataResponse = exports.QueryDenomsMetadataRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QuerySupplyOfResponse = exports.QuerySupplyOfRequest = exports.QueryTotalSupplyResponse = exports.QueryTotalSupplyRequest = exports.QuerySpendableBalanceByDenomResponse = exports.QuerySpendableBalanceByDenomRequest = exports.QuerySpendableBalancesResponse = exports.QuerySpendableBalancesRequest = exports.QueryAllBalancesResponse = exports.QueryAllBalancesRequest = exports.QueryBalanceResponse = exports.QueryBalanceRequest = exports.protobufPackage = void 0; +/* eslint-disable */ +const pagination_1 = __webpack_require__(/*! ../../base/query/v1beta1/pagination */ "./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js"); +const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); +const bank_1 = __webpack_require__(/*! ./bank */ "./node_modules/cosmjs-types/cosmos/bank/v1beta1/bank.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "cosmos.bank.v1beta1"; +function createBaseQueryBalanceRequest() { + return { + address: "", + denom: "", + }; } - -Buffer.prototype.writeUint8 = -Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) - this[offset] = (value & 0xff) - return offset + 1 +exports.QueryBalanceRequest = { + typeUrl: "/cosmos.bank.v1beta1.QueryBalanceRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.address !== "") { + writer.uint32(10).string(message.address); + } + if (message.denom !== "") { + writer.uint32(18).string(message.denom); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryBalanceRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.address = reader.string(); + break; + case 2: + message.denom = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryBalanceRequest(); + if ((0, helpers_1.isSet)(object.address)) + obj.address = String(object.address); + if ((0, helpers_1.isSet)(object.denom)) + obj.denom = String(object.denom); + return obj; + }, + toJSON(message) { + const obj = {}; + message.address !== undefined && (obj.address = message.address); + message.denom !== undefined && (obj.denom = message.denom); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryBalanceRequest(); + message.address = object.address ?? ""; + message.denom = object.denom ?? ""; + return message; + }, +}; +function createBaseQueryBalanceResponse() { + return { + balance: undefined, + }; } - -Buffer.prototype.writeUint16LE = -Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - return offset + 2 +exports.QueryBalanceResponse = { + typeUrl: "/cosmos.bank.v1beta1.QueryBalanceResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.balance !== undefined) { + coin_1.Coin.encode(message.balance, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryBalanceResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.balance = coin_1.Coin.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryBalanceResponse(); + if ((0, helpers_1.isSet)(object.balance)) + obj.balance = coin_1.Coin.fromJSON(object.balance); + return obj; + }, + toJSON(message) { + const obj = {}; + message.balance !== undefined && + (obj.balance = message.balance ? coin_1.Coin.toJSON(message.balance) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryBalanceResponse(); + if (object.balance !== undefined && object.balance !== null) { + message.balance = coin_1.Coin.fromPartial(object.balance); + } + return message; + }, +}; +function createBaseQueryAllBalancesRequest() { + return { + address: "", + pagination: undefined, + }; } - -Buffer.prototype.writeUint16BE = -Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - return offset + 2 +exports.QueryAllBalancesRequest = { + typeUrl: "/cosmos.bank.v1beta1.QueryAllBalancesRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.address !== "") { + writer.uint32(10).string(message.address); + } + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryAllBalancesRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.address = reader.string(); + break; + case 2: + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryAllBalancesRequest(); + if ((0, helpers_1.isSet)(object.address)) + obj.address = String(object.address); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; + }, + toJSON(message) { + const obj = {}; + message.address !== undefined && (obj.address = message.address); + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryAllBalancesRequest(); + message.address = object.address ?? ""; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } + return message; + }, +}; +function createBaseQueryAllBalancesResponse() { + return { + balances: [], + pagination: undefined, + }; } - -Buffer.prototype.writeUint32LE = -Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - this[offset + 3] = (value >>> 24) - this[offset + 2] = (value >>> 16) - this[offset + 1] = (value >>> 8) - this[offset] = (value & 0xff) - return offset + 4 +exports.QueryAllBalancesResponse = { + typeUrl: "/cosmos.bank.v1beta1.QueryAllBalancesResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.balances) { + coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryAllBalancesResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.balances.push(coin_1.Coin.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryAllBalancesResponse(); + if (Array.isArray(object?.balances)) + obj.balances = object.balances.map((e) => coin_1.Coin.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; + }, + toJSON(message) { + const obj = {}; + if (message.balances) { + obj.balances = message.balances.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + } + else { + obj.balances = []; + } + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryAllBalancesResponse(); + message.balances = object.balances?.map((e) => coin_1.Coin.fromPartial(e)) || []; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } + return message; + }, +}; +function createBaseQuerySpendableBalancesRequest() { + return { + address: "", + pagination: undefined, + }; } - -Buffer.prototype.writeUint32BE = -Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - return offset + 4 +exports.QuerySpendableBalancesRequest = { + typeUrl: "/cosmos.bank.v1beta1.QuerySpendableBalancesRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.address !== "") { + writer.uint32(10).string(message.address); + } + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQuerySpendableBalancesRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.address = reader.string(); + break; + case 2: + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQuerySpendableBalancesRequest(); + if ((0, helpers_1.isSet)(object.address)) + obj.address = String(object.address); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; + }, + toJSON(message) { + const obj = {}; + message.address !== undefined && (obj.address = message.address); + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQuerySpendableBalancesRequest(); + message.address = object.address ?? ""; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } + return message; + }, +}; +function createBaseQuerySpendableBalancesResponse() { + return { + balances: [], + pagination: undefined, + }; } - -function wrtBigUInt64LE (buf, value, offset, min, max) { - checkIntBI(value, min, max, buf, offset, 7) - - let lo = Number(value & BigInt(0xffffffff)) - buf[offset++] = lo - lo = lo >> 8 - buf[offset++] = lo - lo = lo >> 8 - buf[offset++] = lo - lo = lo >> 8 - buf[offset++] = lo - let hi = Number(value >> BigInt(32) & BigInt(0xffffffff)) - buf[offset++] = hi - hi = hi >> 8 - buf[offset++] = hi - hi = hi >> 8 - buf[offset++] = hi - hi = hi >> 8 - buf[offset++] = hi - return offset +exports.QuerySpendableBalancesResponse = { + typeUrl: "/cosmos.bank.v1beta1.QuerySpendableBalancesResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.balances) { + coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQuerySpendableBalancesResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.balances.push(coin_1.Coin.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQuerySpendableBalancesResponse(); + if (Array.isArray(object?.balances)) + obj.balances = object.balances.map((e) => coin_1.Coin.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; + }, + toJSON(message) { + const obj = {}; + if (message.balances) { + obj.balances = message.balances.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + } + else { + obj.balances = []; + } + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQuerySpendableBalancesResponse(); + message.balances = object.balances?.map((e) => coin_1.Coin.fromPartial(e)) || []; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } + return message; + }, +}; +function createBaseQuerySpendableBalanceByDenomRequest() { + return { + address: "", + denom: "", + }; } - -function wrtBigUInt64BE (buf, value, offset, min, max) { - checkIntBI(value, min, max, buf, offset, 7) - - let lo = Number(value & BigInt(0xffffffff)) - buf[offset + 7] = lo - lo = lo >> 8 - buf[offset + 6] = lo - lo = lo >> 8 - buf[offset + 5] = lo - lo = lo >> 8 - buf[offset + 4] = lo - let hi = Number(value >> BigInt(32) & BigInt(0xffffffff)) - buf[offset + 3] = hi - hi = hi >> 8 - buf[offset + 2] = hi - hi = hi >> 8 - buf[offset + 1] = hi - hi = hi >> 8 - buf[offset] = hi - return offset + 8 +exports.QuerySpendableBalanceByDenomRequest = { + typeUrl: "/cosmos.bank.v1beta1.QuerySpendableBalanceByDenomRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.address !== "") { + writer.uint32(10).string(message.address); + } + if (message.denom !== "") { + writer.uint32(18).string(message.denom); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQuerySpendableBalanceByDenomRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.address = reader.string(); + break; + case 2: + message.denom = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQuerySpendableBalanceByDenomRequest(); + if ((0, helpers_1.isSet)(object.address)) + obj.address = String(object.address); + if ((0, helpers_1.isSet)(object.denom)) + obj.denom = String(object.denom); + return obj; + }, + toJSON(message) { + const obj = {}; + message.address !== undefined && (obj.address = message.address); + message.denom !== undefined && (obj.denom = message.denom); + return obj; + }, + fromPartial(object) { + const message = createBaseQuerySpendableBalanceByDenomRequest(); + message.address = object.address ?? ""; + message.denom = object.denom ?? ""; + return message; + }, +}; +function createBaseQuerySpendableBalanceByDenomResponse() { + return { + balance: undefined, + }; } - -Buffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) { - return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff')) -}) - -Buffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) { - return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff')) -}) - -Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - const limit = Math.pow(2, (8 * byteLength) - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - let i = 0 - let mul = 1 - let sub = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { - sub = 1 - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength +exports.QuerySpendableBalanceByDenomResponse = { + typeUrl: "/cosmos.bank.v1beta1.QuerySpendableBalanceByDenomResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.balance !== undefined) { + coin_1.Coin.encode(message.balance, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQuerySpendableBalanceByDenomResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.balance = coin_1.Coin.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQuerySpendableBalanceByDenomResponse(); + if ((0, helpers_1.isSet)(object.balance)) + obj.balance = coin_1.Coin.fromJSON(object.balance); + return obj; + }, + toJSON(message) { + const obj = {}; + message.balance !== undefined && + (obj.balance = message.balance ? coin_1.Coin.toJSON(message.balance) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQuerySpendableBalanceByDenomResponse(); + if (object.balance !== undefined && object.balance !== null) { + message.balance = coin_1.Coin.fromPartial(object.balance); + } + return message; + }, +}; +function createBaseQueryTotalSupplyRequest() { + return { + pagination: undefined, + }; } - -Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - const limit = Math.pow(2, (8 * byteLength) - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - let i = byteLength - 1 - let mul = 1 - let sub = 0 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { - sub = 1 - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength +exports.QueryTotalSupplyRequest = { + typeUrl: "/cosmos.bank.v1beta1.QueryTotalSupplyRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryTotalSupplyRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryTotalSupplyRequest(); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; + }, + toJSON(message) { + const obj = {}; + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryTotalSupplyRequest(); + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } + return message; + }, +}; +function createBaseQueryTotalSupplyResponse() { + return { + supply: [], + pagination: undefined, + }; } - -Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) - if (value < 0) value = 0xff + value + 1 - this[offset] = (value & 0xff) - return offset + 1 +exports.QueryTotalSupplyResponse = { + typeUrl: "/cosmos.bank.v1beta1.QueryTotalSupplyResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.supply) { + coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryTotalSupplyResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.supply.push(coin_1.Coin.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryTotalSupplyResponse(); + if (Array.isArray(object?.supply)) + obj.supply = object.supply.map((e) => coin_1.Coin.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; + }, + toJSON(message) { + const obj = {}; + if (message.supply) { + obj.supply = message.supply.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + } + else { + obj.supply = []; + } + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryTotalSupplyResponse(); + message.supply = object.supply?.map((e) => coin_1.Coin.fromPartial(e)) || []; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } + return message; + }, +}; +function createBaseQuerySupplyOfRequest() { + return { + denom: "", + }; } - -Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - return offset + 2 +exports.QuerySupplyOfRequest = { + typeUrl: "/cosmos.bank.v1beta1.QuerySupplyOfRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.denom !== "") { + writer.uint32(10).string(message.denom); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQuerySupplyOfRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.denom = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQuerySupplyOfRequest(); + if ((0, helpers_1.isSet)(object.denom)) + obj.denom = String(object.denom); + return obj; + }, + toJSON(message) { + const obj = {}; + message.denom !== undefined && (obj.denom = message.denom); + return obj; + }, + fromPartial(object) { + const message = createBaseQuerySupplyOfRequest(); + message.denom = object.denom ?? ""; + return message; + }, +}; +function createBaseQuerySupplyOfResponse() { + return { + amount: coin_1.Coin.fromPartial({}), + }; } - -Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - return offset + 2 +exports.QuerySupplyOfResponse = { + typeUrl: "/cosmos.bank.v1beta1.QuerySupplyOfResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.amount !== undefined) { + coin_1.Coin.encode(message.amount, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQuerySupplyOfResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.amount = coin_1.Coin.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQuerySupplyOfResponse(); + if ((0, helpers_1.isSet)(object.amount)) + obj.amount = coin_1.Coin.fromJSON(object.amount); + return obj; + }, + toJSON(message) { + const obj = {}; + message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQuerySupplyOfResponse(); + if (object.amount !== undefined && object.amount !== null) { + message.amount = coin_1.Coin.fromPartial(object.amount); + } + return message; + }, +}; +function createBaseQueryParamsRequest() { + return {}; } - -Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - this[offset + 2] = (value >>> 16) - this[offset + 3] = (value >>> 24) - return offset + 4 +exports.QueryParamsRequest = { + typeUrl: "/cosmos.bank.v1beta1.QueryParamsRequest", + encode(_, writer = binary_1.BinaryWriter.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryParamsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_) { + const obj = createBaseQueryParamsRequest(); + return obj; + }, + toJSON(_) { + const obj = {}; + return obj; + }, + fromPartial(_) { + const message = createBaseQueryParamsRequest(); + return message; + }, +}; +function createBaseQueryParamsResponse() { + return { + params: bank_1.Params.fromPartial({}), + }; } - -Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - if (value < 0) value = 0xffffffff + value + 1 - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - return offset + 4 +exports.QueryParamsResponse = { + typeUrl: "/cosmos.bank.v1beta1.QueryParamsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.params !== undefined) { + bank_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryParamsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.params = bank_1.Params.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryParamsResponse(); + if ((0, helpers_1.isSet)(object.params)) + obj.params = bank_1.Params.fromJSON(object.params); + return obj; + }, + toJSON(message) { + const obj = {}; + message.params !== undefined && (obj.params = message.params ? bank_1.Params.toJSON(message.params) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryParamsResponse(); + if (object.params !== undefined && object.params !== null) { + message.params = bank_1.Params.fromPartial(object.params); + } + return message; + }, +}; +function createBaseQueryDenomsMetadataRequest() { + return { + pagination: undefined, + }; } - -Buffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) { - return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff')) -}) - -Buffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) { - return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff')) -}) - -function checkIEEE754 (buf, value, offset, ext, max, min) { - if (offset + ext > buf.length) throw new RangeError('Index out of range') - if (offset < 0) throw new RangeError('Index out of range') +exports.QueryDenomsMetadataRequest = { + typeUrl: "/cosmos.bank.v1beta1.QueryDenomsMetadataRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryDenomsMetadataRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryDenomsMetadataRequest(); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; + }, + toJSON(message) { + const obj = {}; + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryDenomsMetadataRequest(); + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } + return message; + }, +}; +function createBaseQueryDenomsMetadataResponse() { + return { + metadatas: [], + pagination: undefined, + }; } - -function writeFloat (buf, value, offset, littleEndian, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) - } - ieee754.write(buf, value, offset, littleEndian, 23, 4) - return offset + 4 +exports.QueryDenomsMetadataResponse = { + typeUrl: "/cosmos.bank.v1beta1.QueryDenomsMetadataResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.metadatas) { + bank_1.Metadata.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryDenomsMetadataResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.metadatas.push(bank_1.Metadata.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryDenomsMetadataResponse(); + if (Array.isArray(object?.metadatas)) + obj.metadatas = object.metadatas.map((e) => bank_1.Metadata.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; + }, + toJSON(message) { + const obj = {}; + if (message.metadatas) { + obj.metadatas = message.metadatas.map((e) => (e ? bank_1.Metadata.toJSON(e) : undefined)); + } + else { + obj.metadatas = []; + } + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryDenomsMetadataResponse(); + message.metadatas = object.metadatas?.map((e) => bank_1.Metadata.fromPartial(e)) || []; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } + return message; + }, +}; +function createBaseQueryDenomMetadataRequest() { + return { + denom: "", + }; } - -Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { - return writeFloat(this, value, offset, true, noAssert) +exports.QueryDenomMetadataRequest = { + typeUrl: "/cosmos.bank.v1beta1.QueryDenomMetadataRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.denom !== "") { + writer.uint32(10).string(message.denom); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryDenomMetadataRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.denom = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryDenomMetadataRequest(); + if ((0, helpers_1.isSet)(object.denom)) + obj.denom = String(object.denom); + return obj; + }, + toJSON(message) { + const obj = {}; + message.denom !== undefined && (obj.denom = message.denom); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryDenomMetadataRequest(); + message.denom = object.denom ?? ""; + return message; + }, +}; +function createBaseQueryDenomMetadataResponse() { + return { + metadata: bank_1.Metadata.fromPartial({}), + }; } - -Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { - return writeFloat(this, value, offset, false, noAssert) +exports.QueryDenomMetadataResponse = { + typeUrl: "/cosmos.bank.v1beta1.QueryDenomMetadataResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.metadata !== undefined) { + bank_1.Metadata.encode(message.metadata, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryDenomMetadataResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.metadata = bank_1.Metadata.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryDenomMetadataResponse(); + if ((0, helpers_1.isSet)(object.metadata)) + obj.metadata = bank_1.Metadata.fromJSON(object.metadata); + return obj; + }, + toJSON(message) { + const obj = {}; + message.metadata !== undefined && + (obj.metadata = message.metadata ? bank_1.Metadata.toJSON(message.metadata) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryDenomMetadataResponse(); + if (object.metadata !== undefined && object.metadata !== null) { + message.metadata = bank_1.Metadata.fromPartial(object.metadata); + } + return message; + }, +}; +function createBaseQueryDenomOwnersRequest() { + return { + denom: "", + pagination: undefined, + }; } - -function writeDouble (buf, value, offset, littleEndian, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) - } - ieee754.write(buf, value, offset, littleEndian, 52, 8) - return offset + 8 +exports.QueryDenomOwnersRequest = { + typeUrl: "/cosmos.bank.v1beta1.QueryDenomOwnersRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.denom !== "") { + writer.uint32(10).string(message.denom); + } + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryDenomOwnersRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.denom = reader.string(); + break; + case 2: + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryDenomOwnersRequest(); + if ((0, helpers_1.isSet)(object.denom)) + obj.denom = String(object.denom); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; + }, + toJSON(message) { + const obj = {}; + message.denom !== undefined && (obj.denom = message.denom); + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryDenomOwnersRequest(); + message.denom = object.denom ?? ""; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } + return message; + }, +}; +function createBaseDenomOwner() { + return { + address: "", + balance: coin_1.Coin.fromPartial({}), + }; } - -Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { - return writeDouble(this, value, offset, true, noAssert) +exports.DenomOwner = { + typeUrl: "/cosmos.bank.v1beta1.DenomOwner", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.address !== "") { + writer.uint32(10).string(message.address); + } + if (message.balance !== undefined) { + coin_1.Coin.encode(message.balance, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDenomOwner(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.address = reader.string(); + break; + case 2: + message.balance = coin_1.Coin.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseDenomOwner(); + if ((0, helpers_1.isSet)(object.address)) + obj.address = String(object.address); + if ((0, helpers_1.isSet)(object.balance)) + obj.balance = coin_1.Coin.fromJSON(object.balance); + return obj; + }, + toJSON(message) { + const obj = {}; + message.address !== undefined && (obj.address = message.address); + message.balance !== undefined && + (obj.balance = message.balance ? coin_1.Coin.toJSON(message.balance) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseDenomOwner(); + message.address = object.address ?? ""; + if (object.balance !== undefined && object.balance !== null) { + message.balance = coin_1.Coin.fromPartial(object.balance); + } + return message; + }, +}; +function createBaseQueryDenomOwnersResponse() { + return { + denomOwners: [], + pagination: undefined, + }; } - -Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { - return writeDouble(this, value, offset, false, noAssert) +exports.QueryDenomOwnersResponse = { + typeUrl: "/cosmos.bank.v1beta1.QueryDenomOwnersResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.denomOwners) { + exports.DenomOwner.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryDenomOwnersResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.denomOwners.push(exports.DenomOwner.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQueryDenomOwnersResponse(); + if (Array.isArray(object?.denomOwners)) + obj.denomOwners = object.denomOwners.map((e) => exports.DenomOwner.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; + }, + toJSON(message) { + const obj = {}; + if (message.denomOwners) { + obj.denomOwners = message.denomOwners.map((e) => (e ? exports.DenomOwner.toJSON(e) : undefined)); + } + else { + obj.denomOwners = []; + } + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQueryDenomOwnersResponse(); + message.denomOwners = object.denomOwners?.map((e) => exports.DenomOwner.fromPartial(e)) || []; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } + return message; + }, +}; +function createBaseQuerySendEnabledRequest() { + return { + denoms: [], + pagination: undefined, + }; } - -// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) -Buffer.prototype.copy = function copy (target, targetStart, start, end) { - if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer') - if (!start) start = 0 - if (!end && end !== 0) end = this.length - if (targetStart >= target.length) targetStart = target.length - if (!targetStart) targetStart = 0 - if (end > 0 && end < start) end = start - - // Copy 0 bytes; we're done - if (end === start) return 0 - if (target.length === 0 || this.length === 0) return 0 - - // Fatal error conditions - if (targetStart < 0) { - throw new RangeError('targetStart out of bounds') - } - if (start < 0 || start >= this.length) throw new RangeError('Index out of range') - if (end < 0) throw new RangeError('sourceEnd out of bounds') - - // Are we oob? - if (end > this.length) end = this.length - if (target.length - targetStart < end - start) { - end = target.length - targetStart + start - } - - const len = end - start - - if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') { - // Use built-in when available, missing from IE11 - this.copyWithin(targetStart, start, end) - } else { - Uint8Array.prototype.set.call( - target, - this.subarray(start, end), - targetStart - ) - } - - return len +exports.QuerySendEnabledRequest = { + typeUrl: "/cosmos.bank.v1beta1.QuerySendEnabledRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.denoms) { + writer.uint32(10).string(v); + } + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(794).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQuerySendEnabledRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.denoms.push(reader.string()); + break; + case 99: + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQuerySendEnabledRequest(); + if (Array.isArray(object?.denoms)) + obj.denoms = object.denoms.map((e) => String(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; + }, + toJSON(message) { + const obj = {}; + if (message.denoms) { + obj.denoms = message.denoms.map((e) => e); + } + else { + obj.denoms = []; + } + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQuerySendEnabledRequest(); + message.denoms = object.denoms?.map((e) => e) || []; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } + return message; + }, +}; +function createBaseQuerySendEnabledResponse() { + return { + sendEnabled: [], + pagination: undefined, + }; } - -// Usage: -// buffer.fill(number[, offset[, end]]) -// buffer.fill(buffer[, offset[, end]]) -// buffer.fill(string[, offset[, end]][, encoding]) -Buffer.prototype.fill = function fill (val, start, end, encoding) { - // Handle string cases: - if (typeof val === 'string') { - if (typeof start === 'string') { - encoding = start - start = 0 - end = this.length - } else if (typeof end === 'string') { - encoding = end - end = this.length +exports.QuerySendEnabledResponse = { + typeUrl: "/cosmos.bank.v1beta1.QuerySendEnabledResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.sendEnabled) { + bank_1.SendEnabled.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(794).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQuerySendEnabledResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.sendEnabled.push(bank_1.SendEnabled.decode(reader, reader.uint32())); + break; + case 99: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseQuerySendEnabledResponse(); + if (Array.isArray(object?.sendEnabled)) + obj.sendEnabled = object.sendEnabled.map((e) => bank_1.SendEnabled.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; + }, + toJSON(message) { + const obj = {}; + if (message.sendEnabled) { + obj.sendEnabled = message.sendEnabled.map((e) => (e ? bank_1.SendEnabled.toJSON(e) : undefined)); + } + else { + obj.sendEnabled = []; + } + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseQuerySendEnabledResponse(); + message.sendEnabled = object.sendEnabled?.map((e) => bank_1.SendEnabled.fromPartial(e)) || []; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } + return message; + }, +}; +class QueryClientImpl { + constructor(rpc) { + this.rpc = rpc; + this.Balance = this.Balance.bind(this); + this.AllBalances = this.AllBalances.bind(this); + this.SpendableBalances = this.SpendableBalances.bind(this); + this.SpendableBalanceByDenom = this.SpendableBalanceByDenom.bind(this); + this.TotalSupply = this.TotalSupply.bind(this); + this.SupplyOf = this.SupplyOf.bind(this); + this.Params = this.Params.bind(this); + this.DenomMetadata = this.DenomMetadata.bind(this); + this.DenomsMetadata = this.DenomsMetadata.bind(this); + this.DenomOwners = this.DenomOwners.bind(this); + this.SendEnabled = this.SendEnabled.bind(this); } - if (encoding !== undefined && typeof encoding !== 'string') { - throw new TypeError('encoding must be a string') + Balance(request) { + const data = exports.QueryBalanceRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "Balance", data); + return promise.then((data) => exports.QueryBalanceResponse.decode(new binary_1.BinaryReader(data))); } - if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { - throw new TypeError('Unknown encoding: ' + encoding) + AllBalances(request) { + const data = exports.QueryAllBalancesRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "AllBalances", data); + return promise.then((data) => exports.QueryAllBalancesResponse.decode(new binary_1.BinaryReader(data))); } - if (val.length === 1) { - const code = val.charCodeAt(0) - if ((encoding === 'utf8' && code < 128) || - encoding === 'latin1') { - // Fast path: If `val` fits into a single byte, use that numeric value. - val = code - } + SpendableBalances(request) { + const data = exports.QuerySpendableBalancesRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "SpendableBalances", data); + return promise.then((data) => exports.QuerySpendableBalancesResponse.decode(new binary_1.BinaryReader(data))); } - } else if (typeof val === 'number') { - val = val & 255 - } else if (typeof val === 'boolean') { - val = Number(val) - } - - // Invalid ranges are not set to a default, so can range check early. - if (start < 0 || this.length < start || this.length < end) { - throw new RangeError('Out of range index') - } - - if (end <= start) { - return this - } - - start = start >>> 0 - end = end === undefined ? this.length : end >>> 0 - - if (!val) val = 0 - - let i - if (typeof val === 'number') { - for (i = start; i < end; ++i) { - this[i] = val + SpendableBalanceByDenom(request) { + const data = exports.QuerySpendableBalanceByDenomRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "SpendableBalanceByDenom", data); + return promise.then((data) => exports.QuerySpendableBalanceByDenomResponse.decode(new binary_1.BinaryReader(data))); } - } else { - const bytes = Buffer.isBuffer(val) - ? val - : Buffer.from(val, encoding) - const len = bytes.length - if (len === 0) { - throw new TypeError('The value "' + val + - '" is invalid for argument "value"') + TotalSupply(request = { + pagination: pagination_1.PageRequest.fromPartial({}), + }) { + const data = exports.QueryTotalSupplyRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "TotalSupply", data); + return promise.then((data) => exports.QueryTotalSupplyResponse.decode(new binary_1.BinaryReader(data))); } - for (i = 0; i < end - start; ++i) { - this[i + start] = bytes[i % len] + SupplyOf(request) { + const data = exports.QuerySupplyOfRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "SupplyOf", data); + return promise.then((data) => exports.QuerySupplyOfResponse.decode(new binary_1.BinaryReader(data))); + } + Params(request = {}) { + const data = exports.QueryParamsRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "Params", data); + return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data))); + } + DenomMetadata(request) { + const data = exports.QueryDenomMetadataRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "DenomMetadata", data); + return promise.then((data) => exports.QueryDenomMetadataResponse.decode(new binary_1.BinaryReader(data))); + } + DenomsMetadata(request = { + pagination: pagination_1.PageRequest.fromPartial({}), + }) { + const data = exports.QueryDenomsMetadataRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "DenomsMetadata", data); + return promise.then((data) => exports.QueryDenomsMetadataResponse.decode(new binary_1.BinaryReader(data))); + } + DenomOwners(request) { + const data = exports.QueryDenomOwnersRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "DenomOwners", data); + return promise.then((data) => exports.QueryDenomOwnersResponse.decode(new binary_1.BinaryReader(data))); + } + SendEnabled(request) { + const data = exports.QuerySendEnabledRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "SendEnabled", data); + return promise.then((data) => exports.QuerySendEnabledResponse.decode(new binary_1.BinaryReader(data))); } - } - - return this } +exports.QueryClientImpl = QueryClientImpl; +//# sourceMappingURL=query.js.map -// CUSTOM ERRORS -// ============= - -// Simplified versions from Node, changed for Buffer-only usage -const errors = {} -function E (sym, getMessage, Base) { - errors[sym] = class NodeError extends Base { - constructor () { - super() - - Object.defineProperty(this, 'message', { - value: getMessage.apply(this, arguments), - writable: true, - configurable: true - }) +/***/ }), - // Add the error code to the name to include it in the stack trace. - this.name = `${this.name} [${sym}]` - // Access the stack to generate the error message including the error code - // from the name. - this.stack // eslint-disable-line no-unused-expressions - // Reset the name to the actual name. - delete this.name - } +/***/ "./node_modules/cosmjs-types/cosmos/bank/v1beta1/tx.js": +/*!*************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/bank/v1beta1/tx.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - get code () { - return sym - } +"use strict"; - set code (value) { - Object.defineProperty(this, 'code', { - configurable: true, - enumerable: true, - value, - writable: true - }) +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.MsgClientImpl = exports.MsgSetSendEnabledResponse = exports.MsgSetSendEnabled = exports.MsgUpdateParamsResponse = exports.MsgUpdateParams = exports.MsgMultiSendResponse = exports.MsgMultiSend = exports.MsgSendResponse = exports.MsgSend = exports.protobufPackage = void 0; +/* eslint-disable */ +const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); +const bank_1 = __webpack_require__(/*! ./bank */ "./node_modules/cosmjs-types/cosmos/bank/v1beta1/bank.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "cosmos.bank.v1beta1"; +function createBaseMsgSend() { + return { + fromAddress: "", + toAddress: "", + amount: [], + }; +} +exports.MsgSend = { + typeUrl: "/cosmos.bank.v1beta1.MsgSend", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.fromAddress !== "") { + writer.uint32(10).string(message.fromAddress); + } + if (message.toAddress !== "") { + writer.uint32(18).string(message.toAddress); + } + for (const v of message.amount) { + coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgSend(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.fromAddress = reader.string(); + break; + case 2: + message.toAddress = reader.string(); + break; + case 3: + message.amount.push(coin_1.Coin.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseMsgSend(); + if ((0, helpers_1.isSet)(object.fromAddress)) + obj.fromAddress = String(object.fromAddress); + if ((0, helpers_1.isSet)(object.toAddress)) + obj.toAddress = String(object.toAddress); + if (Array.isArray(object?.amount)) + obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e)); + return obj; + }, + toJSON(message) { + const obj = {}; + message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress); + message.toAddress !== undefined && (obj.toAddress = message.toAddress); + if (message.amount) { + obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + } + else { + obj.amount = []; + } + return obj; + }, + fromPartial(object) { + const message = createBaseMsgSend(); + message.fromAddress = object.fromAddress ?? ""; + message.toAddress = object.toAddress ?? ""; + message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || []; + return message; + }, +}; +function createBaseMsgSendResponse() { + return {}; +} +exports.MsgSendResponse = { + typeUrl: "/cosmos.bank.v1beta1.MsgSendResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgSendResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_) { + const obj = createBaseMsgSendResponse(); + return obj; + }, + toJSON(_) { + const obj = {}; + return obj; + }, + fromPartial(_) { + const message = createBaseMsgSendResponse(); + return message; + }, +}; +function createBaseMsgMultiSend() { + return { + inputs: [], + outputs: [], + }; +} +exports.MsgMultiSend = { + typeUrl: "/cosmos.bank.v1beta1.MsgMultiSend", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.inputs) { + bank_1.Input.encode(v, writer.uint32(10).fork()).ldelim(); + } + for (const v of message.outputs) { + bank_1.Output.encode(v, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgMultiSend(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.inputs.push(bank_1.Input.decode(reader, reader.uint32())); + break; + case 2: + message.outputs.push(bank_1.Output.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseMsgMultiSend(); + if (Array.isArray(object?.inputs)) + obj.inputs = object.inputs.map((e) => bank_1.Input.fromJSON(e)); + if (Array.isArray(object?.outputs)) + obj.outputs = object.outputs.map((e) => bank_1.Output.fromJSON(e)); + return obj; + }, + toJSON(message) { + const obj = {}; + if (message.inputs) { + obj.inputs = message.inputs.map((e) => (e ? bank_1.Input.toJSON(e) : undefined)); + } + else { + obj.inputs = []; + } + if (message.outputs) { + obj.outputs = message.outputs.map((e) => (e ? bank_1.Output.toJSON(e) : undefined)); + } + else { + obj.outputs = []; + } + return obj; + }, + fromPartial(object) { + const message = createBaseMsgMultiSend(); + message.inputs = object.inputs?.map((e) => bank_1.Input.fromPartial(e)) || []; + message.outputs = object.outputs?.map((e) => bank_1.Output.fromPartial(e)) || []; + return message; + }, +}; +function createBaseMsgMultiSendResponse() { + return {}; +} +exports.MsgMultiSendResponse = { + typeUrl: "/cosmos.bank.v1beta1.MsgMultiSendResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgMultiSendResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_) { + const obj = createBaseMsgMultiSendResponse(); + return obj; + }, + toJSON(_) { + const obj = {}; + return obj; + }, + fromPartial(_) { + const message = createBaseMsgMultiSendResponse(); + return message; + }, +}; +function createBaseMsgUpdateParams() { + return { + authority: "", + params: bank_1.Params.fromPartial({}), + }; +} +exports.MsgUpdateParams = { + typeUrl: "/cosmos.bank.v1beta1.MsgUpdateParams", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.authority !== "") { + writer.uint32(10).string(message.authority); + } + if (message.params !== undefined) { + bank_1.Params.encode(message.params, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgUpdateParams(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.authority = reader.string(); + break; + case 2: + message.params = bank_1.Params.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseMsgUpdateParams(); + if ((0, helpers_1.isSet)(object.authority)) + obj.authority = String(object.authority); + if ((0, helpers_1.isSet)(object.params)) + obj.params = bank_1.Params.fromJSON(object.params); + return obj; + }, + toJSON(message) { + const obj = {}; + message.authority !== undefined && (obj.authority = message.authority); + message.params !== undefined && (obj.params = message.params ? bank_1.Params.toJSON(message.params) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseMsgUpdateParams(); + message.authority = object.authority ?? ""; + if (object.params !== undefined && object.params !== null) { + message.params = bank_1.Params.fromPartial(object.params); + } + return message; + }, +}; +function createBaseMsgUpdateParamsResponse() { + return {}; +} +exports.MsgUpdateParamsResponse = { + typeUrl: "/cosmos.bank.v1beta1.MsgUpdateParamsResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgUpdateParamsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_) { + const obj = createBaseMsgUpdateParamsResponse(); + return obj; + }, + toJSON(_) { + const obj = {}; + return obj; + }, + fromPartial(_) { + const message = createBaseMsgUpdateParamsResponse(); + return message; + }, +}; +function createBaseMsgSetSendEnabled() { + return { + authority: "", + sendEnabled: [], + useDefaultFor: [], + }; +} +exports.MsgSetSendEnabled = { + typeUrl: "/cosmos.bank.v1beta1.MsgSetSendEnabled", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.authority !== "") { + writer.uint32(10).string(message.authority); + } + for (const v of message.sendEnabled) { + bank_1.SendEnabled.encode(v, writer.uint32(18).fork()).ldelim(); + } + for (const v of message.useDefaultFor) { + writer.uint32(26).string(v); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgSetSendEnabled(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.authority = reader.string(); + break; + case 2: + message.sendEnabled.push(bank_1.SendEnabled.decode(reader, reader.uint32())); + break; + case 3: + message.useDefaultFor.push(reader.string()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseMsgSetSendEnabled(); + if ((0, helpers_1.isSet)(object.authority)) + obj.authority = String(object.authority); + if (Array.isArray(object?.sendEnabled)) + obj.sendEnabled = object.sendEnabled.map((e) => bank_1.SendEnabled.fromJSON(e)); + if (Array.isArray(object?.useDefaultFor)) + obj.useDefaultFor = object.useDefaultFor.map((e) => String(e)); + return obj; + }, + toJSON(message) { + const obj = {}; + message.authority !== undefined && (obj.authority = message.authority); + if (message.sendEnabled) { + obj.sendEnabled = message.sendEnabled.map((e) => (e ? bank_1.SendEnabled.toJSON(e) : undefined)); + } + else { + obj.sendEnabled = []; + } + if (message.useDefaultFor) { + obj.useDefaultFor = message.useDefaultFor.map((e) => e); + } + else { + obj.useDefaultFor = []; + } + return obj; + }, + fromPartial(object) { + const message = createBaseMsgSetSendEnabled(); + message.authority = object.authority ?? ""; + message.sendEnabled = object.sendEnabled?.map((e) => bank_1.SendEnabled.fromPartial(e)) || []; + message.useDefaultFor = object.useDefaultFor?.map((e) => e) || []; + return message; + }, +}; +function createBaseMsgSetSendEnabledResponse() { + return {}; +} +exports.MsgSetSendEnabledResponse = { + typeUrl: "/cosmos.bank.v1beta1.MsgSetSendEnabledResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgSetSendEnabledResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_) { + const obj = createBaseMsgSetSendEnabledResponse(); + return obj; + }, + toJSON(_) { + const obj = {}; + return obj; + }, + fromPartial(_) { + const message = createBaseMsgSetSendEnabledResponse(); + return message; + }, +}; +class MsgClientImpl { + constructor(rpc) { + this.rpc = rpc; + this.Send = this.Send.bind(this); + this.MultiSend = this.MultiSend.bind(this); + this.UpdateParams = this.UpdateParams.bind(this); + this.SetSendEnabled = this.SetSendEnabled.bind(this); } - - toString () { - return `${this.name} [${sym}]: ${this.message}` + Send(request) { + const data = exports.MsgSend.encode(request).finish(); + const promise = this.rpc.request("cosmos.bank.v1beta1.Msg", "Send", data); + return promise.then((data) => exports.MsgSendResponse.decode(new binary_1.BinaryReader(data))); } - } -} - -E('ERR_BUFFER_OUT_OF_BOUNDS', - function (name) { - if (name) { - return `${name} is outside of buffer bounds` + MultiSend(request) { + const data = exports.MsgMultiSend.encode(request).finish(); + const promise = this.rpc.request("cosmos.bank.v1beta1.Msg", "MultiSend", data); + return promise.then((data) => exports.MsgMultiSendResponse.decode(new binary_1.BinaryReader(data))); } - - return 'Attempt to access memory outside buffer bounds' - }, RangeError) -E('ERR_INVALID_ARG_TYPE', - function (name, actual) { - return `The "${name}" argument must be of type number. Received type ${typeof actual}` - }, TypeError) -E('ERR_OUT_OF_RANGE', - function (str, range, input) { - let msg = `The value of "${str}" is out of range.` - let received = input - if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) { - received = addNumericalSeparator(String(input)) - } else if (typeof input === 'bigint') { - received = String(input) - if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) { - received = addNumericalSeparator(received) - } - received += 'n' + UpdateParams(request) { + const data = exports.MsgUpdateParams.encode(request).finish(); + const promise = this.rpc.request("cosmos.bank.v1beta1.Msg", "UpdateParams", data); + return promise.then((data) => exports.MsgUpdateParamsResponse.decode(new binary_1.BinaryReader(data))); } - msg += ` It must be ${range}. Received ${received}` - return msg - }, RangeError) - -function addNumericalSeparator (val) { - let res = '' - let i = val.length - const start = val[0] === '-' ? 1 : 0 - for (; i >= start + 4; i -= 3) { - res = `_${val.slice(i - 3, i)}${res}` - } - return `${val.slice(0, i)}${res}` -} - -// CHECK FUNCTIONS -// =============== - -function checkBounds (buf, offset, byteLength) { - validateNumber(offset, 'offset') - if (buf[offset] === undefined || buf[offset + byteLength] === undefined) { - boundsError(offset, buf.length - (byteLength + 1)) - } -} - -function checkIntBI (value, min, max, buf, offset, byteLength) { - if (value > max || value < min) { - const n = typeof min === 'bigint' ? 'n' : '' - let range - if (byteLength > 3) { - if (min === 0 || min === BigInt(0)) { - range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}` - } else { - range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` + - `${(byteLength + 1) * 8 - 1}${n}` - } - } else { - range = `>= ${min}${n} and <= ${max}${n}` + SetSendEnabled(request) { + const data = exports.MsgSetSendEnabled.encode(request).finish(); + const promise = this.rpc.request("cosmos.bank.v1beta1.Msg", "SetSendEnabled", data); + return promise.then((data) => exports.MsgSetSendEnabledResponse.decode(new binary_1.BinaryReader(data))); } - throw new errors.ERR_OUT_OF_RANGE('value', range, value) - } - checkBounds(buf, offset, byteLength) } +exports.MsgClientImpl = MsgClientImpl; +//# sourceMappingURL=tx.js.map -function validateNumber (value, name) { - if (typeof value !== 'number') { - throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value) - } -} - -function boundsError (value, length, type) { - if (Math.floor(value) !== value) { - validateNumber(value, type) - throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value) - } - - if (length < 0) { - throw new errors.ERR_BUFFER_OUT_OF_BOUNDS() - } - - throw new errors.ERR_OUT_OF_RANGE(type || 'offset', - `>= ${type ? 1 : 0} and <= ${length}`, - value) -} +/***/ }), -// HELPER FUNCTIONS -// ================ +/***/ "./node_modules/cosmjs-types/cosmos/base/abci/v1beta1/abci.js": +/*!********************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/base/abci/v1beta1/abci.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { -const INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g +"use strict"; -function base64clean (str) { - // Node takes equal signs as end of the Base64 encoding - str = str.split('=')[0] - // Node strips out invalid characters like \n and \t from the string, base64-js does not - str = str.trim().replace(INVALID_BASE64_RE, '') - // Node converts strings with length < 2 to '' - if (str.length < 2) return '' - // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not - while (str.length % 4 !== 0) { - str = str + '=' - } - return str +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SearchTxsResult = exports.TxMsgData = exports.MsgData = exports.SimulationResponse = exports.Result = exports.GasInfo = exports.Attribute = exports.StringEvent = exports.ABCIMessageLog = exports.TxResponse = exports.protobufPackage = void 0; +/* eslint-disable */ +const any_1 = __webpack_require__(/*! ../../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); +const types_1 = __webpack_require__(/*! ../../../../tendermint/abci/types */ "./node_modules/cosmjs-types/tendermint/abci/types.js"); +const binary_1 = __webpack_require__(/*! ../../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "cosmos.base.abci.v1beta1"; +function createBaseTxResponse() { + return { + height: BigInt(0), + txhash: "", + codespace: "", + code: 0, + data: "", + rawLog: "", + logs: [], + info: "", + gasWanted: BigInt(0), + gasUsed: BigInt(0), + tx: undefined, + timestamp: "", + events: [], + }; } - -function utf8ToBytes (string, units) { - units = units || Infinity - let codePoint - const length = string.length - let leadSurrogate = null - const bytes = [] - - for (let i = 0; i < length; ++i) { - codePoint = string.charCodeAt(i) - - // is surrogate component - if (codePoint > 0xD7FF && codePoint < 0xE000) { - // last char was a lead - if (!leadSurrogate) { - // no lead yet - if (codePoint > 0xDBFF) { - // unexpected trail - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } else if (i + 1 === length) { - // unpaired lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue +exports.TxResponse = { + typeUrl: "/cosmos.base.abci.v1beta1.TxResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.height !== BigInt(0)) { + writer.uint32(8).int64(message.height); } - - // valid lead - leadSurrogate = codePoint - - continue - } - - // 2 leads in a row - if (codePoint < 0xDC00) { - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - leadSurrogate = codePoint - continue - } - - // valid surrogate pair - codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 - } else if (leadSurrogate) { - // valid bmp char, but last char was a lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - } - - leadSurrogate = null - - // encode utf8 - if (codePoint < 0x80) { - if ((units -= 1) < 0) break - bytes.push(codePoint) - } else if (codePoint < 0x800) { - if ((units -= 2) < 0) break - bytes.push( - codePoint >> 0x6 | 0xC0, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x10000) { - if ((units -= 3) < 0) break - bytes.push( - codePoint >> 0xC | 0xE0, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x110000) { - if ((units -= 4) < 0) break - bytes.push( - codePoint >> 0x12 | 0xF0, - codePoint >> 0xC & 0x3F | 0x80, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else { - throw new Error('Invalid code point') - } - } - - return bytes -} - -function asciiToBytes (str) { - const byteArray = [] - for (let i = 0; i < str.length; ++i) { - // Node's code seems to be doing this and not & 0x7F.. - byteArray.push(str.charCodeAt(i) & 0xFF) - } - return byteArray + if (message.txhash !== "") { + writer.uint32(18).string(message.txhash); + } + if (message.codespace !== "") { + writer.uint32(26).string(message.codespace); + } + if (message.code !== 0) { + writer.uint32(32).uint32(message.code); + } + if (message.data !== "") { + writer.uint32(42).string(message.data); + } + if (message.rawLog !== "") { + writer.uint32(50).string(message.rawLog); + } + for (const v of message.logs) { + exports.ABCIMessageLog.encode(v, writer.uint32(58).fork()).ldelim(); + } + if (message.info !== "") { + writer.uint32(66).string(message.info); + } + if (message.gasWanted !== BigInt(0)) { + writer.uint32(72).int64(message.gasWanted); + } + if (message.gasUsed !== BigInt(0)) { + writer.uint32(80).int64(message.gasUsed); + } + if (message.tx !== undefined) { + any_1.Any.encode(message.tx, writer.uint32(90).fork()).ldelim(); + } + if (message.timestamp !== "") { + writer.uint32(98).string(message.timestamp); + } + for (const v of message.events) { + types_1.Event.encode(v, writer.uint32(106).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTxResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.height = reader.int64(); + break; + case 2: + message.txhash = reader.string(); + break; + case 3: + message.codespace = reader.string(); + break; + case 4: + message.code = reader.uint32(); + break; + case 5: + message.data = reader.string(); + break; + case 6: + message.rawLog = reader.string(); + break; + case 7: + message.logs.push(exports.ABCIMessageLog.decode(reader, reader.uint32())); + break; + case 8: + message.info = reader.string(); + break; + case 9: + message.gasWanted = reader.int64(); + break; + case 10: + message.gasUsed = reader.int64(); + break; + case 11: + message.tx = any_1.Any.decode(reader, reader.uint32()); + break; + case 12: + message.timestamp = reader.string(); + break; + case 13: + message.events.push(types_1.Event.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseTxResponse(); + if ((0, helpers_1.isSet)(object.height)) + obj.height = BigInt(object.height.toString()); + if ((0, helpers_1.isSet)(object.txhash)) + obj.txhash = String(object.txhash); + if ((0, helpers_1.isSet)(object.codespace)) + obj.codespace = String(object.codespace); + if ((0, helpers_1.isSet)(object.code)) + obj.code = Number(object.code); + if ((0, helpers_1.isSet)(object.data)) + obj.data = String(object.data); + if ((0, helpers_1.isSet)(object.rawLog)) + obj.rawLog = String(object.rawLog); + if (Array.isArray(object?.logs)) + obj.logs = object.logs.map((e) => exports.ABCIMessageLog.fromJSON(e)); + if ((0, helpers_1.isSet)(object.info)) + obj.info = String(object.info); + if ((0, helpers_1.isSet)(object.gasWanted)) + obj.gasWanted = BigInt(object.gasWanted.toString()); + if ((0, helpers_1.isSet)(object.gasUsed)) + obj.gasUsed = BigInt(object.gasUsed.toString()); + if ((0, helpers_1.isSet)(object.tx)) + obj.tx = any_1.Any.fromJSON(object.tx); + if ((0, helpers_1.isSet)(object.timestamp)) + obj.timestamp = String(object.timestamp); + if (Array.isArray(object?.events)) + obj.events = object.events.map((e) => types_1.Event.fromJSON(e)); + return obj; + }, + toJSON(message) { + const obj = {}; + message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString()); + message.txhash !== undefined && (obj.txhash = message.txhash); + message.codespace !== undefined && (obj.codespace = message.codespace); + message.code !== undefined && (obj.code = Math.round(message.code)); + message.data !== undefined && (obj.data = message.data); + message.rawLog !== undefined && (obj.rawLog = message.rawLog); + if (message.logs) { + obj.logs = message.logs.map((e) => (e ? exports.ABCIMessageLog.toJSON(e) : undefined)); + } + else { + obj.logs = []; + } + message.info !== undefined && (obj.info = message.info); + message.gasWanted !== undefined && (obj.gasWanted = (message.gasWanted || BigInt(0)).toString()); + message.gasUsed !== undefined && (obj.gasUsed = (message.gasUsed || BigInt(0)).toString()); + message.tx !== undefined && (obj.tx = message.tx ? any_1.Any.toJSON(message.tx) : undefined); + message.timestamp !== undefined && (obj.timestamp = message.timestamp); + if (message.events) { + obj.events = message.events.map((e) => (e ? types_1.Event.toJSON(e) : undefined)); + } + else { + obj.events = []; + } + return obj; + }, + fromPartial(object) { + const message = createBaseTxResponse(); + if (object.height !== undefined && object.height !== null) { + message.height = BigInt(object.height.toString()); + } + message.txhash = object.txhash ?? ""; + message.codespace = object.codespace ?? ""; + message.code = object.code ?? 0; + message.data = object.data ?? ""; + message.rawLog = object.rawLog ?? ""; + message.logs = object.logs?.map((e) => exports.ABCIMessageLog.fromPartial(e)) || []; + message.info = object.info ?? ""; + if (object.gasWanted !== undefined && object.gasWanted !== null) { + message.gasWanted = BigInt(object.gasWanted.toString()); + } + if (object.gasUsed !== undefined && object.gasUsed !== null) { + message.gasUsed = BigInt(object.gasUsed.toString()); + } + if (object.tx !== undefined && object.tx !== null) { + message.tx = any_1.Any.fromPartial(object.tx); + } + message.timestamp = object.timestamp ?? ""; + message.events = object.events?.map((e) => types_1.Event.fromPartial(e)) || []; + return message; + }, +}; +function createBaseABCIMessageLog() { + return { + msgIndex: 0, + log: "", + events: [], + }; } - -function utf16leToBytes (str, units) { - let c, hi, lo - const byteArray = [] - for (let i = 0; i < str.length; ++i) { - if ((units -= 2) < 0) break - - c = str.charCodeAt(i) - hi = c >> 8 - lo = c % 256 - byteArray.push(lo) - byteArray.push(hi) - } - - return byteArray +exports.ABCIMessageLog = { + typeUrl: "/cosmos.base.abci.v1beta1.ABCIMessageLog", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.msgIndex !== 0) { + writer.uint32(8).uint32(message.msgIndex); + } + if (message.log !== "") { + writer.uint32(18).string(message.log); + } + for (const v of message.events) { + exports.StringEvent.encode(v, writer.uint32(26).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseABCIMessageLog(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.msgIndex = reader.uint32(); + break; + case 2: + message.log = reader.string(); + break; + case 3: + message.events.push(exports.StringEvent.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseABCIMessageLog(); + if ((0, helpers_1.isSet)(object.msgIndex)) + obj.msgIndex = Number(object.msgIndex); + if ((0, helpers_1.isSet)(object.log)) + obj.log = String(object.log); + if (Array.isArray(object?.events)) + obj.events = object.events.map((e) => exports.StringEvent.fromJSON(e)); + return obj; + }, + toJSON(message) { + const obj = {}; + message.msgIndex !== undefined && (obj.msgIndex = Math.round(message.msgIndex)); + message.log !== undefined && (obj.log = message.log); + if (message.events) { + obj.events = message.events.map((e) => (e ? exports.StringEvent.toJSON(e) : undefined)); + } + else { + obj.events = []; + } + return obj; + }, + fromPartial(object) { + const message = createBaseABCIMessageLog(); + message.msgIndex = object.msgIndex ?? 0; + message.log = object.log ?? ""; + message.events = object.events?.map((e) => exports.StringEvent.fromPartial(e)) || []; + return message; + }, +}; +function createBaseStringEvent() { + return { + type: "", + attributes: [], + }; } - -function base64ToBytes (str) { - return base64.toByteArray(base64clean(str)) +exports.StringEvent = { + typeUrl: "/cosmos.base.abci.v1beta1.StringEvent", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.type !== "") { + writer.uint32(10).string(message.type); + } + for (const v of message.attributes) { + exports.Attribute.encode(v, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseStringEvent(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.type = reader.string(); + break; + case 2: + message.attributes.push(exports.Attribute.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseStringEvent(); + if ((0, helpers_1.isSet)(object.type)) + obj.type = String(object.type); + if (Array.isArray(object?.attributes)) + obj.attributes = object.attributes.map((e) => exports.Attribute.fromJSON(e)); + return obj; + }, + toJSON(message) { + const obj = {}; + message.type !== undefined && (obj.type = message.type); + if (message.attributes) { + obj.attributes = message.attributes.map((e) => (e ? exports.Attribute.toJSON(e) : undefined)); + } + else { + obj.attributes = []; + } + return obj; + }, + fromPartial(object) { + const message = createBaseStringEvent(); + message.type = object.type ?? ""; + message.attributes = object.attributes?.map((e) => exports.Attribute.fromPartial(e)) || []; + return message; + }, +}; +function createBaseAttribute() { + return { + key: "", + value: "", + }; } - -function blitBuffer (src, dst, offset, length) { - let i - for (i = 0; i < length; ++i) { - if ((i + offset >= dst.length) || (i >= src.length)) break - dst[i + offset] = src[i] - } - return i +exports.Attribute = { + typeUrl: "/cosmos.base.abci.v1beta1.Attribute", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.key !== "") { + writer.uint32(10).string(message.key); + } + if (message.value !== "") { + writer.uint32(18).string(message.value); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAttribute(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.key = reader.string(); + break; + case 2: + message.value = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseAttribute(); + if ((0, helpers_1.isSet)(object.key)) + obj.key = String(object.key); + if ((0, helpers_1.isSet)(object.value)) + obj.value = String(object.value); + return obj; + }, + toJSON(message) { + const obj = {}; + message.key !== undefined && (obj.key = message.key); + message.value !== undefined && (obj.value = message.value); + return obj; + }, + fromPartial(object) { + const message = createBaseAttribute(); + message.key = object.key ?? ""; + message.value = object.value ?? ""; + return message; + }, +}; +function createBaseGasInfo() { + return { + gasWanted: BigInt(0), + gasUsed: BigInt(0), + }; } - -// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass -// the `instanceof` check but they should be treated as of that type. -// See: https://github.com/feross/buffer/issues/166 -function isInstance (obj, type) { - return obj instanceof type || - (obj != null && obj.constructor != null && obj.constructor.name != null && - obj.constructor.name === type.name) +exports.GasInfo = { + typeUrl: "/cosmos.base.abci.v1beta1.GasInfo", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.gasWanted !== BigInt(0)) { + writer.uint32(8).uint64(message.gasWanted); + } + if (message.gasUsed !== BigInt(0)) { + writer.uint32(16).uint64(message.gasUsed); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGasInfo(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.gasWanted = reader.uint64(); + break; + case 2: + message.gasUsed = reader.uint64(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseGasInfo(); + if ((0, helpers_1.isSet)(object.gasWanted)) + obj.gasWanted = BigInt(object.gasWanted.toString()); + if ((0, helpers_1.isSet)(object.gasUsed)) + obj.gasUsed = BigInt(object.gasUsed.toString()); + return obj; + }, + toJSON(message) { + const obj = {}; + message.gasWanted !== undefined && (obj.gasWanted = (message.gasWanted || BigInt(0)).toString()); + message.gasUsed !== undefined && (obj.gasUsed = (message.gasUsed || BigInt(0)).toString()); + return obj; + }, + fromPartial(object) { + const message = createBaseGasInfo(); + if (object.gasWanted !== undefined && object.gasWanted !== null) { + message.gasWanted = BigInt(object.gasWanted.toString()); + } + if (object.gasUsed !== undefined && object.gasUsed !== null) { + message.gasUsed = BigInt(object.gasUsed.toString()); + } + return message; + }, +}; +function createBaseResult() { + return { + data: new Uint8Array(), + log: "", + events: [], + msgResponses: [], + }; } -function numberIsNaN (obj) { - // For IE11 support - return obj !== obj // eslint-disable-line no-self-compare +exports.Result = { + typeUrl: "/cosmos.base.abci.v1beta1.Result", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.data.length !== 0) { + writer.uint32(10).bytes(message.data); + } + if (message.log !== "") { + writer.uint32(18).string(message.log); + } + for (const v of message.events) { + types_1.Event.encode(v, writer.uint32(26).fork()).ldelim(); + } + for (const v of message.msgResponses) { + any_1.Any.encode(v, writer.uint32(34).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseResult(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.data = reader.bytes(); + break; + case 2: + message.log = reader.string(); + break; + case 3: + message.events.push(types_1.Event.decode(reader, reader.uint32())); + break; + case 4: + message.msgResponses.push(any_1.Any.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseResult(); + if ((0, helpers_1.isSet)(object.data)) + obj.data = (0, helpers_1.bytesFromBase64)(object.data); + if ((0, helpers_1.isSet)(object.log)) + obj.log = String(object.log); + if (Array.isArray(object?.events)) + obj.events = object.events.map((e) => types_1.Event.fromJSON(e)); + if (Array.isArray(object?.msgResponses)) + obj.msgResponses = object.msgResponses.map((e) => any_1.Any.fromJSON(e)); + return obj; + }, + toJSON(message) { + const obj = {}; + message.data !== undefined && + (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array())); + message.log !== undefined && (obj.log = message.log); + if (message.events) { + obj.events = message.events.map((e) => (e ? types_1.Event.toJSON(e) : undefined)); + } + else { + obj.events = []; + } + if (message.msgResponses) { + obj.msgResponses = message.msgResponses.map((e) => (e ? any_1.Any.toJSON(e) : undefined)); + } + else { + obj.msgResponses = []; + } + return obj; + }, + fromPartial(object) { + const message = createBaseResult(); + message.data = object.data ?? new Uint8Array(); + message.log = object.log ?? ""; + message.events = object.events?.map((e) => types_1.Event.fromPartial(e)) || []; + message.msgResponses = object.msgResponses?.map((e) => any_1.Any.fromPartial(e)) || []; + return message; + }, +}; +function createBaseSimulationResponse() { + return { + gasInfo: exports.GasInfo.fromPartial({}), + result: undefined, + }; } - -// Create lookup table for `toString('hex')` -// See: https://github.com/feross/buffer/issues/219 -const hexSliceLookupTable = (function () { - const alphabet = '0123456789abcdef' - const table = new Array(256) - for (let i = 0; i < 16; ++i) { - const i16 = i * 16 - for (let j = 0; j < 16; ++j) { - table[i16 + j] = alphabet[i] + alphabet[j] - } - } - return table -})() - -// Return not function with Error if BigInt not supported -function defineBigIntMethod (fn) { - return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn +exports.SimulationResponse = { + typeUrl: "/cosmos.base.abci.v1beta1.SimulationResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.gasInfo !== undefined) { + exports.GasInfo.encode(message.gasInfo, writer.uint32(10).fork()).ldelim(); + } + if (message.result !== undefined) { + exports.Result.encode(message.result, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSimulationResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.gasInfo = exports.GasInfo.decode(reader, reader.uint32()); + break; + case 2: + message.result = exports.Result.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseSimulationResponse(); + if ((0, helpers_1.isSet)(object.gasInfo)) + obj.gasInfo = exports.GasInfo.fromJSON(object.gasInfo); + if ((0, helpers_1.isSet)(object.result)) + obj.result = exports.Result.fromJSON(object.result); + return obj; + }, + toJSON(message) { + const obj = {}; + message.gasInfo !== undefined && + (obj.gasInfo = message.gasInfo ? exports.GasInfo.toJSON(message.gasInfo) : undefined); + message.result !== undefined && (obj.result = message.result ? exports.Result.toJSON(message.result) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseSimulationResponse(); + if (object.gasInfo !== undefined && object.gasInfo !== null) { + message.gasInfo = exports.GasInfo.fromPartial(object.gasInfo); + } + if (object.result !== undefined && object.result !== null) { + message.result = exports.Result.fromPartial(object.result); + } + return message; + }, +}; +function createBaseMsgData() { + return { + msgType: "", + data: new Uint8Array(), + }; } - -function BufferBigIntNotDefined () { - throw new Error('BigInt not supported') +exports.MsgData = { + typeUrl: "/cosmos.base.abci.v1beta1.MsgData", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.msgType !== "") { + writer.uint32(10).string(message.msgType); + } + if (message.data.length !== 0) { + writer.uint32(18).bytes(message.data); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgData(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.msgType = reader.string(); + break; + case 2: + message.data = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseMsgData(); + if ((0, helpers_1.isSet)(object.msgType)) + obj.msgType = String(object.msgType); + if ((0, helpers_1.isSet)(object.data)) + obj.data = (0, helpers_1.bytesFromBase64)(object.data); + return obj; + }, + toJSON(message) { + const obj = {}; + message.msgType !== undefined && (obj.msgType = message.msgType); + message.data !== undefined && + (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array())); + return obj; + }, + fromPartial(object) { + const message = createBaseMsgData(); + message.msgType = object.msgType ?? ""; + message.data = object.data ?? new Uint8Array(); + return message; + }, +}; +function createBaseTxMsgData() { + return { + data: [], + msgResponses: [], + }; } - - -/***/ }), - -/***/ "./node_modules/builtin-status-codes/browser.js": -/*!******************************************************!*\ - !*** ./node_modules/builtin-status-codes/browser.js ***! - \******************************************************/ -/***/ (function(module) { - -module.exports = { - "100": "Continue", - "101": "Switching Protocols", - "102": "Processing", - "200": "OK", - "201": "Created", - "202": "Accepted", - "203": "Non-Authoritative Information", - "204": "No Content", - "205": "Reset Content", - "206": "Partial Content", - "207": "Multi-Status", - "208": "Already Reported", - "226": "IM Used", - "300": "Multiple Choices", - "301": "Moved Permanently", - "302": "Found", - "303": "See Other", - "304": "Not Modified", - "305": "Use Proxy", - "307": "Temporary Redirect", - "308": "Permanent Redirect", - "400": "Bad Request", - "401": "Unauthorized", - "402": "Payment Required", - "403": "Forbidden", - "404": "Not Found", - "405": "Method Not Allowed", - "406": "Not Acceptable", - "407": "Proxy Authentication Required", - "408": "Request Timeout", - "409": "Conflict", - "410": "Gone", - "411": "Length Required", - "412": "Precondition Failed", - "413": "Payload Too Large", - "414": "URI Too Long", - "415": "Unsupported Media Type", - "416": "Range Not Satisfiable", - "417": "Expectation Failed", - "418": "I'm a teapot", - "421": "Misdirected Request", - "422": "Unprocessable Entity", - "423": "Locked", - "424": "Failed Dependency", - "425": "Unordered Collection", - "426": "Upgrade Required", - "428": "Precondition Required", - "429": "Too Many Requests", - "431": "Request Header Fields Too Large", - "451": "Unavailable For Legal Reasons", - "500": "Internal Server Error", - "501": "Not Implemented", - "502": "Bad Gateway", - "503": "Service Unavailable", - "504": "Gateway Timeout", - "505": "HTTP Version Not Supported", - "506": "Variant Also Negotiates", - "507": "Insufficient Storage", - "508": "Loop Detected", - "509": "Bandwidth Limit Exceeded", - "510": "Not Extended", - "511": "Network Authentication Required" +exports.TxMsgData = { + typeUrl: "/cosmos.base.abci.v1beta1.TxMsgData", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.data) { + exports.MsgData.encode(v, writer.uint32(10).fork()).ldelim(); + } + for (const v of message.msgResponses) { + any_1.Any.encode(v, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTxMsgData(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.data.push(exports.MsgData.decode(reader, reader.uint32())); + break; + case 2: + message.msgResponses.push(any_1.Any.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseTxMsgData(); + if (Array.isArray(object?.data)) + obj.data = object.data.map((e) => exports.MsgData.fromJSON(e)); + if (Array.isArray(object?.msgResponses)) + obj.msgResponses = object.msgResponses.map((e) => any_1.Any.fromJSON(e)); + return obj; + }, + toJSON(message) { + const obj = {}; + if (message.data) { + obj.data = message.data.map((e) => (e ? exports.MsgData.toJSON(e) : undefined)); + } + else { + obj.data = []; + } + if (message.msgResponses) { + obj.msgResponses = message.msgResponses.map((e) => (e ? any_1.Any.toJSON(e) : undefined)); + } + else { + obj.msgResponses = []; + } + return obj; + }, + fromPartial(object) { + const message = createBaseTxMsgData(); + message.data = object.data?.map((e) => exports.MsgData.fromPartial(e)) || []; + message.msgResponses = object.msgResponses?.map((e) => any_1.Any.fromPartial(e)) || []; + return message; + }, +}; +function createBaseSearchTxsResult() { + return { + totalCount: BigInt(0), + count: BigInt(0), + pageNumber: BigInt(0), + pageTotal: BigInt(0), + limit: BigInt(0), + txs: [], + }; } - - -/***/ }), - -/***/ "./node_modules/call-bind/callBound.js": -/*!*********************************************!*\ - !*** ./node_modules/call-bind/callBound.js ***! - \*********************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -var GetIntrinsic = __webpack_require__(/*! get-intrinsic */ "./node_modules/get-intrinsic/index.js"); - -var callBind = __webpack_require__(/*! ./ */ "./node_modules/call-bind/index.js"); - -var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf')); - -module.exports = function callBoundIntrinsic(name, allowMissing) { - var intrinsic = GetIntrinsic(name, !!allowMissing); - if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) { - return callBind(intrinsic); - } - return intrinsic; +exports.SearchTxsResult = { + typeUrl: "/cosmos.base.abci.v1beta1.SearchTxsResult", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.totalCount !== BigInt(0)) { + writer.uint32(8).uint64(message.totalCount); + } + if (message.count !== BigInt(0)) { + writer.uint32(16).uint64(message.count); + } + if (message.pageNumber !== BigInt(0)) { + writer.uint32(24).uint64(message.pageNumber); + } + if (message.pageTotal !== BigInt(0)) { + writer.uint32(32).uint64(message.pageTotal); + } + if (message.limit !== BigInt(0)) { + writer.uint32(40).uint64(message.limit); + } + for (const v of message.txs) { + exports.TxResponse.encode(v, writer.uint32(50).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSearchTxsResult(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.totalCount = reader.uint64(); + break; + case 2: + message.count = reader.uint64(); + break; + case 3: + message.pageNumber = reader.uint64(); + break; + case 4: + message.pageTotal = reader.uint64(); + break; + case 5: + message.limit = reader.uint64(); + break; + case 6: + message.txs.push(exports.TxResponse.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseSearchTxsResult(); + if ((0, helpers_1.isSet)(object.totalCount)) + obj.totalCount = BigInt(object.totalCount.toString()); + if ((0, helpers_1.isSet)(object.count)) + obj.count = BigInt(object.count.toString()); + if ((0, helpers_1.isSet)(object.pageNumber)) + obj.pageNumber = BigInt(object.pageNumber.toString()); + if ((0, helpers_1.isSet)(object.pageTotal)) + obj.pageTotal = BigInt(object.pageTotal.toString()); + if ((0, helpers_1.isSet)(object.limit)) + obj.limit = BigInt(object.limit.toString()); + if (Array.isArray(object?.txs)) + obj.txs = object.txs.map((e) => exports.TxResponse.fromJSON(e)); + return obj; + }, + toJSON(message) { + const obj = {}; + message.totalCount !== undefined && (obj.totalCount = (message.totalCount || BigInt(0)).toString()); + message.count !== undefined && (obj.count = (message.count || BigInt(0)).toString()); + message.pageNumber !== undefined && (obj.pageNumber = (message.pageNumber || BigInt(0)).toString()); + message.pageTotal !== undefined && (obj.pageTotal = (message.pageTotal || BigInt(0)).toString()); + message.limit !== undefined && (obj.limit = (message.limit || BigInt(0)).toString()); + if (message.txs) { + obj.txs = message.txs.map((e) => (e ? exports.TxResponse.toJSON(e) : undefined)); + } + else { + obj.txs = []; + } + return obj; + }, + fromPartial(object) { + const message = createBaseSearchTxsResult(); + if (object.totalCount !== undefined && object.totalCount !== null) { + message.totalCount = BigInt(object.totalCount.toString()); + } + if (object.count !== undefined && object.count !== null) { + message.count = BigInt(object.count.toString()); + } + if (object.pageNumber !== undefined && object.pageNumber !== null) { + message.pageNumber = BigInt(object.pageNumber.toString()); + } + if (object.pageTotal !== undefined && object.pageTotal !== null) { + message.pageTotal = BigInt(object.pageTotal.toString()); + } + if (object.limit !== undefined && object.limit !== null) { + message.limit = BigInt(object.limit.toString()); + } + message.txs = object.txs?.map((e) => exports.TxResponse.fromPartial(e)) || []; + return message; + }, }; - +//# sourceMappingURL=abci.js.map /***/ }), -/***/ "./node_modules/call-bind/index.js": -/*!*****************************************!*\ - !*** ./node_modules/call-bind/index.js ***! - \*****************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +/***/ "./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js": +/*!***************************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js ***! + \***************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; - -var bind = __webpack_require__(/*! function-bind */ "./node_modules/function-bind/index.js"); -var GetIntrinsic = __webpack_require__(/*! get-intrinsic */ "./node_modules/get-intrinsic/index.js"); - -var $apply = GetIntrinsic('%Function.prototype.apply%'); -var $call = GetIntrinsic('%Function.prototype.call%'); -var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply); - -var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true); -var $defineProperty = GetIntrinsic('%Object.defineProperty%', true); -var $max = GetIntrinsic('%Math.max%'); - -if ($defineProperty) { - try { - $defineProperty({}, 'a', { value: 1 }); - } catch (e) { - // IE 8 has a broken defineProperty - $defineProperty = null; - } +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.PageResponse = exports.PageRequest = exports.protobufPackage = void 0; +/* eslint-disable */ +const binary_1 = __webpack_require__(/*! ../../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "cosmos.base.query.v1beta1"; +function createBasePageRequest() { + return { + key: new Uint8Array(), + offset: BigInt(0), + limit: BigInt(0), + countTotal: false, + reverse: false, + }; } - -module.exports = function callBind(originalFunction) { - var func = $reflectApply(bind, $call, arguments); - if ($gOPD && $defineProperty) { - var desc = $gOPD(func, 'length'); - if (desc.configurable) { - // original length, plus the receiver, minus any additional arguments (after the receiver) - $defineProperty( - func, - 'length', - { value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) } - ); - } - } - return func; -}; - -var applyBind = function applyBind() { - return $reflectApply(bind, $apply, arguments); +exports.PageRequest = { + typeUrl: "/cosmos.base.query.v1beta1.PageRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.key.length !== 0) { + writer.uint32(10).bytes(message.key); + } + if (message.offset !== BigInt(0)) { + writer.uint32(16).uint64(message.offset); + } + if (message.limit !== BigInt(0)) { + writer.uint32(24).uint64(message.limit); + } + if (message.countTotal === true) { + writer.uint32(32).bool(message.countTotal); + } + if (message.reverse === true) { + writer.uint32(40).bool(message.reverse); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBasePageRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.key = reader.bytes(); + break; + case 2: + message.offset = reader.uint64(); + break; + case 3: + message.limit = reader.uint64(); + break; + case 4: + message.countTotal = reader.bool(); + break; + case 5: + message.reverse = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBasePageRequest(); + if ((0, helpers_1.isSet)(object.key)) + obj.key = (0, helpers_1.bytesFromBase64)(object.key); + if ((0, helpers_1.isSet)(object.offset)) + obj.offset = BigInt(object.offset.toString()); + if ((0, helpers_1.isSet)(object.limit)) + obj.limit = BigInt(object.limit.toString()); + if ((0, helpers_1.isSet)(object.countTotal)) + obj.countTotal = Boolean(object.countTotal); + if ((0, helpers_1.isSet)(object.reverse)) + obj.reverse = Boolean(object.reverse); + return obj; + }, + toJSON(message) { + const obj = {}; + message.key !== undefined && + (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array())); + message.offset !== undefined && (obj.offset = (message.offset || BigInt(0)).toString()); + message.limit !== undefined && (obj.limit = (message.limit || BigInt(0)).toString()); + message.countTotal !== undefined && (obj.countTotal = message.countTotal); + message.reverse !== undefined && (obj.reverse = message.reverse); + return obj; + }, + fromPartial(object) { + const message = createBasePageRequest(); + message.key = object.key ?? new Uint8Array(); + if (object.offset !== undefined && object.offset !== null) { + message.offset = BigInt(object.offset.toString()); + } + if (object.limit !== undefined && object.limit !== null) { + message.limit = BigInt(object.limit.toString()); + } + message.countTotal = object.countTotal ?? false; + message.reverse = object.reverse ?? false; + return message; + }, }; - -if ($defineProperty) { - $defineProperty(module.exports, 'apply', { value: applyBind }); -} else { - module.exports.apply = applyBind; +function createBasePageResponse() { + return { + nextKey: new Uint8Array(), + total: BigInt(0), + }; } - +exports.PageResponse = { + typeUrl: "/cosmos.base.query.v1beta1.PageResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.nextKey.length !== 0) { + writer.uint32(10).bytes(message.nextKey); + } + if (message.total !== BigInt(0)) { + writer.uint32(16).uint64(message.total); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBasePageResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.nextKey = reader.bytes(); + break; + case 2: + message.total = reader.uint64(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBasePageResponse(); + if ((0, helpers_1.isSet)(object.nextKey)) + obj.nextKey = (0, helpers_1.bytesFromBase64)(object.nextKey); + if ((0, helpers_1.isSet)(object.total)) + obj.total = BigInt(object.total.toString()); + return obj; + }, + toJSON(message) { + const obj = {}; + message.nextKey !== undefined && + (obj.nextKey = (0, helpers_1.base64FromBytes)(message.nextKey !== undefined ? message.nextKey : new Uint8Array())); + message.total !== undefined && (obj.total = (message.total || BigInt(0)).toString()); + return obj; + }, + fromPartial(object) { + const message = createBasePageResponse(); + message.nextKey = object.nextKey ?? new Uint8Array(); + if (object.total !== undefined && object.total !== null) { + message.total = BigInt(object.total.toString()); + } + return message; + }, +}; +//# sourceMappingURL=pagination.js.map /***/ }), -/***/ "./node_modules/cipher-base/index.js": -/*!*******************************************!*\ - !*** ./node_modules/cipher-base/index.js ***! - \*******************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer) -var Transform = (__webpack_require__(/*! stream */ "./node_modules/stream-browserify/index.js").Transform) -var StringDecoder = (__webpack_require__(/*! string_decoder */ "./node_modules/string_decoder/lib/string_decoder.js").StringDecoder) -var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js") - -function CipherBase (hashMode) { - Transform.call(this) - this.hashMode = typeof hashMode === 'string' - if (this.hashMode) { - this[hashMode] = this._finalOrDigest - } else { - this.final = this._finalOrDigest - } - if (this._final) { - this.__final = this._final - this._final = null - } - this._decoder = null - this._encoding = null -} -inherits(CipherBase, Transform) - -CipherBase.prototype.update = function (data, inputEnc, outputEnc) { - if (typeof data === 'string') { - data = Buffer.from(data, inputEnc) - } - - var outData = this._update(data) - if (this.hashMode) return this - - if (outputEnc) { - outData = this._toString(outData, outputEnc) - } - - return outData -} - -CipherBase.prototype.setAutoPadding = function () {} -CipherBase.prototype.getAuthTag = function () { - throw new Error('trying to get auth tag in unsupported state') -} +/***/ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js": +/*!***************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { -CipherBase.prototype.setAuthTag = function () { - throw new Error('trying to set auth tag in unsupported state') -} +"use strict"; -CipherBase.prototype.setAAD = function () { - throw new Error('trying to set aad in unsupported state') +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.DecProto = exports.IntProto = exports.DecCoin = exports.Coin = exports.protobufPackage = void 0; +/* eslint-disable */ +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "cosmos.base.v1beta1"; +function createBaseCoin() { + return { + denom: "", + amount: "", + }; } - -CipherBase.prototype._transform = function (data, _, next) { - var err - try { - if (this.hashMode) { - this._update(data) - } else { - this.push(this._update(data)) - } - } catch (e) { - err = e - } finally { - next(err) - } +exports.Coin = { + typeUrl: "/cosmos.base.v1beta1.Coin", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.denom !== "") { + writer.uint32(10).string(message.denom); + } + if (message.amount !== "") { + writer.uint32(18).string(message.amount); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCoin(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.denom = reader.string(); + break; + case 2: + message.amount = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseCoin(); + if ((0, helpers_1.isSet)(object.denom)) + obj.denom = String(object.denom); + if ((0, helpers_1.isSet)(object.amount)) + obj.amount = String(object.amount); + return obj; + }, + toJSON(message) { + const obj = {}; + message.denom !== undefined && (obj.denom = message.denom); + message.amount !== undefined && (obj.amount = message.amount); + return obj; + }, + fromPartial(object) { + const message = createBaseCoin(); + message.denom = object.denom ?? ""; + message.amount = object.amount ?? ""; + return message; + }, +}; +function createBaseDecCoin() { + return { + denom: "", + amount: "", + }; } -CipherBase.prototype._flush = function (done) { - var err - try { - this.push(this.__final()) - } catch (e) { - err = e - } - - done(err) +exports.DecCoin = { + typeUrl: "/cosmos.base.v1beta1.DecCoin", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.denom !== "") { + writer.uint32(10).string(message.denom); + } + if (message.amount !== "") { + writer.uint32(18).string(message.amount); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDecCoin(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.denom = reader.string(); + break; + case 2: + message.amount = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseDecCoin(); + if ((0, helpers_1.isSet)(object.denom)) + obj.denom = String(object.denom); + if ((0, helpers_1.isSet)(object.amount)) + obj.amount = String(object.amount); + return obj; + }, + toJSON(message) { + const obj = {}; + message.denom !== undefined && (obj.denom = message.denom); + message.amount !== undefined && (obj.amount = message.amount); + return obj; + }, + fromPartial(object) { + const message = createBaseDecCoin(); + message.denom = object.denom ?? ""; + message.amount = object.amount ?? ""; + return message; + }, +}; +function createBaseIntProto() { + return { + int: "", + }; } -CipherBase.prototype._finalOrDigest = function (outputEnc) { - var outData = this.__final() || Buffer.alloc(0) - if (outputEnc) { - outData = this._toString(outData, outputEnc, true) - } - return outData +exports.IntProto = { + typeUrl: "/cosmos.base.v1beta1.IntProto", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.int !== "") { + writer.uint32(10).string(message.int); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseIntProto(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.int = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseIntProto(); + if ((0, helpers_1.isSet)(object.int)) + obj.int = String(object.int); + return obj; + }, + toJSON(message) { + const obj = {}; + message.int !== undefined && (obj.int = message.int); + return obj; + }, + fromPartial(object) { + const message = createBaseIntProto(); + message.int = object.int ?? ""; + return message; + }, +}; +function createBaseDecProto() { + return { + dec: "", + }; } +exports.DecProto = { + typeUrl: "/cosmos.base.v1beta1.DecProto", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.dec !== "") { + writer.uint32(10).string(message.dec); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDecProto(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.dec = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseDecProto(); + if ((0, helpers_1.isSet)(object.dec)) + obj.dec = String(object.dec); + return obj; + }, + toJSON(message) { + const obj = {}; + message.dec !== undefined && (obj.dec = message.dec); + return obj; + }, + fromPartial(object) { + const message = createBaseDecProto(); + message.dec = object.dec ?? ""; + return message; + }, +}; +//# sourceMappingURL=coin.js.map -CipherBase.prototype._toString = function (value, enc, fin) { - if (!this._decoder) { - this._decoder = new StringDecoder(enc) - this._encoding = enc - } +/***/ }), - if (this._encoding !== enc) throw new Error('can\'t switch encodings') +/***/ "./node_modules/cosmjs-types/cosmos/crypto/ed25519/keys.js": +/*!*****************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/crypto/ed25519/keys.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - var out = this._decoder.write(value) - if (fin) { - out += this._decoder.end() - } +"use strict"; - return out +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.PrivKey = exports.PubKey = exports.protobufPackage = void 0; +/* eslint-disable */ +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "cosmos.crypto.ed25519"; +function createBasePubKey() { + return { + key: new Uint8Array(), + }; } - -module.exports = CipherBase - +exports.PubKey = { + typeUrl: "/cosmos.crypto.ed25519.PubKey", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.key.length !== 0) { + writer.uint32(10).bytes(message.key); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBasePubKey(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.key = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBasePubKey(); + if ((0, helpers_1.isSet)(object.key)) + obj.key = (0, helpers_1.bytesFromBase64)(object.key); + return obj; + }, + toJSON(message) { + const obj = {}; + message.key !== undefined && + (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array())); + return obj; + }, + fromPartial(object) { + const message = createBasePubKey(); + message.key = object.key ?? new Uint8Array(); + return message; + }, +}; +function createBasePrivKey() { + return { + key: new Uint8Array(), + }; +} +exports.PrivKey = { + typeUrl: "/cosmos.crypto.ed25519.PrivKey", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.key.length !== 0) { + writer.uint32(10).bytes(message.key); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBasePrivKey(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.key = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBasePrivKey(); + if ((0, helpers_1.isSet)(object.key)) + obj.key = (0, helpers_1.bytesFromBase64)(object.key); + return obj; + }, + toJSON(message) { + const obj = {}; + message.key !== undefined && + (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array())); + return obj; + }, + fromPartial(object) { + const message = createBasePrivKey(); + message.key = object.key ?? new Uint8Array(); + return message; + }, +}; +//# sourceMappingURL=keys.js.map /***/ }), -/***/ "./node_modules/cosmjs-types/cosmos/auth/v1beta1/auth.js": -/*!***************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/auth/v1beta1/auth.js ***! - \***************************************************************/ +/***/ "./node_modules/cosmjs-types/cosmos/crypto/multisig/keys.js": +/*!******************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/crypto/multisig/keys.js ***! + \******************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Params = exports.ModuleAccount = exports.BaseAccount = exports.protobufPackage = void 0; +exports.LegacyAminoPubKey = exports.protobufPackage = void 0; /* eslint-disable */ const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -exports.protobufPackage = "cosmos.auth.v1beta1"; -function createBaseBaseAccount() { +exports.protobufPackage = "cosmos.crypto.multisig"; +function createBaseLegacyAminoPubKey() { return { - address: "", - pubKey: undefined, - accountNumber: helpers_1.Long.UZERO, - sequence: helpers_1.Long.UZERO, + threshold: 0, + publicKeys: [], }; } -exports.BaseAccount = { - encode(message, writer = _m0.Writer.create()) { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - if (message.pubKey !== undefined) { - any_1.Any.encode(message.pubKey, writer.uint32(18).fork()).ldelim(); - } - if (!message.accountNumber.isZero()) { - writer.uint32(24).uint64(message.accountNumber); +exports.LegacyAminoPubKey = { + typeUrl: "/cosmos.crypto.multisig.LegacyAminoPubKey", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.threshold !== 0) { + writer.uint32(8).uint32(message.threshold); } - if (!message.sequence.isZero()) { - writer.uint32(32).uint64(message.sequence); + for (const v of message.publicKeys) { + any_1.Any.encode(v, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBaseAccount(); + const message = createBaseLegacyAminoPubKey(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.address = reader.string(); + message.threshold = reader.uint32(); break; case 2: - message.pubKey = any_1.Any.decode(reader, reader.uint32()); - break; - case 3: - message.accountNumber = reader.uint64(); - break; - case 4: - message.sequence = reader.uint64(); + message.publicKeys.push(any_1.Any.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -64235,73 +58488,71 @@ exports.BaseAccount = { return message; }, fromJSON(object) { - return { - address: (0, helpers_1.isSet)(object.address) ? String(object.address) : "", - pubKey: (0, helpers_1.isSet)(object.pubKey) ? any_1.Any.fromJSON(object.pubKey) : undefined, - accountNumber: (0, helpers_1.isSet)(object.accountNumber) ? helpers_1.Long.fromValue(object.accountNumber) : helpers_1.Long.UZERO, - sequence: (0, helpers_1.isSet)(object.sequence) ? helpers_1.Long.fromValue(object.sequence) : helpers_1.Long.UZERO, - }; + const obj = createBaseLegacyAminoPubKey(); + if ((0, helpers_1.isSet)(object.threshold)) + obj.threshold = Number(object.threshold); + if (Array.isArray(object?.publicKeys)) + obj.publicKeys = object.publicKeys.map((e) => any_1.Any.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - message.address !== undefined && (obj.address = message.address); - message.pubKey !== undefined && (obj.pubKey = message.pubKey ? any_1.Any.toJSON(message.pubKey) : undefined); - message.accountNumber !== undefined && - (obj.accountNumber = (message.accountNumber || helpers_1.Long.UZERO).toString()); - message.sequence !== undefined && (obj.sequence = (message.sequence || helpers_1.Long.UZERO).toString()); + message.threshold !== undefined && (obj.threshold = Math.round(message.threshold)); + if (message.publicKeys) { + obj.publicKeys = message.publicKeys.map((e) => (e ? any_1.Any.toJSON(e) : undefined)); + } + else { + obj.publicKeys = []; + } return obj; }, fromPartial(object) { - const message = createBaseBaseAccount(); - message.address = object.address ?? ""; - message.pubKey = - object.pubKey !== undefined && object.pubKey !== null ? any_1.Any.fromPartial(object.pubKey) : undefined; - message.accountNumber = - object.accountNumber !== undefined && object.accountNumber !== null - ? helpers_1.Long.fromValue(object.accountNumber) - : helpers_1.Long.UZERO; - message.sequence = - object.sequence !== undefined && object.sequence !== null - ? helpers_1.Long.fromValue(object.sequence) - : helpers_1.Long.UZERO; + const message = createBaseLegacyAminoPubKey(); + message.threshold = object.threshold ?? 0; + message.publicKeys = object.publicKeys?.map((e) => any_1.Any.fromPartial(e)) || []; return message; }, }; -function createBaseModuleAccount() { +//# sourceMappingURL=keys.js.map + +/***/ }), + +/***/ "./node_modules/cosmjs-types/cosmos/crypto/multisig/v1beta1/multisig.js": +/*!******************************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/crypto/multisig/v1beta1/multisig.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.CompactBitArray = exports.MultiSignature = exports.protobufPackage = void 0; +/* eslint-disable */ +const binary_1 = __webpack_require__(/*! ../../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "cosmos.crypto.multisig.v1beta1"; +function createBaseMultiSignature() { return { - baseAccount: undefined, - name: "", - permissions: [], + signatures: [], }; } -exports.ModuleAccount = { - encode(message, writer = _m0.Writer.create()) { - if (message.baseAccount !== undefined) { - exports.BaseAccount.encode(message.baseAccount, writer.uint32(10).fork()).ldelim(); - } - if (message.name !== "") { - writer.uint32(18).string(message.name); - } - for (const v of message.permissions) { - writer.uint32(26).string(v); +exports.MultiSignature = { + typeUrl: "/cosmos.crypto.multisig.v1beta1.MultiSignature", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.signatures) { + writer.uint32(10).bytes(v); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseModuleAccount(); + const message = createBaseMultiSignature(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.baseAccount = exports.BaseAccount.decode(reader, reader.uint32()); - break; - case 2: - message.name = reader.string(); - break; - case 3: - message.permissions.push(reader.string()); + message.signatures.push(reader.bytes()); break; default: reader.skipType(tag & 7); @@ -64311,85 +58562,56 @@ exports.ModuleAccount = { return message; }, fromJSON(object) { - return { - baseAccount: (0, helpers_1.isSet)(object.baseAccount) ? exports.BaseAccount.fromJSON(object.baseAccount) : undefined, - name: (0, helpers_1.isSet)(object.name) ? String(object.name) : "", - permissions: Array.isArray(object?.permissions) ? object.permissions.map((e) => String(e)) : [], - }; + const obj = createBaseMultiSignature(); + if (Array.isArray(object?.signatures)) + obj.signatures = object.signatures.map((e) => (0, helpers_1.bytesFromBase64)(e)); + return obj; }, toJSON(message) { const obj = {}; - message.baseAccount !== undefined && - (obj.baseAccount = message.baseAccount ? exports.BaseAccount.toJSON(message.baseAccount) : undefined); - message.name !== undefined && (obj.name = message.name); - if (message.permissions) { - obj.permissions = message.permissions.map((e) => e); + if (message.signatures) { + obj.signatures = message.signatures.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array())); } else { - obj.permissions = []; + obj.signatures = []; } return obj; }, fromPartial(object) { - const message = createBaseModuleAccount(); - message.baseAccount = - object.baseAccount !== undefined && object.baseAccount !== null - ? exports.BaseAccount.fromPartial(object.baseAccount) - : undefined; - message.name = object.name ?? ""; - message.permissions = object.permissions?.map((e) => e) || []; + const message = createBaseMultiSignature(); + message.signatures = object.signatures?.map((e) => e) || []; return message; }, }; -function createBaseParams() { +function createBaseCompactBitArray() { return { - maxMemoCharacters: helpers_1.Long.UZERO, - txSigLimit: helpers_1.Long.UZERO, - txSizeCostPerByte: helpers_1.Long.UZERO, - sigVerifyCostEd25519: helpers_1.Long.UZERO, - sigVerifyCostSecp256k1: helpers_1.Long.UZERO, + extraBitsStored: 0, + elems: new Uint8Array(), }; } -exports.Params = { - encode(message, writer = _m0.Writer.create()) { - if (!message.maxMemoCharacters.isZero()) { - writer.uint32(8).uint64(message.maxMemoCharacters); - } - if (!message.txSigLimit.isZero()) { - writer.uint32(16).uint64(message.txSigLimit); - } - if (!message.txSizeCostPerByte.isZero()) { - writer.uint32(24).uint64(message.txSizeCostPerByte); - } - if (!message.sigVerifyCostEd25519.isZero()) { - writer.uint32(32).uint64(message.sigVerifyCostEd25519); +exports.CompactBitArray = { + typeUrl: "/cosmos.crypto.multisig.v1beta1.CompactBitArray", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.extraBitsStored !== 0) { + writer.uint32(8).uint32(message.extraBitsStored); } - if (!message.sigVerifyCostSecp256k1.isZero()) { - writer.uint32(40).uint64(message.sigVerifyCostSecp256k1); + if (message.elems.length !== 0) { + writer.uint32(18).bytes(message.elems); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseParams(); + const message = createBaseCompactBitArray(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.maxMemoCharacters = reader.uint64(); + message.extraBitsStored = reader.uint32(); break; case 2: - message.txSigLimit = reader.uint64(); - break; - case 3: - message.txSizeCostPerByte = reader.uint64(); - break; - case 4: - message.sigVerifyCostEd25519 = reader.uint64(); - break; - case 5: - message.sigVerifyCostSecp256k1 = reader.uint64(); + message.elems = reader.bytes(); break; default: reader.skipType(tag & 7); @@ -64399,125 +58621,67 @@ exports.Params = { return message; }, fromJSON(object) { - return { - maxMemoCharacters: (0, helpers_1.isSet)(object.maxMemoCharacters) - ? helpers_1.Long.fromValue(object.maxMemoCharacters) - : helpers_1.Long.UZERO, - txSigLimit: (0, helpers_1.isSet)(object.txSigLimit) ? helpers_1.Long.fromValue(object.txSigLimit) : helpers_1.Long.UZERO, - txSizeCostPerByte: (0, helpers_1.isSet)(object.txSizeCostPerByte) - ? helpers_1.Long.fromValue(object.txSizeCostPerByte) - : helpers_1.Long.UZERO, - sigVerifyCostEd25519: (0, helpers_1.isSet)(object.sigVerifyCostEd25519) - ? helpers_1.Long.fromValue(object.sigVerifyCostEd25519) - : helpers_1.Long.UZERO, - sigVerifyCostSecp256k1: (0, helpers_1.isSet)(object.sigVerifyCostSecp256k1) - ? helpers_1.Long.fromValue(object.sigVerifyCostSecp256k1) - : helpers_1.Long.UZERO, - }; + const obj = createBaseCompactBitArray(); + if ((0, helpers_1.isSet)(object.extraBitsStored)) + obj.extraBitsStored = Number(object.extraBitsStored); + if ((0, helpers_1.isSet)(object.elems)) + obj.elems = (0, helpers_1.bytesFromBase64)(object.elems); + return obj; }, toJSON(message) { const obj = {}; - message.maxMemoCharacters !== undefined && - (obj.maxMemoCharacters = (message.maxMemoCharacters || helpers_1.Long.UZERO).toString()); - message.txSigLimit !== undefined && (obj.txSigLimit = (message.txSigLimit || helpers_1.Long.UZERO).toString()); - message.txSizeCostPerByte !== undefined && - (obj.txSizeCostPerByte = (message.txSizeCostPerByte || helpers_1.Long.UZERO).toString()); - message.sigVerifyCostEd25519 !== undefined && - (obj.sigVerifyCostEd25519 = (message.sigVerifyCostEd25519 || helpers_1.Long.UZERO).toString()); - message.sigVerifyCostSecp256k1 !== undefined && - (obj.sigVerifyCostSecp256k1 = (message.sigVerifyCostSecp256k1 || helpers_1.Long.UZERO).toString()); + message.extraBitsStored !== undefined && (obj.extraBitsStored = Math.round(message.extraBitsStored)); + message.elems !== undefined && + (obj.elems = (0, helpers_1.base64FromBytes)(message.elems !== undefined ? message.elems : new Uint8Array())); return obj; }, fromPartial(object) { - const message = createBaseParams(); - message.maxMemoCharacters = - object.maxMemoCharacters !== undefined && object.maxMemoCharacters !== null - ? helpers_1.Long.fromValue(object.maxMemoCharacters) - : helpers_1.Long.UZERO; - message.txSigLimit = - object.txSigLimit !== undefined && object.txSigLimit !== null - ? helpers_1.Long.fromValue(object.txSigLimit) - : helpers_1.Long.UZERO; - message.txSizeCostPerByte = - object.txSizeCostPerByte !== undefined && object.txSizeCostPerByte !== null - ? helpers_1.Long.fromValue(object.txSizeCostPerByte) - : helpers_1.Long.UZERO; - message.sigVerifyCostEd25519 = - object.sigVerifyCostEd25519 !== undefined && object.sigVerifyCostEd25519 !== null - ? helpers_1.Long.fromValue(object.sigVerifyCostEd25519) - : helpers_1.Long.UZERO; - message.sigVerifyCostSecp256k1 = - object.sigVerifyCostSecp256k1 !== undefined && object.sigVerifyCostSecp256k1 !== null - ? helpers_1.Long.fromValue(object.sigVerifyCostSecp256k1) - : helpers_1.Long.UZERO; + const message = createBaseCompactBitArray(); + message.extraBitsStored = object.extraBitsStored ?? 0; + message.elems = object.elems ?? new Uint8Array(); return message; }, }; -//# sourceMappingURL=auth.js.map +//# sourceMappingURL=multisig.js.map /***/ }), -/***/ "./node_modules/cosmjs-types/cosmos/auth/v1beta1/query.js": -/*!****************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/auth/v1beta1/query.js ***! - \****************************************************************/ +/***/ "./node_modules/cosmjs-types/cosmos/crypto/secp256k1/keys.js": +/*!*******************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/crypto/secp256k1/keys.js ***! + \*******************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.QueryClientImpl = exports.QueryModuleAccountByNameResponse = exports.QueryModuleAccountByNameRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryAccountResponse = exports.QueryAccountRequest = exports.QueryAccountsResponse = exports.QueryAccountsRequest = exports.protobufPackage = void 0; +exports.PrivKey = exports.PubKey = exports.protobufPackage = void 0; /* eslint-disable */ -const pagination_1 = __webpack_require__(/*! ../../base/query/v1beta1/pagination */ "./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js"); -const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); -const auth_1 = __webpack_require__(/*! ./auth */ "./node_modules/cosmjs-types/cosmos/auth/v1beta1/auth.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -exports.protobufPackage = "cosmos.auth.v1beta1"; -function createBaseQueryAccountsRequest() { +exports.protobufPackage = "cosmos.crypto.secp256k1"; +function createBasePubKey() { return { - pagination: undefined, + key: new Uint8Array(), }; } -exports.QueryAccountsRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); +exports.PubKey = { + typeUrl: "/cosmos.crypto.secp256k1.PubKey", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.key.length !== 0) { + writer.uint32(10).bytes(message.key); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAccountsRequest(); + const message = createBasePubKey(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.key = reader.bytes(); break; default: reader.skipType(tag & 7); @@ -64527,53 +58691,45 @@ exports.QueryAccountsRequest = { return message; }, fromJSON(object) { - return { - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBasePubKey(); + if ((0, helpers_1.isSet)(object.key)) + obj.key = (0, helpers_1.bytesFromBase64)(object.key); + return obj; }, toJSON(message) { const obj = {}; - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + message.key !== undefined && + (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array())); return obj; }, fromPartial(object) { - const message = createBaseQueryAccountsRequest(); - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + const message = createBasePubKey(); + message.key = object.key ?? new Uint8Array(); return message; }, }; -function createBaseQueryAccountsResponse() { +function createBasePrivKey() { return { - accounts: [], - pagination: undefined, + key: new Uint8Array(), }; } -exports.QueryAccountsResponse = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.accounts) { - any_1.Any.encode(v, writer.uint32(10).fork()).ldelim(); - } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); +exports.PrivKey = { + typeUrl: "/cosmos.crypto.secp256k1.PrivKey", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.key.length !== 0) { + writer.uint32(10).bytes(message.key); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAccountsResponse(); + const message = createBasePrivKey(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.accounts.push(any_1.Any.decode(reader, reader.uint32())); - break; - case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + message.key = reader.bytes(); break; default: reader.skipType(tag & 7); @@ -64583,54 +58739,85 @@ exports.QueryAccountsResponse = { return message; }, fromJSON(object) { - return { - accounts: Array.isArray(object?.accounts) ? object.accounts.map((e) => any_1.Any.fromJSON(e)) : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBasePrivKey(); + if ((0, helpers_1.isSet)(object.key)) + obj.key = (0, helpers_1.bytesFromBase64)(object.key); + return obj; }, toJSON(message) { const obj = {}; - if (message.accounts) { - obj.accounts = message.accounts.map((e) => (e ? any_1.Any.toJSON(e) : undefined)); - } - else { - obj.accounts = []; - } - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); + message.key !== undefined && + (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array())); return obj; }, fromPartial(object) { - const message = createBaseQueryAccountsResponse(); - message.accounts = object.accounts?.map((e) => any_1.Any.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + const message = createBasePrivKey(); + message.key = object.key ?? new Uint8Array(); return message; }, }; -function createBaseQueryAccountRequest() { +//# sourceMappingURL=keys.js.map + +/***/ }), + +/***/ "./node_modules/cosmjs-types/cosmos/distribution/v1beta1/distribution.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/distribution/v1beta1/distribution.js ***! + \*******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.CommunityPoolSpendProposalWithDeposit = exports.DelegationDelegatorReward = exports.DelegatorStartingInfo = exports.CommunityPoolSpendProposal = exports.FeePool = exports.ValidatorSlashEvents = exports.ValidatorSlashEvent = exports.ValidatorOutstandingRewards = exports.ValidatorAccumulatedCommission = exports.ValidatorCurrentRewards = exports.ValidatorHistoricalRewards = exports.Params = exports.protobufPackage = void 0; +/* eslint-disable */ +const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "cosmos.distribution.v1beta1"; +function createBaseParams() { return { - address: "", + communityTax: "", + baseProposerReward: "", + bonusProposerReward: "", + withdrawAddrEnabled: false, }; } -exports.QueryAccountRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.address !== "") { - writer.uint32(10).string(message.address); +exports.Params = { + typeUrl: "/cosmos.distribution.v1beta1.Params", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.communityTax !== "") { + writer.uint32(10).string(message.communityTax); + } + if (message.baseProposerReward !== "") { + writer.uint32(18).string(message.baseProposerReward); + } + if (message.bonusProposerReward !== "") { + writer.uint32(26).string(message.bonusProposerReward); + } + if (message.withdrawAddrEnabled === true) { + writer.uint32(32).bool(message.withdrawAddrEnabled); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAccountRequest(); + const message = createBaseParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.address = reader.string(); + message.communityTax = reader.string(); + break; + case 2: + message.baseProposerReward = reader.string(); + break; + case 3: + message.bonusProposerReward = reader.string(); + break; + case 4: + message.withdrawAddrEnabled = reader.bool(); break; default: reader.skipType(tag & 7); @@ -64640,42 +58827,63 @@ exports.QueryAccountRequest = { return message; }, fromJSON(object) { - return { - address: (0, helpers_1.isSet)(object.address) ? String(object.address) : "", - }; + const obj = createBaseParams(); + if ((0, helpers_1.isSet)(object.communityTax)) + obj.communityTax = String(object.communityTax); + if ((0, helpers_1.isSet)(object.baseProposerReward)) + obj.baseProposerReward = String(object.baseProposerReward); + if ((0, helpers_1.isSet)(object.bonusProposerReward)) + obj.bonusProposerReward = String(object.bonusProposerReward); + if ((0, helpers_1.isSet)(object.withdrawAddrEnabled)) + obj.withdrawAddrEnabled = Boolean(object.withdrawAddrEnabled); + return obj; }, toJSON(message) { const obj = {}; - message.address !== undefined && (obj.address = message.address); + message.communityTax !== undefined && (obj.communityTax = message.communityTax); + message.baseProposerReward !== undefined && (obj.baseProposerReward = message.baseProposerReward); + message.bonusProposerReward !== undefined && (obj.bonusProposerReward = message.bonusProposerReward); + message.withdrawAddrEnabled !== undefined && (obj.withdrawAddrEnabled = message.withdrawAddrEnabled); return obj; }, fromPartial(object) { - const message = createBaseQueryAccountRequest(); - message.address = object.address ?? ""; + const message = createBaseParams(); + message.communityTax = object.communityTax ?? ""; + message.baseProposerReward = object.baseProposerReward ?? ""; + message.bonusProposerReward = object.bonusProposerReward ?? ""; + message.withdrawAddrEnabled = object.withdrawAddrEnabled ?? false; return message; }, }; -function createBaseQueryAccountResponse() { +function createBaseValidatorHistoricalRewards() { return { - account: undefined, + cumulativeRewardRatio: [], + referenceCount: 0, }; } -exports.QueryAccountResponse = { - encode(message, writer = _m0.Writer.create()) { - if (message.account !== undefined) { - any_1.Any.encode(message.account, writer.uint32(10).fork()).ldelim(); +exports.ValidatorHistoricalRewards = { + typeUrl: "/cosmos.distribution.v1beta1.ValidatorHistoricalRewards", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.cumulativeRewardRatio) { + coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.referenceCount !== 0) { + writer.uint32(16).uint32(message.referenceCount); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAccountResponse(); + const message = createBaseValidatorHistoricalRewards(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.account = any_1.Any.decode(reader, reader.uint32()); + message.cumulativeRewardRatio.push(coin_1.DecCoin.decode(reader, reader.uint32())); + break; + case 2: + message.referenceCount = reader.uint32(); break; default: reader.skipType(tag & 7); @@ -64685,37 +58893,61 @@ exports.QueryAccountResponse = { return message; }, fromJSON(object) { - return { - account: (0, helpers_1.isSet)(object.account) ? any_1.Any.fromJSON(object.account) : undefined, - }; + const obj = createBaseValidatorHistoricalRewards(); + if (Array.isArray(object?.cumulativeRewardRatio)) + obj.cumulativeRewardRatio = object.cumulativeRewardRatio.map((e) => coin_1.DecCoin.fromJSON(e)); + if ((0, helpers_1.isSet)(object.referenceCount)) + obj.referenceCount = Number(object.referenceCount); + return obj; }, toJSON(message) { const obj = {}; - message.account !== undefined && - (obj.account = message.account ? any_1.Any.toJSON(message.account) : undefined); + if (message.cumulativeRewardRatio) { + obj.cumulativeRewardRatio = message.cumulativeRewardRatio.map((e) => e ? coin_1.DecCoin.toJSON(e) : undefined); + } + else { + obj.cumulativeRewardRatio = []; + } + message.referenceCount !== undefined && (obj.referenceCount = Math.round(message.referenceCount)); return obj; }, fromPartial(object) { - const message = createBaseQueryAccountResponse(); - message.account = - object.account !== undefined && object.account !== null ? any_1.Any.fromPartial(object.account) : undefined; + const message = createBaseValidatorHistoricalRewards(); + message.cumulativeRewardRatio = object.cumulativeRewardRatio?.map((e) => coin_1.DecCoin.fromPartial(e)) || []; + message.referenceCount = object.referenceCount ?? 0; return message; }, }; -function createBaseQueryParamsRequest() { - return {}; +function createBaseValidatorCurrentRewards() { + return { + rewards: [], + period: BigInt(0), + }; } -exports.QueryParamsRequest = { - encode(_, writer = _m0.Writer.create()) { +exports.ValidatorCurrentRewards = { + typeUrl: "/cosmos.distribution.v1beta1.ValidatorCurrentRewards", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.rewards) { + coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.period !== BigInt(0)) { + writer.uint32(16).uint64(message.period); + } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsRequest(); + const message = createBaseValidatorCurrentRewards(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.rewards.push(coin_1.DecCoin.decode(reader, reader.uint32())); + break; + case 2: + message.period = reader.uint64(); + break; default: reader.skipType(tag & 7); break; @@ -64723,39 +58955,56 @@ exports.QueryParamsRequest = { } return message; }, - fromJSON(_) { - return {}; - }, - toJSON(_) { + fromJSON(object) { + const obj = createBaseValidatorCurrentRewards(); + if (Array.isArray(object?.rewards)) + obj.rewards = object.rewards.map((e) => coin_1.DecCoin.fromJSON(e)); + if ((0, helpers_1.isSet)(object.period)) + obj.period = BigInt(object.period.toString()); + return obj; + }, + toJSON(message) { const obj = {}; + if (message.rewards) { + obj.rewards = message.rewards.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined)); + } + else { + obj.rewards = []; + } + message.period !== undefined && (obj.period = (message.period || BigInt(0)).toString()); return obj; }, - fromPartial(_) { - const message = createBaseQueryParamsRequest(); + fromPartial(object) { + const message = createBaseValidatorCurrentRewards(); + message.rewards = object.rewards?.map((e) => coin_1.DecCoin.fromPartial(e)) || []; + if (object.period !== undefined && object.period !== null) { + message.period = BigInt(object.period.toString()); + } return message; }, }; -function createBaseQueryParamsResponse() { +function createBaseValidatorAccumulatedCommission() { return { - params: undefined, + commission: [], }; } -exports.QueryParamsResponse = { - encode(message, writer = _m0.Writer.create()) { - if (message.params !== undefined) { - auth_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim(); +exports.ValidatorAccumulatedCommission = { + typeUrl: "/cosmos.distribution.v1beta1.ValidatorAccumulatedCommission", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.commission) { + coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsResponse(); + const message = createBaseValidatorAccumulatedCommission(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.params = auth_1.Params.decode(reader, reader.uint32()); + message.commission.push(coin_1.DecCoin.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -64765,43 +59014,49 @@ exports.QueryParamsResponse = { return message; }, fromJSON(object) { - return { - params: (0, helpers_1.isSet)(object.params) ? auth_1.Params.fromJSON(object.params) : undefined, - }; + const obj = createBaseValidatorAccumulatedCommission(); + if (Array.isArray(object?.commission)) + obj.commission = object.commission.map((e) => coin_1.DecCoin.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - message.params !== undefined && (obj.params = message.params ? auth_1.Params.toJSON(message.params) : undefined); + if (message.commission) { + obj.commission = message.commission.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined)); + } + else { + obj.commission = []; + } return obj; }, fromPartial(object) { - const message = createBaseQueryParamsResponse(); - message.params = - object.params !== undefined && object.params !== null ? auth_1.Params.fromPartial(object.params) : undefined; + const message = createBaseValidatorAccumulatedCommission(); + message.commission = object.commission?.map((e) => coin_1.DecCoin.fromPartial(e)) || []; return message; }, }; -function createBaseQueryModuleAccountByNameRequest() { +function createBaseValidatorOutstandingRewards() { return { - name: "", + rewards: [], }; } -exports.QueryModuleAccountByNameRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.name !== "") { - writer.uint32(10).string(message.name); +exports.ValidatorOutstandingRewards = { + typeUrl: "/cosmos.distribution.v1beta1.ValidatorOutstandingRewards", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.rewards) { + coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryModuleAccountByNameRequest(); + const message = createBaseValidatorOutstandingRewards(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.name = reader.string(); + message.rewards.push(coin_1.DecCoin.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -64811,42 +59066,56 @@ exports.QueryModuleAccountByNameRequest = { return message; }, fromJSON(object) { - return { - name: (0, helpers_1.isSet)(object.name) ? String(object.name) : "", - }; + const obj = createBaseValidatorOutstandingRewards(); + if (Array.isArray(object?.rewards)) + obj.rewards = object.rewards.map((e) => coin_1.DecCoin.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - message.name !== undefined && (obj.name = message.name); + if (message.rewards) { + obj.rewards = message.rewards.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined)); + } + else { + obj.rewards = []; + } return obj; }, fromPartial(object) { - const message = createBaseQueryModuleAccountByNameRequest(); - message.name = object.name ?? ""; + const message = createBaseValidatorOutstandingRewards(); + message.rewards = object.rewards?.map((e) => coin_1.DecCoin.fromPartial(e)) || []; return message; }, }; -function createBaseQueryModuleAccountByNameResponse() { +function createBaseValidatorSlashEvent() { return { - account: undefined, + validatorPeriod: BigInt(0), + fraction: "", }; } -exports.QueryModuleAccountByNameResponse = { - encode(message, writer = _m0.Writer.create()) { - if (message.account !== undefined) { - any_1.Any.encode(message.account, writer.uint32(10).fork()).ldelim(); +exports.ValidatorSlashEvent = { + typeUrl: "/cosmos.distribution.v1beta1.ValidatorSlashEvent", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.validatorPeriod !== BigInt(0)) { + writer.uint32(8).uint64(message.validatorPeriod); + } + if (message.fraction !== "") { + writer.uint32(18).string(message.fraction); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryModuleAccountByNameResponse(); + const message = createBaseValidatorSlashEvent(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.account = any_1.Any.decode(reader, reader.uint32()); + message.validatorPeriod = reader.uint64(); + break; + case 2: + message.fraction = reader.string(); break; default: reader.skipType(tag & 7); @@ -64856,119 +59125,51 @@ exports.QueryModuleAccountByNameResponse = { return message; }, fromJSON(object) { - return { - account: (0, helpers_1.isSet)(object.account) ? any_1.Any.fromJSON(object.account) : undefined, - }; + const obj = createBaseValidatorSlashEvent(); + if ((0, helpers_1.isSet)(object.validatorPeriod)) + obj.validatorPeriod = BigInt(object.validatorPeriod.toString()); + if ((0, helpers_1.isSet)(object.fraction)) + obj.fraction = String(object.fraction); + return obj; }, toJSON(message) { const obj = {}; - message.account !== undefined && - (obj.account = message.account ? any_1.Any.toJSON(message.account) : undefined); + message.validatorPeriod !== undefined && + (obj.validatorPeriod = (message.validatorPeriod || BigInt(0)).toString()); + message.fraction !== undefined && (obj.fraction = message.fraction); return obj; }, fromPartial(object) { - const message = createBaseQueryModuleAccountByNameResponse(); - message.account = - object.account !== undefined && object.account !== null ? any_1.Any.fromPartial(object.account) : undefined; + const message = createBaseValidatorSlashEvent(); + if (object.validatorPeriod !== undefined && object.validatorPeriod !== null) { + message.validatorPeriod = BigInt(object.validatorPeriod.toString()); + } + message.fraction = object.fraction ?? ""; return message; }, }; -class QueryClientImpl { - constructor(rpc) { - this.rpc = rpc; - this.Accounts = this.Accounts.bind(this); - this.Account = this.Account.bind(this); - this.Params = this.Params.bind(this); - this.ModuleAccountByName = this.ModuleAccountByName.bind(this); - } - Accounts(request = { - pagination: undefined, - }) { - const data = exports.QueryAccountsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "Accounts", data); - return promise.then((data) => exports.QueryAccountsResponse.decode(new _m0.Reader(data))); - } - Account(request) { - const data = exports.QueryAccountRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "Account", data); - return promise.then((data) => exports.QueryAccountResponse.decode(new _m0.Reader(data))); - } - Params(request = {}) { - const data = exports.QueryParamsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "Params", data); - return promise.then((data) => exports.QueryParamsResponse.decode(new _m0.Reader(data))); - } - ModuleAccountByName(request) { - const data = exports.QueryModuleAccountByNameRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "ModuleAccountByName", data); - return promise.then((data) => exports.QueryModuleAccountByNameResponse.decode(new _m0.Reader(data))); - } -} -exports.QueryClientImpl = QueryClientImpl; -//# sourceMappingURL=query.js.map - -/***/ }), - -/***/ "./node_modules/cosmjs-types/cosmos/authz/v1beta1/authz.js": -/*!*****************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/authz/v1beta1/authz.js ***! - \*****************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.GrantAuthorization = exports.Grant = exports.GenericAuthorization = exports.protobufPackage = void 0; -/* eslint-disable */ -const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); -const timestamp_1 = __webpack_require__(/*! ../../../google/protobuf/timestamp */ "./node_modules/cosmjs-types/google/protobuf/timestamp.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -exports.protobufPackage = "cosmos.authz.v1beta1"; -function createBaseGenericAuthorization() { +function createBaseValidatorSlashEvents() { return { - msg: "", + validatorSlashEvents: [], }; } -exports.GenericAuthorization = { - encode(message, writer = _m0.Writer.create()) { - if (message.msg !== "") { - writer.uint32(10).string(message.msg); +exports.ValidatorSlashEvents = { + typeUrl: "/cosmos.distribution.v1beta1.ValidatorSlashEvents", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.validatorSlashEvents) { + exports.ValidatorSlashEvent.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenericAuthorization(); + const message = createBaseValidatorSlashEvents(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.msg = reader.string(); + message.validatorSlashEvents.push(exports.ValidatorSlashEvent.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -64978,49 +59179,50 @@ exports.GenericAuthorization = { return message; }, fromJSON(object) { - return { - msg: (0, helpers_1.isSet)(object.msg) ? String(object.msg) : "", - }; + const obj = createBaseValidatorSlashEvents(); + if (Array.isArray(object?.validatorSlashEvents)) + obj.validatorSlashEvents = object.validatorSlashEvents.map((e) => exports.ValidatorSlashEvent.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - message.msg !== undefined && (obj.msg = message.msg); + if (message.validatorSlashEvents) { + obj.validatorSlashEvents = message.validatorSlashEvents.map((e) => e ? exports.ValidatorSlashEvent.toJSON(e) : undefined); + } + else { + obj.validatorSlashEvents = []; + } return obj; }, fromPartial(object) { - const message = createBaseGenericAuthorization(); - message.msg = object.msg ?? ""; + const message = createBaseValidatorSlashEvents(); + message.validatorSlashEvents = + object.validatorSlashEvents?.map((e) => exports.ValidatorSlashEvent.fromPartial(e)) || []; return message; }, }; -function createBaseGrant() { +function createBaseFeePool() { return { - authorization: undefined, - expiration: undefined, + communityPool: [], }; } -exports.Grant = { - encode(message, writer = _m0.Writer.create()) { - if (message.authorization !== undefined) { - any_1.Any.encode(message.authorization, writer.uint32(10).fork()).ldelim(); - } - if (message.expiration !== undefined) { - timestamp_1.Timestamp.encode(message.expiration, writer.uint32(18).fork()).ldelim(); +exports.FeePool = { + typeUrl: "/cosmos.distribution.v1beta1.FeePool", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.communityPool) { + coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGrant(); + const message = createBaseFeePool(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.authorization = any_1.Any.decode(reader, reader.uint32()); - break; - case 2: - message.expiration = timestamp_1.Timestamp.decode(reader, reader.uint32()); + message.communityPool.push(coin_1.DecCoin.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -65030,73 +59232,70 @@ exports.Grant = { return message; }, fromJSON(object) { - return { - authorization: (0, helpers_1.isSet)(object.authorization) ? any_1.Any.fromJSON(object.authorization) : undefined, - expiration: (0, helpers_1.isSet)(object.expiration) ? (0, helpers_1.fromJsonTimestamp)(object.expiration) : undefined, - }; + const obj = createBaseFeePool(); + if (Array.isArray(object?.communityPool)) + obj.communityPool = object.communityPool.map((e) => coin_1.DecCoin.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - message.authorization !== undefined && - (obj.authorization = message.authorization ? any_1.Any.toJSON(message.authorization) : undefined); - message.expiration !== undefined && (obj.expiration = (0, helpers_1.fromTimestamp)(message.expiration).toISOString()); + if (message.communityPool) { + obj.communityPool = message.communityPool.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined)); + } + else { + obj.communityPool = []; + } return obj; }, fromPartial(object) { - const message = createBaseGrant(); - message.authorization = - object.authorization !== undefined && object.authorization !== null - ? any_1.Any.fromPartial(object.authorization) - : undefined; - message.expiration = - object.expiration !== undefined && object.expiration !== null - ? timestamp_1.Timestamp.fromPartial(object.expiration) - : undefined; + const message = createBaseFeePool(); + message.communityPool = object.communityPool?.map((e) => coin_1.DecCoin.fromPartial(e)) || []; return message; }, }; -function createBaseGrantAuthorization() { +function createBaseCommunityPoolSpendProposal() { return { - granter: "", - grantee: "", - authorization: undefined, - expiration: undefined, + title: "", + description: "", + recipient: "", + amount: [], }; } -exports.GrantAuthorization = { - encode(message, writer = _m0.Writer.create()) { - if (message.granter !== "") { - writer.uint32(10).string(message.granter); +exports.CommunityPoolSpendProposal = { + typeUrl: "/cosmos.distribution.v1beta1.CommunityPoolSpendProposal", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.title !== "") { + writer.uint32(10).string(message.title); } - if (message.grantee !== "") { - writer.uint32(18).string(message.grantee); + if (message.description !== "") { + writer.uint32(18).string(message.description); } - if (message.authorization !== undefined) { - any_1.Any.encode(message.authorization, writer.uint32(26).fork()).ldelim(); + if (message.recipient !== "") { + writer.uint32(26).string(message.recipient); } - if (message.expiration !== undefined) { - timestamp_1.Timestamp.encode(message.expiration, writer.uint32(34).fork()).ldelim(); + for (const v of message.amount) { + coin_1.Coin.encode(v, writer.uint32(34).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGrantAuthorization(); + const message = createBaseCommunityPoolSpendProposal(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.granter = reader.string(); + message.title = reader.string(); break; case 2: - message.grantee = reader.string(); + message.description = reader.string(); break; case 3: - message.authorization = any_1.Any.decode(reader, reader.uint32()); + message.recipient = reader.string(); break; case 4: - message.expiration = timestamp_1.Timestamp.decode(reader, reader.uint32()); + message.amount.push(coin_1.Coin.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -65106,122 +59305,75 @@ exports.GrantAuthorization = { return message; }, fromJSON(object) { - return { - granter: (0, helpers_1.isSet)(object.granter) ? String(object.granter) : "", - grantee: (0, helpers_1.isSet)(object.grantee) ? String(object.grantee) : "", - authorization: (0, helpers_1.isSet)(object.authorization) ? any_1.Any.fromJSON(object.authorization) : undefined, - expiration: (0, helpers_1.isSet)(object.expiration) ? (0, helpers_1.fromJsonTimestamp)(object.expiration) : undefined, - }; + const obj = createBaseCommunityPoolSpendProposal(); + if ((0, helpers_1.isSet)(object.title)) + obj.title = String(object.title); + if ((0, helpers_1.isSet)(object.description)) + obj.description = String(object.description); + if ((0, helpers_1.isSet)(object.recipient)) + obj.recipient = String(object.recipient); + if (Array.isArray(object?.amount)) + obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - message.granter !== undefined && (obj.granter = message.granter); - message.grantee !== undefined && (obj.grantee = message.grantee); - message.authorization !== undefined && - (obj.authorization = message.authorization ? any_1.Any.toJSON(message.authorization) : undefined); - message.expiration !== undefined && (obj.expiration = (0, helpers_1.fromTimestamp)(message.expiration).toISOString()); + message.title !== undefined && (obj.title = message.title); + message.description !== undefined && (obj.description = message.description); + message.recipient !== undefined && (obj.recipient = message.recipient); + if (message.amount) { + obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + } + else { + obj.amount = []; + } return obj; }, fromPartial(object) { - const message = createBaseGrantAuthorization(); - message.granter = object.granter ?? ""; - message.grantee = object.grantee ?? ""; - message.authorization = - object.authorization !== undefined && object.authorization !== null - ? any_1.Any.fromPartial(object.authorization) - : undefined; - message.expiration = - object.expiration !== undefined && object.expiration !== null - ? timestamp_1.Timestamp.fromPartial(object.expiration) - : undefined; + const message = createBaseCommunityPoolSpendProposal(); + message.title = object.title ?? ""; + message.description = object.description ?? ""; + message.recipient = object.recipient ?? ""; + message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || []; return message; }, }; -//# sourceMappingURL=authz.js.map - -/***/ }), - -/***/ "./node_modules/cosmjs-types/cosmos/authz/v1beta1/query.js": -/*!*****************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/authz/v1beta1/query.js ***! - \*****************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.QueryClientImpl = exports.QueryGranteeGrantsResponse = exports.QueryGranteeGrantsRequest = exports.QueryGranterGrantsResponse = exports.QueryGranterGrantsRequest = exports.QueryGrantsResponse = exports.QueryGrantsRequest = exports.protobufPackage = void 0; -/* eslint-disable */ -const pagination_1 = __webpack_require__(/*! ../../base/query/v1beta1/pagination */ "./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js"); -const authz_1 = __webpack_require__(/*! ./authz */ "./node_modules/cosmjs-types/cosmos/authz/v1beta1/authz.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -exports.protobufPackage = "cosmos.authz.v1beta1"; -function createBaseQueryGrantsRequest() { +function createBaseDelegatorStartingInfo() { return { - granter: "", - grantee: "", - msgTypeUrl: "", - pagination: undefined, + previousPeriod: BigInt(0), + stake: "", + height: BigInt(0), }; } -exports.QueryGrantsRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.granter !== "") { - writer.uint32(10).string(message.granter); - } - if (message.grantee !== "") { - writer.uint32(18).string(message.grantee); +exports.DelegatorStartingInfo = { + typeUrl: "/cosmos.distribution.v1beta1.DelegatorStartingInfo", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.previousPeriod !== BigInt(0)) { + writer.uint32(8).uint64(message.previousPeriod); } - if (message.msgTypeUrl !== "") { - writer.uint32(26).string(message.msgTypeUrl); + if (message.stake !== "") { + writer.uint32(18).string(message.stake); } - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim(); + if (message.height !== BigInt(0)) { + writer.uint32(24).uint64(message.height); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGrantsRequest(); + const message = createBaseDelegatorStartingInfo(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.granter = reader.string(); + message.previousPeriod = reader.uint64(); break; case 2: - message.grantee = reader.string(); + message.stake = reader.string(); break; case 3: - message.msgTypeUrl = reader.string(); - break; - case 4: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.height = reader.uint64(); break; default: reader.skipType(tag & 7); @@ -65231,62 +59383,64 @@ exports.QueryGrantsRequest = { return message; }, fromJSON(object) { - return { - granter: (0, helpers_1.isSet)(object.granter) ? String(object.granter) : "", - grantee: (0, helpers_1.isSet)(object.grantee) ? String(object.grantee) : "", - msgTypeUrl: (0, helpers_1.isSet)(object.msgTypeUrl) ? String(object.msgTypeUrl) : "", - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseDelegatorStartingInfo(); + if ((0, helpers_1.isSet)(object.previousPeriod)) + obj.previousPeriod = BigInt(object.previousPeriod.toString()); + if ((0, helpers_1.isSet)(object.stake)) + obj.stake = String(object.stake); + if ((0, helpers_1.isSet)(object.height)) + obj.height = BigInt(object.height.toString()); + return obj; }, toJSON(message) { const obj = {}; - message.granter !== undefined && (obj.granter = message.granter); - message.grantee !== undefined && (obj.grantee = message.grantee); - message.msgTypeUrl !== undefined && (obj.msgTypeUrl = message.msgTypeUrl); - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + message.previousPeriod !== undefined && + (obj.previousPeriod = (message.previousPeriod || BigInt(0)).toString()); + message.stake !== undefined && (obj.stake = message.stake); + message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString()); return obj; }, fromPartial(object) { - const message = createBaseQueryGrantsRequest(); - message.granter = object.granter ?? ""; - message.grantee = object.grantee ?? ""; - message.msgTypeUrl = object.msgTypeUrl ?? ""; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + const message = createBaseDelegatorStartingInfo(); + if (object.previousPeriod !== undefined && object.previousPeriod !== null) { + message.previousPeriod = BigInt(object.previousPeriod.toString()); + } + message.stake = object.stake ?? ""; + if (object.height !== undefined && object.height !== null) { + message.height = BigInt(object.height.toString()); + } return message; }, }; -function createBaseQueryGrantsResponse() { +function createBaseDelegationDelegatorReward() { return { - grants: [], - pagination: undefined, + validatorAddress: "", + reward: [], }; } -exports.QueryGrantsResponse = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.grants) { - authz_1.Grant.encode(v, writer.uint32(10).fork()).ldelim(); +exports.DelegationDelegatorReward = { + typeUrl: "/cosmos.distribution.v1beta1.DelegationDelegatorReward", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.validatorAddress !== "") { + writer.uint32(10).string(message.validatorAddress); } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + for (const v of message.reward) { + coin_1.DecCoin.encode(v, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGrantsResponse(); + const message = createBaseDelegationDelegatorReward(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.grants.push(authz_1.Grant.decode(reader, reader.uint32())); + message.validatorAddress = reader.string(); break; case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + message.reward.push(coin_1.DecCoin.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -65296,61 +59450,81 @@ exports.QueryGrantsResponse = { return message; }, fromJSON(object) { - return { - grants: Array.isArray(object?.grants) ? object.grants.map((e) => authz_1.Grant.fromJSON(e)) : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseDelegationDelegatorReward(); + if ((0, helpers_1.isSet)(object.validatorAddress)) + obj.validatorAddress = String(object.validatorAddress); + if (Array.isArray(object?.reward)) + obj.reward = object.reward.map((e) => coin_1.DecCoin.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - if (message.grants) { - obj.grants = message.grants.map((e) => (e ? authz_1.Grant.toJSON(e) : undefined)); + message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress); + if (message.reward) { + obj.reward = message.reward.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined)); } else { - obj.grants = []; + obj.reward = []; } - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); return obj; }, fromPartial(object) { - const message = createBaseQueryGrantsResponse(); - message.grants = object.grants?.map((e) => authz_1.Grant.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + const message = createBaseDelegationDelegatorReward(); + message.validatorAddress = object.validatorAddress ?? ""; + message.reward = object.reward?.map((e) => coin_1.DecCoin.fromPartial(e)) || []; return message; }, }; -function createBaseQueryGranterGrantsRequest() { +function createBaseCommunityPoolSpendProposalWithDeposit() { return { - granter: "", - pagination: undefined, + title: "", + description: "", + recipient: "", + amount: "", + deposit: "", }; } -exports.QueryGranterGrantsRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.granter !== "") { - writer.uint32(10).string(message.granter); +exports.CommunityPoolSpendProposalWithDeposit = { + typeUrl: "/cosmos.distribution.v1beta1.CommunityPoolSpendProposalWithDeposit", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.title !== "") { + writer.uint32(10).string(message.title); } - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (message.description !== "") { + writer.uint32(18).string(message.description); + } + if (message.recipient !== "") { + writer.uint32(26).string(message.recipient); + } + if (message.amount !== "") { + writer.uint32(34).string(message.amount); + } + if (message.deposit !== "") { + writer.uint32(42).string(message.deposit); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGranterGrantsRequest(); + const message = createBaseCommunityPoolSpendProposalWithDeposit(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.granter = reader.string(); + message.title = reader.string(); break; case 2: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.description = reader.string(); + break; + case 3: + message.recipient = reader.string(); + break; + case 4: + message.amount = reader.string(); + break; + case 5: + message.deposit = reader.string(); break; default: reader.skipType(tag & 7); @@ -65360,57 +59534,74 @@ exports.QueryGranterGrantsRequest = { return message; }, fromJSON(object) { - return { - granter: (0, helpers_1.isSet)(object.granter) ? String(object.granter) : "", - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseCommunityPoolSpendProposalWithDeposit(); + if ((0, helpers_1.isSet)(object.title)) + obj.title = String(object.title); + if ((0, helpers_1.isSet)(object.description)) + obj.description = String(object.description); + if ((0, helpers_1.isSet)(object.recipient)) + obj.recipient = String(object.recipient); + if ((0, helpers_1.isSet)(object.amount)) + obj.amount = String(object.amount); + if ((0, helpers_1.isSet)(object.deposit)) + obj.deposit = String(object.deposit); + return obj; }, toJSON(message) { const obj = {}; - message.granter !== undefined && (obj.granter = message.granter); - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + message.title !== undefined && (obj.title = message.title); + message.description !== undefined && (obj.description = message.description); + message.recipient !== undefined && (obj.recipient = message.recipient); + message.amount !== undefined && (obj.amount = message.amount); + message.deposit !== undefined && (obj.deposit = message.deposit); return obj; }, fromPartial(object) { - const message = createBaseQueryGranterGrantsRequest(); - message.granter = object.granter ?? ""; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + const message = createBaseCommunityPoolSpendProposalWithDeposit(); + message.title = object.title ?? ""; + message.description = object.description ?? ""; + message.recipient = object.recipient ?? ""; + message.amount = object.amount ?? ""; + message.deposit = object.deposit ?? ""; return message; }, }; -function createBaseQueryGranterGrantsResponse() { - return { - grants: [], - pagination: undefined, - }; +//# sourceMappingURL=distribution.js.map + +/***/ }), + +/***/ "./node_modules/cosmjs-types/cosmos/distribution/v1beta1/query.js": +/*!************************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/distribution/v1beta1/query.js ***! + \************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.QueryClientImpl = exports.QueryCommunityPoolResponse = exports.QueryCommunityPoolRequest = exports.QueryDelegatorWithdrawAddressResponse = exports.QueryDelegatorWithdrawAddressRequest = exports.QueryDelegatorValidatorsResponse = exports.QueryDelegatorValidatorsRequest = exports.QueryDelegationTotalRewardsResponse = exports.QueryDelegationTotalRewardsRequest = exports.QueryDelegationRewardsResponse = exports.QueryDelegationRewardsRequest = exports.QueryValidatorSlashesResponse = exports.QueryValidatorSlashesRequest = exports.QueryValidatorCommissionResponse = exports.QueryValidatorCommissionRequest = exports.QueryValidatorOutstandingRewardsResponse = exports.QueryValidatorOutstandingRewardsRequest = exports.QueryValidatorDistributionInfoResponse = exports.QueryValidatorDistributionInfoRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.protobufPackage = void 0; +/* eslint-disable */ +const pagination_1 = __webpack_require__(/*! ../../base/query/v1beta1/pagination */ "./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js"); +const distribution_1 = __webpack_require__(/*! ./distribution */ "./node_modules/cosmjs-types/cosmos/distribution/v1beta1/distribution.js"); +const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "cosmos.distribution.v1beta1"; +function createBaseQueryParamsRequest() { + return {}; } -exports.QueryGranterGrantsResponse = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.grants) { - authz_1.GrantAuthorization.encode(v, writer.uint32(10).fork()).ldelim(); - } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } +exports.QueryParamsRequest = { + typeUrl: "/cosmos.distribution.v1beta1.QueryParamsRequest", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGranterGrantsResponse(); + const message = createBaseQueryParamsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.grants.push(authz_1.GrantAuthorization.decode(reader, reader.uint32())); - break; - case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); - break; default: reader.skipType(tag & 7); break; @@ -65418,64 +59609,41 @@ exports.QueryGranterGrantsResponse = { } return message; }, - fromJSON(object) { - return { - grants: Array.isArray(object?.grants) - ? object.grants.map((e) => authz_1.GrantAuthorization.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + fromJSON(_) { + const obj = createBaseQueryParamsRequest(); + return obj; }, - toJSON(message) { + toJSON(_) { const obj = {}; - if (message.grants) { - obj.grants = message.grants.map((e) => (e ? authz_1.GrantAuthorization.toJSON(e) : undefined)); - } - else { - obj.grants = []; - } - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); return obj; }, - fromPartial(object) { - const message = createBaseQueryGranterGrantsResponse(); - message.grants = object.grants?.map((e) => authz_1.GrantAuthorization.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + fromPartial(_) { + const message = createBaseQueryParamsRequest(); return message; }, }; -function createBaseQueryGranteeGrantsRequest() { +function createBaseQueryParamsResponse() { return { - grantee: "", - pagination: undefined, + params: distribution_1.Params.fromPartial({}), }; } -exports.QueryGranteeGrantsRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.grantee !== "") { - writer.uint32(10).string(message.grantee); - } - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); +exports.QueryParamsResponse = { + typeUrl: "/cosmos.distribution.v1beta1.QueryParamsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.params !== undefined) { + distribution_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGranteeGrantsRequest(); + const message = createBaseQueryParamsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.grantee = reader.string(); - break; - case 2: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.params = distribution_1.Params.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -65485,56 +59653,46 @@ exports.QueryGranteeGrantsRequest = { return message; }, fromJSON(object) { - return { - grantee: (0, helpers_1.isSet)(object.grantee) ? String(object.grantee) : "", - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryParamsResponse(); + if ((0, helpers_1.isSet)(object.params)) + obj.params = distribution_1.Params.fromJSON(object.params); + return obj; }, toJSON(message) { const obj = {}; - message.grantee !== undefined && (obj.grantee = message.grantee); - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + message.params !== undefined && (obj.params = message.params ? distribution_1.Params.toJSON(message.params) : undefined); return obj; }, fromPartial(object) { - const message = createBaseQueryGranteeGrantsRequest(); - message.grantee = object.grantee ?? ""; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + const message = createBaseQueryParamsResponse(); + if (object.params !== undefined && object.params !== null) { + message.params = distribution_1.Params.fromPartial(object.params); + } return message; }, }; -function createBaseQueryGranteeGrantsResponse() { +function createBaseQueryValidatorDistributionInfoRequest() { return { - grants: [], - pagination: undefined, + validatorAddress: "", }; } -exports.QueryGranteeGrantsResponse = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.grants) { - authz_1.GrantAuthorization.encode(v, writer.uint32(10).fork()).ldelim(); - } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); +exports.QueryValidatorDistributionInfoRequest = { + typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorDistributionInfoRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.validatorAddress !== "") { + writer.uint32(10).string(message.validatorAddress); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGranteeGrantsResponse(); + const message = createBaseQueryValidatorDistributionInfoRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.grants.push(authz_1.GrantAuthorization.decode(reader, reader.uint32())); - break; - case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + message.validatorAddress = reader.string(); break; default: reader.skipType(tag & 7); @@ -65544,137 +59702,58 @@ exports.QueryGranteeGrantsResponse = { return message; }, fromJSON(object) { - return { - grants: Array.isArray(object?.grants) - ? object.grants.map((e) => authz_1.GrantAuthorization.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryValidatorDistributionInfoRequest(); + if ((0, helpers_1.isSet)(object.validatorAddress)) + obj.validatorAddress = String(object.validatorAddress); + return obj; }, toJSON(message) { const obj = {}; - if (message.grants) { - obj.grants = message.grants.map((e) => (e ? authz_1.GrantAuthorization.toJSON(e) : undefined)); - } - else { - obj.grants = []; - } - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); + message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress); return obj; }, fromPartial(object) { - const message = createBaseQueryGranteeGrantsResponse(); - message.grants = object.grants?.map((e) => authz_1.GrantAuthorization.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + const message = createBaseQueryValidatorDistributionInfoRequest(); + message.validatorAddress = object.validatorAddress ?? ""; return message; }, }; -class QueryClientImpl { - constructor(rpc) { - this.rpc = rpc; - this.Grants = this.Grants.bind(this); - this.GranterGrants = this.GranterGrants.bind(this); - this.GranteeGrants = this.GranteeGrants.bind(this); - } - Grants(request) { - const data = exports.QueryGrantsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.authz.v1beta1.Query", "Grants", data); - return promise.then((data) => exports.QueryGrantsResponse.decode(new _m0.Reader(data))); - } - GranterGrants(request) { - const data = exports.QueryGranterGrantsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.authz.v1beta1.Query", "GranterGrants", data); - return promise.then((data) => exports.QueryGranterGrantsResponse.decode(new _m0.Reader(data))); - } - GranteeGrants(request) { - const data = exports.QueryGranteeGrantsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.authz.v1beta1.Query", "GranteeGrants", data); - return promise.then((data) => exports.QueryGranteeGrantsResponse.decode(new _m0.Reader(data))); - } -} -exports.QueryClientImpl = QueryClientImpl; -//# sourceMappingURL=query.js.map - -/***/ }), - -/***/ "./node_modules/cosmjs-types/cosmos/authz/v1beta1/tx.js": -/*!**************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/authz/v1beta1/tx.js ***! - \**************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.MsgClientImpl = exports.MsgRevokeResponse = exports.MsgRevoke = exports.MsgGrantResponse = exports.MsgExec = exports.MsgExecResponse = exports.MsgGrant = exports.protobufPackage = void 0; -/* eslint-disable */ -const authz_1 = __webpack_require__(/*! ./authz */ "./node_modules/cosmjs-types/cosmos/authz/v1beta1/authz.js"); -const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -exports.protobufPackage = "cosmos.authz.v1beta1"; -function createBaseMsgGrant() { +function createBaseQueryValidatorDistributionInfoResponse() { return { - granter: "", - grantee: "", - grant: undefined, + operatorAddress: "", + selfBondRewards: [], + commission: [], }; } -exports.MsgGrant = { - encode(message, writer = _m0.Writer.create()) { - if (message.granter !== "") { - writer.uint32(10).string(message.granter); +exports.QueryValidatorDistributionInfoResponse = { + typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorDistributionInfoResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.operatorAddress !== "") { + writer.uint32(10).string(message.operatorAddress); } - if (message.grantee !== "") { - writer.uint32(18).string(message.grantee); + for (const v of message.selfBondRewards) { + coin_1.DecCoin.encode(v, writer.uint32(18).fork()).ldelim(); } - if (message.grant !== undefined) { - authz_1.Grant.encode(message.grant, writer.uint32(26).fork()).ldelim(); + for (const v of message.commission) { + coin_1.DecCoin.encode(v, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgGrant(); + const message = createBaseQueryValidatorDistributionInfoResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.granter = reader.string(); + message.operatorAddress = reader.string(); break; case 2: - message.grantee = reader.string(); + message.selfBondRewards.push(coin_1.DecCoin.decode(reader, reader.uint32())); break; case 3: - message.grant = authz_1.Grant.decode(reader, reader.uint32()); + message.commission.push(coin_1.DecCoin.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -65684,49 +59763,62 @@ exports.MsgGrant = { return message; }, fromJSON(object) { - return { - granter: (0, helpers_1.isSet)(object.granter) ? String(object.granter) : "", - grantee: (0, helpers_1.isSet)(object.grantee) ? String(object.grantee) : "", - grant: (0, helpers_1.isSet)(object.grant) ? authz_1.Grant.fromJSON(object.grant) : undefined, - }; + const obj = createBaseQueryValidatorDistributionInfoResponse(); + if ((0, helpers_1.isSet)(object.operatorAddress)) + obj.operatorAddress = String(object.operatorAddress); + if (Array.isArray(object?.selfBondRewards)) + obj.selfBondRewards = object.selfBondRewards.map((e) => coin_1.DecCoin.fromJSON(e)); + if (Array.isArray(object?.commission)) + obj.commission = object.commission.map((e) => coin_1.DecCoin.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - message.granter !== undefined && (obj.granter = message.granter); - message.grantee !== undefined && (obj.grantee = message.grantee); - message.grant !== undefined && (obj.grant = message.grant ? authz_1.Grant.toJSON(message.grant) : undefined); + message.operatorAddress !== undefined && (obj.operatorAddress = message.operatorAddress); + if (message.selfBondRewards) { + obj.selfBondRewards = message.selfBondRewards.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined)); + } + else { + obj.selfBondRewards = []; + } + if (message.commission) { + obj.commission = message.commission.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined)); + } + else { + obj.commission = []; + } return obj; }, fromPartial(object) { - const message = createBaseMsgGrant(); - message.granter = object.granter ?? ""; - message.grantee = object.grantee ?? ""; - message.grant = - object.grant !== undefined && object.grant !== null ? authz_1.Grant.fromPartial(object.grant) : undefined; + const message = createBaseQueryValidatorDistributionInfoResponse(); + message.operatorAddress = object.operatorAddress ?? ""; + message.selfBondRewards = object.selfBondRewards?.map((e) => coin_1.DecCoin.fromPartial(e)) || []; + message.commission = object.commission?.map((e) => coin_1.DecCoin.fromPartial(e)) || []; return message; }, }; -function createBaseMsgExecResponse() { +function createBaseQueryValidatorOutstandingRewardsRequest() { return { - results: [], + validatorAddress: "", }; } -exports.MsgExecResponse = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.results) { - writer.uint32(10).bytes(v); +exports.QueryValidatorOutstandingRewardsRequest = { + typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorOutstandingRewardsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.validatorAddress !== "") { + writer.uint32(10).string(message.validatorAddress); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgExecResponse(); + const message = createBaseQueryValidatorOutstandingRewardsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.results.push(reader.bytes()); + message.validatorAddress = reader.string(); break; default: reader.skipType(tag & 7); @@ -65736,54 +59828,44 @@ exports.MsgExecResponse = { return message; }, fromJSON(object) { - return { - results: Array.isArray(object?.results) ? object.results.map((e) => (0, helpers_1.bytesFromBase64)(e)) : [], - }; + const obj = createBaseQueryValidatorOutstandingRewardsRequest(); + if ((0, helpers_1.isSet)(object.validatorAddress)) + obj.validatorAddress = String(object.validatorAddress); + return obj; }, toJSON(message) { const obj = {}; - if (message.results) { - obj.results = message.results.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array())); - } - else { - obj.results = []; - } + message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress); return obj; }, fromPartial(object) { - const message = createBaseMsgExecResponse(); - message.results = object.results?.map((e) => e) || []; + const message = createBaseQueryValidatorOutstandingRewardsRequest(); + message.validatorAddress = object.validatorAddress ?? ""; return message; }, }; -function createBaseMsgExec() { +function createBaseQueryValidatorOutstandingRewardsResponse() { return { - grantee: "", - msgs: [], + rewards: distribution_1.ValidatorOutstandingRewards.fromPartial({}), }; } -exports.MsgExec = { - encode(message, writer = _m0.Writer.create()) { - if (message.grantee !== "") { - writer.uint32(10).string(message.grantee); - } - for (const v of message.msgs) { - any_1.Any.encode(v, writer.uint32(18).fork()).ldelim(); +exports.QueryValidatorOutstandingRewardsResponse = { + typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorOutstandingRewardsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.rewards !== undefined) { + distribution_1.ValidatorOutstandingRewards.encode(message.rewards, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgExec(); + const message = createBaseQueryValidatorOutstandingRewardsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.grantee = reader.string(); - break; - case 2: - message.msgs.push(any_1.Any.decode(reader, reader.uint32())); + message.rewards = distribution_1.ValidatorOutstandingRewards.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -65793,43 +59875,48 @@ exports.MsgExec = { return message; }, fromJSON(object) { - return { - grantee: (0, helpers_1.isSet)(object.grantee) ? String(object.grantee) : "", - msgs: Array.isArray(object?.msgs) ? object.msgs.map((e) => any_1.Any.fromJSON(e)) : [], - }; + const obj = createBaseQueryValidatorOutstandingRewardsResponse(); + if ((0, helpers_1.isSet)(object.rewards)) + obj.rewards = distribution_1.ValidatorOutstandingRewards.fromJSON(object.rewards); + return obj; }, toJSON(message) { const obj = {}; - message.grantee !== undefined && (obj.grantee = message.grantee); - if (message.msgs) { - obj.msgs = message.msgs.map((e) => (e ? any_1.Any.toJSON(e) : undefined)); - } - else { - obj.msgs = []; - } + message.rewards !== undefined && + (obj.rewards = message.rewards ? distribution_1.ValidatorOutstandingRewards.toJSON(message.rewards) : undefined); return obj; }, fromPartial(object) { - const message = createBaseMsgExec(); - message.grantee = object.grantee ?? ""; - message.msgs = object.msgs?.map((e) => any_1.Any.fromPartial(e)) || []; + const message = createBaseQueryValidatorOutstandingRewardsResponse(); + if (object.rewards !== undefined && object.rewards !== null) { + message.rewards = distribution_1.ValidatorOutstandingRewards.fromPartial(object.rewards); + } return message; }, }; -function createBaseMsgGrantResponse() { - return {}; +function createBaseQueryValidatorCommissionRequest() { + return { + validatorAddress: "", + }; } -exports.MsgGrantResponse = { - encode(_, writer = _m0.Writer.create()) { +exports.QueryValidatorCommissionRequest = { + typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorCommissionRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.validatorAddress !== "") { + writer.uint32(10).string(message.validatorAddress); + } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgGrantResponse(); + const message = createBaseQueryValidatorCommissionRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.validatorAddress = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -65837,53 +59924,45 @@ exports.MsgGrantResponse = { } return message; }, - fromJSON(_) { - return {}; + fromJSON(object) { + const obj = createBaseQueryValidatorCommissionRequest(); + if ((0, helpers_1.isSet)(object.validatorAddress)) + obj.validatorAddress = String(object.validatorAddress); + return obj; }, - toJSON(_) { + toJSON(message) { const obj = {}; + message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress); return obj; }, - fromPartial(_) { - const message = createBaseMsgGrantResponse(); + fromPartial(object) { + const message = createBaseQueryValidatorCommissionRequest(); + message.validatorAddress = object.validatorAddress ?? ""; return message; }, }; -function createBaseMsgRevoke() { +function createBaseQueryValidatorCommissionResponse() { return { - granter: "", - grantee: "", - msgTypeUrl: "", + commission: distribution_1.ValidatorAccumulatedCommission.fromPartial({}), }; } -exports.MsgRevoke = { - encode(message, writer = _m0.Writer.create()) { - if (message.granter !== "") { - writer.uint32(10).string(message.granter); - } - if (message.grantee !== "") { - writer.uint32(18).string(message.grantee); - } - if (message.msgTypeUrl !== "") { - writer.uint32(26).string(message.msgTypeUrl); +exports.QueryValidatorCommissionResponse = { + typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorCommissionResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.commission !== undefined) { + distribution_1.ValidatorAccumulatedCommission.encode(message.commission, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgRevoke(); + const message = createBaseQueryValidatorCommissionResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.granter = reader.string(); - break; - case 2: - message.grantee = reader.string(); - break; - case 3: - message.msgTypeUrl = reader.string(); + message.commission = distribution_1.ValidatorAccumulatedCommission.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -65893,41 +59972,71 @@ exports.MsgRevoke = { return message; }, fromJSON(object) { - return { - granter: (0, helpers_1.isSet)(object.granter) ? String(object.granter) : "", - grantee: (0, helpers_1.isSet)(object.grantee) ? String(object.grantee) : "", - msgTypeUrl: (0, helpers_1.isSet)(object.msgTypeUrl) ? String(object.msgTypeUrl) : "", - }; + const obj = createBaseQueryValidatorCommissionResponse(); + if ((0, helpers_1.isSet)(object.commission)) + obj.commission = distribution_1.ValidatorAccumulatedCommission.fromJSON(object.commission); + return obj; }, toJSON(message) { const obj = {}; - message.granter !== undefined && (obj.granter = message.granter); - message.grantee !== undefined && (obj.grantee = message.grantee); - message.msgTypeUrl !== undefined && (obj.msgTypeUrl = message.msgTypeUrl); + message.commission !== undefined && + (obj.commission = message.commission + ? distribution_1.ValidatorAccumulatedCommission.toJSON(message.commission) + : undefined); return obj; }, fromPartial(object) { - const message = createBaseMsgRevoke(); - message.granter = object.granter ?? ""; - message.grantee = object.grantee ?? ""; - message.msgTypeUrl = object.msgTypeUrl ?? ""; + const message = createBaseQueryValidatorCommissionResponse(); + if (object.commission !== undefined && object.commission !== null) { + message.commission = distribution_1.ValidatorAccumulatedCommission.fromPartial(object.commission); + } return message; }, }; -function createBaseMsgRevokeResponse() { - return {}; +function createBaseQueryValidatorSlashesRequest() { + return { + validatorAddress: "", + startingHeight: BigInt(0), + endingHeight: BigInt(0), + pagination: undefined, + }; } -exports.MsgRevokeResponse = { - encode(_, writer = _m0.Writer.create()) { +exports.QueryValidatorSlashesRequest = { + typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorSlashesRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.validatorAddress !== "") { + writer.uint32(10).string(message.validatorAddress); + } + if (message.startingHeight !== BigInt(0)) { + writer.uint32(16).uint64(message.startingHeight); + } + if (message.endingHeight !== BigInt(0)) { + writer.uint32(24).uint64(message.endingHeight); + } + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim(); + } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgRevokeResponse(); + const message = createBaseQueryValidatorSlashesRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.validatorAddress = reader.string(); + break; + case 2: + message.startingHeight = reader.uint64(); + break; + case 3: + message.endingHeight = reader.uint64(); + break; + case 4: + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -65935,112 +60044,72 @@ exports.MsgRevokeResponse = { } return message; }, - fromJSON(_) { - return {}; + fromJSON(object) { + const obj = createBaseQueryValidatorSlashesRequest(); + if ((0, helpers_1.isSet)(object.validatorAddress)) + obj.validatorAddress = String(object.validatorAddress); + if ((0, helpers_1.isSet)(object.startingHeight)) + obj.startingHeight = BigInt(object.startingHeight.toString()); + if ((0, helpers_1.isSet)(object.endingHeight)) + obj.endingHeight = BigInt(object.endingHeight.toString()); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; }, - toJSON(_) { + toJSON(message) { const obj = {}; + message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress); + message.startingHeight !== undefined && + (obj.startingHeight = (message.startingHeight || BigInt(0)).toString()); + message.endingHeight !== undefined && (obj.endingHeight = (message.endingHeight || BigInt(0)).toString()); + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); return obj; }, - fromPartial(_) { - const message = createBaseMsgRevokeResponse(); + fromPartial(object) { + const message = createBaseQueryValidatorSlashesRequest(); + message.validatorAddress = object.validatorAddress ?? ""; + if (object.startingHeight !== undefined && object.startingHeight !== null) { + message.startingHeight = BigInt(object.startingHeight.toString()); + } + if (object.endingHeight !== undefined && object.endingHeight !== null) { + message.endingHeight = BigInt(object.endingHeight.toString()); + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } return message; }, }; -class MsgClientImpl { - constructor(rpc) { - this.rpc = rpc; - this.Grant = this.Grant.bind(this); - this.Exec = this.Exec.bind(this); - this.Revoke = this.Revoke.bind(this); - } - Grant(request) { - const data = exports.MsgGrant.encode(request).finish(); - const promise = this.rpc.request("cosmos.authz.v1beta1.Msg", "Grant", data); - return promise.then((data) => exports.MsgGrantResponse.decode(new _m0.Reader(data))); - } - Exec(request) { - const data = exports.MsgExec.encode(request).finish(); - const promise = this.rpc.request("cosmos.authz.v1beta1.Msg", "Exec", data); - return promise.then((data) => exports.MsgExecResponse.decode(new _m0.Reader(data))); - } - Revoke(request) { - const data = exports.MsgRevoke.encode(request).finish(); - const promise = this.rpc.request("cosmos.authz.v1beta1.Msg", "Revoke", data); - return promise.then((data) => exports.MsgRevokeResponse.decode(new _m0.Reader(data))); - } -} -exports.MsgClientImpl = MsgClientImpl; -//# sourceMappingURL=tx.js.map - -/***/ }), - -/***/ "./node_modules/cosmjs-types/cosmos/bank/v1beta1/bank.js": -/*!***************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/bank/v1beta1/bank.js ***! - \***************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Metadata = exports.DenomUnit = exports.Supply = exports.Output = exports.Input = exports.SendEnabled = exports.Params = exports.protobufPackage = void 0; -/* eslint-disable */ -const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -exports.protobufPackage = "cosmos.bank.v1beta1"; -function createBaseParams() { +function createBaseQueryValidatorSlashesResponse() { return { - sendEnabled: [], - defaultSendEnabled: false, + slashes: [], + pagination: undefined, }; } -exports.Params = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.sendEnabled) { - exports.SendEnabled.encode(v, writer.uint32(10).fork()).ldelim(); +exports.QueryValidatorSlashesResponse = { + typeUrl: "/cosmos.distribution.v1beta1.QueryValidatorSlashesResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.slashes) { + distribution_1.ValidatorSlashEvent.encode(v, writer.uint32(10).fork()).ldelim(); } - if (message.defaultSendEnabled === true) { - writer.uint32(16).bool(message.defaultSendEnabled); + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseParams(); + const message = createBaseQueryValidatorSlashesResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.sendEnabled.push(exports.SendEnabled.decode(reader, reader.uint32())); + message.slashes.push(distribution_1.ValidatorSlashEvent.decode(reader, reader.uint32())); break; case 2: - message.defaultSendEnabled = reader.bool(); + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -66050,59 +60119,63 @@ exports.Params = { return message; }, fromJSON(object) { - return { - sendEnabled: Array.isArray(object?.sendEnabled) - ? object.sendEnabled.map((e) => exports.SendEnabled.fromJSON(e)) - : [], - defaultSendEnabled: (0, helpers_1.isSet)(object.defaultSendEnabled) ? Boolean(object.defaultSendEnabled) : false, - }; + const obj = createBaseQueryValidatorSlashesResponse(); + if (Array.isArray(object?.slashes)) + obj.slashes = object.slashes.map((e) => distribution_1.ValidatorSlashEvent.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; - if (message.sendEnabled) { - obj.sendEnabled = message.sendEnabled.map((e) => (e ? exports.SendEnabled.toJSON(e) : undefined)); + if (message.slashes) { + obj.slashes = message.slashes.map((e) => (e ? distribution_1.ValidatorSlashEvent.toJSON(e) : undefined)); } else { - obj.sendEnabled = []; + obj.slashes = []; } - message.defaultSendEnabled !== undefined && (obj.defaultSendEnabled = message.defaultSendEnabled); + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); return obj; }, fromPartial(object) { - const message = createBaseParams(); - message.sendEnabled = object.sendEnabled?.map((e) => exports.SendEnabled.fromPartial(e)) || []; - message.defaultSendEnabled = object.defaultSendEnabled ?? false; + const message = createBaseQueryValidatorSlashesResponse(); + message.slashes = object.slashes?.map((e) => distribution_1.ValidatorSlashEvent.fromPartial(e)) || []; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } return message; }, }; -function createBaseSendEnabled() { +function createBaseQueryDelegationRewardsRequest() { return { - denom: "", - enabled: false, + delegatorAddress: "", + validatorAddress: "", }; } -exports.SendEnabled = { - encode(message, writer = _m0.Writer.create()) { - if (message.denom !== "") { - writer.uint32(10).string(message.denom); +exports.QueryDelegationRewardsRequest = { + typeUrl: "/cosmos.distribution.v1beta1.QueryDelegationRewardsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.delegatorAddress !== "") { + writer.uint32(10).string(message.delegatorAddress); } - if (message.enabled === true) { - writer.uint32(16).bool(message.enabled); + if (message.validatorAddress !== "") { + writer.uint32(18).string(message.validatorAddress); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSendEnabled(); + const message = createBaseQueryDelegationRewardsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.denom = reader.string(); + message.delegatorAddress = reader.string(); break; case 2: - message.enabled = reader.bool(); + message.validatorAddress = reader.string(); break; default: reader.skipType(tag & 7); @@ -66112,52 +60185,48 @@ exports.SendEnabled = { return message; }, fromJSON(object) { - return { - denom: (0, helpers_1.isSet)(object.denom) ? String(object.denom) : "", - enabled: (0, helpers_1.isSet)(object.enabled) ? Boolean(object.enabled) : false, - }; + const obj = createBaseQueryDelegationRewardsRequest(); + if ((0, helpers_1.isSet)(object.delegatorAddress)) + obj.delegatorAddress = String(object.delegatorAddress); + if ((0, helpers_1.isSet)(object.validatorAddress)) + obj.validatorAddress = String(object.validatorAddress); + return obj; }, toJSON(message) { const obj = {}; - message.denom !== undefined && (obj.denom = message.denom); - message.enabled !== undefined && (obj.enabled = message.enabled); + message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress); + message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress); return obj; }, fromPartial(object) { - const message = createBaseSendEnabled(); - message.denom = object.denom ?? ""; - message.enabled = object.enabled ?? false; + const message = createBaseQueryDelegationRewardsRequest(); + message.delegatorAddress = object.delegatorAddress ?? ""; + message.validatorAddress = object.validatorAddress ?? ""; return message; }, }; -function createBaseInput() { +function createBaseQueryDelegationRewardsResponse() { return { - address: "", - coins: [], + rewards: [], }; } -exports.Input = { - encode(message, writer = _m0.Writer.create()) { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - for (const v of message.coins) { - coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim(); +exports.QueryDelegationRewardsResponse = { + typeUrl: "/cosmos.distribution.v1beta1.QueryDelegationRewardsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.rewards) { + coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseInput(); + const message = createBaseQueryDelegationRewardsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.address = reader.string(); - break; - case 2: - message.coins.push(coin_1.Coin.decode(reader, reader.uint32())); + message.rewards.push(coin_1.DecCoin.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -66167,57 +60236,49 @@ exports.Input = { return message; }, fromJSON(object) { - return { - address: (0, helpers_1.isSet)(object.address) ? String(object.address) : "", - coins: Array.isArray(object?.coins) ? object.coins.map((e) => coin_1.Coin.fromJSON(e)) : [], - }; + const obj = createBaseQueryDelegationRewardsResponse(); + if (Array.isArray(object?.rewards)) + obj.rewards = object.rewards.map((e) => coin_1.DecCoin.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - message.address !== undefined && (obj.address = message.address); - if (message.coins) { - obj.coins = message.coins.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + if (message.rewards) { + obj.rewards = message.rewards.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined)); } else { - obj.coins = []; + obj.rewards = []; } return obj; }, fromPartial(object) { - const message = createBaseInput(); - message.address = object.address ?? ""; - message.coins = object.coins?.map((e) => coin_1.Coin.fromPartial(e)) || []; + const message = createBaseQueryDelegationRewardsResponse(); + message.rewards = object.rewards?.map((e) => coin_1.DecCoin.fromPartial(e)) || []; return message; }, }; -function createBaseOutput() { +function createBaseQueryDelegationTotalRewardsRequest() { return { - address: "", - coins: [], + delegatorAddress: "", }; } -exports.Output = { - encode(message, writer = _m0.Writer.create()) { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - for (const v of message.coins) { - coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim(); +exports.QueryDelegationTotalRewardsRequest = { + typeUrl: "/cosmos.distribution.v1beta1.QueryDelegationTotalRewardsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.delegatorAddress !== "") { + writer.uint32(10).string(message.delegatorAddress); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseOutput(); + const message = createBaseQueryDelegationTotalRewardsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.address = reader.string(); - break; - case 2: - message.coins.push(coin_1.Coin.decode(reader, reader.uint32())); + message.delegatorAddress = reader.string(); break; default: reader.skipType(tag & 7); @@ -66227,50 +60288,51 @@ exports.Output = { return message; }, fromJSON(object) { - return { - address: (0, helpers_1.isSet)(object.address) ? String(object.address) : "", - coins: Array.isArray(object?.coins) ? object.coins.map((e) => coin_1.Coin.fromJSON(e)) : [], - }; + const obj = createBaseQueryDelegationTotalRewardsRequest(); + if ((0, helpers_1.isSet)(object.delegatorAddress)) + obj.delegatorAddress = String(object.delegatorAddress); + return obj; }, toJSON(message) { const obj = {}; - message.address !== undefined && (obj.address = message.address); - if (message.coins) { - obj.coins = message.coins.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); - } - else { - obj.coins = []; - } + message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress); return obj; }, fromPartial(object) { - const message = createBaseOutput(); - message.address = object.address ?? ""; - message.coins = object.coins?.map((e) => coin_1.Coin.fromPartial(e)) || []; + const message = createBaseQueryDelegationTotalRewardsRequest(); + message.delegatorAddress = object.delegatorAddress ?? ""; return message; }, }; -function createBaseSupply() { +function createBaseQueryDelegationTotalRewardsResponse() { return { + rewards: [], total: [], }; } -exports.Supply = { - encode(message, writer = _m0.Writer.create()) { +exports.QueryDelegationTotalRewardsResponse = { + typeUrl: "/cosmos.distribution.v1beta1.QueryDelegationTotalRewardsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.rewards) { + distribution_1.DelegationDelegatorReward.encode(v, writer.uint32(10).fork()).ldelim(); + } for (const v of message.total) { - coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim(); + coin_1.DecCoin.encode(v, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSupply(); + const message = createBaseQueryDelegationTotalRewardsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.total.push(coin_1.Coin.decode(reader, reader.uint32())); + message.rewards.push(distribution_1.DelegationDelegatorReward.decode(reader, reader.uint32())); + break; + case 2: + message.total.push(coin_1.DecCoin.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -66280,14 +60342,23 @@ exports.Supply = { return message; }, fromJSON(object) { - return { - total: Array.isArray(object?.total) ? object.total.map((e) => coin_1.Coin.fromJSON(e)) : [], - }; + const obj = createBaseQueryDelegationTotalRewardsResponse(); + if (Array.isArray(object?.rewards)) + obj.rewards = object.rewards.map((e) => distribution_1.DelegationDelegatorReward.fromJSON(e)); + if (Array.isArray(object?.total)) + obj.total = object.total.map((e) => coin_1.DecCoin.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; + if (message.rewards) { + obj.rewards = message.rewards.map((e) => (e ? distribution_1.DelegationDelegatorReward.toJSON(e) : undefined)); + } + else { + obj.rewards = []; + } if (message.total) { - obj.total = message.total.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + obj.total = message.total.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined)); } else { obj.total = []; @@ -66295,46 +60366,34 @@ exports.Supply = { return obj; }, fromPartial(object) { - const message = createBaseSupply(); - message.total = object.total?.map((e) => coin_1.Coin.fromPartial(e)) || []; + const message = createBaseQueryDelegationTotalRewardsResponse(); + message.rewards = object.rewards?.map((e) => distribution_1.DelegationDelegatorReward.fromPartial(e)) || []; + message.total = object.total?.map((e) => coin_1.DecCoin.fromPartial(e)) || []; return message; }, }; -function createBaseDenomUnit() { +function createBaseQueryDelegatorValidatorsRequest() { return { - denom: "", - exponent: 0, - aliases: [], + delegatorAddress: "", }; } -exports.DenomUnit = { - encode(message, writer = _m0.Writer.create()) { - if (message.denom !== "") { - writer.uint32(10).string(message.denom); - } - if (message.exponent !== 0) { - writer.uint32(16).uint32(message.exponent); - } - for (const v of message.aliases) { - writer.uint32(26).string(v); +exports.QueryDelegatorValidatorsRequest = { + typeUrl: "/cosmos.distribution.v1beta1.QueryDelegatorValidatorsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.delegatorAddress !== "") { + writer.uint32(10).string(message.delegatorAddress); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDenomUnit(); + const message = createBaseQueryDelegatorValidatorsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.denom = reader.string(); - break; - case 2: - message.exponent = reader.uint32(); - break; - case 3: - message.aliases.push(reader.string()); + message.delegatorAddress = reader.string(); break; default: reader.skipType(tag & 7); @@ -66344,88 +60403,44 @@ exports.DenomUnit = { return message; }, fromJSON(object) { - return { - denom: (0, helpers_1.isSet)(object.denom) ? String(object.denom) : "", - exponent: (0, helpers_1.isSet)(object.exponent) ? Number(object.exponent) : 0, - aliases: Array.isArray(object?.aliases) ? object.aliases.map((e) => String(e)) : [], - }; + const obj = createBaseQueryDelegatorValidatorsRequest(); + if ((0, helpers_1.isSet)(object.delegatorAddress)) + obj.delegatorAddress = String(object.delegatorAddress); + return obj; }, toJSON(message) { const obj = {}; - message.denom !== undefined && (obj.denom = message.denom); - message.exponent !== undefined && (obj.exponent = Math.round(message.exponent)); - if (message.aliases) { - obj.aliases = message.aliases.map((e) => e); - } - else { - obj.aliases = []; - } + message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress); return obj; }, fromPartial(object) { - const message = createBaseDenomUnit(); - message.denom = object.denom ?? ""; - message.exponent = object.exponent ?? 0; - message.aliases = object.aliases?.map((e) => e) || []; + const message = createBaseQueryDelegatorValidatorsRequest(); + message.delegatorAddress = object.delegatorAddress ?? ""; return message; }, }; -function createBaseMetadata() { +function createBaseQueryDelegatorValidatorsResponse() { return { - description: "", - denomUnits: [], - base: "", - display: "", - name: "", - symbol: "", + validators: [], }; } -exports.Metadata = { - encode(message, writer = _m0.Writer.create()) { - if (message.description !== "") { - writer.uint32(10).string(message.description); - } - for (const v of message.denomUnits) { - exports.DenomUnit.encode(v, writer.uint32(18).fork()).ldelim(); - } - if (message.base !== "") { - writer.uint32(26).string(message.base); - } - if (message.display !== "") { - writer.uint32(34).string(message.display); - } - if (message.name !== "") { - writer.uint32(42).string(message.name); - } - if (message.symbol !== "") { - writer.uint32(50).string(message.symbol); +exports.QueryDelegatorValidatorsResponse = { + typeUrl: "/cosmos.distribution.v1beta1.QueryDelegatorValidatorsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.validators) { + writer.uint32(10).string(v); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMetadata(); + const message = createBaseQueryDelegatorValidatorsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.description = reader.string(); - break; - case 2: - message.denomUnits.push(exports.DenomUnit.decode(reader, reader.uint32())); - break; - case 3: - message.base = reader.string(); - break; - case 4: - message.display = reader.string(); - break; - case 5: - message.name = reader.string(); - break; - case 6: - message.symbol = reader.string(); + message.validators.push(reader.string()); break; default: reader.skipType(tag & 7); @@ -66435,115 +60450,49 @@ exports.Metadata = { return message; }, fromJSON(object) { - return { - description: (0, helpers_1.isSet)(object.description) ? String(object.description) : "", - denomUnits: Array.isArray(object?.denomUnits) - ? object.denomUnits.map((e) => exports.DenomUnit.fromJSON(e)) - : [], - base: (0, helpers_1.isSet)(object.base) ? String(object.base) : "", - display: (0, helpers_1.isSet)(object.display) ? String(object.display) : "", - name: (0, helpers_1.isSet)(object.name) ? String(object.name) : "", - symbol: (0, helpers_1.isSet)(object.symbol) ? String(object.symbol) : "", - }; + const obj = createBaseQueryDelegatorValidatorsResponse(); + if (Array.isArray(object?.validators)) + obj.validators = object.validators.map((e) => String(e)); + return obj; }, toJSON(message) { const obj = {}; - message.description !== undefined && (obj.description = message.description); - if (message.denomUnits) { - obj.denomUnits = message.denomUnits.map((e) => (e ? exports.DenomUnit.toJSON(e) : undefined)); + if (message.validators) { + obj.validators = message.validators.map((e) => e); } else { - obj.denomUnits = []; + obj.validators = []; } - message.base !== undefined && (obj.base = message.base); - message.display !== undefined && (obj.display = message.display); - message.name !== undefined && (obj.name = message.name); - message.symbol !== undefined && (obj.symbol = message.symbol); return obj; }, fromPartial(object) { - const message = createBaseMetadata(); - message.description = object.description ?? ""; - message.denomUnits = object.denomUnits?.map((e) => exports.DenomUnit.fromPartial(e)) || []; - message.base = object.base ?? ""; - message.display = object.display ?? ""; - message.name = object.name ?? ""; - message.symbol = object.symbol ?? ""; + const message = createBaseQueryDelegatorValidatorsResponse(); + message.validators = object.validators?.map((e) => e) || []; return message; }, }; -//# sourceMappingURL=bank.js.map - -/***/ }), - -/***/ "./node_modules/cosmjs-types/cosmos/bank/v1beta1/query.js": -/*!****************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/bank/v1beta1/query.js ***! - \****************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.QueryClientImpl = exports.QueryDenomMetadataResponse = exports.QueryDenomMetadataRequest = exports.QueryDenomsMetadataResponse = exports.QueryDenomsMetadataRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QuerySupplyOfResponse = exports.QuerySupplyOfRequest = exports.QueryTotalSupplyResponse = exports.QueryTotalSupplyRequest = exports.QuerySpendableBalancesResponse = exports.QuerySpendableBalancesRequest = exports.QueryAllBalancesResponse = exports.QueryAllBalancesRequest = exports.QueryBalanceResponse = exports.QueryBalanceRequest = exports.protobufPackage = void 0; -/* eslint-disable */ -const pagination_1 = __webpack_require__(/*! ../../base/query/v1beta1/pagination */ "./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js"); -const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); -const bank_1 = __webpack_require__(/*! ./bank */ "./node_modules/cosmjs-types/cosmos/bank/v1beta1/bank.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -exports.protobufPackage = "cosmos.bank.v1beta1"; -function createBaseQueryBalanceRequest() { +function createBaseQueryDelegatorWithdrawAddressRequest() { return { - address: "", - denom: "", + delegatorAddress: "", }; } -exports.QueryBalanceRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - if (message.denom !== "") { - writer.uint32(18).string(message.denom); +exports.QueryDelegatorWithdrawAddressRequest = { + typeUrl: "/cosmos.distribution.v1beta1.QueryDelegatorWithdrawAddressRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.delegatorAddress !== "") { + writer.uint32(10).string(message.delegatorAddress); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryBalanceRequest(); + const message = createBaseQueryDelegatorWithdrawAddressRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.address = reader.string(); - break; - case 2: - message.denom = reader.string(); + message.delegatorAddress = reader.string(); break; default: reader.skipType(tag & 7); @@ -66553,45 +60502,44 @@ exports.QueryBalanceRequest = { return message; }, fromJSON(object) { - return { - address: (0, helpers_1.isSet)(object.address) ? String(object.address) : "", - denom: (0, helpers_1.isSet)(object.denom) ? String(object.denom) : "", - }; + const obj = createBaseQueryDelegatorWithdrawAddressRequest(); + if ((0, helpers_1.isSet)(object.delegatorAddress)) + obj.delegatorAddress = String(object.delegatorAddress); + return obj; }, toJSON(message) { const obj = {}; - message.address !== undefined && (obj.address = message.address); - message.denom !== undefined && (obj.denom = message.denom); + message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress); return obj; }, fromPartial(object) { - const message = createBaseQueryBalanceRequest(); - message.address = object.address ?? ""; - message.denom = object.denom ?? ""; + const message = createBaseQueryDelegatorWithdrawAddressRequest(); + message.delegatorAddress = object.delegatorAddress ?? ""; return message; }, }; -function createBaseQueryBalanceResponse() { +function createBaseQueryDelegatorWithdrawAddressResponse() { return { - balance: undefined, + withdrawAddress: "", }; } -exports.QueryBalanceResponse = { - encode(message, writer = _m0.Writer.create()) { - if (message.balance !== undefined) { - coin_1.Coin.encode(message.balance, writer.uint32(10).fork()).ldelim(); +exports.QueryDelegatorWithdrawAddressResponse = { + typeUrl: "/cosmos.distribution.v1beta1.QueryDelegatorWithdrawAddressResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.withdrawAddress !== "") { + writer.uint32(10).string(message.withdrawAddress); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryBalanceResponse(); + const message = createBaseQueryDelegatorWithdrawAddressResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.balance = coin_1.Coin.decode(reader, reader.uint32()); + message.withdrawAddress = reader.string(); break; default: reader.skipType(tag & 7); @@ -66601,51 +60549,79 @@ exports.QueryBalanceResponse = { return message; }, fromJSON(object) { - return { - balance: (0, helpers_1.isSet)(object.balance) ? coin_1.Coin.fromJSON(object.balance) : undefined, - }; + const obj = createBaseQueryDelegatorWithdrawAddressResponse(); + if ((0, helpers_1.isSet)(object.withdrawAddress)) + obj.withdrawAddress = String(object.withdrawAddress); + return obj; }, toJSON(message) { const obj = {}; - message.balance !== undefined && - (obj.balance = message.balance ? coin_1.Coin.toJSON(message.balance) : undefined); + message.withdrawAddress !== undefined && (obj.withdrawAddress = message.withdrawAddress); return obj; }, fromPartial(object) { - const message = createBaseQueryBalanceResponse(); - message.balance = - object.balance !== undefined && object.balance !== null ? coin_1.Coin.fromPartial(object.balance) : undefined; + const message = createBaseQueryDelegatorWithdrawAddressResponse(); + message.withdrawAddress = object.withdrawAddress ?? ""; return message; }, }; -function createBaseQueryAllBalancesRequest() { +function createBaseQueryCommunityPoolRequest() { + return {}; +} +exports.QueryCommunityPoolRequest = { + typeUrl: "/cosmos.distribution.v1beta1.QueryCommunityPoolRequest", + encode(_, writer = binary_1.BinaryWriter.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryCommunityPoolRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_) { + const obj = createBaseQueryCommunityPoolRequest(); + return obj; + }, + toJSON(_) { + const obj = {}; + return obj; + }, + fromPartial(_) { + const message = createBaseQueryCommunityPoolRequest(); + return message; + }, +}; +function createBaseQueryCommunityPoolResponse() { return { - address: "", - pagination: undefined, + pool: [], }; } -exports.QueryAllBalancesRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.address !== "") { - writer.uint32(10).string(message.address); - } - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); +exports.QueryCommunityPoolResponse = { + typeUrl: "/cosmos.distribution.v1beta1.QueryCommunityPoolResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.pool) { + coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllBalancesRequest(); + const message = createBaseQueryCommunityPoolResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.address = reader.string(); - break; - case 2: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.pool.push(coin_1.DecCoin.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -66655,56 +60631,142 @@ exports.QueryAllBalancesRequest = { return message; }, fromJSON(object) { - return { - address: (0, helpers_1.isSet)(object.address) ? String(object.address) : "", - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryCommunityPoolResponse(); + if (Array.isArray(object?.pool)) + obj.pool = object.pool.map((e) => coin_1.DecCoin.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - message.address !== undefined && (obj.address = message.address); - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + if (message.pool) { + obj.pool = message.pool.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined)); + } + else { + obj.pool = []; + } return obj; }, fromPartial(object) { - const message = createBaseQueryAllBalancesRequest(); - message.address = object.address ?? ""; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + const message = createBaseQueryCommunityPoolResponse(); + message.pool = object.pool?.map((e) => coin_1.DecCoin.fromPartial(e)) || []; return message; }, }; -function createBaseQueryAllBalancesResponse() { +class QueryClientImpl { + constructor(rpc) { + this.rpc = rpc; + this.Params = this.Params.bind(this); + this.ValidatorDistributionInfo = this.ValidatorDistributionInfo.bind(this); + this.ValidatorOutstandingRewards = this.ValidatorOutstandingRewards.bind(this); + this.ValidatorCommission = this.ValidatorCommission.bind(this); + this.ValidatorSlashes = this.ValidatorSlashes.bind(this); + this.DelegationRewards = this.DelegationRewards.bind(this); + this.DelegationTotalRewards = this.DelegationTotalRewards.bind(this); + this.DelegatorValidators = this.DelegatorValidators.bind(this); + this.DelegatorWithdrawAddress = this.DelegatorWithdrawAddress.bind(this); + this.CommunityPool = this.CommunityPool.bind(this); + } + Params(request = {}) { + const data = exports.QueryParamsRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "Params", data); + return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data))); + } + ValidatorDistributionInfo(request) { + const data = exports.QueryValidatorDistributionInfoRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "ValidatorDistributionInfo", data); + return promise.then((data) => exports.QueryValidatorDistributionInfoResponse.decode(new binary_1.BinaryReader(data))); + } + ValidatorOutstandingRewards(request) { + const data = exports.QueryValidatorOutstandingRewardsRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "ValidatorOutstandingRewards", data); + return promise.then((data) => exports.QueryValidatorOutstandingRewardsResponse.decode(new binary_1.BinaryReader(data))); + } + ValidatorCommission(request) { + const data = exports.QueryValidatorCommissionRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "ValidatorCommission", data); + return promise.then((data) => exports.QueryValidatorCommissionResponse.decode(new binary_1.BinaryReader(data))); + } + ValidatorSlashes(request) { + const data = exports.QueryValidatorSlashesRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "ValidatorSlashes", data); + return promise.then((data) => exports.QueryValidatorSlashesResponse.decode(new binary_1.BinaryReader(data))); + } + DelegationRewards(request) { + const data = exports.QueryDelegationRewardsRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "DelegationRewards", data); + return promise.then((data) => exports.QueryDelegationRewardsResponse.decode(new binary_1.BinaryReader(data))); + } + DelegationTotalRewards(request) { + const data = exports.QueryDelegationTotalRewardsRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "DelegationTotalRewards", data); + return promise.then((data) => exports.QueryDelegationTotalRewardsResponse.decode(new binary_1.BinaryReader(data))); + } + DelegatorValidators(request) { + const data = exports.QueryDelegatorValidatorsRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "DelegatorValidators", data); + return promise.then((data) => exports.QueryDelegatorValidatorsResponse.decode(new binary_1.BinaryReader(data))); + } + DelegatorWithdrawAddress(request) { + const data = exports.QueryDelegatorWithdrawAddressRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "DelegatorWithdrawAddress", data); + return promise.then((data) => exports.QueryDelegatorWithdrawAddressResponse.decode(new binary_1.BinaryReader(data))); + } + CommunityPool(request = {}) { + const data = exports.QueryCommunityPoolRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "CommunityPool", data); + return promise.then((data) => exports.QueryCommunityPoolResponse.decode(new binary_1.BinaryReader(data))); + } +} +exports.QueryClientImpl = QueryClientImpl; +//# sourceMappingURL=query.js.map + +/***/ }), + +/***/ "./node_modules/cosmjs-types/cosmos/distribution/v1beta1/tx.js": +/*!*********************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/distribution/v1beta1/tx.js ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.MsgClientImpl = exports.MsgCommunityPoolSpendResponse = exports.MsgCommunityPoolSpend = exports.MsgUpdateParamsResponse = exports.MsgUpdateParams = exports.MsgFundCommunityPoolResponse = exports.MsgFundCommunityPool = exports.MsgWithdrawValidatorCommissionResponse = exports.MsgWithdrawValidatorCommission = exports.MsgWithdrawDelegatorRewardResponse = exports.MsgWithdrawDelegatorReward = exports.MsgSetWithdrawAddressResponse = exports.MsgSetWithdrawAddress = exports.protobufPackage = void 0; +/* eslint-disable */ +const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); +const distribution_1 = __webpack_require__(/*! ./distribution */ "./node_modules/cosmjs-types/cosmos/distribution/v1beta1/distribution.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "cosmos.distribution.v1beta1"; +function createBaseMsgSetWithdrawAddress() { return { - balances: [], - pagination: undefined, + delegatorAddress: "", + withdrawAddress: "", }; } -exports.QueryAllBalancesResponse = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.balances) { - coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim(); +exports.MsgSetWithdrawAddress = { + typeUrl: "/cosmos.distribution.v1beta1.MsgSetWithdrawAddress", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.delegatorAddress !== "") { + writer.uint32(10).string(message.delegatorAddress); } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (message.withdrawAddress !== "") { + writer.uint32(18).string(message.withdrawAddress); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllBalancesResponse(); + const message = createBaseMsgSetWithdrawAddress(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.balances.push(coin_1.Coin.decode(reader, reader.uint32())); + message.delegatorAddress = reader.string(); break; case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + message.withdrawAddress = reader.string(); break; default: reader.skipType(tag & 7); @@ -66714,61 +60776,90 @@ exports.QueryAllBalancesResponse = { return message; }, fromJSON(object) { - return { - balances: Array.isArray(object?.balances) ? object.balances.map((e) => coin_1.Coin.fromJSON(e)) : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseMsgSetWithdrawAddress(); + if ((0, helpers_1.isSet)(object.delegatorAddress)) + obj.delegatorAddress = String(object.delegatorAddress); + if ((0, helpers_1.isSet)(object.withdrawAddress)) + obj.withdrawAddress = String(object.withdrawAddress); + return obj; }, toJSON(message) { const obj = {}; - if (message.balances) { - obj.balances = message.balances.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); - } - else { - obj.balances = []; - } - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); + message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress); + message.withdrawAddress !== undefined && (obj.withdrawAddress = message.withdrawAddress); return obj; }, fromPartial(object) { - const message = createBaseQueryAllBalancesResponse(); - message.balances = object.balances?.map((e) => coin_1.Coin.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + const message = createBaseMsgSetWithdrawAddress(); + message.delegatorAddress = object.delegatorAddress ?? ""; + message.withdrawAddress = object.withdrawAddress ?? ""; return message; }, }; -function createBaseQuerySpendableBalancesRequest() { +function createBaseMsgSetWithdrawAddressResponse() { + return {}; +} +exports.MsgSetWithdrawAddressResponse = { + typeUrl: "/cosmos.distribution.v1beta1.MsgSetWithdrawAddressResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgSetWithdrawAddressResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_) { + const obj = createBaseMsgSetWithdrawAddressResponse(); + return obj; + }, + toJSON(_) { + const obj = {}; + return obj; + }, + fromPartial(_) { + const message = createBaseMsgSetWithdrawAddressResponse(); + return message; + }, +}; +function createBaseMsgWithdrawDelegatorReward() { return { - address: "", - pagination: undefined, + delegatorAddress: "", + validatorAddress: "", }; } -exports.QuerySpendableBalancesRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.address !== "") { - writer.uint32(10).string(message.address); +exports.MsgWithdrawDelegatorReward = { + typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.delegatorAddress !== "") { + writer.uint32(10).string(message.delegatorAddress); } - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (message.validatorAddress !== "") { + writer.uint32(18).string(message.validatorAddress); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQuerySpendableBalancesRequest(); + const message = createBaseMsgWithdrawDelegatorReward(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.address = reader.string(); + message.delegatorAddress = reader.string(); break; case 2: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.validatorAddress = reader.string(); break; default: reader.skipType(tag & 7); @@ -66778,56 +60869,48 @@ exports.QuerySpendableBalancesRequest = { return message; }, fromJSON(object) { - return { - address: (0, helpers_1.isSet)(object.address) ? String(object.address) : "", - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseMsgWithdrawDelegatorReward(); + if ((0, helpers_1.isSet)(object.delegatorAddress)) + obj.delegatorAddress = String(object.delegatorAddress); + if ((0, helpers_1.isSet)(object.validatorAddress)) + obj.validatorAddress = String(object.validatorAddress); + return obj; }, toJSON(message) { const obj = {}; - message.address !== undefined && (obj.address = message.address); - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress); + message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress); return obj; }, fromPartial(object) { - const message = createBaseQuerySpendableBalancesRequest(); - message.address = object.address ?? ""; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + const message = createBaseMsgWithdrawDelegatorReward(); + message.delegatorAddress = object.delegatorAddress ?? ""; + message.validatorAddress = object.validatorAddress ?? ""; return message; }, }; -function createBaseQuerySpendableBalancesResponse() { +function createBaseMsgWithdrawDelegatorRewardResponse() { return { - balances: [], - pagination: undefined, + amount: [], }; } -exports.QuerySpendableBalancesResponse = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.balances) { +exports.MsgWithdrawDelegatorRewardResponse = { + typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorRewardResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.amount) { coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim(); } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQuerySpendableBalancesResponse(); + const message = createBaseMsgWithdrawDelegatorRewardResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.balances.push(coin_1.Coin.decode(reader, reader.uint32())); - break; - case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + message.amount.push(coin_1.Coin.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -66837,54 +60920,49 @@ exports.QuerySpendableBalancesResponse = { return message; }, fromJSON(object) { - return { - balances: Array.isArray(object?.balances) ? object.balances.map((e) => coin_1.Coin.fromJSON(e)) : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseMsgWithdrawDelegatorRewardResponse(); + if (Array.isArray(object?.amount)) + obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - if (message.balances) { - obj.balances = message.balances.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + if (message.amount) { + obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); } else { - obj.balances = []; + obj.amount = []; } - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); return obj; }, fromPartial(object) { - const message = createBaseQuerySpendableBalancesResponse(); - message.balances = object.balances?.map((e) => coin_1.Coin.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + const message = createBaseMsgWithdrawDelegatorRewardResponse(); + message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || []; return message; }, }; -function createBaseQueryTotalSupplyRequest() { +function createBaseMsgWithdrawValidatorCommission() { return { - pagination: undefined, + validatorAddress: "", }; } -exports.QueryTotalSupplyRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); +exports.MsgWithdrawValidatorCommission = { + typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.validatorAddress !== "") { + writer.uint32(10).string(message.validatorAddress); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryTotalSupplyRequest(); + const message = createBaseMsgWithdrawValidatorCommission(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.validatorAddress = reader.string(); break; default: reader.skipType(tag & 7); @@ -66894,53 +60972,44 @@ exports.QueryTotalSupplyRequest = { return message; }, fromJSON(object) { - return { - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseMsgWithdrawValidatorCommission(); + if ((0, helpers_1.isSet)(object.validatorAddress)) + obj.validatorAddress = String(object.validatorAddress); + return obj; }, toJSON(message) { const obj = {}; - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress); return obj; }, fromPartial(object) { - const message = createBaseQueryTotalSupplyRequest(); - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + const message = createBaseMsgWithdrawValidatorCommission(); + message.validatorAddress = object.validatorAddress ?? ""; return message; }, }; -function createBaseQueryTotalSupplyResponse() { +function createBaseMsgWithdrawValidatorCommissionResponse() { return { - supply: [], - pagination: undefined, + amount: [], }; } -exports.QueryTotalSupplyResponse = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.supply) { +exports.MsgWithdrawValidatorCommissionResponse = { + typeUrl: "/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommissionResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.amount) { coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim(); } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryTotalSupplyResponse(); + const message = createBaseMsgWithdrawValidatorCommissionResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.supply.push(coin_1.Coin.decode(reader, reader.uint32())); - break; - case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + message.amount.push(coin_1.Coin.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -66950,54 +61019,56 @@ exports.QueryTotalSupplyResponse = { return message; }, fromJSON(object) { - return { - supply: Array.isArray(object?.supply) ? object.supply.map((e) => coin_1.Coin.fromJSON(e)) : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseMsgWithdrawValidatorCommissionResponse(); + if (Array.isArray(object?.amount)) + obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - if (message.supply) { - obj.supply = message.supply.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + if (message.amount) { + obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); } else { - obj.supply = []; + obj.amount = []; } - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); return obj; }, fromPartial(object) { - const message = createBaseQueryTotalSupplyResponse(); - message.supply = object.supply?.map((e) => coin_1.Coin.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + const message = createBaseMsgWithdrawValidatorCommissionResponse(); + message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || []; return message; }, }; -function createBaseQuerySupplyOfRequest() { +function createBaseMsgFundCommunityPool() { return { - denom: "", + amount: [], + depositor: "", }; } -exports.QuerySupplyOfRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.denom !== "") { - writer.uint32(10).string(message.denom); +exports.MsgFundCommunityPool = { + typeUrl: "/cosmos.distribution.v1beta1.MsgFundCommunityPool", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.amount) { + coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.depositor !== "") { + writer.uint32(18).string(message.depositor); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQuerySupplyOfRequest(); + const message = createBaseMsgFundCommunityPool(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.denom = reader.string(); + message.amount.push(coin_1.Coin.decode(reader, reader.uint32())); + break; + case 2: + message.depositor = reader.string(); break; default: reader.skipType(tag & 7); @@ -67007,42 +61078,95 @@ exports.QuerySupplyOfRequest = { return message; }, fromJSON(object) { - return { - denom: (0, helpers_1.isSet)(object.denom) ? String(object.denom) : "", - }; + const obj = createBaseMsgFundCommunityPool(); + if (Array.isArray(object?.amount)) + obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e)); + if ((0, helpers_1.isSet)(object.depositor)) + obj.depositor = String(object.depositor); + return obj; }, toJSON(message) { const obj = {}; - message.denom !== undefined && (obj.denom = message.denom); + if (message.amount) { + obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + } + else { + obj.amount = []; + } + message.depositor !== undefined && (obj.depositor = message.depositor); return obj; }, fromPartial(object) { - const message = createBaseQuerySupplyOfRequest(); - message.denom = object.denom ?? ""; + const message = createBaseMsgFundCommunityPool(); + message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || []; + message.depositor = object.depositor ?? ""; return message; }, }; -function createBaseQuerySupplyOfResponse() { +function createBaseMsgFundCommunityPoolResponse() { + return {}; +} +exports.MsgFundCommunityPoolResponse = { + typeUrl: "/cosmos.distribution.v1beta1.MsgFundCommunityPoolResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgFundCommunityPoolResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_) { + const obj = createBaseMsgFundCommunityPoolResponse(); + return obj; + }, + toJSON(_) { + const obj = {}; + return obj; + }, + fromPartial(_) { + const message = createBaseMsgFundCommunityPoolResponse(); + return message; + }, +}; +function createBaseMsgUpdateParams() { return { - amount: undefined, + authority: "", + params: distribution_1.Params.fromPartial({}), }; } -exports.QuerySupplyOfResponse = { - encode(message, writer = _m0.Writer.create()) { - if (message.amount !== undefined) { - coin_1.Coin.encode(message.amount, writer.uint32(10).fork()).ldelim(); +exports.MsgUpdateParams = { + typeUrl: "/cosmos.distribution.v1beta1.MsgUpdateParams", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.authority !== "") { + writer.uint32(10).string(message.authority); + } + if (message.params !== undefined) { + distribution_1.Params.encode(message.params, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQuerySupplyOfResponse(); + const message = createBaseMsgUpdateParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.amount = coin_1.Coin.decode(reader, reader.uint32()); + message.authority = reader.string(); + break; + case 2: + message.params = distribution_1.Params.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -67052,33 +61176,40 @@ exports.QuerySupplyOfResponse = { return message; }, fromJSON(object) { - return { - amount: (0, helpers_1.isSet)(object.amount) ? coin_1.Coin.fromJSON(object.amount) : undefined, - }; + const obj = createBaseMsgUpdateParams(); + if ((0, helpers_1.isSet)(object.authority)) + obj.authority = String(object.authority); + if ((0, helpers_1.isSet)(object.params)) + obj.params = distribution_1.Params.fromJSON(object.params); + return obj; }, toJSON(message) { const obj = {}; - message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined); + message.authority !== undefined && (obj.authority = message.authority); + message.params !== undefined && (obj.params = message.params ? distribution_1.Params.toJSON(message.params) : undefined); return obj; }, fromPartial(object) { - const message = createBaseQuerySupplyOfResponse(); - message.amount = - object.amount !== undefined && object.amount !== null ? coin_1.Coin.fromPartial(object.amount) : undefined; + const message = createBaseMsgUpdateParams(); + message.authority = object.authority ?? ""; + if (object.params !== undefined && object.params !== null) { + message.params = distribution_1.Params.fromPartial(object.params); + } return message; }, }; -function createBaseQueryParamsRequest() { +function createBaseMsgUpdateParamsResponse() { return {}; } -exports.QueryParamsRequest = { - encode(_, writer = _m0.Writer.create()) { +exports.MsgUpdateParamsResponse = { + typeUrl: "/cosmos.distribution.v1beta1.MsgUpdateParamsResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsRequest(); + const message = createBaseMsgUpdateParamsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { @@ -67090,38 +61221,54 @@ exports.QueryParamsRequest = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseMsgUpdateParamsResponse(); + return obj; }, toJSON(_) { const obj = {}; return obj; }, fromPartial(_) { - const message = createBaseQueryParamsRequest(); + const message = createBaseMsgUpdateParamsResponse(); return message; }, }; -function createBaseQueryParamsResponse() { +function createBaseMsgCommunityPoolSpend() { return { - params: undefined, + authority: "", + recipient: "", + amount: [], }; } -exports.QueryParamsResponse = { - encode(message, writer = _m0.Writer.create()) { - if (message.params !== undefined) { - bank_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim(); +exports.MsgCommunityPoolSpend = { + typeUrl: "/cosmos.distribution.v1beta1.MsgCommunityPoolSpend", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.authority !== "") { + writer.uint32(10).string(message.authority); + } + if (message.recipient !== "") { + writer.uint32(18).string(message.recipient); + } + for (const v of message.amount) { + coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsResponse(); + const message = createBaseMsgCommunityPoolSpend(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.params = bank_1.Params.decode(reader, reader.uint32()); + message.authority = reader.string(); + break; + case 2: + message.recipient = reader.string(); + break; + case 3: + message.amount.push(coin_1.Coin.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -67131,43 +61278,163 @@ exports.QueryParamsResponse = { return message; }, fromJSON(object) { - return { - params: (0, helpers_1.isSet)(object.params) ? bank_1.Params.fromJSON(object.params) : undefined, - }; + const obj = createBaseMsgCommunityPoolSpend(); + if ((0, helpers_1.isSet)(object.authority)) + obj.authority = String(object.authority); + if ((0, helpers_1.isSet)(object.recipient)) + obj.recipient = String(object.recipient); + if (Array.isArray(object?.amount)) + obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - message.params !== undefined && (obj.params = message.params ? bank_1.Params.toJSON(message.params) : undefined); + message.authority !== undefined && (obj.authority = message.authority); + message.recipient !== undefined && (obj.recipient = message.recipient); + if (message.amount) { + obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + } + else { + obj.amount = []; + } return obj; }, fromPartial(object) { - const message = createBaseQueryParamsResponse(); - message.params = - object.params !== undefined && object.params !== null ? bank_1.Params.fromPartial(object.params) : undefined; + const message = createBaseMsgCommunityPoolSpend(); + message.authority = object.authority ?? ""; + message.recipient = object.recipient ?? ""; + message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || []; return message; }, }; -function createBaseQueryDenomsMetadataRequest() { +function createBaseMsgCommunityPoolSpendResponse() { + return {}; +} +exports.MsgCommunityPoolSpendResponse = { + typeUrl: "/cosmos.distribution.v1beta1.MsgCommunityPoolSpendResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgCommunityPoolSpendResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_) { + const obj = createBaseMsgCommunityPoolSpendResponse(); + return obj; + }, + toJSON(_) { + const obj = {}; + return obj; + }, + fromPartial(_) { + const message = createBaseMsgCommunityPoolSpendResponse(); + return message; + }, +}; +class MsgClientImpl { + constructor(rpc) { + this.rpc = rpc; + this.SetWithdrawAddress = this.SetWithdrawAddress.bind(this); + this.WithdrawDelegatorReward = this.WithdrawDelegatorReward.bind(this); + this.WithdrawValidatorCommission = this.WithdrawValidatorCommission.bind(this); + this.FundCommunityPool = this.FundCommunityPool.bind(this); + this.UpdateParams = this.UpdateParams.bind(this); + this.CommunityPoolSpend = this.CommunityPoolSpend.bind(this); + } + SetWithdrawAddress(request) { + const data = exports.MsgSetWithdrawAddress.encode(request).finish(); + const promise = this.rpc.request("cosmos.distribution.v1beta1.Msg", "SetWithdrawAddress", data); + return promise.then((data) => exports.MsgSetWithdrawAddressResponse.decode(new binary_1.BinaryReader(data))); + } + WithdrawDelegatorReward(request) { + const data = exports.MsgWithdrawDelegatorReward.encode(request).finish(); + const promise = this.rpc.request("cosmos.distribution.v1beta1.Msg", "WithdrawDelegatorReward", data); + return promise.then((data) => exports.MsgWithdrawDelegatorRewardResponse.decode(new binary_1.BinaryReader(data))); + } + WithdrawValidatorCommission(request) { + const data = exports.MsgWithdrawValidatorCommission.encode(request).finish(); + const promise = this.rpc.request("cosmos.distribution.v1beta1.Msg", "WithdrawValidatorCommission", data); + return promise.then((data) => exports.MsgWithdrawValidatorCommissionResponse.decode(new binary_1.BinaryReader(data))); + } + FundCommunityPool(request) { + const data = exports.MsgFundCommunityPool.encode(request).finish(); + const promise = this.rpc.request("cosmos.distribution.v1beta1.Msg", "FundCommunityPool", data); + return promise.then((data) => exports.MsgFundCommunityPoolResponse.decode(new binary_1.BinaryReader(data))); + } + UpdateParams(request) { + const data = exports.MsgUpdateParams.encode(request).finish(); + const promise = this.rpc.request("cosmos.distribution.v1beta1.Msg", "UpdateParams", data); + return promise.then((data) => exports.MsgUpdateParamsResponse.decode(new binary_1.BinaryReader(data))); + } + CommunityPoolSpend(request) { + const data = exports.MsgCommunityPoolSpend.encode(request).finish(); + const promise = this.rpc.request("cosmos.distribution.v1beta1.Msg", "CommunityPoolSpend", data); + return promise.then((data) => exports.MsgCommunityPoolSpendResponse.decode(new binary_1.BinaryReader(data))); + } +} +exports.MsgClientImpl = MsgClientImpl; +//# sourceMappingURL=tx.js.map + +/***/ }), + +/***/ "./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/feegrant.js": +/*!***********************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/feegrant.js ***! + \***********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Grant = exports.AllowedMsgAllowance = exports.PeriodicAllowance = exports.BasicAllowance = exports.protobufPackage = void 0; +/* eslint-disable */ +const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); +const timestamp_1 = __webpack_require__(/*! ../../../google/protobuf/timestamp */ "./node_modules/cosmjs-types/google/protobuf/timestamp.js"); +const duration_1 = __webpack_require__(/*! ../../../google/protobuf/duration */ "./node_modules/cosmjs-types/google/protobuf/duration.js"); +const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "cosmos.feegrant.v1beta1"; +function createBaseBasicAllowance() { return { - pagination: undefined, + spendLimit: [], + expiration: undefined, }; } -exports.QueryDenomsMetadataRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); +exports.BasicAllowance = { + typeUrl: "/cosmos.feegrant.v1beta1.BasicAllowance", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.spendLimit) { + coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.expiration !== undefined) { + timestamp_1.Timestamp.encode(message.expiration, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDenomsMetadataRequest(); + const message = createBaseBasicAllowance(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.spendLimit.push(coin_1.Coin.decode(reader, reader.uint32())); + break; + case 2: + message.expiration = timestamp_1.Timestamp.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -67177,53 +61444,83 @@ exports.QueryDenomsMetadataRequest = { return message; }, fromJSON(object) { - return { - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseBasicAllowance(); + if (Array.isArray(object?.spendLimit)) + obj.spendLimit = object.spendLimit.map((e) => coin_1.Coin.fromJSON(e)); + if ((0, helpers_1.isSet)(object.expiration)) + obj.expiration = (0, helpers_1.fromJsonTimestamp)(object.expiration); + return obj; }, toJSON(message) { const obj = {}; - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + if (message.spendLimit) { + obj.spendLimit = message.spendLimit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + } + else { + obj.spendLimit = []; + } + message.expiration !== undefined && (obj.expiration = (0, helpers_1.fromTimestamp)(message.expiration).toISOString()); return obj; }, fromPartial(object) { - const message = createBaseQueryDenomsMetadataRequest(); - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + const message = createBaseBasicAllowance(); + message.spendLimit = object.spendLimit?.map((e) => coin_1.Coin.fromPartial(e)) || []; + if (object.expiration !== undefined && object.expiration !== null) { + message.expiration = timestamp_1.Timestamp.fromPartial(object.expiration); + } return message; }, }; -function createBaseQueryDenomsMetadataResponse() { +function createBasePeriodicAllowance() { return { - metadatas: [], - pagination: undefined, + basic: exports.BasicAllowance.fromPartial({}), + period: duration_1.Duration.fromPartial({}), + periodSpendLimit: [], + periodCanSpend: [], + periodReset: timestamp_1.Timestamp.fromPartial({}), }; } -exports.QueryDenomsMetadataResponse = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.metadatas) { - bank_1.Metadata.encode(v, writer.uint32(10).fork()).ldelim(); +exports.PeriodicAllowance = { + typeUrl: "/cosmos.feegrant.v1beta1.PeriodicAllowance", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.basic !== undefined) { + exports.BasicAllowance.encode(message.basic, writer.uint32(10).fork()).ldelim(); + } + if (message.period !== undefined) { + duration_1.Duration.encode(message.period, writer.uint32(18).fork()).ldelim(); } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + for (const v of message.periodSpendLimit) { + coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim(); + } + for (const v of message.periodCanSpend) { + coin_1.Coin.encode(v, writer.uint32(34).fork()).ldelim(); + } + if (message.periodReset !== undefined) { + timestamp_1.Timestamp.encode(message.periodReset, writer.uint32(42).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDenomsMetadataResponse(); + const message = createBasePeriodicAllowance(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.metadatas.push(bank_1.Metadata.decode(reader, reader.uint32())); + message.basic = exports.BasicAllowance.decode(reader, reader.uint32()); break; case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + message.period = duration_1.Duration.decode(reader, reader.uint32()); + break; + case 3: + message.periodSpendLimit.push(coin_1.Coin.decode(reader, reader.uint32())); + break; + case 4: + message.periodCanSpend.push(coin_1.Coin.decode(reader, reader.uint32())); + break; + case 5: + message.periodReset = timestamp_1.Timestamp.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -67233,56 +61530,85 @@ exports.QueryDenomsMetadataResponse = { return message; }, fromJSON(object) { - return { - metadatas: Array.isArray(object?.metadatas) - ? object.metadatas.map((e) => bank_1.Metadata.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBasePeriodicAllowance(); + if ((0, helpers_1.isSet)(object.basic)) + obj.basic = exports.BasicAllowance.fromJSON(object.basic); + if ((0, helpers_1.isSet)(object.period)) + obj.period = duration_1.Duration.fromJSON(object.period); + if (Array.isArray(object?.periodSpendLimit)) + obj.periodSpendLimit = object.periodSpendLimit.map((e) => coin_1.Coin.fromJSON(e)); + if (Array.isArray(object?.periodCanSpend)) + obj.periodCanSpend = object.periodCanSpend.map((e) => coin_1.Coin.fromJSON(e)); + if ((0, helpers_1.isSet)(object.periodReset)) + obj.periodReset = (0, helpers_1.fromJsonTimestamp)(object.periodReset); + return obj; }, toJSON(message) { const obj = {}; - if (message.metadatas) { - obj.metadatas = message.metadatas.map((e) => (e ? bank_1.Metadata.toJSON(e) : undefined)); + message.basic !== undefined && + (obj.basic = message.basic ? exports.BasicAllowance.toJSON(message.basic) : undefined); + message.period !== undefined && + (obj.period = message.period ? duration_1.Duration.toJSON(message.period) : undefined); + if (message.periodSpendLimit) { + obj.periodSpendLimit = message.periodSpendLimit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); } else { - obj.metadatas = []; + obj.periodSpendLimit = []; } - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); + if (message.periodCanSpend) { + obj.periodCanSpend = message.periodCanSpend.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + } + else { + obj.periodCanSpend = []; + } + message.periodReset !== undefined && (obj.periodReset = (0, helpers_1.fromTimestamp)(message.periodReset).toISOString()); return obj; }, fromPartial(object) { - const message = createBaseQueryDenomsMetadataResponse(); - message.metadatas = object.metadatas?.map((e) => bank_1.Metadata.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + const message = createBasePeriodicAllowance(); + if (object.basic !== undefined && object.basic !== null) { + message.basic = exports.BasicAllowance.fromPartial(object.basic); + } + if (object.period !== undefined && object.period !== null) { + message.period = duration_1.Duration.fromPartial(object.period); + } + message.periodSpendLimit = object.periodSpendLimit?.map((e) => coin_1.Coin.fromPartial(e)) || []; + message.periodCanSpend = object.periodCanSpend?.map((e) => coin_1.Coin.fromPartial(e)) || []; + if (object.periodReset !== undefined && object.periodReset !== null) { + message.periodReset = timestamp_1.Timestamp.fromPartial(object.periodReset); + } return message; }, }; -function createBaseQueryDenomMetadataRequest() { +function createBaseAllowedMsgAllowance() { return { - denom: "", + allowance: undefined, + allowedMessages: [], }; } -exports.QueryDenomMetadataRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.denom !== "") { - writer.uint32(10).string(message.denom); +exports.AllowedMsgAllowance = { + typeUrl: "/cosmos.feegrant.v1beta1.AllowedMsgAllowance", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.allowance !== undefined) { + any_1.Any.encode(message.allowance, writer.uint32(10).fork()).ldelim(); + } + for (const v of message.allowedMessages) { + writer.uint32(18).string(v); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDenomMetadataRequest(); + const message = createBaseAllowedMsgAllowance(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.denom = reader.string(); + message.allowance = any_1.Any.decode(reader, reader.uint32()); + break; + case 2: + message.allowedMessages.push(reader.string()); break; default: reader.skipType(tag & 7); @@ -67292,42 +61618,70 @@ exports.QueryDenomMetadataRequest = { return message; }, fromJSON(object) { - return { - denom: (0, helpers_1.isSet)(object.denom) ? String(object.denom) : "", - }; + const obj = createBaseAllowedMsgAllowance(); + if ((0, helpers_1.isSet)(object.allowance)) + obj.allowance = any_1.Any.fromJSON(object.allowance); + if (Array.isArray(object?.allowedMessages)) + obj.allowedMessages = object.allowedMessages.map((e) => String(e)); + return obj; }, toJSON(message) { const obj = {}; - message.denom !== undefined && (obj.denom = message.denom); + message.allowance !== undefined && + (obj.allowance = message.allowance ? any_1.Any.toJSON(message.allowance) : undefined); + if (message.allowedMessages) { + obj.allowedMessages = message.allowedMessages.map((e) => e); + } + else { + obj.allowedMessages = []; + } return obj; }, fromPartial(object) { - const message = createBaseQueryDenomMetadataRequest(); - message.denom = object.denom ?? ""; + const message = createBaseAllowedMsgAllowance(); + if (object.allowance !== undefined && object.allowance !== null) { + message.allowance = any_1.Any.fromPartial(object.allowance); + } + message.allowedMessages = object.allowedMessages?.map((e) => e) || []; return message; }, }; -function createBaseQueryDenomMetadataResponse() { +function createBaseGrant() { return { - metadata: undefined, + granter: "", + grantee: "", + allowance: undefined, }; } -exports.QueryDenomMetadataResponse = { - encode(message, writer = _m0.Writer.create()) { - if (message.metadata !== undefined) { - bank_1.Metadata.encode(message.metadata, writer.uint32(10).fork()).ldelim(); +exports.Grant = { + typeUrl: "/cosmos.feegrant.v1beta1.Grant", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.granter !== "") { + writer.uint32(10).string(message.granter); + } + if (message.grantee !== "") { + writer.uint32(18).string(message.grantee); + } + if (message.allowance !== undefined) { + any_1.Any.encode(message.allowance, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDenomMetadataResponse(); + const message = createBaseGrant(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.metadata = bank_1.Metadata.decode(reader, reader.uint32()); + message.granter = reader.string(); + break; + case 2: + message.grantee = reader.string(); + break; + case 3: + message.allowance = any_1.Any.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -67337,161 +61691,82 @@ exports.QueryDenomMetadataResponse = { return message; }, fromJSON(object) { - return { - metadata: (0, helpers_1.isSet)(object.metadata) ? bank_1.Metadata.fromJSON(object.metadata) : undefined, - }; + const obj = createBaseGrant(); + if ((0, helpers_1.isSet)(object.granter)) + obj.granter = String(object.granter); + if ((0, helpers_1.isSet)(object.grantee)) + obj.grantee = String(object.grantee); + if ((0, helpers_1.isSet)(object.allowance)) + obj.allowance = any_1.Any.fromJSON(object.allowance); + return obj; }, toJSON(message) { const obj = {}; - message.metadata !== undefined && - (obj.metadata = message.metadata ? bank_1.Metadata.toJSON(message.metadata) : undefined); + message.granter !== undefined && (obj.granter = message.granter); + message.grantee !== undefined && (obj.grantee = message.grantee); + message.allowance !== undefined && + (obj.allowance = message.allowance ? any_1.Any.toJSON(message.allowance) : undefined); return obj; }, fromPartial(object) { - const message = createBaseQueryDenomMetadataResponse(); - message.metadata = - object.metadata !== undefined && object.metadata !== null - ? bank_1.Metadata.fromPartial(object.metadata) - : undefined; + const message = createBaseGrant(); + message.granter = object.granter ?? ""; + message.grantee = object.grantee ?? ""; + if (object.allowance !== undefined && object.allowance !== null) { + message.allowance = any_1.Any.fromPartial(object.allowance); + } return message; }, }; -class QueryClientImpl { - constructor(rpc) { - this.rpc = rpc; - this.Balance = this.Balance.bind(this); - this.AllBalances = this.AllBalances.bind(this); - this.SpendableBalances = this.SpendableBalances.bind(this); - this.TotalSupply = this.TotalSupply.bind(this); - this.SupplyOf = this.SupplyOf.bind(this); - this.Params = this.Params.bind(this); - this.DenomMetadata = this.DenomMetadata.bind(this); - this.DenomsMetadata = this.DenomsMetadata.bind(this); - } - Balance(request) { - const data = exports.QueryBalanceRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "Balance", data); - return promise.then((data) => exports.QueryBalanceResponse.decode(new _m0.Reader(data))); - } - AllBalances(request) { - const data = exports.QueryAllBalancesRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "AllBalances", data); - return promise.then((data) => exports.QueryAllBalancesResponse.decode(new _m0.Reader(data))); - } - SpendableBalances(request) { - const data = exports.QuerySpendableBalancesRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "SpendableBalances", data); - return promise.then((data) => exports.QuerySpendableBalancesResponse.decode(new _m0.Reader(data))); - } - TotalSupply(request = { - pagination: undefined, - }) { - const data = exports.QueryTotalSupplyRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "TotalSupply", data); - return promise.then((data) => exports.QueryTotalSupplyResponse.decode(new _m0.Reader(data))); - } - SupplyOf(request) { - const data = exports.QuerySupplyOfRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "SupplyOf", data); - return promise.then((data) => exports.QuerySupplyOfResponse.decode(new _m0.Reader(data))); - } - Params(request = {}) { - const data = exports.QueryParamsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "Params", data); - return promise.then((data) => exports.QueryParamsResponse.decode(new _m0.Reader(data))); - } - DenomMetadata(request) { - const data = exports.QueryDenomMetadataRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "DenomMetadata", data); - return promise.then((data) => exports.QueryDenomMetadataResponse.decode(new _m0.Reader(data))); - } - DenomsMetadata(request = { - pagination: undefined, - }) { - const data = exports.QueryDenomsMetadataRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "DenomsMetadata", data); - return promise.then((data) => exports.QueryDenomsMetadataResponse.decode(new _m0.Reader(data))); - } -} -exports.QueryClientImpl = QueryClientImpl; -//# sourceMappingURL=query.js.map +//# sourceMappingURL=feegrant.js.map /***/ }), -/***/ "./node_modules/cosmjs-types/cosmos/bank/v1beta1/tx.js": -/*!*************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/bank/v1beta1/tx.js ***! - \*************************************************************/ +/***/ "./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/query.js": +/*!********************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/query.js ***! + \********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.MsgClientImpl = exports.MsgMultiSendResponse = exports.MsgMultiSend = exports.MsgSendResponse = exports.MsgSend = exports.protobufPackage = void 0; +exports.QueryClientImpl = exports.QueryAllowancesByGranterResponse = exports.QueryAllowancesByGranterRequest = exports.QueryAllowancesResponse = exports.QueryAllowancesRequest = exports.QueryAllowanceResponse = exports.QueryAllowanceRequest = exports.protobufPackage = void 0; /* eslint-disable */ -const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); -const bank_1 = __webpack_require__(/*! ./bank */ "./node_modules/cosmjs-types/cosmos/bank/v1beta1/bank.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const pagination_1 = __webpack_require__(/*! ../../base/query/v1beta1/pagination */ "./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js"); +const feegrant_1 = __webpack_require__(/*! ./feegrant */ "./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/feegrant.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -exports.protobufPackage = "cosmos.bank.v1beta1"; -function createBaseMsgSend() { +exports.protobufPackage = "cosmos.feegrant.v1beta1"; +function createBaseQueryAllowanceRequest() { return { - fromAddress: "", - toAddress: "", - amount: [], + granter: "", + grantee: "", }; } -exports.MsgSend = { - encode(message, writer = _m0.Writer.create()) { - if (message.fromAddress !== "") { - writer.uint32(10).string(message.fromAddress); - } - if (message.toAddress !== "") { - writer.uint32(18).string(message.toAddress); +exports.QueryAllowanceRequest = { + typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowanceRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.granter !== "") { + writer.uint32(10).string(message.granter); } - for (const v of message.amount) { - coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim(); + if (message.grantee !== "") { + writer.uint32(18).string(message.grantee); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSend(); + const message = createBaseQueryAllowanceRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.fromAddress = reader.string(); + message.granter = reader.string(); break; case 2: - message.toAddress = reader.string(); - break; - case 3: - message.amount.push(coin_1.Coin.decode(reader, reader.uint32())); + message.grantee = reader.string(); break; default: reader.skipType(tag & 7); @@ -67501,46 +61776,49 @@ exports.MsgSend = { return message; }, fromJSON(object) { - return { - fromAddress: (0, helpers_1.isSet)(object.fromAddress) ? String(object.fromAddress) : "", - toAddress: (0, helpers_1.isSet)(object.toAddress) ? String(object.toAddress) : "", - amount: Array.isArray(object?.amount) ? object.amount.map((e) => coin_1.Coin.fromJSON(e)) : [], - }; + const obj = createBaseQueryAllowanceRequest(); + if ((0, helpers_1.isSet)(object.granter)) + obj.granter = String(object.granter); + if ((0, helpers_1.isSet)(object.grantee)) + obj.grantee = String(object.grantee); + return obj; }, toJSON(message) { const obj = {}; - message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress); - message.toAddress !== undefined && (obj.toAddress = message.toAddress); - if (message.amount) { - obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); - } - else { - obj.amount = []; - } + message.granter !== undefined && (obj.granter = message.granter); + message.grantee !== undefined && (obj.grantee = message.grantee); return obj; }, fromPartial(object) { - const message = createBaseMsgSend(); - message.fromAddress = object.fromAddress ?? ""; - message.toAddress = object.toAddress ?? ""; - message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || []; + const message = createBaseQueryAllowanceRequest(); + message.granter = object.granter ?? ""; + message.grantee = object.grantee ?? ""; return message; }, }; -function createBaseMsgSendResponse() { - return {}; +function createBaseQueryAllowanceResponse() { + return { + allowance: undefined, + }; } -exports.MsgSendResponse = { - encode(_, writer = _m0.Writer.create()) { +exports.QueryAllowanceResponse = { + typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowanceResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.allowance !== undefined) { + feegrant_1.Grant.encode(message.allowance, writer.uint32(10).fork()).ldelim(); + } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSendResponse(); + const message = createBaseQueryAllowanceResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.allowance = feegrant_1.Grant.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -67548,46 +61826,55 @@ exports.MsgSendResponse = { } return message; }, - fromJSON(_) { - return {}; + fromJSON(object) { + const obj = createBaseQueryAllowanceResponse(); + if ((0, helpers_1.isSet)(object.allowance)) + obj.allowance = feegrant_1.Grant.fromJSON(object.allowance); + return obj; }, - toJSON(_) { + toJSON(message) { const obj = {}; + message.allowance !== undefined && + (obj.allowance = message.allowance ? feegrant_1.Grant.toJSON(message.allowance) : undefined); return obj; }, - fromPartial(_) { - const message = createBaseMsgSendResponse(); + fromPartial(object) { + const message = createBaseQueryAllowanceResponse(); + if (object.allowance !== undefined && object.allowance !== null) { + message.allowance = feegrant_1.Grant.fromPartial(object.allowance); + } return message; }, }; -function createBaseMsgMultiSend() { +function createBaseQueryAllowancesRequest() { return { - inputs: [], - outputs: [], + grantee: "", + pagination: undefined, }; } -exports.MsgMultiSend = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.inputs) { - bank_1.Input.encode(v, writer.uint32(10).fork()).ldelim(); +exports.QueryAllowancesRequest = { + typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowancesRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.grantee !== "") { + writer.uint32(10).string(message.grantee); } - for (const v of message.outputs) { - bank_1.Output.encode(v, writer.uint32(18).fork()).ldelim(); + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgMultiSend(); + const message = createBaseQueryAllowancesRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.inputs.push(bank_1.Input.decode(reader, reader.uint32())); + message.grantee = reader.string(); break; case 2: - message.outputs.push(bank_1.Output.decode(reader, reader.uint32())); + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -67597,48 +61884,59 @@ exports.MsgMultiSend = { return message; }, fromJSON(object) { - return { - inputs: Array.isArray(object?.inputs) ? object.inputs.map((e) => bank_1.Input.fromJSON(e)) : [], - outputs: Array.isArray(object?.outputs) ? object.outputs.map((e) => bank_1.Output.fromJSON(e)) : [], - }; + const obj = createBaseQueryAllowancesRequest(); + if ((0, helpers_1.isSet)(object.grantee)) + obj.grantee = String(object.grantee); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; - if (message.inputs) { - obj.inputs = message.inputs.map((e) => (e ? bank_1.Input.toJSON(e) : undefined)); - } - else { - obj.inputs = []; - } - if (message.outputs) { - obj.outputs = message.outputs.map((e) => (e ? bank_1.Output.toJSON(e) : undefined)); - } - else { - obj.outputs = []; - } + message.grantee !== undefined && (obj.grantee = message.grantee); + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); return obj; }, fromPartial(object) { - const message = createBaseMsgMultiSend(); - message.inputs = object.inputs?.map((e) => bank_1.Input.fromPartial(e)) || []; - message.outputs = object.outputs?.map((e) => bank_1.Output.fromPartial(e)) || []; + const message = createBaseQueryAllowancesRequest(); + message.grantee = object.grantee ?? ""; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } return message; }, }; -function createBaseMsgMultiSendResponse() { - return {}; +function createBaseQueryAllowancesResponse() { + return { + allowances: [], + pagination: undefined, + }; } -exports.MsgMultiSendResponse = { - encode(_, writer = _m0.Writer.create()) { +exports.QueryAllowancesResponse = { + typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowancesResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.allowances) { + feegrant_1.Grant.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgMultiSendResponse(); + const message = createBaseQueryAllowancesResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.allowances.push(feegrant_1.Grant.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -67646,184 +61944,64 @@ exports.MsgMultiSendResponse = { } return message; }, - fromJSON(_) { - return {}; + fromJSON(object) { + const obj = createBaseQueryAllowancesResponse(); + if (Array.isArray(object?.allowances)) + obj.allowances = object.allowances.map((e) => feegrant_1.Grant.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; }, - toJSON(_) { + toJSON(message) { const obj = {}; + if (message.allowances) { + obj.allowances = message.allowances.map((e) => (e ? feegrant_1.Grant.toJSON(e) : undefined)); + } + else { + obj.allowances = []; + } + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); return obj; }, - fromPartial(_) { - const message = createBaseMsgMultiSendResponse(); + fromPartial(object) { + const message = createBaseQueryAllowancesResponse(); + message.allowances = object.allowances?.map((e) => feegrant_1.Grant.fromPartial(e)) || []; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } return message; }, }; -class MsgClientImpl { - constructor(rpc) { - this.rpc = rpc; - this.Send = this.Send.bind(this); - this.MultiSend = this.MultiSend.bind(this); - } - Send(request) { - const data = exports.MsgSend.encode(request).finish(); - const promise = this.rpc.request("cosmos.bank.v1beta1.Msg", "Send", data); - return promise.then((data) => exports.MsgSendResponse.decode(new _m0.Reader(data))); - } - MultiSend(request) { - const data = exports.MsgMultiSend.encode(request).finish(); - const promise = this.rpc.request("cosmos.bank.v1beta1.Msg", "MultiSend", data); - return promise.then((data) => exports.MsgMultiSendResponse.decode(new _m0.Reader(data))); - } -} -exports.MsgClientImpl = MsgClientImpl; -//# sourceMappingURL=tx.js.map - -/***/ }), - -/***/ "./node_modules/cosmjs-types/cosmos/base/abci/v1beta1/abci.js": -/*!********************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/base/abci/v1beta1/abci.js ***! - \********************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.SearchTxsResult = exports.TxMsgData = exports.MsgData = exports.SimulationResponse = exports.Result = exports.GasInfo = exports.Attribute = exports.StringEvent = exports.ABCIMessageLog = exports.TxResponse = exports.protobufPackage = void 0; -/* eslint-disable */ -const any_1 = __webpack_require__(/*! ../../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); -const types_1 = __webpack_require__(/*! ../../../../tendermint/abci/types */ "./node_modules/cosmjs-types/tendermint/abci/types.js"); -const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -exports.protobufPackage = "cosmos.base.abci.v1beta1"; -function createBaseTxResponse() { +function createBaseQueryAllowancesByGranterRequest() { return { - height: helpers_1.Long.ZERO, - txhash: "", - codespace: "", - code: 0, - data: "", - rawLog: "", - logs: [], - info: "", - gasWanted: helpers_1.Long.ZERO, - gasUsed: helpers_1.Long.ZERO, - tx: undefined, - timestamp: "", - events: [], + granter: "", + pagination: undefined, }; } -exports.TxResponse = { - encode(message, writer = _m0.Writer.create()) { - if (!message.height.isZero()) { - writer.uint32(8).int64(message.height); - } - if (message.txhash !== "") { - writer.uint32(18).string(message.txhash); - } - if (message.codespace !== "") { - writer.uint32(26).string(message.codespace); - } - if (message.code !== 0) { - writer.uint32(32).uint32(message.code); - } - if (message.data !== "") { - writer.uint32(42).string(message.data); - } - if (message.rawLog !== "") { - writer.uint32(50).string(message.rawLog); - } - for (const v of message.logs) { - exports.ABCIMessageLog.encode(v, writer.uint32(58).fork()).ldelim(); - } - if (message.info !== "") { - writer.uint32(66).string(message.info); - } - if (!message.gasWanted.isZero()) { - writer.uint32(72).int64(message.gasWanted); - } - if (!message.gasUsed.isZero()) { - writer.uint32(80).int64(message.gasUsed); - } - if (message.tx !== undefined) { - any_1.Any.encode(message.tx, writer.uint32(90).fork()).ldelim(); - } - if (message.timestamp !== "") { - writer.uint32(98).string(message.timestamp); +exports.QueryAllowancesByGranterRequest = { + typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowancesByGranterRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.granter !== "") { + writer.uint32(10).string(message.granter); } - for (const v of message.events) { - types_1.Event.encode(v, writer.uint32(106).fork()).ldelim(); + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTxResponse(); + const message = createBaseQueryAllowancesByGranterRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.height = reader.int64(); + message.granter = reader.string(); break; case 2: - message.txhash = reader.string(); - break; - case 3: - message.codespace = reader.string(); - break; - case 4: - message.code = reader.uint32(); - break; - case 5: - message.data = reader.string(); - break; - case 6: - message.rawLog = reader.string(); - break; - case 7: - message.logs.push(exports.ABCIMessageLog.decode(reader, reader.uint32())); - break; - case 8: - message.info = reader.string(); - break; - case 9: - message.gasWanted = reader.int64(); - break; - case 10: - message.gasUsed = reader.int64(); - break; - case 11: - message.tx = any_1.Any.decode(reader, reader.uint32()); - break; - case 12: - message.timestamp = reader.string(); - break; - case 13: - message.events.push(types_1.Event.decode(reader, reader.uint32())); + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -67833,107 +62011,58 @@ exports.TxResponse = { return message; }, fromJSON(object) { - return { - height: (0, helpers_1.isSet)(object.height) ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO, - txhash: (0, helpers_1.isSet)(object.txhash) ? String(object.txhash) : "", - codespace: (0, helpers_1.isSet)(object.codespace) ? String(object.codespace) : "", - code: (0, helpers_1.isSet)(object.code) ? Number(object.code) : 0, - data: (0, helpers_1.isSet)(object.data) ? String(object.data) : "", - rawLog: (0, helpers_1.isSet)(object.rawLog) ? String(object.rawLog) : "", - logs: Array.isArray(object?.logs) ? object.logs.map((e) => exports.ABCIMessageLog.fromJSON(e)) : [], - info: (0, helpers_1.isSet)(object.info) ? String(object.info) : "", - gasWanted: (0, helpers_1.isSet)(object.gasWanted) ? helpers_1.Long.fromValue(object.gasWanted) : helpers_1.Long.ZERO, - gasUsed: (0, helpers_1.isSet)(object.gasUsed) ? helpers_1.Long.fromValue(object.gasUsed) : helpers_1.Long.ZERO, - tx: (0, helpers_1.isSet)(object.tx) ? any_1.Any.fromJSON(object.tx) : undefined, - timestamp: (0, helpers_1.isSet)(object.timestamp) ? String(object.timestamp) : "", - events: Array.isArray(object?.events) ? object.events.map((e) => types_1.Event.fromJSON(e)) : [], - }; + const obj = createBaseQueryAllowancesByGranterRequest(); + if ((0, helpers_1.isSet)(object.granter)) + obj.granter = String(object.granter); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; - message.height !== undefined && (obj.height = (message.height || helpers_1.Long.ZERO).toString()); - message.txhash !== undefined && (obj.txhash = message.txhash); - message.codespace !== undefined && (obj.codespace = message.codespace); - message.code !== undefined && (obj.code = Math.round(message.code)); - message.data !== undefined && (obj.data = message.data); - message.rawLog !== undefined && (obj.rawLog = message.rawLog); - if (message.logs) { - obj.logs = message.logs.map((e) => (e ? exports.ABCIMessageLog.toJSON(e) : undefined)); - } - else { - obj.logs = []; - } - message.info !== undefined && (obj.info = message.info); - message.gasWanted !== undefined && (obj.gasWanted = (message.gasWanted || helpers_1.Long.ZERO).toString()); - message.gasUsed !== undefined && (obj.gasUsed = (message.gasUsed || helpers_1.Long.ZERO).toString()); - message.tx !== undefined && (obj.tx = message.tx ? any_1.Any.toJSON(message.tx) : undefined); - message.timestamp !== undefined && (obj.timestamp = message.timestamp); - if (message.events) { - obj.events = message.events.map((e) => (e ? types_1.Event.toJSON(e) : undefined)); - } - else { - obj.events = []; - } + message.granter !== undefined && (obj.granter = message.granter); + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); return obj; }, fromPartial(object) { - const message = createBaseTxResponse(); - message.height = - object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; - message.txhash = object.txhash ?? ""; - message.codespace = object.codespace ?? ""; - message.code = object.code ?? 0; - message.data = object.data ?? ""; - message.rawLog = object.rawLog ?? ""; - message.logs = object.logs?.map((e) => exports.ABCIMessageLog.fromPartial(e)) || []; - message.info = object.info ?? ""; - message.gasWanted = - object.gasWanted !== undefined && object.gasWanted !== null - ? helpers_1.Long.fromValue(object.gasWanted) - : helpers_1.Long.ZERO; - message.gasUsed = - object.gasUsed !== undefined && object.gasUsed !== null ? helpers_1.Long.fromValue(object.gasUsed) : helpers_1.Long.ZERO; - message.tx = object.tx !== undefined && object.tx !== null ? any_1.Any.fromPartial(object.tx) : undefined; - message.timestamp = object.timestamp ?? ""; - message.events = object.events?.map((e) => types_1.Event.fromPartial(e)) || []; + const message = createBaseQueryAllowancesByGranterRequest(); + message.granter = object.granter ?? ""; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } return message; }, }; -function createBaseABCIMessageLog() { +function createBaseQueryAllowancesByGranterResponse() { return { - msgIndex: 0, - log: "", - events: [], + allowances: [], + pagination: undefined, }; } -exports.ABCIMessageLog = { - encode(message, writer = _m0.Writer.create()) { - if (message.msgIndex !== 0) { - writer.uint32(8).uint32(message.msgIndex); - } - if (message.log !== "") { - writer.uint32(18).string(message.log); +exports.QueryAllowancesByGranterResponse = { + typeUrl: "/cosmos.feegrant.v1beta1.QueryAllowancesByGranterResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.allowances) { + feegrant_1.Grant.encode(v, writer.uint32(10).fork()).ldelim(); } - for (const v of message.events) { - exports.StringEvent.encode(v, writer.uint32(26).fork()).ldelim(); + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseABCIMessageLog(); + const message = createBaseQueryAllowancesByGranterResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.msgIndex = reader.uint32(); + message.allowances.push(feegrant_1.Grant.decode(reader, reader.uint32())); break; case 2: - message.log = reader.string(); - break; - case 3: - message.events.push(exports.StringEvent.decode(reader, reader.uint32())); + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -67943,60 +62072,113 @@ exports.ABCIMessageLog = { return message; }, fromJSON(object) { - return { - msgIndex: (0, helpers_1.isSet)(object.msgIndex) ? Number(object.msgIndex) : 0, - log: (0, helpers_1.isSet)(object.log) ? String(object.log) : "", - events: Array.isArray(object?.events) ? object.events.map((e) => exports.StringEvent.fromJSON(e)) : [], - }; + const obj = createBaseQueryAllowancesByGranterResponse(); + if (Array.isArray(object?.allowances)) + obj.allowances = object.allowances.map((e) => feegrant_1.Grant.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; - message.msgIndex !== undefined && (obj.msgIndex = Math.round(message.msgIndex)); - message.log !== undefined && (obj.log = message.log); - if (message.events) { - obj.events = message.events.map((e) => (e ? exports.StringEvent.toJSON(e) : undefined)); + if (message.allowances) { + obj.allowances = message.allowances.map((e) => (e ? feegrant_1.Grant.toJSON(e) : undefined)); } else { - obj.events = []; + obj.allowances = []; } + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); return obj; }, fromPartial(object) { - const message = createBaseABCIMessageLog(); - message.msgIndex = object.msgIndex ?? 0; - message.log = object.log ?? ""; - message.events = object.events?.map((e) => exports.StringEvent.fromPartial(e)) || []; + const message = createBaseQueryAllowancesByGranterResponse(); + message.allowances = object.allowances?.map((e) => feegrant_1.Grant.fromPartial(e)) || []; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } return message; }, }; -function createBaseStringEvent() { +class QueryClientImpl { + constructor(rpc) { + this.rpc = rpc; + this.Allowance = this.Allowance.bind(this); + this.Allowances = this.Allowances.bind(this); + this.AllowancesByGranter = this.AllowancesByGranter.bind(this); + } + Allowance(request) { + const data = exports.QueryAllowanceRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.feegrant.v1beta1.Query", "Allowance", data); + return promise.then((data) => exports.QueryAllowanceResponse.decode(new binary_1.BinaryReader(data))); + } + Allowances(request) { + const data = exports.QueryAllowancesRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.feegrant.v1beta1.Query", "Allowances", data); + return promise.then((data) => exports.QueryAllowancesResponse.decode(new binary_1.BinaryReader(data))); + } + AllowancesByGranter(request) { + const data = exports.QueryAllowancesByGranterRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.feegrant.v1beta1.Query", "AllowancesByGranter", data); + return promise.then((data) => exports.QueryAllowancesByGranterResponse.decode(new binary_1.BinaryReader(data))); + } +} +exports.QueryClientImpl = QueryClientImpl; +//# sourceMappingURL=query.js.map + +/***/ }), + +/***/ "./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/tx.js": +/*!*****************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/tx.js ***! + \*****************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.MsgClientImpl = exports.MsgRevokeAllowanceResponse = exports.MsgRevokeAllowance = exports.MsgGrantAllowanceResponse = exports.MsgGrantAllowance = exports.protobufPackage = void 0; +/* eslint-disable */ +const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "cosmos.feegrant.v1beta1"; +function createBaseMsgGrantAllowance() { return { - type: "", - attributes: [], + granter: "", + grantee: "", + allowance: undefined, }; } -exports.StringEvent = { - encode(message, writer = _m0.Writer.create()) { - if (message.type !== "") { - writer.uint32(10).string(message.type); +exports.MsgGrantAllowance = { + typeUrl: "/cosmos.feegrant.v1beta1.MsgGrantAllowance", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.granter !== "") { + writer.uint32(10).string(message.granter); } - for (const v of message.attributes) { - exports.Attribute.encode(v, writer.uint32(18).fork()).ldelim(); + if (message.grantee !== "") { + writer.uint32(18).string(message.grantee); + } + if (message.allowance !== undefined) { + any_1.Any.encode(message.allowance, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseStringEvent(); + const message = createBaseMsgGrantAllowance(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.type = reader.string(); + message.granter = reader.string(); break; case 2: - message.attributes.push(exports.Attribute.decode(reader, reader.uint32())); + message.grantee = reader.string(); + break; + case 3: + message.allowance = any_1.Any.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -68006,60 +62188,48 @@ exports.StringEvent = { return message; }, fromJSON(object) { - return { - type: (0, helpers_1.isSet)(object.type) ? String(object.type) : "", - attributes: Array.isArray(object?.attributes) - ? object.attributes.map((e) => exports.Attribute.fromJSON(e)) - : [], - }; + const obj = createBaseMsgGrantAllowance(); + if ((0, helpers_1.isSet)(object.granter)) + obj.granter = String(object.granter); + if ((0, helpers_1.isSet)(object.grantee)) + obj.grantee = String(object.grantee); + if ((0, helpers_1.isSet)(object.allowance)) + obj.allowance = any_1.Any.fromJSON(object.allowance); + return obj; }, toJSON(message) { const obj = {}; - message.type !== undefined && (obj.type = message.type); - if (message.attributes) { - obj.attributes = message.attributes.map((e) => (e ? exports.Attribute.toJSON(e) : undefined)); - } - else { - obj.attributes = []; - } + message.granter !== undefined && (obj.granter = message.granter); + message.grantee !== undefined && (obj.grantee = message.grantee); + message.allowance !== undefined && + (obj.allowance = message.allowance ? any_1.Any.toJSON(message.allowance) : undefined); return obj; }, fromPartial(object) { - const message = createBaseStringEvent(); - message.type = object.type ?? ""; - message.attributes = object.attributes?.map((e) => exports.Attribute.fromPartial(e)) || []; + const message = createBaseMsgGrantAllowance(); + message.granter = object.granter ?? ""; + message.grantee = object.grantee ?? ""; + if (object.allowance !== undefined && object.allowance !== null) { + message.allowance = any_1.Any.fromPartial(object.allowance); + } return message; }, }; -function createBaseAttribute() { - return { - key: "", - value: "", - }; +function createBaseMsgGrantAllowanceResponse() { + return {}; } -exports.Attribute = { - encode(message, writer = _m0.Writer.create()) { - if (message.key !== "") { - writer.uint32(10).string(message.key); - } - if (message.value !== "") { - writer.uint32(18).string(message.value); - } +exports.MsgGrantAllowanceResponse = { + typeUrl: "/cosmos.feegrant.v1beta1.MsgGrantAllowanceResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAttribute(); + const message = createBaseMsgGrantAllowanceResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.key = reader.string(); - break; - case 2: - message.value = reader.string(); - break; default: reader.skipType(tag & 7); break; @@ -68067,53 +62237,48 @@ exports.Attribute = { } return message; }, - fromJSON(object) { - return { - key: (0, helpers_1.isSet)(object.key) ? String(object.key) : "", - value: (0, helpers_1.isSet)(object.value) ? String(object.value) : "", - }; + fromJSON(_) { + const obj = createBaseMsgGrantAllowanceResponse(); + return obj; }, - toJSON(message) { + toJSON(_) { const obj = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); return obj; }, - fromPartial(object) { - const message = createBaseAttribute(); - message.key = object.key ?? ""; - message.value = object.value ?? ""; + fromPartial(_) { + const message = createBaseMsgGrantAllowanceResponse(); return message; }, }; -function createBaseGasInfo() { +function createBaseMsgRevokeAllowance() { return { - gasWanted: helpers_1.Long.UZERO, - gasUsed: helpers_1.Long.UZERO, + granter: "", + grantee: "", }; } -exports.GasInfo = { - encode(message, writer = _m0.Writer.create()) { - if (!message.gasWanted.isZero()) { - writer.uint32(8).uint64(message.gasWanted); +exports.MsgRevokeAllowance = { + typeUrl: "/cosmos.feegrant.v1beta1.MsgRevokeAllowance", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.granter !== "") { + writer.uint32(10).string(message.granter); } - if (!message.gasUsed.isZero()) { - writer.uint32(16).uint64(message.gasUsed); + if (message.grantee !== "") { + writer.uint32(18).string(message.grantee); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGasInfo(); + const message = createBaseMsgRevokeAllowance(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.gasWanted = reader.uint64(); + message.granter = reader.string(); break; case 2: - message.gasUsed = reader.uint64(); + message.grantee = reader.string(); break; default: reader.skipType(tag & 7); @@ -68123,64 +62288,41 @@ exports.GasInfo = { return message; }, fromJSON(object) { - return { - gasWanted: (0, helpers_1.isSet)(object.gasWanted) ? helpers_1.Long.fromValue(object.gasWanted) : helpers_1.Long.UZERO, - gasUsed: (0, helpers_1.isSet)(object.gasUsed) ? helpers_1.Long.fromValue(object.gasUsed) : helpers_1.Long.UZERO, - }; + const obj = createBaseMsgRevokeAllowance(); + if ((0, helpers_1.isSet)(object.granter)) + obj.granter = String(object.granter); + if ((0, helpers_1.isSet)(object.grantee)) + obj.grantee = String(object.grantee); + return obj; }, toJSON(message) { const obj = {}; - message.gasWanted !== undefined && (obj.gasWanted = (message.gasWanted || helpers_1.Long.UZERO).toString()); - message.gasUsed !== undefined && (obj.gasUsed = (message.gasUsed || helpers_1.Long.UZERO).toString()); + message.granter !== undefined && (obj.granter = message.granter); + message.grantee !== undefined && (obj.grantee = message.grantee); return obj; }, fromPartial(object) { - const message = createBaseGasInfo(); - message.gasWanted = - object.gasWanted !== undefined && object.gasWanted !== null - ? helpers_1.Long.fromValue(object.gasWanted) - : helpers_1.Long.UZERO; - message.gasUsed = - object.gasUsed !== undefined && object.gasUsed !== null ? helpers_1.Long.fromValue(object.gasUsed) : helpers_1.Long.UZERO; + const message = createBaseMsgRevokeAllowance(); + message.granter = object.granter ?? ""; + message.grantee = object.grantee ?? ""; return message; }, }; -function createBaseResult() { - return { - data: new Uint8Array(), - log: "", - events: [], - }; +function createBaseMsgRevokeAllowanceResponse() { + return {}; } -exports.Result = { - encode(message, writer = _m0.Writer.create()) { - if (message.data.length !== 0) { - writer.uint32(10).bytes(message.data); - } - if (message.log !== "") { - writer.uint32(18).string(message.log); - } - for (const v of message.events) { - types_1.Event.encode(v, writer.uint32(26).fork()).ldelim(); - } +exports.MsgRevokeAllowanceResponse = { + typeUrl: "/cosmos.feegrant.v1beta1.MsgRevokeAllowanceResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResult(); + const message = createBaseMsgRevokeAllowanceResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.data = reader.bytes(); - break; - case 2: - message.log = reader.string(); - break; - case 3: - message.events.push(types_1.Event.decode(reader, reader.uint32())); - break; default: reader.skipType(tag & 7); break; @@ -68188,62 +62330,224 @@ exports.Result = { } return message; }, - fromJSON(object) { - return { - data: (0, helpers_1.isSet)(object.data) ? (0, helpers_1.bytesFromBase64)(object.data) : new Uint8Array(), - log: (0, helpers_1.isSet)(object.log) ? String(object.log) : "", - events: Array.isArray(object?.events) ? object.events.map((e) => types_1.Event.fromJSON(e)) : [], - }; + fromJSON(_) { + const obj = createBaseMsgRevokeAllowanceResponse(); + return obj; }, - toJSON(message) { + toJSON(_) { const obj = {}; - message.data !== undefined && - (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array())); - message.log !== undefined && (obj.log = message.log); - if (message.events) { - obj.events = message.events.map((e) => (e ? types_1.Event.toJSON(e) : undefined)); - } - else { - obj.events = []; - } return obj; }, - fromPartial(object) { - const message = createBaseResult(); - message.data = object.data ?? new Uint8Array(); - message.log = object.log ?? ""; - message.events = object.events?.map((e) => types_1.Event.fromPartial(e)) || []; + fromPartial(_) { + const message = createBaseMsgRevokeAllowanceResponse(); return message; }, }; -function createBaseSimulationResponse() { +class MsgClientImpl { + constructor(rpc) { + this.rpc = rpc; + this.GrantAllowance = this.GrantAllowance.bind(this); + this.RevokeAllowance = this.RevokeAllowance.bind(this); + } + GrantAllowance(request) { + const data = exports.MsgGrantAllowance.encode(request).finish(); + const promise = this.rpc.request("cosmos.feegrant.v1beta1.Msg", "GrantAllowance", data); + return promise.then((data) => exports.MsgGrantAllowanceResponse.decode(new binary_1.BinaryReader(data))); + } + RevokeAllowance(request) { + const data = exports.MsgRevokeAllowance.encode(request).finish(); + const promise = this.rpc.request("cosmos.feegrant.v1beta1.Msg", "RevokeAllowance", data); + return promise.then((data) => exports.MsgRevokeAllowanceResponse.decode(new binary_1.BinaryReader(data))); + } +} +exports.MsgClientImpl = MsgClientImpl; +//# sourceMappingURL=tx.js.map + +/***/ }), + +/***/ "./node_modules/cosmjs-types/cosmos/gov/v1/gov.js": +/*!********************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/gov/v1/gov.js ***! + \********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Params = exports.TallyParams = exports.VotingParams = exports.DepositParams = exports.Vote = exports.TallyResult = exports.Proposal = exports.Deposit = exports.WeightedVoteOption = exports.proposalStatusToJSON = exports.proposalStatusFromJSON = exports.ProposalStatus = exports.voteOptionToJSON = exports.voteOptionFromJSON = exports.VoteOption = exports.protobufPackage = void 0; +/* eslint-disable */ +const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); +const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); +const timestamp_1 = __webpack_require__(/*! ../../../google/protobuf/timestamp */ "./node_modules/cosmjs-types/google/protobuf/timestamp.js"); +const duration_1 = __webpack_require__(/*! ../../../google/protobuf/duration */ "./node_modules/cosmjs-types/google/protobuf/duration.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "cosmos.gov.v1"; +/** VoteOption enumerates the valid vote options for a given governance proposal. */ +var VoteOption; +(function (VoteOption) { + /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */ + VoteOption[VoteOption["VOTE_OPTION_UNSPECIFIED"] = 0] = "VOTE_OPTION_UNSPECIFIED"; + /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */ + VoteOption[VoteOption["VOTE_OPTION_YES"] = 1] = "VOTE_OPTION_YES"; + /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */ + VoteOption[VoteOption["VOTE_OPTION_ABSTAIN"] = 2] = "VOTE_OPTION_ABSTAIN"; + /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */ + VoteOption[VoteOption["VOTE_OPTION_NO"] = 3] = "VOTE_OPTION_NO"; + /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */ + VoteOption[VoteOption["VOTE_OPTION_NO_WITH_VETO"] = 4] = "VOTE_OPTION_NO_WITH_VETO"; + VoteOption[VoteOption["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(VoteOption || (exports.VoteOption = VoteOption = {})); +function voteOptionFromJSON(object) { + switch (object) { + case 0: + case "VOTE_OPTION_UNSPECIFIED": + return VoteOption.VOTE_OPTION_UNSPECIFIED; + case 1: + case "VOTE_OPTION_YES": + return VoteOption.VOTE_OPTION_YES; + case 2: + case "VOTE_OPTION_ABSTAIN": + return VoteOption.VOTE_OPTION_ABSTAIN; + case 3: + case "VOTE_OPTION_NO": + return VoteOption.VOTE_OPTION_NO; + case 4: + case "VOTE_OPTION_NO_WITH_VETO": + return VoteOption.VOTE_OPTION_NO_WITH_VETO; + case -1: + case "UNRECOGNIZED": + default: + return VoteOption.UNRECOGNIZED; + } +} +exports.voteOptionFromJSON = voteOptionFromJSON; +function voteOptionToJSON(object) { + switch (object) { + case VoteOption.VOTE_OPTION_UNSPECIFIED: + return "VOTE_OPTION_UNSPECIFIED"; + case VoteOption.VOTE_OPTION_YES: + return "VOTE_OPTION_YES"; + case VoteOption.VOTE_OPTION_ABSTAIN: + return "VOTE_OPTION_ABSTAIN"; + case VoteOption.VOTE_OPTION_NO: + return "VOTE_OPTION_NO"; + case VoteOption.VOTE_OPTION_NO_WITH_VETO: + return "VOTE_OPTION_NO_WITH_VETO"; + case VoteOption.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} +exports.voteOptionToJSON = voteOptionToJSON; +/** ProposalStatus enumerates the valid statuses of a proposal. */ +var ProposalStatus; +(function (ProposalStatus) { + /** PROPOSAL_STATUS_UNSPECIFIED - PROPOSAL_STATUS_UNSPECIFIED defines the default proposal status. */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_UNSPECIFIED"] = 0] = "PROPOSAL_STATUS_UNSPECIFIED"; + /** + * PROPOSAL_STATUS_DEPOSIT_PERIOD - PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit + * period. + */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_DEPOSIT_PERIOD"] = 1] = "PROPOSAL_STATUS_DEPOSIT_PERIOD"; + /** + * PROPOSAL_STATUS_VOTING_PERIOD - PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting + * period. + */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_VOTING_PERIOD"] = 2] = "PROPOSAL_STATUS_VOTING_PERIOD"; + /** + * PROPOSAL_STATUS_PASSED - PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has + * passed. + */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_PASSED"] = 3] = "PROPOSAL_STATUS_PASSED"; + /** + * PROPOSAL_STATUS_REJECTED - PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has + * been rejected. + */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_REJECTED"] = 4] = "PROPOSAL_STATUS_REJECTED"; + /** + * PROPOSAL_STATUS_FAILED - PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has + * failed. + */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_FAILED"] = 5] = "PROPOSAL_STATUS_FAILED"; + ProposalStatus[ProposalStatus["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(ProposalStatus || (exports.ProposalStatus = ProposalStatus = {})); +function proposalStatusFromJSON(object) { + switch (object) { + case 0: + case "PROPOSAL_STATUS_UNSPECIFIED": + return ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED; + case 1: + case "PROPOSAL_STATUS_DEPOSIT_PERIOD": + return ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD; + case 2: + case "PROPOSAL_STATUS_VOTING_PERIOD": + return ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD; + case 3: + case "PROPOSAL_STATUS_PASSED": + return ProposalStatus.PROPOSAL_STATUS_PASSED; + case 4: + case "PROPOSAL_STATUS_REJECTED": + return ProposalStatus.PROPOSAL_STATUS_REJECTED; + case 5: + case "PROPOSAL_STATUS_FAILED": + return ProposalStatus.PROPOSAL_STATUS_FAILED; + case -1: + case "UNRECOGNIZED": + default: + return ProposalStatus.UNRECOGNIZED; + } +} +exports.proposalStatusFromJSON = proposalStatusFromJSON; +function proposalStatusToJSON(object) { + switch (object) { + case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED: + return "PROPOSAL_STATUS_UNSPECIFIED"; + case ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD: + return "PROPOSAL_STATUS_DEPOSIT_PERIOD"; + case ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD: + return "PROPOSAL_STATUS_VOTING_PERIOD"; + case ProposalStatus.PROPOSAL_STATUS_PASSED: + return "PROPOSAL_STATUS_PASSED"; + case ProposalStatus.PROPOSAL_STATUS_REJECTED: + return "PROPOSAL_STATUS_REJECTED"; + case ProposalStatus.PROPOSAL_STATUS_FAILED: + return "PROPOSAL_STATUS_FAILED"; + case ProposalStatus.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} +exports.proposalStatusToJSON = proposalStatusToJSON; +function createBaseWeightedVoteOption() { return { - gasInfo: undefined, - result: undefined, + option: 0, + weight: "", }; } -exports.SimulationResponse = { - encode(message, writer = _m0.Writer.create()) { - if (message.gasInfo !== undefined) { - exports.GasInfo.encode(message.gasInfo, writer.uint32(10).fork()).ldelim(); +exports.WeightedVoteOption = { + typeUrl: "/cosmos.gov.v1.WeightedVoteOption", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.option !== 0) { + writer.uint32(8).int32(message.option); } - if (message.result !== undefined) { - exports.Result.encode(message.result, writer.uint32(18).fork()).ldelim(); + if (message.weight !== "") { + writer.uint32(18).string(message.weight); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSimulationResponse(); + const message = createBaseWeightedVoteOption(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.gasInfo = exports.GasInfo.decode(reader, reader.uint32()); + message.option = reader.int32(); break; case 2: - message.result = exports.Result.decode(reader, reader.uint32()); + message.weight = reader.string(); break; default: reader.skipType(tag & 7); @@ -68253,106 +62557,62 @@ exports.SimulationResponse = { return message; }, fromJSON(object) { - return { - gasInfo: (0, helpers_1.isSet)(object.gasInfo) ? exports.GasInfo.fromJSON(object.gasInfo) : undefined, - result: (0, helpers_1.isSet)(object.result) ? exports.Result.fromJSON(object.result) : undefined, - }; + const obj = createBaseWeightedVoteOption(); + if ((0, helpers_1.isSet)(object.option)) + obj.option = voteOptionFromJSON(object.option); + if ((0, helpers_1.isSet)(object.weight)) + obj.weight = String(object.weight); + return obj; }, toJSON(message) { const obj = {}; - message.gasInfo !== undefined && - (obj.gasInfo = message.gasInfo ? exports.GasInfo.toJSON(message.gasInfo) : undefined); - message.result !== undefined && (obj.result = message.result ? exports.Result.toJSON(message.result) : undefined); + message.option !== undefined && (obj.option = voteOptionToJSON(message.option)); + message.weight !== undefined && (obj.weight = message.weight); return obj; }, fromPartial(object) { - const message = createBaseSimulationResponse(); - message.gasInfo = - object.gasInfo !== undefined && object.gasInfo !== null - ? exports.GasInfo.fromPartial(object.gasInfo) - : undefined; - message.result = - object.result !== undefined && object.result !== null ? exports.Result.fromPartial(object.result) : undefined; + const message = createBaseWeightedVoteOption(); + message.option = object.option ?? 0; + message.weight = object.weight ?? ""; return message; }, }; -function createBaseMsgData() { +function createBaseDeposit() { return { - msgType: "", - data: new Uint8Array(), + proposalId: BigInt(0), + depositor: "", + amount: [], }; } -exports.MsgData = { - encode(message, writer = _m0.Writer.create()) { - if (message.msgType !== "") { - writer.uint32(10).string(message.msgType); +exports.Deposit = { + typeUrl: "/cosmos.gov.v1.Deposit", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { + writer.uint32(8).uint64(message.proposalId); } - if (message.data.length !== 0) { - writer.uint32(18).bytes(message.data); + if (message.depositor !== "") { + writer.uint32(18).string(message.depositor); + } + for (const v of message.amount) { + coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgData(); + const message = createBaseDeposit(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.msgType = reader.string(); + message.proposalId = reader.uint64(); break; case 2: - message.data = reader.bytes(); - break; - default: - reader.skipType(tag & 7); + message.depositor = reader.string(); break; - } - } - return message; - }, - fromJSON(object) { - return { - msgType: (0, helpers_1.isSet)(object.msgType) ? String(object.msgType) : "", - data: (0, helpers_1.isSet)(object.data) ? (0, helpers_1.bytesFromBase64)(object.data) : new Uint8Array(), - }; - }, - toJSON(message) { - const obj = {}; - message.msgType !== undefined && (obj.msgType = message.msgType); - message.data !== undefined && - (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array())); - return obj; - }, - fromPartial(object) { - const message = createBaseMsgData(); - message.msgType = object.msgType ?? ""; - message.data = object.data ?? new Uint8Array(); - return message; - }, -}; -function createBaseTxMsgData() { - return { - data: [], - }; -} -exports.TxMsgData = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.data) { - exports.MsgData.encode(v, writer.uint32(10).fork()).ldelim(); - } - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTxMsgData(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.data.push(exports.MsgData.decode(reader, reader.uint32())); + case 3: + message.amount.push(coin_1.Coin.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -68362,82 +62622,143 @@ exports.TxMsgData = { return message; }, fromJSON(object) { - return { - data: Array.isArray(object?.data) ? object.data.map((e) => exports.MsgData.fromJSON(e)) : [], - }; + const obj = createBaseDeposit(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + if ((0, helpers_1.isSet)(object.depositor)) + obj.depositor = String(object.depositor); + if (Array.isArray(object?.amount)) + obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - if (message.data) { - obj.data = message.data.map((e) => (e ? exports.MsgData.toJSON(e) : undefined)); + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); + message.depositor !== undefined && (obj.depositor = message.depositor); + if (message.amount) { + obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); } else { - obj.data = []; + obj.amount = []; } return obj; }, fromPartial(object) { - const message = createBaseTxMsgData(); - message.data = object.data?.map((e) => exports.MsgData.fromPartial(e)) || []; + const message = createBaseDeposit(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); + } + message.depositor = object.depositor ?? ""; + message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || []; return message; }, }; -function createBaseSearchTxsResult() { +function createBaseProposal() { return { - totalCount: helpers_1.Long.UZERO, - count: helpers_1.Long.UZERO, - pageNumber: helpers_1.Long.UZERO, - pageTotal: helpers_1.Long.UZERO, - limit: helpers_1.Long.UZERO, - txs: [], + id: BigInt(0), + messages: [], + status: 0, + finalTallyResult: undefined, + submitTime: undefined, + depositEndTime: undefined, + totalDeposit: [], + votingStartTime: undefined, + votingEndTime: undefined, + metadata: "", + title: "", + summary: "", + proposer: "", }; } -exports.SearchTxsResult = { - encode(message, writer = _m0.Writer.create()) { - if (!message.totalCount.isZero()) { - writer.uint32(8).uint64(message.totalCount); +exports.Proposal = { + typeUrl: "/cosmos.gov.v1.Proposal", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.id !== BigInt(0)) { + writer.uint32(8).uint64(message.id); } - if (!message.count.isZero()) { - writer.uint32(16).uint64(message.count); + for (const v of message.messages) { + any_1.Any.encode(v, writer.uint32(18).fork()).ldelim(); } - if (!message.pageNumber.isZero()) { - writer.uint32(24).uint64(message.pageNumber); + if (message.status !== 0) { + writer.uint32(24).int32(message.status); } - if (!message.pageTotal.isZero()) { - writer.uint32(32).uint64(message.pageTotal); + if (message.finalTallyResult !== undefined) { + exports.TallyResult.encode(message.finalTallyResult, writer.uint32(34).fork()).ldelim(); } - if (!message.limit.isZero()) { - writer.uint32(40).uint64(message.limit); + if (message.submitTime !== undefined) { + timestamp_1.Timestamp.encode(message.submitTime, writer.uint32(42).fork()).ldelim(); } - for (const v of message.txs) { - exports.TxResponse.encode(v, writer.uint32(50).fork()).ldelim(); + if (message.depositEndTime !== undefined) { + timestamp_1.Timestamp.encode(message.depositEndTime, writer.uint32(50).fork()).ldelim(); + } + for (const v of message.totalDeposit) { + coin_1.Coin.encode(v, writer.uint32(58).fork()).ldelim(); + } + if (message.votingStartTime !== undefined) { + timestamp_1.Timestamp.encode(message.votingStartTime, writer.uint32(66).fork()).ldelim(); + } + if (message.votingEndTime !== undefined) { + timestamp_1.Timestamp.encode(message.votingEndTime, writer.uint32(74).fork()).ldelim(); + } + if (message.metadata !== "") { + writer.uint32(82).string(message.metadata); + } + if (message.title !== "") { + writer.uint32(90).string(message.title); + } + if (message.summary !== "") { + writer.uint32(98).string(message.summary); + } + if (message.proposer !== "") { + writer.uint32(106).string(message.proposer); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSearchTxsResult(); + const message = createBaseProposal(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.totalCount = reader.uint64(); + message.id = reader.uint64(); break; case 2: - message.count = reader.uint64(); + message.messages.push(any_1.Any.decode(reader, reader.uint32())); break; case 3: - message.pageNumber = reader.uint64(); + message.status = reader.int32(); break; case 4: - message.pageTotal = reader.uint64(); + message.finalTallyResult = exports.TallyResult.decode(reader, reader.uint32()); break; case 5: - message.limit = reader.uint64(); + message.submitTime = timestamp_1.Timestamp.decode(reader, reader.uint32()); break; case 6: - message.txs.push(exports.TxResponse.decode(reader, reader.uint32())); + message.depositEndTime = timestamp_1.Timestamp.decode(reader, reader.uint32()); + break; + case 7: + message.totalDeposit.push(coin_1.Coin.decode(reader, reader.uint32())); + break; + case 8: + message.votingStartTime = timestamp_1.Timestamp.decode(reader, reader.uint32()); + break; + case 9: + message.votingEndTime = timestamp_1.Timestamp.decode(reader, reader.uint32()); + break; + case 10: + message.metadata = reader.string(); + break; + case 11: + message.title = reader.string(); + break; + case 12: + message.summary = reader.string(); + break; + case 13: + message.proposer = reader.string(); break; default: reader.skipType(tag & 7); @@ -68447,142 +62768,141 @@ exports.SearchTxsResult = { return message; }, fromJSON(object) { - return { - totalCount: (0, helpers_1.isSet)(object.totalCount) ? helpers_1.Long.fromValue(object.totalCount) : helpers_1.Long.UZERO, - count: (0, helpers_1.isSet)(object.count) ? helpers_1.Long.fromValue(object.count) : helpers_1.Long.UZERO, - pageNumber: (0, helpers_1.isSet)(object.pageNumber) ? helpers_1.Long.fromValue(object.pageNumber) : helpers_1.Long.UZERO, - pageTotal: (0, helpers_1.isSet)(object.pageTotal) ? helpers_1.Long.fromValue(object.pageTotal) : helpers_1.Long.UZERO, - limit: (0, helpers_1.isSet)(object.limit) ? helpers_1.Long.fromValue(object.limit) : helpers_1.Long.UZERO, - txs: Array.isArray(object?.txs) ? object.txs.map((e) => exports.TxResponse.fromJSON(e)) : [], - }; + const obj = createBaseProposal(); + if ((0, helpers_1.isSet)(object.id)) + obj.id = BigInt(object.id.toString()); + if (Array.isArray(object?.messages)) + obj.messages = object.messages.map((e) => any_1.Any.fromJSON(e)); + if ((0, helpers_1.isSet)(object.status)) + obj.status = proposalStatusFromJSON(object.status); + if ((0, helpers_1.isSet)(object.finalTallyResult)) + obj.finalTallyResult = exports.TallyResult.fromJSON(object.finalTallyResult); + if ((0, helpers_1.isSet)(object.submitTime)) + obj.submitTime = (0, helpers_1.fromJsonTimestamp)(object.submitTime); + if ((0, helpers_1.isSet)(object.depositEndTime)) + obj.depositEndTime = (0, helpers_1.fromJsonTimestamp)(object.depositEndTime); + if (Array.isArray(object?.totalDeposit)) + obj.totalDeposit = object.totalDeposit.map((e) => coin_1.Coin.fromJSON(e)); + if ((0, helpers_1.isSet)(object.votingStartTime)) + obj.votingStartTime = (0, helpers_1.fromJsonTimestamp)(object.votingStartTime); + if ((0, helpers_1.isSet)(object.votingEndTime)) + obj.votingEndTime = (0, helpers_1.fromJsonTimestamp)(object.votingEndTime); + if ((0, helpers_1.isSet)(object.metadata)) + obj.metadata = String(object.metadata); + if ((0, helpers_1.isSet)(object.title)) + obj.title = String(object.title); + if ((0, helpers_1.isSet)(object.summary)) + obj.summary = String(object.summary); + if ((0, helpers_1.isSet)(object.proposer)) + obj.proposer = String(object.proposer); + return obj; }, toJSON(message) { const obj = {}; - message.totalCount !== undefined && (obj.totalCount = (message.totalCount || helpers_1.Long.UZERO).toString()); - message.count !== undefined && (obj.count = (message.count || helpers_1.Long.UZERO).toString()); - message.pageNumber !== undefined && (obj.pageNumber = (message.pageNumber || helpers_1.Long.UZERO).toString()); - message.pageTotal !== undefined && (obj.pageTotal = (message.pageTotal || helpers_1.Long.UZERO).toString()); - message.limit !== undefined && (obj.limit = (message.limit || helpers_1.Long.UZERO).toString()); - if (message.txs) { - obj.txs = message.txs.map((e) => (e ? exports.TxResponse.toJSON(e) : undefined)); + message.id !== undefined && (obj.id = (message.id || BigInt(0)).toString()); + if (message.messages) { + obj.messages = message.messages.map((e) => (e ? any_1.Any.toJSON(e) : undefined)); } else { - obj.txs = []; + obj.messages = []; + } + message.status !== undefined && (obj.status = proposalStatusToJSON(message.status)); + message.finalTallyResult !== undefined && + (obj.finalTallyResult = message.finalTallyResult + ? exports.TallyResult.toJSON(message.finalTallyResult) + : undefined); + message.submitTime !== undefined && (obj.submitTime = (0, helpers_1.fromTimestamp)(message.submitTime).toISOString()); + message.depositEndTime !== undefined && + (obj.depositEndTime = (0, helpers_1.fromTimestamp)(message.depositEndTime).toISOString()); + if (message.totalDeposit) { + obj.totalDeposit = message.totalDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + } + else { + obj.totalDeposit = []; } + message.votingStartTime !== undefined && + (obj.votingStartTime = (0, helpers_1.fromTimestamp)(message.votingStartTime).toISOString()); + message.votingEndTime !== undefined && + (obj.votingEndTime = (0, helpers_1.fromTimestamp)(message.votingEndTime).toISOString()); + message.metadata !== undefined && (obj.metadata = message.metadata); + message.title !== undefined && (obj.title = message.title); + message.summary !== undefined && (obj.summary = message.summary); + message.proposer !== undefined && (obj.proposer = message.proposer); return obj; }, fromPartial(object) { - const message = createBaseSearchTxsResult(); - message.totalCount = - object.totalCount !== undefined && object.totalCount !== null - ? helpers_1.Long.fromValue(object.totalCount) - : helpers_1.Long.UZERO; - message.count = - object.count !== undefined && object.count !== null ? helpers_1.Long.fromValue(object.count) : helpers_1.Long.UZERO; - message.pageNumber = - object.pageNumber !== undefined && object.pageNumber !== null - ? helpers_1.Long.fromValue(object.pageNumber) - : helpers_1.Long.UZERO; - message.pageTotal = - object.pageTotal !== undefined && object.pageTotal !== null - ? helpers_1.Long.fromValue(object.pageTotal) - : helpers_1.Long.UZERO; - message.limit = - object.limit !== undefined && object.limit !== null ? helpers_1.Long.fromValue(object.limit) : helpers_1.Long.UZERO; - message.txs = object.txs?.map((e) => exports.TxResponse.fromPartial(e)) || []; + const message = createBaseProposal(); + if (object.id !== undefined && object.id !== null) { + message.id = BigInt(object.id.toString()); + } + message.messages = object.messages?.map((e) => any_1.Any.fromPartial(e)) || []; + message.status = object.status ?? 0; + if (object.finalTallyResult !== undefined && object.finalTallyResult !== null) { + message.finalTallyResult = exports.TallyResult.fromPartial(object.finalTallyResult); + } + if (object.submitTime !== undefined && object.submitTime !== null) { + message.submitTime = timestamp_1.Timestamp.fromPartial(object.submitTime); + } + if (object.depositEndTime !== undefined && object.depositEndTime !== null) { + message.depositEndTime = timestamp_1.Timestamp.fromPartial(object.depositEndTime); + } + message.totalDeposit = object.totalDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || []; + if (object.votingStartTime !== undefined && object.votingStartTime !== null) { + message.votingStartTime = timestamp_1.Timestamp.fromPartial(object.votingStartTime); + } + if (object.votingEndTime !== undefined && object.votingEndTime !== null) { + message.votingEndTime = timestamp_1.Timestamp.fromPartial(object.votingEndTime); + } + message.metadata = object.metadata ?? ""; + message.title = object.title ?? ""; + message.summary = object.summary ?? ""; + message.proposer = object.proposer ?? ""; return message; }, }; -//# sourceMappingURL=abci.js.map - -/***/ }), - -/***/ "./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js": -/*!***************************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js ***! - \***************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.PageResponse = exports.PageRequest = exports.protobufPackage = void 0; -/* eslint-disable */ -const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -exports.protobufPackage = "cosmos.base.query.v1beta1"; -function createBasePageRequest() { +function createBaseTallyResult() { return { - key: new Uint8Array(), - offset: helpers_1.Long.UZERO, - limit: helpers_1.Long.UZERO, - countTotal: false, - reverse: false, + yesCount: "", + abstainCount: "", + noCount: "", + noWithVetoCount: "", }; } -exports.PageRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); - } - if (!message.offset.isZero()) { - writer.uint32(16).uint64(message.offset); +exports.TallyResult = { + typeUrl: "/cosmos.gov.v1.TallyResult", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.yesCount !== "") { + writer.uint32(10).string(message.yesCount); } - if (!message.limit.isZero()) { - writer.uint32(24).uint64(message.limit); + if (message.abstainCount !== "") { + writer.uint32(18).string(message.abstainCount); } - if (message.countTotal === true) { - writer.uint32(32).bool(message.countTotal); + if (message.noCount !== "") { + writer.uint32(26).string(message.noCount); } - if (message.reverse === true) { - writer.uint32(40).bool(message.reverse); + if (message.noWithVetoCount !== "") { + writer.uint32(34).string(message.noWithVetoCount); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePageRequest(); + const message = createBaseTallyResult(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.key = reader.bytes(); + message.yesCount = reader.string(); break; case 2: - message.offset = reader.uint64(); + message.abstainCount = reader.string(); break; case 3: - message.limit = reader.uint64(); + message.noCount = reader.string(); break; case 4: - message.countTotal = reader.bool(); - break; - case 5: - message.reverse = reader.bool(); + message.noWithVetoCount = reader.string(); break; default: reader.skipType(tag & 7); @@ -68592,64 +62912,77 @@ exports.PageRequest = { return message; }, fromJSON(object) { - return { - key: (0, helpers_1.isSet)(object.key) ? (0, helpers_1.bytesFromBase64)(object.key) : new Uint8Array(), - offset: (0, helpers_1.isSet)(object.offset) ? helpers_1.Long.fromValue(object.offset) : helpers_1.Long.UZERO, - limit: (0, helpers_1.isSet)(object.limit) ? helpers_1.Long.fromValue(object.limit) : helpers_1.Long.UZERO, - countTotal: (0, helpers_1.isSet)(object.countTotal) ? Boolean(object.countTotal) : false, - reverse: (0, helpers_1.isSet)(object.reverse) ? Boolean(object.reverse) : false, - }; + const obj = createBaseTallyResult(); + if ((0, helpers_1.isSet)(object.yesCount)) + obj.yesCount = String(object.yesCount); + if ((0, helpers_1.isSet)(object.abstainCount)) + obj.abstainCount = String(object.abstainCount); + if ((0, helpers_1.isSet)(object.noCount)) + obj.noCount = String(object.noCount); + if ((0, helpers_1.isSet)(object.noWithVetoCount)) + obj.noWithVetoCount = String(object.noWithVetoCount); + return obj; }, toJSON(message) { const obj = {}; - message.key !== undefined && - (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array())); - message.offset !== undefined && (obj.offset = (message.offset || helpers_1.Long.UZERO).toString()); - message.limit !== undefined && (obj.limit = (message.limit || helpers_1.Long.UZERO).toString()); - message.countTotal !== undefined && (obj.countTotal = message.countTotal); - message.reverse !== undefined && (obj.reverse = message.reverse); + message.yesCount !== undefined && (obj.yesCount = message.yesCount); + message.abstainCount !== undefined && (obj.abstainCount = message.abstainCount); + message.noCount !== undefined && (obj.noCount = message.noCount); + message.noWithVetoCount !== undefined && (obj.noWithVetoCount = message.noWithVetoCount); return obj; }, fromPartial(object) { - const message = createBasePageRequest(); - message.key = object.key ?? new Uint8Array(); - message.offset = - object.offset !== undefined && object.offset !== null ? helpers_1.Long.fromValue(object.offset) : helpers_1.Long.UZERO; - message.limit = - object.limit !== undefined && object.limit !== null ? helpers_1.Long.fromValue(object.limit) : helpers_1.Long.UZERO; - message.countTotal = object.countTotal ?? false; - message.reverse = object.reverse ?? false; + const message = createBaseTallyResult(); + message.yesCount = object.yesCount ?? ""; + message.abstainCount = object.abstainCount ?? ""; + message.noCount = object.noCount ?? ""; + message.noWithVetoCount = object.noWithVetoCount ?? ""; return message; }, }; -function createBasePageResponse() { +function createBaseVote() { return { - nextKey: new Uint8Array(), - total: helpers_1.Long.UZERO, + proposalId: BigInt(0), + voter: "", + options: [], + metadata: "", }; } -exports.PageResponse = { - encode(message, writer = _m0.Writer.create()) { - if (message.nextKey.length !== 0) { - writer.uint32(10).bytes(message.nextKey); +exports.Vote = { + typeUrl: "/cosmos.gov.v1.Vote", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { + writer.uint32(8).uint64(message.proposalId); } - if (!message.total.isZero()) { - writer.uint32(16).uint64(message.total); + if (message.voter !== "") { + writer.uint32(18).string(message.voter); + } + for (const v of message.options) { + exports.WeightedVoteOption.encode(v, writer.uint32(34).fork()).ldelim(); + } + if (message.metadata !== "") { + writer.uint32(42).string(message.metadata); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePageResponse(); + const message = createBaseVote(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.nextKey = reader.bytes(); + message.proposalId = reader.uint64(); break; case 2: - message.total = reader.uint64(); + message.voter = reader.string(); + break; + case 4: + message.options.push(exports.WeightedVoteOption.decode(reader, reader.uint32())); + break; + case 5: + message.metadata = reader.string(); break; default: reader.skipType(tag & 7); @@ -68659,95 +62992,70 @@ exports.PageResponse = { return message; }, fromJSON(object) { - return { - nextKey: (0, helpers_1.isSet)(object.nextKey) ? (0, helpers_1.bytesFromBase64)(object.nextKey) : new Uint8Array(), - total: (0, helpers_1.isSet)(object.total) ? helpers_1.Long.fromValue(object.total) : helpers_1.Long.UZERO, - }; + const obj = createBaseVote(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + if ((0, helpers_1.isSet)(object.voter)) + obj.voter = String(object.voter); + if (Array.isArray(object?.options)) + obj.options = object.options.map((e) => exports.WeightedVoteOption.fromJSON(e)); + if ((0, helpers_1.isSet)(object.metadata)) + obj.metadata = String(object.metadata); + return obj; }, toJSON(message) { const obj = {}; - message.nextKey !== undefined && - (obj.nextKey = (0, helpers_1.base64FromBytes)(message.nextKey !== undefined ? message.nextKey : new Uint8Array())); - message.total !== undefined && (obj.total = (message.total || helpers_1.Long.UZERO).toString()); + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); + message.voter !== undefined && (obj.voter = message.voter); + if (message.options) { + obj.options = message.options.map((e) => (e ? exports.WeightedVoteOption.toJSON(e) : undefined)); + } + else { + obj.options = []; + } + message.metadata !== undefined && (obj.metadata = message.metadata); return obj; }, fromPartial(object) { - const message = createBasePageResponse(); - message.nextKey = object.nextKey ?? new Uint8Array(); - message.total = - object.total !== undefined && object.total !== null ? helpers_1.Long.fromValue(object.total) : helpers_1.Long.UZERO; + const message = createBaseVote(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); + } + message.voter = object.voter ?? ""; + message.options = object.options?.map((e) => exports.WeightedVoteOption.fromPartial(e)) || []; + message.metadata = object.metadata ?? ""; return message; }, }; -//# sourceMappingURL=pagination.js.map - -/***/ }), - -/***/ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js": -/*!***************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js ***! - \***************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.DecProto = exports.IntProto = exports.DecCoin = exports.Coin = exports.protobufPackage = void 0; -/* eslint-disable */ -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -exports.protobufPackage = "cosmos.base.v1beta1"; -function createBaseCoin() { +function createBaseDepositParams() { return { - denom: "", - amount: "", + minDeposit: [], + maxDepositPeriod: undefined, }; } -exports.Coin = { - encode(message, writer = _m0.Writer.create()) { - if (message.denom !== "") { - writer.uint32(10).string(message.denom); +exports.DepositParams = { + typeUrl: "/cosmos.gov.v1.DepositParams", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.minDeposit) { + coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim(); } - if (message.amount !== "") { - writer.uint32(18).string(message.amount); + if (message.maxDepositPeriod !== undefined) { + duration_1.Duration.encode(message.maxDepositPeriod, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCoin(); + const message = createBaseDepositParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.denom = reader.string(); + message.minDeposit.push(coin_1.Coin.decode(reader, reader.uint32())); break; case 2: - message.amount = reader.string(); + message.maxDepositPeriod = duration_1.Duration.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -68757,52 +63065,58 @@ exports.Coin = { return message; }, fromJSON(object) { - return { - denom: (0, helpers_1.isSet)(object.denom) ? String(object.denom) : "", - amount: (0, helpers_1.isSet)(object.amount) ? String(object.amount) : "", - }; + const obj = createBaseDepositParams(); + if (Array.isArray(object?.minDeposit)) + obj.minDeposit = object.minDeposit.map((e) => coin_1.Coin.fromJSON(e)); + if ((0, helpers_1.isSet)(object.maxDepositPeriod)) + obj.maxDepositPeriod = duration_1.Duration.fromJSON(object.maxDepositPeriod); + return obj; }, toJSON(message) { const obj = {}; - message.denom !== undefined && (obj.denom = message.denom); - message.amount !== undefined && (obj.amount = message.amount); + if (message.minDeposit) { + obj.minDeposit = message.minDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + } + else { + obj.minDeposit = []; + } + message.maxDepositPeriod !== undefined && + (obj.maxDepositPeriod = message.maxDepositPeriod + ? duration_1.Duration.toJSON(message.maxDepositPeriod) + : undefined); return obj; }, fromPartial(object) { - const message = createBaseCoin(); - message.denom = object.denom ?? ""; - message.amount = object.amount ?? ""; + const message = createBaseDepositParams(); + message.minDeposit = object.minDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || []; + if (object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null) { + message.maxDepositPeriod = duration_1.Duration.fromPartial(object.maxDepositPeriod); + } return message; }, }; -function createBaseDecCoin() { +function createBaseVotingParams() { return { - denom: "", - amount: "", + votingPeriod: undefined, }; } -exports.DecCoin = { - encode(message, writer = _m0.Writer.create()) { - if (message.denom !== "") { - writer.uint32(10).string(message.denom); - } - if (message.amount !== "") { - writer.uint32(18).string(message.amount); +exports.VotingParams = { + typeUrl: "/cosmos.gov.v1.VotingParams", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.votingPeriod !== undefined) { + duration_1.Duration.encode(message.votingPeriod, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDecCoin(); + const message = createBaseVotingParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.denom = reader.string(); - break; - case 2: - message.amount = reader.string(); + message.votingPeriod = duration_1.Duration.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -68812,45 +63126,61 @@ exports.DecCoin = { return message; }, fromJSON(object) { - return { - denom: (0, helpers_1.isSet)(object.denom) ? String(object.denom) : "", - amount: (0, helpers_1.isSet)(object.amount) ? String(object.amount) : "", - }; + const obj = createBaseVotingParams(); + if ((0, helpers_1.isSet)(object.votingPeriod)) + obj.votingPeriod = duration_1.Duration.fromJSON(object.votingPeriod); + return obj; }, toJSON(message) { const obj = {}; - message.denom !== undefined && (obj.denom = message.denom); - message.amount !== undefined && (obj.amount = message.amount); + message.votingPeriod !== undefined && + (obj.votingPeriod = message.votingPeriod ? duration_1.Duration.toJSON(message.votingPeriod) : undefined); return obj; }, fromPartial(object) { - const message = createBaseDecCoin(); - message.denom = object.denom ?? ""; - message.amount = object.amount ?? ""; + const message = createBaseVotingParams(); + if (object.votingPeriod !== undefined && object.votingPeriod !== null) { + message.votingPeriod = duration_1.Duration.fromPartial(object.votingPeriod); + } return message; }, }; -function createBaseIntProto() { +function createBaseTallyParams() { return { - int: "", + quorum: "", + threshold: "", + vetoThreshold: "", }; } -exports.IntProto = { - encode(message, writer = _m0.Writer.create()) { - if (message.int !== "") { - writer.uint32(10).string(message.int); +exports.TallyParams = { + typeUrl: "/cosmos.gov.v1.TallyParams", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.quorum !== "") { + writer.uint32(10).string(message.quorum); + } + if (message.threshold !== "") { + writer.uint32(18).string(message.threshold); + } + if (message.vetoThreshold !== "") { + writer.uint32(26).string(message.vetoThreshold); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseIntProto(); + const message = createBaseTallyParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.int = reader.string(); + message.quorum = reader.string(); + break; + case 2: + message.threshold = reader.string(); + break; + case 3: + message.vetoThreshold = reader.string(); break; default: reader.skipType(tag & 7); @@ -68860,42 +63190,115 @@ exports.IntProto = { return message; }, fromJSON(object) { - return { - int: (0, helpers_1.isSet)(object.int) ? String(object.int) : "", - }; + const obj = createBaseTallyParams(); + if ((0, helpers_1.isSet)(object.quorum)) + obj.quorum = String(object.quorum); + if ((0, helpers_1.isSet)(object.threshold)) + obj.threshold = String(object.threshold); + if ((0, helpers_1.isSet)(object.vetoThreshold)) + obj.vetoThreshold = String(object.vetoThreshold); + return obj; }, toJSON(message) { const obj = {}; - message.int !== undefined && (obj.int = message.int); + message.quorum !== undefined && (obj.quorum = message.quorum); + message.threshold !== undefined && (obj.threshold = message.threshold); + message.vetoThreshold !== undefined && (obj.vetoThreshold = message.vetoThreshold); return obj; }, fromPartial(object) { - const message = createBaseIntProto(); - message.int = object.int ?? ""; + const message = createBaseTallyParams(); + message.quorum = object.quorum ?? ""; + message.threshold = object.threshold ?? ""; + message.vetoThreshold = object.vetoThreshold ?? ""; return message; }, }; -function createBaseDecProto() { +function createBaseParams() { return { - dec: "", + minDeposit: [], + maxDepositPeriod: undefined, + votingPeriod: undefined, + quorum: "", + threshold: "", + vetoThreshold: "", + minInitialDepositRatio: "", + burnVoteQuorum: false, + burnProposalDepositPrevote: false, + burnVoteVeto: false, }; } -exports.DecProto = { - encode(message, writer = _m0.Writer.create()) { - if (message.dec !== "") { - writer.uint32(10).string(message.dec); +exports.Params = { + typeUrl: "/cosmos.gov.v1.Params", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.minDeposit) { + coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.maxDepositPeriod !== undefined) { + duration_1.Duration.encode(message.maxDepositPeriod, writer.uint32(18).fork()).ldelim(); + } + if (message.votingPeriod !== undefined) { + duration_1.Duration.encode(message.votingPeriod, writer.uint32(26).fork()).ldelim(); + } + if (message.quorum !== "") { + writer.uint32(34).string(message.quorum); + } + if (message.threshold !== "") { + writer.uint32(42).string(message.threshold); + } + if (message.vetoThreshold !== "") { + writer.uint32(50).string(message.vetoThreshold); + } + if (message.minInitialDepositRatio !== "") { + writer.uint32(58).string(message.minInitialDepositRatio); + } + if (message.burnVoteQuorum === true) { + writer.uint32(104).bool(message.burnVoteQuorum); + } + if (message.burnProposalDepositPrevote === true) { + writer.uint32(112).bool(message.burnProposalDepositPrevote); + } + if (message.burnVoteVeto === true) { + writer.uint32(120).bool(message.burnVoteVeto); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDecProto(); + const message = createBaseParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.dec = reader.string(); + message.minDeposit.push(coin_1.Coin.decode(reader, reader.uint32())); + break; + case 2: + message.maxDepositPeriod = duration_1.Duration.decode(reader, reader.uint32()); + break; + case 3: + message.votingPeriod = duration_1.Duration.decode(reader, reader.uint32()); + break; + case 4: + message.quorum = reader.string(); + break; + case 5: + message.threshold = reader.string(); + break; + case 6: + message.vetoThreshold = reader.string(); + break; + case 7: + message.minInitialDepositRatio = reader.string(); + break; + case 13: + message.burnVoteQuorum = reader.bool(); + break; + case 14: + message.burnProposalDepositPrevote = reader.bool(); + break; + case 15: + message.burnVoteVeto = reader.bool(); break; default: reader.skipType(tag & 7); @@ -68905,83 +63308,151 @@ exports.DecProto = { return message; }, fromJSON(object) { - return { - dec: (0, helpers_1.isSet)(object.dec) ? String(object.dec) : "", - }; + const obj = createBaseParams(); + if (Array.isArray(object?.minDeposit)) + obj.minDeposit = object.minDeposit.map((e) => coin_1.Coin.fromJSON(e)); + if ((0, helpers_1.isSet)(object.maxDepositPeriod)) + obj.maxDepositPeriod = duration_1.Duration.fromJSON(object.maxDepositPeriod); + if ((0, helpers_1.isSet)(object.votingPeriod)) + obj.votingPeriod = duration_1.Duration.fromJSON(object.votingPeriod); + if ((0, helpers_1.isSet)(object.quorum)) + obj.quorum = String(object.quorum); + if ((0, helpers_1.isSet)(object.threshold)) + obj.threshold = String(object.threshold); + if ((0, helpers_1.isSet)(object.vetoThreshold)) + obj.vetoThreshold = String(object.vetoThreshold); + if ((0, helpers_1.isSet)(object.minInitialDepositRatio)) + obj.minInitialDepositRatio = String(object.minInitialDepositRatio); + if ((0, helpers_1.isSet)(object.burnVoteQuorum)) + obj.burnVoteQuorum = Boolean(object.burnVoteQuorum); + if ((0, helpers_1.isSet)(object.burnProposalDepositPrevote)) + obj.burnProposalDepositPrevote = Boolean(object.burnProposalDepositPrevote); + if ((0, helpers_1.isSet)(object.burnVoteVeto)) + obj.burnVoteVeto = Boolean(object.burnVoteVeto); + return obj; }, toJSON(message) { const obj = {}; - message.dec !== undefined && (obj.dec = message.dec); + if (message.minDeposit) { + obj.minDeposit = message.minDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + } + else { + obj.minDeposit = []; + } + message.maxDepositPeriod !== undefined && + (obj.maxDepositPeriod = message.maxDepositPeriod + ? duration_1.Duration.toJSON(message.maxDepositPeriod) + : undefined); + message.votingPeriod !== undefined && + (obj.votingPeriod = message.votingPeriod ? duration_1.Duration.toJSON(message.votingPeriod) : undefined); + message.quorum !== undefined && (obj.quorum = message.quorum); + message.threshold !== undefined && (obj.threshold = message.threshold); + message.vetoThreshold !== undefined && (obj.vetoThreshold = message.vetoThreshold); + message.minInitialDepositRatio !== undefined && + (obj.minInitialDepositRatio = message.minInitialDepositRatio); + message.burnVoteQuorum !== undefined && (obj.burnVoteQuorum = message.burnVoteQuorum); + message.burnProposalDepositPrevote !== undefined && + (obj.burnProposalDepositPrevote = message.burnProposalDepositPrevote); + message.burnVoteVeto !== undefined && (obj.burnVoteVeto = message.burnVoteVeto); return obj; }, fromPartial(object) { - const message = createBaseDecProto(); - message.dec = object.dec ?? ""; + const message = createBaseParams(); + message.minDeposit = object.minDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || []; + if (object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null) { + message.maxDepositPeriod = duration_1.Duration.fromPartial(object.maxDepositPeriod); + } + if (object.votingPeriod !== undefined && object.votingPeriod !== null) { + message.votingPeriod = duration_1.Duration.fromPartial(object.votingPeriod); + } + message.quorum = object.quorum ?? ""; + message.threshold = object.threshold ?? ""; + message.vetoThreshold = object.vetoThreshold ?? ""; + message.minInitialDepositRatio = object.minInitialDepositRatio ?? ""; + message.burnVoteQuorum = object.burnVoteQuorum ?? false; + message.burnProposalDepositPrevote = object.burnProposalDepositPrevote ?? false; + message.burnVoteVeto = object.burnVoteVeto ?? false; return message; }, }; -//# sourceMappingURL=coin.js.map +//# sourceMappingURL=gov.js.map /***/ }), -/***/ "./node_modules/cosmjs-types/cosmos/crypto/ed25519/keys.js": -/*!*****************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/crypto/ed25519/keys.js ***! - \*****************************************************************/ +/***/ "./node_modules/cosmjs-types/cosmos/gov/v1/tx.js": +/*!*******************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/gov/v1/tx.js ***! + \*******************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.PrivKey = exports.PubKey = exports.protobufPackage = void 0; +exports.MsgClientImpl = exports.MsgUpdateParamsResponse = exports.MsgUpdateParams = exports.MsgDepositResponse = exports.MsgDeposit = exports.MsgVoteWeightedResponse = exports.MsgVoteWeighted = exports.MsgVoteResponse = exports.MsgVote = exports.MsgExecLegacyContentResponse = exports.MsgExecLegacyContent = exports.MsgSubmitProposalResponse = exports.MsgSubmitProposal = exports.protobufPackage = void 0; /* eslint-disable */ -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); +const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); +const gov_1 = __webpack_require__(/*! ./gov */ "./node_modules/cosmjs-types/cosmos/gov/v1/gov.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -exports.protobufPackage = "cosmos.crypto.ed25519"; -function createBasePubKey() { +exports.protobufPackage = "cosmos.gov.v1"; +function createBaseMsgSubmitProposal() { return { - key: new Uint8Array(), + messages: [], + initialDeposit: [], + proposer: "", + metadata: "", + title: "", + summary: "", }; } -exports.PubKey = { - encode(message, writer = _m0.Writer.create()) { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); +exports.MsgSubmitProposal = { + typeUrl: "/cosmos.gov.v1.MsgSubmitProposal", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.messages) { + any_1.Any.encode(v, writer.uint32(10).fork()).ldelim(); + } + for (const v of message.initialDeposit) { + coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim(); + } + if (message.proposer !== "") { + writer.uint32(26).string(message.proposer); + } + if (message.metadata !== "") { + writer.uint32(34).string(message.metadata); + } + if (message.title !== "") { + writer.uint32(42).string(message.title); + } + if (message.summary !== "") { + writer.uint32(50).string(message.summary); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePubKey(); + const message = createBaseMsgSubmitProposal(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.key = reader.bytes(); + message.messages.push(any_1.Any.decode(reader, reader.uint32())); + break; + case 2: + message.initialDeposit.push(coin_1.Coin.decode(reader, reader.uint32())); + break; + case 3: + message.proposer = reader.string(); + break; + case 4: + message.metadata = reader.string(); + break; + case 5: + message.title = reader.string(); + break; + case 6: + message.summary = reader.string(); break; default: reader.skipType(tag & 7); @@ -68991,43 +63462,74 @@ exports.PubKey = { return message; }, fromJSON(object) { - return { - key: (0, helpers_1.isSet)(object.key) ? (0, helpers_1.bytesFromBase64)(object.key) : new Uint8Array(), - }; + const obj = createBaseMsgSubmitProposal(); + if (Array.isArray(object?.messages)) + obj.messages = object.messages.map((e) => any_1.Any.fromJSON(e)); + if (Array.isArray(object?.initialDeposit)) + obj.initialDeposit = object.initialDeposit.map((e) => coin_1.Coin.fromJSON(e)); + if ((0, helpers_1.isSet)(object.proposer)) + obj.proposer = String(object.proposer); + if ((0, helpers_1.isSet)(object.metadata)) + obj.metadata = String(object.metadata); + if ((0, helpers_1.isSet)(object.title)) + obj.title = String(object.title); + if ((0, helpers_1.isSet)(object.summary)) + obj.summary = String(object.summary); + return obj; }, toJSON(message) { const obj = {}; - message.key !== undefined && - (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array())); + if (message.messages) { + obj.messages = message.messages.map((e) => (e ? any_1.Any.toJSON(e) : undefined)); + } + else { + obj.messages = []; + } + if (message.initialDeposit) { + obj.initialDeposit = message.initialDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + } + else { + obj.initialDeposit = []; + } + message.proposer !== undefined && (obj.proposer = message.proposer); + message.metadata !== undefined && (obj.metadata = message.metadata); + message.title !== undefined && (obj.title = message.title); + message.summary !== undefined && (obj.summary = message.summary); return obj; }, fromPartial(object) { - const message = createBasePubKey(); - message.key = object.key ?? new Uint8Array(); + const message = createBaseMsgSubmitProposal(); + message.messages = object.messages?.map((e) => any_1.Any.fromPartial(e)) || []; + message.initialDeposit = object.initialDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || []; + message.proposer = object.proposer ?? ""; + message.metadata = object.metadata ?? ""; + message.title = object.title ?? ""; + message.summary = object.summary ?? ""; return message; }, }; -function createBasePrivKey() { +function createBaseMsgSubmitProposalResponse() { return { - key: new Uint8Array(), + proposalId: BigInt(0), }; } -exports.PrivKey = { - encode(message, writer = _m0.Writer.create()) { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); +exports.MsgSubmitProposalResponse = { + typeUrl: "/cosmos.gov.v1.MsgSubmitProposalResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { + writer.uint32(8).uint64(message.proposalId); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePrivKey(); + const message = createBaseMsgSubmitProposalResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.key = reader.bytes(); + message.proposalId = reader.uint64(); break; default: reader.skipType(tag & 7); @@ -69037,92 +63539,53 @@ exports.PrivKey = { return message; }, fromJSON(object) { - return { - key: (0, helpers_1.isSet)(object.key) ? (0, helpers_1.bytesFromBase64)(object.key) : new Uint8Array(), - }; + const obj = createBaseMsgSubmitProposalResponse(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + return obj; }, toJSON(message) { const obj = {}; - message.key !== undefined && - (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array())); + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); return obj; }, fromPartial(object) { - const message = createBasePrivKey(); - message.key = object.key ?? new Uint8Array(); + const message = createBaseMsgSubmitProposalResponse(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); + } return message; }, }; -//# sourceMappingURL=keys.js.map - -/***/ }), - -/***/ "./node_modules/cosmjs-types/cosmos/crypto/multisig/keys.js": -/*!******************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/crypto/multisig/keys.js ***! - \******************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.LegacyAminoPubKey = exports.protobufPackage = void 0; -/* eslint-disable */ -const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -exports.protobufPackage = "cosmos.crypto.multisig"; -function createBaseLegacyAminoPubKey() { +function createBaseMsgExecLegacyContent() { return { - threshold: 0, - publicKeys: [], + content: undefined, + authority: "", }; } -exports.LegacyAminoPubKey = { - encode(message, writer = _m0.Writer.create()) { - if (message.threshold !== 0) { - writer.uint32(8).uint32(message.threshold); +exports.MsgExecLegacyContent = { + typeUrl: "/cosmos.gov.v1.MsgExecLegacyContent", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.content !== undefined) { + any_1.Any.encode(message.content, writer.uint32(10).fork()).ldelim(); } - for (const v of message.publicKeys) { - any_1.Any.encode(v, writer.uint32(18).fork()).ldelim(); + if (message.authority !== "") { + writer.uint32(18).string(message.authority); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseLegacyAminoPubKey(); + const message = createBaseMsgExecLegacyContent(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.threshold = reader.uint32(); + message.content = any_1.Any.decode(reader, reader.uint32()); break; case 2: - message.publicKeys.push(any_1.Any.decode(reader, reader.uint32())); + message.authority = reader.string(); break; default: reader.skipType(tag & 7); @@ -69132,92 +63595,44 @@ exports.LegacyAminoPubKey = { return message; }, fromJSON(object) { - return { - threshold: (0, helpers_1.isSet)(object.threshold) ? Number(object.threshold) : 0, - publicKeys: Array.isArray(object?.publicKeys) ? object.publicKeys.map((e) => any_1.Any.fromJSON(e)) : [], - }; + const obj = createBaseMsgExecLegacyContent(); + if ((0, helpers_1.isSet)(object.content)) + obj.content = any_1.Any.fromJSON(object.content); + if ((0, helpers_1.isSet)(object.authority)) + obj.authority = String(object.authority); + return obj; }, toJSON(message) { const obj = {}; - message.threshold !== undefined && (obj.threshold = Math.round(message.threshold)); - if (message.publicKeys) { - obj.publicKeys = message.publicKeys.map((e) => (e ? any_1.Any.toJSON(e) : undefined)); - } - else { - obj.publicKeys = []; - } + message.content !== undefined && + (obj.content = message.content ? any_1.Any.toJSON(message.content) : undefined); + message.authority !== undefined && (obj.authority = message.authority); return obj; }, fromPartial(object) { - const message = createBaseLegacyAminoPubKey(); - message.threshold = object.threshold ?? 0; - message.publicKeys = object.publicKeys?.map((e) => any_1.Any.fromPartial(e)) || []; + const message = createBaseMsgExecLegacyContent(); + if (object.content !== undefined && object.content !== null) { + message.content = any_1.Any.fromPartial(object.content); + } + message.authority = object.authority ?? ""; return message; }, }; -//# sourceMappingURL=keys.js.map - -/***/ }), - -/***/ "./node_modules/cosmjs-types/cosmos/crypto/multisig/v1beta1/multisig.js": -/*!******************************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/crypto/multisig/v1beta1/multisig.js ***! - \******************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.CompactBitArray = exports.MultiSignature = exports.protobufPackage = void 0; -/* eslint-disable */ -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -exports.protobufPackage = "cosmos.crypto.multisig.v1beta1"; -function createBaseMultiSignature() { - return { - signatures: [], - }; +function createBaseMsgExecLegacyContentResponse() { + return {}; } -exports.MultiSignature = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.signatures) { - writer.uint32(10).bytes(v); - } +exports.MsgExecLegacyContentResponse = { + typeUrl: "/cosmos.gov.v1.MsgExecLegacyContentResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMultiSignature(); + const message = createBaseMsgExecLegacyContentResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.signatures.push(reader.bytes()); - break; default: reader.skipType(tag & 7); break; @@ -69225,57 +63640,62 @@ exports.MultiSignature = { } return message; }, - fromJSON(object) { - return { - signatures: Array.isArray(object?.signatures) - ? object.signatures.map((e) => (0, helpers_1.bytesFromBase64)(e)) - : [], - }; + fromJSON(_) { + const obj = createBaseMsgExecLegacyContentResponse(); + return obj; }, - toJSON(message) { + toJSON(_) { const obj = {}; - if (message.signatures) { - obj.signatures = message.signatures.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array())); - } - else { - obj.signatures = []; - } return obj; }, - fromPartial(object) { - const message = createBaseMultiSignature(); - message.signatures = object.signatures?.map((e) => e) || []; + fromPartial(_) { + const message = createBaseMsgExecLegacyContentResponse(); return message; }, }; -function createBaseCompactBitArray() { +function createBaseMsgVote() { return { - extraBitsStored: 0, - elems: new Uint8Array(), + proposalId: BigInt(0), + voter: "", + option: 0, + metadata: "", }; } -exports.CompactBitArray = { - encode(message, writer = _m0.Writer.create()) { - if (message.extraBitsStored !== 0) { - writer.uint32(8).uint32(message.extraBitsStored); +exports.MsgVote = { + typeUrl: "/cosmos.gov.v1.MsgVote", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { + writer.uint32(8).uint64(message.proposalId); } - if (message.elems.length !== 0) { - writer.uint32(18).bytes(message.elems); + if (message.voter !== "") { + writer.uint32(18).string(message.voter); + } + if (message.option !== 0) { + writer.uint32(24).int32(message.option); + } + if (message.metadata !== "") { + writer.uint32(34).string(message.metadata); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCompactBitArray(); + const message = createBaseMsgVote(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.extraBitsStored = reader.uint32(); + message.proposalId = reader.uint64(); break; case 2: - message.elems = reader.bytes(); + message.voter = reader.string(); + break; + case 3: + message.option = reader.int32(); + break; + case 4: + message.metadata = reader.string(); break; default: reader.skipType(tag & 7); @@ -69285,87 +63705,114 @@ exports.CompactBitArray = { return message; }, fromJSON(object) { - return { - extraBitsStored: (0, helpers_1.isSet)(object.extraBitsStored) ? Number(object.extraBitsStored) : 0, - elems: (0, helpers_1.isSet)(object.elems) ? (0, helpers_1.bytesFromBase64)(object.elems) : new Uint8Array(), - }; + const obj = createBaseMsgVote(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + if ((0, helpers_1.isSet)(object.voter)) + obj.voter = String(object.voter); + if ((0, helpers_1.isSet)(object.option)) + obj.option = (0, gov_1.voteOptionFromJSON)(object.option); + if ((0, helpers_1.isSet)(object.metadata)) + obj.metadata = String(object.metadata); + return obj; }, toJSON(message) { const obj = {}; - message.extraBitsStored !== undefined && (obj.extraBitsStored = Math.round(message.extraBitsStored)); - message.elems !== undefined && - (obj.elems = (0, helpers_1.base64FromBytes)(message.elems !== undefined ? message.elems : new Uint8Array())); + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); + message.voter !== undefined && (obj.voter = message.voter); + message.option !== undefined && (obj.option = (0, gov_1.voteOptionToJSON)(message.option)); + message.metadata !== undefined && (obj.metadata = message.metadata); return obj; }, fromPartial(object) { - const message = createBaseCompactBitArray(); - message.extraBitsStored = object.extraBitsStored ?? 0; - message.elems = object.elems ?? new Uint8Array(); + const message = createBaseMsgVote(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); + } + message.voter = object.voter ?? ""; + message.option = object.option ?? 0; + message.metadata = object.metadata ?? ""; return message; }, }; -//# sourceMappingURL=multisig.js.map - -/***/ }), - -/***/ "./node_modules/cosmjs-types/cosmos/crypto/secp256k1/keys.js": -/*!*******************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/crypto/secp256k1/keys.js ***! - \*******************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.PrivKey = exports.PubKey = exports.protobufPackage = void 0; -/* eslint-disable */ -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -exports.protobufPackage = "cosmos.crypto.secp256k1"; -function createBasePubKey() { +function createBaseMsgVoteResponse() { + return {}; +} +exports.MsgVoteResponse = { + typeUrl: "/cosmos.gov.v1.MsgVoteResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgVoteResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_) { + const obj = createBaseMsgVoteResponse(); + return obj; + }, + toJSON(_) { + const obj = {}; + return obj; + }, + fromPartial(_) { + const message = createBaseMsgVoteResponse(); + return message; + }, +}; +function createBaseMsgVoteWeighted() { return { - key: new Uint8Array(), + proposalId: BigInt(0), + voter: "", + options: [], + metadata: "", }; } -exports.PubKey = { - encode(message, writer = _m0.Writer.create()) { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); +exports.MsgVoteWeighted = { + typeUrl: "/cosmos.gov.v1.MsgVoteWeighted", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { + writer.uint32(8).uint64(message.proposalId); + } + if (message.voter !== "") { + writer.uint32(18).string(message.voter); + } + for (const v of message.options) { + gov_1.WeightedVoteOption.encode(v, writer.uint32(26).fork()).ldelim(); + } + if (message.metadata !== "") { + writer.uint32(34).string(message.metadata); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePubKey(); + const message = createBaseMsgVoteWeighted(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.key = reader.bytes(); + message.proposalId = reader.uint64(); + break; + case 2: + message.voter = reader.string(); + break; + case 3: + message.options.push(gov_1.WeightedVoteOption.decode(reader, reader.uint32())); + break; + case 4: + message.metadata = reader.string(); break; default: reader.skipType(tag & 7); @@ -69375,44 +63822,56 @@ exports.PubKey = { return message; }, fromJSON(object) { - return { - key: (0, helpers_1.isSet)(object.key) ? (0, helpers_1.bytesFromBase64)(object.key) : new Uint8Array(), - }; + const obj = createBaseMsgVoteWeighted(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + if ((0, helpers_1.isSet)(object.voter)) + obj.voter = String(object.voter); + if (Array.isArray(object?.options)) + obj.options = object.options.map((e) => gov_1.WeightedVoteOption.fromJSON(e)); + if ((0, helpers_1.isSet)(object.metadata)) + obj.metadata = String(object.metadata); + return obj; }, toJSON(message) { const obj = {}; - message.key !== undefined && - (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array())); + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); + message.voter !== undefined && (obj.voter = message.voter); + if (message.options) { + obj.options = message.options.map((e) => (e ? gov_1.WeightedVoteOption.toJSON(e) : undefined)); + } + else { + obj.options = []; + } + message.metadata !== undefined && (obj.metadata = message.metadata); return obj; }, fromPartial(object) { - const message = createBasePubKey(); - message.key = object.key ?? new Uint8Array(); + const message = createBaseMsgVoteWeighted(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); + } + message.voter = object.voter ?? ""; + message.options = object.options?.map((e) => gov_1.WeightedVoteOption.fromPartial(e)) || []; + message.metadata = object.metadata ?? ""; return message; }, }; -function createBasePrivKey() { - return { - key: new Uint8Array(), - }; +function createBaseMsgVoteWeightedResponse() { + return {}; } -exports.PrivKey = { - encode(message, writer = _m0.Writer.create()) { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); - } +exports.MsgVoteWeightedResponse = { + typeUrl: "/cosmos.gov.v1.MsgVoteWeightedResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePrivKey(); + const message = createBaseMsgVoteWeightedResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.key = reader.bytes(); - break; default: reader.skipType(tag & 7); break; @@ -69420,107 +63879,55 @@ exports.PrivKey = { } return message; }, - fromJSON(object) { - return { - key: (0, helpers_1.isSet)(object.key) ? (0, helpers_1.bytesFromBase64)(object.key) : new Uint8Array(), - }; + fromJSON(_) { + const obj = createBaseMsgVoteWeightedResponse(); + return obj; }, - toJSON(message) { + toJSON(_) { const obj = {}; - message.key !== undefined && - (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array())); return obj; }, - fromPartial(object) { - const message = createBasePrivKey(); - message.key = object.key ?? new Uint8Array(); + fromPartial(_) { + const message = createBaseMsgVoteWeightedResponse(); return message; }, }; -//# sourceMappingURL=keys.js.map - -/***/ }), - -/***/ "./node_modules/cosmjs-types/cosmos/distribution/v1beta1/distribution.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/distribution/v1beta1/distribution.js ***! - \*******************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.CommunityPoolSpendProposalWithDeposit = exports.DelegationDelegatorReward = exports.DelegatorStartingInfo = exports.CommunityPoolSpendProposal = exports.FeePool = exports.ValidatorSlashEvents = exports.ValidatorSlashEvent = exports.ValidatorOutstandingRewards = exports.ValidatorAccumulatedCommission = exports.ValidatorCurrentRewards = exports.ValidatorHistoricalRewards = exports.Params = exports.protobufPackage = void 0; -/* eslint-disable */ -const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -exports.protobufPackage = "cosmos.distribution.v1beta1"; -function createBaseParams() { +function createBaseMsgDeposit() { return { - communityTax: "", - baseProposerReward: "", - bonusProposerReward: "", - withdrawAddrEnabled: false, + proposalId: BigInt(0), + depositor: "", + amount: [], }; } -exports.Params = { - encode(message, writer = _m0.Writer.create()) { - if (message.communityTax !== "") { - writer.uint32(10).string(message.communityTax); - } - if (message.baseProposerReward !== "") { - writer.uint32(18).string(message.baseProposerReward); +exports.MsgDeposit = { + typeUrl: "/cosmos.gov.v1.MsgDeposit", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { + writer.uint32(8).uint64(message.proposalId); } - if (message.bonusProposerReward !== "") { - writer.uint32(26).string(message.bonusProposerReward); + if (message.depositor !== "") { + writer.uint32(18).string(message.depositor); } - if (message.withdrawAddrEnabled === true) { - writer.uint32(32).bool(message.withdrawAddrEnabled); + for (const v of message.amount) { + coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseParams(); + const message = createBaseMsgDeposit(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.communityTax = reader.string(); + message.proposalId = reader.uint64(); break; case 2: - message.baseProposerReward = reader.string(); + message.depositor = reader.string(); break; case 3: - message.bonusProposerReward = reader.string(); - break; - case 4: - message.withdrawAddrEnabled = reader.bool(); + message.amount.push(coin_1.Coin.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -69530,59 +63937,52 @@ exports.Params = { return message; }, fromJSON(object) { - return { - communityTax: (0, helpers_1.isSet)(object.communityTax) ? String(object.communityTax) : "", - baseProposerReward: (0, helpers_1.isSet)(object.baseProposerReward) ? String(object.baseProposerReward) : "", - bonusProposerReward: (0, helpers_1.isSet)(object.bonusProposerReward) ? String(object.bonusProposerReward) : "", - withdrawAddrEnabled: (0, helpers_1.isSet)(object.withdrawAddrEnabled) ? Boolean(object.withdrawAddrEnabled) : false, - }; + const obj = createBaseMsgDeposit(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + if ((0, helpers_1.isSet)(object.depositor)) + obj.depositor = String(object.depositor); + if (Array.isArray(object?.amount)) + obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - message.communityTax !== undefined && (obj.communityTax = message.communityTax); - message.baseProposerReward !== undefined && (obj.baseProposerReward = message.baseProposerReward); - message.bonusProposerReward !== undefined && (obj.bonusProposerReward = message.bonusProposerReward); - message.withdrawAddrEnabled !== undefined && (obj.withdrawAddrEnabled = message.withdrawAddrEnabled); + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); + message.depositor !== undefined && (obj.depositor = message.depositor); + if (message.amount) { + obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + } + else { + obj.amount = []; + } return obj; }, fromPartial(object) { - const message = createBaseParams(); - message.communityTax = object.communityTax ?? ""; - message.baseProposerReward = object.baseProposerReward ?? ""; - message.bonusProposerReward = object.bonusProposerReward ?? ""; - message.withdrawAddrEnabled = object.withdrawAddrEnabled ?? false; + const message = createBaseMsgDeposit(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); + } + message.depositor = object.depositor ?? ""; + message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || []; return message; }, }; -function createBaseValidatorHistoricalRewards() { - return { - cumulativeRewardRatio: [], - referenceCount: 0, - }; +function createBaseMsgDepositResponse() { + return {}; } -exports.ValidatorHistoricalRewards = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.cumulativeRewardRatio) { - coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim(); - } - if (message.referenceCount !== 0) { - writer.uint32(16).uint32(message.referenceCount); - } +exports.MsgDepositResponse = { + typeUrl: "/cosmos.gov.v1.MsgDepositResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorHistoricalRewards(); + const message = createBaseMsgDepositResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.cumulativeRewardRatio.push(coin_1.DecCoin.decode(reader, reader.uint32())); - break; - case 2: - message.referenceCount = reader.uint32(); - break; default: reader.skipType(tag & 7); break; @@ -69590,60 +63990,48 @@ exports.ValidatorHistoricalRewards = { } return message; }, - fromJSON(object) { - return { - cumulativeRewardRatio: Array.isArray(object?.cumulativeRewardRatio) - ? object.cumulativeRewardRatio.map((e) => coin_1.DecCoin.fromJSON(e)) - : [], - referenceCount: (0, helpers_1.isSet)(object.referenceCount) ? Number(object.referenceCount) : 0, - }; + fromJSON(_) { + const obj = createBaseMsgDepositResponse(); + return obj; }, - toJSON(message) { + toJSON(_) { const obj = {}; - if (message.cumulativeRewardRatio) { - obj.cumulativeRewardRatio = message.cumulativeRewardRatio.map((e) => e ? coin_1.DecCoin.toJSON(e) : undefined); - } - else { - obj.cumulativeRewardRatio = []; - } - message.referenceCount !== undefined && (obj.referenceCount = Math.round(message.referenceCount)); return obj; }, - fromPartial(object) { - const message = createBaseValidatorHistoricalRewards(); - message.cumulativeRewardRatio = object.cumulativeRewardRatio?.map((e) => coin_1.DecCoin.fromPartial(e)) || []; - message.referenceCount = object.referenceCount ?? 0; + fromPartial(_) { + const message = createBaseMsgDepositResponse(); return message; }, }; -function createBaseValidatorCurrentRewards() { +function createBaseMsgUpdateParams() { return { - rewards: [], - period: helpers_1.Long.UZERO, + authority: "", + params: gov_1.Params.fromPartial({}), }; } -exports.ValidatorCurrentRewards = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.rewards) { - coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim(); +exports.MsgUpdateParams = { + typeUrl: "/cosmos.gov.v1.MsgUpdateParams", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.authority !== "") { + writer.uint32(10).string(message.authority); } - if (!message.period.isZero()) { - writer.uint32(16).uint64(message.period); + if (message.params !== undefined) { + gov_1.Params.encode(message.params, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorCurrentRewards(); + const message = createBaseMsgUpdateParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.rewards.push(coin_1.DecCoin.decode(reader, reader.uint32())); + message.authority = reader.string(); break; case 2: - message.period = reader.uint64(); + message.params = gov_1.Params.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -69653,52 +64041,43 @@ exports.ValidatorCurrentRewards = { return message; }, fromJSON(object) { - return { - rewards: Array.isArray(object?.rewards) ? object.rewards.map((e) => coin_1.DecCoin.fromJSON(e)) : [], - period: (0, helpers_1.isSet)(object.period) ? helpers_1.Long.fromValue(object.period) : helpers_1.Long.UZERO, - }; + const obj = createBaseMsgUpdateParams(); + if ((0, helpers_1.isSet)(object.authority)) + obj.authority = String(object.authority); + if ((0, helpers_1.isSet)(object.params)) + obj.params = gov_1.Params.fromJSON(object.params); + return obj; }, toJSON(message) { const obj = {}; - if (message.rewards) { - obj.rewards = message.rewards.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined)); - } - else { - obj.rewards = []; - } - message.period !== undefined && (obj.period = (message.period || helpers_1.Long.UZERO).toString()); + message.authority !== undefined && (obj.authority = message.authority); + message.params !== undefined && (obj.params = message.params ? gov_1.Params.toJSON(message.params) : undefined); return obj; }, fromPartial(object) { - const message = createBaseValidatorCurrentRewards(); - message.rewards = object.rewards?.map((e) => coin_1.DecCoin.fromPartial(e)) || []; - message.period = - object.period !== undefined && object.period !== null ? helpers_1.Long.fromValue(object.period) : helpers_1.Long.UZERO; + const message = createBaseMsgUpdateParams(); + message.authority = object.authority ?? ""; + if (object.params !== undefined && object.params !== null) { + message.params = gov_1.Params.fromPartial(object.params); + } return message; }, }; -function createBaseValidatorAccumulatedCommission() { - return { - commission: [], - }; +function createBaseMsgUpdateParamsResponse() { + return {}; } -exports.ValidatorAccumulatedCommission = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.commission) { - coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim(); - } +exports.MsgUpdateParamsResponse = { + typeUrl: "/cosmos.gov.v1.MsgUpdateParamsResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorAccumulatedCommission(); + const message = createBaseMsgUpdateParamsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.commission.push(coin_1.DecCoin.decode(reader, reader.uint32())); - break; default: reader.skipType(tag & 7); break; @@ -69706,50 +64085,248 @@ exports.ValidatorAccumulatedCommission = { } return message; }, - fromJSON(object) { - return { - commission: Array.isArray(object?.commission) - ? object.commission.map((e) => coin_1.DecCoin.fromJSON(e)) - : [], - }; + fromJSON(_) { + const obj = createBaseMsgUpdateParamsResponse(); + return obj; }, - toJSON(message) { + toJSON(_) { const obj = {}; - if (message.commission) { - obj.commission = message.commission.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined)); - } - else { - obj.commission = []; - } return obj; }, - fromPartial(object) { - const message = createBaseValidatorAccumulatedCommission(); - message.commission = object.commission?.map((e) => coin_1.DecCoin.fromPartial(e)) || []; + fromPartial(_) { + const message = createBaseMsgUpdateParamsResponse(); return message; }, }; -function createBaseValidatorOutstandingRewards() { +class MsgClientImpl { + constructor(rpc) { + this.rpc = rpc; + this.SubmitProposal = this.SubmitProposal.bind(this); + this.ExecLegacyContent = this.ExecLegacyContent.bind(this); + this.Vote = this.Vote.bind(this); + this.VoteWeighted = this.VoteWeighted.bind(this); + this.Deposit = this.Deposit.bind(this); + this.UpdateParams = this.UpdateParams.bind(this); + } + SubmitProposal(request) { + const data = exports.MsgSubmitProposal.encode(request).finish(); + const promise = this.rpc.request("cosmos.gov.v1.Msg", "SubmitProposal", data); + return promise.then((data) => exports.MsgSubmitProposalResponse.decode(new binary_1.BinaryReader(data))); + } + ExecLegacyContent(request) { + const data = exports.MsgExecLegacyContent.encode(request).finish(); + const promise = this.rpc.request("cosmos.gov.v1.Msg", "ExecLegacyContent", data); + return promise.then((data) => exports.MsgExecLegacyContentResponse.decode(new binary_1.BinaryReader(data))); + } + Vote(request) { + const data = exports.MsgVote.encode(request).finish(); + const promise = this.rpc.request("cosmos.gov.v1.Msg", "Vote", data); + return promise.then((data) => exports.MsgVoteResponse.decode(new binary_1.BinaryReader(data))); + } + VoteWeighted(request) { + const data = exports.MsgVoteWeighted.encode(request).finish(); + const promise = this.rpc.request("cosmos.gov.v1.Msg", "VoteWeighted", data); + return promise.then((data) => exports.MsgVoteWeightedResponse.decode(new binary_1.BinaryReader(data))); + } + Deposit(request) { + const data = exports.MsgDeposit.encode(request).finish(); + const promise = this.rpc.request("cosmos.gov.v1.Msg", "Deposit", data); + return promise.then((data) => exports.MsgDepositResponse.decode(new binary_1.BinaryReader(data))); + } + UpdateParams(request) { + const data = exports.MsgUpdateParams.encode(request).finish(); + const promise = this.rpc.request("cosmos.gov.v1.Msg", "UpdateParams", data); + return promise.then((data) => exports.MsgUpdateParamsResponse.decode(new binary_1.BinaryReader(data))); + } +} +exports.MsgClientImpl = MsgClientImpl; +//# sourceMappingURL=tx.js.map + +/***/ }), + +/***/ "./node_modules/cosmjs-types/cosmos/gov/v1beta1/gov.js": +/*!*************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/gov/v1beta1/gov.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.TallyParams = exports.VotingParams = exports.DepositParams = exports.Vote = exports.TallyResult = exports.Proposal = exports.Deposit = exports.TextProposal = exports.WeightedVoteOption = exports.proposalStatusToJSON = exports.proposalStatusFromJSON = exports.ProposalStatus = exports.voteOptionToJSON = exports.voteOptionFromJSON = exports.VoteOption = exports.protobufPackage = void 0; +/* eslint-disable */ +const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); +const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); +const timestamp_1 = __webpack_require__(/*! ../../../google/protobuf/timestamp */ "./node_modules/cosmjs-types/google/protobuf/timestamp.js"); +const duration_1 = __webpack_require__(/*! ../../../google/protobuf/duration */ "./node_modules/cosmjs-types/google/protobuf/duration.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "cosmos.gov.v1beta1"; +/** VoteOption enumerates the valid vote options for a given governance proposal. */ +var VoteOption; +(function (VoteOption) { + /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */ + VoteOption[VoteOption["VOTE_OPTION_UNSPECIFIED"] = 0] = "VOTE_OPTION_UNSPECIFIED"; + /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */ + VoteOption[VoteOption["VOTE_OPTION_YES"] = 1] = "VOTE_OPTION_YES"; + /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */ + VoteOption[VoteOption["VOTE_OPTION_ABSTAIN"] = 2] = "VOTE_OPTION_ABSTAIN"; + /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */ + VoteOption[VoteOption["VOTE_OPTION_NO"] = 3] = "VOTE_OPTION_NO"; + /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */ + VoteOption[VoteOption["VOTE_OPTION_NO_WITH_VETO"] = 4] = "VOTE_OPTION_NO_WITH_VETO"; + VoteOption[VoteOption["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(VoteOption || (exports.VoteOption = VoteOption = {})); +function voteOptionFromJSON(object) { + switch (object) { + case 0: + case "VOTE_OPTION_UNSPECIFIED": + return VoteOption.VOTE_OPTION_UNSPECIFIED; + case 1: + case "VOTE_OPTION_YES": + return VoteOption.VOTE_OPTION_YES; + case 2: + case "VOTE_OPTION_ABSTAIN": + return VoteOption.VOTE_OPTION_ABSTAIN; + case 3: + case "VOTE_OPTION_NO": + return VoteOption.VOTE_OPTION_NO; + case 4: + case "VOTE_OPTION_NO_WITH_VETO": + return VoteOption.VOTE_OPTION_NO_WITH_VETO; + case -1: + case "UNRECOGNIZED": + default: + return VoteOption.UNRECOGNIZED; + } +} +exports.voteOptionFromJSON = voteOptionFromJSON; +function voteOptionToJSON(object) { + switch (object) { + case VoteOption.VOTE_OPTION_UNSPECIFIED: + return "VOTE_OPTION_UNSPECIFIED"; + case VoteOption.VOTE_OPTION_YES: + return "VOTE_OPTION_YES"; + case VoteOption.VOTE_OPTION_ABSTAIN: + return "VOTE_OPTION_ABSTAIN"; + case VoteOption.VOTE_OPTION_NO: + return "VOTE_OPTION_NO"; + case VoteOption.VOTE_OPTION_NO_WITH_VETO: + return "VOTE_OPTION_NO_WITH_VETO"; + case VoteOption.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} +exports.voteOptionToJSON = voteOptionToJSON; +/** ProposalStatus enumerates the valid statuses of a proposal. */ +var ProposalStatus; +(function (ProposalStatus) { + /** PROPOSAL_STATUS_UNSPECIFIED - PROPOSAL_STATUS_UNSPECIFIED defines the default proposal status. */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_UNSPECIFIED"] = 0] = "PROPOSAL_STATUS_UNSPECIFIED"; + /** + * PROPOSAL_STATUS_DEPOSIT_PERIOD - PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit + * period. + */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_DEPOSIT_PERIOD"] = 1] = "PROPOSAL_STATUS_DEPOSIT_PERIOD"; + /** + * PROPOSAL_STATUS_VOTING_PERIOD - PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting + * period. + */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_VOTING_PERIOD"] = 2] = "PROPOSAL_STATUS_VOTING_PERIOD"; + /** + * PROPOSAL_STATUS_PASSED - PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has + * passed. + */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_PASSED"] = 3] = "PROPOSAL_STATUS_PASSED"; + /** + * PROPOSAL_STATUS_REJECTED - PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has + * been rejected. + */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_REJECTED"] = 4] = "PROPOSAL_STATUS_REJECTED"; + /** + * PROPOSAL_STATUS_FAILED - PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has + * failed. + */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_FAILED"] = 5] = "PROPOSAL_STATUS_FAILED"; + ProposalStatus[ProposalStatus["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(ProposalStatus || (exports.ProposalStatus = ProposalStatus = {})); +function proposalStatusFromJSON(object) { + switch (object) { + case 0: + case "PROPOSAL_STATUS_UNSPECIFIED": + return ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED; + case 1: + case "PROPOSAL_STATUS_DEPOSIT_PERIOD": + return ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD; + case 2: + case "PROPOSAL_STATUS_VOTING_PERIOD": + return ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD; + case 3: + case "PROPOSAL_STATUS_PASSED": + return ProposalStatus.PROPOSAL_STATUS_PASSED; + case 4: + case "PROPOSAL_STATUS_REJECTED": + return ProposalStatus.PROPOSAL_STATUS_REJECTED; + case 5: + case "PROPOSAL_STATUS_FAILED": + return ProposalStatus.PROPOSAL_STATUS_FAILED; + case -1: + case "UNRECOGNIZED": + default: + return ProposalStatus.UNRECOGNIZED; + } +} +exports.proposalStatusFromJSON = proposalStatusFromJSON; +function proposalStatusToJSON(object) { + switch (object) { + case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED: + return "PROPOSAL_STATUS_UNSPECIFIED"; + case ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD: + return "PROPOSAL_STATUS_DEPOSIT_PERIOD"; + case ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD: + return "PROPOSAL_STATUS_VOTING_PERIOD"; + case ProposalStatus.PROPOSAL_STATUS_PASSED: + return "PROPOSAL_STATUS_PASSED"; + case ProposalStatus.PROPOSAL_STATUS_REJECTED: + return "PROPOSAL_STATUS_REJECTED"; + case ProposalStatus.PROPOSAL_STATUS_FAILED: + return "PROPOSAL_STATUS_FAILED"; + case ProposalStatus.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} +exports.proposalStatusToJSON = proposalStatusToJSON; +function createBaseWeightedVoteOption() { return { - rewards: [], + option: 0, + weight: "", }; } -exports.ValidatorOutstandingRewards = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.rewards) { - coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim(); +exports.WeightedVoteOption = { + typeUrl: "/cosmos.gov.v1beta1.WeightedVoteOption", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.option !== 0) { + writer.uint32(8).int32(message.option); + } + if (message.weight !== "") { + writer.uint32(18).string(message.weight); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorOutstandingRewards(); + const message = createBaseWeightedVoteOption(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.rewards.push(coin_1.DecCoin.decode(reader, reader.uint32())); + message.option = reader.int32(); + break; + case 2: + message.weight = reader.string(); break; default: reader.skipType(tag & 7); @@ -69759,54 +64336,55 @@ exports.ValidatorOutstandingRewards = { return message; }, fromJSON(object) { - return { - rewards: Array.isArray(object?.rewards) ? object.rewards.map((e) => coin_1.DecCoin.fromJSON(e)) : [], - }; + const obj = createBaseWeightedVoteOption(); + if ((0, helpers_1.isSet)(object.option)) + obj.option = voteOptionFromJSON(object.option); + if ((0, helpers_1.isSet)(object.weight)) + obj.weight = String(object.weight); + return obj; }, toJSON(message) { const obj = {}; - if (message.rewards) { - obj.rewards = message.rewards.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined)); - } - else { - obj.rewards = []; - } + message.option !== undefined && (obj.option = voteOptionToJSON(message.option)); + message.weight !== undefined && (obj.weight = message.weight); return obj; }, fromPartial(object) { - const message = createBaseValidatorOutstandingRewards(); - message.rewards = object.rewards?.map((e) => coin_1.DecCoin.fromPartial(e)) || []; + const message = createBaseWeightedVoteOption(); + message.option = object.option ?? 0; + message.weight = object.weight ?? ""; return message; }, }; -function createBaseValidatorSlashEvent() { +function createBaseTextProposal() { return { - validatorPeriod: helpers_1.Long.UZERO, - fraction: "", + title: "", + description: "", }; } -exports.ValidatorSlashEvent = { - encode(message, writer = _m0.Writer.create()) { - if (!message.validatorPeriod.isZero()) { - writer.uint32(8).uint64(message.validatorPeriod); +exports.TextProposal = { + typeUrl: "/cosmos.gov.v1beta1.TextProposal", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.title !== "") { + writer.uint32(10).string(message.title); } - if (message.fraction !== "") { - writer.uint32(18).string(message.fraction); + if (message.description !== "") { + writer.uint32(18).string(message.description); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorSlashEvent(); + const message = createBaseTextProposal(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.validatorPeriod = reader.uint64(); + message.title = reader.string(); break; case 2: - message.fraction = reader.string(); + message.description = reader.string(); break; default: reader.skipType(tag & 7); @@ -69816,49 +64394,62 @@ exports.ValidatorSlashEvent = { return message; }, fromJSON(object) { - return { - validatorPeriod: (0, helpers_1.isSet)(object.validatorPeriod) ? helpers_1.Long.fromValue(object.validatorPeriod) : helpers_1.Long.UZERO, - fraction: (0, helpers_1.isSet)(object.fraction) ? String(object.fraction) : "", - }; + const obj = createBaseTextProposal(); + if ((0, helpers_1.isSet)(object.title)) + obj.title = String(object.title); + if ((0, helpers_1.isSet)(object.description)) + obj.description = String(object.description); + return obj; }, toJSON(message) { const obj = {}; - message.validatorPeriod !== undefined && - (obj.validatorPeriod = (message.validatorPeriod || helpers_1.Long.UZERO).toString()); - message.fraction !== undefined && (obj.fraction = message.fraction); + message.title !== undefined && (obj.title = message.title); + message.description !== undefined && (obj.description = message.description); return obj; }, fromPartial(object) { - const message = createBaseValidatorSlashEvent(); - message.validatorPeriod = - object.validatorPeriod !== undefined && object.validatorPeriod !== null - ? helpers_1.Long.fromValue(object.validatorPeriod) - : helpers_1.Long.UZERO; - message.fraction = object.fraction ?? ""; + const message = createBaseTextProposal(); + message.title = object.title ?? ""; + message.description = object.description ?? ""; return message; }, }; -function createBaseValidatorSlashEvents() { +function createBaseDeposit() { return { - validatorSlashEvents: [], + proposalId: BigInt(0), + depositor: "", + amount: [], }; } -exports.ValidatorSlashEvents = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.validatorSlashEvents) { - exports.ValidatorSlashEvent.encode(v, writer.uint32(10).fork()).ldelim(); +exports.Deposit = { + typeUrl: "/cosmos.gov.v1beta1.Deposit", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { + writer.uint32(8).uint64(message.proposalId); + } + if (message.depositor !== "") { + writer.uint32(18).string(message.depositor); + } + for (const v of message.amount) { + coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorSlashEvents(); + const message = createBaseDeposit(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.validatorSlashEvents.push(exports.ValidatorSlashEvent.decode(reader, reader.uint32())); + message.proposalId = reader.uint64(); + break; + case 2: + message.depositor = reader.string(); + break; + case 3: + message.amount.push(coin_1.Coin.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -69868,50 +64459,115 @@ exports.ValidatorSlashEvents = { return message; }, fromJSON(object) { - return { - validatorSlashEvents: Array.isArray(object?.validatorSlashEvents) - ? object.validatorSlashEvents.map((e) => exports.ValidatorSlashEvent.fromJSON(e)) - : [], - }; + const obj = createBaseDeposit(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + if ((0, helpers_1.isSet)(object.depositor)) + obj.depositor = String(object.depositor); + if (Array.isArray(object?.amount)) + obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - if (message.validatorSlashEvents) { - obj.validatorSlashEvents = message.validatorSlashEvents.map((e) => e ? exports.ValidatorSlashEvent.toJSON(e) : undefined); + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); + message.depositor !== undefined && (obj.depositor = message.depositor); + if (message.amount) { + obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); } else { - obj.validatorSlashEvents = []; + obj.amount = []; } return obj; }, fromPartial(object) { - const message = createBaseValidatorSlashEvents(); - message.validatorSlashEvents = - object.validatorSlashEvents?.map((e) => exports.ValidatorSlashEvent.fromPartial(e)) || []; + const message = createBaseDeposit(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); + } + message.depositor = object.depositor ?? ""; + message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || []; return message; }, }; -function createBaseFeePool() { +function createBaseProposal() { return { - communityPool: [], + proposalId: BigInt(0), + content: undefined, + status: 0, + finalTallyResult: exports.TallyResult.fromPartial({}), + submitTime: timestamp_1.Timestamp.fromPartial({}), + depositEndTime: timestamp_1.Timestamp.fromPartial({}), + totalDeposit: [], + votingStartTime: timestamp_1.Timestamp.fromPartial({}), + votingEndTime: timestamp_1.Timestamp.fromPartial({}), }; } -exports.FeePool = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.communityPool) { - coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim(); +exports.Proposal = { + typeUrl: "/cosmos.gov.v1beta1.Proposal", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { + writer.uint32(8).uint64(message.proposalId); + } + if (message.content !== undefined) { + any_1.Any.encode(message.content, writer.uint32(18).fork()).ldelim(); + } + if (message.status !== 0) { + writer.uint32(24).int32(message.status); + } + if (message.finalTallyResult !== undefined) { + exports.TallyResult.encode(message.finalTallyResult, writer.uint32(34).fork()).ldelim(); + } + if (message.submitTime !== undefined) { + timestamp_1.Timestamp.encode(message.submitTime, writer.uint32(42).fork()).ldelim(); + } + if (message.depositEndTime !== undefined) { + timestamp_1.Timestamp.encode(message.depositEndTime, writer.uint32(50).fork()).ldelim(); + } + for (const v of message.totalDeposit) { + coin_1.Coin.encode(v, writer.uint32(58).fork()).ldelim(); + } + if (message.votingStartTime !== undefined) { + timestamp_1.Timestamp.encode(message.votingStartTime, writer.uint32(66).fork()).ldelim(); + } + if (message.votingEndTime !== undefined) { + timestamp_1.Timestamp.encode(message.votingEndTime, writer.uint32(74).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseFeePool(); + const message = createBaseProposal(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.communityPool.push(coin_1.DecCoin.decode(reader, reader.uint32())); + message.proposalId = reader.uint64(); + break; + case 2: + message.content = any_1.Any.decode(reader, reader.uint32()); + break; + case 3: + message.status = reader.int32(); + break; + case 4: + message.finalTallyResult = exports.TallyResult.decode(reader, reader.uint32()); + break; + case 5: + message.submitTime = timestamp_1.Timestamp.decode(reader, reader.uint32()); + break; + case 6: + message.depositEndTime = timestamp_1.Timestamp.decode(reader, reader.uint32()); + break; + case 7: + message.totalDeposit.push(coin_1.Coin.decode(reader, reader.uint32())); + break; + case 8: + message.votingStartTime = timestamp_1.Timestamp.decode(reader, reader.uint32()); + break; + case 9: + message.votingEndTime = timestamp_1.Timestamp.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -69921,70 +64577,123 @@ exports.FeePool = { return message; }, fromJSON(object) { - return { - communityPool: Array.isArray(object?.communityPool) - ? object.communityPool.map((e) => coin_1.DecCoin.fromJSON(e)) - : [], - }; + const obj = createBaseProposal(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + if ((0, helpers_1.isSet)(object.content)) + obj.content = any_1.Any.fromJSON(object.content); + if ((0, helpers_1.isSet)(object.status)) + obj.status = proposalStatusFromJSON(object.status); + if ((0, helpers_1.isSet)(object.finalTallyResult)) + obj.finalTallyResult = exports.TallyResult.fromJSON(object.finalTallyResult); + if ((0, helpers_1.isSet)(object.submitTime)) + obj.submitTime = (0, helpers_1.fromJsonTimestamp)(object.submitTime); + if ((0, helpers_1.isSet)(object.depositEndTime)) + obj.depositEndTime = (0, helpers_1.fromJsonTimestamp)(object.depositEndTime); + if (Array.isArray(object?.totalDeposit)) + obj.totalDeposit = object.totalDeposit.map((e) => coin_1.Coin.fromJSON(e)); + if ((0, helpers_1.isSet)(object.votingStartTime)) + obj.votingStartTime = (0, helpers_1.fromJsonTimestamp)(object.votingStartTime); + if ((0, helpers_1.isSet)(object.votingEndTime)) + obj.votingEndTime = (0, helpers_1.fromJsonTimestamp)(object.votingEndTime); + return obj; }, toJSON(message) { const obj = {}; - if (message.communityPool) { - obj.communityPool = message.communityPool.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined)); + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); + message.content !== undefined && + (obj.content = message.content ? any_1.Any.toJSON(message.content) : undefined); + message.status !== undefined && (obj.status = proposalStatusToJSON(message.status)); + message.finalTallyResult !== undefined && + (obj.finalTallyResult = message.finalTallyResult + ? exports.TallyResult.toJSON(message.finalTallyResult) + : undefined); + message.submitTime !== undefined && (obj.submitTime = (0, helpers_1.fromTimestamp)(message.submitTime).toISOString()); + message.depositEndTime !== undefined && + (obj.depositEndTime = (0, helpers_1.fromTimestamp)(message.depositEndTime).toISOString()); + if (message.totalDeposit) { + obj.totalDeposit = message.totalDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); } else { - obj.communityPool = []; + obj.totalDeposit = []; } + message.votingStartTime !== undefined && + (obj.votingStartTime = (0, helpers_1.fromTimestamp)(message.votingStartTime).toISOString()); + message.votingEndTime !== undefined && + (obj.votingEndTime = (0, helpers_1.fromTimestamp)(message.votingEndTime).toISOString()); return obj; }, fromPartial(object) { - const message = createBaseFeePool(); - message.communityPool = object.communityPool?.map((e) => coin_1.DecCoin.fromPartial(e)) || []; + const message = createBaseProposal(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); + } + if (object.content !== undefined && object.content !== null) { + message.content = any_1.Any.fromPartial(object.content); + } + message.status = object.status ?? 0; + if (object.finalTallyResult !== undefined && object.finalTallyResult !== null) { + message.finalTallyResult = exports.TallyResult.fromPartial(object.finalTallyResult); + } + if (object.submitTime !== undefined && object.submitTime !== null) { + message.submitTime = timestamp_1.Timestamp.fromPartial(object.submitTime); + } + if (object.depositEndTime !== undefined && object.depositEndTime !== null) { + message.depositEndTime = timestamp_1.Timestamp.fromPartial(object.depositEndTime); + } + message.totalDeposit = object.totalDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || []; + if (object.votingStartTime !== undefined && object.votingStartTime !== null) { + message.votingStartTime = timestamp_1.Timestamp.fromPartial(object.votingStartTime); + } + if (object.votingEndTime !== undefined && object.votingEndTime !== null) { + message.votingEndTime = timestamp_1.Timestamp.fromPartial(object.votingEndTime); + } return message; }, }; -function createBaseCommunityPoolSpendProposal() { +function createBaseTallyResult() { return { - title: "", - description: "", - recipient: "", - amount: [], + yes: "", + abstain: "", + no: "", + noWithVeto: "", }; } -exports.CommunityPoolSpendProposal = { - encode(message, writer = _m0.Writer.create()) { - if (message.title !== "") { - writer.uint32(10).string(message.title); +exports.TallyResult = { + typeUrl: "/cosmos.gov.v1beta1.TallyResult", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.yes !== "") { + writer.uint32(10).string(message.yes); } - if (message.description !== "") { - writer.uint32(18).string(message.description); + if (message.abstain !== "") { + writer.uint32(18).string(message.abstain); } - if (message.recipient !== "") { - writer.uint32(26).string(message.recipient); + if (message.no !== "") { + writer.uint32(26).string(message.no); } - for (const v of message.amount) { - coin_1.Coin.encode(v, writer.uint32(34).fork()).ldelim(); + if (message.noWithVeto !== "") { + writer.uint32(34).string(message.noWithVeto); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCommunityPoolSpendProposal(); + const message = createBaseTallyResult(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.title = reader.string(); + message.yes = reader.string(); break; case 2: - message.description = reader.string(); + message.abstain = reader.string(); break; case 3: - message.recipient = reader.string(); + message.no = reader.string(); break; case 4: - message.amount.push(coin_1.Coin.decode(reader, reader.uint32())); + message.noWithVeto = reader.string(); break; default: reader.skipType(tag & 7); @@ -69994,70 +64703,77 @@ exports.CommunityPoolSpendProposal = { return message; }, fromJSON(object) { - return { - title: (0, helpers_1.isSet)(object.title) ? String(object.title) : "", - description: (0, helpers_1.isSet)(object.description) ? String(object.description) : "", - recipient: (0, helpers_1.isSet)(object.recipient) ? String(object.recipient) : "", - amount: Array.isArray(object?.amount) ? object.amount.map((e) => coin_1.Coin.fromJSON(e)) : [], - }; + const obj = createBaseTallyResult(); + if ((0, helpers_1.isSet)(object.yes)) + obj.yes = String(object.yes); + if ((0, helpers_1.isSet)(object.abstain)) + obj.abstain = String(object.abstain); + if ((0, helpers_1.isSet)(object.no)) + obj.no = String(object.no); + if ((0, helpers_1.isSet)(object.noWithVeto)) + obj.noWithVeto = String(object.noWithVeto); + return obj; }, toJSON(message) { const obj = {}; - message.title !== undefined && (obj.title = message.title); - message.description !== undefined && (obj.description = message.description); - message.recipient !== undefined && (obj.recipient = message.recipient); - if (message.amount) { - obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); - } - else { - obj.amount = []; - } + message.yes !== undefined && (obj.yes = message.yes); + message.abstain !== undefined && (obj.abstain = message.abstain); + message.no !== undefined && (obj.no = message.no); + message.noWithVeto !== undefined && (obj.noWithVeto = message.noWithVeto); return obj; }, fromPartial(object) { - const message = createBaseCommunityPoolSpendProposal(); - message.title = object.title ?? ""; - message.description = object.description ?? ""; - message.recipient = object.recipient ?? ""; - message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || []; + const message = createBaseTallyResult(); + message.yes = object.yes ?? ""; + message.abstain = object.abstain ?? ""; + message.no = object.no ?? ""; + message.noWithVeto = object.noWithVeto ?? ""; return message; }, }; -function createBaseDelegatorStartingInfo() { +function createBaseVote() { return { - previousPeriod: helpers_1.Long.UZERO, - stake: "", - height: helpers_1.Long.UZERO, + proposalId: BigInt(0), + voter: "", + option: 0, + options: [], }; } -exports.DelegatorStartingInfo = { - encode(message, writer = _m0.Writer.create()) { - if (!message.previousPeriod.isZero()) { - writer.uint32(8).uint64(message.previousPeriod); +exports.Vote = { + typeUrl: "/cosmos.gov.v1beta1.Vote", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { + writer.uint32(8).uint64(message.proposalId); } - if (message.stake !== "") { - writer.uint32(18).string(message.stake); + if (message.voter !== "") { + writer.uint32(18).string(message.voter); } - if (!message.height.isZero()) { - writer.uint32(24).uint64(message.height); + if (message.option !== 0) { + writer.uint32(24).int32(message.option); + } + for (const v of message.options) { + exports.WeightedVoteOption.encode(v, writer.uint32(34).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDelegatorStartingInfo(); + const message = createBaseVote(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.previousPeriod = reader.uint64(); + message.proposalId = reader.uint64(); break; case 2: - message.stake = reader.string(); + message.voter = reader.string(); break; case 3: - message.height = reader.uint64(); + message.option = reader.int32(); + break; + case 4: + message.options.push(exports.WeightedVoteOption.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -70067,60 +64783,70 @@ exports.DelegatorStartingInfo = { return message; }, fromJSON(object) { - return { - previousPeriod: (0, helpers_1.isSet)(object.previousPeriod) ? helpers_1.Long.fromValue(object.previousPeriod) : helpers_1.Long.UZERO, - stake: (0, helpers_1.isSet)(object.stake) ? String(object.stake) : "", - height: (0, helpers_1.isSet)(object.height) ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.UZERO, - }; + const obj = createBaseVote(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + if ((0, helpers_1.isSet)(object.voter)) + obj.voter = String(object.voter); + if ((0, helpers_1.isSet)(object.option)) + obj.option = voteOptionFromJSON(object.option); + if (Array.isArray(object?.options)) + obj.options = object.options.map((e) => exports.WeightedVoteOption.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - message.previousPeriod !== undefined && - (obj.previousPeriod = (message.previousPeriod || helpers_1.Long.UZERO).toString()); - message.stake !== undefined && (obj.stake = message.stake); - message.height !== undefined && (obj.height = (message.height || helpers_1.Long.UZERO).toString()); + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); + message.voter !== undefined && (obj.voter = message.voter); + message.option !== undefined && (obj.option = voteOptionToJSON(message.option)); + if (message.options) { + obj.options = message.options.map((e) => (e ? exports.WeightedVoteOption.toJSON(e) : undefined)); + } + else { + obj.options = []; + } return obj; }, fromPartial(object) { - const message = createBaseDelegatorStartingInfo(); - message.previousPeriod = - object.previousPeriod !== undefined && object.previousPeriod !== null - ? helpers_1.Long.fromValue(object.previousPeriod) - : helpers_1.Long.UZERO; - message.stake = object.stake ?? ""; - message.height = - object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.UZERO; + const message = createBaseVote(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); + } + message.voter = object.voter ?? ""; + message.option = object.option ?? 0; + message.options = object.options?.map((e) => exports.WeightedVoteOption.fromPartial(e)) || []; return message; }, }; -function createBaseDelegationDelegatorReward() { +function createBaseDepositParams() { return { - validatorAddress: "", - reward: [], + minDeposit: [], + maxDepositPeriod: duration_1.Duration.fromPartial({}), }; } -exports.DelegationDelegatorReward = { - encode(message, writer = _m0.Writer.create()) { - if (message.validatorAddress !== "") { - writer.uint32(10).string(message.validatorAddress); +exports.DepositParams = { + typeUrl: "/cosmos.gov.v1beta1.DepositParams", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.minDeposit) { + coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim(); } - for (const v of message.reward) { - coin_1.DecCoin.encode(v, writer.uint32(18).fork()).ldelim(); + if (message.maxDepositPeriod !== undefined) { + duration_1.Duration.encode(message.maxDepositPeriod, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDelegationDelegatorReward(); + const message = createBaseDepositParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.validatorAddress = reader.string(); + message.minDeposit.push(coin_1.Coin.decode(reader, reader.uint32())); break; case 2: - message.reward.push(coin_1.DecCoin.decode(reader, reader.uint32())); + message.maxDepositPeriod = duration_1.Duration.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -70130,78 +64856,58 @@ exports.DelegationDelegatorReward = { return message; }, fromJSON(object) { - return { - validatorAddress: (0, helpers_1.isSet)(object.validatorAddress) ? String(object.validatorAddress) : "", - reward: Array.isArray(object?.reward) ? object.reward.map((e) => coin_1.DecCoin.fromJSON(e)) : [], - }; + const obj = createBaseDepositParams(); + if (Array.isArray(object?.minDeposit)) + obj.minDeposit = object.minDeposit.map((e) => coin_1.Coin.fromJSON(e)); + if ((0, helpers_1.isSet)(object.maxDepositPeriod)) + obj.maxDepositPeriod = duration_1.Duration.fromJSON(object.maxDepositPeriod); + return obj; }, toJSON(message) { const obj = {}; - message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress); - if (message.reward) { - obj.reward = message.reward.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined)); + if (message.minDeposit) { + obj.minDeposit = message.minDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); } else { - obj.reward = []; + obj.minDeposit = []; } + message.maxDepositPeriod !== undefined && + (obj.maxDepositPeriod = message.maxDepositPeriod + ? duration_1.Duration.toJSON(message.maxDepositPeriod) + : undefined); return obj; }, fromPartial(object) { - const message = createBaseDelegationDelegatorReward(); - message.validatorAddress = object.validatorAddress ?? ""; - message.reward = object.reward?.map((e) => coin_1.DecCoin.fromPartial(e)) || []; + const message = createBaseDepositParams(); + message.minDeposit = object.minDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || []; + if (object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null) { + message.maxDepositPeriod = duration_1.Duration.fromPartial(object.maxDepositPeriod); + } return message; }, }; -function createBaseCommunityPoolSpendProposalWithDeposit() { +function createBaseVotingParams() { return { - title: "", - description: "", - recipient: "", - amount: "", - deposit: "", + votingPeriod: duration_1.Duration.fromPartial({}), }; } -exports.CommunityPoolSpendProposalWithDeposit = { - encode(message, writer = _m0.Writer.create()) { - if (message.title !== "") { - writer.uint32(10).string(message.title); - } - if (message.description !== "") { - writer.uint32(18).string(message.description); - } - if (message.recipient !== "") { - writer.uint32(26).string(message.recipient); - } - if (message.amount !== "") { - writer.uint32(34).string(message.amount); - } - if (message.deposit !== "") { - writer.uint32(42).string(message.deposit); +exports.VotingParams = { + typeUrl: "/cosmos.gov.v1beta1.VotingParams", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.votingPeriod !== undefined) { + duration_1.Duration.encode(message.votingPeriod, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCommunityPoolSpendProposalWithDeposit(); + const message = createBaseVotingParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.title = reader.string(); - break; - case 2: - message.description = reader.string(); - break; - case 3: - message.recipient = reader.string(); - break; - case 4: - message.amount = reader.string(); - break; - case 5: - message.deposit = reader.string(); + message.votingPeriod = duration_1.Duration.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -70211,91 +64917,62 @@ exports.CommunityPoolSpendProposalWithDeposit = { return message; }, fromJSON(object) { - return { - title: (0, helpers_1.isSet)(object.title) ? String(object.title) : "", - description: (0, helpers_1.isSet)(object.description) ? String(object.description) : "", - recipient: (0, helpers_1.isSet)(object.recipient) ? String(object.recipient) : "", - amount: (0, helpers_1.isSet)(object.amount) ? String(object.amount) : "", - deposit: (0, helpers_1.isSet)(object.deposit) ? String(object.deposit) : "", - }; + const obj = createBaseVotingParams(); + if ((0, helpers_1.isSet)(object.votingPeriod)) + obj.votingPeriod = duration_1.Duration.fromJSON(object.votingPeriod); + return obj; }, toJSON(message) { const obj = {}; - message.title !== undefined && (obj.title = message.title); - message.description !== undefined && (obj.description = message.description); - message.recipient !== undefined && (obj.recipient = message.recipient); - message.amount !== undefined && (obj.amount = message.amount); - message.deposit !== undefined && (obj.deposit = message.deposit); + message.votingPeriod !== undefined && + (obj.votingPeriod = message.votingPeriod ? duration_1.Duration.toJSON(message.votingPeriod) : undefined); return obj; }, fromPartial(object) { - const message = createBaseCommunityPoolSpendProposalWithDeposit(); - message.title = object.title ?? ""; - message.description = object.description ?? ""; - message.recipient = object.recipient ?? ""; - message.amount = object.amount ?? ""; - message.deposit = object.deposit ?? ""; + const message = createBaseVotingParams(); + if (object.votingPeriod !== undefined && object.votingPeriod !== null) { + message.votingPeriod = duration_1.Duration.fromPartial(object.votingPeriod); + } return message; }, }; -//# sourceMappingURL=distribution.js.map - -/***/ }), - -/***/ "./node_modules/cosmjs-types/cosmos/distribution/v1beta1/query.js": -/*!************************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/distribution/v1beta1/query.js ***! - \************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.QueryClientImpl = exports.QueryCommunityPoolResponse = exports.QueryCommunityPoolRequest = exports.QueryDelegatorWithdrawAddressResponse = exports.QueryDelegatorWithdrawAddressRequest = exports.QueryDelegatorValidatorsResponse = exports.QueryDelegatorValidatorsRequest = exports.QueryDelegationTotalRewardsResponse = exports.QueryDelegationTotalRewardsRequest = exports.QueryDelegationRewardsResponse = exports.QueryDelegationRewardsRequest = exports.QueryValidatorSlashesResponse = exports.QueryValidatorSlashesRequest = exports.QueryValidatorCommissionResponse = exports.QueryValidatorCommissionRequest = exports.QueryValidatorOutstandingRewardsResponse = exports.QueryValidatorOutstandingRewardsRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.protobufPackage = void 0; -/* eslint-disable */ -const pagination_1 = __webpack_require__(/*! ../../base/query/v1beta1/pagination */ "./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js"); -const distribution_1 = __webpack_require__(/*! ./distribution */ "./node_modules/cosmjs-types/cosmos/distribution/v1beta1/distribution.js"); -const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -exports.protobufPackage = "cosmos.distribution.v1beta1"; -function createBaseQueryParamsRequest() { - return {}; +function createBaseTallyParams() { + return { + quorum: new Uint8Array(), + threshold: new Uint8Array(), + vetoThreshold: new Uint8Array(), + }; } -exports.QueryParamsRequest = { - encode(_, writer = _m0.Writer.create()) { +exports.TallyParams = { + typeUrl: "/cosmos.gov.v1beta1.TallyParams", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.quorum.length !== 0) { + writer.uint32(10).bytes(message.quorum); + } + if (message.threshold.length !== 0) { + writer.uint32(18).bytes(message.threshold); + } + if (message.vetoThreshold.length !== 0) { + writer.uint32(26).bytes(message.vetoThreshold); + } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsRequest(); + const message = createBaseTallyParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.quorum = reader.bytes(); + break; + case 2: + message.threshold = reader.bytes(); + break; + case 3: + message.vetoThreshold = reader.bytes(); + break; default: reader.skipType(tag & 7); break; @@ -70303,39 +64980,76 @@ exports.QueryParamsRequest = { } return message; }, - fromJSON(_) { - return {}; + fromJSON(object) { + const obj = createBaseTallyParams(); + if ((0, helpers_1.isSet)(object.quorum)) + obj.quorum = (0, helpers_1.bytesFromBase64)(object.quorum); + if ((0, helpers_1.isSet)(object.threshold)) + obj.threshold = (0, helpers_1.bytesFromBase64)(object.threshold); + if ((0, helpers_1.isSet)(object.vetoThreshold)) + obj.vetoThreshold = (0, helpers_1.bytesFromBase64)(object.vetoThreshold); + return obj; }, - toJSON(_) { + toJSON(message) { const obj = {}; + message.quorum !== undefined && + (obj.quorum = (0, helpers_1.base64FromBytes)(message.quorum !== undefined ? message.quorum : new Uint8Array())); + message.threshold !== undefined && + (obj.threshold = (0, helpers_1.base64FromBytes)(message.threshold !== undefined ? message.threshold : new Uint8Array())); + message.vetoThreshold !== undefined && + (obj.vetoThreshold = (0, helpers_1.base64FromBytes)(message.vetoThreshold !== undefined ? message.vetoThreshold : new Uint8Array())); return obj; }, - fromPartial(_) { - const message = createBaseQueryParamsRequest(); + fromPartial(object) { + const message = createBaseTallyParams(); + message.quorum = object.quorum ?? new Uint8Array(); + message.threshold = object.threshold ?? new Uint8Array(); + message.vetoThreshold = object.vetoThreshold ?? new Uint8Array(); return message; }, }; -function createBaseQueryParamsResponse() { +//# sourceMappingURL=gov.js.map + +/***/ }), + +/***/ "./node_modules/cosmjs-types/cosmos/gov/v1beta1/query.js": +/*!***************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/gov/v1beta1/query.js ***! + \***************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.QueryClientImpl = exports.QueryTallyResultResponse = exports.QueryTallyResultRequest = exports.QueryDepositsResponse = exports.QueryDepositsRequest = exports.QueryDepositResponse = exports.QueryDepositRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryVotesResponse = exports.QueryVotesRequest = exports.QueryVoteResponse = exports.QueryVoteRequest = exports.QueryProposalsResponse = exports.QueryProposalsRequest = exports.QueryProposalResponse = exports.QueryProposalRequest = exports.protobufPackage = void 0; +/* eslint-disable */ +const gov_1 = __webpack_require__(/*! ./gov */ "./node_modules/cosmjs-types/cosmos/gov/v1beta1/gov.js"); +const pagination_1 = __webpack_require__(/*! ../../base/query/v1beta1/pagination */ "./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "cosmos.gov.v1beta1"; +function createBaseQueryProposalRequest() { return { - params: undefined, + proposalId: BigInt(0), }; } -exports.QueryParamsResponse = { - encode(message, writer = _m0.Writer.create()) { - if (message.params !== undefined) { - distribution_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim(); +exports.QueryProposalRequest = { + typeUrl: "/cosmos.gov.v1beta1.QueryProposalRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { + writer.uint32(8).uint64(message.proposalId); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsResponse(); + const message = createBaseQueryProposalRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.params = distribution_1.Params.decode(reader, reader.uint32()); + message.proposalId = reader.uint64(); break; default: reader.skipType(tag & 7); @@ -70345,43 +65059,46 @@ exports.QueryParamsResponse = { return message; }, fromJSON(object) { - return { - params: (0, helpers_1.isSet)(object.params) ? distribution_1.Params.fromJSON(object.params) : undefined, - }; + const obj = createBaseQueryProposalRequest(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + return obj; }, toJSON(message) { const obj = {}; - message.params !== undefined && (obj.params = message.params ? distribution_1.Params.toJSON(message.params) : undefined); + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); return obj; }, fromPartial(object) { - const message = createBaseQueryParamsResponse(); - message.params = - object.params !== undefined && object.params !== null ? distribution_1.Params.fromPartial(object.params) : undefined; + const message = createBaseQueryProposalRequest(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); + } return message; }, }; -function createBaseQueryValidatorOutstandingRewardsRequest() { +function createBaseQueryProposalResponse() { return { - validatorAddress: "", + proposal: gov_1.Proposal.fromPartial({}), }; } -exports.QueryValidatorOutstandingRewardsRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.validatorAddress !== "") { - writer.uint32(10).string(message.validatorAddress); +exports.QueryProposalResponse = { + typeUrl: "/cosmos.gov.v1beta1.QueryProposalResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposal !== undefined) { + gov_1.Proposal.encode(message.proposal, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorOutstandingRewardsRequest(); + const message = createBaseQueryProposalResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.validatorAddress = reader.string(); + message.proposal = gov_1.Proposal.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -70391,42 +65108,68 @@ exports.QueryValidatorOutstandingRewardsRequest = { return message; }, fromJSON(object) { - return { - validatorAddress: (0, helpers_1.isSet)(object.validatorAddress) ? String(object.validatorAddress) : "", - }; + const obj = createBaseQueryProposalResponse(); + if ((0, helpers_1.isSet)(object.proposal)) + obj.proposal = gov_1.Proposal.fromJSON(object.proposal); + return obj; }, toJSON(message) { const obj = {}; - message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress); + message.proposal !== undefined && + (obj.proposal = message.proposal ? gov_1.Proposal.toJSON(message.proposal) : undefined); return obj; }, fromPartial(object) { - const message = createBaseQueryValidatorOutstandingRewardsRequest(); - message.validatorAddress = object.validatorAddress ?? ""; + const message = createBaseQueryProposalResponse(); + if (object.proposal !== undefined && object.proposal !== null) { + message.proposal = gov_1.Proposal.fromPartial(object.proposal); + } return message; }, }; -function createBaseQueryValidatorOutstandingRewardsResponse() { +function createBaseQueryProposalsRequest() { return { - rewards: undefined, + proposalStatus: 0, + voter: "", + depositor: "", + pagination: undefined, }; } -exports.QueryValidatorOutstandingRewardsResponse = { - encode(message, writer = _m0.Writer.create()) { - if (message.rewards !== undefined) { - distribution_1.ValidatorOutstandingRewards.encode(message.rewards, writer.uint32(10).fork()).ldelim(); +exports.QueryProposalsRequest = { + typeUrl: "/cosmos.gov.v1beta1.QueryProposalsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalStatus !== 0) { + writer.uint32(8).int32(message.proposalStatus); + } + if (message.voter !== "") { + writer.uint32(18).string(message.voter); + } + if (message.depositor !== "") { + writer.uint32(26).string(message.depositor); + } + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorOutstandingRewardsResponse(); + const message = createBaseQueryProposalsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.rewards = distribution_1.ValidatorOutstandingRewards.decode(reader, reader.uint32()); + message.proposalStatus = reader.int32(); + break; + case 2: + message.voter = reader.string(); + break; + case 3: + message.depositor = reader.string(); + break; + case 4: + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -70436,46 +65179,67 @@ exports.QueryValidatorOutstandingRewardsResponse = { return message; }, fromJSON(object) { - return { - rewards: (0, helpers_1.isSet)(object.rewards) ? distribution_1.ValidatorOutstandingRewards.fromJSON(object.rewards) : undefined, - }; + const obj = createBaseQueryProposalsRequest(); + if ((0, helpers_1.isSet)(object.proposalStatus)) + obj.proposalStatus = (0, gov_1.proposalStatusFromJSON)(object.proposalStatus); + if ((0, helpers_1.isSet)(object.voter)) + obj.voter = String(object.voter); + if ((0, helpers_1.isSet)(object.depositor)) + obj.depositor = String(object.depositor); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; - message.rewards !== undefined && - (obj.rewards = message.rewards ? distribution_1.ValidatorOutstandingRewards.toJSON(message.rewards) : undefined); + message.proposalStatus !== undefined && + (obj.proposalStatus = (0, gov_1.proposalStatusToJSON)(message.proposalStatus)); + message.voter !== undefined && (obj.voter = message.voter); + message.depositor !== undefined && (obj.depositor = message.depositor); + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); return obj; }, fromPartial(object) { - const message = createBaseQueryValidatorOutstandingRewardsResponse(); - message.rewards = - object.rewards !== undefined && object.rewards !== null - ? distribution_1.ValidatorOutstandingRewards.fromPartial(object.rewards) - : undefined; + const message = createBaseQueryProposalsRequest(); + message.proposalStatus = object.proposalStatus ?? 0; + message.voter = object.voter ?? ""; + message.depositor = object.depositor ?? ""; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } return message; }, }; -function createBaseQueryValidatorCommissionRequest() { +function createBaseQueryProposalsResponse() { return { - validatorAddress: "", + proposals: [], + pagination: undefined, }; } -exports.QueryValidatorCommissionRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.validatorAddress !== "") { - writer.uint32(10).string(message.validatorAddress); +exports.QueryProposalsResponse = { + typeUrl: "/cosmos.gov.v1beta1.QueryProposalsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.proposals) { + gov_1.Proposal.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorCommissionRequest(); + const message = createBaseQueryProposalsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.validatorAddress = reader.string(); + message.proposals.push(gov_1.Proposal.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -70485,42 +65249,63 @@ exports.QueryValidatorCommissionRequest = { return message; }, fromJSON(object) { - return { - validatorAddress: (0, helpers_1.isSet)(object.validatorAddress) ? String(object.validatorAddress) : "", - }; + const obj = createBaseQueryProposalsResponse(); + if (Array.isArray(object?.proposals)) + obj.proposals = object.proposals.map((e) => gov_1.Proposal.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; - message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress); + if (message.proposals) { + obj.proposals = message.proposals.map((e) => (e ? gov_1.Proposal.toJSON(e) : undefined)); + } + else { + obj.proposals = []; + } + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); return obj; }, fromPartial(object) { - const message = createBaseQueryValidatorCommissionRequest(); - message.validatorAddress = object.validatorAddress ?? ""; + const message = createBaseQueryProposalsResponse(); + message.proposals = object.proposals?.map((e) => gov_1.Proposal.fromPartial(e)) || []; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } return message; }, }; -function createBaseQueryValidatorCommissionResponse() { +function createBaseQueryVoteRequest() { return { - commission: undefined, + proposalId: BigInt(0), + voter: "", }; } -exports.QueryValidatorCommissionResponse = { - encode(message, writer = _m0.Writer.create()) { - if (message.commission !== undefined) { - distribution_1.ValidatorAccumulatedCommission.encode(message.commission, writer.uint32(10).fork()).ldelim(); +exports.QueryVoteRequest = { + typeUrl: "/cosmos.gov.v1beta1.QueryVoteRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { + writer.uint32(8).uint64(message.proposalId); + } + if (message.voter !== "") { + writer.uint32(18).string(message.voter); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorCommissionResponse(); + const message = createBaseQueryVoteRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.commission = distribution_1.ValidatorAccumulatedCommission.decode(reader, reader.uint32()); + message.proposalId = reader.uint64(); + break; + case 2: + message.voter = reader.string(); break; default: reader.skipType(tag & 7); @@ -70530,71 +65315,50 @@ exports.QueryValidatorCommissionResponse = { return message; }, fromJSON(object) { - return { - commission: (0, helpers_1.isSet)(object.commission) - ? distribution_1.ValidatorAccumulatedCommission.fromJSON(object.commission) - : undefined, - }; + const obj = createBaseQueryVoteRequest(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + if ((0, helpers_1.isSet)(object.voter)) + obj.voter = String(object.voter); + return obj; }, toJSON(message) { const obj = {}; - message.commission !== undefined && - (obj.commission = message.commission - ? distribution_1.ValidatorAccumulatedCommission.toJSON(message.commission) - : undefined); + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); + message.voter !== undefined && (obj.voter = message.voter); return obj; }, fromPartial(object) { - const message = createBaseQueryValidatorCommissionResponse(); - message.commission = - object.commission !== undefined && object.commission !== null - ? distribution_1.ValidatorAccumulatedCommission.fromPartial(object.commission) - : undefined; + const message = createBaseQueryVoteRequest(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); + } + message.voter = object.voter ?? ""; return message; }, }; -function createBaseQueryValidatorSlashesRequest() { +function createBaseQueryVoteResponse() { return { - validatorAddress: "", - startingHeight: helpers_1.Long.UZERO, - endingHeight: helpers_1.Long.UZERO, - pagination: undefined, + vote: gov_1.Vote.fromPartial({}), }; } -exports.QueryValidatorSlashesRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.validatorAddress !== "") { - writer.uint32(10).string(message.validatorAddress); - } - if (!message.startingHeight.isZero()) { - writer.uint32(16).uint64(message.startingHeight); - } - if (!message.endingHeight.isZero()) { - writer.uint32(24).uint64(message.endingHeight); - } - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim(); +exports.QueryVoteResponse = { + typeUrl: "/cosmos.gov.v1beta1.QueryVoteResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.vote !== undefined) { + gov_1.Vote.encode(message.vote, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorSlashesRequest(); + const message = createBaseQueryVoteResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.validatorAddress = reader.string(); - break; - case 2: - message.startingHeight = reader.uint64(); - break; - case 3: - message.endingHeight = reader.uint64(); - break; - case 4: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.vote = gov_1.Vote.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -70604,70 +65368,53 @@ exports.QueryValidatorSlashesRequest = { return message; }, fromJSON(object) { - return { - validatorAddress: (0, helpers_1.isSet)(object.validatorAddress) ? String(object.validatorAddress) : "", - startingHeight: (0, helpers_1.isSet)(object.startingHeight) ? helpers_1.Long.fromValue(object.startingHeight) : helpers_1.Long.UZERO, - endingHeight: (0, helpers_1.isSet)(object.endingHeight) ? helpers_1.Long.fromValue(object.endingHeight) : helpers_1.Long.UZERO, - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryVoteResponse(); + if ((0, helpers_1.isSet)(object.vote)) + obj.vote = gov_1.Vote.fromJSON(object.vote); + return obj; }, toJSON(message) { const obj = {}; - message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress); - message.startingHeight !== undefined && - (obj.startingHeight = (message.startingHeight || helpers_1.Long.UZERO).toString()); - message.endingHeight !== undefined && - (obj.endingHeight = (message.endingHeight || helpers_1.Long.UZERO).toString()); - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + message.vote !== undefined && (obj.vote = message.vote ? gov_1.Vote.toJSON(message.vote) : undefined); return obj; }, fromPartial(object) { - const message = createBaseQueryValidatorSlashesRequest(); - message.validatorAddress = object.validatorAddress ?? ""; - message.startingHeight = - object.startingHeight !== undefined && object.startingHeight !== null - ? helpers_1.Long.fromValue(object.startingHeight) - : helpers_1.Long.UZERO; - message.endingHeight = - object.endingHeight !== undefined && object.endingHeight !== null - ? helpers_1.Long.fromValue(object.endingHeight) - : helpers_1.Long.UZERO; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + const message = createBaseQueryVoteResponse(); + if (object.vote !== undefined && object.vote !== null) { + message.vote = gov_1.Vote.fromPartial(object.vote); + } return message; }, }; -function createBaseQueryValidatorSlashesResponse() { +function createBaseQueryVotesRequest() { return { - slashes: [], + proposalId: BigInt(0), pagination: undefined, }; } -exports.QueryValidatorSlashesResponse = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.slashes) { - distribution_1.ValidatorSlashEvent.encode(v, writer.uint32(10).fork()).ldelim(); +exports.QueryVotesRequest = { + typeUrl: "/cosmos.gov.v1beta1.QueryVotesRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { + writer.uint32(8).uint64(message.proposalId); } if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorSlashesResponse(); + const message = createBaseQueryVotesRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.slashes.push(distribution_1.ValidatorSlashEvent.decode(reader, reader.uint32())); + message.proposalId = reader.uint64(); break; case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -70677,63 +65424,60 @@ exports.QueryValidatorSlashesResponse = { return message; }, fromJSON(object) { - return { - slashes: Array.isArray(object?.slashes) - ? object.slashes.map((e) => distribution_1.ValidatorSlashEvent.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryVotesRequest(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; - if (message.slashes) { - obj.slashes = message.slashes.map((e) => (e ? distribution_1.ValidatorSlashEvent.toJSON(e) : undefined)); - } - else { - obj.slashes = []; - } + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); + (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); return obj; }, fromPartial(object) { - const message = createBaseQueryValidatorSlashesResponse(); - message.slashes = object.slashes?.map((e) => distribution_1.ValidatorSlashEvent.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + const message = createBaseQueryVotesRequest(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } return message; }, }; -function createBaseQueryDelegationRewardsRequest() { +function createBaseQueryVotesResponse() { return { - delegatorAddress: "", - validatorAddress: "", + votes: [], + pagination: undefined, }; } -exports.QueryDelegationRewardsRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); +exports.QueryVotesResponse = { + typeUrl: "/cosmos.gov.v1beta1.QueryVotesResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.votes) { + gov_1.Vote.encode(v, writer.uint32(10).fork()).ldelim(); } - if (message.validatorAddress !== "") { - writer.uint32(18).string(message.validatorAddress); + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegationRewardsRequest(); + const message = createBaseQueryVotesResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.delegatorAddress = reader.string(); + message.votes.push(gov_1.Vote.decode(reader, reader.uint32())); break; case 2: - message.validatorAddress = reader.string(); + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -70743,45 +65487,56 @@ exports.QueryDelegationRewardsRequest = { return message; }, fromJSON(object) { - return { - delegatorAddress: (0, helpers_1.isSet)(object.delegatorAddress) ? String(object.delegatorAddress) : "", - validatorAddress: (0, helpers_1.isSet)(object.validatorAddress) ? String(object.validatorAddress) : "", - }; + const obj = createBaseQueryVotesResponse(); + if (Array.isArray(object?.votes)) + obj.votes = object.votes.map((e) => gov_1.Vote.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; - message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress); - message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress); + if (message.votes) { + obj.votes = message.votes.map((e) => (e ? gov_1.Vote.toJSON(e) : undefined)); + } + else { + obj.votes = []; + } + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); return obj; }, fromPartial(object) { - const message = createBaseQueryDelegationRewardsRequest(); - message.delegatorAddress = object.delegatorAddress ?? ""; - message.validatorAddress = object.validatorAddress ?? ""; + const message = createBaseQueryVotesResponse(); + message.votes = object.votes?.map((e) => gov_1.Vote.fromPartial(e)) || []; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } return message; }, }; -function createBaseQueryDelegationRewardsResponse() { +function createBaseQueryParamsRequest() { return { - rewards: [], + paramsType: "", }; } -exports.QueryDelegationRewardsResponse = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.rewards) { - coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim(); +exports.QueryParamsRequest = { + typeUrl: "/cosmos.gov.v1beta1.QueryParamsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.paramsType !== "") { + writer.uint32(10).string(message.paramsType); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegationRewardsResponse(); + const message = createBaseQueryParamsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.rewards.push(coin_1.DecCoin.decode(reader, reader.uint32())); + message.paramsType = reader.string(); break; default: reader.skipType(tag & 7); @@ -70791,47 +65546,58 @@ exports.QueryDelegationRewardsResponse = { return message; }, fromJSON(object) { - return { - rewards: Array.isArray(object?.rewards) ? object.rewards.map((e) => coin_1.DecCoin.fromJSON(e)) : [], - }; + const obj = createBaseQueryParamsRequest(); + if ((0, helpers_1.isSet)(object.paramsType)) + obj.paramsType = String(object.paramsType); + return obj; }, toJSON(message) { const obj = {}; - if (message.rewards) { - obj.rewards = message.rewards.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined)); - } - else { - obj.rewards = []; - } + message.paramsType !== undefined && (obj.paramsType = message.paramsType); return obj; }, fromPartial(object) { - const message = createBaseQueryDelegationRewardsResponse(); - message.rewards = object.rewards?.map((e) => coin_1.DecCoin.fromPartial(e)) || []; + const message = createBaseQueryParamsRequest(); + message.paramsType = object.paramsType ?? ""; return message; }, }; -function createBaseQueryDelegationTotalRewardsRequest() { +function createBaseQueryParamsResponse() { return { - delegatorAddress: "", + votingParams: gov_1.VotingParams.fromPartial({}), + depositParams: gov_1.DepositParams.fromPartial({}), + tallyParams: gov_1.TallyParams.fromPartial({}), }; } -exports.QueryDelegationTotalRewardsRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); +exports.QueryParamsResponse = { + typeUrl: "/cosmos.gov.v1beta1.QueryParamsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.votingParams !== undefined) { + gov_1.VotingParams.encode(message.votingParams, writer.uint32(10).fork()).ldelim(); + } + if (message.depositParams !== undefined) { + gov_1.DepositParams.encode(message.depositParams, writer.uint32(18).fork()).ldelim(); + } + if (message.tallyParams !== undefined) { + gov_1.TallyParams.encode(message.tallyParams, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegationTotalRewardsRequest(); + const message = createBaseQueryParamsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.delegatorAddress = reader.string(); + message.votingParams = gov_1.VotingParams.decode(reader, reader.uint32()); + break; + case 2: + message.depositParams = gov_1.DepositParams.decode(reader, reader.uint32()); + break; + case 3: + message.tallyParams = gov_1.TallyParams.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -70841,49 +65607,68 @@ exports.QueryDelegationTotalRewardsRequest = { return message; }, fromJSON(object) { - return { - delegatorAddress: (0, helpers_1.isSet)(object.delegatorAddress) ? String(object.delegatorAddress) : "", - }; + const obj = createBaseQueryParamsResponse(); + if ((0, helpers_1.isSet)(object.votingParams)) + obj.votingParams = gov_1.VotingParams.fromJSON(object.votingParams); + if ((0, helpers_1.isSet)(object.depositParams)) + obj.depositParams = gov_1.DepositParams.fromJSON(object.depositParams); + if ((0, helpers_1.isSet)(object.tallyParams)) + obj.tallyParams = gov_1.TallyParams.fromJSON(object.tallyParams); + return obj; }, toJSON(message) { const obj = {}; - message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress); + message.votingParams !== undefined && + (obj.votingParams = message.votingParams ? gov_1.VotingParams.toJSON(message.votingParams) : undefined); + message.depositParams !== undefined && + (obj.depositParams = message.depositParams ? gov_1.DepositParams.toJSON(message.depositParams) : undefined); + message.tallyParams !== undefined && + (obj.tallyParams = message.tallyParams ? gov_1.TallyParams.toJSON(message.tallyParams) : undefined); return obj; }, fromPartial(object) { - const message = createBaseQueryDelegationTotalRewardsRequest(); - message.delegatorAddress = object.delegatorAddress ?? ""; + const message = createBaseQueryParamsResponse(); + if (object.votingParams !== undefined && object.votingParams !== null) { + message.votingParams = gov_1.VotingParams.fromPartial(object.votingParams); + } + if (object.depositParams !== undefined && object.depositParams !== null) { + message.depositParams = gov_1.DepositParams.fromPartial(object.depositParams); + } + if (object.tallyParams !== undefined && object.tallyParams !== null) { + message.tallyParams = gov_1.TallyParams.fromPartial(object.tallyParams); + } return message; }, }; -function createBaseQueryDelegationTotalRewardsResponse() { +function createBaseQueryDepositRequest() { return { - rewards: [], - total: [], + proposalId: BigInt(0), + depositor: "", }; } -exports.QueryDelegationTotalRewardsResponse = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.rewards) { - distribution_1.DelegationDelegatorReward.encode(v, writer.uint32(10).fork()).ldelim(); +exports.QueryDepositRequest = { + typeUrl: "/cosmos.gov.v1beta1.QueryDepositRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { + writer.uint32(8).uint64(message.proposalId); } - for (const v of message.total) { - coin_1.DecCoin.encode(v, writer.uint32(18).fork()).ldelim(); + if (message.depositor !== "") { + writer.uint32(18).string(message.depositor); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegationTotalRewardsResponse(); + const message = createBaseQueryDepositRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.rewards.push(distribution_1.DelegationDelegatorReward.decode(reader, reader.uint32())); + message.proposalId = reader.uint64(); break; case 2: - message.total.push(coin_1.DecCoin.decode(reader, reader.uint32())); + message.depositor = reader.string(); break; default: reader.skipType(tag & 7); @@ -70893,57 +65678,50 @@ exports.QueryDelegationTotalRewardsResponse = { return message; }, fromJSON(object) { - return { - rewards: Array.isArray(object?.rewards) - ? object.rewards.map((e) => distribution_1.DelegationDelegatorReward.fromJSON(e)) - : [], - total: Array.isArray(object?.total) ? object.total.map((e) => coin_1.DecCoin.fromJSON(e)) : [], - }; + const obj = createBaseQueryDepositRequest(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + if ((0, helpers_1.isSet)(object.depositor)) + obj.depositor = String(object.depositor); + return obj; }, toJSON(message) { const obj = {}; - if (message.rewards) { - obj.rewards = message.rewards.map((e) => (e ? distribution_1.DelegationDelegatorReward.toJSON(e) : undefined)); - } - else { - obj.rewards = []; - } - if (message.total) { - obj.total = message.total.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined)); - } - else { - obj.total = []; - } + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); + message.depositor !== undefined && (obj.depositor = message.depositor); return obj; }, fromPartial(object) { - const message = createBaseQueryDelegationTotalRewardsResponse(); - message.rewards = object.rewards?.map((e) => distribution_1.DelegationDelegatorReward.fromPartial(e)) || []; - message.total = object.total?.map((e) => coin_1.DecCoin.fromPartial(e)) || []; + const message = createBaseQueryDepositRequest(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); + } + message.depositor = object.depositor ?? ""; return message; }, }; -function createBaseQueryDelegatorValidatorsRequest() { +function createBaseQueryDepositResponse() { return { - delegatorAddress: "", + deposit: gov_1.Deposit.fromPartial({}), }; } -exports.QueryDelegatorValidatorsRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); +exports.QueryDepositResponse = { + typeUrl: "/cosmos.gov.v1beta1.QueryDepositResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.deposit !== undefined) { + gov_1.Deposit.encode(message.deposit, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorValidatorsRequest(); + const message = createBaseQueryDepositResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.delegatorAddress = reader.string(); + message.deposit = gov_1.Deposit.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -70953,42 +65731,54 @@ exports.QueryDelegatorValidatorsRequest = { return message; }, fromJSON(object) { - return { - delegatorAddress: (0, helpers_1.isSet)(object.delegatorAddress) ? String(object.delegatorAddress) : "", - }; + const obj = createBaseQueryDepositResponse(); + if ((0, helpers_1.isSet)(object.deposit)) + obj.deposit = gov_1.Deposit.fromJSON(object.deposit); + return obj; }, toJSON(message) { const obj = {}; - message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress); + message.deposit !== undefined && + (obj.deposit = message.deposit ? gov_1.Deposit.toJSON(message.deposit) : undefined); return obj; }, fromPartial(object) { - const message = createBaseQueryDelegatorValidatorsRequest(); - message.delegatorAddress = object.delegatorAddress ?? ""; + const message = createBaseQueryDepositResponse(); + if (object.deposit !== undefined && object.deposit !== null) { + message.deposit = gov_1.Deposit.fromPartial(object.deposit); + } return message; }, }; -function createBaseQueryDelegatorValidatorsResponse() { +function createBaseQueryDepositsRequest() { return { - validators: [], + proposalId: BigInt(0), + pagination: undefined, }; } -exports.QueryDelegatorValidatorsResponse = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.validators) { - writer.uint32(10).string(v); +exports.QueryDepositsRequest = { + typeUrl: "/cosmos.gov.v1beta1.QueryDepositsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { + writer.uint32(8).uint64(message.proposalId); + } + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorValidatorsResponse(); + const message = createBaseQueryDepositsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.validators.push(reader.string()); + message.proposalId = reader.uint64(); + break; + case 2: + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -70998,47 +65788,60 @@ exports.QueryDelegatorValidatorsResponse = { return message; }, fromJSON(object) { - return { - validators: Array.isArray(object?.validators) ? object.validators.map((e) => String(e)) : [], - }; + const obj = createBaseQueryDepositsRequest(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; - if (message.validators) { - obj.validators = message.validators.map((e) => e); - } - else { - obj.validators = []; - } + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); return obj; }, fromPartial(object) { - const message = createBaseQueryDelegatorValidatorsResponse(); - message.validators = object.validators?.map((e) => e) || []; + const message = createBaseQueryDepositsRequest(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } return message; }, }; -function createBaseQueryDelegatorWithdrawAddressRequest() { +function createBaseQueryDepositsResponse() { return { - delegatorAddress: "", + deposits: [], + pagination: undefined, }; } -exports.QueryDelegatorWithdrawAddressRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); +exports.QueryDepositsResponse = { + typeUrl: "/cosmos.gov.v1beta1.QueryDepositsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.deposits) { + gov_1.Deposit.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorWithdrawAddressRequest(); + const message = createBaseQueryDepositsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.delegatorAddress = reader.string(); + message.deposits.push(gov_1.Deposit.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -71048,42 +65851,56 @@ exports.QueryDelegatorWithdrawAddressRequest = { return message; }, fromJSON(object) { - return { - delegatorAddress: (0, helpers_1.isSet)(object.delegatorAddress) ? String(object.delegatorAddress) : "", - }; + const obj = createBaseQueryDepositsResponse(); + if (Array.isArray(object?.deposits)) + obj.deposits = object.deposits.map((e) => gov_1.Deposit.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; - message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress); + if (message.deposits) { + obj.deposits = message.deposits.map((e) => (e ? gov_1.Deposit.toJSON(e) : undefined)); + } + else { + obj.deposits = []; + } + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); return obj; }, fromPartial(object) { - const message = createBaseQueryDelegatorWithdrawAddressRequest(); - message.delegatorAddress = object.delegatorAddress ?? ""; + const message = createBaseQueryDepositsResponse(); + message.deposits = object.deposits?.map((e) => gov_1.Deposit.fromPartial(e)) || []; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } return message; }, }; -function createBaseQueryDelegatorWithdrawAddressResponse() { +function createBaseQueryTallyResultRequest() { return { - withdrawAddress: "", + proposalId: BigInt(0), }; } -exports.QueryDelegatorWithdrawAddressResponse = { - encode(message, writer = _m0.Writer.create()) { - if (message.withdrawAddress !== "") { - writer.uint32(10).string(message.withdrawAddress); +exports.QueryTallyResultRequest = { + typeUrl: "/cosmos.gov.v1beta1.QueryTallyResultRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { + writer.uint32(8).uint64(message.proposalId); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorWithdrawAddressResponse(); + const message = createBaseQueryTallyResultRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.withdrawAddress = reader.string(); + message.proposalId = reader.uint64(); break; default: reader.skipType(tag & 7); @@ -71093,75 +65910,46 @@ exports.QueryDelegatorWithdrawAddressResponse = { return message; }, fromJSON(object) { - return { - withdrawAddress: (0, helpers_1.isSet)(object.withdrawAddress) ? String(object.withdrawAddress) : "", - }; + const obj = createBaseQueryTallyResultRequest(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + return obj; }, toJSON(message) { const obj = {}; - message.withdrawAddress !== undefined && (obj.withdrawAddress = message.withdrawAddress); + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); return obj; }, fromPartial(object) { - const message = createBaseQueryDelegatorWithdrawAddressResponse(); - message.withdrawAddress = object.withdrawAddress ?? ""; - return message; - }, -}; -function createBaseQueryCommunityPoolRequest() { - return {}; -} -exports.QueryCommunityPoolRequest = { - encode(_, writer = _m0.Writer.create()) { - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryCommunityPoolRequest(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } + const message = createBaseQueryTallyResultRequest(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); } return message; }, - fromJSON(_) { - return {}; - }, - toJSON(_) { - const obj = {}; - return obj; - }, - fromPartial(_) { - const message = createBaseQueryCommunityPoolRequest(); - return message; - }, }; -function createBaseQueryCommunityPoolResponse() { +function createBaseQueryTallyResultResponse() { return { - pool: [], + tally: gov_1.TallyResult.fromPartial({}), }; } -exports.QueryCommunityPoolResponse = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.pool) { - coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim(); +exports.QueryTallyResultResponse = { + typeUrl: "/cosmos.gov.v1beta1.QueryTallyResultResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.tally !== undefined) { + gov_1.TallyResult.encode(message.tally, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryCommunityPoolResponse(); + const message = createBaseQueryTallyResultResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.pool.push(coin_1.DecCoin.decode(reader, reader.uint32())); + message.tally = gov_1.TallyResult.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -71171,83 +65959,76 @@ exports.QueryCommunityPoolResponse = { return message; }, fromJSON(object) { - return { - pool: Array.isArray(object?.pool) ? object.pool.map((e) => coin_1.DecCoin.fromJSON(e)) : [], - }; + const obj = createBaseQueryTallyResultResponse(); + if ((0, helpers_1.isSet)(object.tally)) + obj.tally = gov_1.TallyResult.fromJSON(object.tally); + return obj; }, toJSON(message) { const obj = {}; - if (message.pool) { - obj.pool = message.pool.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined)); - } - else { - obj.pool = []; - } + message.tally !== undefined && + (obj.tally = message.tally ? gov_1.TallyResult.toJSON(message.tally) : undefined); return obj; }, fromPartial(object) { - const message = createBaseQueryCommunityPoolResponse(); - message.pool = object.pool?.map((e) => coin_1.DecCoin.fromPartial(e)) || []; + const message = createBaseQueryTallyResultResponse(); + if (object.tally !== undefined && object.tally !== null) { + message.tally = gov_1.TallyResult.fromPartial(object.tally); + } return message; }, }; class QueryClientImpl { constructor(rpc) { this.rpc = rpc; + this.Proposal = this.Proposal.bind(this); + this.Proposals = this.Proposals.bind(this); + this.Vote = this.Vote.bind(this); + this.Votes = this.Votes.bind(this); this.Params = this.Params.bind(this); - this.ValidatorOutstandingRewards = this.ValidatorOutstandingRewards.bind(this); - this.ValidatorCommission = this.ValidatorCommission.bind(this); - this.ValidatorSlashes = this.ValidatorSlashes.bind(this); - this.DelegationRewards = this.DelegationRewards.bind(this); - this.DelegationTotalRewards = this.DelegationTotalRewards.bind(this); - this.DelegatorValidators = this.DelegatorValidators.bind(this); - this.DelegatorWithdrawAddress = this.DelegatorWithdrawAddress.bind(this); - this.CommunityPool = this.CommunityPool.bind(this); - } - Params(request = {}) { - const data = exports.QueryParamsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "Params", data); - return promise.then((data) => exports.QueryParamsResponse.decode(new _m0.Reader(data))); + this.Deposit = this.Deposit.bind(this); + this.Deposits = this.Deposits.bind(this); + this.TallyResult = this.TallyResult.bind(this); } - ValidatorOutstandingRewards(request) { - const data = exports.QueryValidatorOutstandingRewardsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "ValidatorOutstandingRewards", data); - return promise.then((data) => exports.QueryValidatorOutstandingRewardsResponse.decode(new _m0.Reader(data))); + Proposal(request) { + const data = exports.QueryProposalRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Proposal", data); + return promise.then((data) => exports.QueryProposalResponse.decode(new binary_1.BinaryReader(data))); } - ValidatorCommission(request) { - const data = exports.QueryValidatorCommissionRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "ValidatorCommission", data); - return promise.then((data) => exports.QueryValidatorCommissionResponse.decode(new _m0.Reader(data))); + Proposals(request) { + const data = exports.QueryProposalsRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Proposals", data); + return promise.then((data) => exports.QueryProposalsResponse.decode(new binary_1.BinaryReader(data))); } - ValidatorSlashes(request) { - const data = exports.QueryValidatorSlashesRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "ValidatorSlashes", data); - return promise.then((data) => exports.QueryValidatorSlashesResponse.decode(new _m0.Reader(data))); + Vote(request) { + const data = exports.QueryVoteRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Vote", data); + return promise.then((data) => exports.QueryVoteResponse.decode(new binary_1.BinaryReader(data))); } - DelegationRewards(request) { - const data = exports.QueryDelegationRewardsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "DelegationRewards", data); - return promise.then((data) => exports.QueryDelegationRewardsResponse.decode(new _m0.Reader(data))); + Votes(request) { + const data = exports.QueryVotesRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Votes", data); + return promise.then((data) => exports.QueryVotesResponse.decode(new binary_1.BinaryReader(data))); } - DelegationTotalRewards(request) { - const data = exports.QueryDelegationTotalRewardsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "DelegationTotalRewards", data); - return promise.then((data) => exports.QueryDelegationTotalRewardsResponse.decode(new _m0.Reader(data))); + Params(request) { + const data = exports.QueryParamsRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Params", data); + return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data))); } - DelegatorValidators(request) { - const data = exports.QueryDelegatorValidatorsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "DelegatorValidators", data); - return promise.then((data) => exports.QueryDelegatorValidatorsResponse.decode(new _m0.Reader(data))); + Deposit(request) { + const data = exports.QueryDepositRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Deposit", data); + return promise.then((data) => exports.QueryDepositResponse.decode(new binary_1.BinaryReader(data))); } - DelegatorWithdrawAddress(request) { - const data = exports.QueryDelegatorWithdrawAddressRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "DelegatorWithdrawAddress", data); - return promise.then((data) => exports.QueryDelegatorWithdrawAddressResponse.decode(new _m0.Reader(data))); + Deposits(request) { + const data = exports.QueryDepositsRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Deposits", data); + return promise.then((data) => exports.QueryDepositsResponse.decode(new binary_1.BinaryReader(data))); } - CommunityPool(request = {}) { - const data = exports.QueryCommunityPoolRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Query", "CommunityPool", data); - return promise.then((data) => exports.QueryCommunityPoolResponse.decode(new _m0.Reader(data))); + TallyResult(request) { + const data = exports.QueryTallyResultRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "TallyResult", data); + return promise.then((data) => exports.QueryTallyResultResponse.decode(new binary_1.BinaryReader(data))); } } exports.QueryClientImpl = QueryClientImpl; @@ -71255,72 +66036,59 @@ exports.QueryClientImpl = QueryClientImpl; /***/ }), -/***/ "./node_modules/cosmjs-types/cosmos/distribution/v1beta1/tx.js": -/*!*********************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/distribution/v1beta1/tx.js ***! - \*********************************************************************/ +/***/ "./node_modules/cosmjs-types/cosmos/gov/v1beta1/tx.js": +/*!************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/gov/v1beta1/tx.js ***! + \************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.MsgClientImpl = exports.MsgFundCommunityPoolResponse = exports.MsgFundCommunityPool = exports.MsgWithdrawValidatorCommissionResponse = exports.MsgWithdrawValidatorCommission = exports.MsgWithdrawDelegatorRewardResponse = exports.MsgWithdrawDelegatorReward = exports.MsgSetWithdrawAddressResponse = exports.MsgSetWithdrawAddress = exports.protobufPackage = void 0; +exports.MsgClientImpl = exports.MsgDepositResponse = exports.MsgDeposit = exports.MsgVoteWeightedResponse = exports.MsgVoteWeighted = exports.MsgVoteResponse = exports.MsgVote = exports.MsgSubmitProposalResponse = exports.MsgSubmitProposal = exports.protobufPackage = void 0; /* eslint-disable */ +const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const gov_1 = __webpack_require__(/*! ./gov */ "./node_modules/cosmjs-types/cosmos/gov/v1beta1/gov.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -exports.protobufPackage = "cosmos.distribution.v1beta1"; -function createBaseMsgSetWithdrawAddress() { +exports.protobufPackage = "cosmos.gov.v1beta1"; +function createBaseMsgSubmitProposal() { return { - delegatorAddress: "", - withdrawAddress: "", + content: undefined, + initialDeposit: [], + proposer: "", }; } -exports.MsgSetWithdrawAddress = { - encode(message, writer = _m0.Writer.create()) { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); +exports.MsgSubmitProposal = { + typeUrl: "/cosmos.gov.v1beta1.MsgSubmitProposal", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.content !== undefined) { + any_1.Any.encode(message.content, writer.uint32(10).fork()).ldelim(); } - if (message.withdrawAddress !== "") { - writer.uint32(18).string(message.withdrawAddress); + for (const v of message.initialDeposit) { + coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim(); + } + if (message.proposer !== "") { + writer.uint32(26).string(message.proposer); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSetWithdrawAddress(); + const message = createBaseMsgSubmitProposal(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.delegatorAddress = reader.string(); + message.content = any_1.Any.decode(reader, reader.uint32()); break; case 2: - message.withdrawAddress = reader.string(); + message.initialDeposit.push(coin_1.Coin.decode(reader, reader.uint32())); + break; + case 3: + message.proposer = reader.string(); break; default: reader.skipType(tag & 7); @@ -71330,38 +66098,61 @@ exports.MsgSetWithdrawAddress = { return message; }, fromJSON(object) { - return { - delegatorAddress: (0, helpers_1.isSet)(object.delegatorAddress) ? String(object.delegatorAddress) : "", - withdrawAddress: (0, helpers_1.isSet)(object.withdrawAddress) ? String(object.withdrawAddress) : "", - }; + const obj = createBaseMsgSubmitProposal(); + if ((0, helpers_1.isSet)(object.content)) + obj.content = any_1.Any.fromJSON(object.content); + if (Array.isArray(object?.initialDeposit)) + obj.initialDeposit = object.initialDeposit.map((e) => coin_1.Coin.fromJSON(e)); + if ((0, helpers_1.isSet)(object.proposer)) + obj.proposer = String(object.proposer); + return obj; }, toJSON(message) { const obj = {}; - message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress); - message.withdrawAddress !== undefined && (obj.withdrawAddress = message.withdrawAddress); + message.content !== undefined && + (obj.content = message.content ? any_1.Any.toJSON(message.content) : undefined); + if (message.initialDeposit) { + obj.initialDeposit = message.initialDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + } + else { + obj.initialDeposit = []; + } + message.proposer !== undefined && (obj.proposer = message.proposer); return obj; }, fromPartial(object) { - const message = createBaseMsgSetWithdrawAddress(); - message.delegatorAddress = object.delegatorAddress ?? ""; - message.withdrawAddress = object.withdrawAddress ?? ""; + const message = createBaseMsgSubmitProposal(); + if (object.content !== undefined && object.content !== null) { + message.content = any_1.Any.fromPartial(object.content); + } + message.initialDeposit = object.initialDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || []; + message.proposer = object.proposer ?? ""; return message; }, }; -function createBaseMsgSetWithdrawAddressResponse() { - return {}; +function createBaseMsgSubmitProposalResponse() { + return { + proposalId: BigInt(0), + }; } -exports.MsgSetWithdrawAddressResponse = { - encode(_, writer = _m0.Writer.create()) { +exports.MsgSubmitProposalResponse = { + typeUrl: "/cosmos.gov.v1beta1.MsgSubmitProposalResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { + writer.uint32(8).uint64(message.proposalId); + } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSetWithdrawAddressResponse(); + const message = createBaseMsgSubmitProposalResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.proposalId = reader.uint64(); + break; default: reader.skipType(tag & 7); break; @@ -71369,46 +66160,61 @@ exports.MsgSetWithdrawAddressResponse = { } return message; }, - fromJSON(_) { - return {}; + fromJSON(object) { + const obj = createBaseMsgSubmitProposalResponse(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + return obj; }, - toJSON(_) { + toJSON(message) { const obj = {}; + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); return obj; }, - fromPartial(_) { - const message = createBaseMsgSetWithdrawAddressResponse(); + fromPartial(object) { + const message = createBaseMsgSubmitProposalResponse(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); + } return message; }, }; -function createBaseMsgWithdrawDelegatorReward() { +function createBaseMsgVote() { return { - delegatorAddress: "", - validatorAddress: "", + proposalId: BigInt(0), + voter: "", + option: 0, }; } -exports.MsgWithdrawDelegatorReward = { - encode(message, writer = _m0.Writer.create()) { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); +exports.MsgVote = { + typeUrl: "/cosmos.gov.v1beta1.MsgVote", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { + writer.uint32(8).uint64(message.proposalId); } - if (message.validatorAddress !== "") { - writer.uint32(18).string(message.validatorAddress); + if (message.voter !== "") { + writer.uint32(18).string(message.voter); + } + if (message.option !== 0) { + writer.uint32(24).int32(message.option); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgWithdrawDelegatorReward(); + const message = createBaseMsgVote(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.delegatorAddress = reader.string(); + message.proposalId = reader.uint64(); break; case 2: - message.validatorAddress = reader.string(); + message.voter = reader.string(); + break; + case 3: + message.option = reader.int32(); break; default: reader.skipType(tag & 7); @@ -71418,35 +66224,44 @@ exports.MsgWithdrawDelegatorReward = { return message; }, fromJSON(object) { - return { - delegatorAddress: (0, helpers_1.isSet)(object.delegatorAddress) ? String(object.delegatorAddress) : "", - validatorAddress: (0, helpers_1.isSet)(object.validatorAddress) ? String(object.validatorAddress) : "", - }; + const obj = createBaseMsgVote(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + if ((0, helpers_1.isSet)(object.voter)) + obj.voter = String(object.voter); + if ((0, helpers_1.isSet)(object.option)) + obj.option = (0, gov_1.voteOptionFromJSON)(object.option); + return obj; }, toJSON(message) { const obj = {}; - message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress); - message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress); + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); + message.voter !== undefined && (obj.voter = message.voter); + message.option !== undefined && (obj.option = (0, gov_1.voteOptionToJSON)(message.option)); return obj; }, fromPartial(object) { - const message = createBaseMsgWithdrawDelegatorReward(); - message.delegatorAddress = object.delegatorAddress ?? ""; - message.validatorAddress = object.validatorAddress ?? ""; + const message = createBaseMsgVote(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); + } + message.voter = object.voter ?? ""; + message.option = object.option ?? 0; return message; }, }; -function createBaseMsgWithdrawDelegatorRewardResponse() { +function createBaseMsgVoteResponse() { return {}; } -exports.MsgWithdrawDelegatorRewardResponse = { - encode(_, writer = _m0.Writer.create()) { +exports.MsgVoteResponse = { + typeUrl: "/cosmos.gov.v1beta1.MsgVoteResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgWithdrawDelegatorRewardResponse(); + const message = createBaseMsgVoteResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { @@ -71458,38 +66273,54 @@ exports.MsgWithdrawDelegatorRewardResponse = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseMsgVoteResponse(); + return obj; }, toJSON(_) { const obj = {}; return obj; }, fromPartial(_) { - const message = createBaseMsgWithdrawDelegatorRewardResponse(); + const message = createBaseMsgVoteResponse(); return message; }, }; -function createBaseMsgWithdrawValidatorCommission() { +function createBaseMsgVoteWeighted() { return { - validatorAddress: "", + proposalId: BigInt(0), + voter: "", + options: [], }; } -exports.MsgWithdrawValidatorCommission = { - encode(message, writer = _m0.Writer.create()) { - if (message.validatorAddress !== "") { - writer.uint32(10).string(message.validatorAddress); +exports.MsgVoteWeighted = { + typeUrl: "/cosmos.gov.v1beta1.MsgVoteWeighted", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { + writer.uint32(8).uint64(message.proposalId); + } + if (message.voter !== "") { + writer.uint32(18).string(message.voter); + } + for (const v of message.options) { + gov_1.WeightedVoteOption.encode(v, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgWithdrawValidatorCommission(); + const message = createBaseMsgVoteWeighted(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.validatorAddress = reader.string(); + message.proposalId = reader.uint64(); + break; + case 2: + message.voter = reader.string(); + break; + case 3: + message.options.push(gov_1.WeightedVoteOption.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -71499,32 +66330,49 @@ exports.MsgWithdrawValidatorCommission = { return message; }, fromJSON(object) { - return { - validatorAddress: (0, helpers_1.isSet)(object.validatorAddress) ? String(object.validatorAddress) : "", - }; + const obj = createBaseMsgVoteWeighted(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + if ((0, helpers_1.isSet)(object.voter)) + obj.voter = String(object.voter); + if (Array.isArray(object?.options)) + obj.options = object.options.map((e) => gov_1.WeightedVoteOption.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress); + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); + message.voter !== undefined && (obj.voter = message.voter); + if (message.options) { + obj.options = message.options.map((e) => (e ? gov_1.WeightedVoteOption.toJSON(e) : undefined)); + } + else { + obj.options = []; + } return obj; }, fromPartial(object) { - const message = createBaseMsgWithdrawValidatorCommission(); - message.validatorAddress = object.validatorAddress ?? ""; + const message = createBaseMsgVoteWeighted(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); + } + message.voter = object.voter ?? ""; + message.options = object.options?.map((e) => gov_1.WeightedVoteOption.fromPartial(e)) || []; return message; }, }; -function createBaseMsgWithdrawValidatorCommissionResponse() { +function createBaseMsgVoteWeightedResponse() { return {}; } -exports.MsgWithdrawValidatorCommissionResponse = { - encode(_, writer = _m0.Writer.create()) { +exports.MsgVoteWeightedResponse = { + typeUrl: "/cosmos.gov.v1beta1.MsgVoteWeightedResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgWithdrawValidatorCommissionResponse(); + const message = createBaseMsgVoteWeightedResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { @@ -71536,46 +66384,55 @@ exports.MsgWithdrawValidatorCommissionResponse = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseMsgVoteWeightedResponse(); + return obj; }, toJSON(_) { const obj = {}; return obj; }, fromPartial(_) { - const message = createBaseMsgWithdrawValidatorCommissionResponse(); + const message = createBaseMsgVoteWeightedResponse(); return message; }, }; -function createBaseMsgFundCommunityPool() { +function createBaseMsgDeposit() { return { - amount: [], + proposalId: BigInt(0), depositor: "", + amount: [], }; } -exports.MsgFundCommunityPool = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.amount) { - coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim(); +exports.MsgDeposit = { + typeUrl: "/cosmos.gov.v1beta1.MsgDeposit", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { + writer.uint32(8).uint64(message.proposalId); } if (message.depositor !== "") { writer.uint32(18).string(message.depositor); } + for (const v of message.amount) { + coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim(); + } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgFundCommunityPool(); + const message = createBaseMsgDeposit(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.amount.push(coin_1.Coin.decode(reader, reader.uint32())); + message.proposalId = reader.uint64(); break; case 2: message.depositor = reader.string(); break; + case 3: + message.amount.push(coin_1.Coin.decode(reader, reader.uint32())); + break; default: reader.skipType(tag & 7); break; @@ -71584,40 +66441,49 @@ exports.MsgFundCommunityPool = { return message; }, fromJSON(object) { - return { - amount: Array.isArray(object?.amount) ? object.amount.map((e) => coin_1.Coin.fromJSON(e)) : [], - depositor: (0, helpers_1.isSet)(object.depositor) ? String(object.depositor) : "", - }; + const obj = createBaseMsgDeposit(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + if ((0, helpers_1.isSet)(object.depositor)) + obj.depositor = String(object.depositor); + if (Array.isArray(object?.amount)) + obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); + message.depositor !== undefined && (obj.depositor = message.depositor); if (message.amount) { obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); } else { obj.amount = []; } - message.depositor !== undefined && (obj.depositor = message.depositor); return obj; }, fromPartial(object) { - const message = createBaseMsgFundCommunityPool(); - message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || []; + const message = createBaseMsgDeposit(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); + } message.depositor = object.depositor ?? ""; + message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || []; return message; }, }; -function createBaseMsgFundCommunityPoolResponse() { +function createBaseMsgDepositResponse() { return {}; } -exports.MsgFundCommunityPoolResponse = { - encode(_, writer = _m0.Writer.create()) { +exports.MsgDepositResponse = { + typeUrl: "/cosmos.gov.v1beta1.MsgDepositResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgFundCommunityPoolResponse(); + const message = createBaseMsgDepositResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { @@ -71629,44 +66495,45 @@ exports.MsgFundCommunityPoolResponse = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseMsgDepositResponse(); + return obj; }, toJSON(_) { const obj = {}; return obj; }, fromPartial(_) { - const message = createBaseMsgFundCommunityPoolResponse(); + const message = createBaseMsgDepositResponse(); return message; }, }; class MsgClientImpl { constructor(rpc) { this.rpc = rpc; - this.SetWithdrawAddress = this.SetWithdrawAddress.bind(this); - this.WithdrawDelegatorReward = this.WithdrawDelegatorReward.bind(this); - this.WithdrawValidatorCommission = this.WithdrawValidatorCommission.bind(this); - this.FundCommunityPool = this.FundCommunityPool.bind(this); + this.SubmitProposal = this.SubmitProposal.bind(this); + this.Vote = this.Vote.bind(this); + this.VoteWeighted = this.VoteWeighted.bind(this); + this.Deposit = this.Deposit.bind(this); } - SetWithdrawAddress(request) { - const data = exports.MsgSetWithdrawAddress.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Msg", "SetWithdrawAddress", data); - return promise.then((data) => exports.MsgSetWithdrawAddressResponse.decode(new _m0.Reader(data))); + SubmitProposal(request) { + const data = exports.MsgSubmitProposal.encode(request).finish(); + const promise = this.rpc.request("cosmos.gov.v1beta1.Msg", "SubmitProposal", data); + return promise.then((data) => exports.MsgSubmitProposalResponse.decode(new binary_1.BinaryReader(data))); } - WithdrawDelegatorReward(request) { - const data = exports.MsgWithdrawDelegatorReward.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Msg", "WithdrawDelegatorReward", data); - return promise.then((data) => exports.MsgWithdrawDelegatorRewardResponse.decode(new _m0.Reader(data))); + Vote(request) { + const data = exports.MsgVote.encode(request).finish(); + const promise = this.rpc.request("cosmos.gov.v1beta1.Msg", "Vote", data); + return promise.then((data) => exports.MsgVoteResponse.decode(new binary_1.BinaryReader(data))); } - WithdrawValidatorCommission(request) { - const data = exports.MsgWithdrawValidatorCommission.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Msg", "WithdrawValidatorCommission", data); - return promise.then((data) => exports.MsgWithdrawValidatorCommissionResponse.decode(new _m0.Reader(data))); + VoteWeighted(request) { + const data = exports.MsgVoteWeighted.encode(request).finish(); + const promise = this.rpc.request("cosmos.gov.v1beta1.Msg", "VoteWeighted", data); + return promise.then((data) => exports.MsgVoteWeightedResponse.decode(new binary_1.BinaryReader(data))); } - FundCommunityPool(request) { - const data = exports.MsgFundCommunityPool.encode(request).finish(); - const promise = this.rpc.request("cosmos.distribution.v1beta1.Msg", "FundCommunityPool", data); - return promise.then((data) => exports.MsgFundCommunityPoolResponse.decode(new _m0.Reader(data))); + Deposit(request) { + const data = exports.MsgDeposit.encode(request).finish(); + const promise = this.rpc.request("cosmos.gov.v1beta1.Msg", "Deposit", data); + return promise.then((data) => exports.MsgDepositResponse.decode(new binary_1.BinaryReader(data))); } } exports.MsgClientImpl = MsgClientImpl; @@ -71674,75 +66541,102 @@ exports.MsgClientImpl = MsgClientImpl; /***/ }), -/***/ "./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/feegrant.js": -/*!***********************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/feegrant.js ***! - \***********************************************************************/ +/***/ "./node_modules/cosmjs-types/cosmos/group/v1/tx.js": +/*!*********************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/group/v1/tx.js ***! + \*********************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Grant = exports.AllowedMsgAllowance = exports.PeriodicAllowance = exports.BasicAllowance = exports.protobufPackage = void 0; +exports.MsgClientImpl = exports.MsgLeaveGroupResponse = exports.MsgLeaveGroup = exports.MsgExecResponse = exports.MsgExec = exports.MsgVoteResponse = exports.MsgVote = exports.MsgWithdrawProposalResponse = exports.MsgWithdrawProposal = exports.MsgSubmitProposalResponse = exports.MsgSubmitProposal = exports.MsgUpdateGroupPolicyMetadataResponse = exports.MsgUpdateGroupPolicyMetadata = exports.MsgUpdateGroupPolicyDecisionPolicyResponse = exports.MsgUpdateGroupPolicyDecisionPolicy = exports.MsgCreateGroupWithPolicyResponse = exports.MsgCreateGroupWithPolicy = exports.MsgUpdateGroupPolicyAdminResponse = exports.MsgUpdateGroupPolicyAdmin = exports.MsgCreateGroupPolicyResponse = exports.MsgCreateGroupPolicy = exports.MsgUpdateGroupMetadataResponse = exports.MsgUpdateGroupMetadata = exports.MsgUpdateGroupAdminResponse = exports.MsgUpdateGroupAdmin = exports.MsgUpdateGroupMembersResponse = exports.MsgUpdateGroupMembers = exports.MsgCreateGroupResponse = exports.MsgCreateGroup = exports.execToJSON = exports.execFromJSON = exports.Exec = exports.protobufPackage = void 0; /* eslint-disable */ -const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); -const timestamp_1 = __webpack_require__(/*! ../../../google/protobuf/timestamp */ "./node_modules/cosmjs-types/google/protobuf/timestamp.js"); -const duration_1 = __webpack_require__(/*! ../../../google/protobuf/duration */ "./node_modules/cosmjs-types/google/protobuf/duration.js"); +const types_1 = __webpack_require__(/*! ./types */ "./node_modules/cosmjs-types/cosmos/group/v1/types.js"); const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -exports.protobufPackage = "cosmos.feegrant.v1beta1"; -function createBaseBasicAllowance() { - return { - spendLimit: [], - expiration: undefined, - }; +exports.protobufPackage = "cosmos.group.v1"; +/** Exec defines modes of execution of a proposal on creation or on new vote. */ +var Exec; +(function (Exec) { + /** + * EXEC_UNSPECIFIED - An empty value means that there should be a separate + * MsgExec request for the proposal to execute. + */ + Exec[Exec["EXEC_UNSPECIFIED"] = 0] = "EXEC_UNSPECIFIED"; + /** + * EXEC_TRY - Try to execute the proposal immediately. + * If the proposal is not allowed per the DecisionPolicy, + * the proposal will still be open and could + * be executed at a later point. + */ + Exec[Exec["EXEC_TRY"] = 1] = "EXEC_TRY"; + Exec[Exec["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(Exec || (exports.Exec = Exec = {})); +function execFromJSON(object) { + switch (object) { + case 0: + case "EXEC_UNSPECIFIED": + return Exec.EXEC_UNSPECIFIED; + case 1: + case "EXEC_TRY": + return Exec.EXEC_TRY; + case -1: + case "UNRECOGNIZED": + default: + return Exec.UNRECOGNIZED; + } } -exports.BasicAllowance = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.spendLimit) { - coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim(); +exports.execFromJSON = execFromJSON; +function execToJSON(object) { + switch (object) { + case Exec.EXEC_UNSPECIFIED: + return "EXEC_UNSPECIFIED"; + case Exec.EXEC_TRY: + return "EXEC_TRY"; + case Exec.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} +exports.execToJSON = execToJSON; +function createBaseMsgCreateGroup() { + return { + admin: "", + members: [], + metadata: "", + }; +} +exports.MsgCreateGroup = { + typeUrl: "/cosmos.group.v1.MsgCreateGroup", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.admin !== "") { + writer.uint32(10).string(message.admin); } - if (message.expiration !== undefined) { - timestamp_1.Timestamp.encode(message.expiration, writer.uint32(18).fork()).ldelim(); + for (const v of message.members) { + types_1.MemberRequest.encode(v, writer.uint32(18).fork()).ldelim(); + } + if (message.metadata !== "") { + writer.uint32(26).string(message.metadata); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBasicAllowance(); + const message = createBaseMsgCreateGroup(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.spendLimit.push(coin_1.Coin.decode(reader, reader.uint32())); + message.admin = reader.string(); break; case 2: - message.expiration = timestamp_1.Timestamp.decode(reader, reader.uint32()); + message.members.push(types_1.MemberRequest.decode(reader, reader.uint32())); + break; + case 3: + message.metadata = reader.string(); break; default: reader.skipType(tag & 7); @@ -71752,83 +66646,57 @@ exports.BasicAllowance = { return message; }, fromJSON(object) { - return { - spendLimit: Array.isArray(object?.spendLimit) - ? object.spendLimit.map((e) => coin_1.Coin.fromJSON(e)) - : [], - expiration: (0, helpers_1.isSet)(object.expiration) ? (0, helpers_1.fromJsonTimestamp)(object.expiration) : undefined, - }; + const obj = createBaseMsgCreateGroup(); + if ((0, helpers_1.isSet)(object.admin)) + obj.admin = String(object.admin); + if (Array.isArray(object?.members)) + obj.members = object.members.map((e) => types_1.MemberRequest.fromJSON(e)); + if ((0, helpers_1.isSet)(object.metadata)) + obj.metadata = String(object.metadata); + return obj; }, toJSON(message) { const obj = {}; - if (message.spendLimit) { - obj.spendLimit = message.spendLimit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + message.admin !== undefined && (obj.admin = message.admin); + if (message.members) { + obj.members = message.members.map((e) => (e ? types_1.MemberRequest.toJSON(e) : undefined)); } else { - obj.spendLimit = []; + obj.members = []; } - message.expiration !== undefined && (obj.expiration = (0, helpers_1.fromTimestamp)(message.expiration).toISOString()); + message.metadata !== undefined && (obj.metadata = message.metadata); return obj; }, fromPartial(object) { - const message = createBaseBasicAllowance(); - message.spendLimit = object.spendLimit?.map((e) => coin_1.Coin.fromPartial(e)) || []; - message.expiration = - object.expiration !== undefined && object.expiration !== null - ? timestamp_1.Timestamp.fromPartial(object.expiration) - : undefined; + const message = createBaseMsgCreateGroup(); + message.admin = object.admin ?? ""; + message.members = object.members?.map((e) => types_1.MemberRequest.fromPartial(e)) || []; + message.metadata = object.metadata ?? ""; return message; }, }; -function createBasePeriodicAllowance() { +function createBaseMsgCreateGroupResponse() { return { - basic: undefined, - period: undefined, - periodSpendLimit: [], - periodCanSpend: [], - periodReset: undefined, + groupId: BigInt(0), }; } -exports.PeriodicAllowance = { - encode(message, writer = _m0.Writer.create()) { - if (message.basic !== undefined) { - exports.BasicAllowance.encode(message.basic, writer.uint32(10).fork()).ldelim(); - } - if (message.period !== undefined) { - duration_1.Duration.encode(message.period, writer.uint32(18).fork()).ldelim(); - } - for (const v of message.periodSpendLimit) { - coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim(); - } - for (const v of message.periodCanSpend) { - coin_1.Coin.encode(v, writer.uint32(34).fork()).ldelim(); - } - if (message.periodReset !== undefined) { - timestamp_1.Timestamp.encode(message.periodReset, writer.uint32(42).fork()).ldelim(); +exports.MsgCreateGroupResponse = { + typeUrl: "/cosmos.group.v1.MsgCreateGroupResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.groupId !== BigInt(0)) { + writer.uint32(8).uint64(message.groupId); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePeriodicAllowance(); + const message = createBaseMsgCreateGroupResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.basic = exports.BasicAllowance.decode(reader, reader.uint32()); - break; - case 2: - message.period = duration_1.Duration.decode(reader, reader.uint32()); - break; - case 3: - message.periodSpendLimit.push(coin_1.Coin.decode(reader, reader.uint32())); - break; - case 4: - message.periodCanSpend.push(coin_1.Coin.decode(reader, reader.uint32())); - break; - case 5: - message.periodReset = timestamp_1.Timestamp.decode(reader, reader.uint32()); + message.groupId = reader.uint64(); break; default: reader.skipType(tag & 7); @@ -71838,84 +66706,60 @@ exports.PeriodicAllowance = { return message; }, fromJSON(object) { - return { - basic: (0, helpers_1.isSet)(object.basic) ? exports.BasicAllowance.fromJSON(object.basic) : undefined, - period: (0, helpers_1.isSet)(object.period) ? duration_1.Duration.fromJSON(object.period) : undefined, - periodSpendLimit: Array.isArray(object?.periodSpendLimit) - ? object.periodSpendLimit.map((e) => coin_1.Coin.fromJSON(e)) - : [], - periodCanSpend: Array.isArray(object?.periodCanSpend) - ? object.periodCanSpend.map((e) => coin_1.Coin.fromJSON(e)) - : [], - periodReset: (0, helpers_1.isSet)(object.periodReset) ? (0, helpers_1.fromJsonTimestamp)(object.periodReset) : undefined, - }; + const obj = createBaseMsgCreateGroupResponse(); + if ((0, helpers_1.isSet)(object.groupId)) + obj.groupId = BigInt(object.groupId.toString()); + return obj; }, toJSON(message) { const obj = {}; - message.basic !== undefined && - (obj.basic = message.basic ? exports.BasicAllowance.toJSON(message.basic) : undefined); - message.period !== undefined && - (obj.period = message.period ? duration_1.Duration.toJSON(message.period) : undefined); - if (message.periodSpendLimit) { - obj.periodSpendLimit = message.periodSpendLimit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); - } - else { - obj.periodSpendLimit = []; - } - if (message.periodCanSpend) { - obj.periodCanSpend = message.periodCanSpend.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); - } - else { - obj.periodCanSpend = []; - } - message.periodReset !== undefined && (obj.periodReset = (0, helpers_1.fromTimestamp)(message.periodReset).toISOString()); + message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString()); return obj; }, fromPartial(object) { - const message = createBasePeriodicAllowance(); - message.basic = - object.basic !== undefined && object.basic !== null - ? exports.BasicAllowance.fromPartial(object.basic) - : undefined; - message.period = - object.period !== undefined && object.period !== null ? duration_1.Duration.fromPartial(object.period) : undefined; - message.periodSpendLimit = object.periodSpendLimit?.map((e) => coin_1.Coin.fromPartial(e)) || []; - message.periodCanSpend = object.periodCanSpend?.map((e) => coin_1.Coin.fromPartial(e)) || []; - message.periodReset = - object.periodReset !== undefined && object.periodReset !== null - ? timestamp_1.Timestamp.fromPartial(object.periodReset) - : undefined; + const message = createBaseMsgCreateGroupResponse(); + if (object.groupId !== undefined && object.groupId !== null) { + message.groupId = BigInt(object.groupId.toString()); + } return message; }, }; -function createBaseAllowedMsgAllowance() { +function createBaseMsgUpdateGroupMembers() { return { - allowance: undefined, - allowedMessages: [], + admin: "", + groupId: BigInt(0), + memberUpdates: [], }; } -exports.AllowedMsgAllowance = { - encode(message, writer = _m0.Writer.create()) { - if (message.allowance !== undefined) { - any_1.Any.encode(message.allowance, writer.uint32(10).fork()).ldelim(); +exports.MsgUpdateGroupMembers = { + typeUrl: "/cosmos.group.v1.MsgUpdateGroupMembers", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.admin !== "") { + writer.uint32(10).string(message.admin); } - for (const v of message.allowedMessages) { - writer.uint32(18).string(v); + if (message.groupId !== BigInt(0)) { + writer.uint32(16).uint64(message.groupId); + } + for (const v of message.memberUpdates) { + types_1.MemberRequest.encode(v, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAllowedMsgAllowance(); + const message = createBaseMsgUpdateGroupMembers(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.allowance = any_1.Any.decode(reader, reader.uint32()); + message.admin = reader.string(); break; case 2: - message.allowedMessages.push(reader.string()); + message.groupId = reader.uint64(); + break; + case 3: + message.memberUpdates.push(types_1.MemberRequest.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -71925,71 +66769,52 @@ exports.AllowedMsgAllowance = { return message; }, fromJSON(object) { - return { - allowance: (0, helpers_1.isSet)(object.allowance) ? any_1.Any.fromJSON(object.allowance) : undefined, - allowedMessages: Array.isArray(object?.allowedMessages) - ? object.allowedMessages.map((e) => String(e)) - : [], - }; + const obj = createBaseMsgUpdateGroupMembers(); + if ((0, helpers_1.isSet)(object.admin)) + obj.admin = String(object.admin); + if ((0, helpers_1.isSet)(object.groupId)) + obj.groupId = BigInt(object.groupId.toString()); + if (Array.isArray(object?.memberUpdates)) + obj.memberUpdates = object.memberUpdates.map((e) => types_1.MemberRequest.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - message.allowance !== undefined && - (obj.allowance = message.allowance ? any_1.Any.toJSON(message.allowance) : undefined); - if (message.allowedMessages) { - obj.allowedMessages = message.allowedMessages.map((e) => e); + message.admin !== undefined && (obj.admin = message.admin); + message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString()); + if (message.memberUpdates) { + obj.memberUpdates = message.memberUpdates.map((e) => (e ? types_1.MemberRequest.toJSON(e) : undefined)); } else { - obj.allowedMessages = []; + obj.memberUpdates = []; } return obj; }, fromPartial(object) { - const message = createBaseAllowedMsgAllowance(); - message.allowance = - object.allowance !== undefined && object.allowance !== null - ? any_1.Any.fromPartial(object.allowance) - : undefined; - message.allowedMessages = object.allowedMessages?.map((e) => e) || []; + const message = createBaseMsgUpdateGroupMembers(); + message.admin = object.admin ?? ""; + if (object.groupId !== undefined && object.groupId !== null) { + message.groupId = BigInt(object.groupId.toString()); + } + message.memberUpdates = object.memberUpdates?.map((e) => types_1.MemberRequest.fromPartial(e)) || []; return message; }, }; -function createBaseGrant() { - return { - granter: "", - grantee: "", - allowance: undefined, - }; +function createBaseMsgUpdateGroupMembersResponse() { + return {}; } -exports.Grant = { - encode(message, writer = _m0.Writer.create()) { - if (message.granter !== "") { - writer.uint32(10).string(message.granter); - } - if (message.grantee !== "") { - writer.uint32(18).string(message.grantee); - } - if (message.allowance !== undefined) { - any_1.Any.encode(message.allowance, writer.uint32(26).fork()).ldelim(); - } +exports.MsgUpdateGroupMembersResponse = { + typeUrl: "/cosmos.group.v1.MsgUpdateGroupMembersResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGrant(); + const message = createBaseMsgUpdateGroupMembersResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.granter = reader.string(); - break; - case 2: - message.grantee = reader.string(); - break; - case 3: - message.allowance = any_1.Any.decode(reader, reader.uint32()); - break; default: reader.skipType(tag & 7); break; @@ -71997,103 +66822,55 @@ exports.Grant = { } return message; }, - fromJSON(object) { - return { - granter: (0, helpers_1.isSet)(object.granter) ? String(object.granter) : "", - grantee: (0, helpers_1.isSet)(object.grantee) ? String(object.grantee) : "", - allowance: (0, helpers_1.isSet)(object.allowance) ? any_1.Any.fromJSON(object.allowance) : undefined, - }; + fromJSON(_) { + const obj = createBaseMsgUpdateGroupMembersResponse(); + return obj; }, - toJSON(message) { + toJSON(_) { const obj = {}; - message.granter !== undefined && (obj.granter = message.granter); - message.grantee !== undefined && (obj.grantee = message.grantee); - message.allowance !== undefined && - (obj.allowance = message.allowance ? any_1.Any.toJSON(message.allowance) : undefined); return obj; }, - fromPartial(object) { - const message = createBaseGrant(); - message.granter = object.granter ?? ""; - message.grantee = object.grantee ?? ""; - message.allowance = - object.allowance !== undefined && object.allowance !== null - ? any_1.Any.fromPartial(object.allowance) - : undefined; + fromPartial(_) { + const message = createBaseMsgUpdateGroupMembersResponse(); return message; }, }; -//# sourceMappingURL=feegrant.js.map - -/***/ }), - -/***/ "./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/query.js": -/*!********************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/query.js ***! - \********************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.QueryClientImpl = exports.QueryAllowancesByGranterResponse = exports.QueryAllowancesByGranterRequest = exports.QueryAllowancesResponse = exports.QueryAllowancesRequest = exports.QueryAllowanceResponse = exports.QueryAllowanceRequest = exports.protobufPackage = void 0; -/* eslint-disable */ -const pagination_1 = __webpack_require__(/*! ../../base/query/v1beta1/pagination */ "./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js"); -const feegrant_1 = __webpack_require__(/*! ./feegrant */ "./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/feegrant.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -exports.protobufPackage = "cosmos.feegrant.v1beta1"; -function createBaseQueryAllowanceRequest() { +function createBaseMsgUpdateGroupAdmin() { return { - granter: "", - grantee: "", + admin: "", + groupId: BigInt(0), + newAdmin: "", }; } -exports.QueryAllowanceRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.granter !== "") { - writer.uint32(10).string(message.granter); +exports.MsgUpdateGroupAdmin = { + typeUrl: "/cosmos.group.v1.MsgUpdateGroupAdmin", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.admin !== "") { + writer.uint32(10).string(message.admin); } - if (message.grantee !== "") { - writer.uint32(18).string(message.grantee); + if (message.groupId !== BigInt(0)) { + writer.uint32(16).uint64(message.groupId); + } + if (message.newAdmin !== "") { + writer.uint32(26).string(message.newAdmin); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllowanceRequest(); + const message = createBaseMsgUpdateGroupAdmin(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.granter = reader.string(); + message.admin = reader.string(); break; case 2: - message.grantee = reader.string(); + message.groupId = reader.uint64(); + break; + case 3: + message.newAdmin = reader.string(); break; default: reader.skipType(tag & 7); @@ -72103,46 +66880,47 @@ exports.QueryAllowanceRequest = { return message; }, fromJSON(object) { - return { - granter: (0, helpers_1.isSet)(object.granter) ? String(object.granter) : "", - grantee: (0, helpers_1.isSet)(object.grantee) ? String(object.grantee) : "", - }; + const obj = createBaseMsgUpdateGroupAdmin(); + if ((0, helpers_1.isSet)(object.admin)) + obj.admin = String(object.admin); + if ((0, helpers_1.isSet)(object.groupId)) + obj.groupId = BigInt(object.groupId.toString()); + if ((0, helpers_1.isSet)(object.newAdmin)) + obj.newAdmin = String(object.newAdmin); + return obj; }, toJSON(message) { const obj = {}; - message.granter !== undefined && (obj.granter = message.granter); - message.grantee !== undefined && (obj.grantee = message.grantee); + message.admin !== undefined && (obj.admin = message.admin); + message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString()); + message.newAdmin !== undefined && (obj.newAdmin = message.newAdmin); return obj; }, fromPartial(object) { - const message = createBaseQueryAllowanceRequest(); - message.granter = object.granter ?? ""; - message.grantee = object.grantee ?? ""; + const message = createBaseMsgUpdateGroupAdmin(); + message.admin = object.admin ?? ""; + if (object.groupId !== undefined && object.groupId !== null) { + message.groupId = BigInt(object.groupId.toString()); + } + message.newAdmin = object.newAdmin ?? ""; return message; }, }; -function createBaseQueryAllowanceResponse() { - return { - allowance: undefined, - }; +function createBaseMsgUpdateGroupAdminResponse() { + return {}; } -exports.QueryAllowanceResponse = { - encode(message, writer = _m0.Writer.create()) { - if (message.allowance !== undefined) { - feegrant_1.Grant.encode(message.allowance, writer.uint32(10).fork()).ldelim(); - } +exports.MsgUpdateGroupAdminResponse = { + typeUrl: "/cosmos.group.v1.MsgUpdateGroupAdminResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllowanceResponse(); + const message = createBaseMsgUpdateGroupAdminResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.allowance = feegrant_1.Grant.decode(reader, reader.uint32()); - break; default: reader.skipType(tag & 7); break; @@ -72150,54 +66928,55 @@ exports.QueryAllowanceResponse = { } return message; }, - fromJSON(object) { - return { - allowance: (0, helpers_1.isSet)(object.allowance) ? feegrant_1.Grant.fromJSON(object.allowance) : undefined, - }; + fromJSON(_) { + const obj = createBaseMsgUpdateGroupAdminResponse(); + return obj; }, - toJSON(message) { + toJSON(_) { const obj = {}; - message.allowance !== undefined && - (obj.allowance = message.allowance ? feegrant_1.Grant.toJSON(message.allowance) : undefined); return obj; }, - fromPartial(object) { - const message = createBaseQueryAllowanceResponse(); - message.allowance = - object.allowance !== undefined && object.allowance !== null - ? feegrant_1.Grant.fromPartial(object.allowance) - : undefined; + fromPartial(_) { + const message = createBaseMsgUpdateGroupAdminResponse(); return message; }, }; -function createBaseQueryAllowancesRequest() { +function createBaseMsgUpdateGroupMetadata() { return { - grantee: "", - pagination: undefined, + admin: "", + groupId: BigInt(0), + metadata: "", }; } -exports.QueryAllowancesRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.grantee !== "") { - writer.uint32(10).string(message.grantee); +exports.MsgUpdateGroupMetadata = { + typeUrl: "/cosmos.group.v1.MsgUpdateGroupMetadata", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.admin !== "") { + writer.uint32(10).string(message.admin); } - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (message.groupId !== BigInt(0)) { + writer.uint32(16).uint64(message.groupId); + } + if (message.metadata !== "") { + writer.uint32(26).string(message.metadata); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllowancesRequest(); + const message = createBaseMsgUpdateGroupMetadata(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.grantee = reader.string(); + message.admin = reader.string(); break; case 2: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.groupId = reader.uint64(); + break; + case 3: + message.metadata = reader.string(); break; default: reader.skipType(tag & 7); @@ -72207,57 +66986,47 @@ exports.QueryAllowancesRequest = { return message; }, fromJSON(object) { - return { - grantee: (0, helpers_1.isSet)(object.grantee) ? String(object.grantee) : "", - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseMsgUpdateGroupMetadata(); + if ((0, helpers_1.isSet)(object.admin)) + obj.admin = String(object.admin); + if ((0, helpers_1.isSet)(object.groupId)) + obj.groupId = BigInt(object.groupId.toString()); + if ((0, helpers_1.isSet)(object.metadata)) + obj.metadata = String(object.metadata); + return obj; }, toJSON(message) { const obj = {}; - message.grantee !== undefined && (obj.grantee = message.grantee); - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + message.admin !== undefined && (obj.admin = message.admin); + message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString()); + message.metadata !== undefined && (obj.metadata = message.metadata); return obj; }, fromPartial(object) { - const message = createBaseQueryAllowancesRequest(); - message.grantee = object.grantee ?? ""; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + const message = createBaseMsgUpdateGroupMetadata(); + message.admin = object.admin ?? ""; + if (object.groupId !== undefined && object.groupId !== null) { + message.groupId = BigInt(object.groupId.toString()); + } + message.metadata = object.metadata ?? ""; return message; }, }; -function createBaseQueryAllowancesResponse() { - return { - allowances: [], - pagination: undefined, - }; +function createBaseMsgUpdateGroupMetadataResponse() { + return {}; } -exports.QueryAllowancesResponse = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.allowances) { - feegrant_1.Grant.encode(v, writer.uint32(10).fork()).ldelim(); - } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } +exports.MsgUpdateGroupMetadataResponse = { + typeUrl: "/cosmos.group.v1.MsgUpdateGroupMetadataResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllowancesResponse(); + const message = createBaseMsgUpdateGroupMetadataResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.allowances.push(feegrant_1.Grant.decode(reader, reader.uint32())); - break; - case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); - break; default: reader.skipType(tag & 7); break; @@ -72265,64 +67034,62 @@ exports.QueryAllowancesResponse = { } return message; }, - fromJSON(object) { - return { - allowances: Array.isArray(object?.allowances) - ? object.allowances.map((e) => feegrant_1.Grant.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + fromJSON(_) { + const obj = createBaseMsgUpdateGroupMetadataResponse(); + return obj; }, - toJSON(message) { + toJSON(_) { const obj = {}; - if (message.allowances) { - obj.allowances = message.allowances.map((e) => (e ? feegrant_1.Grant.toJSON(e) : undefined)); - } - else { - obj.allowances = []; - } - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); return obj; }, - fromPartial(object) { - const message = createBaseQueryAllowancesResponse(); - message.allowances = object.allowances?.map((e) => feegrant_1.Grant.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + fromPartial(_) { + const message = createBaseMsgUpdateGroupMetadataResponse(); return message; }, }; -function createBaseQueryAllowancesByGranterRequest() { +function createBaseMsgCreateGroupPolicy() { return { - granter: "", - pagination: undefined, + admin: "", + groupId: BigInt(0), + metadata: "", + decisionPolicy: undefined, }; } -exports.QueryAllowancesByGranterRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.granter !== "") { - writer.uint32(10).string(message.granter); +exports.MsgCreateGroupPolicy = { + typeUrl: "/cosmos.group.v1.MsgCreateGroupPolicy", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.admin !== "") { + writer.uint32(10).string(message.admin); } - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (message.groupId !== BigInt(0)) { + writer.uint32(16).uint64(message.groupId); + } + if (message.metadata !== "") { + writer.uint32(26).string(message.metadata); + } + if (message.decisionPolicy !== undefined) { + any_1.Any.encode(message.decisionPolicy, writer.uint32(34).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllowancesByGranterRequest(); + const message = createBaseMsgCreateGroupPolicy(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.granter = reader.string(); + message.admin = reader.string(); break; case 2: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.groupId = reader.uint64(); + break; + case 3: + message.metadata = reader.string(); + break; + case 4: + message.decisionPolicy = any_1.Any.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -72332,56 +67099,61 @@ exports.QueryAllowancesByGranterRequest = { return message; }, fromJSON(object) { - return { - granter: (0, helpers_1.isSet)(object.granter) ? String(object.granter) : "", - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseMsgCreateGroupPolicy(); + if ((0, helpers_1.isSet)(object.admin)) + obj.admin = String(object.admin); + if ((0, helpers_1.isSet)(object.groupId)) + obj.groupId = BigInt(object.groupId.toString()); + if ((0, helpers_1.isSet)(object.metadata)) + obj.metadata = String(object.metadata); + if ((0, helpers_1.isSet)(object.decisionPolicy)) + obj.decisionPolicy = any_1.Any.fromJSON(object.decisionPolicy); + return obj; }, toJSON(message) { const obj = {}; - message.granter !== undefined && (obj.granter = message.granter); - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + message.admin !== undefined && (obj.admin = message.admin); + message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString()); + message.metadata !== undefined && (obj.metadata = message.metadata); + message.decisionPolicy !== undefined && + (obj.decisionPolicy = message.decisionPolicy ? any_1.Any.toJSON(message.decisionPolicy) : undefined); return obj; }, fromPartial(object) { - const message = createBaseQueryAllowancesByGranterRequest(); - message.granter = object.granter ?? ""; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + const message = createBaseMsgCreateGroupPolicy(); + message.admin = object.admin ?? ""; + if (object.groupId !== undefined && object.groupId !== null) { + message.groupId = BigInt(object.groupId.toString()); + } + message.metadata = object.metadata ?? ""; + if (object.decisionPolicy !== undefined && object.decisionPolicy !== null) { + message.decisionPolicy = any_1.Any.fromPartial(object.decisionPolicy); + } return message; }, }; -function createBaseQueryAllowancesByGranterResponse() { +function createBaseMsgCreateGroupPolicyResponse() { return { - allowances: [], - pagination: undefined, + address: "", }; } -exports.QueryAllowancesByGranterResponse = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.allowances) { - feegrant_1.Grant.encode(v, writer.uint32(10).fork()).ldelim(); - } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); +exports.MsgCreateGroupPolicyResponse = { + typeUrl: "/cosmos.group.v1.MsgCreateGroupPolicyResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.address !== "") { + writer.uint32(10).string(message.address); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllowancesByGranterResponse(); + const message = createBaseMsgCreateGroupPolicyResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.allowances.push(feegrant_1.Grant.decode(reader, reader.uint32())); - break; - case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + message.address = reader.string(); break; default: reader.skipType(tag & 7); @@ -72391,136 +67163,58 @@ exports.QueryAllowancesByGranterResponse = { return message; }, fromJSON(object) { - return { - allowances: Array.isArray(object?.allowances) - ? object.allowances.map((e) => feegrant_1.Grant.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseMsgCreateGroupPolicyResponse(); + if ((0, helpers_1.isSet)(object.address)) + obj.address = String(object.address); + return obj; }, toJSON(message) { const obj = {}; - if (message.allowances) { - obj.allowances = message.allowances.map((e) => (e ? feegrant_1.Grant.toJSON(e) : undefined)); - } - else { - obj.allowances = []; - } - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); + message.address !== undefined && (obj.address = message.address); return obj; }, fromPartial(object) { - const message = createBaseQueryAllowancesByGranterResponse(); - message.allowances = object.allowances?.map((e) => feegrant_1.Grant.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + const message = createBaseMsgCreateGroupPolicyResponse(); + message.address = object.address ?? ""; return message; }, }; -class QueryClientImpl { - constructor(rpc) { - this.rpc = rpc; - this.Allowance = this.Allowance.bind(this); - this.Allowances = this.Allowances.bind(this); - this.AllowancesByGranter = this.AllowancesByGranter.bind(this); - } - Allowance(request) { - const data = exports.QueryAllowanceRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.feegrant.v1beta1.Query", "Allowance", data); - return promise.then((data) => exports.QueryAllowanceResponse.decode(new _m0.Reader(data))); - } - Allowances(request) { - const data = exports.QueryAllowancesRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.feegrant.v1beta1.Query", "Allowances", data); - return promise.then((data) => exports.QueryAllowancesResponse.decode(new _m0.Reader(data))); - } - AllowancesByGranter(request) { - const data = exports.QueryAllowancesByGranterRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.feegrant.v1beta1.Query", "AllowancesByGranter", data); - return promise.then((data) => exports.QueryAllowancesByGranterResponse.decode(new _m0.Reader(data))); - } -} -exports.QueryClientImpl = QueryClientImpl; -//# sourceMappingURL=query.js.map - -/***/ }), - -/***/ "./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/tx.js": -/*!*****************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/tx.js ***! - \*****************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.MsgClientImpl = exports.MsgRevokeAllowanceResponse = exports.MsgRevokeAllowance = exports.MsgGrantAllowanceResponse = exports.MsgGrantAllowance = exports.protobufPackage = void 0; -/* eslint-disable */ -const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -exports.protobufPackage = "cosmos.feegrant.v1beta1"; -function createBaseMsgGrantAllowance() { +function createBaseMsgUpdateGroupPolicyAdmin() { return { - granter: "", - grantee: "", - allowance: undefined, + admin: "", + groupPolicyAddress: "", + newAdmin: "", }; } -exports.MsgGrantAllowance = { - encode(message, writer = _m0.Writer.create()) { - if (message.granter !== "") { - writer.uint32(10).string(message.granter); +exports.MsgUpdateGroupPolicyAdmin = { + typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyAdmin", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.admin !== "") { + writer.uint32(10).string(message.admin); } - if (message.grantee !== "") { - writer.uint32(18).string(message.grantee); + if (message.groupPolicyAddress !== "") { + writer.uint32(18).string(message.groupPolicyAddress); } - if (message.allowance !== undefined) { - any_1.Any.encode(message.allowance, writer.uint32(26).fork()).ldelim(); + if (message.newAdmin !== "") { + writer.uint32(26).string(message.newAdmin); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgGrantAllowance(); + const message = createBaseMsgUpdateGroupPolicyAdmin(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.granter = reader.string(); + message.admin = reader.string(); break; case 2: - message.grantee = reader.string(); + message.groupPolicyAddress = reader.string(); break; case 3: - message.allowance = any_1.Any.decode(reader, reader.uint32()); + message.newAdmin = reader.string(); break; default: reader.skipType(tag & 7); @@ -72530,42 +67224,42 @@ exports.MsgGrantAllowance = { return message; }, fromJSON(object) { - return { - granter: (0, helpers_1.isSet)(object.granter) ? String(object.granter) : "", - grantee: (0, helpers_1.isSet)(object.grantee) ? String(object.grantee) : "", - allowance: (0, helpers_1.isSet)(object.allowance) ? any_1.Any.fromJSON(object.allowance) : undefined, - }; + const obj = createBaseMsgUpdateGroupPolicyAdmin(); + if ((0, helpers_1.isSet)(object.admin)) + obj.admin = String(object.admin); + if ((0, helpers_1.isSet)(object.groupPolicyAddress)) + obj.groupPolicyAddress = String(object.groupPolicyAddress); + if ((0, helpers_1.isSet)(object.newAdmin)) + obj.newAdmin = String(object.newAdmin); + return obj; }, toJSON(message) { const obj = {}; - message.granter !== undefined && (obj.granter = message.granter); - message.grantee !== undefined && (obj.grantee = message.grantee); - message.allowance !== undefined && - (obj.allowance = message.allowance ? any_1.Any.toJSON(message.allowance) : undefined); + message.admin !== undefined && (obj.admin = message.admin); + message.groupPolicyAddress !== undefined && (obj.groupPolicyAddress = message.groupPolicyAddress); + message.newAdmin !== undefined && (obj.newAdmin = message.newAdmin); return obj; }, fromPartial(object) { - const message = createBaseMsgGrantAllowance(); - message.granter = object.granter ?? ""; - message.grantee = object.grantee ?? ""; - message.allowance = - object.allowance !== undefined && object.allowance !== null - ? any_1.Any.fromPartial(object.allowance) - : undefined; + const message = createBaseMsgUpdateGroupPolicyAdmin(); + message.admin = object.admin ?? ""; + message.groupPolicyAddress = object.groupPolicyAddress ?? ""; + message.newAdmin = object.newAdmin ?? ""; return message; }, }; -function createBaseMsgGrantAllowanceResponse() { +function createBaseMsgUpdateGroupPolicyAdminResponse() { return {}; } -exports.MsgGrantAllowanceResponse = { - encode(_, writer = _m0.Writer.create()) { +exports.MsgUpdateGroupPolicyAdminResponse = { + typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyAdminResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgGrantAllowanceResponse(); + const message = createBaseMsgUpdateGroupPolicyAdminResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { @@ -72577,45 +67271,75 @@ exports.MsgGrantAllowanceResponse = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseMsgUpdateGroupPolicyAdminResponse(); + return obj; }, toJSON(_) { const obj = {}; return obj; }, fromPartial(_) { - const message = createBaseMsgGrantAllowanceResponse(); + const message = createBaseMsgUpdateGroupPolicyAdminResponse(); return message; }, }; -function createBaseMsgRevokeAllowance() { +function createBaseMsgCreateGroupWithPolicy() { return { - granter: "", - grantee: "", + admin: "", + members: [], + groupMetadata: "", + groupPolicyMetadata: "", + groupPolicyAsAdmin: false, + decisionPolicy: undefined, }; } -exports.MsgRevokeAllowance = { - encode(message, writer = _m0.Writer.create()) { - if (message.granter !== "") { - writer.uint32(10).string(message.granter); +exports.MsgCreateGroupWithPolicy = { + typeUrl: "/cosmos.group.v1.MsgCreateGroupWithPolicy", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.admin !== "") { + writer.uint32(10).string(message.admin); } - if (message.grantee !== "") { - writer.uint32(18).string(message.grantee); + for (const v of message.members) { + types_1.MemberRequest.encode(v, writer.uint32(18).fork()).ldelim(); + } + if (message.groupMetadata !== "") { + writer.uint32(26).string(message.groupMetadata); + } + if (message.groupPolicyMetadata !== "") { + writer.uint32(34).string(message.groupPolicyMetadata); + } + if (message.groupPolicyAsAdmin === true) { + writer.uint32(40).bool(message.groupPolicyAsAdmin); + } + if (message.decisionPolicy !== undefined) { + any_1.Any.encode(message.decisionPolicy, writer.uint32(50).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgRevokeAllowance(); + const message = createBaseMsgCreateGroupWithPolicy(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.granter = reader.string(); + message.admin = reader.string(); break; case 2: - message.grantee = reader.string(); + message.members.push(types_1.MemberRequest.decode(reader, reader.uint32())); + break; + case 3: + message.groupMetadata = reader.string(); + break; + case 4: + message.groupPolicyMetadata = reader.string(); + break; + case 5: + message.groupPolicyAsAdmin = reader.bool(); + break; + case 6: + message.decisionPolicy = any_1.Any.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -72625,38 +67349,80 @@ exports.MsgRevokeAllowance = { return message; }, fromJSON(object) { - return { - granter: (0, helpers_1.isSet)(object.granter) ? String(object.granter) : "", - grantee: (0, helpers_1.isSet)(object.grantee) ? String(object.grantee) : "", - }; + const obj = createBaseMsgCreateGroupWithPolicy(); + if ((0, helpers_1.isSet)(object.admin)) + obj.admin = String(object.admin); + if (Array.isArray(object?.members)) + obj.members = object.members.map((e) => types_1.MemberRequest.fromJSON(e)); + if ((0, helpers_1.isSet)(object.groupMetadata)) + obj.groupMetadata = String(object.groupMetadata); + if ((0, helpers_1.isSet)(object.groupPolicyMetadata)) + obj.groupPolicyMetadata = String(object.groupPolicyMetadata); + if ((0, helpers_1.isSet)(object.groupPolicyAsAdmin)) + obj.groupPolicyAsAdmin = Boolean(object.groupPolicyAsAdmin); + if ((0, helpers_1.isSet)(object.decisionPolicy)) + obj.decisionPolicy = any_1.Any.fromJSON(object.decisionPolicy); + return obj; }, toJSON(message) { const obj = {}; - message.granter !== undefined && (obj.granter = message.granter); - message.grantee !== undefined && (obj.grantee = message.grantee); + message.admin !== undefined && (obj.admin = message.admin); + if (message.members) { + obj.members = message.members.map((e) => (e ? types_1.MemberRequest.toJSON(e) : undefined)); + } + else { + obj.members = []; + } + message.groupMetadata !== undefined && (obj.groupMetadata = message.groupMetadata); + message.groupPolicyMetadata !== undefined && (obj.groupPolicyMetadata = message.groupPolicyMetadata); + message.groupPolicyAsAdmin !== undefined && (obj.groupPolicyAsAdmin = message.groupPolicyAsAdmin); + message.decisionPolicy !== undefined && + (obj.decisionPolicy = message.decisionPolicy ? any_1.Any.toJSON(message.decisionPolicy) : undefined); return obj; }, fromPartial(object) { - const message = createBaseMsgRevokeAllowance(); - message.granter = object.granter ?? ""; - message.grantee = object.grantee ?? ""; + const message = createBaseMsgCreateGroupWithPolicy(); + message.admin = object.admin ?? ""; + message.members = object.members?.map((e) => types_1.MemberRequest.fromPartial(e)) || []; + message.groupMetadata = object.groupMetadata ?? ""; + message.groupPolicyMetadata = object.groupPolicyMetadata ?? ""; + message.groupPolicyAsAdmin = object.groupPolicyAsAdmin ?? false; + if (object.decisionPolicy !== undefined && object.decisionPolicy !== null) { + message.decisionPolicy = any_1.Any.fromPartial(object.decisionPolicy); + } return message; }, }; -function createBaseMsgRevokeAllowanceResponse() { - return {}; +function createBaseMsgCreateGroupWithPolicyResponse() { + return { + groupId: BigInt(0), + groupPolicyAddress: "", + }; } -exports.MsgRevokeAllowanceResponse = { - encode(_, writer = _m0.Writer.create()) { +exports.MsgCreateGroupWithPolicyResponse = { + typeUrl: "/cosmos.group.v1.MsgCreateGroupWithPolicyResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.groupId !== BigInt(0)) { + writer.uint32(8).uint64(message.groupId); + } + if (message.groupPolicyAddress !== "") { + writer.uint32(18).string(message.groupPolicyAddress); + } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgRevokeAllowanceResponse(); + const message = createBaseMsgCreateGroupWithPolicyResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.groupId = reader.uint64(); + break; + case 2: + message.groupPolicyAddress = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -72664,245 +67430,65 @@ exports.MsgRevokeAllowanceResponse = { } return message; }, - fromJSON(_) { - return {}; + fromJSON(object) { + const obj = createBaseMsgCreateGroupWithPolicyResponse(); + if ((0, helpers_1.isSet)(object.groupId)) + obj.groupId = BigInt(object.groupId.toString()); + if ((0, helpers_1.isSet)(object.groupPolicyAddress)) + obj.groupPolicyAddress = String(object.groupPolicyAddress); + return obj; }, - toJSON(_) { + toJSON(message) { const obj = {}; + message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString()); + message.groupPolicyAddress !== undefined && (obj.groupPolicyAddress = message.groupPolicyAddress); return obj; }, - fromPartial(_) { - const message = createBaseMsgRevokeAllowanceResponse(); + fromPartial(object) { + const message = createBaseMsgCreateGroupWithPolicyResponse(); + if (object.groupId !== undefined && object.groupId !== null) { + message.groupId = BigInt(object.groupId.toString()); + } + message.groupPolicyAddress = object.groupPolicyAddress ?? ""; return message; }, }; -class MsgClientImpl { - constructor(rpc) { - this.rpc = rpc; - this.GrantAllowance = this.GrantAllowance.bind(this); - this.RevokeAllowance = this.RevokeAllowance.bind(this); - } - GrantAllowance(request) { - const data = exports.MsgGrantAllowance.encode(request).finish(); - const promise = this.rpc.request("cosmos.feegrant.v1beta1.Msg", "GrantAllowance", data); - return promise.then((data) => exports.MsgGrantAllowanceResponse.decode(new _m0.Reader(data))); - } - RevokeAllowance(request) { - const data = exports.MsgRevokeAllowance.encode(request).finish(); - const promise = this.rpc.request("cosmos.feegrant.v1beta1.Msg", "RevokeAllowance", data); - return promise.then((data) => exports.MsgRevokeAllowanceResponse.decode(new _m0.Reader(data))); - } -} -exports.MsgClientImpl = MsgClientImpl; -//# sourceMappingURL=tx.js.map - -/***/ }), - -/***/ "./node_modules/cosmjs-types/cosmos/gov/v1beta1/gov.js": -/*!*************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/gov/v1beta1/gov.js ***! - \*************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.TallyParams = exports.VotingParams = exports.DepositParams = exports.Vote = exports.TallyResult = exports.Proposal = exports.Deposit = exports.TextProposal = exports.WeightedVoteOption = exports.proposalStatusToJSON = exports.proposalStatusFromJSON = exports.ProposalStatus = exports.voteOptionToJSON = exports.voteOptionFromJSON = exports.VoteOption = exports.protobufPackage = void 0; -/* eslint-disable */ -const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); -const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); -const timestamp_1 = __webpack_require__(/*! ../../../google/protobuf/timestamp */ "./node_modules/cosmjs-types/google/protobuf/timestamp.js"); -const duration_1 = __webpack_require__(/*! ../../../google/protobuf/duration */ "./node_modules/cosmjs-types/google/protobuf/duration.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -exports.protobufPackage = "cosmos.gov.v1beta1"; -/** VoteOption enumerates the valid vote options for a given governance proposal. */ -var VoteOption; -(function (VoteOption) { - /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */ - VoteOption[VoteOption["VOTE_OPTION_UNSPECIFIED"] = 0] = "VOTE_OPTION_UNSPECIFIED"; - /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */ - VoteOption[VoteOption["VOTE_OPTION_YES"] = 1] = "VOTE_OPTION_YES"; - /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */ - VoteOption[VoteOption["VOTE_OPTION_ABSTAIN"] = 2] = "VOTE_OPTION_ABSTAIN"; - /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */ - VoteOption[VoteOption["VOTE_OPTION_NO"] = 3] = "VOTE_OPTION_NO"; - /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */ - VoteOption[VoteOption["VOTE_OPTION_NO_WITH_VETO"] = 4] = "VOTE_OPTION_NO_WITH_VETO"; - VoteOption[VoteOption["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(VoteOption = exports.VoteOption || (exports.VoteOption = {})); -function voteOptionFromJSON(object) { - switch (object) { - case 0: - case "VOTE_OPTION_UNSPECIFIED": - return VoteOption.VOTE_OPTION_UNSPECIFIED; - case 1: - case "VOTE_OPTION_YES": - return VoteOption.VOTE_OPTION_YES; - case 2: - case "VOTE_OPTION_ABSTAIN": - return VoteOption.VOTE_OPTION_ABSTAIN; - case 3: - case "VOTE_OPTION_NO": - return VoteOption.VOTE_OPTION_NO; - case 4: - case "VOTE_OPTION_NO_WITH_VETO": - return VoteOption.VOTE_OPTION_NO_WITH_VETO; - case -1: - case "UNRECOGNIZED": - default: - return VoteOption.UNRECOGNIZED; - } -} -exports.voteOptionFromJSON = voteOptionFromJSON; -function voteOptionToJSON(object) { - switch (object) { - case VoteOption.VOTE_OPTION_UNSPECIFIED: - return "VOTE_OPTION_UNSPECIFIED"; - case VoteOption.VOTE_OPTION_YES: - return "VOTE_OPTION_YES"; - case VoteOption.VOTE_OPTION_ABSTAIN: - return "VOTE_OPTION_ABSTAIN"; - case VoteOption.VOTE_OPTION_NO: - return "VOTE_OPTION_NO"; - case VoteOption.VOTE_OPTION_NO_WITH_VETO: - return "VOTE_OPTION_NO_WITH_VETO"; - case VoteOption.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -exports.voteOptionToJSON = voteOptionToJSON; -/** ProposalStatus enumerates the valid statuses of a proposal. */ -var ProposalStatus; -(function (ProposalStatus) { - /** PROPOSAL_STATUS_UNSPECIFIED - PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. */ - ProposalStatus[ProposalStatus["PROPOSAL_STATUS_UNSPECIFIED"] = 0] = "PROPOSAL_STATUS_UNSPECIFIED"; - /** - * PROPOSAL_STATUS_DEPOSIT_PERIOD - PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit - * period. - */ - ProposalStatus[ProposalStatus["PROPOSAL_STATUS_DEPOSIT_PERIOD"] = 1] = "PROPOSAL_STATUS_DEPOSIT_PERIOD"; - /** - * PROPOSAL_STATUS_VOTING_PERIOD - PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting - * period. - */ - ProposalStatus[ProposalStatus["PROPOSAL_STATUS_VOTING_PERIOD"] = 2] = "PROPOSAL_STATUS_VOTING_PERIOD"; - /** - * PROPOSAL_STATUS_PASSED - PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has - * passed. - */ - ProposalStatus[ProposalStatus["PROPOSAL_STATUS_PASSED"] = 3] = "PROPOSAL_STATUS_PASSED"; - /** - * PROPOSAL_STATUS_REJECTED - PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has - * been rejected. - */ - ProposalStatus[ProposalStatus["PROPOSAL_STATUS_REJECTED"] = 4] = "PROPOSAL_STATUS_REJECTED"; - /** - * PROPOSAL_STATUS_FAILED - PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has - * failed. - */ - ProposalStatus[ProposalStatus["PROPOSAL_STATUS_FAILED"] = 5] = "PROPOSAL_STATUS_FAILED"; - ProposalStatus[ProposalStatus["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(ProposalStatus = exports.ProposalStatus || (exports.ProposalStatus = {})); -function proposalStatusFromJSON(object) { - switch (object) { - case 0: - case "PROPOSAL_STATUS_UNSPECIFIED": - return ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED; - case 1: - case "PROPOSAL_STATUS_DEPOSIT_PERIOD": - return ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD; - case 2: - case "PROPOSAL_STATUS_VOTING_PERIOD": - return ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD; - case 3: - case "PROPOSAL_STATUS_PASSED": - return ProposalStatus.PROPOSAL_STATUS_PASSED; - case 4: - case "PROPOSAL_STATUS_REJECTED": - return ProposalStatus.PROPOSAL_STATUS_REJECTED; - case 5: - case "PROPOSAL_STATUS_FAILED": - return ProposalStatus.PROPOSAL_STATUS_FAILED; - case -1: - case "UNRECOGNIZED": - default: - return ProposalStatus.UNRECOGNIZED; - } -} -exports.proposalStatusFromJSON = proposalStatusFromJSON; -function proposalStatusToJSON(object) { - switch (object) { - case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED: - return "PROPOSAL_STATUS_UNSPECIFIED"; - case ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD: - return "PROPOSAL_STATUS_DEPOSIT_PERIOD"; - case ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD: - return "PROPOSAL_STATUS_VOTING_PERIOD"; - case ProposalStatus.PROPOSAL_STATUS_PASSED: - return "PROPOSAL_STATUS_PASSED"; - case ProposalStatus.PROPOSAL_STATUS_REJECTED: - return "PROPOSAL_STATUS_REJECTED"; - case ProposalStatus.PROPOSAL_STATUS_FAILED: - return "PROPOSAL_STATUS_FAILED"; - case ProposalStatus.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -exports.proposalStatusToJSON = proposalStatusToJSON; -function createBaseWeightedVoteOption() { +function createBaseMsgUpdateGroupPolicyDecisionPolicy() { return { - option: 0, - weight: "", + admin: "", + groupPolicyAddress: "", + decisionPolicy: undefined, }; } -exports.WeightedVoteOption = { - encode(message, writer = _m0.Writer.create()) { - if (message.option !== 0) { - writer.uint32(8).int32(message.option); +exports.MsgUpdateGroupPolicyDecisionPolicy = { + typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyDecisionPolicy", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.admin !== "") { + writer.uint32(10).string(message.admin); } - if (message.weight !== "") { - writer.uint32(18).string(message.weight); + if (message.groupPolicyAddress !== "") { + writer.uint32(18).string(message.groupPolicyAddress); + } + if (message.decisionPolicy !== undefined) { + any_1.Any.encode(message.decisionPolicy, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseWeightedVoteOption(); + const message = createBaseMsgUpdateGroupPolicyDecisionPolicy(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.option = reader.int32(); + message.admin = reader.string(); break; case 2: - message.weight = reader.string(); + message.groupPolicyAddress = reader.string(); + break; + case 3: + message.decisionPolicy = any_1.Any.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -72912,53 +67498,48 @@ exports.WeightedVoteOption = { return message; }, fromJSON(object) { - return { - option: (0, helpers_1.isSet)(object.option) ? voteOptionFromJSON(object.option) : 0, - weight: (0, helpers_1.isSet)(object.weight) ? String(object.weight) : "", - }; + const obj = createBaseMsgUpdateGroupPolicyDecisionPolicy(); + if ((0, helpers_1.isSet)(object.admin)) + obj.admin = String(object.admin); + if ((0, helpers_1.isSet)(object.groupPolicyAddress)) + obj.groupPolicyAddress = String(object.groupPolicyAddress); + if ((0, helpers_1.isSet)(object.decisionPolicy)) + obj.decisionPolicy = any_1.Any.fromJSON(object.decisionPolicy); + return obj; }, toJSON(message) { const obj = {}; - message.option !== undefined && (obj.option = voteOptionToJSON(message.option)); - message.weight !== undefined && (obj.weight = message.weight); + message.admin !== undefined && (obj.admin = message.admin); + message.groupPolicyAddress !== undefined && (obj.groupPolicyAddress = message.groupPolicyAddress); + message.decisionPolicy !== undefined && + (obj.decisionPolicy = message.decisionPolicy ? any_1.Any.toJSON(message.decisionPolicy) : undefined); return obj; }, fromPartial(object) { - const message = createBaseWeightedVoteOption(); - message.option = object.option ?? 0; - message.weight = object.weight ?? ""; + const message = createBaseMsgUpdateGroupPolicyDecisionPolicy(); + message.admin = object.admin ?? ""; + message.groupPolicyAddress = object.groupPolicyAddress ?? ""; + if (object.decisionPolicy !== undefined && object.decisionPolicy !== null) { + message.decisionPolicy = any_1.Any.fromPartial(object.decisionPolicy); + } return message; }, }; -function createBaseTextProposal() { - return { - title: "", - description: "", - }; +function createBaseMsgUpdateGroupPolicyDecisionPolicyResponse() { + return {}; } -exports.TextProposal = { - encode(message, writer = _m0.Writer.create()) { - if (message.title !== "") { - writer.uint32(10).string(message.title); - } - if (message.description !== "") { - writer.uint32(18).string(message.description); - } +exports.MsgUpdateGroupPolicyDecisionPolicyResponse = { + typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyDecisionPolicyResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTextProposal(); + const message = createBaseMsgUpdateGroupPolicyDecisionPolicyResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.title = reader.string(); - break; - case 2: - message.description = reader.string(); - break; default: reader.skipType(tag & 7); break; @@ -72966,60 +67547,55 @@ exports.TextProposal = { } return message; }, - fromJSON(object) { - return { - title: (0, helpers_1.isSet)(object.title) ? String(object.title) : "", - description: (0, helpers_1.isSet)(object.description) ? String(object.description) : "", - }; + fromJSON(_) { + const obj = createBaseMsgUpdateGroupPolicyDecisionPolicyResponse(); + return obj; }, - toJSON(message) { + toJSON(_) { const obj = {}; - message.title !== undefined && (obj.title = message.title); - message.description !== undefined && (obj.description = message.description); return obj; }, - fromPartial(object) { - const message = createBaseTextProposal(); - message.title = object.title ?? ""; - message.description = object.description ?? ""; + fromPartial(_) { + const message = createBaseMsgUpdateGroupPolicyDecisionPolicyResponse(); return message; }, }; -function createBaseDeposit() { +function createBaseMsgUpdateGroupPolicyMetadata() { return { - proposalId: helpers_1.Long.UZERO, - depositor: "", - amount: [], + admin: "", + groupPolicyAddress: "", + metadata: "", }; } -exports.Deposit = { - encode(message, writer = _m0.Writer.create()) { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); +exports.MsgUpdateGroupPolicyMetadata = { + typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyMetadata", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.admin !== "") { + writer.uint32(10).string(message.admin); } - if (message.depositor !== "") { - writer.uint32(18).string(message.depositor); + if (message.groupPolicyAddress !== "") { + writer.uint32(18).string(message.groupPolicyAddress); } - for (const v of message.amount) { - coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim(); + if (message.metadata !== "") { + writer.uint32(26).string(message.metadata); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDeposit(); + const message = createBaseMsgUpdateGroupPolicyMetadata(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.proposalId = reader.uint64(); + message.admin = reader.string(); break; case 2: - message.depositor = reader.string(); + message.groupPolicyAddress = reader.string(); break; case 3: - message.amount.push(coin_1.Coin.decode(reader, reader.uint32())); + message.metadata = reader.string(); break; default: reader.skipType(tag & 7); @@ -73029,112 +67605,129 @@ exports.Deposit = { return message; }, fromJSON(object) { - return { - proposalId: (0, helpers_1.isSet)(object.proposalId) ? helpers_1.Long.fromValue(object.proposalId) : helpers_1.Long.UZERO, - depositor: (0, helpers_1.isSet)(object.depositor) ? String(object.depositor) : "", - amount: Array.isArray(object?.amount) ? object.amount.map((e) => coin_1.Coin.fromJSON(e)) : [], - }; + const obj = createBaseMsgUpdateGroupPolicyMetadata(); + if ((0, helpers_1.isSet)(object.admin)) + obj.admin = String(object.admin); + if ((0, helpers_1.isSet)(object.groupPolicyAddress)) + obj.groupPolicyAddress = String(object.groupPolicyAddress); + if ((0, helpers_1.isSet)(object.metadata)) + obj.metadata = String(object.metadata); + return obj; }, toJSON(message) { const obj = {}; - message.proposalId !== undefined && (obj.proposalId = (message.proposalId || helpers_1.Long.UZERO).toString()); - message.depositor !== undefined && (obj.depositor = message.depositor); - if (message.amount) { - obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); - } - else { - obj.amount = []; - } + message.admin !== undefined && (obj.admin = message.admin); + message.groupPolicyAddress !== undefined && (obj.groupPolicyAddress = message.groupPolicyAddress); + message.metadata !== undefined && (obj.metadata = message.metadata); return obj; }, fromPartial(object) { - const message = createBaseDeposit(); - message.proposalId = - object.proposalId !== undefined && object.proposalId !== null - ? helpers_1.Long.fromValue(object.proposalId) - : helpers_1.Long.UZERO; - message.depositor = object.depositor ?? ""; - message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || []; + const message = createBaseMsgUpdateGroupPolicyMetadata(); + message.admin = object.admin ?? ""; + message.groupPolicyAddress = object.groupPolicyAddress ?? ""; + message.metadata = object.metadata ?? ""; return message; }, }; -function createBaseProposal() { +function createBaseMsgUpdateGroupPolicyMetadataResponse() { + return {}; +} +exports.MsgUpdateGroupPolicyMetadataResponse = { + typeUrl: "/cosmos.group.v1.MsgUpdateGroupPolicyMetadataResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgUpdateGroupPolicyMetadataResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_) { + const obj = createBaseMsgUpdateGroupPolicyMetadataResponse(); + return obj; + }, + toJSON(_) { + const obj = {}; + return obj; + }, + fromPartial(_) { + const message = createBaseMsgUpdateGroupPolicyMetadataResponse(); + return message; + }, +}; +function createBaseMsgSubmitProposal() { return { - proposalId: helpers_1.Long.UZERO, - content: undefined, - status: 0, - finalTallyResult: undefined, - submitTime: undefined, - depositEndTime: undefined, - totalDeposit: [], - votingStartTime: undefined, - votingEndTime: undefined, + groupPolicyAddress: "", + proposers: [], + metadata: "", + messages: [], + exec: 0, + title: "", + summary: "", }; } -exports.Proposal = { - encode(message, writer = _m0.Writer.create()) { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - if (message.content !== undefined) { - any_1.Any.encode(message.content, writer.uint32(18).fork()).ldelim(); - } - if (message.status !== 0) { - writer.uint32(24).int32(message.status); +exports.MsgSubmitProposal = { + typeUrl: "/cosmos.group.v1.MsgSubmitProposal", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.groupPolicyAddress !== "") { + writer.uint32(10).string(message.groupPolicyAddress); } - if (message.finalTallyResult !== undefined) { - exports.TallyResult.encode(message.finalTallyResult, writer.uint32(34).fork()).ldelim(); + for (const v of message.proposers) { + writer.uint32(18).string(v); } - if (message.submitTime !== undefined) { - timestamp_1.Timestamp.encode(message.submitTime, writer.uint32(42).fork()).ldelim(); + if (message.metadata !== "") { + writer.uint32(26).string(message.metadata); } - if (message.depositEndTime !== undefined) { - timestamp_1.Timestamp.encode(message.depositEndTime, writer.uint32(50).fork()).ldelim(); + for (const v of message.messages) { + any_1.Any.encode(v, writer.uint32(34).fork()).ldelim(); } - for (const v of message.totalDeposit) { - coin_1.Coin.encode(v, writer.uint32(58).fork()).ldelim(); + if (message.exec !== 0) { + writer.uint32(40).int32(message.exec); } - if (message.votingStartTime !== undefined) { - timestamp_1.Timestamp.encode(message.votingStartTime, writer.uint32(66).fork()).ldelim(); + if (message.title !== "") { + writer.uint32(50).string(message.title); } - if (message.votingEndTime !== undefined) { - timestamp_1.Timestamp.encode(message.votingEndTime, writer.uint32(74).fork()).ldelim(); + if (message.summary !== "") { + writer.uint32(58).string(message.summary); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseProposal(); + const message = createBaseMsgSubmitProposal(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.proposalId = reader.uint64(); + message.groupPolicyAddress = reader.string(); break; case 2: - message.content = any_1.Any.decode(reader, reader.uint32()); + message.proposers.push(reader.string()); break; case 3: - message.status = reader.int32(); + message.metadata = reader.string(); break; case 4: - message.finalTallyResult = exports.TallyResult.decode(reader, reader.uint32()); + message.messages.push(any_1.Any.decode(reader, reader.uint32())); break; case 5: - message.submitTime = timestamp_1.Timestamp.decode(reader, reader.uint32()); + message.exec = reader.int32(); break; case 6: - message.depositEndTime = timestamp_1.Timestamp.decode(reader, reader.uint32()); + message.title = reader.string(); break; case 7: - message.totalDeposit.push(coin_1.Coin.decode(reader, reader.uint32())); - break; - case 8: - message.votingStartTime = timestamp_1.Timestamp.decode(reader, reader.uint32()); - break; - case 9: - message.votingEndTime = timestamp_1.Timestamp.decode(reader, reader.uint32()); + message.summary = reader.string(); break; default: reader.skipType(tag & 7); @@ -73144,123 +67737,180 @@ exports.Proposal = { return message; }, fromJSON(object) { - return { - proposalId: (0, helpers_1.isSet)(object.proposalId) ? helpers_1.Long.fromValue(object.proposalId) : helpers_1.Long.UZERO, - content: (0, helpers_1.isSet)(object.content) ? any_1.Any.fromJSON(object.content) : undefined, - status: (0, helpers_1.isSet)(object.status) ? proposalStatusFromJSON(object.status) : 0, - finalTallyResult: (0, helpers_1.isSet)(object.finalTallyResult) - ? exports.TallyResult.fromJSON(object.finalTallyResult) - : undefined, - submitTime: (0, helpers_1.isSet)(object.submitTime) ? (0, helpers_1.fromJsonTimestamp)(object.submitTime) : undefined, - depositEndTime: (0, helpers_1.isSet)(object.depositEndTime) ? (0, helpers_1.fromJsonTimestamp)(object.depositEndTime) : undefined, - totalDeposit: Array.isArray(object?.totalDeposit) - ? object.totalDeposit.map((e) => coin_1.Coin.fromJSON(e)) - : [], - votingStartTime: (0, helpers_1.isSet)(object.votingStartTime) ? (0, helpers_1.fromJsonTimestamp)(object.votingStartTime) : undefined, - votingEndTime: (0, helpers_1.isSet)(object.votingEndTime) ? (0, helpers_1.fromJsonTimestamp)(object.votingEndTime) : undefined, - }; + const obj = createBaseMsgSubmitProposal(); + if ((0, helpers_1.isSet)(object.groupPolicyAddress)) + obj.groupPolicyAddress = String(object.groupPolicyAddress); + if (Array.isArray(object?.proposers)) + obj.proposers = object.proposers.map((e) => String(e)); + if ((0, helpers_1.isSet)(object.metadata)) + obj.metadata = String(object.metadata); + if (Array.isArray(object?.messages)) + obj.messages = object.messages.map((e) => any_1.Any.fromJSON(e)); + if ((0, helpers_1.isSet)(object.exec)) + obj.exec = execFromJSON(object.exec); + if ((0, helpers_1.isSet)(object.title)) + obj.title = String(object.title); + if ((0, helpers_1.isSet)(object.summary)) + obj.summary = String(object.summary); + return obj; }, toJSON(message) { const obj = {}; - message.proposalId !== undefined && (obj.proposalId = (message.proposalId || helpers_1.Long.UZERO).toString()); - message.content !== undefined && - (obj.content = message.content ? any_1.Any.toJSON(message.content) : undefined); - message.status !== undefined && (obj.status = proposalStatusToJSON(message.status)); - message.finalTallyResult !== undefined && - (obj.finalTallyResult = message.finalTallyResult - ? exports.TallyResult.toJSON(message.finalTallyResult) - : undefined); - message.submitTime !== undefined && (obj.submitTime = (0, helpers_1.fromTimestamp)(message.submitTime).toISOString()); - message.depositEndTime !== undefined && - (obj.depositEndTime = (0, helpers_1.fromTimestamp)(message.depositEndTime).toISOString()); - if (message.totalDeposit) { - obj.totalDeposit = message.totalDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + message.groupPolicyAddress !== undefined && (obj.groupPolicyAddress = message.groupPolicyAddress); + if (message.proposers) { + obj.proposers = message.proposers.map((e) => e); } else { - obj.totalDeposit = []; + obj.proposers = []; } - message.votingStartTime !== undefined && - (obj.votingStartTime = (0, helpers_1.fromTimestamp)(message.votingStartTime).toISOString()); - message.votingEndTime !== undefined && - (obj.votingEndTime = (0, helpers_1.fromTimestamp)(message.votingEndTime).toISOString()); + message.metadata !== undefined && (obj.metadata = message.metadata); + if (message.messages) { + obj.messages = message.messages.map((e) => (e ? any_1.Any.toJSON(e) : undefined)); + } + else { + obj.messages = []; + } + message.exec !== undefined && (obj.exec = execToJSON(message.exec)); + message.title !== undefined && (obj.title = message.title); + message.summary !== undefined && (obj.summary = message.summary); return obj; }, fromPartial(object) { - const message = createBaseProposal(); - message.proposalId = - object.proposalId !== undefined && object.proposalId !== null - ? helpers_1.Long.fromValue(object.proposalId) - : helpers_1.Long.UZERO; - message.content = - object.content !== undefined && object.content !== null ? any_1.Any.fromPartial(object.content) : undefined; - message.status = object.status ?? 0; - message.finalTallyResult = - object.finalTallyResult !== undefined && object.finalTallyResult !== null - ? exports.TallyResult.fromPartial(object.finalTallyResult) - : undefined; - message.submitTime = - object.submitTime !== undefined && object.submitTime !== null - ? timestamp_1.Timestamp.fromPartial(object.submitTime) - : undefined; - message.depositEndTime = - object.depositEndTime !== undefined && object.depositEndTime !== null - ? timestamp_1.Timestamp.fromPartial(object.depositEndTime) - : undefined; - message.totalDeposit = object.totalDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || []; - message.votingStartTime = - object.votingStartTime !== undefined && object.votingStartTime !== null - ? timestamp_1.Timestamp.fromPartial(object.votingStartTime) - : undefined; - message.votingEndTime = - object.votingEndTime !== undefined && object.votingEndTime !== null - ? timestamp_1.Timestamp.fromPartial(object.votingEndTime) - : undefined; + const message = createBaseMsgSubmitProposal(); + message.groupPolicyAddress = object.groupPolicyAddress ?? ""; + message.proposers = object.proposers?.map((e) => e) || []; + message.metadata = object.metadata ?? ""; + message.messages = object.messages?.map((e) => any_1.Any.fromPartial(e)) || []; + message.exec = object.exec ?? 0; + message.title = object.title ?? ""; + message.summary = object.summary ?? ""; return message; }, }; -function createBaseTallyResult() { +function createBaseMsgSubmitProposalResponse() { return { - yes: "", - abstain: "", - no: "", - noWithVeto: "", + proposalId: BigInt(0), }; } -exports.TallyResult = { - encode(message, writer = _m0.Writer.create()) { - if (message.yes !== "") { - writer.uint32(10).string(message.yes); +exports.MsgSubmitProposalResponse = { + typeUrl: "/cosmos.group.v1.MsgSubmitProposalResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { + writer.uint32(8).uint64(message.proposalId); } - if (message.abstain !== "") { - writer.uint32(18).string(message.abstain); + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgSubmitProposalResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.proposalId = reader.uint64(); + break; + default: + reader.skipType(tag & 7); + break; + } } - if (message.no !== "") { - writer.uint32(26).string(message.no); + return message; + }, + fromJSON(object) { + const obj = createBaseMsgSubmitProposalResponse(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + return obj; + }, + toJSON(message) { + const obj = {}; + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); + return obj; + }, + fromPartial(object) { + const message = createBaseMsgSubmitProposalResponse(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); } - if (message.noWithVeto !== "") { - writer.uint32(34).string(message.noWithVeto); + return message; + }, +}; +function createBaseMsgWithdrawProposal() { + return { + proposalId: BigInt(0), + address: "", + }; +} +exports.MsgWithdrawProposal = { + typeUrl: "/cosmos.group.v1.MsgWithdrawProposal", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { + writer.uint32(8).uint64(message.proposalId); + } + if (message.address !== "") { + writer.uint32(18).string(message.address); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTallyResult(); + const message = createBaseMsgWithdrawProposal(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.yes = reader.string(); + message.proposalId = reader.uint64(); break; case 2: - message.abstain = reader.string(); - break; - case 3: - message.no = reader.string(); + message.address = reader.string(); break; - case 4: - message.noWithVeto = reader.string(); + default: + reader.skipType(tag & 7); break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseMsgWithdrawProposal(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + if ((0, helpers_1.isSet)(object.address)) + obj.address = String(object.address); + return obj; + }, + toJSON(message) { + const obj = {}; + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); + message.address !== undefined && (obj.address = message.address); + return obj; + }, + fromPartial(object) { + const message = createBaseMsgWithdrawProposal(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); + } + message.address = object.address ?? ""; + return message; + }, +}; +function createBaseMsgWithdrawProposalResponse() { + return {}; +} +exports.MsgWithdrawProposalResponse = { + typeUrl: "/cosmos.group.v1.MsgWithdrawProposalResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgWithdrawProposalResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { default: reader.skipType(tag & 7); break; @@ -73268,42 +67918,32 @@ exports.TallyResult = { } return message; }, - fromJSON(object) { - return { - yes: (0, helpers_1.isSet)(object.yes) ? String(object.yes) : "", - abstain: (0, helpers_1.isSet)(object.abstain) ? String(object.abstain) : "", - no: (0, helpers_1.isSet)(object.no) ? String(object.no) : "", - noWithVeto: (0, helpers_1.isSet)(object.noWithVeto) ? String(object.noWithVeto) : "", - }; + fromJSON(_) { + const obj = createBaseMsgWithdrawProposalResponse(); + return obj; }, - toJSON(message) { + toJSON(_) { const obj = {}; - message.yes !== undefined && (obj.yes = message.yes); - message.abstain !== undefined && (obj.abstain = message.abstain); - message.no !== undefined && (obj.no = message.no); - message.noWithVeto !== undefined && (obj.noWithVeto = message.noWithVeto); return obj; }, - fromPartial(object) { - const message = createBaseTallyResult(); - message.yes = object.yes ?? ""; - message.abstain = object.abstain ?? ""; - message.no = object.no ?? ""; - message.noWithVeto = object.noWithVeto ?? ""; + fromPartial(_) { + const message = createBaseMsgWithdrawProposalResponse(); return message; }, }; -function createBaseVote() { +function createBaseMsgVote() { return { - proposalId: helpers_1.Long.UZERO, + proposalId: BigInt(0), voter: "", option: 0, - options: [], + metadata: "", + exec: 0, }; } -exports.Vote = { - encode(message, writer = _m0.Writer.create()) { - if (!message.proposalId.isZero()) { +exports.MsgVote = { + typeUrl: "/cosmos.group.v1.MsgVote", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { writer.uint32(8).uint64(message.proposalId); } if (message.voter !== "") { @@ -73312,15 +67952,18 @@ exports.Vote = { if (message.option !== 0) { writer.uint32(24).int32(message.option); } - for (const v of message.options) { - exports.WeightedVoteOption.encode(v, writer.uint32(34).fork()).ldelim(); + if (message.metadata !== "") { + writer.uint32(34).string(message.metadata); + } + if (message.exec !== 0) { + writer.uint32(40).int32(message.exec); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseVote(); + const message = createBaseMsgVote(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { @@ -73334,7 +67977,10 @@ exports.Vote = { message.option = reader.int32(); break; case 4: - message.options.push(exports.WeightedVoteOption.decode(reader, reader.uint32())); + message.metadata = reader.string(); + break; + case 5: + message.exec = reader.int32(); break; default: reader.skipType(tag & 7); @@ -73344,68 +67990,104 @@ exports.Vote = { return message; }, fromJSON(object) { - return { - proposalId: (0, helpers_1.isSet)(object.proposalId) ? helpers_1.Long.fromValue(object.proposalId) : helpers_1.Long.UZERO, - voter: (0, helpers_1.isSet)(object.voter) ? String(object.voter) : "", - option: (0, helpers_1.isSet)(object.option) ? voteOptionFromJSON(object.option) : 0, - options: Array.isArray(object?.options) - ? object.options.map((e) => exports.WeightedVoteOption.fromJSON(e)) - : [], - }; + const obj = createBaseMsgVote(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + if ((0, helpers_1.isSet)(object.voter)) + obj.voter = String(object.voter); + if ((0, helpers_1.isSet)(object.option)) + obj.option = (0, types_1.voteOptionFromJSON)(object.option); + if ((0, helpers_1.isSet)(object.metadata)) + obj.metadata = String(object.metadata); + if ((0, helpers_1.isSet)(object.exec)) + obj.exec = execFromJSON(object.exec); + return obj; }, toJSON(message) { const obj = {}; - message.proposalId !== undefined && (obj.proposalId = (message.proposalId || helpers_1.Long.UZERO).toString()); + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); message.voter !== undefined && (obj.voter = message.voter); - message.option !== undefined && (obj.option = voteOptionToJSON(message.option)); - if (message.options) { - obj.options = message.options.map((e) => (e ? exports.WeightedVoteOption.toJSON(e) : undefined)); - } - else { - obj.options = []; - } + message.option !== undefined && (obj.option = (0, types_1.voteOptionToJSON)(message.option)); + message.metadata !== undefined && (obj.metadata = message.metadata); + message.exec !== undefined && (obj.exec = execToJSON(message.exec)); return obj; }, fromPartial(object) { - const message = createBaseVote(); - message.proposalId = - object.proposalId !== undefined && object.proposalId !== null - ? helpers_1.Long.fromValue(object.proposalId) - : helpers_1.Long.UZERO; + const message = createBaseMsgVote(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); + } message.voter = object.voter ?? ""; message.option = object.option ?? 0; - message.options = object.options?.map((e) => exports.WeightedVoteOption.fromPartial(e)) || []; + message.metadata = object.metadata ?? ""; + message.exec = object.exec ?? 0; return message; }, }; -function createBaseDepositParams() { +function createBaseMsgVoteResponse() { + return {}; +} +exports.MsgVoteResponse = { + typeUrl: "/cosmos.group.v1.MsgVoteResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgVoteResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_) { + const obj = createBaseMsgVoteResponse(); + return obj; + }, + toJSON(_) { + const obj = {}; + return obj; + }, + fromPartial(_) { + const message = createBaseMsgVoteResponse(); + return message; + }, +}; +function createBaseMsgExec() { return { - minDeposit: [], - maxDepositPeriod: undefined, + proposalId: BigInt(0), + executor: "", }; } -exports.DepositParams = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.minDeposit) { - coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim(); +exports.MsgExec = { + typeUrl: "/cosmos.group.v1.MsgExec", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { + writer.uint32(8).uint64(message.proposalId); } - if (message.maxDepositPeriod !== undefined) { - duration_1.Duration.encode(message.maxDepositPeriod, writer.uint32(18).fork()).ldelim(); + if (message.executor !== "") { + writer.uint32(18).string(message.executor); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDepositParams(); + const message = createBaseMsgExec(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.minDeposit.push(coin_1.Coin.decode(reader, reader.uint32())); + message.proposalId = reader.uint64(); break; case 2: - message.maxDepositPeriod = duration_1.Duration.decode(reader, reader.uint32()); + message.executor = reader.string(); break; default: reader.skipType(tag & 7); @@ -73415,60 +68097,50 @@ exports.DepositParams = { return message; }, fromJSON(object) { - return { - minDeposit: Array.isArray(object?.minDeposit) - ? object.minDeposit.map((e) => coin_1.Coin.fromJSON(e)) - : [], - maxDepositPeriod: (0, helpers_1.isSet)(object.maxDepositPeriod) - ? duration_1.Duration.fromJSON(object.maxDepositPeriod) - : undefined, - }; + const obj = createBaseMsgExec(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + if ((0, helpers_1.isSet)(object.executor)) + obj.executor = String(object.executor); + return obj; }, toJSON(message) { const obj = {}; - if (message.minDeposit) { - obj.minDeposit = message.minDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); - } - else { - obj.minDeposit = []; - } - message.maxDepositPeriod !== undefined && - (obj.maxDepositPeriod = message.maxDepositPeriod - ? duration_1.Duration.toJSON(message.maxDepositPeriod) - : undefined); + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); + message.executor !== undefined && (obj.executor = message.executor); return obj; }, fromPartial(object) { - const message = createBaseDepositParams(); - message.minDeposit = object.minDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || []; - message.maxDepositPeriod = - object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null - ? duration_1.Duration.fromPartial(object.maxDepositPeriod) - : undefined; + const message = createBaseMsgExec(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); + } + message.executor = object.executor ?? ""; return message; }, }; -function createBaseVotingParams() { +function createBaseMsgExecResponse() { return { - votingPeriod: undefined, + result: 0, }; } -exports.VotingParams = { - encode(message, writer = _m0.Writer.create()) { - if (message.votingPeriod !== undefined) { - duration_1.Duration.encode(message.votingPeriod, writer.uint32(10).fork()).ldelim(); +exports.MsgExecResponse = { + typeUrl: "/cosmos.group.v1.MsgExecResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.result !== 0) { + writer.uint32(16).int32(message.result); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseVotingParams(); + const message = createBaseMsgExecResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.votingPeriod = duration_1.Duration.decode(reader, reader.uint32()); + case 2: + message.result = reader.int32(); break; default: reader.skipType(tag & 7); @@ -73478,60 +68150,51 @@ exports.VotingParams = { return message; }, fromJSON(object) { - return { - votingPeriod: (0, helpers_1.isSet)(object.votingPeriod) ? duration_1.Duration.fromJSON(object.votingPeriod) : undefined, - }; + const obj = createBaseMsgExecResponse(); + if ((0, helpers_1.isSet)(object.result)) + obj.result = (0, types_1.proposalExecutorResultFromJSON)(object.result); + return obj; }, toJSON(message) { const obj = {}; - message.votingPeriod !== undefined && - (obj.votingPeriod = message.votingPeriod ? duration_1.Duration.toJSON(message.votingPeriod) : undefined); + message.result !== undefined && (obj.result = (0, types_1.proposalExecutorResultToJSON)(message.result)); return obj; }, fromPartial(object) { - const message = createBaseVotingParams(); - message.votingPeriod = - object.votingPeriod !== undefined && object.votingPeriod !== null - ? duration_1.Duration.fromPartial(object.votingPeriod) - : undefined; + const message = createBaseMsgExecResponse(); + message.result = object.result ?? 0; return message; }, }; -function createBaseTallyParams() { +function createBaseMsgLeaveGroup() { return { - quorum: new Uint8Array(), - threshold: new Uint8Array(), - vetoThreshold: new Uint8Array(), + address: "", + groupId: BigInt(0), }; } -exports.TallyParams = { - encode(message, writer = _m0.Writer.create()) { - if (message.quorum.length !== 0) { - writer.uint32(10).bytes(message.quorum); - } - if (message.threshold.length !== 0) { - writer.uint32(18).bytes(message.threshold); +exports.MsgLeaveGroup = { + typeUrl: "/cosmos.group.v1.MsgLeaveGroup", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.address !== "") { + writer.uint32(10).string(message.address); } - if (message.vetoThreshold.length !== 0) { - writer.uint32(26).bytes(message.vetoThreshold); + if (message.groupId !== BigInt(0)) { + writer.uint32(16).uint64(message.groupId); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTallyParams(); + const message = createBaseMsgLeaveGroup(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.quorum = reader.bytes(); + message.address = reader.string(); break; case 2: - message.threshold = reader.bytes(); - break; - case 3: - message.vetoThreshold = reader.bytes(); + message.groupId = reader.uint64(); break; default: reader.skipType(tag & 7); @@ -73541,94 +68204,403 @@ exports.TallyParams = { return message; }, fromJSON(object) { - return { - quorum: (0, helpers_1.isSet)(object.quorum) ? (0, helpers_1.bytesFromBase64)(object.quorum) : new Uint8Array(), - threshold: (0, helpers_1.isSet)(object.threshold) ? (0, helpers_1.bytesFromBase64)(object.threshold) : new Uint8Array(), - vetoThreshold: (0, helpers_1.isSet)(object.vetoThreshold) ? (0, helpers_1.bytesFromBase64)(object.vetoThreshold) : new Uint8Array(), - }; + const obj = createBaseMsgLeaveGroup(); + if ((0, helpers_1.isSet)(object.address)) + obj.address = String(object.address); + if ((0, helpers_1.isSet)(object.groupId)) + obj.groupId = BigInt(object.groupId.toString()); + return obj; }, toJSON(message) { const obj = {}; - message.quorum !== undefined && - (obj.quorum = (0, helpers_1.base64FromBytes)(message.quorum !== undefined ? message.quorum : new Uint8Array())); - message.threshold !== undefined && - (obj.threshold = (0, helpers_1.base64FromBytes)(message.threshold !== undefined ? message.threshold : new Uint8Array())); - message.vetoThreshold !== undefined && - (obj.vetoThreshold = (0, helpers_1.base64FromBytes)(message.vetoThreshold !== undefined ? message.vetoThreshold : new Uint8Array())); + message.address !== undefined && (obj.address = message.address); + message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString()); return obj; }, fromPartial(object) { - const message = createBaseTallyParams(); - message.quorum = object.quorum ?? new Uint8Array(); - message.threshold = object.threshold ?? new Uint8Array(); - message.vetoThreshold = object.vetoThreshold ?? new Uint8Array(); + const message = createBaseMsgLeaveGroup(); + message.address = object.address ?? ""; + if (object.groupId !== undefined && object.groupId !== null) { + message.groupId = BigInt(object.groupId.toString()); + } return message; }, }; -//# sourceMappingURL=gov.js.map +function createBaseMsgLeaveGroupResponse() { + return {}; +} +exports.MsgLeaveGroupResponse = { + typeUrl: "/cosmos.group.v1.MsgLeaveGroupResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgLeaveGroupResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_) { + const obj = createBaseMsgLeaveGroupResponse(); + return obj; + }, + toJSON(_) { + const obj = {}; + return obj; + }, + fromPartial(_) { + const message = createBaseMsgLeaveGroupResponse(); + return message; + }, +}; +class MsgClientImpl { + constructor(rpc) { + this.rpc = rpc; + this.CreateGroup = this.CreateGroup.bind(this); + this.UpdateGroupMembers = this.UpdateGroupMembers.bind(this); + this.UpdateGroupAdmin = this.UpdateGroupAdmin.bind(this); + this.UpdateGroupMetadata = this.UpdateGroupMetadata.bind(this); + this.CreateGroupPolicy = this.CreateGroupPolicy.bind(this); + this.CreateGroupWithPolicy = this.CreateGroupWithPolicy.bind(this); + this.UpdateGroupPolicyAdmin = this.UpdateGroupPolicyAdmin.bind(this); + this.UpdateGroupPolicyDecisionPolicy = this.UpdateGroupPolicyDecisionPolicy.bind(this); + this.UpdateGroupPolicyMetadata = this.UpdateGroupPolicyMetadata.bind(this); + this.SubmitProposal = this.SubmitProposal.bind(this); + this.WithdrawProposal = this.WithdrawProposal.bind(this); + this.Vote = this.Vote.bind(this); + this.Exec = this.Exec.bind(this); + this.LeaveGroup = this.LeaveGroup.bind(this); + } + CreateGroup(request) { + const data = exports.MsgCreateGroup.encode(request).finish(); + const promise = this.rpc.request("cosmos.group.v1.Msg", "CreateGroup", data); + return promise.then((data) => exports.MsgCreateGroupResponse.decode(new binary_1.BinaryReader(data))); + } + UpdateGroupMembers(request) { + const data = exports.MsgUpdateGroupMembers.encode(request).finish(); + const promise = this.rpc.request("cosmos.group.v1.Msg", "UpdateGroupMembers", data); + return promise.then((data) => exports.MsgUpdateGroupMembersResponse.decode(new binary_1.BinaryReader(data))); + } + UpdateGroupAdmin(request) { + const data = exports.MsgUpdateGroupAdmin.encode(request).finish(); + const promise = this.rpc.request("cosmos.group.v1.Msg", "UpdateGroupAdmin", data); + return promise.then((data) => exports.MsgUpdateGroupAdminResponse.decode(new binary_1.BinaryReader(data))); + } + UpdateGroupMetadata(request) { + const data = exports.MsgUpdateGroupMetadata.encode(request).finish(); + const promise = this.rpc.request("cosmos.group.v1.Msg", "UpdateGroupMetadata", data); + return promise.then((data) => exports.MsgUpdateGroupMetadataResponse.decode(new binary_1.BinaryReader(data))); + } + CreateGroupPolicy(request) { + const data = exports.MsgCreateGroupPolicy.encode(request).finish(); + const promise = this.rpc.request("cosmos.group.v1.Msg", "CreateGroupPolicy", data); + return promise.then((data) => exports.MsgCreateGroupPolicyResponse.decode(new binary_1.BinaryReader(data))); + } + CreateGroupWithPolicy(request) { + const data = exports.MsgCreateGroupWithPolicy.encode(request).finish(); + const promise = this.rpc.request("cosmos.group.v1.Msg", "CreateGroupWithPolicy", data); + return promise.then((data) => exports.MsgCreateGroupWithPolicyResponse.decode(new binary_1.BinaryReader(data))); + } + UpdateGroupPolicyAdmin(request) { + const data = exports.MsgUpdateGroupPolicyAdmin.encode(request).finish(); + const promise = this.rpc.request("cosmos.group.v1.Msg", "UpdateGroupPolicyAdmin", data); + return promise.then((data) => exports.MsgUpdateGroupPolicyAdminResponse.decode(new binary_1.BinaryReader(data))); + } + UpdateGroupPolicyDecisionPolicy(request) { + const data = exports.MsgUpdateGroupPolicyDecisionPolicy.encode(request).finish(); + const promise = this.rpc.request("cosmos.group.v1.Msg", "UpdateGroupPolicyDecisionPolicy", data); + return promise.then((data) => exports.MsgUpdateGroupPolicyDecisionPolicyResponse.decode(new binary_1.BinaryReader(data))); + } + UpdateGroupPolicyMetadata(request) { + const data = exports.MsgUpdateGroupPolicyMetadata.encode(request).finish(); + const promise = this.rpc.request("cosmos.group.v1.Msg", "UpdateGroupPolicyMetadata", data); + return promise.then((data) => exports.MsgUpdateGroupPolicyMetadataResponse.decode(new binary_1.BinaryReader(data))); + } + SubmitProposal(request) { + const data = exports.MsgSubmitProposal.encode(request).finish(); + const promise = this.rpc.request("cosmos.group.v1.Msg", "SubmitProposal", data); + return promise.then((data) => exports.MsgSubmitProposalResponse.decode(new binary_1.BinaryReader(data))); + } + WithdrawProposal(request) { + const data = exports.MsgWithdrawProposal.encode(request).finish(); + const promise = this.rpc.request("cosmos.group.v1.Msg", "WithdrawProposal", data); + return promise.then((data) => exports.MsgWithdrawProposalResponse.decode(new binary_1.BinaryReader(data))); + } + Vote(request) { + const data = exports.MsgVote.encode(request).finish(); + const promise = this.rpc.request("cosmos.group.v1.Msg", "Vote", data); + return promise.then((data) => exports.MsgVoteResponse.decode(new binary_1.BinaryReader(data))); + } + Exec(request) { + const data = exports.MsgExec.encode(request).finish(); + const promise = this.rpc.request("cosmos.group.v1.Msg", "Exec", data); + return promise.then((data) => exports.MsgExecResponse.decode(new binary_1.BinaryReader(data))); + } + LeaveGroup(request) { + const data = exports.MsgLeaveGroup.encode(request).finish(); + const promise = this.rpc.request("cosmos.group.v1.Msg", "LeaveGroup", data); + return promise.then((data) => exports.MsgLeaveGroupResponse.decode(new binary_1.BinaryReader(data))); + } +} +exports.MsgClientImpl = MsgClientImpl; +//# sourceMappingURL=tx.js.map /***/ }), -/***/ "./node_modules/cosmjs-types/cosmos/gov/v1beta1/query.js": -/*!***************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/gov/v1beta1/query.js ***! - \***************************************************************/ +/***/ "./node_modules/cosmjs-types/cosmos/group/v1/types.js": +/*!************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/group/v1/types.js ***! + \************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.QueryClientImpl = exports.QueryTallyResultResponse = exports.QueryTallyResultRequest = exports.QueryDepositsResponse = exports.QueryDepositsRequest = exports.QueryDepositResponse = exports.QueryDepositRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryVotesResponse = exports.QueryVotesRequest = exports.QueryVoteResponse = exports.QueryVoteRequest = exports.QueryProposalsResponse = exports.QueryProposalsRequest = exports.QueryProposalResponse = exports.QueryProposalRequest = exports.protobufPackage = void 0; +exports.Vote = exports.TallyResult = exports.Proposal = exports.GroupPolicyInfo = exports.GroupMember = exports.GroupInfo = exports.DecisionPolicyWindows = exports.PercentageDecisionPolicy = exports.ThresholdDecisionPolicy = exports.MemberRequest = exports.Member = exports.proposalExecutorResultToJSON = exports.proposalExecutorResultFromJSON = exports.ProposalExecutorResult = exports.proposalStatusToJSON = exports.proposalStatusFromJSON = exports.ProposalStatus = exports.voteOptionToJSON = exports.voteOptionFromJSON = exports.VoteOption = exports.protobufPackage = void 0; /* eslint-disable */ -const gov_1 = __webpack_require__(/*! ./gov */ "./node_modules/cosmjs-types/cosmos/gov/v1beta1/gov.js"); -const pagination_1 = __webpack_require__(/*! ../../base/query/v1beta1/pagination */ "./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js"); +const timestamp_1 = __webpack_require__(/*! ../../../google/protobuf/timestamp */ "./node_modules/cosmjs-types/google/protobuf/timestamp.js"); +const duration_1 = __webpack_require__(/*! ../../../google/protobuf/duration */ "./node_modules/cosmjs-types/google/protobuf/duration.js"); +const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -exports.protobufPackage = "cosmos.gov.v1beta1"; -function createBaseQueryProposalRequest() { +exports.protobufPackage = "cosmos.group.v1"; +/** VoteOption enumerates the valid vote options for a given proposal. */ +var VoteOption; +(function (VoteOption) { + /** + * VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines an unspecified vote option which will + * return an error. + */ + VoteOption[VoteOption["VOTE_OPTION_UNSPECIFIED"] = 0] = "VOTE_OPTION_UNSPECIFIED"; + /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */ + VoteOption[VoteOption["VOTE_OPTION_YES"] = 1] = "VOTE_OPTION_YES"; + /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */ + VoteOption[VoteOption["VOTE_OPTION_ABSTAIN"] = 2] = "VOTE_OPTION_ABSTAIN"; + /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */ + VoteOption[VoteOption["VOTE_OPTION_NO"] = 3] = "VOTE_OPTION_NO"; + /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */ + VoteOption[VoteOption["VOTE_OPTION_NO_WITH_VETO"] = 4] = "VOTE_OPTION_NO_WITH_VETO"; + VoteOption[VoteOption["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(VoteOption || (exports.VoteOption = VoteOption = {})); +function voteOptionFromJSON(object) { + switch (object) { + case 0: + case "VOTE_OPTION_UNSPECIFIED": + return VoteOption.VOTE_OPTION_UNSPECIFIED; + case 1: + case "VOTE_OPTION_YES": + return VoteOption.VOTE_OPTION_YES; + case 2: + case "VOTE_OPTION_ABSTAIN": + return VoteOption.VOTE_OPTION_ABSTAIN; + case 3: + case "VOTE_OPTION_NO": + return VoteOption.VOTE_OPTION_NO; + case 4: + case "VOTE_OPTION_NO_WITH_VETO": + return VoteOption.VOTE_OPTION_NO_WITH_VETO; + case -1: + case "UNRECOGNIZED": + default: + return VoteOption.UNRECOGNIZED; + } +} +exports.voteOptionFromJSON = voteOptionFromJSON; +function voteOptionToJSON(object) { + switch (object) { + case VoteOption.VOTE_OPTION_UNSPECIFIED: + return "VOTE_OPTION_UNSPECIFIED"; + case VoteOption.VOTE_OPTION_YES: + return "VOTE_OPTION_YES"; + case VoteOption.VOTE_OPTION_ABSTAIN: + return "VOTE_OPTION_ABSTAIN"; + case VoteOption.VOTE_OPTION_NO: + return "VOTE_OPTION_NO"; + case VoteOption.VOTE_OPTION_NO_WITH_VETO: + return "VOTE_OPTION_NO_WITH_VETO"; + case VoteOption.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} +exports.voteOptionToJSON = voteOptionToJSON; +/** ProposalStatus defines proposal statuses. */ +var ProposalStatus; +(function (ProposalStatus) { + /** PROPOSAL_STATUS_UNSPECIFIED - An empty value is invalid and not allowed. */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_UNSPECIFIED"] = 0] = "PROPOSAL_STATUS_UNSPECIFIED"; + /** PROPOSAL_STATUS_SUBMITTED - Initial status of a proposal when submitted. */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_SUBMITTED"] = 1] = "PROPOSAL_STATUS_SUBMITTED"; + /** + * PROPOSAL_STATUS_ACCEPTED - Final status of a proposal when the final tally is done and the outcome + * passes the group policy's decision policy. + */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_ACCEPTED"] = 2] = "PROPOSAL_STATUS_ACCEPTED"; + /** + * PROPOSAL_STATUS_REJECTED - Final status of a proposal when the final tally is done and the outcome + * is rejected by the group policy's decision policy. + */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_REJECTED"] = 3] = "PROPOSAL_STATUS_REJECTED"; + /** + * PROPOSAL_STATUS_ABORTED - Final status of a proposal when the group policy is modified before the + * final tally. + */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_ABORTED"] = 4] = "PROPOSAL_STATUS_ABORTED"; + /** + * PROPOSAL_STATUS_WITHDRAWN - A proposal can be withdrawn before the voting start time by the owner. + * When this happens the final status is Withdrawn. + */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_WITHDRAWN"] = 5] = "PROPOSAL_STATUS_WITHDRAWN"; + ProposalStatus[ProposalStatus["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(ProposalStatus || (exports.ProposalStatus = ProposalStatus = {})); +function proposalStatusFromJSON(object) { + switch (object) { + case 0: + case "PROPOSAL_STATUS_UNSPECIFIED": + return ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED; + case 1: + case "PROPOSAL_STATUS_SUBMITTED": + return ProposalStatus.PROPOSAL_STATUS_SUBMITTED; + case 2: + case "PROPOSAL_STATUS_ACCEPTED": + return ProposalStatus.PROPOSAL_STATUS_ACCEPTED; + case 3: + case "PROPOSAL_STATUS_REJECTED": + return ProposalStatus.PROPOSAL_STATUS_REJECTED; + case 4: + case "PROPOSAL_STATUS_ABORTED": + return ProposalStatus.PROPOSAL_STATUS_ABORTED; + case 5: + case "PROPOSAL_STATUS_WITHDRAWN": + return ProposalStatus.PROPOSAL_STATUS_WITHDRAWN; + case -1: + case "UNRECOGNIZED": + default: + return ProposalStatus.UNRECOGNIZED; + } +} +exports.proposalStatusFromJSON = proposalStatusFromJSON; +function proposalStatusToJSON(object) { + switch (object) { + case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED: + return "PROPOSAL_STATUS_UNSPECIFIED"; + case ProposalStatus.PROPOSAL_STATUS_SUBMITTED: + return "PROPOSAL_STATUS_SUBMITTED"; + case ProposalStatus.PROPOSAL_STATUS_ACCEPTED: + return "PROPOSAL_STATUS_ACCEPTED"; + case ProposalStatus.PROPOSAL_STATUS_REJECTED: + return "PROPOSAL_STATUS_REJECTED"; + case ProposalStatus.PROPOSAL_STATUS_ABORTED: + return "PROPOSAL_STATUS_ABORTED"; + case ProposalStatus.PROPOSAL_STATUS_WITHDRAWN: + return "PROPOSAL_STATUS_WITHDRAWN"; + case ProposalStatus.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} +exports.proposalStatusToJSON = proposalStatusToJSON; +/** ProposalExecutorResult defines types of proposal executor results. */ +var ProposalExecutorResult; +(function (ProposalExecutorResult) { + /** PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED - An empty value is not allowed. */ + ProposalExecutorResult[ProposalExecutorResult["PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED"] = 0] = "PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED"; + /** PROPOSAL_EXECUTOR_RESULT_NOT_RUN - We have not yet run the executor. */ + ProposalExecutorResult[ProposalExecutorResult["PROPOSAL_EXECUTOR_RESULT_NOT_RUN"] = 1] = "PROPOSAL_EXECUTOR_RESULT_NOT_RUN"; + /** PROPOSAL_EXECUTOR_RESULT_SUCCESS - The executor was successful and proposed action updated state. */ + ProposalExecutorResult[ProposalExecutorResult["PROPOSAL_EXECUTOR_RESULT_SUCCESS"] = 2] = "PROPOSAL_EXECUTOR_RESULT_SUCCESS"; + /** PROPOSAL_EXECUTOR_RESULT_FAILURE - The executor returned an error and proposed action didn't update state. */ + ProposalExecutorResult[ProposalExecutorResult["PROPOSAL_EXECUTOR_RESULT_FAILURE"] = 3] = "PROPOSAL_EXECUTOR_RESULT_FAILURE"; + ProposalExecutorResult[ProposalExecutorResult["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(ProposalExecutorResult || (exports.ProposalExecutorResult = ProposalExecutorResult = {})); +function proposalExecutorResultFromJSON(object) { + switch (object) { + case 0: + case "PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED": + return ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED; + case 1: + case "PROPOSAL_EXECUTOR_RESULT_NOT_RUN": + return ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_NOT_RUN; + case 2: + case "PROPOSAL_EXECUTOR_RESULT_SUCCESS": + return ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_SUCCESS; + case 3: + case "PROPOSAL_EXECUTOR_RESULT_FAILURE": + return ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_FAILURE; + case -1: + case "UNRECOGNIZED": + default: + return ProposalExecutorResult.UNRECOGNIZED; + } +} +exports.proposalExecutorResultFromJSON = proposalExecutorResultFromJSON; +function proposalExecutorResultToJSON(object) { + switch (object) { + case ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED: + return "PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED"; + case ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_NOT_RUN: + return "PROPOSAL_EXECUTOR_RESULT_NOT_RUN"; + case ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_SUCCESS: + return "PROPOSAL_EXECUTOR_RESULT_SUCCESS"; + case ProposalExecutorResult.PROPOSAL_EXECUTOR_RESULT_FAILURE: + return "PROPOSAL_EXECUTOR_RESULT_FAILURE"; + case ProposalExecutorResult.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} +exports.proposalExecutorResultToJSON = proposalExecutorResultToJSON; +function createBaseMember() { return { - proposalId: helpers_1.Long.UZERO, + address: "", + weight: "", + metadata: "", + addedAt: timestamp_1.Timestamp.fromPartial({}), }; } -exports.QueryProposalRequest = { - encode(message, writer = _m0.Writer.create()) { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); +exports.Member = { + typeUrl: "/cosmos.group.v1.Member", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.address !== "") { + writer.uint32(10).string(message.address); + } + if (message.weight !== "") { + writer.uint32(18).string(message.weight); + } + if (message.metadata !== "") { + writer.uint32(26).string(message.metadata); + } + if (message.addedAt !== undefined) { + timestamp_1.Timestamp.encode(message.addedAt, writer.uint32(34).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryProposalRequest(); + const message = createBaseMember(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.proposalId = reader.uint64(); + message.address = reader.string(); + break; + case 2: + message.weight = reader.string(); + break; + case 3: + message.metadata = reader.string(); + break; + case 4: + message.addedAt = timestamp_1.Timestamp.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -73638,45 +68610,72 @@ exports.QueryProposalRequest = { return message; }, fromJSON(object) { - return { - proposalId: (0, helpers_1.isSet)(object.proposalId) ? helpers_1.Long.fromValue(object.proposalId) : helpers_1.Long.UZERO, - }; + const obj = createBaseMember(); + if ((0, helpers_1.isSet)(object.address)) + obj.address = String(object.address); + if ((0, helpers_1.isSet)(object.weight)) + obj.weight = String(object.weight); + if ((0, helpers_1.isSet)(object.metadata)) + obj.metadata = String(object.metadata); + if ((0, helpers_1.isSet)(object.addedAt)) + obj.addedAt = (0, helpers_1.fromJsonTimestamp)(object.addedAt); + return obj; }, toJSON(message) { const obj = {}; - message.proposalId !== undefined && (obj.proposalId = (message.proposalId || helpers_1.Long.UZERO).toString()); + message.address !== undefined && (obj.address = message.address); + message.weight !== undefined && (obj.weight = message.weight); + message.metadata !== undefined && (obj.metadata = message.metadata); + message.addedAt !== undefined && (obj.addedAt = (0, helpers_1.fromTimestamp)(message.addedAt).toISOString()); return obj; }, fromPartial(object) { - const message = createBaseQueryProposalRequest(); - message.proposalId = - object.proposalId !== undefined && object.proposalId !== null - ? helpers_1.Long.fromValue(object.proposalId) - : helpers_1.Long.UZERO; + const message = createBaseMember(); + message.address = object.address ?? ""; + message.weight = object.weight ?? ""; + message.metadata = object.metadata ?? ""; + if (object.addedAt !== undefined && object.addedAt !== null) { + message.addedAt = timestamp_1.Timestamp.fromPartial(object.addedAt); + } return message; }, }; -function createBaseQueryProposalResponse() { +function createBaseMemberRequest() { return { - proposal: undefined, + address: "", + weight: "", + metadata: "", }; } -exports.QueryProposalResponse = { - encode(message, writer = _m0.Writer.create()) { - if (message.proposal !== undefined) { - gov_1.Proposal.encode(message.proposal, writer.uint32(10).fork()).ldelim(); +exports.MemberRequest = { + typeUrl: "/cosmos.group.v1.MemberRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.address !== "") { + writer.uint32(10).string(message.address); + } + if (message.weight !== "") { + writer.uint32(18).string(message.weight); + } + if (message.metadata !== "") { + writer.uint32(26).string(message.metadata); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryProposalResponse(); + const message = createBaseMemberRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.proposal = gov_1.Proposal.decode(reader, reader.uint32()); + message.address = reader.string(); + break; + case 2: + message.weight = reader.string(); + break; + case 3: + message.metadata = reader.string(); break; default: reader.skipType(tag & 7); @@ -73686,67 +68685,59 @@ exports.QueryProposalResponse = { return message; }, fromJSON(object) { - return { - proposal: (0, helpers_1.isSet)(object.proposal) ? gov_1.Proposal.fromJSON(object.proposal) : undefined, - }; + const obj = createBaseMemberRequest(); + if ((0, helpers_1.isSet)(object.address)) + obj.address = String(object.address); + if ((0, helpers_1.isSet)(object.weight)) + obj.weight = String(object.weight); + if ((0, helpers_1.isSet)(object.metadata)) + obj.metadata = String(object.metadata); + return obj; }, toJSON(message) { const obj = {}; - message.proposal !== undefined && - (obj.proposal = message.proposal ? gov_1.Proposal.toJSON(message.proposal) : undefined); + message.address !== undefined && (obj.address = message.address); + message.weight !== undefined && (obj.weight = message.weight); + message.metadata !== undefined && (obj.metadata = message.metadata); return obj; }, fromPartial(object) { - const message = createBaseQueryProposalResponse(); - message.proposal = - object.proposal !== undefined && object.proposal !== null - ? gov_1.Proposal.fromPartial(object.proposal) - : undefined; + const message = createBaseMemberRequest(); + message.address = object.address ?? ""; + message.weight = object.weight ?? ""; + message.metadata = object.metadata ?? ""; return message; }, }; -function createBaseQueryProposalsRequest() { +function createBaseThresholdDecisionPolicy() { return { - proposalStatus: 0, - voter: "", - depositor: "", - pagination: undefined, + threshold: "", + windows: undefined, }; } -exports.QueryProposalsRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.proposalStatus !== 0) { - writer.uint32(8).int32(message.proposalStatus); - } - if (message.voter !== "") { - writer.uint32(18).string(message.voter); - } - if (message.depositor !== "") { - writer.uint32(26).string(message.depositor); +exports.ThresholdDecisionPolicy = { + typeUrl: "/cosmos.group.v1.ThresholdDecisionPolicy", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.threshold !== "") { + writer.uint32(10).string(message.threshold); } - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim(); + if (message.windows !== undefined) { + exports.DecisionPolicyWindows.encode(message.windows, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryProposalsRequest(); + const message = createBaseThresholdDecisionPolicy(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.proposalStatus = reader.int32(); + message.threshold = reader.string(); break; case 2: - message.voter = reader.string(); - break; - case 3: - message.depositor = reader.string(); - break; - case 4: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.windows = exports.DecisionPolicyWindows.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -73756,63 +68747,58 @@ exports.QueryProposalsRequest = { return message; }, fromJSON(object) { - return { - proposalStatus: (0, helpers_1.isSet)(object.proposalStatus) ? (0, gov_1.proposalStatusFromJSON)(object.proposalStatus) : 0, - voter: (0, helpers_1.isSet)(object.voter) ? String(object.voter) : "", - depositor: (0, helpers_1.isSet)(object.depositor) ? String(object.depositor) : "", - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseThresholdDecisionPolicy(); + if ((0, helpers_1.isSet)(object.threshold)) + obj.threshold = String(object.threshold); + if ((0, helpers_1.isSet)(object.windows)) + obj.windows = exports.DecisionPolicyWindows.fromJSON(object.windows); + return obj; }, toJSON(message) { const obj = {}; - message.proposalStatus !== undefined && - (obj.proposalStatus = (0, gov_1.proposalStatusToJSON)(message.proposalStatus)); - message.voter !== undefined && (obj.voter = message.voter); - message.depositor !== undefined && (obj.depositor = message.depositor); - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + message.threshold !== undefined && (obj.threshold = message.threshold); + message.windows !== undefined && + (obj.windows = message.windows ? exports.DecisionPolicyWindows.toJSON(message.windows) : undefined); return obj; }, fromPartial(object) { - const message = createBaseQueryProposalsRequest(); - message.proposalStatus = object.proposalStatus ?? 0; - message.voter = object.voter ?? ""; - message.depositor = object.depositor ?? ""; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + const message = createBaseThresholdDecisionPolicy(); + message.threshold = object.threshold ?? ""; + if (object.windows !== undefined && object.windows !== null) { + message.windows = exports.DecisionPolicyWindows.fromPartial(object.windows); + } return message; }, }; -function createBaseQueryProposalsResponse() { +function createBasePercentageDecisionPolicy() { return { - proposals: [], - pagination: undefined, + percentage: "", + windows: undefined, }; } -exports.QueryProposalsResponse = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.proposals) { - gov_1.Proposal.encode(v, writer.uint32(10).fork()).ldelim(); +exports.PercentageDecisionPolicy = { + typeUrl: "/cosmos.group.v1.PercentageDecisionPolicy", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.percentage !== "") { + writer.uint32(10).string(message.percentage); } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (message.windows !== undefined) { + exports.DecisionPolicyWindows.encode(message.windows, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryProposalsResponse(); + const message = createBasePercentageDecisionPolicy(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.proposals.push(gov_1.Proposal.decode(reader, reader.uint32())); + message.percentage = reader.string(); break; case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + message.windows = exports.DecisionPolicyWindows.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -73822,63 +68808,152 @@ exports.QueryProposalsResponse = { return message; }, fromJSON(object) { - return { - proposals: Array.isArray(object?.proposals) - ? object.proposals.map((e) => gov_1.Proposal.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBasePercentageDecisionPolicy(); + if ((0, helpers_1.isSet)(object.percentage)) + obj.percentage = String(object.percentage); + if ((0, helpers_1.isSet)(object.windows)) + obj.windows = exports.DecisionPolicyWindows.fromJSON(object.windows); + return obj; }, toJSON(message) { const obj = {}; - if (message.proposals) { - obj.proposals = message.proposals.map((e) => (e ? gov_1.Proposal.toJSON(e) : undefined)); + message.percentage !== undefined && (obj.percentage = message.percentage); + message.windows !== undefined && + (obj.windows = message.windows ? exports.DecisionPolicyWindows.toJSON(message.windows) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBasePercentageDecisionPolicy(); + message.percentage = object.percentage ?? ""; + if (object.windows !== undefined && object.windows !== null) { + message.windows = exports.DecisionPolicyWindows.fromPartial(object.windows); } - else { - obj.proposals = []; + return message; + }, +}; +function createBaseDecisionPolicyWindows() { + return { + votingPeriod: duration_1.Duration.fromPartial({}), + minExecutionPeriod: duration_1.Duration.fromPartial({}), + }; +} +exports.DecisionPolicyWindows = { + typeUrl: "/cosmos.group.v1.DecisionPolicyWindows", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.votingPeriod !== undefined) { + duration_1.Duration.encode(message.votingPeriod, writer.uint32(10).fork()).ldelim(); } - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); + if (message.minExecutionPeriod !== undefined) { + duration_1.Duration.encode(message.minExecutionPeriod, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDecisionPolicyWindows(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.votingPeriod = duration_1.Duration.decode(reader, reader.uint32()); + break; + case 2: + message.minExecutionPeriod = duration_1.Duration.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseDecisionPolicyWindows(); + if ((0, helpers_1.isSet)(object.votingPeriod)) + obj.votingPeriod = duration_1.Duration.fromJSON(object.votingPeriod); + if ((0, helpers_1.isSet)(object.minExecutionPeriod)) + obj.minExecutionPeriod = duration_1.Duration.fromJSON(object.minExecutionPeriod); + return obj; + }, + toJSON(message) { + const obj = {}; + message.votingPeriod !== undefined && + (obj.votingPeriod = message.votingPeriod ? duration_1.Duration.toJSON(message.votingPeriod) : undefined); + message.minExecutionPeriod !== undefined && + (obj.minExecutionPeriod = message.minExecutionPeriod + ? duration_1.Duration.toJSON(message.minExecutionPeriod) + : undefined); return obj; }, fromPartial(object) { - const message = createBaseQueryProposalsResponse(); - message.proposals = object.proposals?.map((e) => gov_1.Proposal.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + const message = createBaseDecisionPolicyWindows(); + if (object.votingPeriod !== undefined && object.votingPeriod !== null) { + message.votingPeriod = duration_1.Duration.fromPartial(object.votingPeriod); + } + if (object.minExecutionPeriod !== undefined && object.minExecutionPeriod !== null) { + message.minExecutionPeriod = duration_1.Duration.fromPartial(object.minExecutionPeriod); + } return message; }, }; -function createBaseQueryVoteRequest() { +function createBaseGroupInfo() { return { - proposalId: helpers_1.Long.UZERO, - voter: "", + id: BigInt(0), + admin: "", + metadata: "", + version: BigInt(0), + totalWeight: "", + createdAt: timestamp_1.Timestamp.fromPartial({}), }; } -exports.QueryVoteRequest = { - encode(message, writer = _m0.Writer.create()) { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); +exports.GroupInfo = { + typeUrl: "/cosmos.group.v1.GroupInfo", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.id !== BigInt(0)) { + writer.uint32(8).uint64(message.id); } - if (message.voter !== "") { - writer.uint32(18).string(message.voter); + if (message.admin !== "") { + writer.uint32(18).string(message.admin); + } + if (message.metadata !== "") { + writer.uint32(26).string(message.metadata); + } + if (message.version !== BigInt(0)) { + writer.uint32(32).uint64(message.version); + } + if (message.totalWeight !== "") { + writer.uint32(42).string(message.totalWeight); + } + if (message.createdAt !== undefined) { + timestamp_1.Timestamp.encode(message.createdAt, writer.uint32(50).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryVoteRequest(); + const message = createBaseGroupInfo(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.proposalId = reader.uint64(); + message.id = reader.uint64(); break; case 2: - message.voter = reader.string(); + message.admin = reader.string(); + break; + case 3: + message.metadata = reader.string(); + break; + case 4: + message.version = reader.uint64(); + break; + case 5: + message.totalWeight = reader.string(); + break; + case 6: + message.createdAt = timestamp_1.Timestamp.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -73888,48 +68963,77 @@ exports.QueryVoteRequest = { return message; }, fromJSON(object) { - return { - proposalId: (0, helpers_1.isSet)(object.proposalId) ? helpers_1.Long.fromValue(object.proposalId) : helpers_1.Long.UZERO, - voter: (0, helpers_1.isSet)(object.voter) ? String(object.voter) : "", - }; + const obj = createBaseGroupInfo(); + if ((0, helpers_1.isSet)(object.id)) + obj.id = BigInt(object.id.toString()); + if ((0, helpers_1.isSet)(object.admin)) + obj.admin = String(object.admin); + if ((0, helpers_1.isSet)(object.metadata)) + obj.metadata = String(object.metadata); + if ((0, helpers_1.isSet)(object.version)) + obj.version = BigInt(object.version.toString()); + if ((0, helpers_1.isSet)(object.totalWeight)) + obj.totalWeight = String(object.totalWeight); + if ((0, helpers_1.isSet)(object.createdAt)) + obj.createdAt = (0, helpers_1.fromJsonTimestamp)(object.createdAt); + return obj; }, toJSON(message) { const obj = {}; - message.proposalId !== undefined && (obj.proposalId = (message.proposalId || helpers_1.Long.UZERO).toString()); - message.voter !== undefined && (obj.voter = message.voter); + message.id !== undefined && (obj.id = (message.id || BigInt(0)).toString()); + message.admin !== undefined && (obj.admin = message.admin); + message.metadata !== undefined && (obj.metadata = message.metadata); + message.version !== undefined && (obj.version = (message.version || BigInt(0)).toString()); + message.totalWeight !== undefined && (obj.totalWeight = message.totalWeight); + message.createdAt !== undefined && (obj.createdAt = (0, helpers_1.fromTimestamp)(message.createdAt).toISOString()); return obj; }, fromPartial(object) { - const message = createBaseQueryVoteRequest(); - message.proposalId = - object.proposalId !== undefined && object.proposalId !== null - ? helpers_1.Long.fromValue(object.proposalId) - : helpers_1.Long.UZERO; - message.voter = object.voter ?? ""; + const message = createBaseGroupInfo(); + if (object.id !== undefined && object.id !== null) { + message.id = BigInt(object.id.toString()); + } + message.admin = object.admin ?? ""; + message.metadata = object.metadata ?? ""; + if (object.version !== undefined && object.version !== null) { + message.version = BigInt(object.version.toString()); + } + message.totalWeight = object.totalWeight ?? ""; + if (object.createdAt !== undefined && object.createdAt !== null) { + message.createdAt = timestamp_1.Timestamp.fromPartial(object.createdAt); + } return message; }, }; -function createBaseQueryVoteResponse() { +function createBaseGroupMember() { return { - vote: undefined, + groupId: BigInt(0), + member: undefined, }; } -exports.QueryVoteResponse = { - encode(message, writer = _m0.Writer.create()) { - if (message.vote !== undefined) { - gov_1.Vote.encode(message.vote, writer.uint32(10).fork()).ldelim(); +exports.GroupMember = { + typeUrl: "/cosmos.group.v1.GroupMember", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.groupId !== BigInt(0)) { + writer.uint32(8).uint64(message.groupId); + } + if (message.member !== undefined) { + exports.Member.encode(message.member, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryVoteResponse(); + const message = createBaseGroupMember(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.vote = gov_1.Vote.decode(reader, reader.uint32()); + message.groupId = reader.uint64(); + break; + case 2: + message.member = exports.Member.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -73939,50 +69043,94 @@ exports.QueryVoteResponse = { return message; }, fromJSON(object) { - return { - vote: (0, helpers_1.isSet)(object.vote) ? gov_1.Vote.fromJSON(object.vote) : undefined, - }; + const obj = createBaseGroupMember(); + if ((0, helpers_1.isSet)(object.groupId)) + obj.groupId = BigInt(object.groupId.toString()); + if ((0, helpers_1.isSet)(object.member)) + obj.member = exports.Member.fromJSON(object.member); + return obj; }, toJSON(message) { const obj = {}; - message.vote !== undefined && (obj.vote = message.vote ? gov_1.Vote.toJSON(message.vote) : undefined); + message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString()); + message.member !== undefined && (obj.member = message.member ? exports.Member.toJSON(message.member) : undefined); return obj; }, fromPartial(object) { - const message = createBaseQueryVoteResponse(); - message.vote = - object.vote !== undefined && object.vote !== null ? gov_1.Vote.fromPartial(object.vote) : undefined; + const message = createBaseGroupMember(); + if (object.groupId !== undefined && object.groupId !== null) { + message.groupId = BigInt(object.groupId.toString()); + } + if (object.member !== undefined && object.member !== null) { + message.member = exports.Member.fromPartial(object.member); + } return message; }, }; -function createBaseQueryVotesRequest() { +function createBaseGroupPolicyInfo() { return { - proposalId: helpers_1.Long.UZERO, - pagination: undefined, + address: "", + groupId: BigInt(0), + admin: "", + metadata: "", + version: BigInt(0), + decisionPolicy: undefined, + createdAt: timestamp_1.Timestamp.fromPartial({}), }; } -exports.QueryVotesRequest = { - encode(message, writer = _m0.Writer.create()) { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); +exports.GroupPolicyInfo = { + typeUrl: "/cosmos.group.v1.GroupPolicyInfo", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.address !== "") { + writer.uint32(10).string(message.address); } - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (message.groupId !== BigInt(0)) { + writer.uint32(16).uint64(message.groupId); + } + if (message.admin !== "") { + writer.uint32(26).string(message.admin); + } + if (message.metadata !== "") { + writer.uint32(34).string(message.metadata); + } + if (message.version !== BigInt(0)) { + writer.uint32(40).uint64(message.version); + } + if (message.decisionPolicy !== undefined) { + any_1.Any.encode(message.decisionPolicy, writer.uint32(50).fork()).ldelim(); + } + if (message.createdAt !== undefined) { + timestamp_1.Timestamp.encode(message.createdAt, writer.uint32(58).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryVotesRequest(); + const message = createBaseGroupPolicyInfo(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.proposalId = reader.uint64(); + message.address = reader.string(); break; case 2: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.groupId = reader.uint64(); + break; + case 3: + message.admin = reader.string(); + break; + case 4: + message.metadata = reader.string(); + break; + case 5: + message.version = reader.uint64(); + break; + case 6: + message.decisionPolicy = any_1.Any.decode(reader, reader.uint32()); + break; + case 7: + message.createdAt = timestamp_1.Timestamp.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -73992,59 +69140,168 @@ exports.QueryVotesRequest = { return message; }, fromJSON(object) { - return { - proposalId: (0, helpers_1.isSet)(object.proposalId) ? helpers_1.Long.fromValue(object.proposalId) : helpers_1.Long.UZERO, - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseGroupPolicyInfo(); + if ((0, helpers_1.isSet)(object.address)) + obj.address = String(object.address); + if ((0, helpers_1.isSet)(object.groupId)) + obj.groupId = BigInt(object.groupId.toString()); + if ((0, helpers_1.isSet)(object.admin)) + obj.admin = String(object.admin); + if ((0, helpers_1.isSet)(object.metadata)) + obj.metadata = String(object.metadata); + if ((0, helpers_1.isSet)(object.version)) + obj.version = BigInt(object.version.toString()); + if ((0, helpers_1.isSet)(object.decisionPolicy)) + obj.decisionPolicy = any_1.Any.fromJSON(object.decisionPolicy); + if ((0, helpers_1.isSet)(object.createdAt)) + obj.createdAt = (0, helpers_1.fromJsonTimestamp)(object.createdAt); + return obj; }, toJSON(message) { const obj = {}; - message.proposalId !== undefined && (obj.proposalId = (message.proposalId || helpers_1.Long.UZERO).toString()); - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + message.address !== undefined && (obj.address = message.address); + message.groupId !== undefined && (obj.groupId = (message.groupId || BigInt(0)).toString()); + message.admin !== undefined && (obj.admin = message.admin); + message.metadata !== undefined && (obj.metadata = message.metadata); + message.version !== undefined && (obj.version = (message.version || BigInt(0)).toString()); + message.decisionPolicy !== undefined && + (obj.decisionPolicy = message.decisionPolicy ? any_1.Any.toJSON(message.decisionPolicy) : undefined); + message.createdAt !== undefined && (obj.createdAt = (0, helpers_1.fromTimestamp)(message.createdAt).toISOString()); return obj; }, fromPartial(object) { - const message = createBaseQueryVotesRequest(); - message.proposalId = - object.proposalId !== undefined && object.proposalId !== null - ? helpers_1.Long.fromValue(object.proposalId) - : helpers_1.Long.UZERO; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + const message = createBaseGroupPolicyInfo(); + message.address = object.address ?? ""; + if (object.groupId !== undefined && object.groupId !== null) { + message.groupId = BigInt(object.groupId.toString()); + } + message.admin = object.admin ?? ""; + message.metadata = object.metadata ?? ""; + if (object.version !== undefined && object.version !== null) { + message.version = BigInt(object.version.toString()); + } + if (object.decisionPolicy !== undefined && object.decisionPolicy !== null) { + message.decisionPolicy = any_1.Any.fromPartial(object.decisionPolicy); + } + if (object.createdAt !== undefined && object.createdAt !== null) { + message.createdAt = timestamp_1.Timestamp.fromPartial(object.createdAt); + } return message; }, }; -function createBaseQueryVotesResponse() { +function createBaseProposal() { return { - votes: [], - pagination: undefined, + id: BigInt(0), + groupPolicyAddress: "", + metadata: "", + proposers: [], + submitTime: timestamp_1.Timestamp.fromPartial({}), + groupVersion: BigInt(0), + groupPolicyVersion: BigInt(0), + status: 0, + finalTallyResult: exports.TallyResult.fromPartial({}), + votingPeriodEnd: timestamp_1.Timestamp.fromPartial({}), + executorResult: 0, + messages: [], + title: "", + summary: "", }; } -exports.QueryVotesResponse = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.votes) { - gov_1.Vote.encode(v, writer.uint32(10).fork()).ldelim(); +exports.Proposal = { + typeUrl: "/cosmos.group.v1.Proposal", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.id !== BigInt(0)) { + writer.uint32(8).uint64(message.id); } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (message.groupPolicyAddress !== "") { + writer.uint32(18).string(message.groupPolicyAddress); + } + if (message.metadata !== "") { + writer.uint32(26).string(message.metadata); + } + for (const v of message.proposers) { + writer.uint32(34).string(v); + } + if (message.submitTime !== undefined) { + timestamp_1.Timestamp.encode(message.submitTime, writer.uint32(42).fork()).ldelim(); + } + if (message.groupVersion !== BigInt(0)) { + writer.uint32(48).uint64(message.groupVersion); + } + if (message.groupPolicyVersion !== BigInt(0)) { + writer.uint32(56).uint64(message.groupPolicyVersion); + } + if (message.status !== 0) { + writer.uint32(64).int32(message.status); + } + if (message.finalTallyResult !== undefined) { + exports.TallyResult.encode(message.finalTallyResult, writer.uint32(74).fork()).ldelim(); + } + if (message.votingPeriodEnd !== undefined) { + timestamp_1.Timestamp.encode(message.votingPeriodEnd, writer.uint32(82).fork()).ldelim(); + } + if (message.executorResult !== 0) { + writer.uint32(88).int32(message.executorResult); + } + for (const v of message.messages) { + any_1.Any.encode(v, writer.uint32(98).fork()).ldelim(); + } + if (message.title !== "") { + writer.uint32(106).string(message.title); + } + if (message.summary !== "") { + writer.uint32(114).string(message.summary); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryVotesResponse(); + const message = createBaseProposal(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.votes.push(gov_1.Vote.decode(reader, reader.uint32())); + message.id = reader.uint64(); break; case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + message.groupPolicyAddress = reader.string(); + break; + case 3: + message.metadata = reader.string(); + break; + case 4: + message.proposers.push(reader.string()); + break; + case 5: + message.submitTime = timestamp_1.Timestamp.decode(reader, reader.uint32()); + break; + case 6: + message.groupVersion = reader.uint64(); + break; + case 7: + message.groupPolicyVersion = reader.uint64(); + break; + case 8: + message.status = reader.int32(); + break; + case 9: + message.finalTallyResult = exports.TallyResult.decode(reader, reader.uint32()); + break; + case 10: + message.votingPeriodEnd = timestamp_1.Timestamp.decode(reader, reader.uint32()); + break; + case 11: + message.executorResult = reader.int32(); + break; + case 12: + message.messages.push(any_1.Any.decode(reader, reader.uint32())); + break; + case 13: + message.title = reader.string(); + break; + case 14: + message.summary = reader.string(); break; default: reader.skipType(tag & 7); @@ -74054,54 +69311,145 @@ exports.QueryVotesResponse = { return message; }, fromJSON(object) { - return { - votes: Array.isArray(object?.votes) ? object.votes.map((e) => gov_1.Vote.fromJSON(e)) : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseProposal(); + if ((0, helpers_1.isSet)(object.id)) + obj.id = BigInt(object.id.toString()); + if ((0, helpers_1.isSet)(object.groupPolicyAddress)) + obj.groupPolicyAddress = String(object.groupPolicyAddress); + if ((0, helpers_1.isSet)(object.metadata)) + obj.metadata = String(object.metadata); + if (Array.isArray(object?.proposers)) + obj.proposers = object.proposers.map((e) => String(e)); + if ((0, helpers_1.isSet)(object.submitTime)) + obj.submitTime = (0, helpers_1.fromJsonTimestamp)(object.submitTime); + if ((0, helpers_1.isSet)(object.groupVersion)) + obj.groupVersion = BigInt(object.groupVersion.toString()); + if ((0, helpers_1.isSet)(object.groupPolicyVersion)) + obj.groupPolicyVersion = BigInt(object.groupPolicyVersion.toString()); + if ((0, helpers_1.isSet)(object.status)) + obj.status = proposalStatusFromJSON(object.status); + if ((0, helpers_1.isSet)(object.finalTallyResult)) + obj.finalTallyResult = exports.TallyResult.fromJSON(object.finalTallyResult); + if ((0, helpers_1.isSet)(object.votingPeriodEnd)) + obj.votingPeriodEnd = (0, helpers_1.fromJsonTimestamp)(object.votingPeriodEnd); + if ((0, helpers_1.isSet)(object.executorResult)) + obj.executorResult = proposalExecutorResultFromJSON(object.executorResult); + if (Array.isArray(object?.messages)) + obj.messages = object.messages.map((e) => any_1.Any.fromJSON(e)); + if ((0, helpers_1.isSet)(object.title)) + obj.title = String(object.title); + if ((0, helpers_1.isSet)(object.summary)) + obj.summary = String(object.summary); + return obj; }, toJSON(message) { const obj = {}; - if (message.votes) { - obj.votes = message.votes.map((e) => (e ? gov_1.Vote.toJSON(e) : undefined)); + message.id !== undefined && (obj.id = (message.id || BigInt(0)).toString()); + message.groupPolicyAddress !== undefined && (obj.groupPolicyAddress = message.groupPolicyAddress); + message.metadata !== undefined && (obj.metadata = message.metadata); + if (message.proposers) { + obj.proposers = message.proposers.map((e) => e); } else { - obj.votes = []; + obj.proposers = []; } - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); + message.submitTime !== undefined && (obj.submitTime = (0, helpers_1.fromTimestamp)(message.submitTime).toISOString()); + message.groupVersion !== undefined && (obj.groupVersion = (message.groupVersion || BigInt(0)).toString()); + message.groupPolicyVersion !== undefined && + (obj.groupPolicyVersion = (message.groupPolicyVersion || BigInt(0)).toString()); + message.status !== undefined && (obj.status = proposalStatusToJSON(message.status)); + message.finalTallyResult !== undefined && + (obj.finalTallyResult = message.finalTallyResult + ? exports.TallyResult.toJSON(message.finalTallyResult) + : undefined); + message.votingPeriodEnd !== undefined && + (obj.votingPeriodEnd = (0, helpers_1.fromTimestamp)(message.votingPeriodEnd).toISOString()); + message.executorResult !== undefined && + (obj.executorResult = proposalExecutorResultToJSON(message.executorResult)); + if (message.messages) { + obj.messages = message.messages.map((e) => (e ? any_1.Any.toJSON(e) : undefined)); + } + else { + obj.messages = []; + } + message.title !== undefined && (obj.title = message.title); + message.summary !== undefined && (obj.summary = message.summary); return obj; }, fromPartial(object) { - const message = createBaseQueryVotesResponse(); - message.votes = object.votes?.map((e) => gov_1.Vote.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + const message = createBaseProposal(); + if (object.id !== undefined && object.id !== null) { + message.id = BigInt(object.id.toString()); + } + message.groupPolicyAddress = object.groupPolicyAddress ?? ""; + message.metadata = object.metadata ?? ""; + message.proposers = object.proposers?.map((e) => e) || []; + if (object.submitTime !== undefined && object.submitTime !== null) { + message.submitTime = timestamp_1.Timestamp.fromPartial(object.submitTime); + } + if (object.groupVersion !== undefined && object.groupVersion !== null) { + message.groupVersion = BigInt(object.groupVersion.toString()); + } + if (object.groupPolicyVersion !== undefined && object.groupPolicyVersion !== null) { + message.groupPolicyVersion = BigInt(object.groupPolicyVersion.toString()); + } + message.status = object.status ?? 0; + if (object.finalTallyResult !== undefined && object.finalTallyResult !== null) { + message.finalTallyResult = exports.TallyResult.fromPartial(object.finalTallyResult); + } + if (object.votingPeriodEnd !== undefined && object.votingPeriodEnd !== null) { + message.votingPeriodEnd = timestamp_1.Timestamp.fromPartial(object.votingPeriodEnd); + } + message.executorResult = object.executorResult ?? 0; + message.messages = object.messages?.map((e) => any_1.Any.fromPartial(e)) || []; + message.title = object.title ?? ""; + message.summary = object.summary ?? ""; return message; }, }; -function createBaseQueryParamsRequest() { +function createBaseTallyResult() { return { - paramsType: "", + yesCount: "", + abstainCount: "", + noCount: "", + noWithVetoCount: "", }; } -exports.QueryParamsRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.paramsType !== "") { - writer.uint32(10).string(message.paramsType); +exports.TallyResult = { + typeUrl: "/cosmos.group.v1.TallyResult", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.yesCount !== "") { + writer.uint32(10).string(message.yesCount); + } + if (message.abstainCount !== "") { + writer.uint32(18).string(message.abstainCount); + } + if (message.noCount !== "") { + writer.uint32(26).string(message.noCount); + } + if (message.noWithVetoCount !== "") { + writer.uint32(34).string(message.noWithVetoCount); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsRequest(); + const message = createBaseTallyResult(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.paramsType = reader.string(); + message.yesCount = reader.string(); + break; + case 2: + message.abstainCount = reader.string(); + break; + case 3: + message.noCount = reader.string(); + break; + case 4: + message.noWithVetoCount = reader.string(); break; default: reader.skipType(tag & 7); @@ -74111,56 +69459,84 @@ exports.QueryParamsRequest = { return message; }, fromJSON(object) { - return { - paramsType: (0, helpers_1.isSet)(object.paramsType) ? String(object.paramsType) : "", - }; + const obj = createBaseTallyResult(); + if ((0, helpers_1.isSet)(object.yesCount)) + obj.yesCount = String(object.yesCount); + if ((0, helpers_1.isSet)(object.abstainCount)) + obj.abstainCount = String(object.abstainCount); + if ((0, helpers_1.isSet)(object.noCount)) + obj.noCount = String(object.noCount); + if ((0, helpers_1.isSet)(object.noWithVetoCount)) + obj.noWithVetoCount = String(object.noWithVetoCount); + return obj; }, toJSON(message) { const obj = {}; - message.paramsType !== undefined && (obj.paramsType = message.paramsType); + message.yesCount !== undefined && (obj.yesCount = message.yesCount); + message.abstainCount !== undefined && (obj.abstainCount = message.abstainCount); + message.noCount !== undefined && (obj.noCount = message.noCount); + message.noWithVetoCount !== undefined && (obj.noWithVetoCount = message.noWithVetoCount); return obj; }, fromPartial(object) { - const message = createBaseQueryParamsRequest(); - message.paramsType = object.paramsType ?? ""; + const message = createBaseTallyResult(); + message.yesCount = object.yesCount ?? ""; + message.abstainCount = object.abstainCount ?? ""; + message.noCount = object.noCount ?? ""; + message.noWithVetoCount = object.noWithVetoCount ?? ""; return message; }, }; -function createBaseQueryParamsResponse() { +function createBaseVote() { return { - votingParams: undefined, - depositParams: undefined, - tallyParams: undefined, + proposalId: BigInt(0), + voter: "", + option: 0, + metadata: "", + submitTime: timestamp_1.Timestamp.fromPartial({}), }; } -exports.QueryParamsResponse = { - encode(message, writer = _m0.Writer.create()) { - if (message.votingParams !== undefined) { - gov_1.VotingParams.encode(message.votingParams, writer.uint32(10).fork()).ldelim(); +exports.Vote = { + typeUrl: "/cosmos.group.v1.Vote", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.proposalId !== BigInt(0)) { + writer.uint32(8).uint64(message.proposalId); } - if (message.depositParams !== undefined) { - gov_1.DepositParams.encode(message.depositParams, writer.uint32(18).fork()).ldelim(); + if (message.voter !== "") { + writer.uint32(18).string(message.voter); } - if (message.tallyParams !== undefined) { - gov_1.TallyParams.encode(message.tallyParams, writer.uint32(26).fork()).ldelim(); + if (message.option !== 0) { + writer.uint32(24).int32(message.option); + } + if (message.metadata !== "") { + writer.uint32(34).string(message.metadata); + } + if (message.submitTime !== undefined) { + timestamp_1.Timestamp.encode(message.submitTime, writer.uint32(42).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsResponse(); + const message = createBaseVote(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.votingParams = gov_1.VotingParams.decode(reader, reader.uint32()); + message.proposalId = reader.uint64(); break; case 2: - message.depositParams = gov_1.DepositParams.decode(reader, reader.uint32()); + message.voter = reader.string(); break; case 3: - message.tallyParams = gov_1.TallyParams.decode(reader, reader.uint32()); + message.option = reader.int32(); + break; + case 4: + message.metadata = reader.string(); + break; + case 5: + message.submitTime = timestamp_1.Timestamp.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -74170,67 +69546,258 @@ exports.QueryParamsResponse = { return message; }, fromJSON(object) { - return { - votingParams: (0, helpers_1.isSet)(object.votingParams) ? gov_1.VotingParams.fromJSON(object.votingParams) : undefined, - depositParams: (0, helpers_1.isSet)(object.depositParams) ? gov_1.DepositParams.fromJSON(object.depositParams) : undefined, - tallyParams: (0, helpers_1.isSet)(object.tallyParams) ? gov_1.TallyParams.fromJSON(object.tallyParams) : undefined, - }; + const obj = createBaseVote(); + if ((0, helpers_1.isSet)(object.proposalId)) + obj.proposalId = BigInt(object.proposalId.toString()); + if ((0, helpers_1.isSet)(object.voter)) + obj.voter = String(object.voter); + if ((0, helpers_1.isSet)(object.option)) + obj.option = voteOptionFromJSON(object.option); + if ((0, helpers_1.isSet)(object.metadata)) + obj.metadata = String(object.metadata); + if ((0, helpers_1.isSet)(object.submitTime)) + obj.submitTime = (0, helpers_1.fromJsonTimestamp)(object.submitTime); + return obj; }, toJSON(message) { const obj = {}; - message.votingParams !== undefined && - (obj.votingParams = message.votingParams ? gov_1.VotingParams.toJSON(message.votingParams) : undefined); - message.depositParams !== undefined && - (obj.depositParams = message.depositParams ? gov_1.DepositParams.toJSON(message.depositParams) : undefined); - message.tallyParams !== undefined && - (obj.tallyParams = message.tallyParams ? gov_1.TallyParams.toJSON(message.tallyParams) : undefined); + message.proposalId !== undefined && (obj.proposalId = (message.proposalId || BigInt(0)).toString()); + message.voter !== undefined && (obj.voter = message.voter); + message.option !== undefined && (obj.option = voteOptionToJSON(message.option)); + message.metadata !== undefined && (obj.metadata = message.metadata); + message.submitTime !== undefined && (obj.submitTime = (0, helpers_1.fromTimestamp)(message.submitTime).toISOString()); return obj; }, fromPartial(object) { - const message = createBaseQueryParamsResponse(); - message.votingParams = - object.votingParams !== undefined && object.votingParams !== null - ? gov_1.VotingParams.fromPartial(object.votingParams) - : undefined; - message.depositParams = - object.depositParams !== undefined && object.depositParams !== null - ? gov_1.DepositParams.fromPartial(object.depositParams) - : undefined; - message.tallyParams = - object.tallyParams !== undefined && object.tallyParams !== null - ? gov_1.TallyParams.fromPartial(object.tallyParams) - : undefined; + const message = createBaseVote(); + if (object.proposalId !== undefined && object.proposalId !== null) { + message.proposalId = BigInt(object.proposalId.toString()); + } + message.voter = object.voter ?? ""; + message.option = object.option ?? 0; + message.metadata = object.metadata ?? ""; + if (object.submitTime !== undefined && object.submitTime !== null) { + message.submitTime = timestamp_1.Timestamp.fromPartial(object.submitTime); + } return message; }, }; -function createBaseQueryDepositRequest() { +//# sourceMappingURL=types.js.map + +/***/ }), + +/***/ "./node_modules/cosmjs-types/cosmos/ics23/v1/proofs.js": +/*!*************************************************************!*\ + !*** ./node_modules/cosmjs-types/cosmos/ics23/v1/proofs.js ***! + \*************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.CompressedNonExistenceProof = exports.CompressedExistenceProof = exports.CompressedBatchEntry = exports.CompressedBatchProof = exports.BatchEntry = exports.BatchProof = exports.InnerSpec = exports.ProofSpec = exports.InnerOp = exports.LeafOp = exports.CommitmentProof = exports.NonExistenceProof = exports.ExistenceProof = exports.lengthOpToJSON = exports.lengthOpFromJSON = exports.LengthOp = exports.hashOpToJSON = exports.hashOpFromJSON = exports.HashOp = exports.protobufPackage = void 0; +/* eslint-disable */ +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "cosmos.ics23.v1"; +var HashOp; +(function (HashOp) { + /** NO_HASH - NO_HASH is the default if no data passed. Note this is an illegal argument some places. */ + HashOp[HashOp["NO_HASH"] = 0] = "NO_HASH"; + HashOp[HashOp["SHA256"] = 1] = "SHA256"; + HashOp[HashOp["SHA512"] = 2] = "SHA512"; + HashOp[HashOp["KECCAK"] = 3] = "KECCAK"; + HashOp[HashOp["RIPEMD160"] = 4] = "RIPEMD160"; + /** BITCOIN - ripemd160(sha256(x)) */ + HashOp[HashOp["BITCOIN"] = 5] = "BITCOIN"; + HashOp[HashOp["SHA512_256"] = 6] = "SHA512_256"; + HashOp[HashOp["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(HashOp || (exports.HashOp = HashOp = {})); +function hashOpFromJSON(object) { + switch (object) { + case 0: + case "NO_HASH": + return HashOp.NO_HASH; + case 1: + case "SHA256": + return HashOp.SHA256; + case 2: + case "SHA512": + return HashOp.SHA512; + case 3: + case "KECCAK": + return HashOp.KECCAK; + case 4: + case "RIPEMD160": + return HashOp.RIPEMD160; + case 5: + case "BITCOIN": + return HashOp.BITCOIN; + case 6: + case "SHA512_256": + return HashOp.SHA512_256; + case -1: + case "UNRECOGNIZED": + default: + return HashOp.UNRECOGNIZED; + } +} +exports.hashOpFromJSON = hashOpFromJSON; +function hashOpToJSON(object) { + switch (object) { + case HashOp.NO_HASH: + return "NO_HASH"; + case HashOp.SHA256: + return "SHA256"; + case HashOp.SHA512: + return "SHA512"; + case HashOp.KECCAK: + return "KECCAK"; + case HashOp.RIPEMD160: + return "RIPEMD160"; + case HashOp.BITCOIN: + return "BITCOIN"; + case HashOp.SHA512_256: + return "SHA512_256"; + case HashOp.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} +exports.hashOpToJSON = hashOpToJSON; +/** + * LengthOp defines how to process the key and value of the LeafOp + * to include length information. After encoding the length with the given + * algorithm, the length will be prepended to the key and value bytes. + * (Each one with it's own encoded length) + */ +var LengthOp; +(function (LengthOp) { + /** NO_PREFIX - NO_PREFIX don't include any length info */ + LengthOp[LengthOp["NO_PREFIX"] = 0] = "NO_PREFIX"; + /** VAR_PROTO - VAR_PROTO uses protobuf (and go-amino) varint encoding of the length */ + LengthOp[LengthOp["VAR_PROTO"] = 1] = "VAR_PROTO"; + /** VAR_RLP - VAR_RLP uses rlp int encoding of the length */ + LengthOp[LengthOp["VAR_RLP"] = 2] = "VAR_RLP"; + /** FIXED32_BIG - FIXED32_BIG uses big-endian encoding of the length as a 32 bit integer */ + LengthOp[LengthOp["FIXED32_BIG"] = 3] = "FIXED32_BIG"; + /** FIXED32_LITTLE - FIXED32_LITTLE uses little-endian encoding of the length as a 32 bit integer */ + LengthOp[LengthOp["FIXED32_LITTLE"] = 4] = "FIXED32_LITTLE"; + /** FIXED64_BIG - FIXED64_BIG uses big-endian encoding of the length as a 64 bit integer */ + LengthOp[LengthOp["FIXED64_BIG"] = 5] = "FIXED64_BIG"; + /** FIXED64_LITTLE - FIXED64_LITTLE uses little-endian encoding of the length as a 64 bit integer */ + LengthOp[LengthOp["FIXED64_LITTLE"] = 6] = "FIXED64_LITTLE"; + /** REQUIRE_32_BYTES - REQUIRE_32_BYTES is like NONE, but will fail if the input is not exactly 32 bytes (sha256 output) */ + LengthOp[LengthOp["REQUIRE_32_BYTES"] = 7] = "REQUIRE_32_BYTES"; + /** REQUIRE_64_BYTES - REQUIRE_64_BYTES is like NONE, but will fail if the input is not exactly 64 bytes (sha512 output) */ + LengthOp[LengthOp["REQUIRE_64_BYTES"] = 8] = "REQUIRE_64_BYTES"; + LengthOp[LengthOp["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(LengthOp || (exports.LengthOp = LengthOp = {})); +function lengthOpFromJSON(object) { + switch (object) { + case 0: + case "NO_PREFIX": + return LengthOp.NO_PREFIX; + case 1: + case "VAR_PROTO": + return LengthOp.VAR_PROTO; + case 2: + case "VAR_RLP": + return LengthOp.VAR_RLP; + case 3: + case "FIXED32_BIG": + return LengthOp.FIXED32_BIG; + case 4: + case "FIXED32_LITTLE": + return LengthOp.FIXED32_LITTLE; + case 5: + case "FIXED64_BIG": + return LengthOp.FIXED64_BIG; + case 6: + case "FIXED64_LITTLE": + return LengthOp.FIXED64_LITTLE; + case 7: + case "REQUIRE_32_BYTES": + return LengthOp.REQUIRE_32_BYTES; + case 8: + case "REQUIRE_64_BYTES": + return LengthOp.REQUIRE_64_BYTES; + case -1: + case "UNRECOGNIZED": + default: + return LengthOp.UNRECOGNIZED; + } +} +exports.lengthOpFromJSON = lengthOpFromJSON; +function lengthOpToJSON(object) { + switch (object) { + case LengthOp.NO_PREFIX: + return "NO_PREFIX"; + case LengthOp.VAR_PROTO: + return "VAR_PROTO"; + case LengthOp.VAR_RLP: + return "VAR_RLP"; + case LengthOp.FIXED32_BIG: + return "FIXED32_BIG"; + case LengthOp.FIXED32_LITTLE: + return "FIXED32_LITTLE"; + case LengthOp.FIXED64_BIG: + return "FIXED64_BIG"; + case LengthOp.FIXED64_LITTLE: + return "FIXED64_LITTLE"; + case LengthOp.REQUIRE_32_BYTES: + return "REQUIRE_32_BYTES"; + case LengthOp.REQUIRE_64_BYTES: + return "REQUIRE_64_BYTES"; + case LengthOp.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} +exports.lengthOpToJSON = lengthOpToJSON; +function createBaseExistenceProof() { return { - proposalId: helpers_1.Long.UZERO, - depositor: "", + key: new Uint8Array(), + value: new Uint8Array(), + leaf: undefined, + path: [], }; } -exports.QueryDepositRequest = { - encode(message, writer = _m0.Writer.create()) { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); +exports.ExistenceProof = { + typeUrl: "/cosmos.ics23.v1.ExistenceProof", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.key.length !== 0) { + writer.uint32(10).bytes(message.key); } - if (message.depositor !== "") { - writer.uint32(18).string(message.depositor); + if (message.value.length !== 0) { + writer.uint32(18).bytes(message.value); + } + if (message.leaf !== undefined) { + exports.LeafOp.encode(message.leaf, writer.uint32(26).fork()).ldelim(); + } + for (const v of message.path) { + exports.InnerOp.encode(v, writer.uint32(34).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDepositRequest(); + const message = createBaseExistenceProof(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.proposalId = reader.uint64(); + message.key = reader.bytes(); break; case 2: - message.depositor = reader.string(); + message.value = reader.bytes(); + break; + case 3: + message.leaf = exports.LeafOp.decode(reader, reader.uint32()); + break; + case 4: + message.path.push(exports.InnerOp.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -74240,48 +69807,79 @@ exports.QueryDepositRequest = { return message; }, fromJSON(object) { - return { - proposalId: (0, helpers_1.isSet)(object.proposalId) ? helpers_1.Long.fromValue(object.proposalId) : helpers_1.Long.UZERO, - depositor: (0, helpers_1.isSet)(object.depositor) ? String(object.depositor) : "", - }; + const obj = createBaseExistenceProof(); + if ((0, helpers_1.isSet)(object.key)) + obj.key = (0, helpers_1.bytesFromBase64)(object.key); + if ((0, helpers_1.isSet)(object.value)) + obj.value = (0, helpers_1.bytesFromBase64)(object.value); + if ((0, helpers_1.isSet)(object.leaf)) + obj.leaf = exports.LeafOp.fromJSON(object.leaf); + if (Array.isArray(object?.path)) + obj.path = object.path.map((e) => exports.InnerOp.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - message.proposalId !== undefined && (obj.proposalId = (message.proposalId || helpers_1.Long.UZERO).toString()); - message.depositor !== undefined && (obj.depositor = message.depositor); + message.key !== undefined && + (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array())); + message.value !== undefined && + (obj.value = (0, helpers_1.base64FromBytes)(message.value !== undefined ? message.value : new Uint8Array())); + message.leaf !== undefined && (obj.leaf = message.leaf ? exports.LeafOp.toJSON(message.leaf) : undefined); + if (message.path) { + obj.path = message.path.map((e) => (e ? exports.InnerOp.toJSON(e) : undefined)); + } + else { + obj.path = []; + } return obj; }, fromPartial(object) { - const message = createBaseQueryDepositRequest(); - message.proposalId = - object.proposalId !== undefined && object.proposalId !== null - ? helpers_1.Long.fromValue(object.proposalId) - : helpers_1.Long.UZERO; - message.depositor = object.depositor ?? ""; + const message = createBaseExistenceProof(); + message.key = object.key ?? new Uint8Array(); + message.value = object.value ?? new Uint8Array(); + if (object.leaf !== undefined && object.leaf !== null) { + message.leaf = exports.LeafOp.fromPartial(object.leaf); + } + message.path = object.path?.map((e) => exports.InnerOp.fromPartial(e)) || []; return message; }, }; -function createBaseQueryDepositResponse() { +function createBaseNonExistenceProof() { return { - deposit: undefined, + key: new Uint8Array(), + left: undefined, + right: undefined, }; } -exports.QueryDepositResponse = { - encode(message, writer = _m0.Writer.create()) { - if (message.deposit !== undefined) { - gov_1.Deposit.encode(message.deposit, writer.uint32(10).fork()).ldelim(); +exports.NonExistenceProof = { + typeUrl: "/cosmos.ics23.v1.NonExistenceProof", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.key.length !== 0) { + writer.uint32(10).bytes(message.key); + } + if (message.left !== undefined) { + exports.ExistenceProof.encode(message.left, writer.uint32(18).fork()).ldelim(); + } + if (message.right !== undefined) { + exports.ExistenceProof.encode(message.right, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDepositResponse(); + const message = createBaseNonExistenceProof(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.deposit = gov_1.Deposit.decode(reader, reader.uint32()); + message.key = reader.bytes(); + break; + case 2: + message.left = exports.ExistenceProof.decode(reader, reader.uint32()); + break; + case 3: + message.right = exports.ExistenceProof.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -74291,53 +69889,79 @@ exports.QueryDepositResponse = { return message; }, fromJSON(object) { - return { - deposit: (0, helpers_1.isSet)(object.deposit) ? gov_1.Deposit.fromJSON(object.deposit) : undefined, - }; + const obj = createBaseNonExistenceProof(); + if ((0, helpers_1.isSet)(object.key)) + obj.key = (0, helpers_1.bytesFromBase64)(object.key); + if ((0, helpers_1.isSet)(object.left)) + obj.left = exports.ExistenceProof.fromJSON(object.left); + if ((0, helpers_1.isSet)(object.right)) + obj.right = exports.ExistenceProof.fromJSON(object.right); + return obj; }, toJSON(message) { const obj = {}; - message.deposit !== undefined && - (obj.deposit = message.deposit ? gov_1.Deposit.toJSON(message.deposit) : undefined); + message.key !== undefined && + (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array())); + message.left !== undefined && (obj.left = message.left ? exports.ExistenceProof.toJSON(message.left) : undefined); + message.right !== undefined && + (obj.right = message.right ? exports.ExistenceProof.toJSON(message.right) : undefined); return obj; }, fromPartial(object) { - const message = createBaseQueryDepositResponse(); - message.deposit = - object.deposit !== undefined && object.deposit !== null - ? gov_1.Deposit.fromPartial(object.deposit) - : undefined; + const message = createBaseNonExistenceProof(); + message.key = object.key ?? new Uint8Array(); + if (object.left !== undefined && object.left !== null) { + message.left = exports.ExistenceProof.fromPartial(object.left); + } + if (object.right !== undefined && object.right !== null) { + message.right = exports.ExistenceProof.fromPartial(object.right); + } return message; }, }; -function createBaseQueryDepositsRequest() { +function createBaseCommitmentProof() { return { - proposalId: helpers_1.Long.UZERO, - pagination: undefined, + exist: undefined, + nonexist: undefined, + batch: undefined, + compressed: undefined, }; } -exports.QueryDepositsRequest = { - encode(message, writer = _m0.Writer.create()) { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); +exports.CommitmentProof = { + typeUrl: "/cosmos.ics23.v1.CommitmentProof", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.exist !== undefined) { + exports.ExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim(); } - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (message.nonexist !== undefined) { + exports.NonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim(); + } + if (message.batch !== undefined) { + exports.BatchProof.encode(message.batch, writer.uint32(26).fork()).ldelim(); + } + if (message.compressed !== undefined) { + exports.CompressedBatchProof.encode(message.compressed, writer.uint32(34).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDepositsRequest(); + const message = createBaseCommitmentProof(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.proposalId = reader.uint64(); + message.exist = exports.ExistenceProof.decode(reader, reader.uint32()); break; case 2: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.nonexist = exports.NonExistenceProof.decode(reader, reader.uint32()); + break; + case 3: + message.batch = exports.BatchProof.decode(reader, reader.uint32()); + break; + case 4: + message.compressed = exports.CompressedBatchProof.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -74347,59 +69971,95 @@ exports.QueryDepositsRequest = { return message; }, fromJSON(object) { - return { - proposalId: (0, helpers_1.isSet)(object.proposalId) ? helpers_1.Long.fromValue(object.proposalId) : helpers_1.Long.UZERO, - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseCommitmentProof(); + if ((0, helpers_1.isSet)(object.exist)) + obj.exist = exports.ExistenceProof.fromJSON(object.exist); + if ((0, helpers_1.isSet)(object.nonexist)) + obj.nonexist = exports.NonExistenceProof.fromJSON(object.nonexist); + if ((0, helpers_1.isSet)(object.batch)) + obj.batch = exports.BatchProof.fromJSON(object.batch); + if ((0, helpers_1.isSet)(object.compressed)) + obj.compressed = exports.CompressedBatchProof.fromJSON(object.compressed); + return obj; }, toJSON(message) { const obj = {}; - message.proposalId !== undefined && (obj.proposalId = (message.proposalId || helpers_1.Long.UZERO).toString()); - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); + message.exist !== undefined && + (obj.exist = message.exist ? exports.ExistenceProof.toJSON(message.exist) : undefined); + message.nonexist !== undefined && + (obj.nonexist = message.nonexist ? exports.NonExistenceProof.toJSON(message.nonexist) : undefined); + message.batch !== undefined && (obj.batch = message.batch ? exports.BatchProof.toJSON(message.batch) : undefined); + message.compressed !== undefined && + (obj.compressed = message.compressed ? exports.CompressedBatchProof.toJSON(message.compressed) : undefined); return obj; }, fromPartial(object) { - const message = createBaseQueryDepositsRequest(); - message.proposalId = - object.proposalId !== undefined && object.proposalId !== null - ? helpers_1.Long.fromValue(object.proposalId) - : helpers_1.Long.UZERO; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + const message = createBaseCommitmentProof(); + if (object.exist !== undefined && object.exist !== null) { + message.exist = exports.ExistenceProof.fromPartial(object.exist); + } + if (object.nonexist !== undefined && object.nonexist !== null) { + message.nonexist = exports.NonExistenceProof.fromPartial(object.nonexist); + } + if (object.batch !== undefined && object.batch !== null) { + message.batch = exports.BatchProof.fromPartial(object.batch); + } + if (object.compressed !== undefined && object.compressed !== null) { + message.compressed = exports.CompressedBatchProof.fromPartial(object.compressed); + } return message; }, }; -function createBaseQueryDepositsResponse() { +function createBaseLeafOp() { return { - deposits: [], - pagination: undefined, + hash: 0, + prehashKey: 0, + prehashValue: 0, + length: 0, + prefix: new Uint8Array(), }; } -exports.QueryDepositsResponse = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.deposits) { - gov_1.Deposit.encode(v, writer.uint32(10).fork()).ldelim(); +exports.LeafOp = { + typeUrl: "/cosmos.ics23.v1.LeafOp", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.hash !== 0) { + writer.uint32(8).int32(message.hash); } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (message.prehashKey !== 0) { + writer.uint32(16).int32(message.prehashKey); + } + if (message.prehashValue !== 0) { + writer.uint32(24).int32(message.prehashValue); + } + if (message.length !== 0) { + writer.uint32(32).int32(message.length); + } + if (message.prefix.length !== 0) { + writer.uint32(42).bytes(message.prefix); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDepositsResponse(); + const message = createBaseLeafOp(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.deposits.push(gov_1.Deposit.decode(reader, reader.uint32())); + message.hash = reader.int32(); break; case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + message.prehashKey = reader.int32(); + break; + case 3: + message.prehashValue = reader.int32(); + break; + case 4: + message.length = reader.int32(); + break; + case 5: + message.prefix = reader.bytes(); break; default: reader.skipType(tag & 7); @@ -74409,54 +70069,75 @@ exports.QueryDepositsResponse = { return message; }, fromJSON(object) { - return { - deposits: Array.isArray(object?.deposits) ? object.deposits.map((e) => gov_1.Deposit.fromJSON(e)) : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseLeafOp(); + if ((0, helpers_1.isSet)(object.hash)) + obj.hash = hashOpFromJSON(object.hash); + if ((0, helpers_1.isSet)(object.prehashKey)) + obj.prehashKey = hashOpFromJSON(object.prehashKey); + if ((0, helpers_1.isSet)(object.prehashValue)) + obj.prehashValue = hashOpFromJSON(object.prehashValue); + if ((0, helpers_1.isSet)(object.length)) + obj.length = lengthOpFromJSON(object.length); + if ((0, helpers_1.isSet)(object.prefix)) + obj.prefix = (0, helpers_1.bytesFromBase64)(object.prefix); + return obj; }, toJSON(message) { const obj = {}; - if (message.deposits) { - obj.deposits = message.deposits.map((e) => (e ? gov_1.Deposit.toJSON(e) : undefined)); - } - else { - obj.deposits = []; - } - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); + message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash)); + message.prehashKey !== undefined && (obj.prehashKey = hashOpToJSON(message.prehashKey)); + message.prehashValue !== undefined && (obj.prehashValue = hashOpToJSON(message.prehashValue)); + message.length !== undefined && (obj.length = lengthOpToJSON(message.length)); + message.prefix !== undefined && + (obj.prefix = (0, helpers_1.base64FromBytes)(message.prefix !== undefined ? message.prefix : new Uint8Array())); return obj; }, fromPartial(object) { - const message = createBaseQueryDepositsResponse(); - message.deposits = object.deposits?.map((e) => gov_1.Deposit.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + const message = createBaseLeafOp(); + message.hash = object.hash ?? 0; + message.prehashKey = object.prehashKey ?? 0; + message.prehashValue = object.prehashValue ?? 0; + message.length = object.length ?? 0; + message.prefix = object.prefix ?? new Uint8Array(); return message; }, }; -function createBaseQueryTallyResultRequest() { +function createBaseInnerOp() { return { - proposalId: helpers_1.Long.UZERO, + hash: 0, + prefix: new Uint8Array(), + suffix: new Uint8Array(), }; } -exports.QueryTallyResultRequest = { - encode(message, writer = _m0.Writer.create()) { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); +exports.InnerOp = { + typeUrl: "/cosmos.ics23.v1.InnerOp", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.hash !== 0) { + writer.uint32(8).int32(message.hash); + } + if (message.prefix.length !== 0) { + writer.uint32(18).bytes(message.prefix); + } + if (message.suffix.length !== 0) { + writer.uint32(26).bytes(message.suffix); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryTallyResultRequest(); + const message = createBaseInnerOp(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.proposalId = reader.uint64(); + message.hash = reader.int32(); + break; + case 2: + message.prefix = reader.bytes(); + break; + case 3: + message.suffix = reader.bytes(); break; default: reader.skipType(tag & 7); @@ -74466,45 +70147,75 @@ exports.QueryTallyResultRequest = { return message; }, fromJSON(object) { - return { - proposalId: (0, helpers_1.isSet)(object.proposalId) ? helpers_1.Long.fromValue(object.proposalId) : helpers_1.Long.UZERO, - }; + const obj = createBaseInnerOp(); + if ((0, helpers_1.isSet)(object.hash)) + obj.hash = hashOpFromJSON(object.hash); + if ((0, helpers_1.isSet)(object.prefix)) + obj.prefix = (0, helpers_1.bytesFromBase64)(object.prefix); + if ((0, helpers_1.isSet)(object.suffix)) + obj.suffix = (0, helpers_1.bytesFromBase64)(object.suffix); + return obj; }, toJSON(message) { const obj = {}; - message.proposalId !== undefined && (obj.proposalId = (message.proposalId || helpers_1.Long.UZERO).toString()); + message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash)); + message.prefix !== undefined && + (obj.prefix = (0, helpers_1.base64FromBytes)(message.prefix !== undefined ? message.prefix : new Uint8Array())); + message.suffix !== undefined && + (obj.suffix = (0, helpers_1.base64FromBytes)(message.suffix !== undefined ? message.suffix : new Uint8Array())); return obj; }, fromPartial(object) { - const message = createBaseQueryTallyResultRequest(); - message.proposalId = - object.proposalId !== undefined && object.proposalId !== null - ? helpers_1.Long.fromValue(object.proposalId) - : helpers_1.Long.UZERO; + const message = createBaseInnerOp(); + message.hash = object.hash ?? 0; + message.prefix = object.prefix ?? new Uint8Array(); + message.suffix = object.suffix ?? new Uint8Array(); return message; }, }; -function createBaseQueryTallyResultResponse() { +function createBaseProofSpec() { return { - tally: undefined, + leafSpec: undefined, + innerSpec: undefined, + maxDepth: 0, + minDepth: 0, }; } -exports.QueryTallyResultResponse = { - encode(message, writer = _m0.Writer.create()) { - if (message.tally !== undefined) { - gov_1.TallyResult.encode(message.tally, writer.uint32(10).fork()).ldelim(); +exports.ProofSpec = { + typeUrl: "/cosmos.ics23.v1.ProofSpec", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.leafSpec !== undefined) { + exports.LeafOp.encode(message.leafSpec, writer.uint32(10).fork()).ldelim(); + } + if (message.innerSpec !== undefined) { + exports.InnerSpec.encode(message.innerSpec, writer.uint32(18).fork()).ldelim(); + } + if (message.maxDepth !== 0) { + writer.uint32(24).int32(message.maxDepth); + } + if (message.minDepth !== 0) { + writer.uint32(32).int32(message.minDepth); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryTallyResultResponse(); + const message = createBaseProofSpec(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.tally = gov_1.TallyResult.decode(reader, reader.uint32()); + message.leafSpec = exports.LeafOp.decode(reader, reader.uint32()); + break; + case 2: + message.innerSpec = exports.InnerSpec.decode(reader, reader.uint32()); + break; + case 3: + message.maxDepth = reader.int32(); + break; + case 4: + message.minDepth = reader.int32(); break; default: reader.skipType(tag & 7); @@ -74514,156 +70225,107 @@ exports.QueryTallyResultResponse = { return message; }, fromJSON(object) { - return { - tally: (0, helpers_1.isSet)(object.tally) ? gov_1.TallyResult.fromJSON(object.tally) : undefined, - }; + const obj = createBaseProofSpec(); + if ((0, helpers_1.isSet)(object.leafSpec)) + obj.leafSpec = exports.LeafOp.fromJSON(object.leafSpec); + if ((0, helpers_1.isSet)(object.innerSpec)) + obj.innerSpec = exports.InnerSpec.fromJSON(object.innerSpec); + if ((0, helpers_1.isSet)(object.maxDepth)) + obj.maxDepth = Number(object.maxDepth); + if ((0, helpers_1.isSet)(object.minDepth)) + obj.minDepth = Number(object.minDepth); + return obj; }, toJSON(message) { const obj = {}; - message.tally !== undefined && - (obj.tally = message.tally ? gov_1.TallyResult.toJSON(message.tally) : undefined); + message.leafSpec !== undefined && + (obj.leafSpec = message.leafSpec ? exports.LeafOp.toJSON(message.leafSpec) : undefined); + message.innerSpec !== undefined && + (obj.innerSpec = message.innerSpec ? exports.InnerSpec.toJSON(message.innerSpec) : undefined); + message.maxDepth !== undefined && (obj.maxDepth = Math.round(message.maxDepth)); + message.minDepth !== undefined && (obj.minDepth = Math.round(message.minDepth)); return obj; }, fromPartial(object) { - const message = createBaseQueryTallyResultResponse(); - message.tally = - object.tally !== undefined && object.tally !== null ? gov_1.TallyResult.fromPartial(object.tally) : undefined; + const message = createBaseProofSpec(); + if (object.leafSpec !== undefined && object.leafSpec !== null) { + message.leafSpec = exports.LeafOp.fromPartial(object.leafSpec); + } + if (object.innerSpec !== undefined && object.innerSpec !== null) { + message.innerSpec = exports.InnerSpec.fromPartial(object.innerSpec); + } + message.maxDepth = object.maxDepth ?? 0; + message.minDepth = object.minDepth ?? 0; return message; }, }; -class QueryClientImpl { - constructor(rpc) { - this.rpc = rpc; - this.Proposal = this.Proposal.bind(this); - this.Proposals = this.Proposals.bind(this); - this.Vote = this.Vote.bind(this); - this.Votes = this.Votes.bind(this); - this.Params = this.Params.bind(this); - this.Deposit = this.Deposit.bind(this); - this.Deposits = this.Deposits.bind(this); - this.TallyResult = this.TallyResult.bind(this); - } - Proposal(request) { - const data = exports.QueryProposalRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Proposal", data); - return promise.then((data) => exports.QueryProposalResponse.decode(new _m0.Reader(data))); - } - Proposals(request) { - const data = exports.QueryProposalsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Proposals", data); - return promise.then((data) => exports.QueryProposalsResponse.decode(new _m0.Reader(data))); - } - Vote(request) { - const data = exports.QueryVoteRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Vote", data); - return promise.then((data) => exports.QueryVoteResponse.decode(new _m0.Reader(data))); - } - Votes(request) { - const data = exports.QueryVotesRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Votes", data); - return promise.then((data) => exports.QueryVotesResponse.decode(new _m0.Reader(data))); - } - Params(request) { - const data = exports.QueryParamsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Params", data); - return promise.then((data) => exports.QueryParamsResponse.decode(new _m0.Reader(data))); - } - Deposit(request) { - const data = exports.QueryDepositRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Deposit", data); - return promise.then((data) => exports.QueryDepositResponse.decode(new _m0.Reader(data))); - } - Deposits(request) { - const data = exports.QueryDepositsRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "Deposits", data); - return promise.then((data) => exports.QueryDepositsResponse.decode(new _m0.Reader(data))); - } - TallyResult(request) { - const data = exports.QueryTallyResultRequest.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Query", "TallyResult", data); - return promise.then((data) => exports.QueryTallyResultResponse.decode(new _m0.Reader(data))); - } -} -exports.QueryClientImpl = QueryClientImpl; -//# sourceMappingURL=query.js.map - -/***/ }), - -/***/ "./node_modules/cosmjs-types/cosmos/gov/v1beta1/tx.js": -/*!************************************************************!*\ - !*** ./node_modules/cosmjs-types/cosmos/gov/v1beta1/tx.js ***! - \************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.MsgClientImpl = exports.MsgDepositResponse = exports.MsgDeposit = exports.MsgVoteWeightedResponse = exports.MsgVoteWeighted = exports.MsgVoteResponse = exports.MsgVote = exports.MsgSubmitProposalResponse = exports.MsgSubmitProposal = exports.protobufPackage = void 0; -/* eslint-disable */ -const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); -const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); -const gov_1 = __webpack_require__(/*! ./gov */ "./node_modules/cosmjs-types/cosmos/gov/v1beta1/gov.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -exports.protobufPackage = "cosmos.gov.v1beta1"; -function createBaseMsgSubmitProposal() { +function createBaseInnerSpec() { return { - content: undefined, - initialDeposit: [], - proposer: "", + childOrder: [], + childSize: 0, + minPrefixLength: 0, + maxPrefixLength: 0, + emptyChild: new Uint8Array(), + hash: 0, }; } -exports.MsgSubmitProposal = { - encode(message, writer = _m0.Writer.create()) { - if (message.content !== undefined) { - any_1.Any.encode(message.content, writer.uint32(10).fork()).ldelim(); +exports.InnerSpec = { + typeUrl: "/cosmos.ics23.v1.InnerSpec", + encode(message, writer = binary_1.BinaryWriter.create()) { + writer.uint32(10).fork(); + for (const v of message.childOrder) { + writer.int32(v); } - for (const v of message.initialDeposit) { - coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim(); + writer.ldelim(); + if (message.childSize !== 0) { + writer.uint32(16).int32(message.childSize); } - if (message.proposer !== "") { - writer.uint32(26).string(message.proposer); + if (message.minPrefixLength !== 0) { + writer.uint32(24).int32(message.minPrefixLength); + } + if (message.maxPrefixLength !== 0) { + writer.uint32(32).int32(message.maxPrefixLength); + } + if (message.emptyChild.length !== 0) { + writer.uint32(42).bytes(message.emptyChild); + } + if (message.hash !== 0) { + writer.uint32(48).int32(message.hash); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSubmitProposal(); + const message = createBaseInnerSpec(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.content = any_1.Any.decode(reader, reader.uint32()); + if ((tag & 7) === 2) { + const end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) { + message.childOrder.push(reader.int32()); + } + } + else { + message.childOrder.push(reader.int32()); + } break; case 2: - message.initialDeposit.push(coin_1.Coin.decode(reader, reader.uint32())); + message.childSize = reader.int32(); break; case 3: - message.proposer = reader.string(); + message.minPrefixLength = reader.int32(); + break; + case 4: + message.maxPrefixLength = reader.int32(); + break; + case 5: + message.emptyChild = reader.bytes(); + break; + case 6: + message.hash = reader.int32(); break; default: reader.skipType(tag & 7); @@ -74673,57 +70335,70 @@ exports.MsgSubmitProposal = { return message; }, fromJSON(object) { - return { - content: (0, helpers_1.isSet)(object.content) ? any_1.Any.fromJSON(object.content) : undefined, - initialDeposit: Array.isArray(object?.initialDeposit) - ? object.initialDeposit.map((e) => coin_1.Coin.fromJSON(e)) - : [], - proposer: (0, helpers_1.isSet)(object.proposer) ? String(object.proposer) : "", - }; + const obj = createBaseInnerSpec(); + if (Array.isArray(object?.childOrder)) + obj.childOrder = object.childOrder.map((e) => Number(e)); + if ((0, helpers_1.isSet)(object.childSize)) + obj.childSize = Number(object.childSize); + if ((0, helpers_1.isSet)(object.minPrefixLength)) + obj.minPrefixLength = Number(object.minPrefixLength); + if ((0, helpers_1.isSet)(object.maxPrefixLength)) + obj.maxPrefixLength = Number(object.maxPrefixLength); + if ((0, helpers_1.isSet)(object.emptyChild)) + obj.emptyChild = (0, helpers_1.bytesFromBase64)(object.emptyChild); + if ((0, helpers_1.isSet)(object.hash)) + obj.hash = hashOpFromJSON(object.hash); + return obj; }, toJSON(message) { const obj = {}; - message.content !== undefined && - (obj.content = message.content ? any_1.Any.toJSON(message.content) : undefined); - if (message.initialDeposit) { - obj.initialDeposit = message.initialDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + if (message.childOrder) { + obj.childOrder = message.childOrder.map((e) => Math.round(e)); } else { - obj.initialDeposit = []; + obj.childOrder = []; } - message.proposer !== undefined && (obj.proposer = message.proposer); + message.childSize !== undefined && (obj.childSize = Math.round(message.childSize)); + message.minPrefixLength !== undefined && (obj.minPrefixLength = Math.round(message.minPrefixLength)); + message.maxPrefixLength !== undefined && (obj.maxPrefixLength = Math.round(message.maxPrefixLength)); + message.emptyChild !== undefined && + (obj.emptyChild = (0, helpers_1.base64FromBytes)(message.emptyChild !== undefined ? message.emptyChild : new Uint8Array())); + message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash)); return obj; }, fromPartial(object) { - const message = createBaseMsgSubmitProposal(); - message.content = - object.content !== undefined && object.content !== null ? any_1.Any.fromPartial(object.content) : undefined; - message.initialDeposit = object.initialDeposit?.map((e) => coin_1.Coin.fromPartial(e)) || []; - message.proposer = object.proposer ?? ""; + const message = createBaseInnerSpec(); + message.childOrder = object.childOrder?.map((e) => e) || []; + message.childSize = object.childSize ?? 0; + message.minPrefixLength = object.minPrefixLength ?? 0; + message.maxPrefixLength = object.maxPrefixLength ?? 0; + message.emptyChild = object.emptyChild ?? new Uint8Array(); + message.hash = object.hash ?? 0; return message; }, }; -function createBaseMsgSubmitProposalResponse() { +function createBaseBatchProof() { return { - proposalId: helpers_1.Long.UZERO, + entries: [], }; } -exports.MsgSubmitProposalResponse = { - encode(message, writer = _m0.Writer.create()) { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); +exports.BatchProof = { + typeUrl: "/cosmos.ics23.v1.BatchProof", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.entries) { + exports.BatchEntry.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgSubmitProposalResponse(); + const message = createBaseBatchProof(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.proposalId = reader.uint64(); + message.entries.push(exports.BatchEntry.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -74733,59 +70408,56 @@ exports.MsgSubmitProposalResponse = { return message; }, fromJSON(object) { - return { - proposalId: (0, helpers_1.isSet)(object.proposalId) ? helpers_1.Long.fromValue(object.proposalId) : helpers_1.Long.UZERO, - }; + const obj = createBaseBatchProof(); + if (Array.isArray(object?.entries)) + obj.entries = object.entries.map((e) => exports.BatchEntry.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - message.proposalId !== undefined && (obj.proposalId = (message.proposalId || helpers_1.Long.UZERO).toString()); + if (message.entries) { + obj.entries = message.entries.map((e) => (e ? exports.BatchEntry.toJSON(e) : undefined)); + } + else { + obj.entries = []; + } return obj; }, fromPartial(object) { - const message = createBaseMsgSubmitProposalResponse(); - message.proposalId = - object.proposalId !== undefined && object.proposalId !== null - ? helpers_1.Long.fromValue(object.proposalId) - : helpers_1.Long.UZERO; + const message = createBaseBatchProof(); + message.entries = object.entries?.map((e) => exports.BatchEntry.fromPartial(e)) || []; return message; }, }; -function createBaseMsgVote() { +function createBaseBatchEntry() { return { - proposalId: helpers_1.Long.UZERO, - voter: "", - option: 0, + exist: undefined, + nonexist: undefined, }; } -exports.MsgVote = { - encode(message, writer = _m0.Writer.create()) { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - if (message.voter !== "") { - writer.uint32(18).string(message.voter); +exports.BatchEntry = { + typeUrl: "/cosmos.ics23.v1.BatchEntry", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.exist !== undefined) { + exports.ExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim(); } - if (message.option !== 0) { - writer.uint32(24).int32(message.option); + if (message.nonexist !== undefined) { + exports.NonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgVote(); + const message = createBaseBatchEntry(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.proposalId = reader.uint64(); + message.exist = exports.ExistenceProof.decode(reader, reader.uint32()); break; case 2: - message.voter = reader.string(); - break; - case 3: - message.option = reader.int32(); + message.nonexist = exports.NonExistenceProof.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -74795,98 +70467,61 @@ exports.MsgVote = { return message; }, fromJSON(object) { - return { - proposalId: (0, helpers_1.isSet)(object.proposalId) ? helpers_1.Long.fromValue(object.proposalId) : helpers_1.Long.UZERO, - voter: (0, helpers_1.isSet)(object.voter) ? String(object.voter) : "", - option: (0, helpers_1.isSet)(object.option) ? (0, gov_1.voteOptionFromJSON)(object.option) : 0, - }; + const obj = createBaseBatchEntry(); + if ((0, helpers_1.isSet)(object.exist)) + obj.exist = exports.ExistenceProof.fromJSON(object.exist); + if ((0, helpers_1.isSet)(object.nonexist)) + obj.nonexist = exports.NonExistenceProof.fromJSON(object.nonexist); + return obj; }, toJSON(message) { const obj = {}; - message.proposalId !== undefined && (obj.proposalId = (message.proposalId || helpers_1.Long.UZERO).toString()); - message.voter !== undefined && (obj.voter = message.voter); - message.option !== undefined && (obj.option = (0, gov_1.voteOptionToJSON)(message.option)); + message.exist !== undefined && + (obj.exist = message.exist ? exports.ExistenceProof.toJSON(message.exist) : undefined); + message.nonexist !== undefined && + (obj.nonexist = message.nonexist ? exports.NonExistenceProof.toJSON(message.nonexist) : undefined); return obj; }, fromPartial(object) { - const message = createBaseMsgVote(); - message.proposalId = - object.proposalId !== undefined && object.proposalId !== null - ? helpers_1.Long.fromValue(object.proposalId) - : helpers_1.Long.UZERO; - message.voter = object.voter ?? ""; - message.option = object.option ?? 0; - return message; - }, -}; -function createBaseMsgVoteResponse() { - return {}; -} -exports.MsgVoteResponse = { - encode(_, writer = _m0.Writer.create()) { - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgVoteResponse(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } + const message = createBaseBatchEntry(); + if (object.exist !== undefined && object.exist !== null) { + message.exist = exports.ExistenceProof.fromPartial(object.exist); + } + if (object.nonexist !== undefined && object.nonexist !== null) { + message.nonexist = exports.NonExistenceProof.fromPartial(object.nonexist); } - return message; - }, - fromJSON(_) { - return {}; - }, - toJSON(_) { - const obj = {}; - return obj; - }, - fromPartial(_) { - const message = createBaseMsgVoteResponse(); return message; }, }; -function createBaseMsgVoteWeighted() { +function createBaseCompressedBatchProof() { return { - proposalId: helpers_1.Long.UZERO, - voter: "", - options: [], + entries: [], + lookupInners: [], }; } -exports.MsgVoteWeighted = { - encode(message, writer = _m0.Writer.create()) { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); - } - if (message.voter !== "") { - writer.uint32(18).string(message.voter); +exports.CompressedBatchProof = { + typeUrl: "/cosmos.ics23.v1.CompressedBatchProof", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.entries) { + exports.CompressedBatchEntry.encode(v, writer.uint32(10).fork()).ldelim(); } - for (const v of message.options) { - gov_1.WeightedVoteOption.encode(v, writer.uint32(26).fork()).ldelim(); + for (const v of message.lookupInners) { + exports.InnerOp.encode(v, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgVoteWeighted(); + const message = createBaseCompressedBatchProof(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.proposalId = reader.uint64(); + message.entries.push(exports.CompressedBatchEntry.decode(reader, reader.uint32())); break; case 2: - message.voter = reader.string(); - break; - case 3: - message.options.push(gov_1.WeightedVoteOption.decode(reader, reader.uint32())); + message.lookupInners.push(exports.InnerOp.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -74896,51 +70531,66 @@ exports.MsgVoteWeighted = { return message; }, fromJSON(object) { - return { - proposalId: (0, helpers_1.isSet)(object.proposalId) ? helpers_1.Long.fromValue(object.proposalId) : helpers_1.Long.UZERO, - voter: (0, helpers_1.isSet)(object.voter) ? String(object.voter) : "", - options: Array.isArray(object?.options) - ? object.options.map((e) => gov_1.WeightedVoteOption.fromJSON(e)) - : [], - }; + const obj = createBaseCompressedBatchProof(); + if (Array.isArray(object?.entries)) + obj.entries = object.entries.map((e) => exports.CompressedBatchEntry.fromJSON(e)); + if (Array.isArray(object?.lookupInners)) + obj.lookupInners = object.lookupInners.map((e) => exports.InnerOp.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - message.proposalId !== undefined && (obj.proposalId = (message.proposalId || helpers_1.Long.UZERO).toString()); - message.voter !== undefined && (obj.voter = message.voter); - if (message.options) { - obj.options = message.options.map((e) => (e ? gov_1.WeightedVoteOption.toJSON(e) : undefined)); + if (message.entries) { + obj.entries = message.entries.map((e) => (e ? exports.CompressedBatchEntry.toJSON(e) : undefined)); } else { - obj.options = []; + obj.entries = []; + } + if (message.lookupInners) { + obj.lookupInners = message.lookupInners.map((e) => (e ? exports.InnerOp.toJSON(e) : undefined)); + } + else { + obj.lookupInners = []; } return obj; }, fromPartial(object) { - const message = createBaseMsgVoteWeighted(); - message.proposalId = - object.proposalId !== undefined && object.proposalId !== null - ? helpers_1.Long.fromValue(object.proposalId) - : helpers_1.Long.UZERO; - message.voter = object.voter ?? ""; - message.options = object.options?.map((e) => gov_1.WeightedVoteOption.fromPartial(e)) || []; + const message = createBaseCompressedBatchProof(); + message.entries = object.entries?.map((e) => exports.CompressedBatchEntry.fromPartial(e)) || []; + message.lookupInners = object.lookupInners?.map((e) => exports.InnerOp.fromPartial(e)) || []; return message; }, }; -function createBaseMsgVoteWeightedResponse() { - return {}; +function createBaseCompressedBatchEntry() { + return { + exist: undefined, + nonexist: undefined, + }; } -exports.MsgVoteWeightedResponse = { - encode(_, writer = _m0.Writer.create()) { +exports.CompressedBatchEntry = { + typeUrl: "/cosmos.ics23.v1.CompressedBatchEntry", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.exist !== undefined) { + exports.CompressedExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim(); + } + if (message.nonexist !== undefined) { + exports.CompressedNonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim(); + } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgVoteWeightedResponse(); + const message = createBaseCompressedBatchEntry(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.exist = exports.CompressedExistenceProof.decode(reader, reader.uint32()); + break; + case 2: + message.nonexist = exports.CompressedNonExistenceProof.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -74948,53 +70598,86 @@ exports.MsgVoteWeightedResponse = { } return message; }, - fromJSON(_) { - return {}; + fromJSON(object) { + const obj = createBaseCompressedBatchEntry(); + if ((0, helpers_1.isSet)(object.exist)) + obj.exist = exports.CompressedExistenceProof.fromJSON(object.exist); + if ((0, helpers_1.isSet)(object.nonexist)) + obj.nonexist = exports.CompressedNonExistenceProof.fromJSON(object.nonexist); + return obj; }, - toJSON(_) { + toJSON(message) { const obj = {}; + message.exist !== undefined && + (obj.exist = message.exist ? exports.CompressedExistenceProof.toJSON(message.exist) : undefined); + message.nonexist !== undefined && + (obj.nonexist = message.nonexist ? exports.CompressedNonExistenceProof.toJSON(message.nonexist) : undefined); return obj; }, - fromPartial(_) { - const message = createBaseMsgVoteWeightedResponse(); + fromPartial(object) { + const message = createBaseCompressedBatchEntry(); + if (object.exist !== undefined && object.exist !== null) { + message.exist = exports.CompressedExistenceProof.fromPartial(object.exist); + } + if (object.nonexist !== undefined && object.nonexist !== null) { + message.nonexist = exports.CompressedNonExistenceProof.fromPartial(object.nonexist); + } return message; }, }; -function createBaseMsgDeposit() { +function createBaseCompressedExistenceProof() { return { - proposalId: helpers_1.Long.UZERO, - depositor: "", - amount: [], + key: new Uint8Array(), + value: new Uint8Array(), + leaf: undefined, + path: [], }; } -exports.MsgDeposit = { - encode(message, writer = _m0.Writer.create()) { - if (!message.proposalId.isZero()) { - writer.uint32(8).uint64(message.proposalId); +exports.CompressedExistenceProof = { + typeUrl: "/cosmos.ics23.v1.CompressedExistenceProof", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.key.length !== 0) { + writer.uint32(10).bytes(message.key); } - if (message.depositor !== "") { - writer.uint32(18).string(message.depositor); + if (message.value.length !== 0) { + writer.uint32(18).bytes(message.value); } - for (const v of message.amount) { - coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim(); + if (message.leaf !== undefined) { + exports.LeafOp.encode(message.leaf, writer.uint32(26).fork()).ldelim(); + } + writer.uint32(34).fork(); + for (const v of message.path) { + writer.int32(v); } + writer.ldelim(); return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgDeposit(); + const message = createBaseCompressedExistenceProof(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.proposalId = reader.uint64(); + message.key = reader.bytes(); break; case 2: - message.depositor = reader.string(); + message.value = reader.bytes(); break; case 3: - message.amount.push(coin_1.Coin.decode(reader, reader.uint32())); + message.leaf = exports.LeafOp.decode(reader, reader.uint32()); + break; + case 4: + if ((tag & 7) === 2) { + const end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) { + message.path.push(reader.int32()); + } + } + else { + message.path.push(reader.int32()); + } break; default: reader.skipType(tag & 7); @@ -75004,49 +70687,80 @@ exports.MsgDeposit = { return message; }, fromJSON(object) { - return { - proposalId: (0, helpers_1.isSet)(object.proposalId) ? helpers_1.Long.fromValue(object.proposalId) : helpers_1.Long.UZERO, - depositor: (0, helpers_1.isSet)(object.depositor) ? String(object.depositor) : "", - amount: Array.isArray(object?.amount) ? object.amount.map((e) => coin_1.Coin.fromJSON(e)) : [], - }; + const obj = createBaseCompressedExistenceProof(); + if ((0, helpers_1.isSet)(object.key)) + obj.key = (0, helpers_1.bytesFromBase64)(object.key); + if ((0, helpers_1.isSet)(object.value)) + obj.value = (0, helpers_1.bytesFromBase64)(object.value); + if ((0, helpers_1.isSet)(object.leaf)) + obj.leaf = exports.LeafOp.fromJSON(object.leaf); + if (Array.isArray(object?.path)) + obj.path = object.path.map((e) => Number(e)); + return obj; }, toJSON(message) { const obj = {}; - message.proposalId !== undefined && (obj.proposalId = (message.proposalId || helpers_1.Long.UZERO).toString()); - message.depositor !== undefined && (obj.depositor = message.depositor); - if (message.amount) { - obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + message.key !== undefined && + (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array())); + message.value !== undefined && + (obj.value = (0, helpers_1.base64FromBytes)(message.value !== undefined ? message.value : new Uint8Array())); + message.leaf !== undefined && (obj.leaf = message.leaf ? exports.LeafOp.toJSON(message.leaf) : undefined); + if (message.path) { + obj.path = message.path.map((e) => Math.round(e)); } else { - obj.amount = []; + obj.path = []; } return obj; }, fromPartial(object) { - const message = createBaseMsgDeposit(); - message.proposalId = - object.proposalId !== undefined && object.proposalId !== null - ? helpers_1.Long.fromValue(object.proposalId) - : helpers_1.Long.UZERO; - message.depositor = object.depositor ?? ""; - message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || []; + const message = createBaseCompressedExistenceProof(); + message.key = object.key ?? new Uint8Array(); + message.value = object.value ?? new Uint8Array(); + if (object.leaf !== undefined && object.leaf !== null) { + message.leaf = exports.LeafOp.fromPartial(object.leaf); + } + message.path = object.path?.map((e) => e) || []; return message; }, }; -function createBaseMsgDepositResponse() { - return {}; +function createBaseCompressedNonExistenceProof() { + return { + key: new Uint8Array(), + left: undefined, + right: undefined, + }; } -exports.MsgDepositResponse = { - encode(_, writer = _m0.Writer.create()) { +exports.CompressedNonExistenceProof = { + typeUrl: "/cosmos.ics23.v1.CompressedNonExistenceProof", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.key.length !== 0) { + writer.uint32(10).bytes(message.key); + } + if (message.left !== undefined) { + exports.CompressedExistenceProof.encode(message.left, writer.uint32(18).fork()).ldelim(); + } + if (message.right !== undefined) { + exports.CompressedExistenceProof.encode(message.right, writer.uint32(26).fork()).ldelim(); + } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgDepositResponse(); + const message = createBaseCompressedNonExistenceProof(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.key = reader.bytes(); + break; + case 2: + message.left = exports.CompressedExistenceProof.decode(reader, reader.uint32()); + break; + case 3: + message.right = exports.CompressedExistenceProof.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -75054,49 +70768,39 @@ exports.MsgDepositResponse = { } return message; }, - fromJSON(_) { - return {}; + fromJSON(object) { + const obj = createBaseCompressedNonExistenceProof(); + if ((0, helpers_1.isSet)(object.key)) + obj.key = (0, helpers_1.bytesFromBase64)(object.key); + if ((0, helpers_1.isSet)(object.left)) + obj.left = exports.CompressedExistenceProof.fromJSON(object.left); + if ((0, helpers_1.isSet)(object.right)) + obj.right = exports.CompressedExistenceProof.fromJSON(object.right); + return obj; }, - toJSON(_) { + toJSON(message) { const obj = {}; + message.key !== undefined && + (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array())); + message.left !== undefined && + (obj.left = message.left ? exports.CompressedExistenceProof.toJSON(message.left) : undefined); + message.right !== undefined && + (obj.right = message.right ? exports.CompressedExistenceProof.toJSON(message.right) : undefined); return obj; }, - fromPartial(_) { - const message = createBaseMsgDepositResponse(); + fromPartial(object) { + const message = createBaseCompressedNonExistenceProof(); + message.key = object.key ?? new Uint8Array(); + if (object.left !== undefined && object.left !== null) { + message.left = exports.CompressedExistenceProof.fromPartial(object.left); + } + if (object.right !== undefined && object.right !== null) { + message.right = exports.CompressedExistenceProof.fromPartial(object.right); + } return message; }, }; -class MsgClientImpl { - constructor(rpc) { - this.rpc = rpc; - this.SubmitProposal = this.SubmitProposal.bind(this); - this.Vote = this.Vote.bind(this); - this.VoteWeighted = this.VoteWeighted.bind(this); - this.Deposit = this.Deposit.bind(this); - } - SubmitProposal(request) { - const data = exports.MsgSubmitProposal.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Msg", "SubmitProposal", data); - return promise.then((data) => exports.MsgSubmitProposalResponse.decode(new _m0.Reader(data))); - } - Vote(request) { - const data = exports.MsgVote.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Msg", "Vote", data); - return promise.then((data) => exports.MsgVoteResponse.decode(new _m0.Reader(data))); - } - VoteWeighted(request) { - const data = exports.MsgVoteWeighted.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Msg", "VoteWeighted", data); - return promise.then((data) => exports.MsgVoteWeightedResponse.decode(new _m0.Reader(data))); - } - Deposit(request) { - const data = exports.MsgDeposit.encode(request).finish(); - const promise = this.rpc.request("cosmos.gov.v1beta1.Msg", "Deposit", data); - return promise.then((data) => exports.MsgDepositResponse.decode(new _m0.Reader(data))); - } -} -exports.MsgClientImpl = MsgClientImpl; -//# sourceMappingURL=tx.js.map +//# sourceMappingURL=proofs.js.map /***/ }), @@ -75108,33 +70812,10 @@ exports.MsgClientImpl = MsgClientImpl; "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Params = exports.Minter = exports.protobufPackage = void 0; /* eslint-disable */ -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "cosmos.mint.v1beta1"; function createBaseMinter() { @@ -75144,7 +70825,8 @@ function createBaseMinter() { }; } exports.Minter = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.mint.v1beta1.Minter", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.inflation !== "") { writer.uint32(10).string(message.inflation); } @@ -75154,7 +70836,7 @@ exports.Minter = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMinter(); while (reader.pos < end) { @@ -75174,10 +70856,12 @@ exports.Minter = { return message; }, fromJSON(object) { - return { - inflation: (0, helpers_1.isSet)(object.inflation) ? String(object.inflation) : "", - annualProvisions: (0, helpers_1.isSet)(object.annualProvisions) ? String(object.annualProvisions) : "", - }; + const obj = createBaseMinter(); + if ((0, helpers_1.isSet)(object.inflation)) + obj.inflation = String(object.inflation); + if ((0, helpers_1.isSet)(object.annualProvisions)) + obj.annualProvisions = String(object.annualProvisions); + return obj; }, toJSON(message) { const obj = {}; @@ -75199,11 +70883,12 @@ function createBaseParams() { inflationMax: "", inflationMin: "", goalBonded: "", - blocksPerYear: helpers_1.Long.UZERO, + blocksPerYear: BigInt(0), }; } exports.Params = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.mint.v1beta1.Params", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.mintDenom !== "") { writer.uint32(10).string(message.mintDenom); } @@ -75219,13 +70904,13 @@ exports.Params = { if (message.goalBonded !== "") { writer.uint32(42).string(message.goalBonded); } - if (!message.blocksPerYear.isZero()) { + if (message.blocksPerYear !== BigInt(0)) { writer.uint32(48).uint64(message.blocksPerYear); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseParams(); while (reader.pos < end) { @@ -75257,14 +70942,20 @@ exports.Params = { return message; }, fromJSON(object) { - return { - mintDenom: (0, helpers_1.isSet)(object.mintDenom) ? String(object.mintDenom) : "", - inflationRateChange: (0, helpers_1.isSet)(object.inflationRateChange) ? String(object.inflationRateChange) : "", - inflationMax: (0, helpers_1.isSet)(object.inflationMax) ? String(object.inflationMax) : "", - inflationMin: (0, helpers_1.isSet)(object.inflationMin) ? String(object.inflationMin) : "", - goalBonded: (0, helpers_1.isSet)(object.goalBonded) ? String(object.goalBonded) : "", - blocksPerYear: (0, helpers_1.isSet)(object.blocksPerYear) ? helpers_1.Long.fromValue(object.blocksPerYear) : helpers_1.Long.UZERO, - }; + const obj = createBaseParams(); + if ((0, helpers_1.isSet)(object.mintDenom)) + obj.mintDenom = String(object.mintDenom); + if ((0, helpers_1.isSet)(object.inflationRateChange)) + obj.inflationRateChange = String(object.inflationRateChange); + if ((0, helpers_1.isSet)(object.inflationMax)) + obj.inflationMax = String(object.inflationMax); + if ((0, helpers_1.isSet)(object.inflationMin)) + obj.inflationMin = String(object.inflationMin); + if ((0, helpers_1.isSet)(object.goalBonded)) + obj.goalBonded = String(object.goalBonded); + if ((0, helpers_1.isSet)(object.blocksPerYear)) + obj.blocksPerYear = BigInt(object.blocksPerYear.toString()); + return obj; }, toJSON(message) { const obj = {}; @@ -75274,7 +70965,7 @@ exports.Params = { message.inflationMin !== undefined && (obj.inflationMin = message.inflationMin); message.goalBonded !== undefined && (obj.goalBonded = message.goalBonded); message.blocksPerYear !== undefined && - (obj.blocksPerYear = (message.blocksPerYear || helpers_1.Long.UZERO).toString()); + (obj.blocksPerYear = (message.blocksPerYear || BigInt(0)).toString()); return obj; }, fromPartial(object) { @@ -75284,10 +70975,9 @@ exports.Params = { message.inflationMax = object.inflationMax ?? ""; message.inflationMin = object.inflationMin ?? ""; message.goalBonded = object.goalBonded ?? ""; - message.blocksPerYear = - object.blocksPerYear !== undefined && object.blocksPerYear !== null - ? helpers_1.Long.fromValue(object.blocksPerYear) - : helpers_1.Long.UZERO; + if (object.blocksPerYear !== undefined && object.blocksPerYear !== null) { + message.blocksPerYear = BigInt(object.blocksPerYear.toString()); + } return message; }, }; @@ -75303,45 +70993,23 @@ exports.Params = { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.QueryClientImpl = exports.QueryAnnualProvisionsResponse = exports.QueryAnnualProvisionsRequest = exports.QueryInflationResponse = exports.QueryInflationRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.protobufPackage = void 0; /* eslint-disable */ const mint_1 = __webpack_require__(/*! ./mint */ "./node_modules/cosmjs-types/cosmos/mint/v1beta1/mint.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "cosmos.mint.v1beta1"; function createBaseQueryParamsRequest() { return {}; } exports.QueryParamsRequest = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.mint.v1beta1.QueryParamsRequest", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryParamsRequest(); while (reader.pos < end) { @@ -75355,7 +71023,8 @@ exports.QueryParamsRequest = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseQueryParamsRequest(); + return obj; }, toJSON(_) { const obj = {}; @@ -75368,18 +71037,19 @@ exports.QueryParamsRequest = { }; function createBaseQueryParamsResponse() { return { - params: undefined, + params: mint_1.Params.fromPartial({}), }; } exports.QueryParamsResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.mint.v1beta1.QueryParamsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.params !== undefined) { mint_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryParamsResponse(); while (reader.pos < end) { @@ -75396,9 +71066,10 @@ exports.QueryParamsResponse = { return message; }, fromJSON(object) { - return { - params: (0, helpers_1.isSet)(object.params) ? mint_1.Params.fromJSON(object.params) : undefined, - }; + const obj = createBaseQueryParamsResponse(); + if ((0, helpers_1.isSet)(object.params)) + obj.params = mint_1.Params.fromJSON(object.params); + return obj; }, toJSON(message) { const obj = {}; @@ -75407,8 +71078,9 @@ exports.QueryParamsResponse = { }, fromPartial(object) { const message = createBaseQueryParamsResponse(); - message.params = - object.params !== undefined && object.params !== null ? mint_1.Params.fromPartial(object.params) : undefined; + if (object.params !== undefined && object.params !== null) { + message.params = mint_1.Params.fromPartial(object.params); + } return message; }, }; @@ -75416,11 +71088,12 @@ function createBaseQueryInflationRequest() { return {}; } exports.QueryInflationRequest = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.mint.v1beta1.QueryInflationRequest", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryInflationRequest(); while (reader.pos < end) { @@ -75434,7 +71107,8 @@ exports.QueryInflationRequest = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseQueryInflationRequest(); + return obj; }, toJSON(_) { const obj = {}; @@ -75451,14 +71125,15 @@ function createBaseQueryInflationResponse() { }; } exports.QueryInflationResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.mint.v1beta1.QueryInflationResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.inflation.length !== 0) { writer.uint32(10).bytes(message.inflation); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryInflationResponse(); while (reader.pos < end) { @@ -75475,9 +71150,10 @@ exports.QueryInflationResponse = { return message; }, fromJSON(object) { - return { - inflation: (0, helpers_1.isSet)(object.inflation) ? (0, helpers_1.bytesFromBase64)(object.inflation) : new Uint8Array(), - }; + const obj = createBaseQueryInflationResponse(); + if ((0, helpers_1.isSet)(object.inflation)) + obj.inflation = (0, helpers_1.bytesFromBase64)(object.inflation); + return obj; }, toJSON(message) { const obj = {}; @@ -75495,11 +71171,12 @@ function createBaseQueryAnnualProvisionsRequest() { return {}; } exports.QueryAnnualProvisionsRequest = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.mint.v1beta1.QueryAnnualProvisionsRequest", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryAnnualProvisionsRequest(); while (reader.pos < end) { @@ -75513,7 +71190,8 @@ exports.QueryAnnualProvisionsRequest = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseQueryAnnualProvisionsRequest(); + return obj; }, toJSON(_) { const obj = {}; @@ -75530,14 +71208,15 @@ function createBaseQueryAnnualProvisionsResponse() { }; } exports.QueryAnnualProvisionsResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.mint.v1beta1.QueryAnnualProvisionsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.annualProvisions.length !== 0) { writer.uint32(10).bytes(message.annualProvisions); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryAnnualProvisionsResponse(); while (reader.pos < end) { @@ -75554,11 +71233,10 @@ exports.QueryAnnualProvisionsResponse = { return message; }, fromJSON(object) { - return { - annualProvisions: (0, helpers_1.isSet)(object.annualProvisions) - ? (0, helpers_1.bytesFromBase64)(object.annualProvisions) - : new Uint8Array(), - }; + const obj = createBaseQueryAnnualProvisionsResponse(); + if ((0, helpers_1.isSet)(object.annualProvisions)) + obj.annualProvisions = (0, helpers_1.bytesFromBase64)(object.annualProvisions); + return obj; }, toJSON(message) { const obj = {}; @@ -75582,17 +71260,17 @@ class QueryClientImpl { Params(request = {}) { const data = exports.QueryParamsRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.mint.v1beta1.Query", "Params", data); - return promise.then((data) => exports.QueryParamsResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data))); } Inflation(request = {}) { const data = exports.QueryInflationRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.mint.v1beta1.Query", "Inflation", data); - return promise.then((data) => exports.QueryInflationResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryInflationResponse.decode(new binary_1.BinaryReader(data))); } AnnualProvisions(request = {}) { const data = exports.QueryAnnualProvisionsRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.mint.v1beta1.Query", "AnnualProvisions", data); - return promise.then((data) => exports.QueryAnnualProvisionsResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryAnnualProvisionsResponse.decode(new binary_1.BinaryReader(data))); } } exports.QueryClientImpl = QueryClientImpl; @@ -75608,46 +71286,24 @@ exports.QueryClientImpl = QueryClientImpl; "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.QueryClientImpl = exports.QuerySigningInfosResponse = exports.QuerySigningInfosRequest = exports.QuerySigningInfoResponse = exports.QuerySigningInfoRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.protobufPackage = void 0; /* eslint-disable */ const pagination_1 = __webpack_require__(/*! ../../base/query/v1beta1/pagination */ "./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js"); const slashing_1 = __webpack_require__(/*! ./slashing */ "./node_modules/cosmjs-types/cosmos/slashing/v1beta1/slashing.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "cosmos.slashing.v1beta1"; function createBaseQueryParamsRequest() { return {}; } exports.QueryParamsRequest = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.slashing.v1beta1.QueryParamsRequest", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryParamsRequest(); while (reader.pos < end) { @@ -75661,7 +71317,8 @@ exports.QueryParamsRequest = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseQueryParamsRequest(); + return obj; }, toJSON(_) { const obj = {}; @@ -75674,18 +71331,19 @@ exports.QueryParamsRequest = { }; function createBaseQueryParamsResponse() { return { - params: undefined, + params: slashing_1.Params.fromPartial({}), }; } exports.QueryParamsResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.slashing.v1beta1.QueryParamsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.params !== undefined) { slashing_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryParamsResponse(); while (reader.pos < end) { @@ -75702,9 +71360,10 @@ exports.QueryParamsResponse = { return message; }, fromJSON(object) { - return { - params: (0, helpers_1.isSet)(object.params) ? slashing_1.Params.fromJSON(object.params) : undefined, - }; + const obj = createBaseQueryParamsResponse(); + if ((0, helpers_1.isSet)(object.params)) + obj.params = slashing_1.Params.fromJSON(object.params); + return obj; }, toJSON(message) { const obj = {}; @@ -75713,8 +71372,9 @@ exports.QueryParamsResponse = { }, fromPartial(object) { const message = createBaseQueryParamsResponse(); - message.params = - object.params !== undefined && object.params !== null ? slashing_1.Params.fromPartial(object.params) : undefined; + if (object.params !== undefined && object.params !== null) { + message.params = slashing_1.Params.fromPartial(object.params); + } return message; }, }; @@ -75724,14 +71384,15 @@ function createBaseQuerySigningInfoRequest() { }; } exports.QuerySigningInfoRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.slashing.v1beta1.QuerySigningInfoRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.consAddress !== "") { writer.uint32(10).string(message.consAddress); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQuerySigningInfoRequest(); while (reader.pos < end) { @@ -75748,9 +71409,10 @@ exports.QuerySigningInfoRequest = { return message; }, fromJSON(object) { - return { - consAddress: (0, helpers_1.isSet)(object.consAddress) ? String(object.consAddress) : "", - }; + const obj = createBaseQuerySigningInfoRequest(); + if ((0, helpers_1.isSet)(object.consAddress)) + obj.consAddress = String(object.consAddress); + return obj; }, toJSON(message) { const obj = {}; @@ -75765,18 +71427,19 @@ exports.QuerySigningInfoRequest = { }; function createBaseQuerySigningInfoResponse() { return { - valSigningInfo: undefined, + valSigningInfo: slashing_1.ValidatorSigningInfo.fromPartial({}), }; } exports.QuerySigningInfoResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.slashing.v1beta1.QuerySigningInfoResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.valSigningInfo !== undefined) { slashing_1.ValidatorSigningInfo.encode(message.valSigningInfo, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQuerySigningInfoResponse(); while (reader.pos < end) { @@ -75793,11 +71456,10 @@ exports.QuerySigningInfoResponse = { return message; }, fromJSON(object) { - return { - valSigningInfo: (0, helpers_1.isSet)(object.valSigningInfo) - ? slashing_1.ValidatorSigningInfo.fromJSON(object.valSigningInfo) - : undefined, - }; + const obj = createBaseQuerySigningInfoResponse(); + if ((0, helpers_1.isSet)(object.valSigningInfo)) + obj.valSigningInfo = slashing_1.ValidatorSigningInfo.fromJSON(object.valSigningInfo); + return obj; }, toJSON(message) { const obj = {}; @@ -75809,10 +71471,9 @@ exports.QuerySigningInfoResponse = { }, fromPartial(object) { const message = createBaseQuerySigningInfoResponse(); - message.valSigningInfo = - object.valSigningInfo !== undefined && object.valSigningInfo !== null - ? slashing_1.ValidatorSigningInfo.fromPartial(object.valSigningInfo) - : undefined; + if (object.valSigningInfo !== undefined && object.valSigningInfo !== null) { + message.valSigningInfo = slashing_1.ValidatorSigningInfo.fromPartial(object.valSigningInfo); + } return message; }, }; @@ -75822,14 +71483,15 @@ function createBaseQuerySigningInfosRequest() { }; } exports.QuerySigningInfosRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.slashing.v1beta1.QuerySigningInfosRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.pagination !== undefined) { pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQuerySigningInfosRequest(); while (reader.pos < end) { @@ -75846,9 +71508,10 @@ exports.QuerySigningInfosRequest = { return message; }, fromJSON(object) { - return { - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQuerySigningInfosRequest(); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -75858,10 +71521,9 @@ exports.QuerySigningInfosRequest = { }, fromPartial(object) { const message = createBaseQuerySigningInfosRequest(); - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } return message; }, }; @@ -75872,7 +71534,8 @@ function createBaseQuerySigningInfosResponse() { }; } exports.QuerySigningInfosResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.slashing.v1beta1.QuerySigningInfosResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.info) { slashing_1.ValidatorSigningInfo.encode(v, writer.uint32(10).fork()).ldelim(); } @@ -75882,7 +71545,7 @@ exports.QuerySigningInfosResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQuerySigningInfosResponse(); while (reader.pos < end) { @@ -75902,10 +71565,12 @@ exports.QuerySigningInfosResponse = { return message; }, fromJSON(object) { - return { - info: Array.isArray(object?.info) ? object.info.map((e) => slashing_1.ValidatorSigningInfo.fromJSON(e)) : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQuerySigningInfosResponse(); + if (Array.isArray(object?.info)) + obj.info = object.info.map((e) => slashing_1.ValidatorSigningInfo.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -75922,10 +71587,9 @@ exports.QuerySigningInfosResponse = { fromPartial(object) { const message = createBaseQuerySigningInfosResponse(); message.info = object.info?.map((e) => slashing_1.ValidatorSigningInfo.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } return message; }, }; @@ -75939,19 +71603,19 @@ class QueryClientImpl { Params(request = {}) { const data = exports.QueryParamsRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.slashing.v1beta1.Query", "Params", data); - return promise.then((data) => exports.QueryParamsResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data))); } SigningInfo(request) { const data = exports.QuerySigningInfoRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.slashing.v1beta1.Query", "SigningInfo", data); - return promise.then((data) => exports.QuerySigningInfoResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QuerySigningInfoResponse.decode(new binary_1.BinaryReader(data))); } SigningInfos(request = { - pagination: undefined, + pagination: pagination_1.PageRequest.fromPartial({}), }) { const data = exports.QuerySigningInfosRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.slashing.v1beta1.Query", "SigningInfos", data); - return promise.then((data) => exports.QuerySigningInfosResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QuerySigningInfosResponse.decode(new binary_1.BinaryReader(data))); } } exports.QueryClientImpl = QueryClientImpl; @@ -75967,56 +71631,34 @@ exports.QueryClientImpl = QueryClientImpl; "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Params = exports.ValidatorSigningInfo = exports.protobufPackage = void 0; /* eslint-disable */ const timestamp_1 = __webpack_require__(/*! ../../../google/protobuf/timestamp */ "./node_modules/cosmjs-types/google/protobuf/timestamp.js"); const duration_1 = __webpack_require__(/*! ../../../google/protobuf/duration */ "./node_modules/cosmjs-types/google/protobuf/duration.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); exports.protobufPackage = "cosmos.slashing.v1beta1"; function createBaseValidatorSigningInfo() { return { address: "", - startHeight: helpers_1.Long.ZERO, - indexOffset: helpers_1.Long.ZERO, - jailedUntil: undefined, + startHeight: BigInt(0), + indexOffset: BigInt(0), + jailedUntil: timestamp_1.Timestamp.fromPartial({}), tombstoned: false, - missedBlocksCounter: helpers_1.Long.ZERO, + missedBlocksCounter: BigInt(0), }; } exports.ValidatorSigningInfo = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.slashing.v1beta1.ValidatorSigningInfo", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.address !== "") { writer.uint32(10).string(message.address); } - if (!message.startHeight.isZero()) { + if (message.startHeight !== BigInt(0)) { writer.uint32(16).int64(message.startHeight); } - if (!message.indexOffset.isZero()) { + if (message.indexOffset !== BigInt(0)) { writer.uint32(24).int64(message.indexOffset); } if (message.jailedUntil !== undefined) { @@ -76025,13 +71667,13 @@ exports.ValidatorSigningInfo = { if (message.tombstoned === true) { writer.uint32(40).bool(message.tombstoned); } - if (!message.missedBlocksCounter.isZero()) { + if (message.missedBlocksCounter !== BigInt(0)) { writer.uint32(48).int64(message.missedBlocksCounter); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseValidatorSigningInfo(); while (reader.pos < end) { @@ -76063,63 +71705,64 @@ exports.ValidatorSigningInfo = { return message; }, fromJSON(object) { - return { - address: (0, helpers_1.isSet)(object.address) ? String(object.address) : "", - startHeight: (0, helpers_1.isSet)(object.startHeight) ? helpers_1.Long.fromValue(object.startHeight) : helpers_1.Long.ZERO, - indexOffset: (0, helpers_1.isSet)(object.indexOffset) ? helpers_1.Long.fromValue(object.indexOffset) : helpers_1.Long.ZERO, - jailedUntil: (0, helpers_1.isSet)(object.jailedUntil) ? (0, helpers_1.fromJsonTimestamp)(object.jailedUntil) : undefined, - tombstoned: (0, helpers_1.isSet)(object.tombstoned) ? Boolean(object.tombstoned) : false, - missedBlocksCounter: (0, helpers_1.isSet)(object.missedBlocksCounter) - ? helpers_1.Long.fromValue(object.missedBlocksCounter) - : helpers_1.Long.ZERO, - }; + const obj = createBaseValidatorSigningInfo(); + if ((0, helpers_1.isSet)(object.address)) + obj.address = String(object.address); + if ((0, helpers_1.isSet)(object.startHeight)) + obj.startHeight = BigInt(object.startHeight.toString()); + if ((0, helpers_1.isSet)(object.indexOffset)) + obj.indexOffset = BigInt(object.indexOffset.toString()); + if ((0, helpers_1.isSet)(object.jailedUntil)) + obj.jailedUntil = (0, helpers_1.fromJsonTimestamp)(object.jailedUntil); + if ((0, helpers_1.isSet)(object.tombstoned)) + obj.tombstoned = Boolean(object.tombstoned); + if ((0, helpers_1.isSet)(object.missedBlocksCounter)) + obj.missedBlocksCounter = BigInt(object.missedBlocksCounter.toString()); + return obj; }, toJSON(message) { const obj = {}; message.address !== undefined && (obj.address = message.address); - message.startHeight !== undefined && (obj.startHeight = (message.startHeight || helpers_1.Long.ZERO).toString()); - message.indexOffset !== undefined && (obj.indexOffset = (message.indexOffset || helpers_1.Long.ZERO).toString()); + message.startHeight !== undefined && (obj.startHeight = (message.startHeight || BigInt(0)).toString()); + message.indexOffset !== undefined && (obj.indexOffset = (message.indexOffset || BigInt(0)).toString()); message.jailedUntil !== undefined && (obj.jailedUntil = (0, helpers_1.fromTimestamp)(message.jailedUntil).toISOString()); message.tombstoned !== undefined && (obj.tombstoned = message.tombstoned); message.missedBlocksCounter !== undefined && - (obj.missedBlocksCounter = (message.missedBlocksCounter || helpers_1.Long.ZERO).toString()); + (obj.missedBlocksCounter = (message.missedBlocksCounter || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseValidatorSigningInfo(); message.address = object.address ?? ""; - message.startHeight = - object.startHeight !== undefined && object.startHeight !== null - ? helpers_1.Long.fromValue(object.startHeight) - : helpers_1.Long.ZERO; - message.indexOffset = - object.indexOffset !== undefined && object.indexOffset !== null - ? helpers_1.Long.fromValue(object.indexOffset) - : helpers_1.Long.ZERO; - message.jailedUntil = - object.jailedUntil !== undefined && object.jailedUntil !== null - ? timestamp_1.Timestamp.fromPartial(object.jailedUntil) - : undefined; + if (object.startHeight !== undefined && object.startHeight !== null) { + message.startHeight = BigInt(object.startHeight.toString()); + } + if (object.indexOffset !== undefined && object.indexOffset !== null) { + message.indexOffset = BigInt(object.indexOffset.toString()); + } + if (object.jailedUntil !== undefined && object.jailedUntil !== null) { + message.jailedUntil = timestamp_1.Timestamp.fromPartial(object.jailedUntil); + } message.tombstoned = object.tombstoned ?? false; - message.missedBlocksCounter = - object.missedBlocksCounter !== undefined && object.missedBlocksCounter !== null - ? helpers_1.Long.fromValue(object.missedBlocksCounter) - : helpers_1.Long.ZERO; + if (object.missedBlocksCounter !== undefined && object.missedBlocksCounter !== null) { + message.missedBlocksCounter = BigInt(object.missedBlocksCounter.toString()); + } return message; }, }; function createBaseParams() { return { - signedBlocksWindow: helpers_1.Long.ZERO, + signedBlocksWindow: BigInt(0), minSignedPerWindow: new Uint8Array(), - downtimeJailDuration: undefined, + downtimeJailDuration: duration_1.Duration.fromPartial({}), slashFractionDoubleSign: new Uint8Array(), slashFractionDowntime: new Uint8Array(), }; } exports.Params = { - encode(message, writer = _m0.Writer.create()) { - if (!message.signedBlocksWindow.isZero()) { + typeUrl: "/cosmos.slashing.v1beta1.Params", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.signedBlocksWindow !== BigInt(0)) { writer.uint32(8).int64(message.signedBlocksWindow); } if (message.minSignedPerWindow.length !== 0) { @@ -76137,7 +71780,7 @@ exports.Params = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseParams(); while (reader.pos < end) { @@ -76166,28 +71809,23 @@ exports.Params = { return message; }, fromJSON(object) { - return { - signedBlocksWindow: (0, helpers_1.isSet)(object.signedBlocksWindow) - ? helpers_1.Long.fromValue(object.signedBlocksWindow) - : helpers_1.Long.ZERO, - minSignedPerWindow: (0, helpers_1.isSet)(object.minSignedPerWindow) - ? (0, helpers_1.bytesFromBase64)(object.minSignedPerWindow) - : new Uint8Array(), - downtimeJailDuration: (0, helpers_1.isSet)(object.downtimeJailDuration) - ? duration_1.Duration.fromJSON(object.downtimeJailDuration) - : undefined, - slashFractionDoubleSign: (0, helpers_1.isSet)(object.slashFractionDoubleSign) - ? (0, helpers_1.bytesFromBase64)(object.slashFractionDoubleSign) - : new Uint8Array(), - slashFractionDowntime: (0, helpers_1.isSet)(object.slashFractionDowntime) - ? (0, helpers_1.bytesFromBase64)(object.slashFractionDowntime) - : new Uint8Array(), - }; + const obj = createBaseParams(); + if ((0, helpers_1.isSet)(object.signedBlocksWindow)) + obj.signedBlocksWindow = BigInt(object.signedBlocksWindow.toString()); + if ((0, helpers_1.isSet)(object.minSignedPerWindow)) + obj.minSignedPerWindow = (0, helpers_1.bytesFromBase64)(object.minSignedPerWindow); + if ((0, helpers_1.isSet)(object.downtimeJailDuration)) + obj.downtimeJailDuration = duration_1.Duration.fromJSON(object.downtimeJailDuration); + if ((0, helpers_1.isSet)(object.slashFractionDoubleSign)) + obj.slashFractionDoubleSign = (0, helpers_1.bytesFromBase64)(object.slashFractionDoubleSign); + if ((0, helpers_1.isSet)(object.slashFractionDowntime)) + obj.slashFractionDowntime = (0, helpers_1.bytesFromBase64)(object.slashFractionDowntime); + return obj; }, toJSON(message) { const obj = {}; message.signedBlocksWindow !== undefined && - (obj.signedBlocksWindow = (message.signedBlocksWindow || helpers_1.Long.ZERO).toString()); + (obj.signedBlocksWindow = (message.signedBlocksWindow || BigInt(0)).toString()); message.minSignedPerWindow !== undefined && (obj.minSignedPerWindow = (0, helpers_1.base64FromBytes)(message.minSignedPerWindow !== undefined ? message.minSignedPerWindow : new Uint8Array())); message.downtimeJailDuration !== undefined && @@ -76202,15 +71840,13 @@ exports.Params = { }, fromPartial(object) { const message = createBaseParams(); - message.signedBlocksWindow = - object.signedBlocksWindow !== undefined && object.signedBlocksWindow !== null - ? helpers_1.Long.fromValue(object.signedBlocksWindow) - : helpers_1.Long.ZERO; + if (object.signedBlocksWindow !== undefined && object.signedBlocksWindow !== null) { + message.signedBlocksWindow = BigInt(object.signedBlocksWindow.toString()); + } message.minSignedPerWindow = object.minSignedPerWindow ?? new Uint8Array(); - message.downtimeJailDuration = - object.downtimeJailDuration !== undefined && object.downtimeJailDuration !== null - ? duration_1.Duration.fromPartial(object.downtimeJailDuration) - : undefined; + if (object.downtimeJailDuration !== undefined && object.downtimeJailDuration !== null) { + message.downtimeJailDuration = duration_1.Duration.fromPartial(object.downtimeJailDuration); + } message.slashFractionDoubleSign = object.slashFractionDoubleSign ?? new Uint8Array(); message.slashFractionDowntime = object.slashFractionDowntime ?? new Uint8Array(); return message; @@ -76228,35 +71864,12 @@ exports.Params = { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.QueryClientImpl = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryPoolResponse = exports.QueryPoolRequest = exports.QueryHistoricalInfoResponse = exports.QueryHistoricalInfoRequest = exports.QueryDelegatorValidatorResponse = exports.QueryDelegatorValidatorRequest = exports.QueryDelegatorValidatorsResponse = exports.QueryDelegatorValidatorsRequest = exports.QueryRedelegationsResponse = exports.QueryRedelegationsRequest = exports.QueryDelegatorUnbondingDelegationsResponse = exports.QueryDelegatorUnbondingDelegationsRequest = exports.QueryDelegatorDelegationsResponse = exports.QueryDelegatorDelegationsRequest = exports.QueryUnbondingDelegationResponse = exports.QueryUnbondingDelegationRequest = exports.QueryDelegationResponse = exports.QueryDelegationRequest = exports.QueryValidatorUnbondingDelegationsResponse = exports.QueryValidatorUnbondingDelegationsRequest = exports.QueryValidatorDelegationsResponse = exports.QueryValidatorDelegationsRequest = exports.QueryValidatorResponse = exports.QueryValidatorRequest = exports.QueryValidatorsResponse = exports.QueryValidatorsRequest = exports.protobufPackage = void 0; /* eslint-disable */ const pagination_1 = __webpack_require__(/*! ../../base/query/v1beta1/pagination */ "./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js"); const staking_1 = __webpack_require__(/*! ./staking */ "./node_modules/cosmjs-types/cosmos/staking/v1beta1/staking.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "cosmos.staking.v1beta1"; function createBaseQueryValidatorsRequest() { @@ -76266,7 +71879,8 @@ function createBaseQueryValidatorsRequest() { }; } exports.QueryValidatorsRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryValidatorsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.status !== "") { writer.uint32(10).string(message.status); } @@ -76276,7 +71890,7 @@ exports.QueryValidatorsRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryValidatorsRequest(); while (reader.pos < end) { @@ -76296,10 +71910,12 @@ exports.QueryValidatorsRequest = { return message; }, fromJSON(object) { - return { - status: (0, helpers_1.isSet)(object.status) ? String(object.status) : "", - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryValidatorsRequest(); + if ((0, helpers_1.isSet)(object.status)) + obj.status = String(object.status); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -76311,10 +71927,9 @@ exports.QueryValidatorsRequest = { fromPartial(object) { const message = createBaseQueryValidatorsRequest(); message.status = object.status ?? ""; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } return message; }, }; @@ -76325,7 +71940,8 @@ function createBaseQueryValidatorsResponse() { }; } exports.QueryValidatorsResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryValidatorsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.validators) { staking_1.Validator.encode(v, writer.uint32(10).fork()).ldelim(); } @@ -76335,7 +71951,7 @@ exports.QueryValidatorsResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryValidatorsResponse(); while (reader.pos < end) { @@ -76355,12 +71971,12 @@ exports.QueryValidatorsResponse = { return message; }, fromJSON(object) { - return { - validators: Array.isArray(object?.validators) - ? object.validators.map((e) => staking_1.Validator.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryValidatorsResponse(); + if (Array.isArray(object?.validators)) + obj.validators = object.validators.map((e) => staking_1.Validator.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -76377,10 +71993,9 @@ exports.QueryValidatorsResponse = { fromPartial(object) { const message = createBaseQueryValidatorsResponse(); message.validators = object.validators?.map((e) => staking_1.Validator.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } return message; }, }; @@ -76390,14 +72005,15 @@ function createBaseQueryValidatorRequest() { }; } exports.QueryValidatorRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryValidatorRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.validatorAddr !== "") { writer.uint32(10).string(message.validatorAddr); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryValidatorRequest(); while (reader.pos < end) { @@ -76414,9 +72030,10 @@ exports.QueryValidatorRequest = { return message; }, fromJSON(object) { - return { - validatorAddr: (0, helpers_1.isSet)(object.validatorAddr) ? String(object.validatorAddr) : "", - }; + const obj = createBaseQueryValidatorRequest(); + if ((0, helpers_1.isSet)(object.validatorAddr)) + obj.validatorAddr = String(object.validatorAddr); + return obj; }, toJSON(message) { const obj = {}; @@ -76431,18 +72048,19 @@ exports.QueryValidatorRequest = { }; function createBaseQueryValidatorResponse() { return { - validator: undefined, + validator: staking_1.Validator.fromPartial({}), }; } exports.QueryValidatorResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryValidatorResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.validator !== undefined) { staking_1.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryValidatorResponse(); while (reader.pos < end) { @@ -76459,9 +72077,10 @@ exports.QueryValidatorResponse = { return message; }, fromJSON(object) { - return { - validator: (0, helpers_1.isSet)(object.validator) ? staking_1.Validator.fromJSON(object.validator) : undefined, - }; + const obj = createBaseQueryValidatorResponse(); + if ((0, helpers_1.isSet)(object.validator)) + obj.validator = staking_1.Validator.fromJSON(object.validator); + return obj; }, toJSON(message) { const obj = {}; @@ -76471,10 +72090,9 @@ exports.QueryValidatorResponse = { }, fromPartial(object) { const message = createBaseQueryValidatorResponse(); - message.validator = - object.validator !== undefined && object.validator !== null - ? staking_1.Validator.fromPartial(object.validator) - : undefined; + if (object.validator !== undefined && object.validator !== null) { + message.validator = staking_1.Validator.fromPartial(object.validator); + } return message; }, }; @@ -76485,7 +72103,8 @@ function createBaseQueryValidatorDelegationsRequest() { }; } exports.QueryValidatorDelegationsRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryValidatorDelegationsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.validatorAddr !== "") { writer.uint32(10).string(message.validatorAddr); } @@ -76495,7 +72114,7 @@ exports.QueryValidatorDelegationsRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryValidatorDelegationsRequest(); while (reader.pos < end) { @@ -76515,10 +72134,12 @@ exports.QueryValidatorDelegationsRequest = { return message; }, fromJSON(object) { - return { - validatorAddr: (0, helpers_1.isSet)(object.validatorAddr) ? String(object.validatorAddr) : "", - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryValidatorDelegationsRequest(); + if ((0, helpers_1.isSet)(object.validatorAddr)) + obj.validatorAddr = String(object.validatorAddr); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -76530,10 +72151,9 @@ exports.QueryValidatorDelegationsRequest = { fromPartial(object) { const message = createBaseQueryValidatorDelegationsRequest(); message.validatorAddr = object.validatorAddr ?? ""; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } return message; }, }; @@ -76544,7 +72164,8 @@ function createBaseQueryValidatorDelegationsResponse() { }; } exports.QueryValidatorDelegationsResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryValidatorDelegationsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.delegationResponses) { staking_1.DelegationResponse.encode(v, writer.uint32(10).fork()).ldelim(); } @@ -76554,7 +72175,7 @@ exports.QueryValidatorDelegationsResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryValidatorDelegationsResponse(); while (reader.pos < end) { @@ -76574,12 +72195,12 @@ exports.QueryValidatorDelegationsResponse = { return message; }, fromJSON(object) { - return { - delegationResponses: Array.isArray(object?.delegationResponses) - ? object.delegationResponses.map((e) => staking_1.DelegationResponse.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryValidatorDelegationsResponse(); + if (Array.isArray(object?.delegationResponses)) + obj.delegationResponses = object.delegationResponses.map((e) => staking_1.DelegationResponse.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -76597,10 +72218,9 @@ exports.QueryValidatorDelegationsResponse = { const message = createBaseQueryValidatorDelegationsResponse(); message.delegationResponses = object.delegationResponses?.map((e) => staking_1.DelegationResponse.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } return message; }, }; @@ -76611,7 +72231,8 @@ function createBaseQueryValidatorUnbondingDelegationsRequest() { }; } exports.QueryValidatorUnbondingDelegationsRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.validatorAddr !== "") { writer.uint32(10).string(message.validatorAddr); } @@ -76621,7 +72242,7 @@ exports.QueryValidatorUnbondingDelegationsRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryValidatorUnbondingDelegationsRequest(); while (reader.pos < end) { @@ -76641,10 +72262,12 @@ exports.QueryValidatorUnbondingDelegationsRequest = { return message; }, fromJSON(object) { - return { - validatorAddr: (0, helpers_1.isSet)(object.validatorAddr) ? String(object.validatorAddr) : "", - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryValidatorUnbondingDelegationsRequest(); + if ((0, helpers_1.isSet)(object.validatorAddr)) + obj.validatorAddr = String(object.validatorAddr); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -76656,10 +72279,9 @@ exports.QueryValidatorUnbondingDelegationsRequest = { fromPartial(object) { const message = createBaseQueryValidatorUnbondingDelegationsRequest(); message.validatorAddr = object.validatorAddr ?? ""; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } return message; }, }; @@ -76670,7 +72292,8 @@ function createBaseQueryValidatorUnbondingDelegationsResponse() { }; } exports.QueryValidatorUnbondingDelegationsResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.unbondingResponses) { staking_1.UnbondingDelegation.encode(v, writer.uint32(10).fork()).ldelim(); } @@ -76680,7 +72303,7 @@ exports.QueryValidatorUnbondingDelegationsResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryValidatorUnbondingDelegationsResponse(); while (reader.pos < end) { @@ -76700,12 +72323,12 @@ exports.QueryValidatorUnbondingDelegationsResponse = { return message; }, fromJSON(object) { - return { - unbondingResponses: Array.isArray(object?.unbondingResponses) - ? object.unbondingResponses.map((e) => staking_1.UnbondingDelegation.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryValidatorUnbondingDelegationsResponse(); + if (Array.isArray(object?.unbondingResponses)) + obj.unbondingResponses = object.unbondingResponses.map((e) => staking_1.UnbondingDelegation.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -76723,10 +72346,9 @@ exports.QueryValidatorUnbondingDelegationsResponse = { const message = createBaseQueryValidatorUnbondingDelegationsResponse(); message.unbondingResponses = object.unbondingResponses?.map((e) => staking_1.UnbondingDelegation.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } return message; }, }; @@ -76737,7 +72359,8 @@ function createBaseQueryDelegationRequest() { }; } exports.QueryDelegationRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryDelegationRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.delegatorAddr !== "") { writer.uint32(10).string(message.delegatorAddr); } @@ -76747,7 +72370,7 @@ exports.QueryDelegationRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryDelegationRequest(); while (reader.pos < end) { @@ -76767,10 +72390,12 @@ exports.QueryDelegationRequest = { return message; }, fromJSON(object) { - return { - delegatorAddr: (0, helpers_1.isSet)(object.delegatorAddr) ? String(object.delegatorAddr) : "", - validatorAddr: (0, helpers_1.isSet)(object.validatorAddr) ? String(object.validatorAddr) : "", - }; + const obj = createBaseQueryDelegationRequest(); + if ((0, helpers_1.isSet)(object.delegatorAddr)) + obj.delegatorAddr = String(object.delegatorAddr); + if ((0, helpers_1.isSet)(object.validatorAddr)) + obj.validatorAddr = String(object.validatorAddr); + return obj; }, toJSON(message) { const obj = {}; @@ -76791,14 +72416,15 @@ function createBaseQueryDelegationResponse() { }; } exports.QueryDelegationResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryDelegationResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.delegationResponse !== undefined) { staking_1.DelegationResponse.encode(message.delegationResponse, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryDelegationResponse(); while (reader.pos < end) { @@ -76815,11 +72441,10 @@ exports.QueryDelegationResponse = { return message; }, fromJSON(object) { - return { - delegationResponse: (0, helpers_1.isSet)(object.delegationResponse) - ? staking_1.DelegationResponse.fromJSON(object.delegationResponse) - : undefined, - }; + const obj = createBaseQueryDelegationResponse(); + if ((0, helpers_1.isSet)(object.delegationResponse)) + obj.delegationResponse = staking_1.DelegationResponse.fromJSON(object.delegationResponse); + return obj; }, toJSON(message) { const obj = {}; @@ -76831,10 +72456,9 @@ exports.QueryDelegationResponse = { }, fromPartial(object) { const message = createBaseQueryDelegationResponse(); - message.delegationResponse = - object.delegationResponse !== undefined && object.delegationResponse !== null - ? staking_1.DelegationResponse.fromPartial(object.delegationResponse) - : undefined; + if (object.delegationResponse !== undefined && object.delegationResponse !== null) { + message.delegationResponse = staking_1.DelegationResponse.fromPartial(object.delegationResponse); + } return message; }, }; @@ -76845,7 +72469,8 @@ function createBaseQueryUnbondingDelegationRequest() { }; } exports.QueryUnbondingDelegationRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryUnbondingDelegationRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.delegatorAddr !== "") { writer.uint32(10).string(message.delegatorAddr); } @@ -76855,7 +72480,7 @@ exports.QueryUnbondingDelegationRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryUnbondingDelegationRequest(); while (reader.pos < end) { @@ -76875,10 +72500,12 @@ exports.QueryUnbondingDelegationRequest = { return message; }, fromJSON(object) { - return { - delegatorAddr: (0, helpers_1.isSet)(object.delegatorAddr) ? String(object.delegatorAddr) : "", - validatorAddr: (0, helpers_1.isSet)(object.validatorAddr) ? String(object.validatorAddr) : "", - }; + const obj = createBaseQueryUnbondingDelegationRequest(); + if ((0, helpers_1.isSet)(object.delegatorAddr)) + obj.delegatorAddr = String(object.delegatorAddr); + if ((0, helpers_1.isSet)(object.validatorAddr)) + obj.validatorAddr = String(object.validatorAddr); + return obj; }, toJSON(message) { const obj = {}; @@ -76895,18 +72522,19 @@ exports.QueryUnbondingDelegationRequest = { }; function createBaseQueryUnbondingDelegationResponse() { return { - unbond: undefined, + unbond: staking_1.UnbondingDelegation.fromPartial({}), }; } exports.QueryUnbondingDelegationResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryUnbondingDelegationResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.unbond !== undefined) { staking_1.UnbondingDelegation.encode(message.unbond, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryUnbondingDelegationResponse(); while (reader.pos < end) { @@ -76923,9 +72551,10 @@ exports.QueryUnbondingDelegationResponse = { return message; }, fromJSON(object) { - return { - unbond: (0, helpers_1.isSet)(object.unbond) ? staking_1.UnbondingDelegation.fromJSON(object.unbond) : undefined, - }; + const obj = createBaseQueryUnbondingDelegationResponse(); + if ((0, helpers_1.isSet)(object.unbond)) + obj.unbond = staking_1.UnbondingDelegation.fromJSON(object.unbond); + return obj; }, toJSON(message) { const obj = {}; @@ -76935,10 +72564,9 @@ exports.QueryUnbondingDelegationResponse = { }, fromPartial(object) { const message = createBaseQueryUnbondingDelegationResponse(); - message.unbond = - object.unbond !== undefined && object.unbond !== null - ? staking_1.UnbondingDelegation.fromPartial(object.unbond) - : undefined; + if (object.unbond !== undefined && object.unbond !== null) { + message.unbond = staking_1.UnbondingDelegation.fromPartial(object.unbond); + } return message; }, }; @@ -76949,7 +72577,8 @@ function createBaseQueryDelegatorDelegationsRequest() { }; } exports.QueryDelegatorDelegationsRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorDelegationsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.delegatorAddr !== "") { writer.uint32(10).string(message.delegatorAddr); } @@ -76959,7 +72588,7 @@ exports.QueryDelegatorDelegationsRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryDelegatorDelegationsRequest(); while (reader.pos < end) { @@ -76979,10 +72608,12 @@ exports.QueryDelegatorDelegationsRequest = { return message; }, fromJSON(object) { - return { - delegatorAddr: (0, helpers_1.isSet)(object.delegatorAddr) ? String(object.delegatorAddr) : "", - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryDelegatorDelegationsRequest(); + if ((0, helpers_1.isSet)(object.delegatorAddr)) + obj.delegatorAddr = String(object.delegatorAddr); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -76994,10 +72625,9 @@ exports.QueryDelegatorDelegationsRequest = { fromPartial(object) { const message = createBaseQueryDelegatorDelegationsRequest(); message.delegatorAddr = object.delegatorAddr ?? ""; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } return message; }, }; @@ -77008,7 +72638,8 @@ function createBaseQueryDelegatorDelegationsResponse() { }; } exports.QueryDelegatorDelegationsResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorDelegationsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.delegationResponses) { staking_1.DelegationResponse.encode(v, writer.uint32(10).fork()).ldelim(); } @@ -77018,7 +72649,7 @@ exports.QueryDelegatorDelegationsResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryDelegatorDelegationsResponse(); while (reader.pos < end) { @@ -77038,12 +72669,12 @@ exports.QueryDelegatorDelegationsResponse = { return message; }, fromJSON(object) { - return { - delegationResponses: Array.isArray(object?.delegationResponses) - ? object.delegationResponses.map((e) => staking_1.DelegationResponse.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryDelegatorDelegationsResponse(); + if (Array.isArray(object?.delegationResponses)) + obj.delegationResponses = object.delegationResponses.map((e) => staking_1.DelegationResponse.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -77061,10 +72692,9 @@ exports.QueryDelegatorDelegationsResponse = { const message = createBaseQueryDelegatorDelegationsResponse(); message.delegationResponses = object.delegationResponses?.map((e) => staking_1.DelegationResponse.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } return message; }, }; @@ -77075,7 +72705,8 @@ function createBaseQueryDelegatorUnbondingDelegationsRequest() { }; } exports.QueryDelegatorUnbondingDelegationsRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.delegatorAddr !== "") { writer.uint32(10).string(message.delegatorAddr); } @@ -77085,7 +72716,7 @@ exports.QueryDelegatorUnbondingDelegationsRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryDelegatorUnbondingDelegationsRequest(); while (reader.pos < end) { @@ -77105,10 +72736,12 @@ exports.QueryDelegatorUnbondingDelegationsRequest = { return message; }, fromJSON(object) { - return { - delegatorAddr: (0, helpers_1.isSet)(object.delegatorAddr) ? String(object.delegatorAddr) : "", - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryDelegatorUnbondingDelegationsRequest(); + if ((0, helpers_1.isSet)(object.delegatorAddr)) + obj.delegatorAddr = String(object.delegatorAddr); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -77120,10 +72753,9 @@ exports.QueryDelegatorUnbondingDelegationsRequest = { fromPartial(object) { const message = createBaseQueryDelegatorUnbondingDelegationsRequest(); message.delegatorAddr = object.delegatorAddr ?? ""; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } return message; }, }; @@ -77134,7 +72766,8 @@ function createBaseQueryDelegatorUnbondingDelegationsResponse() { }; } exports.QueryDelegatorUnbondingDelegationsResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.unbondingResponses) { staking_1.UnbondingDelegation.encode(v, writer.uint32(10).fork()).ldelim(); } @@ -77144,7 +72777,7 @@ exports.QueryDelegatorUnbondingDelegationsResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryDelegatorUnbondingDelegationsResponse(); while (reader.pos < end) { @@ -77164,12 +72797,12 @@ exports.QueryDelegatorUnbondingDelegationsResponse = { return message; }, fromJSON(object) { - return { - unbondingResponses: Array.isArray(object?.unbondingResponses) - ? object.unbondingResponses.map((e) => staking_1.UnbondingDelegation.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryDelegatorUnbondingDelegationsResponse(); + if (Array.isArray(object?.unbondingResponses)) + obj.unbondingResponses = object.unbondingResponses.map((e) => staking_1.UnbondingDelegation.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -77187,10 +72820,9 @@ exports.QueryDelegatorUnbondingDelegationsResponse = { const message = createBaseQueryDelegatorUnbondingDelegationsResponse(); message.unbondingResponses = object.unbondingResponses?.map((e) => staking_1.UnbondingDelegation.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } return message; }, }; @@ -77203,7 +72835,8 @@ function createBaseQueryRedelegationsRequest() { }; } exports.QueryRedelegationsRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryRedelegationsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.delegatorAddr !== "") { writer.uint32(10).string(message.delegatorAddr); } @@ -77219,7 +72852,7 @@ exports.QueryRedelegationsRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryRedelegationsRequest(); while (reader.pos < end) { @@ -77245,12 +72878,16 @@ exports.QueryRedelegationsRequest = { return message; }, fromJSON(object) { - return { - delegatorAddr: (0, helpers_1.isSet)(object.delegatorAddr) ? String(object.delegatorAddr) : "", - srcValidatorAddr: (0, helpers_1.isSet)(object.srcValidatorAddr) ? String(object.srcValidatorAddr) : "", - dstValidatorAddr: (0, helpers_1.isSet)(object.dstValidatorAddr) ? String(object.dstValidatorAddr) : "", - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryRedelegationsRequest(); + if ((0, helpers_1.isSet)(object.delegatorAddr)) + obj.delegatorAddr = String(object.delegatorAddr); + if ((0, helpers_1.isSet)(object.srcValidatorAddr)) + obj.srcValidatorAddr = String(object.srcValidatorAddr); + if ((0, helpers_1.isSet)(object.dstValidatorAddr)) + obj.dstValidatorAddr = String(object.dstValidatorAddr); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -77266,10 +72903,9 @@ exports.QueryRedelegationsRequest = { message.delegatorAddr = object.delegatorAddr ?? ""; message.srcValidatorAddr = object.srcValidatorAddr ?? ""; message.dstValidatorAddr = object.dstValidatorAddr ?? ""; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } return message; }, }; @@ -77280,7 +72916,8 @@ function createBaseQueryRedelegationsResponse() { }; } exports.QueryRedelegationsResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryRedelegationsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.redelegationResponses) { staking_1.RedelegationResponse.encode(v, writer.uint32(10).fork()).ldelim(); } @@ -77290,7 +72927,7 @@ exports.QueryRedelegationsResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryRedelegationsResponse(); while (reader.pos < end) { @@ -77310,12 +72947,12 @@ exports.QueryRedelegationsResponse = { return message; }, fromJSON(object) { - return { - redelegationResponses: Array.isArray(object?.redelegationResponses) - ? object.redelegationResponses.map((e) => staking_1.RedelegationResponse.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryRedelegationsResponse(); + if (Array.isArray(object?.redelegationResponses)) + obj.redelegationResponses = object.redelegationResponses.map((e) => staking_1.RedelegationResponse.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -77333,10 +72970,9 @@ exports.QueryRedelegationsResponse = { const message = createBaseQueryRedelegationsResponse(); message.redelegationResponses = object.redelegationResponses?.map((e) => staking_1.RedelegationResponse.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } return message; }, }; @@ -77347,7 +72983,8 @@ function createBaseQueryDelegatorValidatorsRequest() { }; } exports.QueryDelegatorValidatorsRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorValidatorsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.delegatorAddr !== "") { writer.uint32(10).string(message.delegatorAddr); } @@ -77357,7 +72994,7 @@ exports.QueryDelegatorValidatorsRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryDelegatorValidatorsRequest(); while (reader.pos < end) { @@ -77377,10 +73014,12 @@ exports.QueryDelegatorValidatorsRequest = { return message; }, fromJSON(object) { - return { - delegatorAddr: (0, helpers_1.isSet)(object.delegatorAddr) ? String(object.delegatorAddr) : "", - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryDelegatorValidatorsRequest(); + if ((0, helpers_1.isSet)(object.delegatorAddr)) + obj.delegatorAddr = String(object.delegatorAddr); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -77392,10 +73031,9 @@ exports.QueryDelegatorValidatorsRequest = { fromPartial(object) { const message = createBaseQueryDelegatorValidatorsRequest(); message.delegatorAddr = object.delegatorAddr ?? ""; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } return message; }, }; @@ -77406,7 +73044,8 @@ function createBaseQueryDelegatorValidatorsResponse() { }; } exports.QueryDelegatorValidatorsResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorValidatorsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.validators) { staking_1.Validator.encode(v, writer.uint32(10).fork()).ldelim(); } @@ -77416,7 +73055,7 @@ exports.QueryDelegatorValidatorsResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryDelegatorValidatorsResponse(); while (reader.pos < end) { @@ -77436,12 +73075,12 @@ exports.QueryDelegatorValidatorsResponse = { return message; }, fromJSON(object) { - return { - validators: Array.isArray(object?.validators) - ? object.validators.map((e) => staking_1.Validator.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryDelegatorValidatorsResponse(); + if (Array.isArray(object?.validators)) + obj.validators = object.validators.map((e) => staking_1.Validator.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -77458,10 +73097,9 @@ exports.QueryDelegatorValidatorsResponse = { fromPartial(object) { const message = createBaseQueryDelegatorValidatorsResponse(); message.validators = object.validators?.map((e) => staking_1.Validator.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } return message; }, }; @@ -77472,7 +73110,8 @@ function createBaseQueryDelegatorValidatorRequest() { }; } exports.QueryDelegatorValidatorRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorValidatorRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.delegatorAddr !== "") { writer.uint32(10).string(message.delegatorAddr); } @@ -77482,7 +73121,7 @@ exports.QueryDelegatorValidatorRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryDelegatorValidatorRequest(); while (reader.pos < end) { @@ -77502,10 +73141,12 @@ exports.QueryDelegatorValidatorRequest = { return message; }, fromJSON(object) { - return { - delegatorAddr: (0, helpers_1.isSet)(object.delegatorAddr) ? String(object.delegatorAddr) : "", - validatorAddr: (0, helpers_1.isSet)(object.validatorAddr) ? String(object.validatorAddr) : "", - }; + const obj = createBaseQueryDelegatorValidatorRequest(); + if ((0, helpers_1.isSet)(object.delegatorAddr)) + obj.delegatorAddr = String(object.delegatorAddr); + if ((0, helpers_1.isSet)(object.validatorAddr)) + obj.validatorAddr = String(object.validatorAddr); + return obj; }, toJSON(message) { const obj = {}; @@ -77522,18 +73163,19 @@ exports.QueryDelegatorValidatorRequest = { }; function createBaseQueryDelegatorValidatorResponse() { return { - validator: undefined, + validator: staking_1.Validator.fromPartial({}), }; } exports.QueryDelegatorValidatorResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryDelegatorValidatorResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.validator !== undefined) { staking_1.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryDelegatorValidatorResponse(); while (reader.pos < end) { @@ -77550,9 +73192,10 @@ exports.QueryDelegatorValidatorResponse = { return message; }, fromJSON(object) { - return { - validator: (0, helpers_1.isSet)(object.validator) ? staking_1.Validator.fromJSON(object.validator) : undefined, - }; + const obj = createBaseQueryDelegatorValidatorResponse(); + if ((0, helpers_1.isSet)(object.validator)) + obj.validator = staking_1.Validator.fromJSON(object.validator); + return obj; }, toJSON(message) { const obj = {}; @@ -77562,27 +73205,27 @@ exports.QueryDelegatorValidatorResponse = { }, fromPartial(object) { const message = createBaseQueryDelegatorValidatorResponse(); - message.validator = - object.validator !== undefined && object.validator !== null - ? staking_1.Validator.fromPartial(object.validator) - : undefined; + if (object.validator !== undefined && object.validator !== null) { + message.validator = staking_1.Validator.fromPartial(object.validator); + } return message; }, }; function createBaseQueryHistoricalInfoRequest() { return { - height: helpers_1.Long.ZERO, + height: BigInt(0), }; } exports.QueryHistoricalInfoRequest = { - encode(message, writer = _m0.Writer.create()) { - if (!message.height.isZero()) { + typeUrl: "/cosmos.staking.v1beta1.QueryHistoricalInfoRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.height !== BigInt(0)) { writer.uint32(8).int64(message.height); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryHistoricalInfoRequest(); while (reader.pos < end) { @@ -77599,19 +73242,21 @@ exports.QueryHistoricalInfoRequest = { return message; }, fromJSON(object) { - return { - height: (0, helpers_1.isSet)(object.height) ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO, - }; + const obj = createBaseQueryHistoricalInfoRequest(); + if ((0, helpers_1.isSet)(object.height)) + obj.height = BigInt(object.height.toString()); + return obj; }, toJSON(message) { const obj = {}; - message.height !== undefined && (obj.height = (message.height || helpers_1.Long.ZERO).toString()); + message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseQueryHistoricalInfoRequest(); - message.height = - object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; + if (object.height !== undefined && object.height !== null) { + message.height = BigInt(object.height.toString()); + } return message; }, }; @@ -77621,14 +73266,15 @@ function createBaseQueryHistoricalInfoResponse() { }; } exports.QueryHistoricalInfoResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryHistoricalInfoResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.hist !== undefined) { staking_1.HistoricalInfo.encode(message.hist, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryHistoricalInfoResponse(); while (reader.pos < end) { @@ -77645,9 +73291,10 @@ exports.QueryHistoricalInfoResponse = { return message; }, fromJSON(object) { - return { - hist: (0, helpers_1.isSet)(object.hist) ? staking_1.HistoricalInfo.fromJSON(object.hist) : undefined, - }; + const obj = createBaseQueryHistoricalInfoResponse(); + if ((0, helpers_1.isSet)(object.hist)) + obj.hist = staking_1.HistoricalInfo.fromJSON(object.hist); + return obj; }, toJSON(message) { const obj = {}; @@ -77656,8 +73303,9 @@ exports.QueryHistoricalInfoResponse = { }, fromPartial(object) { const message = createBaseQueryHistoricalInfoResponse(); - message.hist = - object.hist !== undefined && object.hist !== null ? staking_1.HistoricalInfo.fromPartial(object.hist) : undefined; + if (object.hist !== undefined && object.hist !== null) { + message.hist = staking_1.HistoricalInfo.fromPartial(object.hist); + } return message; }, }; @@ -77665,11 +73313,12 @@ function createBaseQueryPoolRequest() { return {}; } exports.QueryPoolRequest = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryPoolRequest", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryPoolRequest(); while (reader.pos < end) { @@ -77683,7 +73332,8 @@ exports.QueryPoolRequest = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseQueryPoolRequest(); + return obj; }, toJSON(_) { const obj = {}; @@ -77696,18 +73346,19 @@ exports.QueryPoolRequest = { }; function createBaseQueryPoolResponse() { return { - pool: undefined, + pool: staking_1.Pool.fromPartial({}), }; } exports.QueryPoolResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryPoolResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.pool !== undefined) { staking_1.Pool.encode(message.pool, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryPoolResponse(); while (reader.pos < end) { @@ -77724,9 +73375,10 @@ exports.QueryPoolResponse = { return message; }, fromJSON(object) { - return { - pool: (0, helpers_1.isSet)(object.pool) ? staking_1.Pool.fromJSON(object.pool) : undefined, - }; + const obj = createBaseQueryPoolResponse(); + if ((0, helpers_1.isSet)(object.pool)) + obj.pool = staking_1.Pool.fromJSON(object.pool); + return obj; }, toJSON(message) { const obj = {}; @@ -77735,8 +73387,9 @@ exports.QueryPoolResponse = { }, fromPartial(object) { const message = createBaseQueryPoolResponse(); - message.pool = - object.pool !== undefined && object.pool !== null ? staking_1.Pool.fromPartial(object.pool) : undefined; + if (object.pool !== undefined && object.pool !== null) { + message.pool = staking_1.Pool.fromPartial(object.pool); + } return message; }, }; @@ -77744,11 +73397,12 @@ function createBaseQueryParamsRequest() { return {}; } exports.QueryParamsRequest = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryParamsRequest", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryParamsRequest(); while (reader.pos < end) { @@ -77762,7 +73416,8 @@ exports.QueryParamsRequest = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseQueryParamsRequest(); + return obj; }, toJSON(_) { const obj = {}; @@ -77775,18 +73430,19 @@ exports.QueryParamsRequest = { }; function createBaseQueryParamsResponse() { return { - params: undefined, + params: staking_1.Params.fromPartial({}), }; } exports.QueryParamsResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.QueryParamsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.params !== undefined) { staking_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryParamsResponse(); while (reader.pos < end) { @@ -77803,9 +73459,10 @@ exports.QueryParamsResponse = { return message; }, fromJSON(object) { - return { - params: (0, helpers_1.isSet)(object.params) ? staking_1.Params.fromJSON(object.params) : undefined, - }; + const obj = createBaseQueryParamsResponse(); + if ((0, helpers_1.isSet)(object.params)) + obj.params = staking_1.Params.fromJSON(object.params); + return obj; }, toJSON(message) { const obj = {}; @@ -77814,8 +73471,9 @@ exports.QueryParamsResponse = { }, fromPartial(object) { const message = createBaseQueryParamsResponse(); - message.params = - object.params !== undefined && object.params !== null ? staking_1.Params.fromPartial(object.params) : undefined; + if (object.params !== undefined && object.params !== null) { + message.params = staking_1.Params.fromPartial(object.params); + } return message; }, }; @@ -77840,72 +73498,72 @@ class QueryClientImpl { Validators(request) { const data = exports.QueryValidatorsRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "Validators", data); - return promise.then((data) => exports.QueryValidatorsResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryValidatorsResponse.decode(new binary_1.BinaryReader(data))); } Validator(request) { const data = exports.QueryValidatorRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "Validator", data); - return promise.then((data) => exports.QueryValidatorResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryValidatorResponse.decode(new binary_1.BinaryReader(data))); } ValidatorDelegations(request) { const data = exports.QueryValidatorDelegationsRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "ValidatorDelegations", data); - return promise.then((data) => exports.QueryValidatorDelegationsResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryValidatorDelegationsResponse.decode(new binary_1.BinaryReader(data))); } ValidatorUnbondingDelegations(request) { const data = exports.QueryValidatorUnbondingDelegationsRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "ValidatorUnbondingDelegations", data); - return promise.then((data) => exports.QueryValidatorUnbondingDelegationsResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryValidatorUnbondingDelegationsResponse.decode(new binary_1.BinaryReader(data))); } Delegation(request) { const data = exports.QueryDelegationRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "Delegation", data); - return promise.then((data) => exports.QueryDelegationResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryDelegationResponse.decode(new binary_1.BinaryReader(data))); } UnbondingDelegation(request) { const data = exports.QueryUnbondingDelegationRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "UnbondingDelegation", data); - return promise.then((data) => exports.QueryUnbondingDelegationResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryUnbondingDelegationResponse.decode(new binary_1.BinaryReader(data))); } DelegatorDelegations(request) { const data = exports.QueryDelegatorDelegationsRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "DelegatorDelegations", data); - return promise.then((data) => exports.QueryDelegatorDelegationsResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryDelegatorDelegationsResponse.decode(new binary_1.BinaryReader(data))); } DelegatorUnbondingDelegations(request) { const data = exports.QueryDelegatorUnbondingDelegationsRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "DelegatorUnbondingDelegations", data); - return promise.then((data) => exports.QueryDelegatorUnbondingDelegationsResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryDelegatorUnbondingDelegationsResponse.decode(new binary_1.BinaryReader(data))); } Redelegations(request) { const data = exports.QueryRedelegationsRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "Redelegations", data); - return promise.then((data) => exports.QueryRedelegationsResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryRedelegationsResponse.decode(new binary_1.BinaryReader(data))); } DelegatorValidators(request) { const data = exports.QueryDelegatorValidatorsRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "DelegatorValidators", data); - return promise.then((data) => exports.QueryDelegatorValidatorsResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryDelegatorValidatorsResponse.decode(new binary_1.BinaryReader(data))); } DelegatorValidator(request) { const data = exports.QueryDelegatorValidatorRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "DelegatorValidator", data); - return promise.then((data) => exports.QueryDelegatorValidatorResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryDelegatorValidatorResponse.decode(new binary_1.BinaryReader(data))); } HistoricalInfo(request) { const data = exports.QueryHistoricalInfoRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "HistoricalInfo", data); - return promise.then((data) => exports.QueryHistoricalInfoResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryHistoricalInfoResponse.decode(new binary_1.BinaryReader(data))); } Pool(request = {}) { const data = exports.QueryPoolRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "Pool", data); - return promise.then((data) => exports.QueryPoolResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryPoolResponse.decode(new binary_1.BinaryReader(data))); } Params(request = {}) { const data = exports.QueryParamsRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.staking.v1beta1.Query", "Params", data); - return promise.then((data) => exports.QueryParamsResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data))); } } exports.QueryClientImpl = QueryClientImpl; @@ -77921,38 +73579,16 @@ exports.QueryClientImpl = QueryClientImpl; "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Pool = exports.RedelegationResponse = exports.RedelegationEntryResponse = exports.DelegationResponse = exports.Params = exports.Redelegation = exports.RedelegationEntry = exports.UnbondingDelegationEntry = exports.UnbondingDelegation = exports.Delegation = exports.DVVTriplets = exports.DVVTriplet = exports.DVPairs = exports.DVPair = exports.ValAddresses = exports.Validator = exports.Description = exports.Commission = exports.CommissionRates = exports.HistoricalInfo = exports.bondStatusToJSON = exports.bondStatusFromJSON = exports.BondStatus = exports.protobufPackage = void 0; +exports.ValidatorUpdates = exports.Pool = exports.RedelegationResponse = exports.RedelegationEntryResponse = exports.DelegationResponse = exports.Params = exports.Redelegation = exports.RedelegationEntry = exports.UnbondingDelegationEntry = exports.UnbondingDelegation = exports.Delegation = exports.DVVTriplets = exports.DVVTriplet = exports.DVPairs = exports.DVPair = exports.ValAddresses = exports.Validator = exports.Description = exports.Commission = exports.CommissionRates = exports.HistoricalInfo = exports.infractionToJSON = exports.infractionFromJSON = exports.Infraction = exports.bondStatusToJSON = exports.bondStatusFromJSON = exports.BondStatus = exports.protobufPackage = void 0; /* eslint-disable */ const types_1 = __webpack_require__(/*! ../../../tendermint/types/types */ "./node_modules/cosmjs-types/tendermint/types/types.js"); const timestamp_1 = __webpack_require__(/*! ../../../google/protobuf/timestamp */ "./node_modules/cosmjs-types/google/protobuf/timestamp.js"); const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); const duration_1 = __webpack_require__(/*! ../../../google/protobuf/duration */ "./node_modules/cosmjs-types/google/protobuf/duration.js"); const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const types_2 = __webpack_require__(/*! ../../../tendermint/abci/types */ "./node_modules/cosmjs-types/tendermint/abci/types.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "cosmos.staking.v1beta1"; /** BondStatus is the status of a validator. */ @@ -77967,7 +73603,7 @@ var BondStatus; /** BOND_STATUS_BONDED - BONDED defines a validator that is bonded. */ BondStatus[BondStatus["BOND_STATUS_BONDED"] = 3] = "BOND_STATUS_BONDED"; BondStatus[BondStatus["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(BondStatus = exports.BondStatus || (exports.BondStatus = {})); +})(BondStatus || (exports.BondStatus = BondStatus = {})); function bondStatusFromJSON(object) { switch (object) { case 0: @@ -78005,14 +73641,58 @@ function bondStatusToJSON(object) { } } exports.bondStatusToJSON = bondStatusToJSON; +/** Infraction indicates the infraction a validator commited. */ +var Infraction; +(function (Infraction) { + /** INFRACTION_UNSPECIFIED - UNSPECIFIED defines an empty infraction. */ + Infraction[Infraction["INFRACTION_UNSPECIFIED"] = 0] = "INFRACTION_UNSPECIFIED"; + /** INFRACTION_DOUBLE_SIGN - DOUBLE_SIGN defines a validator that double-signs a block. */ + Infraction[Infraction["INFRACTION_DOUBLE_SIGN"] = 1] = "INFRACTION_DOUBLE_SIGN"; + /** INFRACTION_DOWNTIME - DOWNTIME defines a validator that missed signing too many blocks. */ + Infraction[Infraction["INFRACTION_DOWNTIME"] = 2] = "INFRACTION_DOWNTIME"; + Infraction[Infraction["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(Infraction || (exports.Infraction = Infraction = {})); +function infractionFromJSON(object) { + switch (object) { + case 0: + case "INFRACTION_UNSPECIFIED": + return Infraction.INFRACTION_UNSPECIFIED; + case 1: + case "INFRACTION_DOUBLE_SIGN": + return Infraction.INFRACTION_DOUBLE_SIGN; + case 2: + case "INFRACTION_DOWNTIME": + return Infraction.INFRACTION_DOWNTIME; + case -1: + case "UNRECOGNIZED": + default: + return Infraction.UNRECOGNIZED; + } +} +exports.infractionFromJSON = infractionFromJSON; +function infractionToJSON(object) { + switch (object) { + case Infraction.INFRACTION_UNSPECIFIED: + return "INFRACTION_UNSPECIFIED"; + case Infraction.INFRACTION_DOUBLE_SIGN: + return "INFRACTION_DOUBLE_SIGN"; + case Infraction.INFRACTION_DOWNTIME: + return "INFRACTION_DOWNTIME"; + case Infraction.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} +exports.infractionToJSON = infractionToJSON; function createBaseHistoricalInfo() { return { - header: undefined, + header: types_1.Header.fromPartial({}), valset: [], }; } exports.HistoricalInfo = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.HistoricalInfo", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.header !== undefined) { types_1.Header.encode(message.header, writer.uint32(10).fork()).ldelim(); } @@ -78022,7 +73702,7 @@ exports.HistoricalInfo = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseHistoricalInfo(); while (reader.pos < end) { @@ -78042,10 +73722,12 @@ exports.HistoricalInfo = { return message; }, fromJSON(object) { - return { - header: (0, helpers_1.isSet)(object.header) ? types_1.Header.fromJSON(object.header) : undefined, - valset: Array.isArray(object?.valset) ? object.valset.map((e) => exports.Validator.fromJSON(e)) : [], - }; + const obj = createBaseHistoricalInfo(); + if ((0, helpers_1.isSet)(object.header)) + obj.header = types_1.Header.fromJSON(object.header); + if (Array.isArray(object?.valset)) + obj.valset = object.valset.map((e) => exports.Validator.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -78060,8 +73742,9 @@ exports.HistoricalInfo = { }, fromPartial(object) { const message = createBaseHistoricalInfo(); - message.header = - object.header !== undefined && object.header !== null ? types_1.Header.fromPartial(object.header) : undefined; + if (object.header !== undefined && object.header !== null) { + message.header = types_1.Header.fromPartial(object.header); + } message.valset = object.valset?.map((e) => exports.Validator.fromPartial(e)) || []; return message; }, @@ -78074,7 +73757,8 @@ function createBaseCommissionRates() { }; } exports.CommissionRates = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.CommissionRates", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.rate !== "") { writer.uint32(10).string(message.rate); } @@ -78087,7 +73771,7 @@ exports.CommissionRates = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCommissionRates(); while (reader.pos < end) { @@ -78110,11 +73794,14 @@ exports.CommissionRates = { return message; }, fromJSON(object) { - return { - rate: (0, helpers_1.isSet)(object.rate) ? String(object.rate) : "", - maxRate: (0, helpers_1.isSet)(object.maxRate) ? String(object.maxRate) : "", - maxChangeRate: (0, helpers_1.isSet)(object.maxChangeRate) ? String(object.maxChangeRate) : "", - }; + const obj = createBaseCommissionRates(); + if ((0, helpers_1.isSet)(object.rate)) + obj.rate = String(object.rate); + if ((0, helpers_1.isSet)(object.maxRate)) + obj.maxRate = String(object.maxRate); + if ((0, helpers_1.isSet)(object.maxChangeRate)) + obj.maxChangeRate = String(object.maxChangeRate); + return obj; }, toJSON(message) { const obj = {}; @@ -78133,12 +73820,13 @@ exports.CommissionRates = { }; function createBaseCommission() { return { - commissionRates: undefined, - updateTime: undefined, + commissionRates: exports.CommissionRates.fromPartial({}), + updateTime: timestamp_1.Timestamp.fromPartial({}), }; } exports.Commission = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.Commission", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.commissionRates !== undefined) { exports.CommissionRates.encode(message.commissionRates, writer.uint32(10).fork()).ldelim(); } @@ -78148,7 +73836,7 @@ exports.Commission = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCommission(); while (reader.pos < end) { @@ -78168,12 +73856,12 @@ exports.Commission = { return message; }, fromJSON(object) { - return { - commissionRates: (0, helpers_1.isSet)(object.commissionRates) - ? exports.CommissionRates.fromJSON(object.commissionRates) - : undefined, - updateTime: (0, helpers_1.isSet)(object.updateTime) ? (0, helpers_1.fromJsonTimestamp)(object.updateTime) : undefined, - }; + const obj = createBaseCommission(); + if ((0, helpers_1.isSet)(object.commissionRates)) + obj.commissionRates = exports.CommissionRates.fromJSON(object.commissionRates); + if ((0, helpers_1.isSet)(object.updateTime)) + obj.updateTime = (0, helpers_1.fromJsonTimestamp)(object.updateTime); + return obj; }, toJSON(message) { const obj = {}; @@ -78186,14 +73874,12 @@ exports.Commission = { }, fromPartial(object) { const message = createBaseCommission(); - message.commissionRates = - object.commissionRates !== undefined && object.commissionRates !== null - ? exports.CommissionRates.fromPartial(object.commissionRates) - : undefined; - message.updateTime = - object.updateTime !== undefined && object.updateTime !== null - ? timestamp_1.Timestamp.fromPartial(object.updateTime) - : undefined; + if (object.commissionRates !== undefined && object.commissionRates !== null) { + message.commissionRates = exports.CommissionRates.fromPartial(object.commissionRates); + } + if (object.updateTime !== undefined && object.updateTime !== null) { + message.updateTime = timestamp_1.Timestamp.fromPartial(object.updateTime); + } return message; }, }; @@ -78207,7 +73893,8 @@ function createBaseDescription() { }; } exports.Description = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.Description", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.moniker !== "") { writer.uint32(10).string(message.moniker); } @@ -78226,7 +73913,7 @@ exports.Description = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDescription(); while (reader.pos < end) { @@ -78255,13 +73942,18 @@ exports.Description = { return message; }, fromJSON(object) { - return { - moniker: (0, helpers_1.isSet)(object.moniker) ? String(object.moniker) : "", - identity: (0, helpers_1.isSet)(object.identity) ? String(object.identity) : "", - website: (0, helpers_1.isSet)(object.website) ? String(object.website) : "", - securityContact: (0, helpers_1.isSet)(object.securityContact) ? String(object.securityContact) : "", - details: (0, helpers_1.isSet)(object.details) ? String(object.details) : "", - }; + const obj = createBaseDescription(); + if ((0, helpers_1.isSet)(object.moniker)) + obj.moniker = String(object.moniker); + if ((0, helpers_1.isSet)(object.identity)) + obj.identity = String(object.identity); + if ((0, helpers_1.isSet)(object.website)) + obj.website = String(object.website); + if ((0, helpers_1.isSet)(object.securityContact)) + obj.securityContact = String(object.securityContact); + if ((0, helpers_1.isSet)(object.details)) + obj.details = String(object.details); + return obj; }, toJSON(message) { const obj = {}; @@ -78290,15 +73982,18 @@ function createBaseValidator() { status: 0, tokens: "", delegatorShares: "", - description: undefined, - unbondingHeight: helpers_1.Long.ZERO, - unbondingTime: undefined, - commission: undefined, + description: exports.Description.fromPartial({}), + unbondingHeight: BigInt(0), + unbondingTime: timestamp_1.Timestamp.fromPartial({}), + commission: exports.Commission.fromPartial({}), minSelfDelegation: "", + unbondingOnHoldRefCount: BigInt(0), + unbondingIds: [], }; } exports.Validator = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.Validator", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.operatorAddress !== "") { writer.uint32(10).string(message.operatorAddress); } @@ -78320,7 +74015,7 @@ exports.Validator = { if (message.description !== undefined) { exports.Description.encode(message.description, writer.uint32(58).fork()).ldelim(); } - if (!message.unbondingHeight.isZero()) { + if (message.unbondingHeight !== BigInt(0)) { writer.uint32(64).int64(message.unbondingHeight); } if (message.unbondingTime !== undefined) { @@ -78332,10 +74027,18 @@ exports.Validator = { if (message.minSelfDelegation !== "") { writer.uint32(90).string(message.minSelfDelegation); } + if (message.unbondingOnHoldRefCount !== BigInt(0)) { + writer.uint32(96).int64(message.unbondingOnHoldRefCount); + } + writer.uint32(106).fork(); + for (const v of message.unbondingIds) { + writer.uint64(v); + } + writer.ldelim(); return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseValidator(); while (reader.pos < end) { @@ -78374,6 +74077,20 @@ exports.Validator = { case 11: message.minSelfDelegation = reader.string(); break; + case 12: + message.unbondingOnHoldRefCount = reader.int64(); + break; + case 13: + if ((tag & 7) === 2) { + const end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) { + message.unbondingIds.push(reader.uint64()); + } + } + else { + message.unbondingIds.push(reader.uint64()); + } + break; default: reader.skipType(tag & 7); break; @@ -78382,19 +74099,34 @@ exports.Validator = { return message; }, fromJSON(object) { - return { - operatorAddress: (0, helpers_1.isSet)(object.operatorAddress) ? String(object.operatorAddress) : "", - consensusPubkey: (0, helpers_1.isSet)(object.consensusPubkey) ? any_1.Any.fromJSON(object.consensusPubkey) : undefined, - jailed: (0, helpers_1.isSet)(object.jailed) ? Boolean(object.jailed) : false, - status: (0, helpers_1.isSet)(object.status) ? bondStatusFromJSON(object.status) : 0, - tokens: (0, helpers_1.isSet)(object.tokens) ? String(object.tokens) : "", - delegatorShares: (0, helpers_1.isSet)(object.delegatorShares) ? String(object.delegatorShares) : "", - description: (0, helpers_1.isSet)(object.description) ? exports.Description.fromJSON(object.description) : undefined, - unbondingHeight: (0, helpers_1.isSet)(object.unbondingHeight) ? helpers_1.Long.fromValue(object.unbondingHeight) : helpers_1.Long.ZERO, - unbondingTime: (0, helpers_1.isSet)(object.unbondingTime) ? (0, helpers_1.fromJsonTimestamp)(object.unbondingTime) : undefined, - commission: (0, helpers_1.isSet)(object.commission) ? exports.Commission.fromJSON(object.commission) : undefined, - minSelfDelegation: (0, helpers_1.isSet)(object.minSelfDelegation) ? String(object.minSelfDelegation) : "", - }; + const obj = createBaseValidator(); + if ((0, helpers_1.isSet)(object.operatorAddress)) + obj.operatorAddress = String(object.operatorAddress); + if ((0, helpers_1.isSet)(object.consensusPubkey)) + obj.consensusPubkey = any_1.Any.fromJSON(object.consensusPubkey); + if ((0, helpers_1.isSet)(object.jailed)) + obj.jailed = Boolean(object.jailed); + if ((0, helpers_1.isSet)(object.status)) + obj.status = bondStatusFromJSON(object.status); + if ((0, helpers_1.isSet)(object.tokens)) + obj.tokens = String(object.tokens); + if ((0, helpers_1.isSet)(object.delegatorShares)) + obj.delegatorShares = String(object.delegatorShares); + if ((0, helpers_1.isSet)(object.description)) + obj.description = exports.Description.fromJSON(object.description); + if ((0, helpers_1.isSet)(object.unbondingHeight)) + obj.unbondingHeight = BigInt(object.unbondingHeight.toString()); + if ((0, helpers_1.isSet)(object.unbondingTime)) + obj.unbondingTime = (0, helpers_1.fromJsonTimestamp)(object.unbondingTime); + if ((0, helpers_1.isSet)(object.commission)) + obj.commission = exports.Commission.fromJSON(object.commission); + if ((0, helpers_1.isSet)(object.minSelfDelegation)) + obj.minSelfDelegation = String(object.minSelfDelegation); + if ((0, helpers_1.isSet)(object.unbondingOnHoldRefCount)) + obj.unbondingOnHoldRefCount = BigInt(object.unbondingOnHoldRefCount.toString()); + if (Array.isArray(object?.unbondingIds)) + obj.unbondingIds = object.unbondingIds.map((e) => BigInt(e.toString())); + return obj; }, toJSON(message) { const obj = {}; @@ -78408,42 +74140,49 @@ exports.Validator = { message.description !== undefined && (obj.description = message.description ? exports.Description.toJSON(message.description) : undefined); message.unbondingHeight !== undefined && - (obj.unbondingHeight = (message.unbondingHeight || helpers_1.Long.ZERO).toString()); + (obj.unbondingHeight = (message.unbondingHeight || BigInt(0)).toString()); message.unbondingTime !== undefined && (obj.unbondingTime = (0, helpers_1.fromTimestamp)(message.unbondingTime).toISOString()); message.commission !== undefined && (obj.commission = message.commission ? exports.Commission.toJSON(message.commission) : undefined); message.minSelfDelegation !== undefined && (obj.minSelfDelegation = message.minSelfDelegation); + message.unbondingOnHoldRefCount !== undefined && + (obj.unbondingOnHoldRefCount = (message.unbondingOnHoldRefCount || BigInt(0)).toString()); + if (message.unbondingIds) { + obj.unbondingIds = message.unbondingIds.map((e) => (e || BigInt(0)).toString()); + } + else { + obj.unbondingIds = []; + } return obj; }, fromPartial(object) { const message = createBaseValidator(); message.operatorAddress = object.operatorAddress ?? ""; - message.consensusPubkey = - object.consensusPubkey !== undefined && object.consensusPubkey !== null - ? any_1.Any.fromPartial(object.consensusPubkey) - : undefined; + if (object.consensusPubkey !== undefined && object.consensusPubkey !== null) { + message.consensusPubkey = any_1.Any.fromPartial(object.consensusPubkey); + } message.jailed = object.jailed ?? false; message.status = object.status ?? 0; message.tokens = object.tokens ?? ""; message.delegatorShares = object.delegatorShares ?? ""; - message.description = - object.description !== undefined && object.description !== null - ? exports.Description.fromPartial(object.description) - : undefined; - message.unbondingHeight = - object.unbondingHeight !== undefined && object.unbondingHeight !== null - ? helpers_1.Long.fromValue(object.unbondingHeight) - : helpers_1.Long.ZERO; - message.unbondingTime = - object.unbondingTime !== undefined && object.unbondingTime !== null - ? timestamp_1.Timestamp.fromPartial(object.unbondingTime) - : undefined; - message.commission = - object.commission !== undefined && object.commission !== null - ? exports.Commission.fromPartial(object.commission) - : undefined; + if (object.description !== undefined && object.description !== null) { + message.description = exports.Description.fromPartial(object.description); + } + if (object.unbondingHeight !== undefined && object.unbondingHeight !== null) { + message.unbondingHeight = BigInt(object.unbondingHeight.toString()); + } + if (object.unbondingTime !== undefined && object.unbondingTime !== null) { + message.unbondingTime = timestamp_1.Timestamp.fromPartial(object.unbondingTime); + } + if (object.commission !== undefined && object.commission !== null) { + message.commission = exports.Commission.fromPartial(object.commission); + } message.minSelfDelegation = object.minSelfDelegation ?? ""; + if (object.unbondingOnHoldRefCount !== undefined && object.unbondingOnHoldRefCount !== null) { + message.unbondingOnHoldRefCount = BigInt(object.unbondingOnHoldRefCount.toString()); + } + message.unbondingIds = object.unbondingIds?.map((e) => BigInt(e.toString())) || []; return message; }, }; @@ -78453,14 +74192,15 @@ function createBaseValAddresses() { }; } exports.ValAddresses = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.ValAddresses", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.addresses) { writer.uint32(10).string(v); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseValAddresses(); while (reader.pos < end) { @@ -78477,9 +74217,10 @@ exports.ValAddresses = { return message; }, fromJSON(object) { - return { - addresses: Array.isArray(object?.addresses) ? object.addresses.map((e) => String(e)) : [], - }; + const obj = createBaseValAddresses(); + if (Array.isArray(object?.addresses)) + obj.addresses = object.addresses.map((e) => String(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -78504,7 +74245,8 @@ function createBaseDVPair() { }; } exports.DVPair = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.DVPair", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.delegatorAddress !== "") { writer.uint32(10).string(message.delegatorAddress); } @@ -78514,7 +74256,7 @@ exports.DVPair = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDVPair(); while (reader.pos < end) { @@ -78534,10 +74276,12 @@ exports.DVPair = { return message; }, fromJSON(object) { - return { - delegatorAddress: (0, helpers_1.isSet)(object.delegatorAddress) ? String(object.delegatorAddress) : "", - validatorAddress: (0, helpers_1.isSet)(object.validatorAddress) ? String(object.validatorAddress) : "", - }; + const obj = createBaseDVPair(); + if ((0, helpers_1.isSet)(object.delegatorAddress)) + obj.delegatorAddress = String(object.delegatorAddress); + if ((0, helpers_1.isSet)(object.validatorAddress)) + obj.validatorAddress = String(object.validatorAddress); + return obj; }, toJSON(message) { const obj = {}; @@ -78558,14 +74302,15 @@ function createBaseDVPairs() { }; } exports.DVPairs = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.DVPairs", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.pairs) { exports.DVPair.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDVPairs(); while (reader.pos < end) { @@ -78582,9 +74327,10 @@ exports.DVPairs = { return message; }, fromJSON(object) { - return { - pairs: Array.isArray(object?.pairs) ? object.pairs.map((e) => exports.DVPair.fromJSON(e)) : [], - }; + const obj = createBaseDVPairs(); + if (Array.isArray(object?.pairs)) + obj.pairs = object.pairs.map((e) => exports.DVPair.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -78610,7 +74356,8 @@ function createBaseDVVTriplet() { }; } exports.DVVTriplet = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.DVVTriplet", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.delegatorAddress !== "") { writer.uint32(10).string(message.delegatorAddress); } @@ -78623,7 +74370,7 @@ exports.DVVTriplet = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDVVTriplet(); while (reader.pos < end) { @@ -78646,11 +74393,14 @@ exports.DVVTriplet = { return message; }, fromJSON(object) { - return { - delegatorAddress: (0, helpers_1.isSet)(object.delegatorAddress) ? String(object.delegatorAddress) : "", - validatorSrcAddress: (0, helpers_1.isSet)(object.validatorSrcAddress) ? String(object.validatorSrcAddress) : "", - validatorDstAddress: (0, helpers_1.isSet)(object.validatorDstAddress) ? String(object.validatorDstAddress) : "", - }; + const obj = createBaseDVVTriplet(); + if ((0, helpers_1.isSet)(object.delegatorAddress)) + obj.delegatorAddress = String(object.delegatorAddress); + if ((0, helpers_1.isSet)(object.validatorSrcAddress)) + obj.validatorSrcAddress = String(object.validatorSrcAddress); + if ((0, helpers_1.isSet)(object.validatorDstAddress)) + obj.validatorDstAddress = String(object.validatorDstAddress); + return obj; }, toJSON(message) { const obj = {}; @@ -78673,14 +74423,15 @@ function createBaseDVVTriplets() { }; } exports.DVVTriplets = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.DVVTriplets", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.triplets) { exports.DVVTriplet.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDVVTriplets(); while (reader.pos < end) { @@ -78697,11 +74448,10 @@ exports.DVVTriplets = { return message; }, fromJSON(object) { - return { - triplets: Array.isArray(object?.triplets) - ? object.triplets.map((e) => exports.DVVTriplet.fromJSON(e)) - : [], - }; + const obj = createBaseDVVTriplets(); + if (Array.isArray(object?.triplets)) + obj.triplets = object.triplets.map((e) => exports.DVVTriplet.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -78727,7 +74477,8 @@ function createBaseDelegation() { }; } exports.Delegation = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.Delegation", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.delegatorAddress !== "") { writer.uint32(10).string(message.delegatorAddress); } @@ -78740,7 +74491,7 @@ exports.Delegation = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDelegation(); while (reader.pos < end) { @@ -78763,11 +74514,14 @@ exports.Delegation = { return message; }, fromJSON(object) { - return { - delegatorAddress: (0, helpers_1.isSet)(object.delegatorAddress) ? String(object.delegatorAddress) : "", - validatorAddress: (0, helpers_1.isSet)(object.validatorAddress) ? String(object.validatorAddress) : "", - shares: (0, helpers_1.isSet)(object.shares) ? String(object.shares) : "", - }; + const obj = createBaseDelegation(); + if ((0, helpers_1.isSet)(object.delegatorAddress)) + obj.delegatorAddress = String(object.delegatorAddress); + if ((0, helpers_1.isSet)(object.validatorAddress)) + obj.validatorAddress = String(object.validatorAddress); + if ((0, helpers_1.isSet)(object.shares)) + obj.shares = String(object.shares); + return obj; }, toJSON(message) { const obj = {}; @@ -78792,7 +74546,8 @@ function createBaseUnbondingDelegation() { }; } exports.UnbondingDelegation = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.UnbondingDelegation", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.delegatorAddress !== "") { writer.uint32(10).string(message.delegatorAddress); } @@ -78805,7 +74560,7 @@ exports.UnbondingDelegation = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseUnbondingDelegation(); while (reader.pos < end) { @@ -78828,13 +74583,14 @@ exports.UnbondingDelegation = { return message; }, fromJSON(object) { - return { - delegatorAddress: (0, helpers_1.isSet)(object.delegatorAddress) ? String(object.delegatorAddress) : "", - validatorAddress: (0, helpers_1.isSet)(object.validatorAddress) ? String(object.validatorAddress) : "", - entries: Array.isArray(object?.entries) - ? object.entries.map((e) => exports.UnbondingDelegationEntry.fromJSON(e)) - : [], - }; + const obj = createBaseUnbondingDelegation(); + if ((0, helpers_1.isSet)(object.delegatorAddress)) + obj.delegatorAddress = String(object.delegatorAddress); + if ((0, helpers_1.isSet)(object.validatorAddress)) + obj.validatorAddress = String(object.validatorAddress); + if (Array.isArray(object?.entries)) + obj.entries = object.entries.map((e) => exports.UnbondingDelegationEntry.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -78858,15 +74614,18 @@ exports.UnbondingDelegation = { }; function createBaseUnbondingDelegationEntry() { return { - creationHeight: helpers_1.Long.ZERO, - completionTime: undefined, + creationHeight: BigInt(0), + completionTime: timestamp_1.Timestamp.fromPartial({}), initialBalance: "", balance: "", + unbondingId: BigInt(0), + unbondingOnHoldRefCount: BigInt(0), }; } exports.UnbondingDelegationEntry = { - encode(message, writer = _m0.Writer.create()) { - if (!message.creationHeight.isZero()) { + typeUrl: "/cosmos.staking.v1beta1.UnbondingDelegationEntry", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.creationHeight !== BigInt(0)) { writer.uint32(8).int64(message.creationHeight); } if (message.completionTime !== undefined) { @@ -78878,10 +74637,16 @@ exports.UnbondingDelegationEntry = { if (message.balance !== "") { writer.uint32(34).string(message.balance); } + if (message.unbondingId !== BigInt(0)) { + writer.uint32(40).uint64(message.unbondingId); + } + if (message.unbondingOnHoldRefCount !== BigInt(0)) { + writer.uint32(48).int64(message.unbondingOnHoldRefCount); + } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseUnbondingDelegationEntry(); while (reader.pos < end) { @@ -78899,6 +74664,12 @@ exports.UnbondingDelegationEntry = { case 4: message.balance = reader.string(); break; + case 5: + message.unbondingId = reader.uint64(); + break; + case 6: + message.unbondingOnHoldRefCount = reader.int64(); + break; default: reader.skipType(tag & 7); break; @@ -78907,49 +74678,67 @@ exports.UnbondingDelegationEntry = { return message; }, fromJSON(object) { - return { - creationHeight: (0, helpers_1.isSet)(object.creationHeight) ? helpers_1.Long.fromValue(object.creationHeight) : helpers_1.Long.ZERO, - completionTime: (0, helpers_1.isSet)(object.completionTime) ? (0, helpers_1.fromJsonTimestamp)(object.completionTime) : undefined, - initialBalance: (0, helpers_1.isSet)(object.initialBalance) ? String(object.initialBalance) : "", - balance: (0, helpers_1.isSet)(object.balance) ? String(object.balance) : "", - }; + const obj = createBaseUnbondingDelegationEntry(); + if ((0, helpers_1.isSet)(object.creationHeight)) + obj.creationHeight = BigInt(object.creationHeight.toString()); + if ((0, helpers_1.isSet)(object.completionTime)) + obj.completionTime = (0, helpers_1.fromJsonTimestamp)(object.completionTime); + if ((0, helpers_1.isSet)(object.initialBalance)) + obj.initialBalance = String(object.initialBalance); + if ((0, helpers_1.isSet)(object.balance)) + obj.balance = String(object.balance); + if ((0, helpers_1.isSet)(object.unbondingId)) + obj.unbondingId = BigInt(object.unbondingId.toString()); + if ((0, helpers_1.isSet)(object.unbondingOnHoldRefCount)) + obj.unbondingOnHoldRefCount = BigInt(object.unbondingOnHoldRefCount.toString()); + return obj; }, toJSON(message) { const obj = {}; message.creationHeight !== undefined && - (obj.creationHeight = (message.creationHeight || helpers_1.Long.ZERO).toString()); + (obj.creationHeight = (message.creationHeight || BigInt(0)).toString()); message.completionTime !== undefined && (obj.completionTime = (0, helpers_1.fromTimestamp)(message.completionTime).toISOString()); message.initialBalance !== undefined && (obj.initialBalance = message.initialBalance); message.balance !== undefined && (obj.balance = message.balance); + message.unbondingId !== undefined && (obj.unbondingId = (message.unbondingId || BigInt(0)).toString()); + message.unbondingOnHoldRefCount !== undefined && + (obj.unbondingOnHoldRefCount = (message.unbondingOnHoldRefCount || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseUnbondingDelegationEntry(); - message.creationHeight = - object.creationHeight !== undefined && object.creationHeight !== null - ? helpers_1.Long.fromValue(object.creationHeight) - : helpers_1.Long.ZERO; - message.completionTime = - object.completionTime !== undefined && object.completionTime !== null - ? timestamp_1.Timestamp.fromPartial(object.completionTime) - : undefined; + if (object.creationHeight !== undefined && object.creationHeight !== null) { + message.creationHeight = BigInt(object.creationHeight.toString()); + } + if (object.completionTime !== undefined && object.completionTime !== null) { + message.completionTime = timestamp_1.Timestamp.fromPartial(object.completionTime); + } message.initialBalance = object.initialBalance ?? ""; message.balance = object.balance ?? ""; + if (object.unbondingId !== undefined && object.unbondingId !== null) { + message.unbondingId = BigInt(object.unbondingId.toString()); + } + if (object.unbondingOnHoldRefCount !== undefined && object.unbondingOnHoldRefCount !== null) { + message.unbondingOnHoldRefCount = BigInt(object.unbondingOnHoldRefCount.toString()); + } return message; }, }; function createBaseRedelegationEntry() { return { - creationHeight: helpers_1.Long.ZERO, - completionTime: undefined, + creationHeight: BigInt(0), + completionTime: timestamp_1.Timestamp.fromPartial({}), initialBalance: "", sharesDst: "", + unbondingId: BigInt(0), + unbondingOnHoldRefCount: BigInt(0), }; } exports.RedelegationEntry = { - encode(message, writer = _m0.Writer.create()) { - if (!message.creationHeight.isZero()) { + typeUrl: "/cosmos.staking.v1beta1.RedelegationEntry", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.creationHeight !== BigInt(0)) { writer.uint32(8).int64(message.creationHeight); } if (message.completionTime !== undefined) { @@ -78961,10 +74750,16 @@ exports.RedelegationEntry = { if (message.sharesDst !== "") { writer.uint32(34).string(message.sharesDst); } + if (message.unbondingId !== BigInt(0)) { + writer.uint32(40).uint64(message.unbondingId); + } + if (message.unbondingOnHoldRefCount !== BigInt(0)) { + writer.uint32(48).int64(message.unbondingOnHoldRefCount); + } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseRedelegationEntry(); while (reader.pos < end) { @@ -78982,6 +74777,12 @@ exports.RedelegationEntry = { case 4: message.sharesDst = reader.string(); break; + case 5: + message.unbondingId = reader.uint64(); + break; + case 6: + message.unbondingOnHoldRefCount = reader.int64(); + break; default: reader.skipType(tag & 7); break; @@ -78990,35 +74791,50 @@ exports.RedelegationEntry = { return message; }, fromJSON(object) { - return { - creationHeight: (0, helpers_1.isSet)(object.creationHeight) ? helpers_1.Long.fromValue(object.creationHeight) : helpers_1.Long.ZERO, - completionTime: (0, helpers_1.isSet)(object.completionTime) ? (0, helpers_1.fromJsonTimestamp)(object.completionTime) : undefined, - initialBalance: (0, helpers_1.isSet)(object.initialBalance) ? String(object.initialBalance) : "", - sharesDst: (0, helpers_1.isSet)(object.sharesDst) ? String(object.sharesDst) : "", - }; + const obj = createBaseRedelegationEntry(); + if ((0, helpers_1.isSet)(object.creationHeight)) + obj.creationHeight = BigInt(object.creationHeight.toString()); + if ((0, helpers_1.isSet)(object.completionTime)) + obj.completionTime = (0, helpers_1.fromJsonTimestamp)(object.completionTime); + if ((0, helpers_1.isSet)(object.initialBalance)) + obj.initialBalance = String(object.initialBalance); + if ((0, helpers_1.isSet)(object.sharesDst)) + obj.sharesDst = String(object.sharesDst); + if ((0, helpers_1.isSet)(object.unbondingId)) + obj.unbondingId = BigInt(object.unbondingId.toString()); + if ((0, helpers_1.isSet)(object.unbondingOnHoldRefCount)) + obj.unbondingOnHoldRefCount = BigInt(object.unbondingOnHoldRefCount.toString()); + return obj; }, toJSON(message) { const obj = {}; message.creationHeight !== undefined && - (obj.creationHeight = (message.creationHeight || helpers_1.Long.ZERO).toString()); + (obj.creationHeight = (message.creationHeight || BigInt(0)).toString()); message.completionTime !== undefined && (obj.completionTime = (0, helpers_1.fromTimestamp)(message.completionTime).toISOString()); message.initialBalance !== undefined && (obj.initialBalance = message.initialBalance); message.sharesDst !== undefined && (obj.sharesDst = message.sharesDst); + message.unbondingId !== undefined && (obj.unbondingId = (message.unbondingId || BigInt(0)).toString()); + message.unbondingOnHoldRefCount !== undefined && + (obj.unbondingOnHoldRefCount = (message.unbondingOnHoldRefCount || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseRedelegationEntry(); - message.creationHeight = - object.creationHeight !== undefined && object.creationHeight !== null - ? helpers_1.Long.fromValue(object.creationHeight) - : helpers_1.Long.ZERO; - message.completionTime = - object.completionTime !== undefined && object.completionTime !== null - ? timestamp_1.Timestamp.fromPartial(object.completionTime) - : undefined; + if (object.creationHeight !== undefined && object.creationHeight !== null) { + message.creationHeight = BigInt(object.creationHeight.toString()); + } + if (object.completionTime !== undefined && object.completionTime !== null) { + message.completionTime = timestamp_1.Timestamp.fromPartial(object.completionTime); + } message.initialBalance = object.initialBalance ?? ""; message.sharesDst = object.sharesDst ?? ""; + if (object.unbondingId !== undefined && object.unbondingId !== null) { + message.unbondingId = BigInt(object.unbondingId.toString()); + } + if (object.unbondingOnHoldRefCount !== undefined && object.unbondingOnHoldRefCount !== null) { + message.unbondingOnHoldRefCount = BigInt(object.unbondingOnHoldRefCount.toString()); + } return message; }, }; @@ -79031,7 +74847,8 @@ function createBaseRedelegation() { }; } exports.Redelegation = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.Redelegation", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.delegatorAddress !== "") { writer.uint32(10).string(message.delegatorAddress); } @@ -79047,7 +74864,7 @@ exports.Redelegation = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseRedelegation(); while (reader.pos < end) { @@ -79073,14 +74890,16 @@ exports.Redelegation = { return message; }, fromJSON(object) { - return { - delegatorAddress: (0, helpers_1.isSet)(object.delegatorAddress) ? String(object.delegatorAddress) : "", - validatorSrcAddress: (0, helpers_1.isSet)(object.validatorSrcAddress) ? String(object.validatorSrcAddress) : "", - validatorDstAddress: (0, helpers_1.isSet)(object.validatorDstAddress) ? String(object.validatorDstAddress) : "", - entries: Array.isArray(object?.entries) - ? object.entries.map((e) => exports.RedelegationEntry.fromJSON(e)) - : [], - }; + const obj = createBaseRedelegation(); + if ((0, helpers_1.isSet)(object.delegatorAddress)) + obj.delegatorAddress = String(object.delegatorAddress); + if ((0, helpers_1.isSet)(object.validatorSrcAddress)) + obj.validatorSrcAddress = String(object.validatorSrcAddress); + if ((0, helpers_1.isSet)(object.validatorDstAddress)) + obj.validatorDstAddress = String(object.validatorDstAddress); + if (Array.isArray(object?.entries)) + obj.entries = object.entries.map((e) => exports.RedelegationEntry.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -79106,15 +74925,17 @@ exports.Redelegation = { }; function createBaseParams() { return { - unbondingTime: undefined, + unbondingTime: duration_1.Duration.fromPartial({}), maxValidators: 0, maxEntries: 0, historicalEntries: 0, bondDenom: "", + minCommissionRate: "", }; } exports.Params = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.Params", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.unbondingTime !== undefined) { duration_1.Duration.encode(message.unbondingTime, writer.uint32(10).fork()).ldelim(); } @@ -79130,10 +74951,13 @@ exports.Params = { if (message.bondDenom !== "") { writer.uint32(42).string(message.bondDenom); } + if (message.minCommissionRate !== "") { + writer.uint32(50).string(message.minCommissionRate); + } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseParams(); while (reader.pos < end) { @@ -79154,6 +74978,9 @@ exports.Params = { case 5: message.bondDenom = reader.string(); break; + case 6: + message.minCommissionRate = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -79162,13 +74989,20 @@ exports.Params = { return message; }, fromJSON(object) { - return { - unbondingTime: (0, helpers_1.isSet)(object.unbondingTime) ? duration_1.Duration.fromJSON(object.unbondingTime) : undefined, - maxValidators: (0, helpers_1.isSet)(object.maxValidators) ? Number(object.maxValidators) : 0, - maxEntries: (0, helpers_1.isSet)(object.maxEntries) ? Number(object.maxEntries) : 0, - historicalEntries: (0, helpers_1.isSet)(object.historicalEntries) ? Number(object.historicalEntries) : 0, - bondDenom: (0, helpers_1.isSet)(object.bondDenom) ? String(object.bondDenom) : "", - }; + const obj = createBaseParams(); + if ((0, helpers_1.isSet)(object.unbondingTime)) + obj.unbondingTime = duration_1.Duration.fromJSON(object.unbondingTime); + if ((0, helpers_1.isSet)(object.maxValidators)) + obj.maxValidators = Number(object.maxValidators); + if ((0, helpers_1.isSet)(object.maxEntries)) + obj.maxEntries = Number(object.maxEntries); + if ((0, helpers_1.isSet)(object.historicalEntries)) + obj.historicalEntries = Number(object.historicalEntries); + if ((0, helpers_1.isSet)(object.bondDenom)) + obj.bondDenom = String(object.bondDenom); + if ((0, helpers_1.isSet)(object.minCommissionRate)) + obj.minCommissionRate = String(object.minCommissionRate); + return obj; }, toJSON(message) { const obj = {}; @@ -79179,29 +75013,31 @@ exports.Params = { message.historicalEntries !== undefined && (obj.historicalEntries = Math.round(message.historicalEntries)); message.bondDenom !== undefined && (obj.bondDenom = message.bondDenom); + message.minCommissionRate !== undefined && (obj.minCommissionRate = message.minCommissionRate); return obj; }, fromPartial(object) { const message = createBaseParams(); - message.unbondingTime = - object.unbondingTime !== undefined && object.unbondingTime !== null - ? duration_1.Duration.fromPartial(object.unbondingTime) - : undefined; + if (object.unbondingTime !== undefined && object.unbondingTime !== null) { + message.unbondingTime = duration_1.Duration.fromPartial(object.unbondingTime); + } message.maxValidators = object.maxValidators ?? 0; message.maxEntries = object.maxEntries ?? 0; message.historicalEntries = object.historicalEntries ?? 0; message.bondDenom = object.bondDenom ?? ""; + message.minCommissionRate = object.minCommissionRate ?? ""; return message; }, }; function createBaseDelegationResponse() { return { - delegation: undefined, - balance: undefined, + delegation: exports.Delegation.fromPartial({}), + balance: coin_1.Coin.fromPartial({}), }; } exports.DelegationResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.DelegationResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.delegation !== undefined) { exports.Delegation.encode(message.delegation, writer.uint32(10).fork()).ldelim(); } @@ -79211,7 +75047,7 @@ exports.DelegationResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDelegationResponse(); while (reader.pos < end) { @@ -79231,10 +75067,12 @@ exports.DelegationResponse = { return message; }, fromJSON(object) { - return { - delegation: (0, helpers_1.isSet)(object.delegation) ? exports.Delegation.fromJSON(object.delegation) : undefined, - balance: (0, helpers_1.isSet)(object.balance) ? coin_1.Coin.fromJSON(object.balance) : undefined, - }; + const obj = createBaseDelegationResponse(); + if ((0, helpers_1.isSet)(object.delegation)) + obj.delegation = exports.Delegation.fromJSON(object.delegation); + if ((0, helpers_1.isSet)(object.balance)) + obj.balance = coin_1.Coin.fromJSON(object.balance); + return obj; }, toJSON(message) { const obj = {}; @@ -79246,23 +75084,24 @@ exports.DelegationResponse = { }, fromPartial(object) { const message = createBaseDelegationResponse(); - message.delegation = - object.delegation !== undefined && object.delegation !== null - ? exports.Delegation.fromPartial(object.delegation) - : undefined; - message.balance = - object.balance !== undefined && object.balance !== null ? coin_1.Coin.fromPartial(object.balance) : undefined; + if (object.delegation !== undefined && object.delegation !== null) { + message.delegation = exports.Delegation.fromPartial(object.delegation); + } + if (object.balance !== undefined && object.balance !== null) { + message.balance = coin_1.Coin.fromPartial(object.balance); + } return message; }, }; function createBaseRedelegationEntryResponse() { return { - redelegationEntry: undefined, + redelegationEntry: exports.RedelegationEntry.fromPartial({}), balance: "", }; } exports.RedelegationEntryResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.RedelegationEntryResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.redelegationEntry !== undefined) { exports.RedelegationEntry.encode(message.redelegationEntry, writer.uint32(10).fork()).ldelim(); } @@ -79272,7 +75111,7 @@ exports.RedelegationEntryResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseRedelegationEntryResponse(); while (reader.pos < end) { @@ -79292,12 +75131,12 @@ exports.RedelegationEntryResponse = { return message; }, fromJSON(object) { - return { - redelegationEntry: (0, helpers_1.isSet)(object.redelegationEntry) - ? exports.RedelegationEntry.fromJSON(object.redelegationEntry) - : undefined, - balance: (0, helpers_1.isSet)(object.balance) ? String(object.balance) : "", - }; + const obj = createBaseRedelegationEntryResponse(); + if ((0, helpers_1.isSet)(object.redelegationEntry)) + obj.redelegationEntry = exports.RedelegationEntry.fromJSON(object.redelegationEntry); + if ((0, helpers_1.isSet)(object.balance)) + obj.balance = String(object.balance); + return obj; }, toJSON(message) { const obj = {}; @@ -79310,22 +75149,22 @@ exports.RedelegationEntryResponse = { }, fromPartial(object) { const message = createBaseRedelegationEntryResponse(); - message.redelegationEntry = - object.redelegationEntry !== undefined && object.redelegationEntry !== null - ? exports.RedelegationEntry.fromPartial(object.redelegationEntry) - : undefined; + if (object.redelegationEntry !== undefined && object.redelegationEntry !== null) { + message.redelegationEntry = exports.RedelegationEntry.fromPartial(object.redelegationEntry); + } message.balance = object.balance ?? ""; return message; }, }; function createBaseRedelegationResponse() { return { - redelegation: undefined, + redelegation: exports.Redelegation.fromPartial({}), entries: [], }; } exports.RedelegationResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.RedelegationResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.redelegation !== undefined) { exports.Redelegation.encode(message.redelegation, writer.uint32(10).fork()).ldelim(); } @@ -79335,7 +75174,7 @@ exports.RedelegationResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseRedelegationResponse(); while (reader.pos < end) { @@ -79355,12 +75194,12 @@ exports.RedelegationResponse = { return message; }, fromJSON(object) { - return { - redelegation: (0, helpers_1.isSet)(object.redelegation) ? exports.Redelegation.fromJSON(object.redelegation) : undefined, - entries: Array.isArray(object?.entries) - ? object.entries.map((e) => exports.RedelegationEntryResponse.fromJSON(e)) - : [], - }; + const obj = createBaseRedelegationResponse(); + if ((0, helpers_1.isSet)(object.redelegation)) + obj.redelegation = exports.Redelegation.fromJSON(object.redelegation); + if (Array.isArray(object?.entries)) + obj.entries = object.entries.map((e) => exports.RedelegationEntryResponse.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -79376,10 +75215,9 @@ exports.RedelegationResponse = { }, fromPartial(object) { const message = createBaseRedelegationResponse(); - message.redelegation = - object.redelegation !== undefined && object.redelegation !== null - ? exports.Redelegation.fromPartial(object.redelegation) - : undefined; + if (object.redelegation !== undefined && object.redelegation !== null) { + message.redelegation = exports.Redelegation.fromPartial(object.redelegation); + } message.entries = object.entries?.map((e) => exports.RedelegationEntryResponse.fromPartial(e)) || []; return message; }, @@ -79391,7 +75229,8 @@ function createBasePool() { }; } exports.Pool = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.Pool", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.notBondedTokens !== "") { writer.uint32(10).string(message.notBondedTokens); } @@ -79401,7 +75240,7 @@ exports.Pool = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePool(); while (reader.pos < end) { @@ -79421,10 +75260,12 @@ exports.Pool = { return message; }, fromJSON(object) { - return { - notBondedTokens: (0, helpers_1.isSet)(object.notBondedTokens) ? String(object.notBondedTokens) : "", - bondedTokens: (0, helpers_1.isSet)(object.bondedTokens) ? String(object.bondedTokens) : "", - }; + const obj = createBasePool(); + if ((0, helpers_1.isSet)(object.notBondedTokens)) + obj.notBondedTokens = String(object.notBondedTokens); + if ((0, helpers_1.isSet)(object.bondedTokens)) + obj.bondedTokens = String(object.bondedTokens); + return obj; }, toJSON(message) { const obj = {}; @@ -79439,6 +75280,58 @@ exports.Pool = { return message; }, }; +function createBaseValidatorUpdates() { + return { + updates: [], + }; +} +exports.ValidatorUpdates = { + typeUrl: "/cosmos.staking.v1beta1.ValidatorUpdates", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.updates) { + types_2.ValidatorUpdate.encode(v, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseValidatorUpdates(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.updates.push(types_2.ValidatorUpdate.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseValidatorUpdates(); + if (Array.isArray(object?.updates)) + obj.updates = object.updates.map((e) => types_2.ValidatorUpdate.fromJSON(e)); + return obj; + }, + toJSON(message) { + const obj = {}; + if (message.updates) { + obj.updates = message.updates.map((e) => (e ? types_2.ValidatorUpdate.toJSON(e) : undefined)); + } + else { + obj.updates = []; + } + return obj; + }, + fromPartial(object) { + const message = createBaseValidatorUpdates(); + message.updates = object.updates?.map((e) => types_2.ValidatorUpdate.fromPartial(e)) || []; + return message; + }, +}; //# sourceMappingURL=staking.js.map /***/ }), @@ -79451,52 +75344,30 @@ exports.Pool = { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.MsgClientImpl = exports.MsgUndelegateResponse = exports.MsgUndelegate = exports.MsgBeginRedelegateResponse = exports.MsgBeginRedelegate = exports.MsgDelegateResponse = exports.MsgDelegate = exports.MsgEditValidatorResponse = exports.MsgEditValidator = exports.MsgCreateValidatorResponse = exports.MsgCreateValidator = exports.protobufPackage = void 0; +exports.MsgClientImpl = exports.MsgUpdateParamsResponse = exports.MsgUpdateParams = exports.MsgCancelUnbondingDelegationResponse = exports.MsgCancelUnbondingDelegation = exports.MsgUndelegateResponse = exports.MsgUndelegate = exports.MsgBeginRedelegateResponse = exports.MsgBeginRedelegate = exports.MsgDelegateResponse = exports.MsgDelegate = exports.MsgEditValidatorResponse = exports.MsgEditValidator = exports.MsgCreateValidatorResponse = exports.MsgCreateValidator = exports.protobufPackage = void 0; /* eslint-disable */ const staking_1 = __webpack_require__(/*! ./staking */ "./node_modules/cosmjs-types/cosmos/staking/v1beta1/staking.js"); const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); const timestamp_1 = __webpack_require__(/*! ../../../google/protobuf/timestamp */ "./node_modules/cosmjs-types/google/protobuf/timestamp.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "cosmos.staking.v1beta1"; function createBaseMsgCreateValidator() { return { - description: undefined, - commission: undefined, + description: staking_1.Description.fromPartial({}), + commission: staking_1.CommissionRates.fromPartial({}), minSelfDelegation: "", delegatorAddress: "", validatorAddress: "", pubkey: undefined, - value: undefined, + value: coin_1.Coin.fromPartial({}), }; } exports.MsgCreateValidator = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.MsgCreateValidator", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.description !== undefined) { staking_1.Description.encode(message.description, writer.uint32(10).fork()).ldelim(); } @@ -79521,7 +75392,7 @@ exports.MsgCreateValidator = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgCreateValidator(); while (reader.pos < end) { @@ -79556,15 +75427,22 @@ exports.MsgCreateValidator = { return message; }, fromJSON(object) { - return { - description: (0, helpers_1.isSet)(object.description) ? staking_1.Description.fromJSON(object.description) : undefined, - commission: (0, helpers_1.isSet)(object.commission) ? staking_1.CommissionRates.fromJSON(object.commission) : undefined, - minSelfDelegation: (0, helpers_1.isSet)(object.minSelfDelegation) ? String(object.minSelfDelegation) : "", - delegatorAddress: (0, helpers_1.isSet)(object.delegatorAddress) ? String(object.delegatorAddress) : "", - validatorAddress: (0, helpers_1.isSet)(object.validatorAddress) ? String(object.validatorAddress) : "", - pubkey: (0, helpers_1.isSet)(object.pubkey) ? any_1.Any.fromJSON(object.pubkey) : undefined, - value: (0, helpers_1.isSet)(object.value) ? coin_1.Coin.fromJSON(object.value) : undefined, - }; + const obj = createBaseMsgCreateValidator(); + if ((0, helpers_1.isSet)(object.description)) + obj.description = staking_1.Description.fromJSON(object.description); + if ((0, helpers_1.isSet)(object.commission)) + obj.commission = staking_1.CommissionRates.fromJSON(object.commission); + if ((0, helpers_1.isSet)(object.minSelfDelegation)) + obj.minSelfDelegation = String(object.minSelfDelegation); + if ((0, helpers_1.isSet)(object.delegatorAddress)) + obj.delegatorAddress = String(object.delegatorAddress); + if ((0, helpers_1.isSet)(object.validatorAddress)) + obj.validatorAddress = String(object.validatorAddress); + if ((0, helpers_1.isSet)(object.pubkey)) + obj.pubkey = any_1.Any.fromJSON(object.pubkey); + if ((0, helpers_1.isSet)(object.value)) + obj.value = coin_1.Coin.fromJSON(object.value); + return obj; }, toJSON(message) { const obj = {}; @@ -79581,21 +75459,21 @@ exports.MsgCreateValidator = { }, fromPartial(object) { const message = createBaseMsgCreateValidator(); - message.description = - object.description !== undefined && object.description !== null - ? staking_1.Description.fromPartial(object.description) - : undefined; - message.commission = - object.commission !== undefined && object.commission !== null - ? staking_1.CommissionRates.fromPartial(object.commission) - : undefined; + if (object.description !== undefined && object.description !== null) { + message.description = staking_1.Description.fromPartial(object.description); + } + if (object.commission !== undefined && object.commission !== null) { + message.commission = staking_1.CommissionRates.fromPartial(object.commission); + } message.minSelfDelegation = object.minSelfDelegation ?? ""; message.delegatorAddress = object.delegatorAddress ?? ""; message.validatorAddress = object.validatorAddress ?? ""; - message.pubkey = - object.pubkey !== undefined && object.pubkey !== null ? any_1.Any.fromPartial(object.pubkey) : undefined; - message.value = - object.value !== undefined && object.value !== null ? coin_1.Coin.fromPartial(object.value) : undefined; + if (object.pubkey !== undefined && object.pubkey !== null) { + message.pubkey = any_1.Any.fromPartial(object.pubkey); + } + if (object.value !== undefined && object.value !== null) { + message.value = coin_1.Coin.fromPartial(object.value); + } return message; }, }; @@ -79603,11 +75481,12 @@ function createBaseMsgCreateValidatorResponse() { return {}; } exports.MsgCreateValidatorResponse = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.MsgCreateValidatorResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgCreateValidatorResponse(); while (reader.pos < end) { @@ -79621,7 +75500,8 @@ exports.MsgCreateValidatorResponse = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseMsgCreateValidatorResponse(); + return obj; }, toJSON(_) { const obj = {}; @@ -79634,14 +75514,15 @@ exports.MsgCreateValidatorResponse = { }; function createBaseMsgEditValidator() { return { - description: undefined, + description: staking_1.Description.fromPartial({}), validatorAddress: "", commissionRate: "", minSelfDelegation: "", }; } exports.MsgEditValidator = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.MsgEditValidator", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.description !== undefined) { staking_1.Description.encode(message.description, writer.uint32(10).fork()).ldelim(); } @@ -79657,7 +75538,7 @@ exports.MsgEditValidator = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgEditValidator(); while (reader.pos < end) { @@ -79683,12 +75564,16 @@ exports.MsgEditValidator = { return message; }, fromJSON(object) { - return { - description: (0, helpers_1.isSet)(object.description) ? staking_1.Description.fromJSON(object.description) : undefined, - validatorAddress: (0, helpers_1.isSet)(object.validatorAddress) ? String(object.validatorAddress) : "", - commissionRate: (0, helpers_1.isSet)(object.commissionRate) ? String(object.commissionRate) : "", - minSelfDelegation: (0, helpers_1.isSet)(object.minSelfDelegation) ? String(object.minSelfDelegation) : "", - }; + const obj = createBaseMsgEditValidator(); + if ((0, helpers_1.isSet)(object.description)) + obj.description = staking_1.Description.fromJSON(object.description); + if ((0, helpers_1.isSet)(object.validatorAddress)) + obj.validatorAddress = String(object.validatorAddress); + if ((0, helpers_1.isSet)(object.commissionRate)) + obj.commissionRate = String(object.commissionRate); + if ((0, helpers_1.isSet)(object.minSelfDelegation)) + obj.minSelfDelegation = String(object.minSelfDelegation); + return obj; }, toJSON(message) { const obj = {}; @@ -79701,10 +75586,9 @@ exports.MsgEditValidator = { }, fromPartial(object) { const message = createBaseMsgEditValidator(); - message.description = - object.description !== undefined && object.description !== null - ? staking_1.Description.fromPartial(object.description) - : undefined; + if (object.description !== undefined && object.description !== null) { + message.description = staking_1.Description.fromPartial(object.description); + } message.validatorAddress = object.validatorAddress ?? ""; message.commissionRate = object.commissionRate ?? ""; message.minSelfDelegation = object.minSelfDelegation ?? ""; @@ -79715,11 +75599,12 @@ function createBaseMsgEditValidatorResponse() { return {}; } exports.MsgEditValidatorResponse = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.MsgEditValidatorResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgEditValidatorResponse(); while (reader.pos < end) { @@ -79733,7 +75618,8 @@ exports.MsgEditValidatorResponse = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseMsgEditValidatorResponse(); + return obj; }, toJSON(_) { const obj = {}; @@ -79748,11 +75634,12 @@ function createBaseMsgDelegate() { return { delegatorAddress: "", validatorAddress: "", - amount: undefined, + amount: coin_1.Coin.fromPartial({}), }; } exports.MsgDelegate = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.MsgDelegate", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.delegatorAddress !== "") { writer.uint32(10).string(message.delegatorAddress); } @@ -79765,7 +75652,7 @@ exports.MsgDelegate = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgDelegate(); while (reader.pos < end) { @@ -79788,11 +75675,14 @@ exports.MsgDelegate = { return message; }, fromJSON(object) { - return { - delegatorAddress: (0, helpers_1.isSet)(object.delegatorAddress) ? String(object.delegatorAddress) : "", - validatorAddress: (0, helpers_1.isSet)(object.validatorAddress) ? String(object.validatorAddress) : "", - amount: (0, helpers_1.isSet)(object.amount) ? coin_1.Coin.fromJSON(object.amount) : undefined, - }; + const obj = createBaseMsgDelegate(); + if ((0, helpers_1.isSet)(object.delegatorAddress)) + obj.delegatorAddress = String(object.delegatorAddress); + if ((0, helpers_1.isSet)(object.validatorAddress)) + obj.validatorAddress = String(object.validatorAddress); + if ((0, helpers_1.isSet)(object.amount)) + obj.amount = coin_1.Coin.fromJSON(object.amount); + return obj; }, toJSON(message) { const obj = {}; @@ -79805,8 +75695,9 @@ exports.MsgDelegate = { const message = createBaseMsgDelegate(); message.delegatorAddress = object.delegatorAddress ?? ""; message.validatorAddress = object.validatorAddress ?? ""; - message.amount = - object.amount !== undefined && object.amount !== null ? coin_1.Coin.fromPartial(object.amount) : undefined; + if (object.amount !== undefined && object.amount !== null) { + message.amount = coin_1.Coin.fromPartial(object.amount); + } return message; }, }; @@ -79814,11 +75705,12 @@ function createBaseMsgDelegateResponse() { return {}; } exports.MsgDelegateResponse = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.MsgDelegateResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgDelegateResponse(); while (reader.pos < end) { @@ -79832,7 +75724,8 @@ exports.MsgDelegateResponse = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseMsgDelegateResponse(); + return obj; }, toJSON(_) { const obj = {}; @@ -79848,11 +75741,12 @@ function createBaseMsgBeginRedelegate() { delegatorAddress: "", validatorSrcAddress: "", validatorDstAddress: "", - amount: undefined, + amount: coin_1.Coin.fromPartial({}), }; } exports.MsgBeginRedelegate = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.MsgBeginRedelegate", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.delegatorAddress !== "") { writer.uint32(10).string(message.delegatorAddress); } @@ -79868,7 +75762,7 @@ exports.MsgBeginRedelegate = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgBeginRedelegate(); while (reader.pos < end) { @@ -79894,12 +75788,16 @@ exports.MsgBeginRedelegate = { return message; }, fromJSON(object) { - return { - delegatorAddress: (0, helpers_1.isSet)(object.delegatorAddress) ? String(object.delegatorAddress) : "", - validatorSrcAddress: (0, helpers_1.isSet)(object.validatorSrcAddress) ? String(object.validatorSrcAddress) : "", - validatorDstAddress: (0, helpers_1.isSet)(object.validatorDstAddress) ? String(object.validatorDstAddress) : "", - amount: (0, helpers_1.isSet)(object.amount) ? coin_1.Coin.fromJSON(object.amount) : undefined, - }; + const obj = createBaseMsgBeginRedelegate(); + if ((0, helpers_1.isSet)(object.delegatorAddress)) + obj.delegatorAddress = String(object.delegatorAddress); + if ((0, helpers_1.isSet)(object.validatorSrcAddress)) + obj.validatorSrcAddress = String(object.validatorSrcAddress); + if ((0, helpers_1.isSet)(object.validatorDstAddress)) + obj.validatorDstAddress = String(object.validatorDstAddress); + if ((0, helpers_1.isSet)(object.amount)) + obj.amount = coin_1.Coin.fromJSON(object.amount); + return obj; }, toJSON(message) { const obj = {}; @@ -79914,25 +75812,27 @@ exports.MsgBeginRedelegate = { message.delegatorAddress = object.delegatorAddress ?? ""; message.validatorSrcAddress = object.validatorSrcAddress ?? ""; message.validatorDstAddress = object.validatorDstAddress ?? ""; - message.amount = - object.amount !== undefined && object.amount !== null ? coin_1.Coin.fromPartial(object.amount) : undefined; + if (object.amount !== undefined && object.amount !== null) { + message.amount = coin_1.Coin.fromPartial(object.amount); + } return message; }, }; function createBaseMsgBeginRedelegateResponse() { return { - completionTime: undefined, + completionTime: timestamp_1.Timestamp.fromPartial({}), }; } exports.MsgBeginRedelegateResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.MsgBeginRedelegateResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.completionTime !== undefined) { timestamp_1.Timestamp.encode(message.completionTime, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgBeginRedelegateResponse(); while (reader.pos < end) { @@ -79949,9 +75849,10 @@ exports.MsgBeginRedelegateResponse = { return message; }, fromJSON(object) { - return { - completionTime: (0, helpers_1.isSet)(object.completionTime) ? (0, helpers_1.fromJsonTimestamp)(object.completionTime) : undefined, - }; + const obj = createBaseMsgBeginRedelegateResponse(); + if ((0, helpers_1.isSet)(object.completionTime)) + obj.completionTime = (0, helpers_1.fromJsonTimestamp)(object.completionTime); + return obj; }, toJSON(message) { const obj = {}; @@ -79961,10 +75862,9 @@ exports.MsgBeginRedelegateResponse = { }, fromPartial(object) { const message = createBaseMsgBeginRedelegateResponse(); - message.completionTime = - object.completionTime !== undefined && object.completionTime !== null - ? timestamp_1.Timestamp.fromPartial(object.completionTime) - : undefined; + if (object.completionTime !== undefined && object.completionTime !== null) { + message.completionTime = timestamp_1.Timestamp.fromPartial(object.completionTime); + } return message; }, }; @@ -79972,11 +75872,12 @@ function createBaseMsgUndelegate() { return { delegatorAddress: "", validatorAddress: "", - amount: undefined, + amount: coin_1.Coin.fromPartial({}), }; } exports.MsgUndelegate = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.MsgUndelegate", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.delegatorAddress !== "") { writer.uint32(10).string(message.delegatorAddress); } @@ -79989,7 +75890,7 @@ exports.MsgUndelegate = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgUndelegate(); while (reader.pos < end) { @@ -80012,11 +75913,14 @@ exports.MsgUndelegate = { return message; }, fromJSON(object) { - return { - delegatorAddress: (0, helpers_1.isSet)(object.delegatorAddress) ? String(object.delegatorAddress) : "", - validatorAddress: (0, helpers_1.isSet)(object.validatorAddress) ? String(object.validatorAddress) : "", - amount: (0, helpers_1.isSet)(object.amount) ? coin_1.Coin.fromJSON(object.amount) : undefined, - }; + const obj = createBaseMsgUndelegate(); + if ((0, helpers_1.isSet)(object.delegatorAddress)) + obj.delegatorAddress = String(object.delegatorAddress); + if ((0, helpers_1.isSet)(object.validatorAddress)) + obj.validatorAddress = String(object.validatorAddress); + if ((0, helpers_1.isSet)(object.amount)) + obj.amount = coin_1.Coin.fromJSON(object.amount); + return obj; }, toJSON(message) { const obj = {}; @@ -80029,25 +75933,27 @@ exports.MsgUndelegate = { const message = createBaseMsgUndelegate(); message.delegatorAddress = object.delegatorAddress ?? ""; message.validatorAddress = object.validatorAddress ?? ""; - message.amount = - object.amount !== undefined && object.amount !== null ? coin_1.Coin.fromPartial(object.amount) : undefined; + if (object.amount !== undefined && object.amount !== null) { + message.amount = coin_1.Coin.fromPartial(object.amount); + } return message; }, }; function createBaseMsgUndelegateResponse() { return { - completionTime: undefined, + completionTime: timestamp_1.Timestamp.fromPartial({}), }; } exports.MsgUndelegateResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.staking.v1beta1.MsgUndelegateResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.completionTime !== undefined) { timestamp_1.Timestamp.encode(message.completionTime, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgUndelegateResponse(); while (reader.pos < end) { @@ -80064,9 +75970,10 @@ exports.MsgUndelegateResponse = { return message; }, fromJSON(object) { - return { - completionTime: (0, helpers_1.isSet)(object.completionTime) ? (0, helpers_1.fromJsonTimestamp)(object.completionTime) : undefined, - }; + const obj = createBaseMsgUndelegateResponse(); + if ((0, helpers_1.isSet)(object.completionTime)) + obj.completionTime = (0, helpers_1.fromJsonTimestamp)(object.completionTime); + return obj; }, toJSON(message) { const obj = {}; @@ -80076,10 +75983,224 @@ exports.MsgUndelegateResponse = { }, fromPartial(object) { const message = createBaseMsgUndelegateResponse(); - message.completionTime = - object.completionTime !== undefined && object.completionTime !== null - ? timestamp_1.Timestamp.fromPartial(object.completionTime) - : undefined; + if (object.completionTime !== undefined && object.completionTime !== null) { + message.completionTime = timestamp_1.Timestamp.fromPartial(object.completionTime); + } + return message; + }, +}; +function createBaseMsgCancelUnbondingDelegation() { + return { + delegatorAddress: "", + validatorAddress: "", + amount: coin_1.Coin.fromPartial({}), + creationHeight: BigInt(0), + }; +} +exports.MsgCancelUnbondingDelegation = { + typeUrl: "/cosmos.staking.v1beta1.MsgCancelUnbondingDelegation", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.delegatorAddress !== "") { + writer.uint32(10).string(message.delegatorAddress); + } + if (message.validatorAddress !== "") { + writer.uint32(18).string(message.validatorAddress); + } + if (message.amount !== undefined) { + coin_1.Coin.encode(message.amount, writer.uint32(26).fork()).ldelim(); + } + if (message.creationHeight !== BigInt(0)) { + writer.uint32(32).int64(message.creationHeight); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgCancelUnbondingDelegation(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.delegatorAddress = reader.string(); + break; + case 2: + message.validatorAddress = reader.string(); + break; + case 3: + message.amount = coin_1.Coin.decode(reader, reader.uint32()); + break; + case 4: + message.creationHeight = reader.int64(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseMsgCancelUnbondingDelegation(); + if ((0, helpers_1.isSet)(object.delegatorAddress)) + obj.delegatorAddress = String(object.delegatorAddress); + if ((0, helpers_1.isSet)(object.validatorAddress)) + obj.validatorAddress = String(object.validatorAddress); + if ((0, helpers_1.isSet)(object.amount)) + obj.amount = coin_1.Coin.fromJSON(object.amount); + if ((0, helpers_1.isSet)(object.creationHeight)) + obj.creationHeight = BigInt(object.creationHeight.toString()); + return obj; + }, + toJSON(message) { + const obj = {}; + message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress); + message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress); + message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined); + message.creationHeight !== undefined && + (obj.creationHeight = (message.creationHeight || BigInt(0)).toString()); + return obj; + }, + fromPartial(object) { + const message = createBaseMsgCancelUnbondingDelegation(); + message.delegatorAddress = object.delegatorAddress ?? ""; + message.validatorAddress = object.validatorAddress ?? ""; + if (object.amount !== undefined && object.amount !== null) { + message.amount = coin_1.Coin.fromPartial(object.amount); + } + if (object.creationHeight !== undefined && object.creationHeight !== null) { + message.creationHeight = BigInt(object.creationHeight.toString()); + } + return message; + }, +}; +function createBaseMsgCancelUnbondingDelegationResponse() { + return {}; +} +exports.MsgCancelUnbondingDelegationResponse = { + typeUrl: "/cosmos.staking.v1beta1.MsgCancelUnbondingDelegationResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgCancelUnbondingDelegationResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_) { + const obj = createBaseMsgCancelUnbondingDelegationResponse(); + return obj; + }, + toJSON(_) { + const obj = {}; + return obj; + }, + fromPartial(_) { + const message = createBaseMsgCancelUnbondingDelegationResponse(); + return message; + }, +}; +function createBaseMsgUpdateParams() { + return { + authority: "", + params: staking_1.Params.fromPartial({}), + }; +} +exports.MsgUpdateParams = { + typeUrl: "/cosmos.staking.v1beta1.MsgUpdateParams", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.authority !== "") { + writer.uint32(10).string(message.authority); + } + if (message.params !== undefined) { + staking_1.Params.encode(message.params, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgUpdateParams(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.authority = reader.string(); + break; + case 2: + message.params = staking_1.Params.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseMsgUpdateParams(); + if ((0, helpers_1.isSet)(object.authority)) + obj.authority = String(object.authority); + if ((0, helpers_1.isSet)(object.params)) + obj.params = staking_1.Params.fromJSON(object.params); + return obj; + }, + toJSON(message) { + const obj = {}; + message.authority !== undefined && (obj.authority = message.authority); + message.params !== undefined && (obj.params = message.params ? staking_1.Params.toJSON(message.params) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseMsgUpdateParams(); + message.authority = object.authority ?? ""; + if (object.params !== undefined && object.params !== null) { + message.params = staking_1.Params.fromPartial(object.params); + } + return message; + }, +}; +function createBaseMsgUpdateParamsResponse() { + return {}; +} +exports.MsgUpdateParamsResponse = { + typeUrl: "/cosmos.staking.v1beta1.MsgUpdateParamsResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgUpdateParamsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_) { + const obj = createBaseMsgUpdateParamsResponse(); + return obj; + }, + toJSON(_) { + const obj = {}; + return obj; + }, + fromPartial(_) { + const message = createBaseMsgUpdateParamsResponse(); return message; }, }; @@ -80091,31 +76212,43 @@ class MsgClientImpl { this.Delegate = this.Delegate.bind(this); this.BeginRedelegate = this.BeginRedelegate.bind(this); this.Undelegate = this.Undelegate.bind(this); + this.CancelUnbondingDelegation = this.CancelUnbondingDelegation.bind(this); + this.UpdateParams = this.UpdateParams.bind(this); } CreateValidator(request) { const data = exports.MsgCreateValidator.encode(request).finish(); const promise = this.rpc.request("cosmos.staking.v1beta1.Msg", "CreateValidator", data); - return promise.then((data) => exports.MsgCreateValidatorResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.MsgCreateValidatorResponse.decode(new binary_1.BinaryReader(data))); } EditValidator(request) { const data = exports.MsgEditValidator.encode(request).finish(); const promise = this.rpc.request("cosmos.staking.v1beta1.Msg", "EditValidator", data); - return promise.then((data) => exports.MsgEditValidatorResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.MsgEditValidatorResponse.decode(new binary_1.BinaryReader(data))); } Delegate(request) { const data = exports.MsgDelegate.encode(request).finish(); const promise = this.rpc.request("cosmos.staking.v1beta1.Msg", "Delegate", data); - return promise.then((data) => exports.MsgDelegateResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.MsgDelegateResponse.decode(new binary_1.BinaryReader(data))); } BeginRedelegate(request) { const data = exports.MsgBeginRedelegate.encode(request).finish(); const promise = this.rpc.request("cosmos.staking.v1beta1.Msg", "BeginRedelegate", data); - return promise.then((data) => exports.MsgBeginRedelegateResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.MsgBeginRedelegateResponse.decode(new binary_1.BinaryReader(data))); } Undelegate(request) { const data = exports.MsgUndelegate.encode(request).finish(); const promise = this.rpc.request("cosmos.staking.v1beta1.Msg", "Undelegate", data); - return promise.then((data) => exports.MsgUndelegateResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.MsgUndelegateResponse.decode(new binary_1.BinaryReader(data))); + } + CancelUnbondingDelegation(request) { + const data = exports.MsgCancelUnbondingDelegation.encode(request).finish(); + const promise = this.rpc.request("cosmos.staking.v1beta1.Msg", "CancelUnbondingDelegation", data); + return promise.then((data) => exports.MsgCancelUnbondingDelegationResponse.decode(new binary_1.BinaryReader(data))); + } + UpdateParams(request) { + const data = exports.MsgUpdateParams.encode(request).finish(); + const promise = this.rpc.request("cosmos.staking.v1beta1.Msg", "UpdateParams", data); + return promise.then((data) => exports.MsgUpdateParamsResponse.decode(new binary_1.BinaryReader(data))); } } exports.MsgClientImpl = MsgClientImpl; @@ -80131,59 +76264,54 @@ exports.MsgClientImpl = MsgClientImpl; "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.SignatureDescriptor_Data_Multi = exports.SignatureDescriptor_Data_Single = exports.SignatureDescriptor_Data = exports.SignatureDescriptor = exports.SignatureDescriptors = exports.signModeToJSON = exports.signModeFromJSON = exports.SignMode = exports.protobufPackage = void 0; /* eslint-disable */ const multisig_1 = __webpack_require__(/*! ../../../crypto/multisig/v1beta1/multisig */ "./node_modules/cosmjs-types/cosmos/crypto/multisig/v1beta1/multisig.js"); const any_1 = __webpack_require__(/*! ../../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "cosmos.tx.signing.v1beta1"; -/** SignMode represents a signing mode with its own security guarantees. */ +/** + * SignMode represents a signing mode with its own security guarantees. + * + * This enum should be considered a registry of all known sign modes + * in the Cosmos ecosystem. Apps are not expected to support all known + * sign modes. Apps that would like to support custom sign modes are + * encouraged to open a small PR against this file to add a new case + * to this SignMode enum describing their sign mode so that different + * apps have a consistent version of this enum. + */ var SignMode; (function (SignMode) { /** * SIGN_MODE_UNSPECIFIED - SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be - * rejected + * rejected. */ SignMode[SignMode["SIGN_MODE_UNSPECIFIED"] = 0] = "SIGN_MODE_UNSPECIFIED"; /** * SIGN_MODE_DIRECT - SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is - * verified with raw bytes from Tx + * verified with raw bytes from Tx. */ SignMode[SignMode["SIGN_MODE_DIRECT"] = 1] = "SIGN_MODE_DIRECT"; /** * SIGN_MODE_TEXTUAL - SIGN_MODE_TEXTUAL is a future signing mode that will verify some * human-readable textual representation on top of the binary representation - * from SIGN_MODE_DIRECT + * from SIGN_MODE_DIRECT. It is currently not supported. */ SignMode[SignMode["SIGN_MODE_TEXTUAL"] = 2] = "SIGN_MODE_TEXTUAL"; + /** + * SIGN_MODE_DIRECT_AUX - SIGN_MODE_DIRECT_AUX specifies a signing mode which uses + * SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, this sign mode does not + * require signers signing over other signers' `signer_info`. It also allows + * for adding Tips in transactions. + * + * Since: cosmos-sdk 0.46 + */ + SignMode[SignMode["SIGN_MODE_DIRECT_AUX"] = 3] = "SIGN_MODE_DIRECT_AUX"; /** * SIGN_MODE_LEGACY_AMINO_JSON - SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses - * Amino JSON and will be removed in the future + * Amino JSON and will be removed in the future. */ SignMode[SignMode["SIGN_MODE_LEGACY_AMINO_JSON"] = 127] = "SIGN_MODE_LEGACY_AMINO_JSON"; /** @@ -80200,7 +76328,7 @@ var SignMode; */ SignMode[SignMode["SIGN_MODE_EIP_191"] = 191] = "SIGN_MODE_EIP_191"; SignMode[SignMode["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(SignMode = exports.SignMode || (exports.SignMode = {})); +})(SignMode || (exports.SignMode = SignMode = {})); function signModeFromJSON(object) { switch (object) { case 0: @@ -80212,6 +76340,9 @@ function signModeFromJSON(object) { case 2: case "SIGN_MODE_TEXTUAL": return SignMode.SIGN_MODE_TEXTUAL; + case 3: + case "SIGN_MODE_DIRECT_AUX": + return SignMode.SIGN_MODE_DIRECT_AUX; case 127: case "SIGN_MODE_LEGACY_AMINO_JSON": return SignMode.SIGN_MODE_LEGACY_AMINO_JSON; @@ -80233,6 +76364,8 @@ function signModeToJSON(object) { return "SIGN_MODE_DIRECT"; case SignMode.SIGN_MODE_TEXTUAL: return "SIGN_MODE_TEXTUAL"; + case SignMode.SIGN_MODE_DIRECT_AUX: + return "SIGN_MODE_DIRECT_AUX"; case SignMode.SIGN_MODE_LEGACY_AMINO_JSON: return "SIGN_MODE_LEGACY_AMINO_JSON"; case SignMode.SIGN_MODE_EIP_191: @@ -80249,14 +76382,15 @@ function createBaseSignatureDescriptors() { }; } exports.SignatureDescriptors = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.signing.v1beta1.SignatureDescriptors", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.signatures) { exports.SignatureDescriptor.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSignatureDescriptors(); while (reader.pos < end) { @@ -80273,11 +76407,10 @@ exports.SignatureDescriptors = { return message; }, fromJSON(object) { - return { - signatures: Array.isArray(object?.signatures) - ? object.signatures.map((e) => exports.SignatureDescriptor.fromJSON(e)) - : [], - }; + const obj = createBaseSignatureDescriptors(); + if (Array.isArray(object?.signatures)) + obj.signatures = object.signatures.map((e) => exports.SignatureDescriptor.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -80299,24 +76432,25 @@ function createBaseSignatureDescriptor() { return { publicKey: undefined, data: undefined, - sequence: helpers_1.Long.UZERO, + sequence: BigInt(0), }; } exports.SignatureDescriptor = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.signing.v1beta1.SignatureDescriptor", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.publicKey !== undefined) { any_1.Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim(); } if (message.data !== undefined) { exports.SignatureDescriptor_Data.encode(message.data, writer.uint32(18).fork()).ldelim(); } - if (!message.sequence.isZero()) { + if (message.sequence !== BigInt(0)) { writer.uint32(24).uint64(message.sequence); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSignatureDescriptor(); while (reader.pos < end) { @@ -80339,11 +76473,14 @@ exports.SignatureDescriptor = { return message; }, fromJSON(object) { - return { - publicKey: (0, helpers_1.isSet)(object.publicKey) ? any_1.Any.fromJSON(object.publicKey) : undefined, - data: (0, helpers_1.isSet)(object.data) ? exports.SignatureDescriptor_Data.fromJSON(object.data) : undefined, - sequence: (0, helpers_1.isSet)(object.sequence) ? helpers_1.Long.fromValue(object.sequence) : helpers_1.Long.UZERO, - }; + const obj = createBaseSignatureDescriptor(); + if ((0, helpers_1.isSet)(object.publicKey)) + obj.publicKey = any_1.Any.fromJSON(object.publicKey); + if ((0, helpers_1.isSet)(object.data)) + obj.data = exports.SignatureDescriptor_Data.fromJSON(object.data); + if ((0, helpers_1.isSet)(object.sequence)) + obj.sequence = BigInt(object.sequence.toString()); + return obj; }, toJSON(message) { const obj = {}; @@ -80351,23 +76488,20 @@ exports.SignatureDescriptor = { (obj.publicKey = message.publicKey ? any_1.Any.toJSON(message.publicKey) : undefined); message.data !== undefined && (obj.data = message.data ? exports.SignatureDescriptor_Data.toJSON(message.data) : undefined); - message.sequence !== undefined && (obj.sequence = (message.sequence || helpers_1.Long.UZERO).toString()); + message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseSignatureDescriptor(); - message.publicKey = - object.publicKey !== undefined && object.publicKey !== null - ? any_1.Any.fromPartial(object.publicKey) - : undefined; - message.data = - object.data !== undefined && object.data !== null - ? exports.SignatureDescriptor_Data.fromPartial(object.data) - : undefined; - message.sequence = - object.sequence !== undefined && object.sequence !== null - ? helpers_1.Long.fromValue(object.sequence) - : helpers_1.Long.UZERO; + if (object.publicKey !== undefined && object.publicKey !== null) { + message.publicKey = any_1.Any.fromPartial(object.publicKey); + } + if (object.data !== undefined && object.data !== null) { + message.data = exports.SignatureDescriptor_Data.fromPartial(object.data); + } + if (object.sequence !== undefined && object.sequence !== null) { + message.sequence = BigInt(object.sequence.toString()); + } return message; }, }; @@ -80378,7 +76512,8 @@ function createBaseSignatureDescriptor_Data() { }; } exports.SignatureDescriptor_Data = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.signing.v1beta1.Data", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.single !== undefined) { exports.SignatureDescriptor_Data_Single.encode(message.single, writer.uint32(10).fork()).ldelim(); } @@ -80388,7 +76523,7 @@ exports.SignatureDescriptor_Data = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSignatureDescriptor_Data(); while (reader.pos < end) { @@ -80408,10 +76543,12 @@ exports.SignatureDescriptor_Data = { return message; }, fromJSON(object) { - return { - single: (0, helpers_1.isSet)(object.single) ? exports.SignatureDescriptor_Data_Single.fromJSON(object.single) : undefined, - multi: (0, helpers_1.isSet)(object.multi) ? exports.SignatureDescriptor_Data_Multi.fromJSON(object.multi) : undefined, - }; + const obj = createBaseSignatureDescriptor_Data(); + if ((0, helpers_1.isSet)(object.single)) + obj.single = exports.SignatureDescriptor_Data_Single.fromJSON(object.single); + if ((0, helpers_1.isSet)(object.multi)) + obj.multi = exports.SignatureDescriptor_Data_Multi.fromJSON(object.multi); + return obj; }, toJSON(message) { const obj = {}; @@ -80423,14 +76560,12 @@ exports.SignatureDescriptor_Data = { }, fromPartial(object) { const message = createBaseSignatureDescriptor_Data(); - message.single = - object.single !== undefined && object.single !== null - ? exports.SignatureDescriptor_Data_Single.fromPartial(object.single) - : undefined; - message.multi = - object.multi !== undefined && object.multi !== null - ? exports.SignatureDescriptor_Data_Multi.fromPartial(object.multi) - : undefined; + if (object.single !== undefined && object.single !== null) { + message.single = exports.SignatureDescriptor_Data_Single.fromPartial(object.single); + } + if (object.multi !== undefined && object.multi !== null) { + message.multi = exports.SignatureDescriptor_Data_Multi.fromPartial(object.multi); + } return message; }, }; @@ -80441,7 +76576,8 @@ function createBaseSignatureDescriptor_Data_Single() { }; } exports.SignatureDescriptor_Data_Single = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.signing.v1beta1.Single", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.mode !== 0) { writer.uint32(8).int32(message.mode); } @@ -80451,7 +76587,7 @@ exports.SignatureDescriptor_Data_Single = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSignatureDescriptor_Data_Single(); while (reader.pos < end) { @@ -80471,10 +76607,12 @@ exports.SignatureDescriptor_Data_Single = { return message; }, fromJSON(object) { - return { - mode: (0, helpers_1.isSet)(object.mode) ? signModeFromJSON(object.mode) : 0, - signature: (0, helpers_1.isSet)(object.signature) ? (0, helpers_1.bytesFromBase64)(object.signature) : new Uint8Array(), - }; + const obj = createBaseSignatureDescriptor_Data_Single(); + if ((0, helpers_1.isSet)(object.mode)) + obj.mode = signModeFromJSON(object.mode); + if ((0, helpers_1.isSet)(object.signature)) + obj.signature = (0, helpers_1.bytesFromBase64)(object.signature); + return obj; }, toJSON(message) { const obj = {}; @@ -80497,7 +76635,8 @@ function createBaseSignatureDescriptor_Data_Multi() { }; } exports.SignatureDescriptor_Data_Multi = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.signing.v1beta1.Multi", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.bitarray !== undefined) { multisig_1.CompactBitArray.encode(message.bitarray, writer.uint32(10).fork()).ldelim(); } @@ -80507,7 +76646,7 @@ exports.SignatureDescriptor_Data_Multi = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSignatureDescriptor_Data_Multi(); while (reader.pos < end) { @@ -80527,12 +76666,12 @@ exports.SignatureDescriptor_Data_Multi = { return message; }, fromJSON(object) { - return { - bitarray: (0, helpers_1.isSet)(object.bitarray) ? multisig_1.CompactBitArray.fromJSON(object.bitarray) : undefined, - signatures: Array.isArray(object?.signatures) - ? object.signatures.map((e) => exports.SignatureDescriptor_Data.fromJSON(e)) - : [], - }; + const obj = createBaseSignatureDescriptor_Data_Multi(); + if ((0, helpers_1.isSet)(object.bitarray)) + obj.bitarray = multisig_1.CompactBitArray.fromJSON(object.bitarray); + if (Array.isArray(object?.signatures)) + obj.signatures = object.signatures.map((e) => exports.SignatureDescriptor_Data.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -80548,10 +76687,9 @@ exports.SignatureDescriptor_Data_Multi = { }, fromPartial(object) { const message = createBaseSignatureDescriptor_Data_Multi(); - message.bitarray = - object.bitarray !== undefined && object.bitarray !== null - ? multisig_1.CompactBitArray.fromPartial(object.bitarray) - : undefined; + if (object.bitarray !== undefined && object.bitarray !== null) { + message.bitarray = multisig_1.CompactBitArray.fromPartial(object.bitarray); + } message.signatures = object.signatures?.map((e) => exports.SignatureDescriptor_Data.fromPartial(e)) || []; return message; }, @@ -80568,38 +76706,15 @@ exports.SignatureDescriptor_Data_Multi = { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ServiceClientImpl = exports.GetBlockWithTxsResponse = exports.GetBlockWithTxsRequest = exports.GetTxResponse = exports.GetTxRequest = exports.SimulateResponse = exports.SimulateRequest = exports.BroadcastTxResponse = exports.BroadcastTxRequest = exports.GetTxsEventResponse = exports.GetTxsEventRequest = exports.broadcastModeToJSON = exports.broadcastModeFromJSON = exports.BroadcastMode = exports.orderByToJSON = exports.orderByFromJSON = exports.OrderBy = exports.protobufPackage = void 0; +exports.ServiceClientImpl = exports.TxDecodeAminoResponse = exports.TxDecodeAminoRequest = exports.TxEncodeAminoResponse = exports.TxEncodeAminoRequest = exports.TxEncodeResponse = exports.TxEncodeRequest = exports.TxDecodeResponse = exports.TxDecodeRequest = exports.GetBlockWithTxsResponse = exports.GetBlockWithTxsRequest = exports.GetTxResponse = exports.GetTxRequest = exports.SimulateResponse = exports.SimulateRequest = exports.BroadcastTxResponse = exports.BroadcastTxRequest = exports.GetTxsEventResponse = exports.GetTxsEventRequest = exports.broadcastModeToJSON = exports.broadcastModeFromJSON = exports.BroadcastMode = exports.orderByToJSON = exports.orderByFromJSON = exports.OrderBy = exports.protobufPackage = void 0; /* eslint-disable */ const tx_1 = __webpack_require__(/*! ./tx */ "./node_modules/cosmjs-types/cosmos/tx/v1beta1/tx.js"); const pagination_1 = __webpack_require__(/*! ../../base/query/v1beta1/pagination */ "./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js"); const abci_1 = __webpack_require__(/*! ../../base/abci/v1beta1/abci */ "./node_modules/cosmjs-types/cosmos/base/abci/v1beta1/abci.js"); const types_1 = __webpack_require__(/*! ../../../tendermint/types/types */ "./node_modules/cosmjs-types/tendermint/types/types.js"); const block_1 = __webpack_require__(/*! ../../../tendermint/types/block */ "./node_modules/cosmjs-types/tendermint/types/block.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "cosmos.tx.v1beta1"; /** OrderBy defines the sorting order */ @@ -80612,7 +76727,7 @@ var OrderBy; /** ORDER_BY_DESC - ORDER_BY_DESC defines descending order */ OrderBy[OrderBy["ORDER_BY_DESC"] = 2] = "ORDER_BY_DESC"; OrderBy[OrderBy["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(OrderBy = exports.OrderBy || (exports.OrderBy = {})); +})(OrderBy || (exports.OrderBy = OrderBy = {})); function orderByFromJSON(object) { switch (object) { case 0: @@ -80651,8 +76766,8 @@ var BroadcastMode; /** BROADCAST_MODE_UNSPECIFIED - zero-value for mode ordering */ BroadcastMode[BroadcastMode["BROADCAST_MODE_UNSPECIFIED"] = 0] = "BROADCAST_MODE_UNSPECIFIED"; /** - * BROADCAST_MODE_BLOCK - BROADCAST_MODE_BLOCK defines a tx broadcasting mode where the client waits for - * the tx to be committed in a block. + * BROADCAST_MODE_BLOCK - DEPRECATED: use BROADCAST_MODE_SYNC instead, + * BROADCAST_MODE_BLOCK is not supported by the SDK from v0.47.x onwards. */ BroadcastMode[BroadcastMode["BROADCAST_MODE_BLOCK"] = 1] = "BROADCAST_MODE_BLOCK"; /** @@ -80666,7 +76781,7 @@ var BroadcastMode; */ BroadcastMode[BroadcastMode["BROADCAST_MODE_ASYNC"] = 3] = "BROADCAST_MODE_ASYNC"; BroadcastMode[BroadcastMode["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(BroadcastMode = exports.BroadcastMode || (exports.BroadcastMode = {})); +})(BroadcastMode || (exports.BroadcastMode = BroadcastMode = {})); function broadcastModeFromJSON(object) { switch (object) { case 0: @@ -80709,10 +76824,13 @@ function createBaseGetTxsEventRequest() { events: [], pagination: undefined, orderBy: 0, + page: BigInt(0), + limit: BigInt(0), }; } exports.GetTxsEventRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.v1beta1.GetTxsEventRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.events) { writer.uint32(10).string(v); } @@ -80722,10 +76840,16 @@ exports.GetTxsEventRequest = { if (message.orderBy !== 0) { writer.uint32(24).int32(message.orderBy); } + if (message.page !== BigInt(0)) { + writer.uint32(32).uint64(message.page); + } + if (message.limit !== BigInt(0)) { + writer.uint32(40).uint64(message.limit); + } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetTxsEventRequest(); while (reader.pos < end) { @@ -80740,6 +76864,12 @@ exports.GetTxsEventRequest = { case 3: message.orderBy = reader.int32(); break; + case 4: + message.page = reader.uint64(); + break; + case 5: + message.limit = reader.uint64(); + break; default: reader.skipType(tag & 7); break; @@ -80748,11 +76878,18 @@ exports.GetTxsEventRequest = { return message; }, fromJSON(object) { - return { - events: Array.isArray(object?.events) ? object.events.map((e) => String(e)) : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - orderBy: (0, helpers_1.isSet)(object.orderBy) ? orderByFromJSON(object.orderBy) : 0, - }; + const obj = createBaseGetTxsEventRequest(); + if (Array.isArray(object?.events)) + obj.events = object.events.map((e) => String(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + if ((0, helpers_1.isSet)(object.orderBy)) + obj.orderBy = orderByFromJSON(object.orderBy); + if ((0, helpers_1.isSet)(object.page)) + obj.page = BigInt(object.page.toString()); + if ((0, helpers_1.isSet)(object.limit)) + obj.limit = BigInt(object.limit.toString()); + return obj; }, toJSON(message) { const obj = {}; @@ -80765,16 +76902,23 @@ exports.GetTxsEventRequest = { message.pagination !== undefined && (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); message.orderBy !== undefined && (obj.orderBy = orderByToJSON(message.orderBy)); + message.page !== undefined && (obj.page = (message.page || BigInt(0)).toString()); + message.limit !== undefined && (obj.limit = (message.limit || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseGetTxsEventRequest(); message.events = object.events?.map((e) => e) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } message.orderBy = object.orderBy ?? 0; + if (object.page !== undefined && object.page !== null) { + message.page = BigInt(object.page.toString()); + } + if (object.limit !== undefined && object.limit !== null) { + message.limit = BigInt(object.limit.toString()); + } return message; }, }; @@ -80783,10 +76927,12 @@ function createBaseGetTxsEventResponse() { txs: [], txResponses: [], pagination: undefined, + total: BigInt(0), }; } exports.GetTxsEventResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.v1beta1.GetTxsEventResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.txs) { tx_1.Tx.encode(v, writer.uint32(10).fork()).ldelim(); } @@ -80796,10 +76942,13 @@ exports.GetTxsEventResponse = { if (message.pagination !== undefined) { pagination_1.PageResponse.encode(message.pagination, writer.uint32(26).fork()).ldelim(); } + if (message.total !== BigInt(0)) { + writer.uint32(32).uint64(message.total); + } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetTxsEventResponse(); while (reader.pos < end) { @@ -80814,6 +76963,9 @@ exports.GetTxsEventResponse = { case 3: message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); break; + case 4: + message.total = reader.uint64(); + break; default: reader.skipType(tag & 7); break; @@ -80822,13 +76974,16 @@ exports.GetTxsEventResponse = { return message; }, fromJSON(object) { - return { - txs: Array.isArray(object?.txs) ? object.txs.map((e) => tx_1.Tx.fromJSON(e)) : [], - txResponses: Array.isArray(object?.txResponses) - ? object.txResponses.map((e) => abci_1.TxResponse.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseGetTxsEventResponse(); + if (Array.isArray(object?.txs)) + obj.txs = object.txs.map((e) => tx_1.Tx.fromJSON(e)); + if (Array.isArray(object?.txResponses)) + obj.txResponses = object.txResponses.map((e) => abci_1.TxResponse.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + if ((0, helpers_1.isSet)(object.total)) + obj.total = BigInt(object.total.toString()); + return obj; }, toJSON(message) { const obj = {}; @@ -80846,16 +77001,19 @@ exports.GetTxsEventResponse = { } message.pagination !== undefined && (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); + message.total !== undefined && (obj.total = (message.total || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseGetTxsEventResponse(); message.txs = object.txs?.map((e) => tx_1.Tx.fromPartial(e)) || []; message.txResponses = object.txResponses?.map((e) => abci_1.TxResponse.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } + if (object.total !== undefined && object.total !== null) { + message.total = BigInt(object.total.toString()); + } return message; }, }; @@ -80866,7 +77024,8 @@ function createBaseBroadcastTxRequest() { }; } exports.BroadcastTxRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.v1beta1.BroadcastTxRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.txBytes.length !== 0) { writer.uint32(10).bytes(message.txBytes); } @@ -80876,7 +77035,7 @@ exports.BroadcastTxRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseBroadcastTxRequest(); while (reader.pos < end) { @@ -80896,10 +77055,12 @@ exports.BroadcastTxRequest = { return message; }, fromJSON(object) { - return { - txBytes: (0, helpers_1.isSet)(object.txBytes) ? (0, helpers_1.bytesFromBase64)(object.txBytes) : new Uint8Array(), - mode: (0, helpers_1.isSet)(object.mode) ? broadcastModeFromJSON(object.mode) : 0, - }; + const obj = createBaseBroadcastTxRequest(); + if ((0, helpers_1.isSet)(object.txBytes)) + obj.txBytes = (0, helpers_1.bytesFromBase64)(object.txBytes); + if ((0, helpers_1.isSet)(object.mode)) + obj.mode = broadcastModeFromJSON(object.mode); + return obj; }, toJSON(message) { const obj = {}; @@ -80921,14 +77082,15 @@ function createBaseBroadcastTxResponse() { }; } exports.BroadcastTxResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.v1beta1.BroadcastTxResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.txResponse !== undefined) { abci_1.TxResponse.encode(message.txResponse, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseBroadcastTxResponse(); while (reader.pos < end) { @@ -80945,9 +77107,10 @@ exports.BroadcastTxResponse = { return message; }, fromJSON(object) { - return { - txResponse: (0, helpers_1.isSet)(object.txResponse) ? abci_1.TxResponse.fromJSON(object.txResponse) : undefined, - }; + const obj = createBaseBroadcastTxResponse(); + if ((0, helpers_1.isSet)(object.txResponse)) + obj.txResponse = abci_1.TxResponse.fromJSON(object.txResponse); + return obj; }, toJSON(message) { const obj = {}; @@ -80957,10 +77120,9 @@ exports.BroadcastTxResponse = { }, fromPartial(object) { const message = createBaseBroadcastTxResponse(); - message.txResponse = - object.txResponse !== undefined && object.txResponse !== null - ? abci_1.TxResponse.fromPartial(object.txResponse) - : undefined; + if (object.txResponse !== undefined && object.txResponse !== null) { + message.txResponse = abci_1.TxResponse.fromPartial(object.txResponse); + } return message; }, }; @@ -80971,7 +77133,8 @@ function createBaseSimulateRequest() { }; } exports.SimulateRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.v1beta1.SimulateRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.tx !== undefined) { tx_1.Tx.encode(message.tx, writer.uint32(10).fork()).ldelim(); } @@ -80981,7 +77144,7 @@ exports.SimulateRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSimulateRequest(); while (reader.pos < end) { @@ -81001,10 +77164,12 @@ exports.SimulateRequest = { return message; }, fromJSON(object) { - return { - tx: (0, helpers_1.isSet)(object.tx) ? tx_1.Tx.fromJSON(object.tx) : undefined, - txBytes: (0, helpers_1.isSet)(object.txBytes) ? (0, helpers_1.bytesFromBase64)(object.txBytes) : new Uint8Array(), - }; + const obj = createBaseSimulateRequest(); + if ((0, helpers_1.isSet)(object.tx)) + obj.tx = tx_1.Tx.fromJSON(object.tx); + if ((0, helpers_1.isSet)(object.txBytes)) + obj.txBytes = (0, helpers_1.bytesFromBase64)(object.txBytes); + return obj; }, toJSON(message) { const obj = {}; @@ -81015,7 +77180,9 @@ exports.SimulateRequest = { }, fromPartial(object) { const message = createBaseSimulateRequest(); - message.tx = object.tx !== undefined && object.tx !== null ? tx_1.Tx.fromPartial(object.tx) : undefined; + if (object.tx !== undefined && object.tx !== null) { + message.tx = tx_1.Tx.fromPartial(object.tx); + } message.txBytes = object.txBytes ?? new Uint8Array(); return message; }, @@ -81027,7 +77194,8 @@ function createBaseSimulateResponse() { }; } exports.SimulateResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.v1beta1.SimulateResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.gasInfo !== undefined) { abci_1.GasInfo.encode(message.gasInfo, writer.uint32(10).fork()).ldelim(); } @@ -81037,7 +77205,7 @@ exports.SimulateResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSimulateResponse(); while (reader.pos < end) { @@ -81057,10 +77225,12 @@ exports.SimulateResponse = { return message; }, fromJSON(object) { - return { - gasInfo: (0, helpers_1.isSet)(object.gasInfo) ? abci_1.GasInfo.fromJSON(object.gasInfo) : undefined, - result: (0, helpers_1.isSet)(object.result) ? abci_1.Result.fromJSON(object.result) : undefined, - }; + const obj = createBaseSimulateResponse(); + if ((0, helpers_1.isSet)(object.gasInfo)) + obj.gasInfo = abci_1.GasInfo.fromJSON(object.gasInfo); + if ((0, helpers_1.isSet)(object.result)) + obj.result = abci_1.Result.fromJSON(object.result); + return obj; }, toJSON(message) { const obj = {}; @@ -81071,12 +77241,12 @@ exports.SimulateResponse = { }, fromPartial(object) { const message = createBaseSimulateResponse(); - message.gasInfo = - object.gasInfo !== undefined && object.gasInfo !== null - ? abci_1.GasInfo.fromPartial(object.gasInfo) - : undefined; - message.result = - object.result !== undefined && object.result !== null ? abci_1.Result.fromPartial(object.result) : undefined; + if (object.gasInfo !== undefined && object.gasInfo !== null) { + message.gasInfo = abci_1.GasInfo.fromPartial(object.gasInfo); + } + if (object.result !== undefined && object.result !== null) { + message.result = abci_1.Result.fromPartial(object.result); + } return message; }, }; @@ -81086,14 +77256,15 @@ function createBaseGetTxRequest() { }; } exports.GetTxRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.v1beta1.GetTxRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.hash !== "") { writer.uint32(10).string(message.hash); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetTxRequest(); while (reader.pos < end) { @@ -81110,9 +77281,10 @@ exports.GetTxRequest = { return message; }, fromJSON(object) { - return { - hash: (0, helpers_1.isSet)(object.hash) ? String(object.hash) : "", - }; + const obj = createBaseGetTxRequest(); + if ((0, helpers_1.isSet)(object.hash)) + obj.hash = String(object.hash); + return obj; }, toJSON(message) { const obj = {}; @@ -81132,7 +77304,8 @@ function createBaseGetTxResponse() { }; } exports.GetTxResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.v1beta1.GetTxResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.tx !== undefined) { tx_1.Tx.encode(message.tx, writer.uint32(10).fork()).ldelim(); } @@ -81142,7 +77315,7 @@ exports.GetTxResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetTxResponse(); while (reader.pos < end) { @@ -81162,10 +77335,12 @@ exports.GetTxResponse = { return message; }, fromJSON(object) { - return { - tx: (0, helpers_1.isSet)(object.tx) ? tx_1.Tx.fromJSON(object.tx) : undefined, - txResponse: (0, helpers_1.isSet)(object.txResponse) ? abci_1.TxResponse.fromJSON(object.txResponse) : undefined, - }; + const obj = createBaseGetTxResponse(); + if ((0, helpers_1.isSet)(object.tx)) + obj.tx = tx_1.Tx.fromJSON(object.tx); + if ((0, helpers_1.isSet)(object.txResponse)) + obj.txResponse = abci_1.TxResponse.fromJSON(object.txResponse); + return obj; }, toJSON(message) { const obj = {}; @@ -81176,23 +77351,25 @@ exports.GetTxResponse = { }, fromPartial(object) { const message = createBaseGetTxResponse(); - message.tx = object.tx !== undefined && object.tx !== null ? tx_1.Tx.fromPartial(object.tx) : undefined; - message.txResponse = - object.txResponse !== undefined && object.txResponse !== null - ? abci_1.TxResponse.fromPartial(object.txResponse) - : undefined; + if (object.tx !== undefined && object.tx !== null) { + message.tx = tx_1.Tx.fromPartial(object.tx); + } + if (object.txResponse !== undefined && object.txResponse !== null) { + message.txResponse = abci_1.TxResponse.fromPartial(object.txResponse); + } return message; }, }; function createBaseGetBlockWithTxsRequest() { return { - height: helpers_1.Long.ZERO, + height: BigInt(0), pagination: undefined, }; } exports.GetBlockWithTxsRequest = { - encode(message, writer = _m0.Writer.create()) { - if (!message.height.isZero()) { + typeUrl: "/cosmos.tx.v1beta1.GetBlockWithTxsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.height !== BigInt(0)) { writer.uint32(8).int64(message.height); } if (message.pagination !== undefined) { @@ -81201,7 +77378,7 @@ exports.GetBlockWithTxsRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetBlockWithTxsRequest(); while (reader.pos < end) { @@ -81221,26 +77398,28 @@ exports.GetBlockWithTxsRequest = { return message; }, fromJSON(object) { - return { - height: (0, helpers_1.isSet)(object.height) ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO, - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseGetBlockWithTxsRequest(); + if ((0, helpers_1.isSet)(object.height)) + obj.height = BigInt(object.height.toString()); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; - message.height !== undefined && (obj.height = (message.height || helpers_1.Long.ZERO).toString()); + message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString()); message.pagination !== undefined && (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); return obj; }, fromPartial(object) { const message = createBaseGetBlockWithTxsRequest(); - message.height = - object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + if (object.height !== undefined && object.height !== null) { + message.height = BigInt(object.height.toString()); + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } return message; }, }; @@ -81253,7 +77432,8 @@ function createBaseGetBlockWithTxsResponse() { }; } exports.GetBlockWithTxsResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.v1beta1.GetBlockWithTxsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.txs) { tx_1.Tx.encode(v, writer.uint32(10).fork()).ldelim(); } @@ -81269,7 +77449,7 @@ exports.GetBlockWithTxsResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetBlockWithTxsResponse(); while (reader.pos < end) { @@ -81295,12 +77475,16 @@ exports.GetBlockWithTxsResponse = { return message; }, fromJSON(object) { - return { - txs: Array.isArray(object?.txs) ? object.txs.map((e) => tx_1.Tx.fromJSON(e)) : [], - blockId: (0, helpers_1.isSet)(object.blockId) ? types_1.BlockID.fromJSON(object.blockId) : undefined, - block: (0, helpers_1.isSet)(object.block) ? block_1.Block.fromJSON(object.block) : undefined, - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseGetBlockWithTxsResponse(); + if (Array.isArray(object?.txs)) + obj.txs = object.txs.map((e) => tx_1.Tx.fromJSON(e)); + if ((0, helpers_1.isSet)(object.blockId)) + obj.blockId = types_1.BlockID.fromJSON(object.blockId); + if ((0, helpers_1.isSet)(object.block)) + obj.block = block_1.Block.fromJSON(object.block); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -81320,16 +77504,399 @@ exports.GetBlockWithTxsResponse = { fromPartial(object) { const message = createBaseGetBlockWithTxsResponse(); message.txs = object.txs?.map((e) => tx_1.Tx.fromPartial(e)) || []; - message.blockId = - object.blockId !== undefined && object.blockId !== null - ? types_1.BlockID.fromPartial(object.blockId) - : undefined; - message.block = - object.block !== undefined && object.block !== null ? block_1.Block.fromPartial(object.block) : undefined; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + if (object.blockId !== undefined && object.blockId !== null) { + message.blockId = types_1.BlockID.fromPartial(object.blockId); + } + if (object.block !== undefined && object.block !== null) { + message.block = block_1.Block.fromPartial(object.block); + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } + return message; + }, +}; +function createBaseTxDecodeRequest() { + return { + txBytes: new Uint8Array(), + }; +} +exports.TxDecodeRequest = { + typeUrl: "/cosmos.tx.v1beta1.TxDecodeRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.txBytes.length !== 0) { + writer.uint32(10).bytes(message.txBytes); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTxDecodeRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.txBytes = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseTxDecodeRequest(); + if ((0, helpers_1.isSet)(object.txBytes)) + obj.txBytes = (0, helpers_1.bytesFromBase64)(object.txBytes); + return obj; + }, + toJSON(message) { + const obj = {}; + message.txBytes !== undefined && + (obj.txBytes = (0, helpers_1.base64FromBytes)(message.txBytes !== undefined ? message.txBytes : new Uint8Array())); + return obj; + }, + fromPartial(object) { + const message = createBaseTxDecodeRequest(); + message.txBytes = object.txBytes ?? new Uint8Array(); + return message; + }, +}; +function createBaseTxDecodeResponse() { + return { + tx: undefined, + }; +} +exports.TxDecodeResponse = { + typeUrl: "/cosmos.tx.v1beta1.TxDecodeResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.tx !== undefined) { + tx_1.Tx.encode(message.tx, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTxDecodeResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.tx = tx_1.Tx.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseTxDecodeResponse(); + if ((0, helpers_1.isSet)(object.tx)) + obj.tx = tx_1.Tx.fromJSON(object.tx); + return obj; + }, + toJSON(message) { + const obj = {}; + message.tx !== undefined && (obj.tx = message.tx ? tx_1.Tx.toJSON(message.tx) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseTxDecodeResponse(); + if (object.tx !== undefined && object.tx !== null) { + message.tx = tx_1.Tx.fromPartial(object.tx); + } + return message; + }, +}; +function createBaseTxEncodeRequest() { + return { + tx: undefined, + }; +} +exports.TxEncodeRequest = { + typeUrl: "/cosmos.tx.v1beta1.TxEncodeRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.tx !== undefined) { + tx_1.Tx.encode(message.tx, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTxEncodeRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.tx = tx_1.Tx.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseTxEncodeRequest(); + if ((0, helpers_1.isSet)(object.tx)) + obj.tx = tx_1.Tx.fromJSON(object.tx); + return obj; + }, + toJSON(message) { + const obj = {}; + message.tx !== undefined && (obj.tx = message.tx ? tx_1.Tx.toJSON(message.tx) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseTxEncodeRequest(); + if (object.tx !== undefined && object.tx !== null) { + message.tx = tx_1.Tx.fromPartial(object.tx); + } + return message; + }, +}; +function createBaseTxEncodeResponse() { + return { + txBytes: new Uint8Array(), + }; +} +exports.TxEncodeResponse = { + typeUrl: "/cosmos.tx.v1beta1.TxEncodeResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.txBytes.length !== 0) { + writer.uint32(10).bytes(message.txBytes); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTxEncodeResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.txBytes = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseTxEncodeResponse(); + if ((0, helpers_1.isSet)(object.txBytes)) + obj.txBytes = (0, helpers_1.bytesFromBase64)(object.txBytes); + return obj; + }, + toJSON(message) { + const obj = {}; + message.txBytes !== undefined && + (obj.txBytes = (0, helpers_1.base64FromBytes)(message.txBytes !== undefined ? message.txBytes : new Uint8Array())); + return obj; + }, + fromPartial(object) { + const message = createBaseTxEncodeResponse(); + message.txBytes = object.txBytes ?? new Uint8Array(); + return message; + }, +}; +function createBaseTxEncodeAminoRequest() { + return { + aminoJson: "", + }; +} +exports.TxEncodeAminoRequest = { + typeUrl: "/cosmos.tx.v1beta1.TxEncodeAminoRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.aminoJson !== "") { + writer.uint32(10).string(message.aminoJson); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTxEncodeAminoRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.aminoJson = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseTxEncodeAminoRequest(); + if ((0, helpers_1.isSet)(object.aminoJson)) + obj.aminoJson = String(object.aminoJson); + return obj; + }, + toJSON(message) { + const obj = {}; + message.aminoJson !== undefined && (obj.aminoJson = message.aminoJson); + return obj; + }, + fromPartial(object) { + const message = createBaseTxEncodeAminoRequest(); + message.aminoJson = object.aminoJson ?? ""; + return message; + }, +}; +function createBaseTxEncodeAminoResponse() { + return { + aminoBinary: new Uint8Array(), + }; +} +exports.TxEncodeAminoResponse = { + typeUrl: "/cosmos.tx.v1beta1.TxEncodeAminoResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.aminoBinary.length !== 0) { + writer.uint32(10).bytes(message.aminoBinary); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTxEncodeAminoResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.aminoBinary = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseTxEncodeAminoResponse(); + if ((0, helpers_1.isSet)(object.aminoBinary)) + obj.aminoBinary = (0, helpers_1.bytesFromBase64)(object.aminoBinary); + return obj; + }, + toJSON(message) { + const obj = {}; + message.aminoBinary !== undefined && + (obj.aminoBinary = (0, helpers_1.base64FromBytes)(message.aminoBinary !== undefined ? message.aminoBinary : new Uint8Array())); + return obj; + }, + fromPartial(object) { + const message = createBaseTxEncodeAminoResponse(); + message.aminoBinary = object.aminoBinary ?? new Uint8Array(); + return message; + }, +}; +function createBaseTxDecodeAminoRequest() { + return { + aminoBinary: new Uint8Array(), + }; +} +exports.TxDecodeAminoRequest = { + typeUrl: "/cosmos.tx.v1beta1.TxDecodeAminoRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.aminoBinary.length !== 0) { + writer.uint32(10).bytes(message.aminoBinary); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTxDecodeAminoRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.aminoBinary = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseTxDecodeAminoRequest(); + if ((0, helpers_1.isSet)(object.aminoBinary)) + obj.aminoBinary = (0, helpers_1.bytesFromBase64)(object.aminoBinary); + return obj; + }, + toJSON(message) { + const obj = {}; + message.aminoBinary !== undefined && + (obj.aminoBinary = (0, helpers_1.base64FromBytes)(message.aminoBinary !== undefined ? message.aminoBinary : new Uint8Array())); + return obj; + }, + fromPartial(object) { + const message = createBaseTxDecodeAminoRequest(); + message.aminoBinary = object.aminoBinary ?? new Uint8Array(); + return message; + }, +}; +function createBaseTxDecodeAminoResponse() { + return { + aminoJson: "", + }; +} +exports.TxDecodeAminoResponse = { + typeUrl: "/cosmos.tx.v1beta1.TxDecodeAminoResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.aminoJson !== "") { + writer.uint32(10).string(message.aminoJson); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTxDecodeAminoResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.aminoJson = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseTxDecodeAminoResponse(); + if ((0, helpers_1.isSet)(object.aminoJson)) + obj.aminoJson = String(object.aminoJson); + return obj; + }, + toJSON(message) { + const obj = {}; + message.aminoJson !== undefined && (obj.aminoJson = message.aminoJson); + return obj; + }, + fromPartial(object) { + const message = createBaseTxDecodeAminoResponse(); + message.aminoJson = object.aminoJson ?? ""; return message; }, }; @@ -81341,31 +77908,55 @@ class ServiceClientImpl { this.BroadcastTx = this.BroadcastTx.bind(this); this.GetTxsEvent = this.GetTxsEvent.bind(this); this.GetBlockWithTxs = this.GetBlockWithTxs.bind(this); + this.TxDecode = this.TxDecode.bind(this); + this.TxEncode = this.TxEncode.bind(this); + this.TxEncodeAmino = this.TxEncodeAmino.bind(this); + this.TxDecodeAmino = this.TxDecodeAmino.bind(this); } Simulate(request) { const data = exports.SimulateRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.tx.v1beta1.Service", "Simulate", data); - return promise.then((data) => exports.SimulateResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.SimulateResponse.decode(new binary_1.BinaryReader(data))); } GetTx(request) { const data = exports.GetTxRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.tx.v1beta1.Service", "GetTx", data); - return promise.then((data) => exports.GetTxResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.GetTxResponse.decode(new binary_1.BinaryReader(data))); } BroadcastTx(request) { const data = exports.BroadcastTxRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.tx.v1beta1.Service", "BroadcastTx", data); - return promise.then((data) => exports.BroadcastTxResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.BroadcastTxResponse.decode(new binary_1.BinaryReader(data))); } GetTxsEvent(request) { const data = exports.GetTxsEventRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.tx.v1beta1.Service", "GetTxsEvent", data); - return promise.then((data) => exports.GetTxsEventResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.GetTxsEventResponse.decode(new binary_1.BinaryReader(data))); } GetBlockWithTxs(request) { const data = exports.GetBlockWithTxsRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.tx.v1beta1.Service", "GetBlockWithTxs", data); - return promise.then((data) => exports.GetBlockWithTxsResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.GetBlockWithTxsResponse.decode(new binary_1.BinaryReader(data))); + } + TxDecode(request) { + const data = exports.TxDecodeRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.tx.v1beta1.Service", "TxDecode", data); + return promise.then((data) => exports.TxDecodeResponse.decode(new binary_1.BinaryReader(data))); + } + TxEncode(request) { + const data = exports.TxEncodeRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.tx.v1beta1.Service", "TxEncode", data); + return promise.then((data) => exports.TxEncodeResponse.decode(new binary_1.BinaryReader(data))); + } + TxEncodeAmino(request) { + const data = exports.TxEncodeAminoRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.tx.v1beta1.Service", "TxEncodeAmino", data); + return promise.then((data) => exports.TxEncodeAminoResponse.decode(new binary_1.BinaryReader(data))); + } + TxDecodeAmino(request) { + const data = exports.TxDecodeAminoRequest.encode(request).finish(); + const promise = this.rpc.request("cosmos.tx.v1beta1.Service", "TxDecodeAmino", data); + return promise.then((data) => exports.TxDecodeAminoResponse.decode(new binary_1.BinaryReader(data))); } } exports.ServiceClientImpl = ServiceClientImpl; @@ -81381,37 +77972,14 @@ exports.ServiceClientImpl = ServiceClientImpl; "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Fee = exports.ModeInfo_Multi = exports.ModeInfo_Single = exports.ModeInfo = exports.SignerInfo = exports.AuthInfo = exports.TxBody = exports.SignDoc = exports.TxRaw = exports.Tx = exports.protobufPackage = void 0; +exports.AuxSignerData = exports.Tip = exports.Fee = exports.ModeInfo_Multi = exports.ModeInfo_Single = exports.ModeInfo = exports.SignerInfo = exports.AuthInfo = exports.TxBody = exports.SignDocDirectAux = exports.SignDoc = exports.TxRaw = exports.Tx = exports.protobufPackage = void 0; /* eslint-disable */ const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); const signing_1 = __webpack_require__(/*! ../signing/v1beta1/signing */ "./node_modules/cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"); const multisig_1 = __webpack_require__(/*! ../../crypto/multisig/v1beta1/multisig */ "./node_modules/cosmjs-types/cosmos/crypto/multisig/v1beta1/multisig.js"); const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "cosmos.tx.v1beta1"; function createBaseTx() { @@ -81422,7 +77990,8 @@ function createBaseTx() { }; } exports.Tx = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.v1beta1.Tx", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.body !== undefined) { exports.TxBody.encode(message.body, writer.uint32(10).fork()).ldelim(); } @@ -81435,7 +78004,7 @@ exports.Tx = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseTx(); while (reader.pos < end) { @@ -81458,13 +78027,14 @@ exports.Tx = { return message; }, fromJSON(object) { - return { - body: (0, helpers_1.isSet)(object.body) ? exports.TxBody.fromJSON(object.body) : undefined, - authInfo: (0, helpers_1.isSet)(object.authInfo) ? exports.AuthInfo.fromJSON(object.authInfo) : undefined, - signatures: Array.isArray(object?.signatures) - ? object.signatures.map((e) => (0, helpers_1.bytesFromBase64)(e)) - : [], - }; + const obj = createBaseTx(); + if ((0, helpers_1.isSet)(object.body)) + obj.body = exports.TxBody.fromJSON(object.body); + if ((0, helpers_1.isSet)(object.authInfo)) + obj.authInfo = exports.AuthInfo.fromJSON(object.authInfo); + if (Array.isArray(object?.signatures)) + obj.signatures = object.signatures.map((e) => (0, helpers_1.bytesFromBase64)(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -81481,12 +78051,12 @@ exports.Tx = { }, fromPartial(object) { const message = createBaseTx(); - message.body = - object.body !== undefined && object.body !== null ? exports.TxBody.fromPartial(object.body) : undefined; - message.authInfo = - object.authInfo !== undefined && object.authInfo !== null - ? exports.AuthInfo.fromPartial(object.authInfo) - : undefined; + if (object.body !== undefined && object.body !== null) { + message.body = exports.TxBody.fromPartial(object.body); + } + if (object.authInfo !== undefined && object.authInfo !== null) { + message.authInfo = exports.AuthInfo.fromPartial(object.authInfo); + } message.signatures = object.signatures?.map((e) => e) || []; return message; }, @@ -81499,7 +78069,8 @@ function createBaseTxRaw() { }; } exports.TxRaw = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.v1beta1.TxRaw", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.bodyBytes.length !== 0) { writer.uint32(10).bytes(message.bodyBytes); } @@ -81512,7 +78083,7 @@ exports.TxRaw = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseTxRaw(); while (reader.pos < end) { @@ -81535,13 +78106,14 @@ exports.TxRaw = { return message; }, fromJSON(object) { - return { - bodyBytes: (0, helpers_1.isSet)(object.bodyBytes) ? (0, helpers_1.bytesFromBase64)(object.bodyBytes) : new Uint8Array(), - authInfoBytes: (0, helpers_1.isSet)(object.authInfoBytes) ? (0, helpers_1.bytesFromBase64)(object.authInfoBytes) : new Uint8Array(), - signatures: Array.isArray(object?.signatures) - ? object.signatures.map((e) => (0, helpers_1.bytesFromBase64)(e)) - : [], - }; + const obj = createBaseTxRaw(); + if ((0, helpers_1.isSet)(object.bodyBytes)) + obj.bodyBytes = (0, helpers_1.bytesFromBase64)(object.bodyBytes); + if ((0, helpers_1.isSet)(object.authInfoBytes)) + obj.authInfoBytes = (0, helpers_1.bytesFromBase64)(object.authInfoBytes); + if (Array.isArray(object?.signatures)) + obj.signatures = object.signatures.map((e) => (0, helpers_1.bytesFromBase64)(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -81570,11 +78142,12 @@ function createBaseSignDoc() { bodyBytes: new Uint8Array(), authInfoBytes: new Uint8Array(), chainId: "", - accountNumber: helpers_1.Long.UZERO, + accountNumber: BigInt(0), }; } exports.SignDoc = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.v1beta1.SignDoc", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.bodyBytes.length !== 0) { writer.uint32(10).bytes(message.bodyBytes); } @@ -81584,13 +78157,13 @@ exports.SignDoc = { if (message.chainId !== "") { writer.uint32(26).string(message.chainId); } - if (!message.accountNumber.isZero()) { + if (message.accountNumber !== BigInt(0)) { writer.uint32(32).uint64(message.accountNumber); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSignDoc(); while (reader.pos < end) { @@ -81616,12 +78189,16 @@ exports.SignDoc = { return message; }, fromJSON(object) { - return { - bodyBytes: (0, helpers_1.isSet)(object.bodyBytes) ? (0, helpers_1.bytesFromBase64)(object.bodyBytes) : new Uint8Array(), - authInfoBytes: (0, helpers_1.isSet)(object.authInfoBytes) ? (0, helpers_1.bytesFromBase64)(object.authInfoBytes) : new Uint8Array(), - chainId: (0, helpers_1.isSet)(object.chainId) ? String(object.chainId) : "", - accountNumber: (0, helpers_1.isSet)(object.accountNumber) ? helpers_1.Long.fromValue(object.accountNumber) : helpers_1.Long.UZERO, - }; + const obj = createBaseSignDoc(); + if ((0, helpers_1.isSet)(object.bodyBytes)) + obj.bodyBytes = (0, helpers_1.bytesFromBase64)(object.bodyBytes); + if ((0, helpers_1.isSet)(object.authInfoBytes)) + obj.authInfoBytes = (0, helpers_1.bytesFromBase64)(object.authInfoBytes); + if ((0, helpers_1.isSet)(object.chainId)) + obj.chainId = String(object.chainId); + if ((0, helpers_1.isSet)(object.accountNumber)) + obj.accountNumber = BigInt(object.accountNumber.toString()); + return obj; }, toJSON(message) { const obj = {}; @@ -81631,7 +78208,7 @@ exports.SignDoc = { (obj.authInfoBytes = (0, helpers_1.base64FromBytes)(message.authInfoBytes !== undefined ? message.authInfoBytes : new Uint8Array())); message.chainId !== undefined && (obj.chainId = message.chainId); message.accountNumber !== undefined && - (obj.accountNumber = (message.accountNumber || helpers_1.Long.UZERO).toString()); + (obj.accountNumber = (message.accountNumber || BigInt(0)).toString()); return obj; }, fromPartial(object) { @@ -81639,10 +78216,122 @@ exports.SignDoc = { message.bodyBytes = object.bodyBytes ?? new Uint8Array(); message.authInfoBytes = object.authInfoBytes ?? new Uint8Array(); message.chainId = object.chainId ?? ""; - message.accountNumber = - object.accountNumber !== undefined && object.accountNumber !== null - ? helpers_1.Long.fromValue(object.accountNumber) - : helpers_1.Long.UZERO; + if (object.accountNumber !== undefined && object.accountNumber !== null) { + message.accountNumber = BigInt(object.accountNumber.toString()); + } + return message; + }, +}; +function createBaseSignDocDirectAux() { + return { + bodyBytes: new Uint8Array(), + publicKey: undefined, + chainId: "", + accountNumber: BigInt(0), + sequence: BigInt(0), + tip: undefined, + }; +} +exports.SignDocDirectAux = { + typeUrl: "/cosmos.tx.v1beta1.SignDocDirectAux", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.bodyBytes.length !== 0) { + writer.uint32(10).bytes(message.bodyBytes); + } + if (message.publicKey !== undefined) { + any_1.Any.encode(message.publicKey, writer.uint32(18).fork()).ldelim(); + } + if (message.chainId !== "") { + writer.uint32(26).string(message.chainId); + } + if (message.accountNumber !== BigInt(0)) { + writer.uint32(32).uint64(message.accountNumber); + } + if (message.sequence !== BigInt(0)) { + writer.uint32(40).uint64(message.sequence); + } + if (message.tip !== undefined) { + exports.Tip.encode(message.tip, writer.uint32(50).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSignDocDirectAux(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.bodyBytes = reader.bytes(); + break; + case 2: + message.publicKey = any_1.Any.decode(reader, reader.uint32()); + break; + case 3: + message.chainId = reader.string(); + break; + case 4: + message.accountNumber = reader.uint64(); + break; + case 5: + message.sequence = reader.uint64(); + break; + case 6: + message.tip = exports.Tip.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseSignDocDirectAux(); + if ((0, helpers_1.isSet)(object.bodyBytes)) + obj.bodyBytes = (0, helpers_1.bytesFromBase64)(object.bodyBytes); + if ((0, helpers_1.isSet)(object.publicKey)) + obj.publicKey = any_1.Any.fromJSON(object.publicKey); + if ((0, helpers_1.isSet)(object.chainId)) + obj.chainId = String(object.chainId); + if ((0, helpers_1.isSet)(object.accountNumber)) + obj.accountNumber = BigInt(object.accountNumber.toString()); + if ((0, helpers_1.isSet)(object.sequence)) + obj.sequence = BigInt(object.sequence.toString()); + if ((0, helpers_1.isSet)(object.tip)) + obj.tip = exports.Tip.fromJSON(object.tip); + return obj; + }, + toJSON(message) { + const obj = {}; + message.bodyBytes !== undefined && + (obj.bodyBytes = (0, helpers_1.base64FromBytes)(message.bodyBytes !== undefined ? message.bodyBytes : new Uint8Array())); + message.publicKey !== undefined && + (obj.publicKey = message.publicKey ? any_1.Any.toJSON(message.publicKey) : undefined); + message.chainId !== undefined && (obj.chainId = message.chainId); + message.accountNumber !== undefined && + (obj.accountNumber = (message.accountNumber || BigInt(0)).toString()); + message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString()); + message.tip !== undefined && (obj.tip = message.tip ? exports.Tip.toJSON(message.tip) : undefined); + return obj; + }, + fromPartial(object) { + const message = createBaseSignDocDirectAux(); + message.bodyBytes = object.bodyBytes ?? new Uint8Array(); + if (object.publicKey !== undefined && object.publicKey !== null) { + message.publicKey = any_1.Any.fromPartial(object.publicKey); + } + message.chainId = object.chainId ?? ""; + if (object.accountNumber !== undefined && object.accountNumber !== null) { + message.accountNumber = BigInt(object.accountNumber.toString()); + } + if (object.sequence !== undefined && object.sequence !== null) { + message.sequence = BigInt(object.sequence.toString()); + } + if (object.tip !== undefined && object.tip !== null) { + message.tip = exports.Tip.fromPartial(object.tip); + } return message; }, }; @@ -81650,20 +78339,21 @@ function createBaseTxBody() { return { messages: [], memo: "", - timeoutHeight: helpers_1.Long.UZERO, + timeoutHeight: BigInt(0), extensionOptions: [], nonCriticalExtensionOptions: [], }; } exports.TxBody = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.v1beta1.TxBody", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.messages) { any_1.Any.encode(v, writer.uint32(10).fork()).ldelim(); } if (message.memo !== "") { writer.uint32(18).string(message.memo); } - if (!message.timeoutHeight.isZero()) { + if (message.timeoutHeight !== BigInt(0)) { writer.uint32(24).uint64(message.timeoutHeight); } for (const v of message.extensionOptions) { @@ -81675,7 +78365,7 @@ exports.TxBody = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseTxBody(); while (reader.pos < end) { @@ -81704,17 +78394,18 @@ exports.TxBody = { return message; }, fromJSON(object) { - return { - messages: Array.isArray(object?.messages) ? object.messages.map((e) => any_1.Any.fromJSON(e)) : [], - memo: (0, helpers_1.isSet)(object.memo) ? String(object.memo) : "", - timeoutHeight: (0, helpers_1.isSet)(object.timeoutHeight) ? helpers_1.Long.fromValue(object.timeoutHeight) : helpers_1.Long.UZERO, - extensionOptions: Array.isArray(object?.extensionOptions) - ? object.extensionOptions.map((e) => any_1.Any.fromJSON(e)) - : [], - nonCriticalExtensionOptions: Array.isArray(object?.nonCriticalExtensionOptions) - ? object.nonCriticalExtensionOptions.map((e) => any_1.Any.fromJSON(e)) - : [], - }; + const obj = createBaseTxBody(); + if (Array.isArray(object?.messages)) + obj.messages = object.messages.map((e) => any_1.Any.fromJSON(e)); + if ((0, helpers_1.isSet)(object.memo)) + obj.memo = String(object.memo); + if ((0, helpers_1.isSet)(object.timeoutHeight)) + obj.timeoutHeight = BigInt(object.timeoutHeight.toString()); + if (Array.isArray(object?.extensionOptions)) + obj.extensionOptions = object.extensionOptions.map((e) => any_1.Any.fromJSON(e)); + if (Array.isArray(object?.nonCriticalExtensionOptions)) + obj.nonCriticalExtensionOptions = object.nonCriticalExtensionOptions.map((e) => any_1.Any.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -81726,7 +78417,7 @@ exports.TxBody = { } message.memo !== undefined && (obj.memo = message.memo); message.timeoutHeight !== undefined && - (obj.timeoutHeight = (message.timeoutHeight || helpers_1.Long.UZERO).toString()); + (obj.timeoutHeight = (message.timeoutHeight || BigInt(0)).toString()); if (message.extensionOptions) { obj.extensionOptions = message.extensionOptions.map((e) => (e ? any_1.Any.toJSON(e) : undefined)); } @@ -81745,10 +78436,9 @@ exports.TxBody = { const message = createBaseTxBody(); message.messages = object.messages?.map((e) => any_1.Any.fromPartial(e)) || []; message.memo = object.memo ?? ""; - message.timeoutHeight = - object.timeoutHeight !== undefined && object.timeoutHeight !== null - ? helpers_1.Long.fromValue(object.timeoutHeight) - : helpers_1.Long.UZERO; + if (object.timeoutHeight !== undefined && object.timeoutHeight !== null) { + message.timeoutHeight = BigInt(object.timeoutHeight.toString()); + } message.extensionOptions = object.extensionOptions?.map((e) => any_1.Any.fromPartial(e)) || []; message.nonCriticalExtensionOptions = object.nonCriticalExtensionOptions?.map((e) => any_1.Any.fromPartial(e)) || []; @@ -81759,20 +78449,25 @@ function createBaseAuthInfo() { return { signerInfos: [], fee: undefined, + tip: undefined, }; } exports.AuthInfo = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.v1beta1.AuthInfo", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.signerInfos) { exports.SignerInfo.encode(v, writer.uint32(10).fork()).ldelim(); } if (message.fee !== undefined) { exports.Fee.encode(message.fee, writer.uint32(18).fork()).ldelim(); } + if (message.tip !== undefined) { + exports.Tip.encode(message.tip, writer.uint32(26).fork()).ldelim(); + } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseAuthInfo(); while (reader.pos < end) { @@ -81784,6 +78479,9 @@ exports.AuthInfo = { case 2: message.fee = exports.Fee.decode(reader, reader.uint32()); break; + case 3: + message.tip = exports.Tip.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -81792,12 +78490,14 @@ exports.AuthInfo = { return message; }, fromJSON(object) { - return { - signerInfos: Array.isArray(object?.signerInfos) - ? object.signerInfos.map((e) => exports.SignerInfo.fromJSON(e)) - : [], - fee: (0, helpers_1.isSet)(object.fee) ? exports.Fee.fromJSON(object.fee) : undefined, - }; + const obj = createBaseAuthInfo(); + if (Array.isArray(object?.signerInfos)) + obj.signerInfos = object.signerInfos.map((e) => exports.SignerInfo.fromJSON(e)); + if ((0, helpers_1.isSet)(object.fee)) + obj.fee = exports.Fee.fromJSON(object.fee); + if ((0, helpers_1.isSet)(object.tip)) + obj.tip = exports.Tip.fromJSON(object.tip); + return obj; }, toJSON(message) { const obj = {}; @@ -81808,12 +78508,18 @@ exports.AuthInfo = { obj.signerInfos = []; } message.fee !== undefined && (obj.fee = message.fee ? exports.Fee.toJSON(message.fee) : undefined); + message.tip !== undefined && (obj.tip = message.tip ? exports.Tip.toJSON(message.tip) : undefined); return obj; }, fromPartial(object) { const message = createBaseAuthInfo(); message.signerInfos = object.signerInfos?.map((e) => exports.SignerInfo.fromPartial(e)) || []; - message.fee = object.fee !== undefined && object.fee !== null ? exports.Fee.fromPartial(object.fee) : undefined; + if (object.fee !== undefined && object.fee !== null) { + message.fee = exports.Fee.fromPartial(object.fee); + } + if (object.tip !== undefined && object.tip !== null) { + message.tip = exports.Tip.fromPartial(object.tip); + } return message; }, }; @@ -81821,24 +78527,25 @@ function createBaseSignerInfo() { return { publicKey: undefined, modeInfo: undefined, - sequence: helpers_1.Long.UZERO, + sequence: BigInt(0), }; } exports.SignerInfo = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.v1beta1.SignerInfo", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.publicKey !== undefined) { any_1.Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim(); } if (message.modeInfo !== undefined) { exports.ModeInfo.encode(message.modeInfo, writer.uint32(18).fork()).ldelim(); } - if (!message.sequence.isZero()) { + if (message.sequence !== BigInt(0)) { writer.uint32(24).uint64(message.sequence); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSignerInfo(); while (reader.pos < end) { @@ -81861,11 +78568,14 @@ exports.SignerInfo = { return message; }, fromJSON(object) { - return { - publicKey: (0, helpers_1.isSet)(object.publicKey) ? any_1.Any.fromJSON(object.publicKey) : undefined, - modeInfo: (0, helpers_1.isSet)(object.modeInfo) ? exports.ModeInfo.fromJSON(object.modeInfo) : undefined, - sequence: (0, helpers_1.isSet)(object.sequence) ? helpers_1.Long.fromValue(object.sequence) : helpers_1.Long.UZERO, - }; + const obj = createBaseSignerInfo(); + if ((0, helpers_1.isSet)(object.publicKey)) + obj.publicKey = any_1.Any.fromJSON(object.publicKey); + if ((0, helpers_1.isSet)(object.modeInfo)) + obj.modeInfo = exports.ModeInfo.fromJSON(object.modeInfo); + if ((0, helpers_1.isSet)(object.sequence)) + obj.sequence = BigInt(object.sequence.toString()); + return obj; }, toJSON(message) { const obj = {}; @@ -81873,23 +78583,20 @@ exports.SignerInfo = { (obj.publicKey = message.publicKey ? any_1.Any.toJSON(message.publicKey) : undefined); message.modeInfo !== undefined && (obj.modeInfo = message.modeInfo ? exports.ModeInfo.toJSON(message.modeInfo) : undefined); - message.sequence !== undefined && (obj.sequence = (message.sequence || helpers_1.Long.UZERO).toString()); + message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseSignerInfo(); - message.publicKey = - object.publicKey !== undefined && object.publicKey !== null - ? any_1.Any.fromPartial(object.publicKey) - : undefined; - message.modeInfo = - object.modeInfo !== undefined && object.modeInfo !== null - ? exports.ModeInfo.fromPartial(object.modeInfo) - : undefined; - message.sequence = - object.sequence !== undefined && object.sequence !== null - ? helpers_1.Long.fromValue(object.sequence) - : helpers_1.Long.UZERO; + if (object.publicKey !== undefined && object.publicKey !== null) { + message.publicKey = any_1.Any.fromPartial(object.publicKey); + } + if (object.modeInfo !== undefined && object.modeInfo !== null) { + message.modeInfo = exports.ModeInfo.fromPartial(object.modeInfo); + } + if (object.sequence !== undefined && object.sequence !== null) { + message.sequence = BigInt(object.sequence.toString()); + } return message; }, }; @@ -81900,7 +78607,8 @@ function createBaseModeInfo() { }; } exports.ModeInfo = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.v1beta1.ModeInfo", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.single !== undefined) { exports.ModeInfo_Single.encode(message.single, writer.uint32(10).fork()).ldelim(); } @@ -81910,7 +78618,7 @@ exports.ModeInfo = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseModeInfo(); while (reader.pos < end) { @@ -81930,10 +78638,12 @@ exports.ModeInfo = { return message; }, fromJSON(object) { - return { - single: (0, helpers_1.isSet)(object.single) ? exports.ModeInfo_Single.fromJSON(object.single) : undefined, - multi: (0, helpers_1.isSet)(object.multi) ? exports.ModeInfo_Multi.fromJSON(object.multi) : undefined, - }; + const obj = createBaseModeInfo(); + if ((0, helpers_1.isSet)(object.single)) + obj.single = exports.ModeInfo_Single.fromJSON(object.single); + if ((0, helpers_1.isSet)(object.multi)) + obj.multi = exports.ModeInfo_Multi.fromJSON(object.multi); + return obj; }, toJSON(message) { const obj = {}; @@ -81945,14 +78655,12 @@ exports.ModeInfo = { }, fromPartial(object) { const message = createBaseModeInfo(); - message.single = - object.single !== undefined && object.single !== null - ? exports.ModeInfo_Single.fromPartial(object.single) - : undefined; - message.multi = - object.multi !== undefined && object.multi !== null - ? exports.ModeInfo_Multi.fromPartial(object.multi) - : undefined; + if (object.single !== undefined && object.single !== null) { + message.single = exports.ModeInfo_Single.fromPartial(object.single); + } + if (object.multi !== undefined && object.multi !== null) { + message.multi = exports.ModeInfo_Multi.fromPartial(object.multi); + } return message; }, }; @@ -81962,14 +78670,15 @@ function createBaseModeInfo_Single() { }; } exports.ModeInfo_Single = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.v1beta1.Single", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.mode !== 0) { writer.uint32(8).int32(message.mode); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseModeInfo_Single(); while (reader.pos < end) { @@ -81986,9 +78695,10 @@ exports.ModeInfo_Single = { return message; }, fromJSON(object) { - return { - mode: (0, helpers_1.isSet)(object.mode) ? (0, signing_1.signModeFromJSON)(object.mode) : 0, - }; + const obj = createBaseModeInfo_Single(); + if ((0, helpers_1.isSet)(object.mode)) + obj.mode = (0, signing_1.signModeFromJSON)(object.mode); + return obj; }, toJSON(message) { const obj = {}; @@ -82008,7 +78718,8 @@ function createBaseModeInfo_Multi() { }; } exports.ModeInfo_Multi = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.v1beta1.Multi", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.bitarray !== undefined) { multisig_1.CompactBitArray.encode(message.bitarray, writer.uint32(10).fork()).ldelim(); } @@ -82018,7 +78729,7 @@ exports.ModeInfo_Multi = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseModeInfo_Multi(); while (reader.pos < end) { @@ -82038,12 +78749,12 @@ exports.ModeInfo_Multi = { return message; }, fromJSON(object) { - return { - bitarray: (0, helpers_1.isSet)(object.bitarray) ? multisig_1.CompactBitArray.fromJSON(object.bitarray) : undefined, - modeInfos: Array.isArray(object?.modeInfos) - ? object.modeInfos.map((e) => exports.ModeInfo.fromJSON(e)) - : [], - }; + const obj = createBaseModeInfo_Multi(); + if ((0, helpers_1.isSet)(object.bitarray)) + obj.bitarray = multisig_1.CompactBitArray.fromJSON(object.bitarray); + if (Array.isArray(object?.modeInfos)) + obj.modeInfos = object.modeInfos.map((e) => exports.ModeInfo.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -82059,10 +78770,9 @@ exports.ModeInfo_Multi = { }, fromPartial(object) { const message = createBaseModeInfo_Multi(); - message.bitarray = - object.bitarray !== undefined && object.bitarray !== null - ? multisig_1.CompactBitArray.fromPartial(object.bitarray) - : undefined; + if (object.bitarray !== undefined && object.bitarray !== null) { + message.bitarray = multisig_1.CompactBitArray.fromPartial(object.bitarray); + } message.modeInfos = object.modeInfos?.map((e) => exports.ModeInfo.fromPartial(e)) || []; return message; }, @@ -82070,17 +78780,18 @@ exports.ModeInfo_Multi = { function createBaseFee() { return { amount: [], - gasLimit: helpers_1.Long.UZERO, + gasLimit: BigInt(0), payer: "", granter: "", }; } exports.Fee = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.tx.v1beta1.Fee", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.amount) { coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim(); } - if (!message.gasLimit.isZero()) { + if (message.gasLimit !== BigInt(0)) { writer.uint32(16).uint64(message.gasLimit); } if (message.payer !== "") { @@ -82092,7 +78803,7 @@ exports.Fee = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseFee(); while (reader.pos < end) { @@ -82118,12 +78829,16 @@ exports.Fee = { return message; }, fromJSON(object) { - return { - amount: Array.isArray(object?.amount) ? object.amount.map((e) => coin_1.Coin.fromJSON(e)) : [], - gasLimit: (0, helpers_1.isSet)(object.gasLimit) ? helpers_1.Long.fromValue(object.gasLimit) : helpers_1.Long.UZERO, - payer: (0, helpers_1.isSet)(object.payer) ? String(object.payer) : "", - granter: (0, helpers_1.isSet)(object.granter) ? String(object.granter) : "", - }; + const obj = createBaseFee(); + if (Array.isArray(object?.amount)) + obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e)); + if ((0, helpers_1.isSet)(object.gasLimit)) + obj.gasLimit = BigInt(object.gasLimit.toString()); + if ((0, helpers_1.isSet)(object.payer)) + obj.payer = String(object.payer); + if ((0, helpers_1.isSet)(object.granter)) + obj.granter = String(object.granter); + return obj; }, toJSON(message) { const obj = {}; @@ -82133,7 +78848,7 @@ exports.Fee = { else { obj.amount = []; } - message.gasLimit !== undefined && (obj.gasLimit = (message.gasLimit || helpers_1.Long.UZERO).toString()); + message.gasLimit !== undefined && (obj.gasLimit = (message.gasLimit || BigInt(0)).toString()); message.payer !== undefined && (obj.payer = message.payer); message.granter !== undefined && (obj.granter = message.granter); return obj; @@ -82141,15 +78856,161 @@ exports.Fee = { fromPartial(object) { const message = createBaseFee(); message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || []; - message.gasLimit = - object.gasLimit !== undefined && object.gasLimit !== null - ? helpers_1.Long.fromValue(object.gasLimit) - : helpers_1.Long.UZERO; + if (object.gasLimit !== undefined && object.gasLimit !== null) { + message.gasLimit = BigInt(object.gasLimit.toString()); + } message.payer = object.payer ?? ""; message.granter = object.granter ?? ""; return message; }, }; +function createBaseTip() { + return { + amount: [], + tipper: "", + }; +} +exports.Tip = { + typeUrl: "/cosmos.tx.v1beta1.Tip", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.amount) { + coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.tipper !== "") { + writer.uint32(18).string(message.tipper); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTip(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.amount.push(coin_1.Coin.decode(reader, reader.uint32())); + break; + case 2: + message.tipper = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseTip(); + if (Array.isArray(object?.amount)) + obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e)); + if ((0, helpers_1.isSet)(object.tipper)) + obj.tipper = String(object.tipper); + return obj; + }, + toJSON(message) { + const obj = {}; + if (message.amount) { + obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + } + else { + obj.amount = []; + } + message.tipper !== undefined && (obj.tipper = message.tipper); + return obj; + }, + fromPartial(object) { + const message = createBaseTip(); + message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || []; + message.tipper = object.tipper ?? ""; + return message; + }, +}; +function createBaseAuxSignerData() { + return { + address: "", + signDoc: undefined, + mode: 0, + sig: new Uint8Array(), + }; +} +exports.AuxSignerData = { + typeUrl: "/cosmos.tx.v1beta1.AuxSignerData", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.address !== "") { + writer.uint32(10).string(message.address); + } + if (message.signDoc !== undefined) { + exports.SignDocDirectAux.encode(message.signDoc, writer.uint32(18).fork()).ldelim(); + } + if (message.mode !== 0) { + writer.uint32(24).int32(message.mode); + } + if (message.sig.length !== 0) { + writer.uint32(34).bytes(message.sig); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAuxSignerData(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.address = reader.string(); + break; + case 2: + message.signDoc = exports.SignDocDirectAux.decode(reader, reader.uint32()); + break; + case 3: + message.mode = reader.int32(); + break; + case 4: + message.sig = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseAuxSignerData(); + if ((0, helpers_1.isSet)(object.address)) + obj.address = String(object.address); + if ((0, helpers_1.isSet)(object.signDoc)) + obj.signDoc = exports.SignDocDirectAux.fromJSON(object.signDoc); + if ((0, helpers_1.isSet)(object.mode)) + obj.mode = (0, signing_1.signModeFromJSON)(object.mode); + if ((0, helpers_1.isSet)(object.sig)) + obj.sig = (0, helpers_1.bytesFromBase64)(object.sig); + return obj; + }, + toJSON(message) { + const obj = {}; + message.address !== undefined && (obj.address = message.address); + message.signDoc !== undefined && + (obj.signDoc = message.signDoc ? exports.SignDocDirectAux.toJSON(message.signDoc) : undefined); + message.mode !== undefined && (obj.mode = (0, signing_1.signModeToJSON)(message.mode)); + message.sig !== undefined && + (obj.sig = (0, helpers_1.base64FromBytes)(message.sig !== undefined ? message.sig : new Uint8Array())); + return obj; + }, + fromPartial(object) { + const message = createBaseAuxSignerData(); + message.address = object.address ?? ""; + if (object.signDoc !== undefined && object.signDoc !== null) { + message.signDoc = exports.SignDocDirectAux.fromPartial(object.signDoc); + } + message.mode = object.mode ?? 0; + message.sig = object.sig ?? new Uint8Array(); + return message; + }, +}; //# sourceMappingURL=tx.js.map /***/ }), @@ -82162,55 +79023,33 @@ exports.Fee = { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.ModuleVersion = exports.CancelSoftwareUpgradeProposal = exports.SoftwareUpgradeProposal = exports.Plan = exports.protobufPackage = void 0; /* eslint-disable */ const timestamp_1 = __webpack_require__(/*! ../../../google/protobuf/timestamp */ "./node_modules/cosmjs-types/google/protobuf/timestamp.js"); const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); exports.protobufPackage = "cosmos.upgrade.v1beta1"; function createBasePlan() { return { name: "", - time: undefined, - height: helpers_1.Long.ZERO, + time: timestamp_1.Timestamp.fromPartial({}), + height: BigInt(0), info: "", upgradedClientState: undefined, }; } exports.Plan = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.upgrade.v1beta1.Plan", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.name !== "") { writer.uint32(10).string(message.name); } if (message.time !== undefined) { timestamp_1.Timestamp.encode(message.time, writer.uint32(18).fork()).ldelim(); } - if (!message.height.isZero()) { + if (message.height !== BigInt(0)) { writer.uint32(24).int64(message.height); } if (message.info !== "") { @@ -82222,7 +79061,7 @@ exports.Plan = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePlan(); while (reader.pos < end) { @@ -82251,21 +79090,24 @@ exports.Plan = { return message; }, fromJSON(object) { - return { - name: (0, helpers_1.isSet)(object.name) ? String(object.name) : "", - time: (0, helpers_1.isSet)(object.time) ? (0, helpers_1.fromJsonTimestamp)(object.time) : undefined, - height: (0, helpers_1.isSet)(object.height) ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO, - info: (0, helpers_1.isSet)(object.info) ? String(object.info) : "", - upgradedClientState: (0, helpers_1.isSet)(object.upgradedClientState) - ? any_1.Any.fromJSON(object.upgradedClientState) - : undefined, - }; + const obj = createBasePlan(); + if ((0, helpers_1.isSet)(object.name)) + obj.name = String(object.name); + if ((0, helpers_1.isSet)(object.time)) + obj.time = (0, helpers_1.fromJsonTimestamp)(object.time); + if ((0, helpers_1.isSet)(object.height)) + obj.height = BigInt(object.height.toString()); + if ((0, helpers_1.isSet)(object.info)) + obj.info = String(object.info); + if ((0, helpers_1.isSet)(object.upgradedClientState)) + obj.upgradedClientState = any_1.Any.fromJSON(object.upgradedClientState); + return obj; }, toJSON(message) { const obj = {}; message.name !== undefined && (obj.name = message.name); message.time !== undefined && (obj.time = (0, helpers_1.fromTimestamp)(message.time).toISOString()); - message.height !== undefined && (obj.height = (message.height || helpers_1.Long.ZERO).toString()); + message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString()); message.info !== undefined && (obj.info = message.info); message.upgradedClientState !== undefined && (obj.upgradedClientState = message.upgradedClientState @@ -82276,15 +79118,16 @@ exports.Plan = { fromPartial(object) { const message = createBasePlan(); message.name = object.name ?? ""; - message.time = - object.time !== undefined && object.time !== null ? timestamp_1.Timestamp.fromPartial(object.time) : undefined; - message.height = - object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; + if (object.time !== undefined && object.time !== null) { + message.time = timestamp_1.Timestamp.fromPartial(object.time); + } + if (object.height !== undefined && object.height !== null) { + message.height = BigInt(object.height.toString()); + } message.info = object.info ?? ""; - message.upgradedClientState = - object.upgradedClientState !== undefined && object.upgradedClientState !== null - ? any_1.Any.fromPartial(object.upgradedClientState) - : undefined; + if (object.upgradedClientState !== undefined && object.upgradedClientState !== null) { + message.upgradedClientState = any_1.Any.fromPartial(object.upgradedClientState); + } return message; }, }; @@ -82292,11 +79135,12 @@ function createBaseSoftwareUpgradeProposal() { return { title: "", description: "", - plan: undefined, + plan: exports.Plan.fromPartial({}), }; } exports.SoftwareUpgradeProposal = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.upgrade.v1beta1.SoftwareUpgradeProposal", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.title !== "") { writer.uint32(10).string(message.title); } @@ -82309,7 +79153,7 @@ exports.SoftwareUpgradeProposal = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSoftwareUpgradeProposal(); while (reader.pos < end) { @@ -82332,11 +79176,14 @@ exports.SoftwareUpgradeProposal = { return message; }, fromJSON(object) { - return { - title: (0, helpers_1.isSet)(object.title) ? String(object.title) : "", - description: (0, helpers_1.isSet)(object.description) ? String(object.description) : "", - plan: (0, helpers_1.isSet)(object.plan) ? exports.Plan.fromJSON(object.plan) : undefined, - }; + const obj = createBaseSoftwareUpgradeProposal(); + if ((0, helpers_1.isSet)(object.title)) + obj.title = String(object.title); + if ((0, helpers_1.isSet)(object.description)) + obj.description = String(object.description); + if ((0, helpers_1.isSet)(object.plan)) + obj.plan = exports.Plan.fromJSON(object.plan); + return obj; }, toJSON(message) { const obj = {}; @@ -82349,8 +79196,9 @@ exports.SoftwareUpgradeProposal = { const message = createBaseSoftwareUpgradeProposal(); message.title = object.title ?? ""; message.description = object.description ?? ""; - message.plan = - object.plan !== undefined && object.plan !== null ? exports.Plan.fromPartial(object.plan) : undefined; + if (object.plan !== undefined && object.plan !== null) { + message.plan = exports.Plan.fromPartial(object.plan); + } return message; }, }; @@ -82361,7 +79209,8 @@ function createBaseCancelSoftwareUpgradeProposal() { }; } exports.CancelSoftwareUpgradeProposal = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.title !== "") { writer.uint32(10).string(message.title); } @@ -82371,7 +79220,7 @@ exports.CancelSoftwareUpgradeProposal = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCancelSoftwareUpgradeProposal(); while (reader.pos < end) { @@ -82391,10 +79240,12 @@ exports.CancelSoftwareUpgradeProposal = { return message; }, fromJSON(object) { - return { - title: (0, helpers_1.isSet)(object.title) ? String(object.title) : "", - description: (0, helpers_1.isSet)(object.description) ? String(object.description) : "", - }; + const obj = createBaseCancelSoftwareUpgradeProposal(); + if ((0, helpers_1.isSet)(object.title)) + obj.title = String(object.title); + if ((0, helpers_1.isSet)(object.description)) + obj.description = String(object.description); + return obj; }, toJSON(message) { const obj = {}; @@ -82412,21 +79263,22 @@ exports.CancelSoftwareUpgradeProposal = { function createBaseModuleVersion() { return { name: "", - version: helpers_1.Long.UZERO, + version: BigInt(0), }; } exports.ModuleVersion = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.upgrade.v1beta1.ModuleVersion", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.name !== "") { writer.uint32(10).string(message.name); } - if (!message.version.isZero()) { + if (message.version !== BigInt(0)) { writer.uint32(16).uint64(message.version); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseModuleVersion(); while (reader.pos < end) { @@ -82446,22 +79298,25 @@ exports.ModuleVersion = { return message; }, fromJSON(object) { - return { - name: (0, helpers_1.isSet)(object.name) ? String(object.name) : "", - version: (0, helpers_1.isSet)(object.version) ? helpers_1.Long.fromValue(object.version) : helpers_1.Long.UZERO, - }; + const obj = createBaseModuleVersion(); + if ((0, helpers_1.isSet)(object.name)) + obj.name = String(object.name); + if ((0, helpers_1.isSet)(object.version)) + obj.version = BigInt(object.version.toString()); + return obj; }, toJSON(message) { const obj = {}; message.name !== undefined && (obj.name = message.name); - message.version !== undefined && (obj.version = (message.version || helpers_1.Long.UZERO).toString()); + message.version !== undefined && (obj.version = (message.version || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseModuleVersion(); message.name = object.name ?? ""; - message.version = - object.version !== undefined && object.version !== null ? helpers_1.Long.fromValue(object.version) : helpers_1.Long.UZERO; + if (object.version !== undefined && object.version !== null) { + message.version = BigInt(object.version.toString()); + } return message; }, }; @@ -82477,47 +79332,26 @@ exports.ModuleVersion = { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.MsgClientImpl = exports.MsgCreateVestingAccountResponse = exports.MsgCreateVestingAccount = exports.protobufPackage = void 0; +exports.MsgClientImpl = exports.MsgCreatePeriodicVestingAccountResponse = exports.MsgCreatePeriodicVestingAccount = exports.MsgCreatePermanentLockedAccountResponse = exports.MsgCreatePermanentLockedAccount = exports.MsgCreateVestingAccountResponse = exports.MsgCreateVestingAccount = exports.protobufPackage = void 0; /* eslint-disable */ const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); +const vesting_1 = __webpack_require__(/*! ./vesting */ "./node_modules/cosmjs-types/cosmos/vesting/v1beta1/vesting.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); exports.protobufPackage = "cosmos.vesting.v1beta1"; function createBaseMsgCreateVestingAccount() { return { fromAddress: "", toAddress: "", amount: [], - endTime: helpers_1.Long.ZERO, + endTime: BigInt(0), delayed: false, }; } exports.MsgCreateVestingAccount = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.vesting.v1beta1.MsgCreateVestingAccount", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.fromAddress !== "") { writer.uint32(10).string(message.fromAddress); } @@ -82527,7 +79361,7 @@ exports.MsgCreateVestingAccount = { for (const v of message.amount) { coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim(); } - if (!message.endTime.isZero()) { + if (message.endTime !== BigInt(0)) { writer.uint32(32).int64(message.endTime); } if (message.delayed === true) { @@ -82536,7 +79370,7 @@ exports.MsgCreateVestingAccount = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgCreateVestingAccount(); while (reader.pos < end) { @@ -82565,13 +79399,18 @@ exports.MsgCreateVestingAccount = { return message; }, fromJSON(object) { - return { - fromAddress: (0, helpers_1.isSet)(object.fromAddress) ? String(object.fromAddress) : "", - toAddress: (0, helpers_1.isSet)(object.toAddress) ? String(object.toAddress) : "", - amount: Array.isArray(object?.amount) ? object.amount.map((e) => coin_1.Coin.fromJSON(e)) : [], - endTime: (0, helpers_1.isSet)(object.endTime) ? helpers_1.Long.fromValue(object.endTime) : helpers_1.Long.ZERO, - delayed: (0, helpers_1.isSet)(object.delayed) ? Boolean(object.delayed) : false, - }; + const obj = createBaseMsgCreateVestingAccount(); + if ((0, helpers_1.isSet)(object.fromAddress)) + obj.fromAddress = String(object.fromAddress); + if ((0, helpers_1.isSet)(object.toAddress)) + obj.toAddress = String(object.toAddress); + if (Array.isArray(object?.amount)) + obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e)); + if ((0, helpers_1.isSet)(object.endTime)) + obj.endTime = BigInt(object.endTime.toString()); + if ((0, helpers_1.isSet)(object.delayed)) + obj.delayed = Boolean(object.delayed); + return obj; }, toJSON(message) { const obj = {}; @@ -82583,7 +79422,7 @@ exports.MsgCreateVestingAccount = { else { obj.amount = []; } - message.endTime !== undefined && (obj.endTime = (message.endTime || helpers_1.Long.ZERO).toString()); + message.endTime !== undefined && (obj.endTime = (message.endTime || BigInt(0)).toString()); message.delayed !== undefined && (obj.delayed = message.delayed); return obj; }, @@ -82592,8 +79431,9 @@ exports.MsgCreateVestingAccount = { message.fromAddress = object.fromAddress ?? ""; message.toAddress = object.toAddress ?? ""; message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || []; - message.endTime = - object.endTime !== undefined && object.endTime !== null ? helpers_1.Long.fromValue(object.endTime) : helpers_1.Long.ZERO; + if (object.endTime !== undefined && object.endTime !== null) { + message.endTime = BigInt(object.endTime.toString()); + } message.delayed = object.delayed ?? false; return message; }, @@ -82602,11 +79442,12 @@ function createBaseMsgCreateVestingAccountResponse() { return {}; } exports.MsgCreateVestingAccountResponse = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.vesting.v1beta1.MsgCreateVestingAccountResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgCreateVestingAccountResponse(); while (reader.pos < end) { @@ -82620,7 +79461,8 @@ exports.MsgCreateVestingAccountResponse = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseMsgCreateVestingAccountResponse(); + return obj; }, toJSON(_) { const obj = {}; @@ -82631,15 +79473,258 @@ exports.MsgCreateVestingAccountResponse = { return message; }, }; +function createBaseMsgCreatePermanentLockedAccount() { + return { + fromAddress: "", + toAddress: "", + amount: [], + }; +} +exports.MsgCreatePermanentLockedAccount = { + typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePermanentLockedAccount", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.fromAddress !== "") { + writer.uint32(10).string(message.fromAddress); + } + if (message.toAddress !== "") { + writer.uint32(18).string(message.toAddress); + } + for (const v of message.amount) { + coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgCreatePermanentLockedAccount(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.fromAddress = reader.string(); + break; + case 2: + message.toAddress = reader.string(); + break; + case 3: + message.amount.push(coin_1.Coin.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseMsgCreatePermanentLockedAccount(); + if ((0, helpers_1.isSet)(object.fromAddress)) + obj.fromAddress = String(object.fromAddress); + if ((0, helpers_1.isSet)(object.toAddress)) + obj.toAddress = String(object.toAddress); + if (Array.isArray(object?.amount)) + obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e)); + return obj; + }, + toJSON(message) { + const obj = {}; + message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress); + message.toAddress !== undefined && (obj.toAddress = message.toAddress); + if (message.amount) { + obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); + } + else { + obj.amount = []; + } + return obj; + }, + fromPartial(object) { + const message = createBaseMsgCreatePermanentLockedAccount(); + message.fromAddress = object.fromAddress ?? ""; + message.toAddress = object.toAddress ?? ""; + message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || []; + return message; + }, +}; +function createBaseMsgCreatePermanentLockedAccountResponse() { + return {}; +} +exports.MsgCreatePermanentLockedAccountResponse = { + typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePermanentLockedAccountResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgCreatePermanentLockedAccountResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_) { + const obj = createBaseMsgCreatePermanentLockedAccountResponse(); + return obj; + }, + toJSON(_) { + const obj = {}; + return obj; + }, + fromPartial(_) { + const message = createBaseMsgCreatePermanentLockedAccountResponse(); + return message; + }, +}; +function createBaseMsgCreatePeriodicVestingAccount() { + return { + fromAddress: "", + toAddress: "", + startTime: BigInt(0), + vestingPeriods: [], + }; +} +exports.MsgCreatePeriodicVestingAccount = { + typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccount", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.fromAddress !== "") { + writer.uint32(10).string(message.fromAddress); + } + if (message.toAddress !== "") { + writer.uint32(18).string(message.toAddress); + } + if (message.startTime !== BigInt(0)) { + writer.uint32(24).int64(message.startTime); + } + for (const v of message.vestingPeriods) { + vesting_1.Period.encode(v, writer.uint32(34).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgCreatePeriodicVestingAccount(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.fromAddress = reader.string(); + break; + case 2: + message.toAddress = reader.string(); + break; + case 3: + message.startTime = reader.int64(); + break; + case 4: + message.vestingPeriods.push(vesting_1.Period.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseMsgCreatePeriodicVestingAccount(); + if ((0, helpers_1.isSet)(object.fromAddress)) + obj.fromAddress = String(object.fromAddress); + if ((0, helpers_1.isSet)(object.toAddress)) + obj.toAddress = String(object.toAddress); + if ((0, helpers_1.isSet)(object.startTime)) + obj.startTime = BigInt(object.startTime.toString()); + if (Array.isArray(object?.vestingPeriods)) + obj.vestingPeriods = object.vestingPeriods.map((e) => vesting_1.Period.fromJSON(e)); + return obj; + }, + toJSON(message) { + const obj = {}; + message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress); + message.toAddress !== undefined && (obj.toAddress = message.toAddress); + message.startTime !== undefined && (obj.startTime = (message.startTime || BigInt(0)).toString()); + if (message.vestingPeriods) { + obj.vestingPeriods = message.vestingPeriods.map((e) => (e ? vesting_1.Period.toJSON(e) : undefined)); + } + else { + obj.vestingPeriods = []; + } + return obj; + }, + fromPartial(object) { + const message = createBaseMsgCreatePeriodicVestingAccount(); + message.fromAddress = object.fromAddress ?? ""; + message.toAddress = object.toAddress ?? ""; + if (object.startTime !== undefined && object.startTime !== null) { + message.startTime = BigInt(object.startTime.toString()); + } + message.vestingPeriods = object.vestingPeriods?.map((e) => vesting_1.Period.fromPartial(e)) || []; + return message; + }, +}; +function createBaseMsgCreatePeriodicVestingAccountResponse() { + return {}; +} +exports.MsgCreatePeriodicVestingAccountResponse = { + typeUrl: "/cosmos.vesting.v1beta1.MsgCreatePeriodicVestingAccountResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgCreatePeriodicVestingAccountResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(_) { + const obj = createBaseMsgCreatePeriodicVestingAccountResponse(); + return obj; + }, + toJSON(_) { + const obj = {}; + return obj; + }, + fromPartial(_) { + const message = createBaseMsgCreatePeriodicVestingAccountResponse(); + return message; + }, +}; class MsgClientImpl { constructor(rpc) { this.rpc = rpc; this.CreateVestingAccount = this.CreateVestingAccount.bind(this); + this.CreatePermanentLockedAccount = this.CreatePermanentLockedAccount.bind(this); + this.CreatePeriodicVestingAccount = this.CreatePeriodicVestingAccount.bind(this); } CreateVestingAccount(request) { const data = exports.MsgCreateVestingAccount.encode(request).finish(); const promise = this.rpc.request("cosmos.vesting.v1beta1.Msg", "CreateVestingAccount", data); - return promise.then((data) => exports.MsgCreateVestingAccountResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.MsgCreateVestingAccountResponse.decode(new binary_1.BinaryReader(data))); + } + CreatePermanentLockedAccount(request) { + const data = exports.MsgCreatePermanentLockedAccount.encode(request).finish(); + const promise = this.rpc.request("cosmos.vesting.v1beta1.Msg", "CreatePermanentLockedAccount", data); + return promise.then((data) => exports.MsgCreatePermanentLockedAccountResponse.decode(new binary_1.BinaryReader(data))); + } + CreatePeriodicVestingAccount(request) { + const data = exports.MsgCreatePeriodicVestingAccount.encode(request).finish(); + const promise = this.rpc.request("cosmos.vesting.v1beta1.Msg", "CreatePeriodicVestingAccount", data); + return promise.then((data) => exports.MsgCreatePeriodicVestingAccountResponse.decode(new binary_1.BinaryReader(data))); } } exports.MsgClientImpl = MsgClientImpl; @@ -82655,36 +79740,13 @@ exports.MsgClientImpl = MsgClientImpl; "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.PermanentLockedAccount = exports.PeriodicVestingAccount = exports.Period = exports.DelayedVestingAccount = exports.ContinuousVestingAccount = exports.BaseVestingAccount = exports.protobufPackage = void 0; /* eslint-disable */ const auth_1 = __webpack_require__(/*! ../../auth/v1beta1/auth */ "./node_modules/cosmjs-types/cosmos/auth/v1beta1/auth.js"); const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); +const binary_1 = __webpack_require__(/*! ../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); exports.protobufPackage = "cosmos.vesting.v1beta1"; function createBaseBaseVestingAccount() { return { @@ -82692,11 +79754,12 @@ function createBaseBaseVestingAccount() { originalVesting: [], delegatedFree: [], delegatedVesting: [], - endTime: helpers_1.Long.ZERO, + endTime: BigInt(0), }; } exports.BaseVestingAccount = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.vesting.v1beta1.BaseVestingAccount", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.baseAccount !== undefined) { auth_1.BaseAccount.encode(message.baseAccount, writer.uint32(10).fork()).ldelim(); } @@ -82709,13 +79772,13 @@ exports.BaseVestingAccount = { for (const v of message.delegatedVesting) { coin_1.Coin.encode(v, writer.uint32(34).fork()).ldelim(); } - if (!message.endTime.isZero()) { + if (message.endTime !== BigInt(0)) { writer.uint32(40).int64(message.endTime); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseBaseVestingAccount(); while (reader.pos < end) { @@ -82744,19 +79807,18 @@ exports.BaseVestingAccount = { return message; }, fromJSON(object) { - return { - baseAccount: (0, helpers_1.isSet)(object.baseAccount) ? auth_1.BaseAccount.fromJSON(object.baseAccount) : undefined, - originalVesting: Array.isArray(object?.originalVesting) - ? object.originalVesting.map((e) => coin_1.Coin.fromJSON(e)) - : [], - delegatedFree: Array.isArray(object?.delegatedFree) - ? object.delegatedFree.map((e) => coin_1.Coin.fromJSON(e)) - : [], - delegatedVesting: Array.isArray(object?.delegatedVesting) - ? object.delegatedVesting.map((e) => coin_1.Coin.fromJSON(e)) - : [], - endTime: (0, helpers_1.isSet)(object.endTime) ? helpers_1.Long.fromValue(object.endTime) : helpers_1.Long.ZERO, - }; + const obj = createBaseBaseVestingAccount(); + if ((0, helpers_1.isSet)(object.baseAccount)) + obj.baseAccount = auth_1.BaseAccount.fromJSON(object.baseAccount); + if (Array.isArray(object?.originalVesting)) + obj.originalVesting = object.originalVesting.map((e) => coin_1.Coin.fromJSON(e)); + if (Array.isArray(object?.delegatedFree)) + obj.delegatedFree = object.delegatedFree.map((e) => coin_1.Coin.fromJSON(e)); + if (Array.isArray(object?.delegatedVesting)) + obj.delegatedVesting = object.delegatedVesting.map((e) => coin_1.Coin.fromJSON(e)); + if ((0, helpers_1.isSet)(object.endTime)) + obj.endTime = BigInt(object.endTime.toString()); + return obj; }, toJSON(message) { const obj = {}; @@ -82780,41 +79842,42 @@ exports.BaseVestingAccount = { else { obj.delegatedVesting = []; } - message.endTime !== undefined && (obj.endTime = (message.endTime || helpers_1.Long.ZERO).toString()); + message.endTime !== undefined && (obj.endTime = (message.endTime || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseBaseVestingAccount(); - message.baseAccount = - object.baseAccount !== undefined && object.baseAccount !== null - ? auth_1.BaseAccount.fromPartial(object.baseAccount) - : undefined; + if (object.baseAccount !== undefined && object.baseAccount !== null) { + message.baseAccount = auth_1.BaseAccount.fromPartial(object.baseAccount); + } message.originalVesting = object.originalVesting?.map((e) => coin_1.Coin.fromPartial(e)) || []; message.delegatedFree = object.delegatedFree?.map((e) => coin_1.Coin.fromPartial(e)) || []; message.delegatedVesting = object.delegatedVesting?.map((e) => coin_1.Coin.fromPartial(e)) || []; - message.endTime = - object.endTime !== undefined && object.endTime !== null ? helpers_1.Long.fromValue(object.endTime) : helpers_1.Long.ZERO; + if (object.endTime !== undefined && object.endTime !== null) { + message.endTime = BigInt(object.endTime.toString()); + } return message; }, }; function createBaseContinuousVestingAccount() { return { baseVestingAccount: undefined, - startTime: helpers_1.Long.ZERO, + startTime: BigInt(0), }; } exports.ContinuousVestingAccount = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.vesting.v1beta1.ContinuousVestingAccount", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.baseVestingAccount !== undefined) { exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim(); } - if (!message.startTime.isZero()) { + if (message.startTime !== BigInt(0)) { writer.uint32(16).int64(message.startTime); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseContinuousVestingAccount(); while (reader.pos < end) { @@ -82834,12 +79897,12 @@ exports.ContinuousVestingAccount = { return message; }, fromJSON(object) { - return { - baseVestingAccount: (0, helpers_1.isSet)(object.baseVestingAccount) - ? exports.BaseVestingAccount.fromJSON(object.baseVestingAccount) - : undefined, - startTime: (0, helpers_1.isSet)(object.startTime) ? helpers_1.Long.fromValue(object.startTime) : helpers_1.Long.ZERO, - }; + const obj = createBaseContinuousVestingAccount(); + if ((0, helpers_1.isSet)(object.baseVestingAccount)) + obj.baseVestingAccount = exports.BaseVestingAccount.fromJSON(object.baseVestingAccount); + if ((0, helpers_1.isSet)(object.startTime)) + obj.startTime = BigInt(object.startTime.toString()); + return obj; }, toJSON(message) { const obj = {}; @@ -82847,19 +79910,17 @@ exports.ContinuousVestingAccount = { (obj.baseVestingAccount = message.baseVestingAccount ? exports.BaseVestingAccount.toJSON(message.baseVestingAccount) : undefined); - message.startTime !== undefined && (obj.startTime = (message.startTime || helpers_1.Long.ZERO).toString()); + message.startTime !== undefined && (obj.startTime = (message.startTime || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseContinuousVestingAccount(); - message.baseVestingAccount = - object.baseVestingAccount !== undefined && object.baseVestingAccount !== null - ? exports.BaseVestingAccount.fromPartial(object.baseVestingAccount) - : undefined; - message.startTime = - object.startTime !== undefined && object.startTime !== null - ? helpers_1.Long.fromValue(object.startTime) - : helpers_1.Long.ZERO; + if (object.baseVestingAccount !== undefined && object.baseVestingAccount !== null) { + message.baseVestingAccount = exports.BaseVestingAccount.fromPartial(object.baseVestingAccount); + } + if (object.startTime !== undefined && object.startTime !== null) { + message.startTime = BigInt(object.startTime.toString()); + } return message; }, }; @@ -82869,14 +79930,15 @@ function createBaseDelayedVestingAccount() { }; } exports.DelayedVestingAccount = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.vesting.v1beta1.DelayedVestingAccount", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.baseVestingAccount !== undefined) { exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDelayedVestingAccount(); while (reader.pos < end) { @@ -82893,11 +79955,10 @@ exports.DelayedVestingAccount = { return message; }, fromJSON(object) { - return { - baseVestingAccount: (0, helpers_1.isSet)(object.baseVestingAccount) - ? exports.BaseVestingAccount.fromJSON(object.baseVestingAccount) - : undefined, - }; + const obj = createBaseDelayedVestingAccount(); + if ((0, helpers_1.isSet)(object.baseVestingAccount)) + obj.baseVestingAccount = exports.BaseVestingAccount.fromJSON(object.baseVestingAccount); + return obj; }, toJSON(message) { const obj = {}; @@ -82909,22 +79970,22 @@ exports.DelayedVestingAccount = { }, fromPartial(object) { const message = createBaseDelayedVestingAccount(); - message.baseVestingAccount = - object.baseVestingAccount !== undefined && object.baseVestingAccount !== null - ? exports.BaseVestingAccount.fromPartial(object.baseVestingAccount) - : undefined; + if (object.baseVestingAccount !== undefined && object.baseVestingAccount !== null) { + message.baseVestingAccount = exports.BaseVestingAccount.fromPartial(object.baseVestingAccount); + } return message; }, }; function createBasePeriod() { return { - length: helpers_1.Long.ZERO, + length: BigInt(0), amount: [], }; } exports.Period = { - encode(message, writer = _m0.Writer.create()) { - if (!message.length.isZero()) { + typeUrl: "/cosmos.vesting.v1beta1.Period", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.length !== BigInt(0)) { writer.uint32(8).int64(message.length); } for (const v of message.amount) { @@ -82933,7 +79994,7 @@ exports.Period = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePeriod(); while (reader.pos < end) { @@ -82953,14 +80014,16 @@ exports.Period = { return message; }, fromJSON(object) { - return { - length: (0, helpers_1.isSet)(object.length) ? helpers_1.Long.fromValue(object.length) : helpers_1.Long.ZERO, - amount: Array.isArray(object?.amount) ? object.amount.map((e) => coin_1.Coin.fromJSON(e)) : [], - }; + const obj = createBasePeriod(); + if ((0, helpers_1.isSet)(object.length)) + obj.length = BigInt(object.length.toString()); + if (Array.isArray(object?.amount)) + obj.amount = object.amount.map((e) => coin_1.Coin.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - message.length !== undefined && (obj.length = (message.length || helpers_1.Long.ZERO).toString()); + message.length !== undefined && (obj.length = (message.length || BigInt(0)).toString()); if (message.amount) { obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined)); } @@ -82971,8 +80034,9 @@ exports.Period = { }, fromPartial(object) { const message = createBasePeriod(); - message.length = - object.length !== undefined && object.length !== null ? helpers_1.Long.fromValue(object.length) : helpers_1.Long.ZERO; + if (object.length !== undefined && object.length !== null) { + message.length = BigInt(object.length.toString()); + } message.amount = object.amount?.map((e) => coin_1.Coin.fromPartial(e)) || []; return message; }, @@ -82980,16 +80044,17 @@ exports.Period = { function createBasePeriodicVestingAccount() { return { baseVestingAccount: undefined, - startTime: helpers_1.Long.ZERO, + startTime: BigInt(0), vestingPeriods: [], }; } exports.PeriodicVestingAccount = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.vesting.v1beta1.PeriodicVestingAccount", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.baseVestingAccount !== undefined) { exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim(); } - if (!message.startTime.isZero()) { + if (message.startTime !== BigInt(0)) { writer.uint32(16).int64(message.startTime); } for (const v of message.vestingPeriods) { @@ -82998,7 +80063,7 @@ exports.PeriodicVestingAccount = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePeriodicVestingAccount(); while (reader.pos < end) { @@ -83021,15 +80086,14 @@ exports.PeriodicVestingAccount = { return message; }, fromJSON(object) { - return { - baseVestingAccount: (0, helpers_1.isSet)(object.baseVestingAccount) - ? exports.BaseVestingAccount.fromJSON(object.baseVestingAccount) - : undefined, - startTime: (0, helpers_1.isSet)(object.startTime) ? helpers_1.Long.fromValue(object.startTime) : helpers_1.Long.ZERO, - vestingPeriods: Array.isArray(object?.vestingPeriods) - ? object.vestingPeriods.map((e) => exports.Period.fromJSON(e)) - : [], - }; + const obj = createBasePeriodicVestingAccount(); + if ((0, helpers_1.isSet)(object.baseVestingAccount)) + obj.baseVestingAccount = exports.BaseVestingAccount.fromJSON(object.baseVestingAccount); + if ((0, helpers_1.isSet)(object.startTime)) + obj.startTime = BigInt(object.startTime.toString()); + if (Array.isArray(object?.vestingPeriods)) + obj.vestingPeriods = object.vestingPeriods.map((e) => exports.Period.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -83037,7 +80101,7 @@ exports.PeriodicVestingAccount = { (obj.baseVestingAccount = message.baseVestingAccount ? exports.BaseVestingAccount.toJSON(message.baseVestingAccount) : undefined); - message.startTime !== undefined && (obj.startTime = (message.startTime || helpers_1.Long.ZERO).toString()); + message.startTime !== undefined && (obj.startTime = (message.startTime || BigInt(0)).toString()); if (message.vestingPeriods) { obj.vestingPeriods = message.vestingPeriods.map((e) => (e ? exports.Period.toJSON(e) : undefined)); } @@ -83048,14 +80112,12 @@ exports.PeriodicVestingAccount = { }, fromPartial(object) { const message = createBasePeriodicVestingAccount(); - message.baseVestingAccount = - object.baseVestingAccount !== undefined && object.baseVestingAccount !== null - ? exports.BaseVestingAccount.fromPartial(object.baseVestingAccount) - : undefined; - message.startTime = - object.startTime !== undefined && object.startTime !== null - ? helpers_1.Long.fromValue(object.startTime) - : helpers_1.Long.ZERO; + if (object.baseVestingAccount !== undefined && object.baseVestingAccount !== null) { + message.baseVestingAccount = exports.BaseVestingAccount.fromPartial(object.baseVestingAccount); + } + if (object.startTime !== undefined && object.startTime !== null) { + message.startTime = BigInt(object.startTime.toString()); + } message.vestingPeriods = object.vestingPeriods?.map((e) => exports.Period.fromPartial(e)) || []; return message; }, @@ -83066,14 +80128,15 @@ function createBasePermanentLockedAccount() { }; } exports.PermanentLockedAccount = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/cosmos.vesting.v1beta1.PermanentLockedAccount", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.baseVestingAccount !== undefined) { exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePermanentLockedAccount(); while (reader.pos < end) { @@ -83090,11 +80153,10 @@ exports.PermanentLockedAccount = { return message; }, fromJSON(object) { - return { - baseVestingAccount: (0, helpers_1.isSet)(object.baseVestingAccount) - ? exports.BaseVestingAccount.fromJSON(object.baseVestingAccount) - : undefined, - }; + const obj = createBasePermanentLockedAccount(); + if ((0, helpers_1.isSet)(object.baseVestingAccount)) + obj.baseVestingAccount = exports.BaseVestingAccount.fromJSON(object.baseVestingAccount); + return obj; }, toJSON(message) { const obj = {}; @@ -83106,10 +80168,9 @@ exports.PermanentLockedAccount = { }, fromPartial(object) { const message = createBasePermanentLockedAccount(); - message.baseVestingAccount = - object.baseVestingAccount !== undefined && object.baseVestingAccount !== null - ? exports.BaseVestingAccount.fromPartial(object.baseVestingAccount) - : undefined; + if (object.baseVestingAccount !== undefined && object.baseVestingAccount !== null) { + message.baseVestingAccount = exports.BaseVestingAccount.fromPartial(object.baseVestingAccount); + } return message; }, }; @@ -83125,33 +80186,10 @@ exports.PermanentLockedAccount = { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Any = exports.protobufPackage = void 0; /* eslint-disable */ -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "google.protobuf"; function createBaseAny() { @@ -83161,7 +80199,8 @@ function createBaseAny() { }; } exports.Any = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/google.protobuf.Any", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.typeUrl !== "") { writer.uint32(10).string(message.typeUrl); } @@ -83171,7 +80210,7 @@ exports.Any = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseAny(); while (reader.pos < end) { @@ -83191,10 +80230,12 @@ exports.Any = { return message; }, fromJSON(object) { - return { - typeUrl: (0, helpers_1.isSet)(object.typeUrl) ? String(object.typeUrl) : "", - value: (0, helpers_1.isSet)(object.value) ? (0, helpers_1.bytesFromBase64)(object.value) : new Uint8Array(), - }; + const obj = createBaseAny(); + if ((0, helpers_1.isSet)(object.typeUrl)) + obj.typeUrl = String(object.typeUrl); + if ((0, helpers_1.isSet)(object.value)) + obj.value = (0, helpers_1.bytesFromBase64)(object.value); + return obj; }, toJSON(message) { const obj = {}; @@ -83222,44 +80263,22 @@ exports.Any = { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Duration = exports.protobufPackage = void 0; /* eslint-disable */ +const binary_1 = __webpack_require__(/*! ../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); exports.protobufPackage = "google.protobuf"; function createBaseDuration() { return { - seconds: helpers_1.Long.ZERO, + seconds: BigInt(0), nanos: 0, }; } exports.Duration = { - encode(message, writer = _m0.Writer.create()) { - if (!message.seconds.isZero()) { + typeUrl: "/google.protobuf.Duration", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.seconds !== BigInt(0)) { writer.uint32(8).int64(message.seconds); } if (message.nanos !== 0) { @@ -83268,7 +80287,7 @@ exports.Duration = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDuration(); while (reader.pos < end) { @@ -83288,21 +80307,24 @@ exports.Duration = { return message; }, fromJSON(object) { - return { - seconds: (0, helpers_1.isSet)(object.seconds) ? helpers_1.Long.fromValue(object.seconds) : helpers_1.Long.ZERO, - nanos: (0, helpers_1.isSet)(object.nanos) ? Number(object.nanos) : 0, - }; + const obj = createBaseDuration(); + if ((0, helpers_1.isSet)(object.seconds)) + obj.seconds = BigInt(object.seconds.toString()); + if ((0, helpers_1.isSet)(object.nanos)) + obj.nanos = Number(object.nanos); + return obj; }, toJSON(message) { const obj = {}; - message.seconds !== undefined && (obj.seconds = (message.seconds || helpers_1.Long.ZERO).toString()); + message.seconds !== undefined && (obj.seconds = (message.seconds || BigInt(0)).toString()); message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); return obj; }, fromPartial(object) { const message = createBaseDuration(); - message.seconds = - object.seconds !== undefined && object.seconds !== null ? helpers_1.Long.fromValue(object.seconds) : helpers_1.Long.ZERO; + if (object.seconds !== undefined && object.seconds !== null) { + message.seconds = BigInt(object.seconds.toString()); + } message.nanos = object.nanos ?? 0; return message; }, @@ -83319,44 +80341,22 @@ exports.Duration = { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Timestamp = exports.protobufPackage = void 0; /* eslint-disable */ +const binary_1 = __webpack_require__(/*! ../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); exports.protobufPackage = "google.protobuf"; function createBaseTimestamp() { return { - seconds: helpers_1.Long.ZERO, + seconds: BigInt(0), nanos: 0, }; } exports.Timestamp = { - encode(message, writer = _m0.Writer.create()) { - if (!message.seconds.isZero()) { + typeUrl: "/google.protobuf.Timestamp", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.seconds !== BigInt(0)) { writer.uint32(8).int64(message.seconds); } if (message.nanos !== 0) { @@ -83365,7 +80365,7 @@ exports.Timestamp = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseTimestamp(); while (reader.pos < end) { @@ -83385,21 +80385,24 @@ exports.Timestamp = { return message; }, fromJSON(object) { - return { - seconds: (0, helpers_1.isSet)(object.seconds) ? helpers_1.Long.fromValue(object.seconds) : helpers_1.Long.ZERO, - nanos: (0, helpers_1.isSet)(object.nanos) ? Number(object.nanos) : 0, - }; + const obj = createBaseTimestamp(); + if ((0, helpers_1.isSet)(object.seconds)) + obj.seconds = BigInt(object.seconds.toString()); + if ((0, helpers_1.isSet)(object.nanos)) + obj.nanos = Number(object.nanos); + return obj; }, toJSON(message) { const obj = {}; - message.seconds !== undefined && (obj.seconds = (message.seconds || helpers_1.Long.ZERO).toString()); + message.seconds !== undefined && (obj.seconds = (message.seconds || BigInt(0)).toString()); message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); return obj; }, fromPartial(object) { const message = createBaseTimestamp(); - message.seconds = - object.seconds !== undefined && object.seconds !== null ? helpers_1.Long.fromValue(object.seconds) : helpers_1.Long.ZERO; + if (object.seconds !== undefined && object.seconds !== null) { + message.seconds = BigInt(object.seconds.toString()); + } message.nanos = object.nanos ?? 0; return message; }, @@ -83419,46 +80422,12 @@ exports.Timestamp = { /* eslint-disable */ /** - * This file and any referenced files were automatically generated by @osmonauts/telescope@0.88.2 + * This file and any referenced files were automatically generated by @cosmology/telescope@1.0.7 * DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain * and run the transpile command or yarn proto command to regenerate this bundle. */ -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fromJsonTimestamp = exports.fromTimestamp = exports.toTimestamp = exports.setPaginationParams = exports.isObject = exports.isSet = exports.fromDuration = exports.toDuration = exports.omitDefault = exports.base64FromBytes = exports.bytesFromBase64 = exports.Long = void 0; -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); -exports.Long = long_1.default; -// @ts-ignore -if (_m0.util.Long !== long_1.default) { - _m0.util.Long = long_1.default; - _m0.configure(); -} +exports.fromJsonTimestamp = exports.fromTimestamp = exports.toTimestamp = exports.setPaginationParams = exports.isObject = exports.isSet = exports.fromDuration = exports.toDuration = exports.omitDefault = exports.base64FromBytes = exports.bytesFromBase64 = void 0; var globalThis = (() => { if (typeof globalThis !== "undefined") return globalThis; @@ -83496,15 +80465,15 @@ function omitDefault(input) { if (typeof input === "number") { return input === 0 ? undefined : input; } - if (long_1.default.isLong(input)) { - return input.isZero() ? undefined : input; + if (typeof input === "bigint") { + return input === BigInt(0) ? undefined : input; } throw new Error(`Got unsupported type ${typeof input}`); } exports.omitDefault = omitDefault; function toDuration(duration) { return { - seconds: long_1.default.fromNumber(Math.floor(parseInt(duration) / 1000000000)), + seconds: BigInt(Math.floor(parseInt(duration) / 1000000000)), nanos: parseInt(duration) % 1000000000, }; } @@ -83556,20 +80525,14 @@ function toTimestamp(date) { } exports.toTimestamp = toTimestamp; function fromTimestamp(t) { - let millis = t.seconds.toNumber() * 1000; + let millis = Number(t.seconds) * 1000; millis += t.nanos / 1000000; return new Date(millis); } exports.fromTimestamp = fromTimestamp; -const fromJSON = (object) => { - return { - seconds: isSet(object.seconds) ? long_1.default.fromString(object.seconds) : long_1.default.ZERO, - nanos: isSet(object.nanos) ? Number(object.nanos) : 0, - }; -}; const timestampFromJSON = (object) => { return { - seconds: isSet(object.seconds) ? long_1.default.fromValue(object.seconds) : long_1.default.ZERO, + seconds: isSet(object.seconds) ? BigInt(object.seconds.toString()) : BigInt(0), nanos: isSet(object.nanos) ? Number(object.nanos) : 0, }; }; @@ -83586,7 +80549,7 @@ function fromJsonTimestamp(o) { } exports.fromJsonTimestamp = fromJsonTimestamp; function numberToLong(number) { - return long_1.default.fromNumber(number); + return BigInt(Math.trunc(number)); } //# sourceMappingURL=helpers.js.map @@ -83600,35 +80563,12 @@ function numberToLong(number) { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.QueryClientImpl = exports.QueryEscrowAddressResponse = exports.QueryEscrowAddressRequest = exports.QueryDenomHashResponse = exports.QueryDenomHashRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryDenomTracesResponse = exports.QueryDenomTracesRequest = exports.QueryDenomTraceResponse = exports.QueryDenomTraceRequest = exports.protobufPackage = void 0; /* eslint-disable */ const pagination_1 = __webpack_require__(/*! ../../../../cosmos/base/query/v1beta1/pagination */ "./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js"); const transfer_1 = __webpack_require__(/*! ./transfer */ "./node_modules/cosmjs-types/ibc/applications/transfer/v1/transfer.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "ibc.applications.transfer.v1"; function createBaseQueryDenomTraceRequest() { @@ -83637,14 +80577,15 @@ function createBaseQueryDenomTraceRequest() { }; } exports.QueryDenomTraceRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.applications.transfer.v1.QueryDenomTraceRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.hash !== "") { writer.uint32(10).string(message.hash); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryDenomTraceRequest(); while (reader.pos < end) { @@ -83661,9 +80602,10 @@ exports.QueryDenomTraceRequest = { return message; }, fromJSON(object) { - return { - hash: (0, helpers_1.isSet)(object.hash) ? String(object.hash) : "", - }; + const obj = createBaseQueryDenomTraceRequest(); + if ((0, helpers_1.isSet)(object.hash)) + obj.hash = String(object.hash); + return obj; }, toJSON(message) { const obj = {}; @@ -83682,14 +80624,15 @@ function createBaseQueryDenomTraceResponse() { }; } exports.QueryDenomTraceResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.applications.transfer.v1.QueryDenomTraceResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.denomTrace !== undefined) { transfer_1.DenomTrace.encode(message.denomTrace, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryDenomTraceResponse(); while (reader.pos < end) { @@ -83706,9 +80649,10 @@ exports.QueryDenomTraceResponse = { return message; }, fromJSON(object) { - return { - denomTrace: (0, helpers_1.isSet)(object.denomTrace) ? transfer_1.DenomTrace.fromJSON(object.denomTrace) : undefined, - }; + const obj = createBaseQueryDenomTraceResponse(); + if ((0, helpers_1.isSet)(object.denomTrace)) + obj.denomTrace = transfer_1.DenomTrace.fromJSON(object.denomTrace); + return obj; }, toJSON(message) { const obj = {}; @@ -83718,10 +80662,9 @@ exports.QueryDenomTraceResponse = { }, fromPartial(object) { const message = createBaseQueryDenomTraceResponse(); - message.denomTrace = - object.denomTrace !== undefined && object.denomTrace !== null - ? transfer_1.DenomTrace.fromPartial(object.denomTrace) - : undefined; + if (object.denomTrace !== undefined && object.denomTrace !== null) { + message.denomTrace = transfer_1.DenomTrace.fromPartial(object.denomTrace); + } return message; }, }; @@ -83731,14 +80674,15 @@ function createBaseQueryDenomTracesRequest() { }; } exports.QueryDenomTracesRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.applications.transfer.v1.QueryDenomTracesRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.pagination !== undefined) { pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryDenomTracesRequest(); while (reader.pos < end) { @@ -83755,9 +80699,10 @@ exports.QueryDenomTracesRequest = { return message; }, fromJSON(object) { - return { - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryDenomTracesRequest(); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -83767,10 +80712,9 @@ exports.QueryDenomTracesRequest = { }, fromPartial(object) { const message = createBaseQueryDenomTracesRequest(); - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } return message; }, }; @@ -83781,7 +80725,8 @@ function createBaseQueryDenomTracesResponse() { }; } exports.QueryDenomTracesResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.applications.transfer.v1.QueryDenomTracesResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.denomTraces) { transfer_1.DenomTrace.encode(v, writer.uint32(10).fork()).ldelim(); } @@ -83791,7 +80736,7 @@ exports.QueryDenomTracesResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryDenomTracesResponse(); while (reader.pos < end) { @@ -83811,12 +80756,12 @@ exports.QueryDenomTracesResponse = { return message; }, fromJSON(object) { - return { - denomTraces: Array.isArray(object?.denomTraces) - ? object.denomTraces.map((e) => transfer_1.DenomTrace.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryDenomTracesResponse(); + if (Array.isArray(object?.denomTraces)) + obj.denomTraces = object.denomTraces.map((e) => transfer_1.DenomTrace.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -83833,10 +80778,9 @@ exports.QueryDenomTracesResponse = { fromPartial(object) { const message = createBaseQueryDenomTracesResponse(); message.denomTraces = object.denomTraces?.map((e) => transfer_1.DenomTrace.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } return message; }, }; @@ -83844,11 +80788,12 @@ function createBaseQueryParamsRequest() { return {}; } exports.QueryParamsRequest = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/ibc.applications.transfer.v1.QueryParamsRequest", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryParamsRequest(); while (reader.pos < end) { @@ -83862,7 +80807,8 @@ exports.QueryParamsRequest = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseQueryParamsRequest(); + return obj; }, toJSON(_) { const obj = {}; @@ -83879,14 +80825,15 @@ function createBaseQueryParamsResponse() { }; } exports.QueryParamsResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.applications.transfer.v1.QueryParamsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.params !== undefined) { transfer_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryParamsResponse(); while (reader.pos < end) { @@ -83903,9 +80850,10 @@ exports.QueryParamsResponse = { return message; }, fromJSON(object) { - return { - params: (0, helpers_1.isSet)(object.params) ? transfer_1.Params.fromJSON(object.params) : undefined, - }; + const obj = createBaseQueryParamsResponse(); + if ((0, helpers_1.isSet)(object.params)) + obj.params = transfer_1.Params.fromJSON(object.params); + return obj; }, toJSON(message) { const obj = {}; @@ -83914,8 +80862,9 @@ exports.QueryParamsResponse = { }, fromPartial(object) { const message = createBaseQueryParamsResponse(); - message.params = - object.params !== undefined && object.params !== null ? transfer_1.Params.fromPartial(object.params) : undefined; + if (object.params !== undefined && object.params !== null) { + message.params = transfer_1.Params.fromPartial(object.params); + } return message; }, }; @@ -83925,14 +80874,15 @@ function createBaseQueryDenomHashRequest() { }; } exports.QueryDenomHashRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.applications.transfer.v1.QueryDenomHashRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.trace !== "") { writer.uint32(10).string(message.trace); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryDenomHashRequest(); while (reader.pos < end) { @@ -83949,9 +80899,10 @@ exports.QueryDenomHashRequest = { return message; }, fromJSON(object) { - return { - trace: (0, helpers_1.isSet)(object.trace) ? String(object.trace) : "", - }; + const obj = createBaseQueryDenomHashRequest(); + if ((0, helpers_1.isSet)(object.trace)) + obj.trace = String(object.trace); + return obj; }, toJSON(message) { const obj = {}; @@ -83970,14 +80921,15 @@ function createBaseQueryDenomHashResponse() { }; } exports.QueryDenomHashResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.applications.transfer.v1.QueryDenomHashResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.hash !== "") { writer.uint32(10).string(message.hash); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryDenomHashResponse(); while (reader.pos < end) { @@ -83994,9 +80946,10 @@ exports.QueryDenomHashResponse = { return message; }, fromJSON(object) { - return { - hash: (0, helpers_1.isSet)(object.hash) ? String(object.hash) : "", - }; + const obj = createBaseQueryDenomHashResponse(); + if ((0, helpers_1.isSet)(object.hash)) + obj.hash = String(object.hash); + return obj; }, toJSON(message) { const obj = {}; @@ -84016,7 +80969,8 @@ function createBaseQueryEscrowAddressRequest() { }; } exports.QueryEscrowAddressRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.applications.transfer.v1.QueryEscrowAddressRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.portId !== "") { writer.uint32(10).string(message.portId); } @@ -84026,7 +80980,7 @@ exports.QueryEscrowAddressRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryEscrowAddressRequest(); while (reader.pos < end) { @@ -84046,10 +81000,12 @@ exports.QueryEscrowAddressRequest = { return message; }, fromJSON(object) { - return { - portId: (0, helpers_1.isSet)(object.portId) ? String(object.portId) : "", - channelId: (0, helpers_1.isSet)(object.channelId) ? String(object.channelId) : "", - }; + const obj = createBaseQueryEscrowAddressRequest(); + if ((0, helpers_1.isSet)(object.portId)) + obj.portId = String(object.portId); + if ((0, helpers_1.isSet)(object.channelId)) + obj.channelId = String(object.channelId); + return obj; }, toJSON(message) { const obj = {}; @@ -84070,14 +81026,15 @@ function createBaseQueryEscrowAddressResponse() { }; } exports.QueryEscrowAddressResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.applications.transfer.v1.QueryEscrowAddressResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.escrowAddress !== "") { writer.uint32(10).string(message.escrowAddress); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryEscrowAddressResponse(); while (reader.pos < end) { @@ -84094,9 +81051,10 @@ exports.QueryEscrowAddressResponse = { return message; }, fromJSON(object) { - return { - escrowAddress: (0, helpers_1.isSet)(object.escrowAddress) ? String(object.escrowAddress) : "", - }; + const obj = createBaseQueryEscrowAddressResponse(); + if ((0, helpers_1.isSet)(object.escrowAddress)) + obj.escrowAddress = String(object.escrowAddress); + return obj; }, toJSON(message) { const obj = {}; @@ -84121,29 +81079,29 @@ class QueryClientImpl { DenomTrace(request) { const data = exports.QueryDenomTraceRequest.encode(request).finish(); const promise = this.rpc.request("ibc.applications.transfer.v1.Query", "DenomTrace", data); - return promise.then((data) => exports.QueryDenomTraceResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryDenomTraceResponse.decode(new binary_1.BinaryReader(data))); } DenomTraces(request = { - pagination: undefined, + pagination: pagination_1.PageRequest.fromPartial({}), }) { const data = exports.QueryDenomTracesRequest.encode(request).finish(); const promise = this.rpc.request("ibc.applications.transfer.v1.Query", "DenomTraces", data); - return promise.then((data) => exports.QueryDenomTracesResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryDenomTracesResponse.decode(new binary_1.BinaryReader(data))); } Params(request = {}) { const data = exports.QueryParamsRequest.encode(request).finish(); const promise = this.rpc.request("ibc.applications.transfer.v1.Query", "Params", data); - return promise.then((data) => exports.QueryParamsResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryParamsResponse.decode(new binary_1.BinaryReader(data))); } DenomHash(request) { const data = exports.QueryDenomHashRequest.encode(request).finish(); const promise = this.rpc.request("ibc.applications.transfer.v1.Query", "DenomHash", data); - return promise.then((data) => exports.QueryDenomHashResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryDenomHashResponse.decode(new binary_1.BinaryReader(data))); } EscrowAddress(request) { const data = exports.QueryEscrowAddressRequest.encode(request).finish(); const promise = this.rpc.request("ibc.applications.transfer.v1.Query", "EscrowAddress", data); - return promise.then((data) => exports.QueryEscrowAddressResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryEscrowAddressResponse.decode(new binary_1.BinaryReader(data))); } } exports.QueryClientImpl = QueryClientImpl; @@ -84159,33 +81117,10 @@ exports.QueryClientImpl = QueryClientImpl; "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Params = exports.DenomTrace = exports.protobufPackage = void 0; /* eslint-disable */ -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "ibc.applications.transfer.v1"; function createBaseDenomTrace() { @@ -84195,7 +81130,8 @@ function createBaseDenomTrace() { }; } exports.DenomTrace = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.applications.transfer.v1.DenomTrace", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.path !== "") { writer.uint32(10).string(message.path); } @@ -84205,7 +81141,7 @@ exports.DenomTrace = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDenomTrace(); while (reader.pos < end) { @@ -84225,10 +81161,12 @@ exports.DenomTrace = { return message; }, fromJSON(object) { - return { - path: (0, helpers_1.isSet)(object.path) ? String(object.path) : "", - baseDenom: (0, helpers_1.isSet)(object.baseDenom) ? String(object.baseDenom) : "", - }; + const obj = createBaseDenomTrace(); + if ((0, helpers_1.isSet)(object.path)) + obj.path = String(object.path); + if ((0, helpers_1.isSet)(object.baseDenom)) + obj.baseDenom = String(object.baseDenom); + return obj; }, toJSON(message) { const obj = {}; @@ -84250,7 +81188,8 @@ function createBaseParams() { }; } exports.Params = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.applications.transfer.v1.Params", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.sendEnabled === true) { writer.uint32(8).bool(message.sendEnabled); } @@ -84260,7 +81199,7 @@ exports.Params = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseParams(); while (reader.pos < end) { @@ -84280,10 +81219,12 @@ exports.Params = { return message; }, fromJSON(object) { - return { - sendEnabled: (0, helpers_1.isSet)(object.sendEnabled) ? Boolean(object.sendEnabled) : false, - receiveEnabled: (0, helpers_1.isSet)(object.receiveEnabled) ? Boolean(object.receiveEnabled) : false, - }; + const obj = createBaseParams(); + if ((0, helpers_1.isSet)(object.sendEnabled)) + obj.sendEnabled = Boolean(object.sendEnabled); + if ((0, helpers_1.isSet)(object.receiveEnabled)) + obj.receiveEnabled = Boolean(object.receiveEnabled); + return obj; }, toJSON(message) { const obj = {}; @@ -84310,51 +81251,29 @@ exports.Params = { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.MsgClientImpl = exports.MsgTransferResponse = exports.MsgTransfer = exports.protobufPackage = void 0; /* eslint-disable */ const coin_1 = __webpack_require__(/*! ../../../../cosmos/base/v1beta1/coin */ "./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js"); const client_1 = __webpack_require__(/*! ../../../core/client/v1/client */ "./node_modules/cosmjs-types/ibc/core/client/v1/client.js"); +const binary_1 = __webpack_require__(/*! ../../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); exports.protobufPackage = "ibc.applications.transfer.v1"; function createBaseMsgTransfer() { return { sourcePort: "", sourceChannel: "", - token: undefined, + token: coin_1.Coin.fromPartial({}), sender: "", receiver: "", - timeoutHeight: undefined, - timeoutTimestamp: helpers_1.Long.UZERO, + timeoutHeight: client_1.Height.fromPartial({}), + timeoutTimestamp: BigInt(0), memo: "", }; } exports.MsgTransfer = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.applications.transfer.v1.MsgTransfer", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.sourcePort !== "") { writer.uint32(10).string(message.sourcePort); } @@ -84373,7 +81292,7 @@ exports.MsgTransfer = { if (message.timeoutHeight !== undefined) { client_1.Height.encode(message.timeoutHeight, writer.uint32(50).fork()).ldelim(); } - if (!message.timeoutTimestamp.isZero()) { + if (message.timeoutTimestamp !== BigInt(0)) { writer.uint32(56).uint64(message.timeoutTimestamp); } if (message.memo !== "") { @@ -84382,7 +81301,7 @@ exports.MsgTransfer = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgTransfer(); while (reader.pos < end) { @@ -84420,16 +81339,24 @@ exports.MsgTransfer = { return message; }, fromJSON(object) { - return { - sourcePort: (0, helpers_1.isSet)(object.sourcePort) ? String(object.sourcePort) : "", - sourceChannel: (0, helpers_1.isSet)(object.sourceChannel) ? String(object.sourceChannel) : "", - token: (0, helpers_1.isSet)(object.token) ? coin_1.Coin.fromJSON(object.token) : undefined, - sender: (0, helpers_1.isSet)(object.sender) ? String(object.sender) : "", - receiver: (0, helpers_1.isSet)(object.receiver) ? String(object.receiver) : "", - timeoutHeight: (0, helpers_1.isSet)(object.timeoutHeight) ? client_1.Height.fromJSON(object.timeoutHeight) : undefined, - timeoutTimestamp: (0, helpers_1.isSet)(object.timeoutTimestamp) ? helpers_1.Long.fromValue(object.timeoutTimestamp) : helpers_1.Long.UZERO, - memo: (0, helpers_1.isSet)(object.memo) ? String(object.memo) : "", - }; + const obj = createBaseMsgTransfer(); + if ((0, helpers_1.isSet)(object.sourcePort)) + obj.sourcePort = String(object.sourcePort); + if ((0, helpers_1.isSet)(object.sourceChannel)) + obj.sourceChannel = String(object.sourceChannel); + if ((0, helpers_1.isSet)(object.token)) + obj.token = coin_1.Coin.fromJSON(object.token); + if ((0, helpers_1.isSet)(object.sender)) + obj.sender = String(object.sender); + if ((0, helpers_1.isSet)(object.receiver)) + obj.receiver = String(object.receiver); + if ((0, helpers_1.isSet)(object.timeoutHeight)) + obj.timeoutHeight = client_1.Height.fromJSON(object.timeoutHeight); + if ((0, helpers_1.isSet)(object.timeoutTimestamp)) + obj.timeoutTimestamp = BigInt(object.timeoutTimestamp.toString()); + if ((0, helpers_1.isSet)(object.memo)) + obj.memo = String(object.memo); + return obj; }, toJSON(message) { const obj = {}; @@ -84441,7 +81368,7 @@ exports.MsgTransfer = { message.timeoutHeight !== undefined && (obj.timeoutHeight = message.timeoutHeight ? client_1.Height.toJSON(message.timeoutHeight) : undefined); message.timeoutTimestamp !== undefined && - (obj.timeoutTimestamp = (message.timeoutTimestamp || helpers_1.Long.UZERO).toString()); + (obj.timeoutTimestamp = (message.timeoutTimestamp || BigInt(0)).toString()); message.memo !== undefined && (obj.memo = message.memo); return obj; }, @@ -84449,36 +81376,36 @@ exports.MsgTransfer = { const message = createBaseMsgTransfer(); message.sourcePort = object.sourcePort ?? ""; message.sourceChannel = object.sourceChannel ?? ""; - message.token = - object.token !== undefined && object.token !== null ? coin_1.Coin.fromPartial(object.token) : undefined; + if (object.token !== undefined && object.token !== null) { + message.token = coin_1.Coin.fromPartial(object.token); + } message.sender = object.sender ?? ""; message.receiver = object.receiver ?? ""; - message.timeoutHeight = - object.timeoutHeight !== undefined && object.timeoutHeight !== null - ? client_1.Height.fromPartial(object.timeoutHeight) - : undefined; - message.timeoutTimestamp = - object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null - ? helpers_1.Long.fromValue(object.timeoutTimestamp) - : helpers_1.Long.UZERO; + if (object.timeoutHeight !== undefined && object.timeoutHeight !== null) { + message.timeoutHeight = client_1.Height.fromPartial(object.timeoutHeight); + } + if (object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null) { + message.timeoutTimestamp = BigInt(object.timeoutTimestamp.toString()); + } message.memo = object.memo ?? ""; return message; }, }; function createBaseMsgTransferResponse() { return { - sequence: helpers_1.Long.UZERO, + sequence: BigInt(0), }; } exports.MsgTransferResponse = { - encode(message, writer = _m0.Writer.create()) { - if (!message.sequence.isZero()) { + typeUrl: "/ibc.applications.transfer.v1.MsgTransferResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.sequence !== BigInt(0)) { writer.uint32(8).uint64(message.sequence); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgTransferResponse(); while (reader.pos < end) { @@ -84495,21 +81422,21 @@ exports.MsgTransferResponse = { return message; }, fromJSON(object) { - return { - sequence: (0, helpers_1.isSet)(object.sequence) ? helpers_1.Long.fromValue(object.sequence) : helpers_1.Long.UZERO, - }; + const obj = createBaseMsgTransferResponse(); + if ((0, helpers_1.isSet)(object.sequence)) + obj.sequence = BigInt(object.sequence.toString()); + return obj; }, toJSON(message) { const obj = {}; - message.sequence !== undefined && (obj.sequence = (message.sequence || helpers_1.Long.UZERO).toString()); + message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseMsgTransferResponse(); - message.sequence = - object.sequence !== undefined && object.sequence !== null - ? helpers_1.Long.fromValue(object.sequence) - : helpers_1.Long.UZERO; + if (object.sequence !== undefined && object.sequence !== null) { + message.sequence = BigInt(object.sequence.toString()); + } return message; }, }; @@ -84521,7 +81448,7 @@ class MsgClientImpl { Transfer(request) { const data = exports.MsgTransfer.encode(request).finish(); const promise = this.rpc.request("ibc.applications.transfer.v1.Msg", "Transfer", data); - return promise.then((data) => exports.MsgTransferResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.MsgTransferResponse.decode(new binary_1.BinaryReader(data))); } } exports.MsgClientImpl = MsgClientImpl; @@ -84537,34 +81464,11 @@ exports.MsgClientImpl = MsgClientImpl; "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Acknowledgement = exports.PacketId = exports.PacketState = exports.Packet = exports.Counterparty = exports.IdentifiedChannel = exports.Channel = exports.orderToJSON = exports.orderFromJSON = exports.Order = exports.stateToJSON = exports.stateFromJSON = exports.State = exports.protobufPackage = void 0; /* eslint-disable */ const client_1 = __webpack_require__(/*! ../../client/v1/client */ "./node_modules/cosmjs-types/ibc/core/client/v1/client.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "ibc.core.channel.v1"; /** @@ -84590,7 +81494,7 @@ var State; */ State[State["STATE_CLOSED"] = 4] = "STATE_CLOSED"; State[State["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(State = exports.State || (exports.State = {})); +})(State || (exports.State = State = {})); function stateFromJSON(object) { switch (object) { case 0: @@ -84646,7 +81550,7 @@ var Order; /** ORDER_ORDERED - packets are delivered exactly in the order which they were sent */ Order[Order["ORDER_ORDERED"] = 2] = "ORDER_ORDERED"; Order[Order["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(Order = exports.Order || (exports.Order = {})); +})(Order || (exports.Order = Order = {})); function orderFromJSON(object) { switch (object) { case 0: @@ -84683,13 +81587,14 @@ function createBaseChannel() { return { state: 0, ordering: 0, - counterparty: undefined, + counterparty: exports.Counterparty.fromPartial({}), connectionHops: [], version: "", }; } exports.Channel = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.Channel", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.state !== 0) { writer.uint32(8).int32(message.state); } @@ -84708,7 +81613,7 @@ exports.Channel = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseChannel(); while (reader.pos < end) { @@ -84737,15 +81642,18 @@ exports.Channel = { return message; }, fromJSON(object) { - return { - state: (0, helpers_1.isSet)(object.state) ? stateFromJSON(object.state) : 0, - ordering: (0, helpers_1.isSet)(object.ordering) ? orderFromJSON(object.ordering) : 0, - counterparty: (0, helpers_1.isSet)(object.counterparty) ? exports.Counterparty.fromJSON(object.counterparty) : undefined, - connectionHops: Array.isArray(object?.connectionHops) - ? object.connectionHops.map((e) => String(e)) - : [], - version: (0, helpers_1.isSet)(object.version) ? String(object.version) : "", - }; + const obj = createBaseChannel(); + if ((0, helpers_1.isSet)(object.state)) + obj.state = stateFromJSON(object.state); + if ((0, helpers_1.isSet)(object.ordering)) + obj.ordering = orderFromJSON(object.ordering); + if ((0, helpers_1.isSet)(object.counterparty)) + obj.counterparty = exports.Counterparty.fromJSON(object.counterparty); + if (Array.isArray(object?.connectionHops)) + obj.connectionHops = object.connectionHops.map((e) => String(e)); + if ((0, helpers_1.isSet)(object.version)) + obj.version = String(object.version); + return obj; }, toJSON(message) { const obj = {}; @@ -84766,10 +81674,9 @@ exports.Channel = { const message = createBaseChannel(); message.state = object.state ?? 0; message.ordering = object.ordering ?? 0; - message.counterparty = - object.counterparty !== undefined && object.counterparty !== null - ? exports.Counterparty.fromPartial(object.counterparty) - : undefined; + if (object.counterparty !== undefined && object.counterparty !== null) { + message.counterparty = exports.Counterparty.fromPartial(object.counterparty); + } message.connectionHops = object.connectionHops?.map((e) => e) || []; message.version = object.version ?? ""; return message; @@ -84779,7 +81686,7 @@ function createBaseIdentifiedChannel() { return { state: 0, ordering: 0, - counterparty: undefined, + counterparty: exports.Counterparty.fromPartial({}), connectionHops: [], version: "", portId: "", @@ -84787,7 +81694,8 @@ function createBaseIdentifiedChannel() { }; } exports.IdentifiedChannel = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.IdentifiedChannel", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.state !== 0) { writer.uint32(8).int32(message.state); } @@ -84812,7 +81720,7 @@ exports.IdentifiedChannel = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseIdentifiedChannel(); while (reader.pos < end) { @@ -84847,17 +81755,22 @@ exports.IdentifiedChannel = { return message; }, fromJSON(object) { - return { - state: (0, helpers_1.isSet)(object.state) ? stateFromJSON(object.state) : 0, - ordering: (0, helpers_1.isSet)(object.ordering) ? orderFromJSON(object.ordering) : 0, - counterparty: (0, helpers_1.isSet)(object.counterparty) ? exports.Counterparty.fromJSON(object.counterparty) : undefined, - connectionHops: Array.isArray(object?.connectionHops) - ? object.connectionHops.map((e) => String(e)) - : [], - version: (0, helpers_1.isSet)(object.version) ? String(object.version) : "", - portId: (0, helpers_1.isSet)(object.portId) ? String(object.portId) : "", - channelId: (0, helpers_1.isSet)(object.channelId) ? String(object.channelId) : "", - }; + const obj = createBaseIdentifiedChannel(); + if ((0, helpers_1.isSet)(object.state)) + obj.state = stateFromJSON(object.state); + if ((0, helpers_1.isSet)(object.ordering)) + obj.ordering = orderFromJSON(object.ordering); + if ((0, helpers_1.isSet)(object.counterparty)) + obj.counterparty = exports.Counterparty.fromJSON(object.counterparty); + if (Array.isArray(object?.connectionHops)) + obj.connectionHops = object.connectionHops.map((e) => String(e)); + if ((0, helpers_1.isSet)(object.version)) + obj.version = String(object.version); + if ((0, helpers_1.isSet)(object.portId)) + obj.portId = String(object.portId); + if ((0, helpers_1.isSet)(object.channelId)) + obj.channelId = String(object.channelId); + return obj; }, toJSON(message) { const obj = {}; @@ -84880,10 +81793,9 @@ exports.IdentifiedChannel = { const message = createBaseIdentifiedChannel(); message.state = object.state ?? 0; message.ordering = object.ordering ?? 0; - message.counterparty = - object.counterparty !== undefined && object.counterparty !== null - ? exports.Counterparty.fromPartial(object.counterparty) - : undefined; + if (object.counterparty !== undefined && object.counterparty !== null) { + message.counterparty = exports.Counterparty.fromPartial(object.counterparty); + } message.connectionHops = object.connectionHops?.map((e) => e) || []; message.version = object.version ?? ""; message.portId = object.portId ?? ""; @@ -84898,7 +81810,8 @@ function createBaseCounterparty() { }; } exports.Counterparty = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.Counterparty", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.portId !== "") { writer.uint32(10).string(message.portId); } @@ -84908,7 +81821,7 @@ exports.Counterparty = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCounterparty(); while (reader.pos < end) { @@ -84928,10 +81841,12 @@ exports.Counterparty = { return message; }, fromJSON(object) { - return { - portId: (0, helpers_1.isSet)(object.portId) ? String(object.portId) : "", - channelId: (0, helpers_1.isSet)(object.channelId) ? String(object.channelId) : "", - }; + const obj = createBaseCounterparty(); + if ((0, helpers_1.isSet)(object.portId)) + obj.portId = String(object.portId); + if ((0, helpers_1.isSet)(object.channelId)) + obj.channelId = String(object.channelId); + return obj; }, toJSON(message) { const obj = {}; @@ -84948,19 +81863,20 @@ exports.Counterparty = { }; function createBasePacket() { return { - sequence: helpers_1.Long.UZERO, + sequence: BigInt(0), sourcePort: "", sourceChannel: "", destinationPort: "", destinationChannel: "", data: new Uint8Array(), - timeoutHeight: undefined, - timeoutTimestamp: helpers_1.Long.UZERO, + timeoutHeight: client_1.Height.fromPartial({}), + timeoutTimestamp: BigInt(0), }; } exports.Packet = { - encode(message, writer = _m0.Writer.create()) { - if (!message.sequence.isZero()) { + typeUrl: "/ibc.core.channel.v1.Packet", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.sequence !== BigInt(0)) { writer.uint32(8).uint64(message.sequence); } if (message.sourcePort !== "") { @@ -84981,13 +81897,13 @@ exports.Packet = { if (message.timeoutHeight !== undefined) { client_1.Height.encode(message.timeoutHeight, writer.uint32(58).fork()).ldelim(); } - if (!message.timeoutTimestamp.isZero()) { + if (message.timeoutTimestamp !== BigInt(0)) { writer.uint32(64).uint64(message.timeoutTimestamp); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePacket(); while (reader.pos < end) { @@ -85025,20 +81941,28 @@ exports.Packet = { return message; }, fromJSON(object) { - return { - sequence: (0, helpers_1.isSet)(object.sequence) ? helpers_1.Long.fromValue(object.sequence) : helpers_1.Long.UZERO, - sourcePort: (0, helpers_1.isSet)(object.sourcePort) ? String(object.sourcePort) : "", - sourceChannel: (0, helpers_1.isSet)(object.sourceChannel) ? String(object.sourceChannel) : "", - destinationPort: (0, helpers_1.isSet)(object.destinationPort) ? String(object.destinationPort) : "", - destinationChannel: (0, helpers_1.isSet)(object.destinationChannel) ? String(object.destinationChannel) : "", - data: (0, helpers_1.isSet)(object.data) ? (0, helpers_1.bytesFromBase64)(object.data) : new Uint8Array(), - timeoutHeight: (0, helpers_1.isSet)(object.timeoutHeight) ? client_1.Height.fromJSON(object.timeoutHeight) : undefined, - timeoutTimestamp: (0, helpers_1.isSet)(object.timeoutTimestamp) ? helpers_1.Long.fromValue(object.timeoutTimestamp) : helpers_1.Long.UZERO, - }; + const obj = createBasePacket(); + if ((0, helpers_1.isSet)(object.sequence)) + obj.sequence = BigInt(object.sequence.toString()); + if ((0, helpers_1.isSet)(object.sourcePort)) + obj.sourcePort = String(object.sourcePort); + if ((0, helpers_1.isSet)(object.sourceChannel)) + obj.sourceChannel = String(object.sourceChannel); + if ((0, helpers_1.isSet)(object.destinationPort)) + obj.destinationPort = String(object.destinationPort); + if ((0, helpers_1.isSet)(object.destinationChannel)) + obj.destinationChannel = String(object.destinationChannel); + if ((0, helpers_1.isSet)(object.data)) + obj.data = (0, helpers_1.bytesFromBase64)(object.data); + if ((0, helpers_1.isSet)(object.timeoutHeight)) + obj.timeoutHeight = client_1.Height.fromJSON(object.timeoutHeight); + if ((0, helpers_1.isSet)(object.timeoutTimestamp)) + obj.timeoutTimestamp = BigInt(object.timeoutTimestamp.toString()); + return obj; }, toJSON(message) { const obj = {}; - message.sequence !== undefined && (obj.sequence = (message.sequence || helpers_1.Long.UZERO).toString()); + message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString()); message.sourcePort !== undefined && (obj.sourcePort = message.sourcePort); message.sourceChannel !== undefined && (obj.sourceChannel = message.sourceChannel); message.destinationPort !== undefined && (obj.destinationPort = message.destinationPort); @@ -85048,28 +81972,25 @@ exports.Packet = { message.timeoutHeight !== undefined && (obj.timeoutHeight = message.timeoutHeight ? client_1.Height.toJSON(message.timeoutHeight) : undefined); message.timeoutTimestamp !== undefined && - (obj.timeoutTimestamp = (message.timeoutTimestamp || helpers_1.Long.UZERO).toString()); + (obj.timeoutTimestamp = (message.timeoutTimestamp || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBasePacket(); - message.sequence = - object.sequence !== undefined && object.sequence !== null - ? helpers_1.Long.fromValue(object.sequence) - : helpers_1.Long.UZERO; + if (object.sequence !== undefined && object.sequence !== null) { + message.sequence = BigInt(object.sequence.toString()); + } message.sourcePort = object.sourcePort ?? ""; message.sourceChannel = object.sourceChannel ?? ""; message.destinationPort = object.destinationPort ?? ""; message.destinationChannel = object.destinationChannel ?? ""; message.data = object.data ?? new Uint8Array(); - message.timeoutHeight = - object.timeoutHeight !== undefined && object.timeoutHeight !== null - ? client_1.Height.fromPartial(object.timeoutHeight) - : undefined; - message.timeoutTimestamp = - object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null - ? helpers_1.Long.fromValue(object.timeoutTimestamp) - : helpers_1.Long.UZERO; + if (object.timeoutHeight !== undefined && object.timeoutHeight !== null) { + message.timeoutHeight = client_1.Height.fromPartial(object.timeoutHeight); + } + if (object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null) { + message.timeoutTimestamp = BigInt(object.timeoutTimestamp.toString()); + } return message; }, }; @@ -85077,19 +81998,20 @@ function createBasePacketState() { return { portId: "", channelId: "", - sequence: helpers_1.Long.UZERO, + sequence: BigInt(0), data: new Uint8Array(), }; } exports.PacketState = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.PacketState", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.portId !== "") { writer.uint32(10).string(message.portId); } if (message.channelId !== "") { writer.uint32(18).string(message.channelId); } - if (!message.sequence.isZero()) { + if (message.sequence !== BigInt(0)) { writer.uint32(24).uint64(message.sequence); } if (message.data.length !== 0) { @@ -85098,7 +82020,7 @@ exports.PacketState = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePacketState(); while (reader.pos < end) { @@ -85124,18 +82046,22 @@ exports.PacketState = { return message; }, fromJSON(object) { - return { - portId: (0, helpers_1.isSet)(object.portId) ? String(object.portId) : "", - channelId: (0, helpers_1.isSet)(object.channelId) ? String(object.channelId) : "", - sequence: (0, helpers_1.isSet)(object.sequence) ? helpers_1.Long.fromValue(object.sequence) : helpers_1.Long.UZERO, - data: (0, helpers_1.isSet)(object.data) ? (0, helpers_1.bytesFromBase64)(object.data) : new Uint8Array(), - }; + const obj = createBasePacketState(); + if ((0, helpers_1.isSet)(object.portId)) + obj.portId = String(object.portId); + if ((0, helpers_1.isSet)(object.channelId)) + obj.channelId = String(object.channelId); + if ((0, helpers_1.isSet)(object.sequence)) + obj.sequence = BigInt(object.sequence.toString()); + if ((0, helpers_1.isSet)(object.data)) + obj.data = (0, helpers_1.bytesFromBase64)(object.data); + return obj; }, toJSON(message) { const obj = {}; message.portId !== undefined && (obj.portId = message.portId); message.channelId !== undefined && (obj.channelId = message.channelId); - message.sequence !== undefined && (obj.sequence = (message.sequence || helpers_1.Long.UZERO).toString()); + message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString()); message.data !== undefined && (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array())); return obj; @@ -85144,10 +82070,9 @@ exports.PacketState = { const message = createBasePacketState(); message.portId = object.portId ?? ""; message.channelId = object.channelId ?? ""; - message.sequence = - object.sequence !== undefined && object.sequence !== null - ? helpers_1.Long.fromValue(object.sequence) - : helpers_1.Long.UZERO; + if (object.sequence !== undefined && object.sequence !== null) { + message.sequence = BigInt(object.sequence.toString()); + } message.data = object.data ?? new Uint8Array(); return message; }, @@ -85156,24 +82081,25 @@ function createBasePacketId() { return { portId: "", channelId: "", - sequence: helpers_1.Long.UZERO, + sequence: BigInt(0), }; } exports.PacketId = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.PacketId", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.portId !== "") { writer.uint32(10).string(message.portId); } if (message.channelId !== "") { writer.uint32(18).string(message.channelId); } - if (!message.sequence.isZero()) { + if (message.sequence !== BigInt(0)) { writer.uint32(24).uint64(message.sequence); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePacketId(); while (reader.pos < end) { @@ -85196,27 +82122,29 @@ exports.PacketId = { return message; }, fromJSON(object) { - return { - portId: (0, helpers_1.isSet)(object.portId) ? String(object.portId) : "", - channelId: (0, helpers_1.isSet)(object.channelId) ? String(object.channelId) : "", - sequence: (0, helpers_1.isSet)(object.sequence) ? helpers_1.Long.fromValue(object.sequence) : helpers_1.Long.UZERO, - }; + const obj = createBasePacketId(); + if ((0, helpers_1.isSet)(object.portId)) + obj.portId = String(object.portId); + if ((0, helpers_1.isSet)(object.channelId)) + obj.channelId = String(object.channelId); + if ((0, helpers_1.isSet)(object.sequence)) + obj.sequence = BigInt(object.sequence.toString()); + return obj; }, toJSON(message) { const obj = {}; message.portId !== undefined && (obj.portId = message.portId); message.channelId !== undefined && (obj.channelId = message.channelId); - message.sequence !== undefined && (obj.sequence = (message.sequence || helpers_1.Long.UZERO).toString()); + message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBasePacketId(); message.portId = object.portId ?? ""; message.channelId = object.channelId ?? ""; - message.sequence = - object.sequence !== undefined && object.sequence !== null - ? helpers_1.Long.fromValue(object.sequence) - : helpers_1.Long.UZERO; + if (object.sequence !== undefined && object.sequence !== null) { + message.sequence = BigInt(object.sequence.toString()); + } return message; }, }; @@ -85227,7 +82155,8 @@ function createBaseAcknowledgement() { }; } exports.Acknowledgement = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.Acknowledgement", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.result !== undefined) { writer.uint32(170).bytes(message.result); } @@ -85237,7 +82166,7 @@ exports.Acknowledgement = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseAcknowledgement(); while (reader.pos < end) { @@ -85257,10 +82186,12 @@ exports.Acknowledgement = { return message; }, fromJSON(object) { - return { - result: (0, helpers_1.isSet)(object.result) ? (0, helpers_1.bytesFromBase64)(object.result) : undefined, - error: (0, helpers_1.isSet)(object.error) ? String(object.error) : undefined, - }; + const obj = createBaseAcknowledgement(); + if ((0, helpers_1.isSet)(object.result)) + obj.result = (0, helpers_1.bytesFromBase64)(object.result); + if ((0, helpers_1.isSet)(object.error)) + obj.error = String(object.error); + return obj; }, toJSON(message) { const obj = {}; @@ -85288,29 +82219,6 @@ exports.Acknowledgement = { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.QueryClientImpl = exports.QueryNextSequenceReceiveResponse = exports.QueryNextSequenceReceiveRequest = exports.QueryUnreceivedAcksResponse = exports.QueryUnreceivedAcksRequest = exports.QueryUnreceivedPacketsResponse = exports.QueryUnreceivedPacketsRequest = exports.QueryPacketAcknowledgementsResponse = exports.QueryPacketAcknowledgementsRequest = exports.QueryPacketAcknowledgementResponse = exports.QueryPacketAcknowledgementRequest = exports.QueryPacketReceiptResponse = exports.QueryPacketReceiptRequest = exports.QueryPacketCommitmentsResponse = exports.QueryPacketCommitmentsRequest = exports.QueryPacketCommitmentResponse = exports.QueryPacketCommitmentRequest = exports.QueryChannelConsensusStateResponse = exports.QueryChannelConsensusStateRequest = exports.QueryChannelClientStateResponse = exports.QueryChannelClientStateRequest = exports.QueryConnectionChannelsResponse = exports.QueryConnectionChannelsRequest = exports.QueryChannelsResponse = exports.QueryChannelsRequest = exports.QueryChannelResponse = exports.QueryChannelRequest = exports.protobufPackage = void 0; /* eslint-disable */ @@ -85318,7 +82226,7 @@ const pagination_1 = __webpack_require__(/*! ../../../../cosmos/base/query/v1bet const channel_1 = __webpack_require__(/*! ./channel */ "./node_modules/cosmjs-types/ibc/core/channel/v1/channel.js"); const client_1 = __webpack_require__(/*! ../../client/v1/client */ "./node_modules/cosmjs-types/ibc/core/client/v1/client.js"); const any_1 = __webpack_require__(/*! ../../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "ibc.core.channel.v1"; function createBaseQueryChannelRequest() { @@ -85328,7 +82236,8 @@ function createBaseQueryChannelRequest() { }; } exports.QueryChannelRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryChannelRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.portId !== "") { writer.uint32(10).string(message.portId); } @@ -85338,7 +82247,7 @@ exports.QueryChannelRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryChannelRequest(); while (reader.pos < end) { @@ -85358,10 +82267,12 @@ exports.QueryChannelRequest = { return message; }, fromJSON(object) { - return { - portId: (0, helpers_1.isSet)(object.portId) ? String(object.portId) : "", - channelId: (0, helpers_1.isSet)(object.channelId) ? String(object.channelId) : "", - }; + const obj = createBaseQueryChannelRequest(); + if ((0, helpers_1.isSet)(object.portId)) + obj.portId = String(object.portId); + if ((0, helpers_1.isSet)(object.channelId)) + obj.channelId = String(object.channelId); + return obj; }, toJSON(message) { const obj = {}; @@ -85380,11 +82291,12 @@ function createBaseQueryChannelResponse() { return { channel: undefined, proof: new Uint8Array(), - proofHeight: undefined, + proofHeight: client_1.Height.fromPartial({}), }; } exports.QueryChannelResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryChannelResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.channel !== undefined) { channel_1.Channel.encode(message.channel, writer.uint32(10).fork()).ldelim(); } @@ -85397,7 +82309,7 @@ exports.QueryChannelResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryChannelResponse(); while (reader.pos < end) { @@ -85420,11 +82332,14 @@ exports.QueryChannelResponse = { return message; }, fromJSON(object) { - return { - channel: (0, helpers_1.isSet)(object.channel) ? channel_1.Channel.fromJSON(object.channel) : undefined, - proof: (0, helpers_1.isSet)(object.proof) ? (0, helpers_1.bytesFromBase64)(object.proof) : new Uint8Array(), - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - }; + const obj = createBaseQueryChannelResponse(); + if ((0, helpers_1.isSet)(object.channel)) + obj.channel = channel_1.Channel.fromJSON(object.channel); + if ((0, helpers_1.isSet)(object.proof)) + obj.proof = (0, helpers_1.bytesFromBase64)(object.proof); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + return obj; }, toJSON(message) { const obj = {}; @@ -85438,15 +82353,13 @@ exports.QueryChannelResponse = { }, fromPartial(object) { const message = createBaseQueryChannelResponse(); - message.channel = - object.channel !== undefined && object.channel !== null - ? channel_1.Channel.fromPartial(object.channel) - : undefined; + if (object.channel !== undefined && object.channel !== null) { + message.channel = channel_1.Channel.fromPartial(object.channel); + } message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); + } return message; }, }; @@ -85456,14 +82369,15 @@ function createBaseQueryChannelsRequest() { }; } exports.QueryChannelsRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryChannelsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.pagination !== undefined) { pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryChannelsRequest(); while (reader.pos < end) { @@ -85480,9 +82394,10 @@ exports.QueryChannelsRequest = { return message; }, fromJSON(object) { - return { - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryChannelsRequest(); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -85492,10 +82407,9 @@ exports.QueryChannelsRequest = { }, fromPartial(object) { const message = createBaseQueryChannelsRequest(); - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } return message; }, }; @@ -85503,11 +82417,12 @@ function createBaseQueryChannelsResponse() { return { channels: [], pagination: undefined, - height: undefined, + height: client_1.Height.fromPartial({}), }; } exports.QueryChannelsResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryChannelsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.channels) { channel_1.IdentifiedChannel.encode(v, writer.uint32(10).fork()).ldelim(); } @@ -85520,7 +82435,7 @@ exports.QueryChannelsResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryChannelsResponse(); while (reader.pos < end) { @@ -85543,13 +82458,14 @@ exports.QueryChannelsResponse = { return message; }, fromJSON(object) { - return { - channels: Array.isArray(object?.channels) - ? object.channels.map((e) => channel_1.IdentifiedChannel.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - height: (0, helpers_1.isSet)(object.height) ? client_1.Height.fromJSON(object.height) : undefined, - }; + const obj = createBaseQueryChannelsResponse(); + if (Array.isArray(object?.channels)) + obj.channels = object.channels.map((e) => channel_1.IdentifiedChannel.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + if ((0, helpers_1.isSet)(object.height)) + obj.height = client_1.Height.fromJSON(object.height); + return obj; }, toJSON(message) { const obj = {}; @@ -85567,12 +82483,12 @@ exports.QueryChannelsResponse = { fromPartial(object) { const message = createBaseQueryChannelsResponse(); message.channels = object.channels?.map((e) => channel_1.IdentifiedChannel.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; - message.height = - object.height !== undefined && object.height !== null ? client_1.Height.fromPartial(object.height) : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } + if (object.height !== undefined && object.height !== null) { + message.height = client_1.Height.fromPartial(object.height); + } return message; }, }; @@ -85583,7 +82499,8 @@ function createBaseQueryConnectionChannelsRequest() { }; } exports.QueryConnectionChannelsRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryConnectionChannelsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.connection !== "") { writer.uint32(10).string(message.connection); } @@ -85593,7 +82510,7 @@ exports.QueryConnectionChannelsRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryConnectionChannelsRequest(); while (reader.pos < end) { @@ -85613,10 +82530,12 @@ exports.QueryConnectionChannelsRequest = { return message; }, fromJSON(object) { - return { - connection: (0, helpers_1.isSet)(object.connection) ? String(object.connection) : "", - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryConnectionChannelsRequest(); + if ((0, helpers_1.isSet)(object.connection)) + obj.connection = String(object.connection); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -85628,10 +82547,9 @@ exports.QueryConnectionChannelsRequest = { fromPartial(object) { const message = createBaseQueryConnectionChannelsRequest(); message.connection = object.connection ?? ""; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } return message; }, }; @@ -85639,11 +82557,12 @@ function createBaseQueryConnectionChannelsResponse() { return { channels: [], pagination: undefined, - height: undefined, + height: client_1.Height.fromPartial({}), }; } exports.QueryConnectionChannelsResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryConnectionChannelsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.channels) { channel_1.IdentifiedChannel.encode(v, writer.uint32(10).fork()).ldelim(); } @@ -85656,7 +82575,7 @@ exports.QueryConnectionChannelsResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryConnectionChannelsResponse(); while (reader.pos < end) { @@ -85679,13 +82598,14 @@ exports.QueryConnectionChannelsResponse = { return message; }, fromJSON(object) { - return { - channels: Array.isArray(object?.channels) - ? object.channels.map((e) => channel_1.IdentifiedChannel.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - height: (0, helpers_1.isSet)(object.height) ? client_1.Height.fromJSON(object.height) : undefined, - }; + const obj = createBaseQueryConnectionChannelsResponse(); + if (Array.isArray(object?.channels)) + obj.channels = object.channels.map((e) => channel_1.IdentifiedChannel.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + if ((0, helpers_1.isSet)(object.height)) + obj.height = client_1.Height.fromJSON(object.height); + return obj; }, toJSON(message) { const obj = {}; @@ -85703,12 +82623,12 @@ exports.QueryConnectionChannelsResponse = { fromPartial(object) { const message = createBaseQueryConnectionChannelsResponse(); message.channels = object.channels?.map((e) => channel_1.IdentifiedChannel.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; - message.height = - object.height !== undefined && object.height !== null ? client_1.Height.fromPartial(object.height) : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } + if (object.height !== undefined && object.height !== null) { + message.height = client_1.Height.fromPartial(object.height); + } return message; }, }; @@ -85719,7 +82639,8 @@ function createBaseQueryChannelClientStateRequest() { }; } exports.QueryChannelClientStateRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryChannelClientStateRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.portId !== "") { writer.uint32(10).string(message.portId); } @@ -85729,7 +82650,7 @@ exports.QueryChannelClientStateRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryChannelClientStateRequest(); while (reader.pos < end) { @@ -85749,10 +82670,12 @@ exports.QueryChannelClientStateRequest = { return message; }, fromJSON(object) { - return { - portId: (0, helpers_1.isSet)(object.portId) ? String(object.portId) : "", - channelId: (0, helpers_1.isSet)(object.channelId) ? String(object.channelId) : "", - }; + const obj = createBaseQueryChannelClientStateRequest(); + if ((0, helpers_1.isSet)(object.portId)) + obj.portId = String(object.portId); + if ((0, helpers_1.isSet)(object.channelId)) + obj.channelId = String(object.channelId); + return obj; }, toJSON(message) { const obj = {}; @@ -85771,11 +82694,12 @@ function createBaseQueryChannelClientStateResponse() { return { identifiedClientState: undefined, proof: new Uint8Array(), - proofHeight: undefined, + proofHeight: client_1.Height.fromPartial({}), }; } exports.QueryChannelClientStateResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryChannelClientStateResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.identifiedClientState !== undefined) { client_1.IdentifiedClientState.encode(message.identifiedClientState, writer.uint32(10).fork()).ldelim(); } @@ -85788,7 +82712,7 @@ exports.QueryChannelClientStateResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryChannelClientStateResponse(); while (reader.pos < end) { @@ -85811,13 +82735,14 @@ exports.QueryChannelClientStateResponse = { return message; }, fromJSON(object) { - return { - identifiedClientState: (0, helpers_1.isSet)(object.identifiedClientState) - ? client_1.IdentifiedClientState.fromJSON(object.identifiedClientState) - : undefined, - proof: (0, helpers_1.isSet)(object.proof) ? (0, helpers_1.bytesFromBase64)(object.proof) : new Uint8Array(), - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - }; + const obj = createBaseQueryChannelClientStateResponse(); + if ((0, helpers_1.isSet)(object.identifiedClientState)) + obj.identifiedClientState = client_1.IdentifiedClientState.fromJSON(object.identifiedClientState); + if ((0, helpers_1.isSet)(object.proof)) + obj.proof = (0, helpers_1.bytesFromBase64)(object.proof); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + return obj; }, toJSON(message) { const obj = {}; @@ -85833,15 +82758,13 @@ exports.QueryChannelClientStateResponse = { }, fromPartial(object) { const message = createBaseQueryChannelClientStateResponse(); - message.identifiedClientState = - object.identifiedClientState !== undefined && object.identifiedClientState !== null - ? client_1.IdentifiedClientState.fromPartial(object.identifiedClientState) - : undefined; + if (object.identifiedClientState !== undefined && object.identifiedClientState !== null) { + message.identifiedClientState = client_1.IdentifiedClientState.fromPartial(object.identifiedClientState); + } message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); + } return message; }, }; @@ -85849,28 +82772,29 @@ function createBaseQueryChannelConsensusStateRequest() { return { portId: "", channelId: "", - revisionNumber: helpers_1.Long.UZERO, - revisionHeight: helpers_1.Long.UZERO, + revisionNumber: BigInt(0), + revisionHeight: BigInt(0), }; } exports.QueryChannelConsensusStateRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryChannelConsensusStateRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.portId !== "") { writer.uint32(10).string(message.portId); } if (message.channelId !== "") { writer.uint32(18).string(message.channelId); } - if (!message.revisionNumber.isZero()) { + if (message.revisionNumber !== BigInt(0)) { writer.uint32(24).uint64(message.revisionNumber); } - if (!message.revisionHeight.isZero()) { + if (message.revisionHeight !== BigInt(0)) { writer.uint32(32).uint64(message.revisionHeight); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryChannelConsensusStateRequest(); while (reader.pos < end) { @@ -85896,35 +82820,37 @@ exports.QueryChannelConsensusStateRequest = { return message; }, fromJSON(object) { - return { - portId: (0, helpers_1.isSet)(object.portId) ? String(object.portId) : "", - channelId: (0, helpers_1.isSet)(object.channelId) ? String(object.channelId) : "", - revisionNumber: (0, helpers_1.isSet)(object.revisionNumber) ? helpers_1.Long.fromValue(object.revisionNumber) : helpers_1.Long.UZERO, - revisionHeight: (0, helpers_1.isSet)(object.revisionHeight) ? helpers_1.Long.fromValue(object.revisionHeight) : helpers_1.Long.UZERO, - }; + const obj = createBaseQueryChannelConsensusStateRequest(); + if ((0, helpers_1.isSet)(object.portId)) + obj.portId = String(object.portId); + if ((0, helpers_1.isSet)(object.channelId)) + obj.channelId = String(object.channelId); + if ((0, helpers_1.isSet)(object.revisionNumber)) + obj.revisionNumber = BigInt(object.revisionNumber.toString()); + if ((0, helpers_1.isSet)(object.revisionHeight)) + obj.revisionHeight = BigInt(object.revisionHeight.toString()); + return obj; }, toJSON(message) { const obj = {}; message.portId !== undefined && (obj.portId = message.portId); message.channelId !== undefined && (obj.channelId = message.channelId); message.revisionNumber !== undefined && - (obj.revisionNumber = (message.revisionNumber || helpers_1.Long.UZERO).toString()); + (obj.revisionNumber = (message.revisionNumber || BigInt(0)).toString()); message.revisionHeight !== undefined && - (obj.revisionHeight = (message.revisionHeight || helpers_1.Long.UZERO).toString()); + (obj.revisionHeight = (message.revisionHeight || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseQueryChannelConsensusStateRequest(); message.portId = object.portId ?? ""; message.channelId = object.channelId ?? ""; - message.revisionNumber = - object.revisionNumber !== undefined && object.revisionNumber !== null - ? helpers_1.Long.fromValue(object.revisionNumber) - : helpers_1.Long.UZERO; - message.revisionHeight = - object.revisionHeight !== undefined && object.revisionHeight !== null - ? helpers_1.Long.fromValue(object.revisionHeight) - : helpers_1.Long.UZERO; + if (object.revisionNumber !== undefined && object.revisionNumber !== null) { + message.revisionNumber = BigInt(object.revisionNumber.toString()); + } + if (object.revisionHeight !== undefined && object.revisionHeight !== null) { + message.revisionHeight = BigInt(object.revisionHeight.toString()); + } return message; }, }; @@ -85933,11 +82859,12 @@ function createBaseQueryChannelConsensusStateResponse() { consensusState: undefined, clientId: "", proof: new Uint8Array(), - proofHeight: undefined, + proofHeight: client_1.Height.fromPartial({}), }; } exports.QueryChannelConsensusStateResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryChannelConsensusStateResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.consensusState !== undefined) { any_1.Any.encode(message.consensusState, writer.uint32(10).fork()).ldelim(); } @@ -85953,7 +82880,7 @@ exports.QueryChannelConsensusStateResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryChannelConsensusStateResponse(); while (reader.pos < end) { @@ -85979,12 +82906,16 @@ exports.QueryChannelConsensusStateResponse = { return message; }, fromJSON(object) { - return { - consensusState: (0, helpers_1.isSet)(object.consensusState) ? any_1.Any.fromJSON(object.consensusState) : undefined, - clientId: (0, helpers_1.isSet)(object.clientId) ? String(object.clientId) : "", - proof: (0, helpers_1.isSet)(object.proof) ? (0, helpers_1.bytesFromBase64)(object.proof) : new Uint8Array(), - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - }; + const obj = createBaseQueryChannelConsensusStateResponse(); + if ((0, helpers_1.isSet)(object.consensusState)) + obj.consensusState = any_1.Any.fromJSON(object.consensusState); + if ((0, helpers_1.isSet)(object.clientId)) + obj.clientId = String(object.clientId); + if ((0, helpers_1.isSet)(object.proof)) + obj.proof = (0, helpers_1.bytesFromBase64)(object.proof); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + return obj; }, toJSON(message) { const obj = {}; @@ -85999,16 +82930,14 @@ exports.QueryChannelConsensusStateResponse = { }, fromPartial(object) { const message = createBaseQueryChannelConsensusStateResponse(); - message.consensusState = - object.consensusState !== undefined && object.consensusState !== null - ? any_1.Any.fromPartial(object.consensusState) - : undefined; + if (object.consensusState !== undefined && object.consensusState !== null) { + message.consensusState = any_1.Any.fromPartial(object.consensusState); + } message.clientId = object.clientId ?? ""; message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); + } return message; }, }; @@ -86016,24 +82945,25 @@ function createBaseQueryPacketCommitmentRequest() { return { portId: "", channelId: "", - sequence: helpers_1.Long.UZERO, + sequence: BigInt(0), }; } exports.QueryPacketCommitmentRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryPacketCommitmentRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.portId !== "") { writer.uint32(10).string(message.portId); } if (message.channelId !== "") { writer.uint32(18).string(message.channelId); } - if (!message.sequence.isZero()) { + if (message.sequence !== BigInt(0)) { writer.uint32(24).uint64(message.sequence); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryPacketCommitmentRequest(); while (reader.pos < end) { @@ -86056,27 +82986,29 @@ exports.QueryPacketCommitmentRequest = { return message; }, fromJSON(object) { - return { - portId: (0, helpers_1.isSet)(object.portId) ? String(object.portId) : "", - channelId: (0, helpers_1.isSet)(object.channelId) ? String(object.channelId) : "", - sequence: (0, helpers_1.isSet)(object.sequence) ? helpers_1.Long.fromValue(object.sequence) : helpers_1.Long.UZERO, - }; + const obj = createBaseQueryPacketCommitmentRequest(); + if ((0, helpers_1.isSet)(object.portId)) + obj.portId = String(object.portId); + if ((0, helpers_1.isSet)(object.channelId)) + obj.channelId = String(object.channelId); + if ((0, helpers_1.isSet)(object.sequence)) + obj.sequence = BigInt(object.sequence.toString()); + return obj; }, toJSON(message) { const obj = {}; message.portId !== undefined && (obj.portId = message.portId); message.channelId !== undefined && (obj.channelId = message.channelId); - message.sequence !== undefined && (obj.sequence = (message.sequence || helpers_1.Long.UZERO).toString()); + message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseQueryPacketCommitmentRequest(); message.portId = object.portId ?? ""; message.channelId = object.channelId ?? ""; - message.sequence = - object.sequence !== undefined && object.sequence !== null - ? helpers_1.Long.fromValue(object.sequence) - : helpers_1.Long.UZERO; + if (object.sequence !== undefined && object.sequence !== null) { + message.sequence = BigInt(object.sequence.toString()); + } return message; }, }; @@ -86084,11 +83016,12 @@ function createBaseQueryPacketCommitmentResponse() { return { commitment: new Uint8Array(), proof: new Uint8Array(), - proofHeight: undefined, + proofHeight: client_1.Height.fromPartial({}), }; } exports.QueryPacketCommitmentResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryPacketCommitmentResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.commitment.length !== 0) { writer.uint32(10).bytes(message.commitment); } @@ -86101,7 +83034,7 @@ exports.QueryPacketCommitmentResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryPacketCommitmentResponse(); while (reader.pos < end) { @@ -86124,11 +83057,14 @@ exports.QueryPacketCommitmentResponse = { return message; }, fromJSON(object) { - return { - commitment: (0, helpers_1.isSet)(object.commitment) ? (0, helpers_1.bytesFromBase64)(object.commitment) : new Uint8Array(), - proof: (0, helpers_1.isSet)(object.proof) ? (0, helpers_1.bytesFromBase64)(object.proof) : new Uint8Array(), - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - }; + const obj = createBaseQueryPacketCommitmentResponse(); + if ((0, helpers_1.isSet)(object.commitment)) + obj.commitment = (0, helpers_1.bytesFromBase64)(object.commitment); + if ((0, helpers_1.isSet)(object.proof)) + obj.proof = (0, helpers_1.bytesFromBase64)(object.proof); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + return obj; }, toJSON(message) { const obj = {}; @@ -86144,10 +83080,9 @@ exports.QueryPacketCommitmentResponse = { const message = createBaseQueryPacketCommitmentResponse(); message.commitment = object.commitment ?? new Uint8Array(); message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); + } return message; }, }; @@ -86159,7 +83094,8 @@ function createBaseQueryPacketCommitmentsRequest() { }; } exports.QueryPacketCommitmentsRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryPacketCommitmentsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.portId !== "") { writer.uint32(10).string(message.portId); } @@ -86172,7 +83108,7 @@ exports.QueryPacketCommitmentsRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryPacketCommitmentsRequest(); while (reader.pos < end) { @@ -86195,11 +83131,14 @@ exports.QueryPacketCommitmentsRequest = { return message; }, fromJSON(object) { - return { - portId: (0, helpers_1.isSet)(object.portId) ? String(object.portId) : "", - channelId: (0, helpers_1.isSet)(object.channelId) ? String(object.channelId) : "", - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryPacketCommitmentsRequest(); + if ((0, helpers_1.isSet)(object.portId)) + obj.portId = String(object.portId); + if ((0, helpers_1.isSet)(object.channelId)) + obj.channelId = String(object.channelId); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -86213,10 +83152,9 @@ exports.QueryPacketCommitmentsRequest = { const message = createBaseQueryPacketCommitmentsRequest(); message.portId = object.portId ?? ""; message.channelId = object.channelId ?? ""; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } return message; }, }; @@ -86224,11 +83162,12 @@ function createBaseQueryPacketCommitmentsResponse() { return { commitments: [], pagination: undefined, - height: undefined, + height: client_1.Height.fromPartial({}), }; } exports.QueryPacketCommitmentsResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryPacketCommitmentsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.commitments) { channel_1.PacketState.encode(v, writer.uint32(10).fork()).ldelim(); } @@ -86241,7 +83180,7 @@ exports.QueryPacketCommitmentsResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryPacketCommitmentsResponse(); while (reader.pos < end) { @@ -86264,13 +83203,14 @@ exports.QueryPacketCommitmentsResponse = { return message; }, fromJSON(object) { - return { - commitments: Array.isArray(object?.commitments) - ? object.commitments.map((e) => channel_1.PacketState.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - height: (0, helpers_1.isSet)(object.height) ? client_1.Height.fromJSON(object.height) : undefined, - }; + const obj = createBaseQueryPacketCommitmentsResponse(); + if (Array.isArray(object?.commitments)) + obj.commitments = object.commitments.map((e) => channel_1.PacketState.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + if ((0, helpers_1.isSet)(object.height)) + obj.height = client_1.Height.fromJSON(object.height); + return obj; }, toJSON(message) { const obj = {}; @@ -86288,12 +83228,12 @@ exports.QueryPacketCommitmentsResponse = { fromPartial(object) { const message = createBaseQueryPacketCommitmentsResponse(); message.commitments = object.commitments?.map((e) => channel_1.PacketState.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; - message.height = - object.height !== undefined && object.height !== null ? client_1.Height.fromPartial(object.height) : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } + if (object.height !== undefined && object.height !== null) { + message.height = client_1.Height.fromPartial(object.height); + } return message; }, }; @@ -86301,24 +83241,25 @@ function createBaseQueryPacketReceiptRequest() { return { portId: "", channelId: "", - sequence: helpers_1.Long.UZERO, + sequence: BigInt(0), }; } exports.QueryPacketReceiptRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryPacketReceiptRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.portId !== "") { writer.uint32(10).string(message.portId); } if (message.channelId !== "") { writer.uint32(18).string(message.channelId); } - if (!message.sequence.isZero()) { + if (message.sequence !== BigInt(0)) { writer.uint32(24).uint64(message.sequence); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryPacketReceiptRequest(); while (reader.pos < end) { @@ -86341,27 +83282,29 @@ exports.QueryPacketReceiptRequest = { return message; }, fromJSON(object) { - return { - portId: (0, helpers_1.isSet)(object.portId) ? String(object.portId) : "", - channelId: (0, helpers_1.isSet)(object.channelId) ? String(object.channelId) : "", - sequence: (0, helpers_1.isSet)(object.sequence) ? helpers_1.Long.fromValue(object.sequence) : helpers_1.Long.UZERO, - }; + const obj = createBaseQueryPacketReceiptRequest(); + if ((0, helpers_1.isSet)(object.portId)) + obj.portId = String(object.portId); + if ((0, helpers_1.isSet)(object.channelId)) + obj.channelId = String(object.channelId); + if ((0, helpers_1.isSet)(object.sequence)) + obj.sequence = BigInt(object.sequence.toString()); + return obj; }, toJSON(message) { const obj = {}; message.portId !== undefined && (obj.portId = message.portId); message.channelId !== undefined && (obj.channelId = message.channelId); - message.sequence !== undefined && (obj.sequence = (message.sequence || helpers_1.Long.UZERO).toString()); + message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseQueryPacketReceiptRequest(); message.portId = object.portId ?? ""; message.channelId = object.channelId ?? ""; - message.sequence = - object.sequence !== undefined && object.sequence !== null - ? helpers_1.Long.fromValue(object.sequence) - : helpers_1.Long.UZERO; + if (object.sequence !== undefined && object.sequence !== null) { + message.sequence = BigInt(object.sequence.toString()); + } return message; }, }; @@ -86369,11 +83312,12 @@ function createBaseQueryPacketReceiptResponse() { return { received: false, proof: new Uint8Array(), - proofHeight: undefined, + proofHeight: client_1.Height.fromPartial({}), }; } exports.QueryPacketReceiptResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryPacketReceiptResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.received === true) { writer.uint32(16).bool(message.received); } @@ -86386,7 +83330,7 @@ exports.QueryPacketReceiptResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryPacketReceiptResponse(); while (reader.pos < end) { @@ -86409,11 +83353,14 @@ exports.QueryPacketReceiptResponse = { return message; }, fromJSON(object) { - return { - received: (0, helpers_1.isSet)(object.received) ? Boolean(object.received) : false, - proof: (0, helpers_1.isSet)(object.proof) ? (0, helpers_1.bytesFromBase64)(object.proof) : new Uint8Array(), - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - }; + const obj = createBaseQueryPacketReceiptResponse(); + if ((0, helpers_1.isSet)(object.received)) + obj.received = Boolean(object.received); + if ((0, helpers_1.isSet)(object.proof)) + obj.proof = (0, helpers_1.bytesFromBase64)(object.proof); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + return obj; }, toJSON(message) { const obj = {}; @@ -86428,10 +83375,9 @@ exports.QueryPacketReceiptResponse = { const message = createBaseQueryPacketReceiptResponse(); message.received = object.received ?? false; message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); + } return message; }, }; @@ -86439,24 +83385,25 @@ function createBaseQueryPacketAcknowledgementRequest() { return { portId: "", channelId: "", - sequence: helpers_1.Long.UZERO, + sequence: BigInt(0), }; } exports.QueryPacketAcknowledgementRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryPacketAcknowledgementRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.portId !== "") { writer.uint32(10).string(message.portId); } if (message.channelId !== "") { writer.uint32(18).string(message.channelId); } - if (!message.sequence.isZero()) { + if (message.sequence !== BigInt(0)) { writer.uint32(24).uint64(message.sequence); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryPacketAcknowledgementRequest(); while (reader.pos < end) { @@ -86479,27 +83426,29 @@ exports.QueryPacketAcknowledgementRequest = { return message; }, fromJSON(object) { - return { - portId: (0, helpers_1.isSet)(object.portId) ? String(object.portId) : "", - channelId: (0, helpers_1.isSet)(object.channelId) ? String(object.channelId) : "", - sequence: (0, helpers_1.isSet)(object.sequence) ? helpers_1.Long.fromValue(object.sequence) : helpers_1.Long.UZERO, - }; + const obj = createBaseQueryPacketAcknowledgementRequest(); + if ((0, helpers_1.isSet)(object.portId)) + obj.portId = String(object.portId); + if ((0, helpers_1.isSet)(object.channelId)) + obj.channelId = String(object.channelId); + if ((0, helpers_1.isSet)(object.sequence)) + obj.sequence = BigInt(object.sequence.toString()); + return obj; }, toJSON(message) { const obj = {}; message.portId !== undefined && (obj.portId = message.portId); message.channelId !== undefined && (obj.channelId = message.channelId); - message.sequence !== undefined && (obj.sequence = (message.sequence || helpers_1.Long.UZERO).toString()); + message.sequence !== undefined && (obj.sequence = (message.sequence || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseQueryPacketAcknowledgementRequest(); message.portId = object.portId ?? ""; message.channelId = object.channelId ?? ""; - message.sequence = - object.sequence !== undefined && object.sequence !== null - ? helpers_1.Long.fromValue(object.sequence) - : helpers_1.Long.UZERO; + if (object.sequence !== undefined && object.sequence !== null) { + message.sequence = BigInt(object.sequence.toString()); + } return message; }, }; @@ -86507,11 +83456,12 @@ function createBaseQueryPacketAcknowledgementResponse() { return { acknowledgement: new Uint8Array(), proof: new Uint8Array(), - proofHeight: undefined, + proofHeight: client_1.Height.fromPartial({}), }; } exports.QueryPacketAcknowledgementResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryPacketAcknowledgementResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.acknowledgement.length !== 0) { writer.uint32(10).bytes(message.acknowledgement); } @@ -86524,7 +83474,7 @@ exports.QueryPacketAcknowledgementResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryPacketAcknowledgementResponse(); while (reader.pos < end) { @@ -86547,13 +83497,14 @@ exports.QueryPacketAcknowledgementResponse = { return message; }, fromJSON(object) { - return { - acknowledgement: (0, helpers_1.isSet)(object.acknowledgement) - ? (0, helpers_1.bytesFromBase64)(object.acknowledgement) - : new Uint8Array(), - proof: (0, helpers_1.isSet)(object.proof) ? (0, helpers_1.bytesFromBase64)(object.proof) : new Uint8Array(), - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - }; + const obj = createBaseQueryPacketAcknowledgementResponse(); + if ((0, helpers_1.isSet)(object.acknowledgement)) + obj.acknowledgement = (0, helpers_1.bytesFromBase64)(object.acknowledgement); + if ((0, helpers_1.isSet)(object.proof)) + obj.proof = (0, helpers_1.bytesFromBase64)(object.proof); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + return obj; }, toJSON(message) { const obj = {}; @@ -86569,10 +83520,9 @@ exports.QueryPacketAcknowledgementResponse = { const message = createBaseQueryPacketAcknowledgementResponse(); message.acknowledgement = object.acknowledgement ?? new Uint8Array(); message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); + } return message; }, }; @@ -86585,7 +83535,8 @@ function createBaseQueryPacketAcknowledgementsRequest() { }; } exports.QueryPacketAcknowledgementsRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryPacketAcknowledgementsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.portId !== "") { writer.uint32(10).string(message.portId); } @@ -86603,7 +83554,7 @@ exports.QueryPacketAcknowledgementsRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryPacketAcknowledgementsRequest(); while (reader.pos < end) { @@ -86637,14 +83588,16 @@ exports.QueryPacketAcknowledgementsRequest = { return message; }, fromJSON(object) { - return { - portId: (0, helpers_1.isSet)(object.portId) ? String(object.portId) : "", - channelId: (0, helpers_1.isSet)(object.channelId) ? String(object.channelId) : "", - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - packetCommitmentSequences: Array.isArray(object?.packetCommitmentSequences) - ? object.packetCommitmentSequences.map((e) => helpers_1.Long.fromValue(e)) - : [], - }; + const obj = createBaseQueryPacketAcknowledgementsRequest(); + if ((0, helpers_1.isSet)(object.portId)) + obj.portId = String(object.portId); + if ((0, helpers_1.isSet)(object.channelId)) + obj.channelId = String(object.channelId); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + if (Array.isArray(object?.packetCommitmentSequences)) + obj.packetCommitmentSequences = object.packetCommitmentSequences.map((e) => BigInt(e.toString())); + return obj; }, toJSON(message) { const obj = {}; @@ -86653,7 +83606,7 @@ exports.QueryPacketAcknowledgementsRequest = { message.pagination !== undefined && (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined); if (message.packetCommitmentSequences) { - obj.packetCommitmentSequences = message.packetCommitmentSequences.map((e) => (e || helpers_1.Long.UZERO).toString()); + obj.packetCommitmentSequences = message.packetCommitmentSequences.map((e) => (e || BigInt(0)).toString()); } else { obj.packetCommitmentSequences = []; @@ -86664,11 +83617,11 @@ exports.QueryPacketAcknowledgementsRequest = { const message = createBaseQueryPacketAcknowledgementsRequest(); message.portId = object.portId ?? ""; message.channelId = object.channelId ?? ""; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; - message.packetCommitmentSequences = object.packetCommitmentSequences?.map((e) => helpers_1.Long.fromValue(e)) || []; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } + message.packetCommitmentSequences = + object.packetCommitmentSequences?.map((e) => BigInt(e.toString())) || []; return message; }, }; @@ -86676,11 +83629,12 @@ function createBaseQueryPacketAcknowledgementsResponse() { return { acknowledgements: [], pagination: undefined, - height: undefined, + height: client_1.Height.fromPartial({}), }; } exports.QueryPacketAcknowledgementsResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryPacketAcknowledgementsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.acknowledgements) { channel_1.PacketState.encode(v, writer.uint32(10).fork()).ldelim(); } @@ -86693,7 +83647,7 @@ exports.QueryPacketAcknowledgementsResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryPacketAcknowledgementsResponse(); while (reader.pos < end) { @@ -86716,13 +83670,14 @@ exports.QueryPacketAcknowledgementsResponse = { return message; }, fromJSON(object) { - return { - acknowledgements: Array.isArray(object?.acknowledgements) - ? object.acknowledgements.map((e) => channel_1.PacketState.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - height: (0, helpers_1.isSet)(object.height) ? client_1.Height.fromJSON(object.height) : undefined, - }; + const obj = createBaseQueryPacketAcknowledgementsResponse(); + if (Array.isArray(object?.acknowledgements)) + obj.acknowledgements = object.acknowledgements.map((e) => channel_1.PacketState.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + if ((0, helpers_1.isSet)(object.height)) + obj.height = client_1.Height.fromJSON(object.height); + return obj; }, toJSON(message) { const obj = {}; @@ -86740,12 +83695,12 @@ exports.QueryPacketAcknowledgementsResponse = { fromPartial(object) { const message = createBaseQueryPacketAcknowledgementsResponse(); message.acknowledgements = object.acknowledgements?.map((e) => channel_1.PacketState.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; - message.height = - object.height !== undefined && object.height !== null ? client_1.Height.fromPartial(object.height) : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } + if (object.height !== undefined && object.height !== null) { + message.height = client_1.Height.fromPartial(object.height); + } return message; }, }; @@ -86757,7 +83712,8 @@ function createBaseQueryUnreceivedPacketsRequest() { }; } exports.QueryUnreceivedPacketsRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryUnreceivedPacketsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.portId !== "") { writer.uint32(10).string(message.portId); } @@ -86772,7 +83728,7 @@ exports.QueryUnreceivedPacketsRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryUnreceivedPacketsRequest(); while (reader.pos < end) { @@ -86803,20 +83759,21 @@ exports.QueryUnreceivedPacketsRequest = { return message; }, fromJSON(object) { - return { - portId: (0, helpers_1.isSet)(object.portId) ? String(object.portId) : "", - channelId: (0, helpers_1.isSet)(object.channelId) ? String(object.channelId) : "", - packetCommitmentSequences: Array.isArray(object?.packetCommitmentSequences) - ? object.packetCommitmentSequences.map((e) => helpers_1.Long.fromValue(e)) - : [], - }; + const obj = createBaseQueryUnreceivedPacketsRequest(); + if ((0, helpers_1.isSet)(object.portId)) + obj.portId = String(object.portId); + if ((0, helpers_1.isSet)(object.channelId)) + obj.channelId = String(object.channelId); + if (Array.isArray(object?.packetCommitmentSequences)) + obj.packetCommitmentSequences = object.packetCommitmentSequences.map((e) => BigInt(e.toString())); + return obj; }, toJSON(message) { const obj = {}; message.portId !== undefined && (obj.portId = message.portId); message.channelId !== undefined && (obj.channelId = message.channelId); if (message.packetCommitmentSequences) { - obj.packetCommitmentSequences = message.packetCommitmentSequences.map((e) => (e || helpers_1.Long.UZERO).toString()); + obj.packetCommitmentSequences = message.packetCommitmentSequences.map((e) => (e || BigInt(0)).toString()); } else { obj.packetCommitmentSequences = []; @@ -86827,18 +83784,20 @@ exports.QueryUnreceivedPacketsRequest = { const message = createBaseQueryUnreceivedPacketsRequest(); message.portId = object.portId ?? ""; message.channelId = object.channelId ?? ""; - message.packetCommitmentSequences = object.packetCommitmentSequences?.map((e) => helpers_1.Long.fromValue(e)) || []; + message.packetCommitmentSequences = + object.packetCommitmentSequences?.map((e) => BigInt(e.toString())) || []; return message; }, }; function createBaseQueryUnreceivedPacketsResponse() { return { sequences: [], - height: undefined, + height: client_1.Height.fromPartial({}), }; } exports.QueryUnreceivedPacketsResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryUnreceivedPacketsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { writer.uint32(10).fork(); for (const v of message.sequences) { writer.uint64(v); @@ -86850,7 +83809,7 @@ exports.QueryUnreceivedPacketsResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryUnreceivedPacketsResponse(); while (reader.pos < end) { @@ -86878,15 +83837,17 @@ exports.QueryUnreceivedPacketsResponse = { return message; }, fromJSON(object) { - return { - sequences: Array.isArray(object?.sequences) ? object.sequences.map((e) => helpers_1.Long.fromValue(e)) : [], - height: (0, helpers_1.isSet)(object.height) ? client_1.Height.fromJSON(object.height) : undefined, - }; + const obj = createBaseQueryUnreceivedPacketsResponse(); + if (Array.isArray(object?.sequences)) + obj.sequences = object.sequences.map((e) => BigInt(e.toString())); + if ((0, helpers_1.isSet)(object.height)) + obj.height = client_1.Height.fromJSON(object.height); + return obj; }, toJSON(message) { const obj = {}; if (message.sequences) { - obj.sequences = message.sequences.map((e) => (e || helpers_1.Long.UZERO).toString()); + obj.sequences = message.sequences.map((e) => (e || BigInt(0)).toString()); } else { obj.sequences = []; @@ -86896,9 +83857,10 @@ exports.QueryUnreceivedPacketsResponse = { }, fromPartial(object) { const message = createBaseQueryUnreceivedPacketsResponse(); - message.sequences = object.sequences?.map((e) => helpers_1.Long.fromValue(e)) || []; - message.height = - object.height !== undefined && object.height !== null ? client_1.Height.fromPartial(object.height) : undefined; + message.sequences = object.sequences?.map((e) => BigInt(e.toString())) || []; + if (object.height !== undefined && object.height !== null) { + message.height = client_1.Height.fromPartial(object.height); + } return message; }, }; @@ -86910,7 +83872,8 @@ function createBaseQueryUnreceivedAcksRequest() { }; } exports.QueryUnreceivedAcksRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryUnreceivedAcksRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.portId !== "") { writer.uint32(10).string(message.portId); } @@ -86925,7 +83888,7 @@ exports.QueryUnreceivedAcksRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryUnreceivedAcksRequest(); while (reader.pos < end) { @@ -86956,20 +83919,21 @@ exports.QueryUnreceivedAcksRequest = { return message; }, fromJSON(object) { - return { - portId: (0, helpers_1.isSet)(object.portId) ? String(object.portId) : "", - channelId: (0, helpers_1.isSet)(object.channelId) ? String(object.channelId) : "", - packetAckSequences: Array.isArray(object?.packetAckSequences) - ? object.packetAckSequences.map((e) => helpers_1.Long.fromValue(e)) - : [], - }; + const obj = createBaseQueryUnreceivedAcksRequest(); + if ((0, helpers_1.isSet)(object.portId)) + obj.portId = String(object.portId); + if ((0, helpers_1.isSet)(object.channelId)) + obj.channelId = String(object.channelId); + if (Array.isArray(object?.packetAckSequences)) + obj.packetAckSequences = object.packetAckSequences.map((e) => BigInt(e.toString())); + return obj; }, toJSON(message) { const obj = {}; message.portId !== undefined && (obj.portId = message.portId); message.channelId !== undefined && (obj.channelId = message.channelId); if (message.packetAckSequences) { - obj.packetAckSequences = message.packetAckSequences.map((e) => (e || helpers_1.Long.UZERO).toString()); + obj.packetAckSequences = message.packetAckSequences.map((e) => (e || BigInt(0)).toString()); } else { obj.packetAckSequences = []; @@ -86980,18 +83944,19 @@ exports.QueryUnreceivedAcksRequest = { const message = createBaseQueryUnreceivedAcksRequest(); message.portId = object.portId ?? ""; message.channelId = object.channelId ?? ""; - message.packetAckSequences = object.packetAckSequences?.map((e) => helpers_1.Long.fromValue(e)) || []; + message.packetAckSequences = object.packetAckSequences?.map((e) => BigInt(e.toString())) || []; return message; }, }; function createBaseQueryUnreceivedAcksResponse() { return { sequences: [], - height: undefined, + height: client_1.Height.fromPartial({}), }; } exports.QueryUnreceivedAcksResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryUnreceivedAcksResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { writer.uint32(10).fork(); for (const v of message.sequences) { writer.uint64(v); @@ -87003,7 +83968,7 @@ exports.QueryUnreceivedAcksResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryUnreceivedAcksResponse(); while (reader.pos < end) { @@ -87031,15 +83996,17 @@ exports.QueryUnreceivedAcksResponse = { return message; }, fromJSON(object) { - return { - sequences: Array.isArray(object?.sequences) ? object.sequences.map((e) => helpers_1.Long.fromValue(e)) : [], - height: (0, helpers_1.isSet)(object.height) ? client_1.Height.fromJSON(object.height) : undefined, - }; + const obj = createBaseQueryUnreceivedAcksResponse(); + if (Array.isArray(object?.sequences)) + obj.sequences = object.sequences.map((e) => BigInt(e.toString())); + if ((0, helpers_1.isSet)(object.height)) + obj.height = client_1.Height.fromJSON(object.height); + return obj; }, toJSON(message) { const obj = {}; if (message.sequences) { - obj.sequences = message.sequences.map((e) => (e || helpers_1.Long.UZERO).toString()); + obj.sequences = message.sequences.map((e) => (e || BigInt(0)).toString()); } else { obj.sequences = []; @@ -87049,9 +84016,10 @@ exports.QueryUnreceivedAcksResponse = { }, fromPartial(object) { const message = createBaseQueryUnreceivedAcksResponse(); - message.sequences = object.sequences?.map((e) => helpers_1.Long.fromValue(e)) || []; - message.height = - object.height !== undefined && object.height !== null ? client_1.Height.fromPartial(object.height) : undefined; + message.sequences = object.sequences?.map((e) => BigInt(e.toString())) || []; + if (object.height !== undefined && object.height !== null) { + message.height = client_1.Height.fromPartial(object.height); + } return message; }, }; @@ -87062,7 +84030,8 @@ function createBaseQueryNextSequenceReceiveRequest() { }; } exports.QueryNextSequenceReceiveRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.QueryNextSequenceReceiveRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.portId !== "") { writer.uint32(10).string(message.portId); } @@ -87072,7 +84041,7 @@ exports.QueryNextSequenceReceiveRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryNextSequenceReceiveRequest(); while (reader.pos < end) { @@ -87092,10 +84061,12 @@ exports.QueryNextSequenceReceiveRequest = { return message; }, fromJSON(object) { - return { - portId: (0, helpers_1.isSet)(object.portId) ? String(object.portId) : "", - channelId: (0, helpers_1.isSet)(object.channelId) ? String(object.channelId) : "", - }; + const obj = createBaseQueryNextSequenceReceiveRequest(); + if ((0, helpers_1.isSet)(object.portId)) + obj.portId = String(object.portId); + if ((0, helpers_1.isSet)(object.channelId)) + obj.channelId = String(object.channelId); + return obj; }, toJSON(message) { const obj = {}; @@ -87112,14 +84083,15 @@ exports.QueryNextSequenceReceiveRequest = { }; function createBaseQueryNextSequenceReceiveResponse() { return { - nextSequenceReceive: helpers_1.Long.UZERO, + nextSequenceReceive: BigInt(0), proof: new Uint8Array(), - proofHeight: undefined, + proofHeight: client_1.Height.fromPartial({}), }; } exports.QueryNextSequenceReceiveResponse = { - encode(message, writer = _m0.Writer.create()) { - if (!message.nextSequenceReceive.isZero()) { + typeUrl: "/ibc.core.channel.v1.QueryNextSequenceReceiveResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.nextSequenceReceive !== BigInt(0)) { writer.uint32(8).uint64(message.nextSequenceReceive); } if (message.proof.length !== 0) { @@ -87131,7 +84103,7 @@ exports.QueryNextSequenceReceiveResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryNextSequenceReceiveResponse(); while (reader.pos < end) { @@ -87154,18 +84126,19 @@ exports.QueryNextSequenceReceiveResponse = { return message; }, fromJSON(object) { - return { - nextSequenceReceive: (0, helpers_1.isSet)(object.nextSequenceReceive) - ? helpers_1.Long.fromValue(object.nextSequenceReceive) - : helpers_1.Long.UZERO, - proof: (0, helpers_1.isSet)(object.proof) ? (0, helpers_1.bytesFromBase64)(object.proof) : new Uint8Array(), - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - }; + const obj = createBaseQueryNextSequenceReceiveResponse(); + if ((0, helpers_1.isSet)(object.nextSequenceReceive)) + obj.nextSequenceReceive = BigInt(object.nextSequenceReceive.toString()); + if ((0, helpers_1.isSet)(object.proof)) + obj.proof = (0, helpers_1.bytesFromBase64)(object.proof); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + return obj; }, toJSON(message) { const obj = {}; message.nextSequenceReceive !== undefined && - (obj.nextSequenceReceive = (message.nextSequenceReceive || helpers_1.Long.UZERO).toString()); + (obj.nextSequenceReceive = (message.nextSequenceReceive || BigInt(0)).toString()); message.proof !== undefined && (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array())); message.proofHeight !== undefined && @@ -87174,15 +84147,13 @@ exports.QueryNextSequenceReceiveResponse = { }, fromPartial(object) { const message = createBaseQueryNextSequenceReceiveResponse(); - message.nextSequenceReceive = - object.nextSequenceReceive !== undefined && object.nextSequenceReceive !== null - ? helpers_1.Long.fromValue(object.nextSequenceReceive) - : helpers_1.Long.UZERO; + if (object.nextSequenceReceive !== undefined && object.nextSequenceReceive !== null) { + message.nextSequenceReceive = BigInt(object.nextSequenceReceive.toString()); + } message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); + } return message; }, }; @@ -87206,69 +84177,69 @@ class QueryClientImpl { Channel(request) { const data = exports.QueryChannelRequest.encode(request).finish(); const promise = this.rpc.request("ibc.core.channel.v1.Query", "Channel", data); - return promise.then((data) => exports.QueryChannelResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryChannelResponse.decode(new binary_1.BinaryReader(data))); } Channels(request = { - pagination: undefined, + pagination: pagination_1.PageRequest.fromPartial({}), }) { const data = exports.QueryChannelsRequest.encode(request).finish(); const promise = this.rpc.request("ibc.core.channel.v1.Query", "Channels", data); - return promise.then((data) => exports.QueryChannelsResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryChannelsResponse.decode(new binary_1.BinaryReader(data))); } ConnectionChannels(request) { const data = exports.QueryConnectionChannelsRequest.encode(request).finish(); const promise = this.rpc.request("ibc.core.channel.v1.Query", "ConnectionChannels", data); - return promise.then((data) => exports.QueryConnectionChannelsResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryConnectionChannelsResponse.decode(new binary_1.BinaryReader(data))); } ChannelClientState(request) { const data = exports.QueryChannelClientStateRequest.encode(request).finish(); const promise = this.rpc.request("ibc.core.channel.v1.Query", "ChannelClientState", data); - return promise.then((data) => exports.QueryChannelClientStateResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryChannelClientStateResponse.decode(new binary_1.BinaryReader(data))); } ChannelConsensusState(request) { const data = exports.QueryChannelConsensusStateRequest.encode(request).finish(); const promise = this.rpc.request("ibc.core.channel.v1.Query", "ChannelConsensusState", data); - return promise.then((data) => exports.QueryChannelConsensusStateResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryChannelConsensusStateResponse.decode(new binary_1.BinaryReader(data))); } PacketCommitment(request) { const data = exports.QueryPacketCommitmentRequest.encode(request).finish(); const promise = this.rpc.request("ibc.core.channel.v1.Query", "PacketCommitment", data); - return promise.then((data) => exports.QueryPacketCommitmentResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryPacketCommitmentResponse.decode(new binary_1.BinaryReader(data))); } PacketCommitments(request) { const data = exports.QueryPacketCommitmentsRequest.encode(request).finish(); const promise = this.rpc.request("ibc.core.channel.v1.Query", "PacketCommitments", data); - return promise.then((data) => exports.QueryPacketCommitmentsResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryPacketCommitmentsResponse.decode(new binary_1.BinaryReader(data))); } PacketReceipt(request) { const data = exports.QueryPacketReceiptRequest.encode(request).finish(); const promise = this.rpc.request("ibc.core.channel.v1.Query", "PacketReceipt", data); - return promise.then((data) => exports.QueryPacketReceiptResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryPacketReceiptResponse.decode(new binary_1.BinaryReader(data))); } PacketAcknowledgement(request) { const data = exports.QueryPacketAcknowledgementRequest.encode(request).finish(); const promise = this.rpc.request("ibc.core.channel.v1.Query", "PacketAcknowledgement", data); - return promise.then((data) => exports.QueryPacketAcknowledgementResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryPacketAcknowledgementResponse.decode(new binary_1.BinaryReader(data))); } PacketAcknowledgements(request) { const data = exports.QueryPacketAcknowledgementsRequest.encode(request).finish(); const promise = this.rpc.request("ibc.core.channel.v1.Query", "PacketAcknowledgements", data); - return promise.then((data) => exports.QueryPacketAcknowledgementsResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryPacketAcknowledgementsResponse.decode(new binary_1.BinaryReader(data))); } UnreceivedPackets(request) { const data = exports.QueryUnreceivedPacketsRequest.encode(request).finish(); const promise = this.rpc.request("ibc.core.channel.v1.Query", "UnreceivedPackets", data); - return promise.then((data) => exports.QueryUnreceivedPacketsResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryUnreceivedPacketsResponse.decode(new binary_1.BinaryReader(data))); } UnreceivedAcks(request) { const data = exports.QueryUnreceivedAcksRequest.encode(request).finish(); const promise = this.rpc.request("ibc.core.channel.v1.Query", "UnreceivedAcks", data); - return promise.then((data) => exports.QueryUnreceivedAcksResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryUnreceivedAcksResponse.decode(new binary_1.BinaryReader(data))); } NextSequenceReceive(request) { const data = exports.QueryNextSequenceReceiveRequest.encode(request).finish(); const promise = this.rpc.request("ibc.core.channel.v1.Query", "NextSequenceReceive", data); - return promise.then((data) => exports.QueryNextSequenceReceiveResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryNextSequenceReceiveResponse.decode(new binary_1.BinaryReader(data))); } } exports.QueryClientImpl = QueryClientImpl; @@ -87284,35 +84255,12 @@ exports.QueryClientImpl = QueryClientImpl; "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.MsgClientImpl = exports.MsgAcknowledgementResponse = exports.MsgAcknowledgement = exports.MsgTimeoutOnCloseResponse = exports.MsgTimeoutOnClose = exports.MsgTimeoutResponse = exports.MsgTimeout = exports.MsgRecvPacketResponse = exports.MsgRecvPacket = exports.MsgChannelCloseConfirmResponse = exports.MsgChannelCloseConfirm = exports.MsgChannelCloseInitResponse = exports.MsgChannelCloseInit = exports.MsgChannelOpenConfirmResponse = exports.MsgChannelOpenConfirm = exports.MsgChannelOpenAckResponse = exports.MsgChannelOpenAck = exports.MsgChannelOpenTryResponse = exports.MsgChannelOpenTry = exports.MsgChannelOpenInitResponse = exports.MsgChannelOpenInit = exports.responseResultTypeToJSON = exports.responseResultTypeFromJSON = exports.ResponseResultType = exports.protobufPackage = void 0; /* eslint-disable */ const channel_1 = __webpack_require__(/*! ./channel */ "./node_modules/cosmjs-types/ibc/core/channel/v1/channel.js"); const client_1 = __webpack_require__(/*! ../../client/v1/client */ "./node_modules/cosmjs-types/ibc/core/client/v1/client.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "ibc.core.channel.v1"; /** ResponseResultType defines the possible outcomes of the execution of a message */ @@ -87325,7 +84273,7 @@ var ResponseResultType; /** RESPONSE_RESULT_TYPE_SUCCESS - The message was executed successfully */ ResponseResultType[ResponseResultType["RESPONSE_RESULT_TYPE_SUCCESS"] = 2] = "RESPONSE_RESULT_TYPE_SUCCESS"; ResponseResultType[ResponseResultType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(ResponseResultType = exports.ResponseResultType || (exports.ResponseResultType = {})); +})(ResponseResultType || (exports.ResponseResultType = ResponseResultType = {})); function responseResultTypeFromJSON(object) { switch (object) { case 0: @@ -87361,12 +84309,13 @@ exports.responseResultTypeToJSON = responseResultTypeToJSON; function createBaseMsgChannelOpenInit() { return { portId: "", - channel: undefined, + channel: channel_1.Channel.fromPartial({}), signer: "", }; } exports.MsgChannelOpenInit = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.MsgChannelOpenInit", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.portId !== "") { writer.uint32(10).string(message.portId); } @@ -87379,7 +84328,7 @@ exports.MsgChannelOpenInit = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgChannelOpenInit(); while (reader.pos < end) { @@ -87402,11 +84351,14 @@ exports.MsgChannelOpenInit = { return message; }, fromJSON(object) { - return { - portId: (0, helpers_1.isSet)(object.portId) ? String(object.portId) : "", - channel: (0, helpers_1.isSet)(object.channel) ? channel_1.Channel.fromJSON(object.channel) : undefined, - signer: (0, helpers_1.isSet)(object.signer) ? String(object.signer) : "", - }; + const obj = createBaseMsgChannelOpenInit(); + if ((0, helpers_1.isSet)(object.portId)) + obj.portId = String(object.portId); + if ((0, helpers_1.isSet)(object.channel)) + obj.channel = channel_1.Channel.fromJSON(object.channel); + if ((0, helpers_1.isSet)(object.signer)) + obj.signer = String(object.signer); + return obj; }, toJSON(message) { const obj = {}; @@ -87419,10 +84371,9 @@ exports.MsgChannelOpenInit = { fromPartial(object) { const message = createBaseMsgChannelOpenInit(); message.portId = object.portId ?? ""; - message.channel = - object.channel !== undefined && object.channel !== null - ? channel_1.Channel.fromPartial(object.channel) - : undefined; + if (object.channel !== undefined && object.channel !== null) { + message.channel = channel_1.Channel.fromPartial(object.channel); + } message.signer = object.signer ?? ""; return message; }, @@ -87434,7 +84385,8 @@ function createBaseMsgChannelOpenInitResponse() { }; } exports.MsgChannelOpenInitResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.MsgChannelOpenInitResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.channelId !== "") { writer.uint32(10).string(message.channelId); } @@ -87444,7 +84396,7 @@ exports.MsgChannelOpenInitResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgChannelOpenInitResponse(); while (reader.pos < end) { @@ -87464,10 +84416,12 @@ exports.MsgChannelOpenInitResponse = { return message; }, fromJSON(object) { - return { - channelId: (0, helpers_1.isSet)(object.channelId) ? String(object.channelId) : "", - version: (0, helpers_1.isSet)(object.version) ? String(object.version) : "", - }; + const obj = createBaseMsgChannelOpenInitResponse(); + if ((0, helpers_1.isSet)(object.channelId)) + obj.channelId = String(object.channelId); + if ((0, helpers_1.isSet)(object.version)) + obj.version = String(object.version); + return obj; }, toJSON(message) { const obj = {}; @@ -87486,15 +84440,16 @@ function createBaseMsgChannelOpenTry() { return { portId: "", previousChannelId: "", - channel: undefined, + channel: channel_1.Channel.fromPartial({}), counterpartyVersion: "", proofInit: new Uint8Array(), - proofHeight: undefined, + proofHeight: client_1.Height.fromPartial({}), signer: "", }; } exports.MsgChannelOpenTry = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.MsgChannelOpenTry", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.portId !== "") { writer.uint32(10).string(message.portId); } @@ -87519,7 +84474,7 @@ exports.MsgChannelOpenTry = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgChannelOpenTry(); while (reader.pos < end) { @@ -87554,15 +84509,22 @@ exports.MsgChannelOpenTry = { return message; }, fromJSON(object) { - return { - portId: (0, helpers_1.isSet)(object.portId) ? String(object.portId) : "", - previousChannelId: (0, helpers_1.isSet)(object.previousChannelId) ? String(object.previousChannelId) : "", - channel: (0, helpers_1.isSet)(object.channel) ? channel_1.Channel.fromJSON(object.channel) : undefined, - counterpartyVersion: (0, helpers_1.isSet)(object.counterpartyVersion) ? String(object.counterpartyVersion) : "", - proofInit: (0, helpers_1.isSet)(object.proofInit) ? (0, helpers_1.bytesFromBase64)(object.proofInit) : new Uint8Array(), - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - signer: (0, helpers_1.isSet)(object.signer) ? String(object.signer) : "", - }; + const obj = createBaseMsgChannelOpenTry(); + if ((0, helpers_1.isSet)(object.portId)) + obj.portId = String(object.portId); + if ((0, helpers_1.isSet)(object.previousChannelId)) + obj.previousChannelId = String(object.previousChannelId); + if ((0, helpers_1.isSet)(object.channel)) + obj.channel = channel_1.Channel.fromJSON(object.channel); + if ((0, helpers_1.isSet)(object.counterpartyVersion)) + obj.counterpartyVersion = String(object.counterpartyVersion); + if ((0, helpers_1.isSet)(object.proofInit)) + obj.proofInit = (0, helpers_1.bytesFromBase64)(object.proofInit); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + if ((0, helpers_1.isSet)(object.signer)) + obj.signer = String(object.signer); + return obj; }, toJSON(message) { const obj = {}; @@ -87582,16 +84544,14 @@ exports.MsgChannelOpenTry = { const message = createBaseMsgChannelOpenTry(); message.portId = object.portId ?? ""; message.previousChannelId = object.previousChannelId ?? ""; - message.channel = - object.channel !== undefined && object.channel !== null - ? channel_1.Channel.fromPartial(object.channel) - : undefined; + if (object.channel !== undefined && object.channel !== null) { + message.channel = channel_1.Channel.fromPartial(object.channel); + } message.counterpartyVersion = object.counterpartyVersion ?? ""; message.proofInit = object.proofInit ?? new Uint8Array(); - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); + } message.signer = object.signer ?? ""; return message; }, @@ -87602,14 +84562,15 @@ function createBaseMsgChannelOpenTryResponse() { }; } exports.MsgChannelOpenTryResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.MsgChannelOpenTryResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.version !== "") { writer.uint32(10).string(message.version); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgChannelOpenTryResponse(); while (reader.pos < end) { @@ -87626,9 +84587,10 @@ exports.MsgChannelOpenTryResponse = { return message; }, fromJSON(object) { - return { - version: (0, helpers_1.isSet)(object.version) ? String(object.version) : "", - }; + const obj = createBaseMsgChannelOpenTryResponse(); + if ((0, helpers_1.isSet)(object.version)) + obj.version = String(object.version); + return obj; }, toJSON(message) { const obj = {}; @@ -87648,12 +84610,13 @@ function createBaseMsgChannelOpenAck() { counterpartyChannelId: "", counterpartyVersion: "", proofTry: new Uint8Array(), - proofHeight: undefined, + proofHeight: client_1.Height.fromPartial({}), signer: "", }; } exports.MsgChannelOpenAck = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.MsgChannelOpenAck", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.portId !== "") { writer.uint32(10).string(message.portId); } @@ -87678,7 +84641,7 @@ exports.MsgChannelOpenAck = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgChannelOpenAck(); while (reader.pos < end) { @@ -87713,15 +84676,22 @@ exports.MsgChannelOpenAck = { return message; }, fromJSON(object) { - return { - portId: (0, helpers_1.isSet)(object.portId) ? String(object.portId) : "", - channelId: (0, helpers_1.isSet)(object.channelId) ? String(object.channelId) : "", - counterpartyChannelId: (0, helpers_1.isSet)(object.counterpartyChannelId) ? String(object.counterpartyChannelId) : "", - counterpartyVersion: (0, helpers_1.isSet)(object.counterpartyVersion) ? String(object.counterpartyVersion) : "", - proofTry: (0, helpers_1.isSet)(object.proofTry) ? (0, helpers_1.bytesFromBase64)(object.proofTry) : new Uint8Array(), - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - signer: (0, helpers_1.isSet)(object.signer) ? String(object.signer) : "", - }; + const obj = createBaseMsgChannelOpenAck(); + if ((0, helpers_1.isSet)(object.portId)) + obj.portId = String(object.portId); + if ((0, helpers_1.isSet)(object.channelId)) + obj.channelId = String(object.channelId); + if ((0, helpers_1.isSet)(object.counterpartyChannelId)) + obj.counterpartyChannelId = String(object.counterpartyChannelId); + if ((0, helpers_1.isSet)(object.counterpartyVersion)) + obj.counterpartyVersion = String(object.counterpartyVersion); + if ((0, helpers_1.isSet)(object.proofTry)) + obj.proofTry = (0, helpers_1.bytesFromBase64)(object.proofTry); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + if ((0, helpers_1.isSet)(object.signer)) + obj.signer = String(object.signer); + return obj; }, toJSON(message) { const obj = {}; @@ -87744,10 +84714,9 @@ exports.MsgChannelOpenAck = { message.counterpartyChannelId = object.counterpartyChannelId ?? ""; message.counterpartyVersion = object.counterpartyVersion ?? ""; message.proofTry = object.proofTry ?? new Uint8Array(); - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); + } message.signer = object.signer ?? ""; return message; }, @@ -87756,11 +84725,12 @@ function createBaseMsgChannelOpenAckResponse() { return {}; } exports.MsgChannelOpenAckResponse = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.MsgChannelOpenAckResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgChannelOpenAckResponse(); while (reader.pos < end) { @@ -87774,7 +84744,8 @@ exports.MsgChannelOpenAckResponse = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseMsgChannelOpenAckResponse(); + return obj; }, toJSON(_) { const obj = {}; @@ -87790,12 +84761,13 @@ function createBaseMsgChannelOpenConfirm() { portId: "", channelId: "", proofAck: new Uint8Array(), - proofHeight: undefined, + proofHeight: client_1.Height.fromPartial({}), signer: "", }; } exports.MsgChannelOpenConfirm = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.MsgChannelOpenConfirm", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.portId !== "") { writer.uint32(10).string(message.portId); } @@ -87814,7 +84786,7 @@ exports.MsgChannelOpenConfirm = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgChannelOpenConfirm(); while (reader.pos < end) { @@ -87843,13 +84815,18 @@ exports.MsgChannelOpenConfirm = { return message; }, fromJSON(object) { - return { - portId: (0, helpers_1.isSet)(object.portId) ? String(object.portId) : "", - channelId: (0, helpers_1.isSet)(object.channelId) ? String(object.channelId) : "", - proofAck: (0, helpers_1.isSet)(object.proofAck) ? (0, helpers_1.bytesFromBase64)(object.proofAck) : new Uint8Array(), - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - signer: (0, helpers_1.isSet)(object.signer) ? String(object.signer) : "", - }; + const obj = createBaseMsgChannelOpenConfirm(); + if ((0, helpers_1.isSet)(object.portId)) + obj.portId = String(object.portId); + if ((0, helpers_1.isSet)(object.channelId)) + obj.channelId = String(object.channelId); + if ((0, helpers_1.isSet)(object.proofAck)) + obj.proofAck = (0, helpers_1.bytesFromBase64)(object.proofAck); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + if ((0, helpers_1.isSet)(object.signer)) + obj.signer = String(object.signer); + return obj; }, toJSON(message) { const obj = {}; @@ -87867,10 +84844,9 @@ exports.MsgChannelOpenConfirm = { message.portId = object.portId ?? ""; message.channelId = object.channelId ?? ""; message.proofAck = object.proofAck ?? new Uint8Array(); - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); + } message.signer = object.signer ?? ""; return message; }, @@ -87879,11 +84855,12 @@ function createBaseMsgChannelOpenConfirmResponse() { return {}; } exports.MsgChannelOpenConfirmResponse = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.MsgChannelOpenConfirmResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgChannelOpenConfirmResponse(); while (reader.pos < end) { @@ -87897,7 +84874,8 @@ exports.MsgChannelOpenConfirmResponse = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseMsgChannelOpenConfirmResponse(); + return obj; }, toJSON(_) { const obj = {}; @@ -87916,7 +84894,8 @@ function createBaseMsgChannelCloseInit() { }; } exports.MsgChannelCloseInit = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.MsgChannelCloseInit", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.portId !== "") { writer.uint32(10).string(message.portId); } @@ -87929,7 +84908,7 @@ exports.MsgChannelCloseInit = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgChannelCloseInit(); while (reader.pos < end) { @@ -87952,11 +84931,14 @@ exports.MsgChannelCloseInit = { return message; }, fromJSON(object) { - return { - portId: (0, helpers_1.isSet)(object.portId) ? String(object.portId) : "", - channelId: (0, helpers_1.isSet)(object.channelId) ? String(object.channelId) : "", - signer: (0, helpers_1.isSet)(object.signer) ? String(object.signer) : "", - }; + const obj = createBaseMsgChannelCloseInit(); + if ((0, helpers_1.isSet)(object.portId)) + obj.portId = String(object.portId); + if ((0, helpers_1.isSet)(object.channelId)) + obj.channelId = String(object.channelId); + if ((0, helpers_1.isSet)(object.signer)) + obj.signer = String(object.signer); + return obj; }, toJSON(message) { const obj = {}; @@ -87977,11 +84959,12 @@ function createBaseMsgChannelCloseInitResponse() { return {}; } exports.MsgChannelCloseInitResponse = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.MsgChannelCloseInitResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgChannelCloseInitResponse(); while (reader.pos < end) { @@ -87995,7 +84978,8 @@ exports.MsgChannelCloseInitResponse = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseMsgChannelCloseInitResponse(); + return obj; }, toJSON(_) { const obj = {}; @@ -88011,12 +84995,13 @@ function createBaseMsgChannelCloseConfirm() { portId: "", channelId: "", proofInit: new Uint8Array(), - proofHeight: undefined, + proofHeight: client_1.Height.fromPartial({}), signer: "", }; } exports.MsgChannelCloseConfirm = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.MsgChannelCloseConfirm", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.portId !== "") { writer.uint32(10).string(message.portId); } @@ -88035,7 +85020,7 @@ exports.MsgChannelCloseConfirm = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgChannelCloseConfirm(); while (reader.pos < end) { @@ -88064,13 +85049,18 @@ exports.MsgChannelCloseConfirm = { return message; }, fromJSON(object) { - return { - portId: (0, helpers_1.isSet)(object.portId) ? String(object.portId) : "", - channelId: (0, helpers_1.isSet)(object.channelId) ? String(object.channelId) : "", - proofInit: (0, helpers_1.isSet)(object.proofInit) ? (0, helpers_1.bytesFromBase64)(object.proofInit) : new Uint8Array(), - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - signer: (0, helpers_1.isSet)(object.signer) ? String(object.signer) : "", - }; + const obj = createBaseMsgChannelCloseConfirm(); + if ((0, helpers_1.isSet)(object.portId)) + obj.portId = String(object.portId); + if ((0, helpers_1.isSet)(object.channelId)) + obj.channelId = String(object.channelId); + if ((0, helpers_1.isSet)(object.proofInit)) + obj.proofInit = (0, helpers_1.bytesFromBase64)(object.proofInit); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + if ((0, helpers_1.isSet)(object.signer)) + obj.signer = String(object.signer); + return obj; }, toJSON(message) { const obj = {}; @@ -88088,10 +85078,9 @@ exports.MsgChannelCloseConfirm = { message.portId = object.portId ?? ""; message.channelId = object.channelId ?? ""; message.proofInit = object.proofInit ?? new Uint8Array(); - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); + } message.signer = object.signer ?? ""; return message; }, @@ -88100,11 +85089,12 @@ function createBaseMsgChannelCloseConfirmResponse() { return {}; } exports.MsgChannelCloseConfirmResponse = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.MsgChannelCloseConfirmResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgChannelCloseConfirmResponse(); while (reader.pos < end) { @@ -88118,7 +85108,8 @@ exports.MsgChannelCloseConfirmResponse = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseMsgChannelCloseConfirmResponse(); + return obj; }, toJSON(_) { const obj = {}; @@ -88131,14 +85122,15 @@ exports.MsgChannelCloseConfirmResponse = { }; function createBaseMsgRecvPacket() { return { - packet: undefined, + packet: channel_1.Packet.fromPartial({}), proofCommitment: new Uint8Array(), - proofHeight: undefined, + proofHeight: client_1.Height.fromPartial({}), signer: "", }; } exports.MsgRecvPacket = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.MsgRecvPacket", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.packet !== undefined) { channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim(); } @@ -88154,7 +85146,7 @@ exports.MsgRecvPacket = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgRecvPacket(); while (reader.pos < end) { @@ -88180,14 +85172,16 @@ exports.MsgRecvPacket = { return message; }, fromJSON(object) { - return { - packet: (0, helpers_1.isSet)(object.packet) ? channel_1.Packet.fromJSON(object.packet) : undefined, - proofCommitment: (0, helpers_1.isSet)(object.proofCommitment) - ? (0, helpers_1.bytesFromBase64)(object.proofCommitment) - : new Uint8Array(), - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - signer: (0, helpers_1.isSet)(object.signer) ? String(object.signer) : "", - }; + const obj = createBaseMsgRecvPacket(); + if ((0, helpers_1.isSet)(object.packet)) + obj.packet = channel_1.Packet.fromJSON(object.packet); + if ((0, helpers_1.isSet)(object.proofCommitment)) + obj.proofCommitment = (0, helpers_1.bytesFromBase64)(object.proofCommitment); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + if ((0, helpers_1.isSet)(object.signer)) + obj.signer = String(object.signer); + return obj; }, toJSON(message) { const obj = {}; @@ -88201,13 +85195,13 @@ exports.MsgRecvPacket = { }, fromPartial(object) { const message = createBaseMsgRecvPacket(); - message.packet = - object.packet !== undefined && object.packet !== null ? channel_1.Packet.fromPartial(object.packet) : undefined; + if (object.packet !== undefined && object.packet !== null) { + message.packet = channel_1.Packet.fromPartial(object.packet); + } message.proofCommitment = object.proofCommitment ?? new Uint8Array(); - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); + } message.signer = object.signer ?? ""; return message; }, @@ -88218,14 +85212,15 @@ function createBaseMsgRecvPacketResponse() { }; } exports.MsgRecvPacketResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.MsgRecvPacketResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.result !== 0) { writer.uint32(8).int32(message.result); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgRecvPacketResponse(); while (reader.pos < end) { @@ -88242,9 +85237,10 @@ exports.MsgRecvPacketResponse = { return message; }, fromJSON(object) { - return { - result: (0, helpers_1.isSet)(object.result) ? responseResultTypeFromJSON(object.result) : 0, - }; + const obj = createBaseMsgRecvPacketResponse(); + if ((0, helpers_1.isSet)(object.result)) + obj.result = responseResultTypeFromJSON(object.result); + return obj; }, toJSON(message) { const obj = {}; @@ -88259,15 +85255,16 @@ exports.MsgRecvPacketResponse = { }; function createBaseMsgTimeout() { return { - packet: undefined, + packet: channel_1.Packet.fromPartial({}), proofUnreceived: new Uint8Array(), - proofHeight: undefined, - nextSequenceRecv: helpers_1.Long.UZERO, + proofHeight: client_1.Height.fromPartial({}), + nextSequenceRecv: BigInt(0), signer: "", }; } exports.MsgTimeout = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.MsgTimeout", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.packet !== undefined) { channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim(); } @@ -88277,7 +85274,7 @@ exports.MsgTimeout = { if (message.proofHeight !== undefined) { client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim(); } - if (!message.nextSequenceRecv.isZero()) { + if (message.nextSequenceRecv !== BigInt(0)) { writer.uint32(32).uint64(message.nextSequenceRecv); } if (message.signer !== "") { @@ -88286,7 +85283,7 @@ exports.MsgTimeout = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgTimeout(); while (reader.pos < end) { @@ -88315,15 +85312,18 @@ exports.MsgTimeout = { return message; }, fromJSON(object) { - return { - packet: (0, helpers_1.isSet)(object.packet) ? channel_1.Packet.fromJSON(object.packet) : undefined, - proofUnreceived: (0, helpers_1.isSet)(object.proofUnreceived) - ? (0, helpers_1.bytesFromBase64)(object.proofUnreceived) - : new Uint8Array(), - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - nextSequenceRecv: (0, helpers_1.isSet)(object.nextSequenceRecv) ? helpers_1.Long.fromValue(object.nextSequenceRecv) : helpers_1.Long.UZERO, - signer: (0, helpers_1.isSet)(object.signer) ? String(object.signer) : "", - }; + const obj = createBaseMsgTimeout(); + if ((0, helpers_1.isSet)(object.packet)) + obj.packet = channel_1.Packet.fromJSON(object.packet); + if ((0, helpers_1.isSet)(object.proofUnreceived)) + obj.proofUnreceived = (0, helpers_1.bytesFromBase64)(object.proofUnreceived); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + if ((0, helpers_1.isSet)(object.nextSequenceRecv)) + obj.nextSequenceRecv = BigInt(object.nextSequenceRecv.toString()); + if ((0, helpers_1.isSet)(object.signer)) + obj.signer = String(object.signer); + return obj; }, toJSON(message) { const obj = {}; @@ -88333,23 +85333,22 @@ exports.MsgTimeout = { message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined); message.nextSequenceRecv !== undefined && - (obj.nextSequenceRecv = (message.nextSequenceRecv || helpers_1.Long.UZERO).toString()); + (obj.nextSequenceRecv = (message.nextSequenceRecv || BigInt(0)).toString()); message.signer !== undefined && (obj.signer = message.signer); return obj; }, fromPartial(object) { const message = createBaseMsgTimeout(); - message.packet = - object.packet !== undefined && object.packet !== null ? channel_1.Packet.fromPartial(object.packet) : undefined; + if (object.packet !== undefined && object.packet !== null) { + message.packet = channel_1.Packet.fromPartial(object.packet); + } message.proofUnreceived = object.proofUnreceived ?? new Uint8Array(); - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; - message.nextSequenceRecv = - object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null - ? helpers_1.Long.fromValue(object.nextSequenceRecv) - : helpers_1.Long.UZERO; + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); + } + if (object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null) { + message.nextSequenceRecv = BigInt(object.nextSequenceRecv.toString()); + } message.signer = object.signer ?? ""; return message; }, @@ -88360,14 +85359,15 @@ function createBaseMsgTimeoutResponse() { }; } exports.MsgTimeoutResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.MsgTimeoutResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.result !== 0) { writer.uint32(8).int32(message.result); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgTimeoutResponse(); while (reader.pos < end) { @@ -88384,9 +85384,10 @@ exports.MsgTimeoutResponse = { return message; }, fromJSON(object) { - return { - result: (0, helpers_1.isSet)(object.result) ? responseResultTypeFromJSON(object.result) : 0, - }; + const obj = createBaseMsgTimeoutResponse(); + if ((0, helpers_1.isSet)(object.result)) + obj.result = responseResultTypeFromJSON(object.result); + return obj; }, toJSON(message) { const obj = {}; @@ -88401,16 +85402,17 @@ exports.MsgTimeoutResponse = { }; function createBaseMsgTimeoutOnClose() { return { - packet: undefined, + packet: channel_1.Packet.fromPartial({}), proofUnreceived: new Uint8Array(), proofClose: new Uint8Array(), - proofHeight: undefined, - nextSequenceRecv: helpers_1.Long.UZERO, + proofHeight: client_1.Height.fromPartial({}), + nextSequenceRecv: BigInt(0), signer: "", }; } exports.MsgTimeoutOnClose = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.MsgTimeoutOnClose", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.packet !== undefined) { channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim(); } @@ -88423,7 +85425,7 @@ exports.MsgTimeoutOnClose = { if (message.proofHeight !== undefined) { client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim(); } - if (!message.nextSequenceRecv.isZero()) { + if (message.nextSequenceRecv !== BigInt(0)) { writer.uint32(40).uint64(message.nextSequenceRecv); } if (message.signer !== "") { @@ -88432,7 +85434,7 @@ exports.MsgTimeoutOnClose = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgTimeoutOnClose(); while (reader.pos < end) { @@ -88464,16 +85466,20 @@ exports.MsgTimeoutOnClose = { return message; }, fromJSON(object) { - return { - packet: (0, helpers_1.isSet)(object.packet) ? channel_1.Packet.fromJSON(object.packet) : undefined, - proofUnreceived: (0, helpers_1.isSet)(object.proofUnreceived) - ? (0, helpers_1.bytesFromBase64)(object.proofUnreceived) - : new Uint8Array(), - proofClose: (0, helpers_1.isSet)(object.proofClose) ? (0, helpers_1.bytesFromBase64)(object.proofClose) : new Uint8Array(), - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - nextSequenceRecv: (0, helpers_1.isSet)(object.nextSequenceRecv) ? helpers_1.Long.fromValue(object.nextSequenceRecv) : helpers_1.Long.UZERO, - signer: (0, helpers_1.isSet)(object.signer) ? String(object.signer) : "", - }; + const obj = createBaseMsgTimeoutOnClose(); + if ((0, helpers_1.isSet)(object.packet)) + obj.packet = channel_1.Packet.fromJSON(object.packet); + if ((0, helpers_1.isSet)(object.proofUnreceived)) + obj.proofUnreceived = (0, helpers_1.bytesFromBase64)(object.proofUnreceived); + if ((0, helpers_1.isSet)(object.proofClose)) + obj.proofClose = (0, helpers_1.bytesFromBase64)(object.proofClose); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + if ((0, helpers_1.isSet)(object.nextSequenceRecv)) + obj.nextSequenceRecv = BigInt(object.nextSequenceRecv.toString()); + if ((0, helpers_1.isSet)(object.signer)) + obj.signer = String(object.signer); + return obj; }, toJSON(message) { const obj = {}; @@ -88485,24 +85491,23 @@ exports.MsgTimeoutOnClose = { message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined); message.nextSequenceRecv !== undefined && - (obj.nextSequenceRecv = (message.nextSequenceRecv || helpers_1.Long.UZERO).toString()); + (obj.nextSequenceRecv = (message.nextSequenceRecv || BigInt(0)).toString()); message.signer !== undefined && (obj.signer = message.signer); return obj; }, fromPartial(object) { const message = createBaseMsgTimeoutOnClose(); - message.packet = - object.packet !== undefined && object.packet !== null ? channel_1.Packet.fromPartial(object.packet) : undefined; + if (object.packet !== undefined && object.packet !== null) { + message.packet = channel_1.Packet.fromPartial(object.packet); + } message.proofUnreceived = object.proofUnreceived ?? new Uint8Array(); message.proofClose = object.proofClose ?? new Uint8Array(); - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; - message.nextSequenceRecv = - object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null - ? helpers_1.Long.fromValue(object.nextSequenceRecv) - : helpers_1.Long.UZERO; + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); + } + if (object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null) { + message.nextSequenceRecv = BigInt(object.nextSequenceRecv.toString()); + } message.signer = object.signer ?? ""; return message; }, @@ -88513,14 +85518,15 @@ function createBaseMsgTimeoutOnCloseResponse() { }; } exports.MsgTimeoutOnCloseResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.MsgTimeoutOnCloseResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.result !== 0) { writer.uint32(8).int32(message.result); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgTimeoutOnCloseResponse(); while (reader.pos < end) { @@ -88537,9 +85543,10 @@ exports.MsgTimeoutOnCloseResponse = { return message; }, fromJSON(object) { - return { - result: (0, helpers_1.isSet)(object.result) ? responseResultTypeFromJSON(object.result) : 0, - }; + const obj = createBaseMsgTimeoutOnCloseResponse(); + if ((0, helpers_1.isSet)(object.result)) + obj.result = responseResultTypeFromJSON(object.result); + return obj; }, toJSON(message) { const obj = {}; @@ -88554,15 +85561,16 @@ exports.MsgTimeoutOnCloseResponse = { }; function createBaseMsgAcknowledgement() { return { - packet: undefined, + packet: channel_1.Packet.fromPartial({}), acknowledgement: new Uint8Array(), proofAcked: new Uint8Array(), - proofHeight: undefined, + proofHeight: client_1.Height.fromPartial({}), signer: "", }; } exports.MsgAcknowledgement = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.MsgAcknowledgement", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.packet !== undefined) { channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim(); } @@ -88581,7 +85589,7 @@ exports.MsgAcknowledgement = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgAcknowledgement(); while (reader.pos < end) { @@ -88610,15 +85618,18 @@ exports.MsgAcknowledgement = { return message; }, fromJSON(object) { - return { - packet: (0, helpers_1.isSet)(object.packet) ? channel_1.Packet.fromJSON(object.packet) : undefined, - acknowledgement: (0, helpers_1.isSet)(object.acknowledgement) - ? (0, helpers_1.bytesFromBase64)(object.acknowledgement) - : new Uint8Array(), - proofAcked: (0, helpers_1.isSet)(object.proofAcked) ? (0, helpers_1.bytesFromBase64)(object.proofAcked) : new Uint8Array(), - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - signer: (0, helpers_1.isSet)(object.signer) ? String(object.signer) : "", - }; + const obj = createBaseMsgAcknowledgement(); + if ((0, helpers_1.isSet)(object.packet)) + obj.packet = channel_1.Packet.fromJSON(object.packet); + if ((0, helpers_1.isSet)(object.acknowledgement)) + obj.acknowledgement = (0, helpers_1.bytesFromBase64)(object.acknowledgement); + if ((0, helpers_1.isSet)(object.proofAcked)) + obj.proofAcked = (0, helpers_1.bytesFromBase64)(object.proofAcked); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + if ((0, helpers_1.isSet)(object.signer)) + obj.signer = String(object.signer); + return obj; }, toJSON(message) { const obj = {}; @@ -88634,14 +85645,14 @@ exports.MsgAcknowledgement = { }, fromPartial(object) { const message = createBaseMsgAcknowledgement(); - message.packet = - object.packet !== undefined && object.packet !== null ? channel_1.Packet.fromPartial(object.packet) : undefined; + if (object.packet !== undefined && object.packet !== null) { + message.packet = channel_1.Packet.fromPartial(object.packet); + } message.acknowledgement = object.acknowledgement ?? new Uint8Array(); message.proofAcked = object.proofAcked ?? new Uint8Array(); - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); + } message.signer = object.signer ?? ""; return message; }, @@ -88652,14 +85663,15 @@ function createBaseMsgAcknowledgementResponse() { }; } exports.MsgAcknowledgementResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.channel.v1.MsgAcknowledgementResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.result !== 0) { writer.uint32(8).int32(message.result); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgAcknowledgementResponse(); while (reader.pos < end) { @@ -88676,9 +85688,10 @@ exports.MsgAcknowledgementResponse = { return message; }, fromJSON(object) { - return { - result: (0, helpers_1.isSet)(object.result) ? responseResultTypeFromJSON(object.result) : 0, - }; + const obj = createBaseMsgAcknowledgementResponse(); + if ((0, helpers_1.isSet)(object.result)) + obj.result = responseResultTypeFromJSON(object.result); + return obj; }, toJSON(message) { const obj = {}; @@ -88708,52 +85721,52 @@ class MsgClientImpl { ChannelOpenInit(request) { const data = exports.MsgChannelOpenInit.encode(request).finish(); const promise = this.rpc.request("ibc.core.channel.v1.Msg", "ChannelOpenInit", data); - return promise.then((data) => exports.MsgChannelOpenInitResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.MsgChannelOpenInitResponse.decode(new binary_1.BinaryReader(data))); } ChannelOpenTry(request) { const data = exports.MsgChannelOpenTry.encode(request).finish(); const promise = this.rpc.request("ibc.core.channel.v1.Msg", "ChannelOpenTry", data); - return promise.then((data) => exports.MsgChannelOpenTryResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.MsgChannelOpenTryResponse.decode(new binary_1.BinaryReader(data))); } ChannelOpenAck(request) { const data = exports.MsgChannelOpenAck.encode(request).finish(); const promise = this.rpc.request("ibc.core.channel.v1.Msg", "ChannelOpenAck", data); - return promise.then((data) => exports.MsgChannelOpenAckResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.MsgChannelOpenAckResponse.decode(new binary_1.BinaryReader(data))); } ChannelOpenConfirm(request) { const data = exports.MsgChannelOpenConfirm.encode(request).finish(); const promise = this.rpc.request("ibc.core.channel.v1.Msg", "ChannelOpenConfirm", data); - return promise.then((data) => exports.MsgChannelOpenConfirmResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.MsgChannelOpenConfirmResponse.decode(new binary_1.BinaryReader(data))); } ChannelCloseInit(request) { const data = exports.MsgChannelCloseInit.encode(request).finish(); const promise = this.rpc.request("ibc.core.channel.v1.Msg", "ChannelCloseInit", data); - return promise.then((data) => exports.MsgChannelCloseInitResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.MsgChannelCloseInitResponse.decode(new binary_1.BinaryReader(data))); } ChannelCloseConfirm(request) { const data = exports.MsgChannelCloseConfirm.encode(request).finish(); const promise = this.rpc.request("ibc.core.channel.v1.Msg", "ChannelCloseConfirm", data); - return promise.then((data) => exports.MsgChannelCloseConfirmResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.MsgChannelCloseConfirmResponse.decode(new binary_1.BinaryReader(data))); } RecvPacket(request) { const data = exports.MsgRecvPacket.encode(request).finish(); const promise = this.rpc.request("ibc.core.channel.v1.Msg", "RecvPacket", data); - return promise.then((data) => exports.MsgRecvPacketResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.MsgRecvPacketResponse.decode(new binary_1.BinaryReader(data))); } Timeout(request) { const data = exports.MsgTimeout.encode(request).finish(); const promise = this.rpc.request("ibc.core.channel.v1.Msg", "Timeout", data); - return promise.then((data) => exports.MsgTimeoutResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.MsgTimeoutResponse.decode(new binary_1.BinaryReader(data))); } TimeoutOnClose(request) { const data = exports.MsgTimeoutOnClose.encode(request).finish(); const promise = this.rpc.request("ibc.core.channel.v1.Msg", "TimeoutOnClose", data); - return promise.then((data) => exports.MsgTimeoutOnCloseResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.MsgTimeoutOnCloseResponse.decode(new binary_1.BinaryReader(data))); } Acknowledgement(request) { const data = exports.MsgAcknowledgement.encode(request).finish(); const promise = this.rpc.request("ibc.core.channel.v1.Msg", "Acknowledgement", data); - return promise.then((data) => exports.MsgAcknowledgementResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.MsgAcknowledgementResponse.decode(new binary_1.BinaryReader(data))); } } exports.MsgClientImpl = MsgClientImpl; @@ -88769,35 +85782,12 @@ exports.MsgClientImpl = MsgClientImpl; "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Params = exports.Height = exports.UpgradeProposal = exports.ClientUpdateProposal = exports.ClientConsensusStates = exports.ConsensusStateWithHeight = exports.IdentifiedClientState = exports.protobufPackage = void 0; /* eslint-disable */ const any_1 = __webpack_require__(/*! ../../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); const upgrade_1 = __webpack_require__(/*! ../../../../cosmos/upgrade/v1beta1/upgrade */ "./node_modules/cosmjs-types/cosmos/upgrade/v1beta1/upgrade.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "ibc.core.client.v1"; function createBaseIdentifiedClientState() { @@ -88807,7 +85797,8 @@ function createBaseIdentifiedClientState() { }; } exports.IdentifiedClientState = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.IdentifiedClientState", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.clientId !== "") { writer.uint32(10).string(message.clientId); } @@ -88817,7 +85808,7 @@ exports.IdentifiedClientState = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseIdentifiedClientState(); while (reader.pos < end) { @@ -88837,10 +85828,12 @@ exports.IdentifiedClientState = { return message; }, fromJSON(object) { - return { - clientId: (0, helpers_1.isSet)(object.clientId) ? String(object.clientId) : "", - clientState: (0, helpers_1.isSet)(object.clientState) ? any_1.Any.fromJSON(object.clientState) : undefined, - }; + const obj = createBaseIdentifiedClientState(); + if ((0, helpers_1.isSet)(object.clientId)) + obj.clientId = String(object.clientId); + if ((0, helpers_1.isSet)(object.clientState)) + obj.clientState = any_1.Any.fromJSON(object.clientState); + return obj; }, toJSON(message) { const obj = {}; @@ -88852,21 +85845,21 @@ exports.IdentifiedClientState = { fromPartial(object) { const message = createBaseIdentifiedClientState(); message.clientId = object.clientId ?? ""; - message.clientState = - object.clientState !== undefined && object.clientState !== null - ? any_1.Any.fromPartial(object.clientState) - : undefined; + if (object.clientState !== undefined && object.clientState !== null) { + message.clientState = any_1.Any.fromPartial(object.clientState); + } return message; }, }; function createBaseConsensusStateWithHeight() { return { - height: undefined, + height: exports.Height.fromPartial({}), consensusState: undefined, }; } exports.ConsensusStateWithHeight = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.ConsensusStateWithHeight", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.height !== undefined) { exports.Height.encode(message.height, writer.uint32(10).fork()).ldelim(); } @@ -88876,7 +85869,7 @@ exports.ConsensusStateWithHeight = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseConsensusStateWithHeight(); while (reader.pos < end) { @@ -88896,10 +85889,12 @@ exports.ConsensusStateWithHeight = { return message; }, fromJSON(object) { - return { - height: (0, helpers_1.isSet)(object.height) ? exports.Height.fromJSON(object.height) : undefined, - consensusState: (0, helpers_1.isSet)(object.consensusState) ? any_1.Any.fromJSON(object.consensusState) : undefined, - }; + const obj = createBaseConsensusStateWithHeight(); + if ((0, helpers_1.isSet)(object.height)) + obj.height = exports.Height.fromJSON(object.height); + if ((0, helpers_1.isSet)(object.consensusState)) + obj.consensusState = any_1.Any.fromJSON(object.consensusState); + return obj; }, toJSON(message) { const obj = {}; @@ -88910,12 +85905,12 @@ exports.ConsensusStateWithHeight = { }, fromPartial(object) { const message = createBaseConsensusStateWithHeight(); - message.height = - object.height !== undefined && object.height !== null ? exports.Height.fromPartial(object.height) : undefined; - message.consensusState = - object.consensusState !== undefined && object.consensusState !== null - ? any_1.Any.fromPartial(object.consensusState) - : undefined; + if (object.height !== undefined && object.height !== null) { + message.height = exports.Height.fromPartial(object.height); + } + if (object.consensusState !== undefined && object.consensusState !== null) { + message.consensusState = any_1.Any.fromPartial(object.consensusState); + } return message; }, }; @@ -88926,7 +85921,8 @@ function createBaseClientConsensusStates() { }; } exports.ClientConsensusStates = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.ClientConsensusStates", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.clientId !== "") { writer.uint32(10).string(message.clientId); } @@ -88936,7 +85932,7 @@ exports.ClientConsensusStates = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseClientConsensusStates(); while (reader.pos < end) { @@ -88956,12 +85952,12 @@ exports.ClientConsensusStates = { return message; }, fromJSON(object) { - return { - clientId: (0, helpers_1.isSet)(object.clientId) ? String(object.clientId) : "", - consensusStates: Array.isArray(object?.consensusStates) - ? object.consensusStates.map((e) => exports.ConsensusStateWithHeight.fromJSON(e)) - : [], - }; + const obj = createBaseClientConsensusStates(); + if ((0, helpers_1.isSet)(object.clientId)) + obj.clientId = String(object.clientId); + if (Array.isArray(object?.consensusStates)) + obj.consensusStates = object.consensusStates.map((e) => exports.ConsensusStateWithHeight.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -88991,7 +85987,8 @@ function createBaseClientUpdateProposal() { }; } exports.ClientUpdateProposal = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.ClientUpdateProposal", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.title !== "") { writer.uint32(10).string(message.title); } @@ -89007,7 +86004,7 @@ exports.ClientUpdateProposal = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseClientUpdateProposal(); while (reader.pos < end) { @@ -89033,12 +86030,16 @@ exports.ClientUpdateProposal = { return message; }, fromJSON(object) { - return { - title: (0, helpers_1.isSet)(object.title) ? String(object.title) : "", - description: (0, helpers_1.isSet)(object.description) ? String(object.description) : "", - subjectClientId: (0, helpers_1.isSet)(object.subjectClientId) ? String(object.subjectClientId) : "", - substituteClientId: (0, helpers_1.isSet)(object.substituteClientId) ? String(object.substituteClientId) : "", - }; + const obj = createBaseClientUpdateProposal(); + if ((0, helpers_1.isSet)(object.title)) + obj.title = String(object.title); + if ((0, helpers_1.isSet)(object.description)) + obj.description = String(object.description); + if ((0, helpers_1.isSet)(object.subjectClientId)) + obj.subjectClientId = String(object.subjectClientId); + if ((0, helpers_1.isSet)(object.substituteClientId)) + obj.substituteClientId = String(object.substituteClientId); + return obj; }, toJSON(message) { const obj = {}; @@ -89061,12 +86062,13 @@ function createBaseUpgradeProposal() { return { title: "", description: "", - plan: undefined, + plan: upgrade_1.Plan.fromPartial({}), upgradedClientState: undefined, }; } exports.UpgradeProposal = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.UpgradeProposal", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.title !== "") { writer.uint32(10).string(message.title); } @@ -89082,7 +86084,7 @@ exports.UpgradeProposal = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseUpgradeProposal(); while (reader.pos < end) { @@ -89108,14 +86110,16 @@ exports.UpgradeProposal = { return message; }, fromJSON(object) { - return { - title: (0, helpers_1.isSet)(object.title) ? String(object.title) : "", - description: (0, helpers_1.isSet)(object.description) ? String(object.description) : "", - plan: (0, helpers_1.isSet)(object.plan) ? upgrade_1.Plan.fromJSON(object.plan) : undefined, - upgradedClientState: (0, helpers_1.isSet)(object.upgradedClientState) - ? any_1.Any.fromJSON(object.upgradedClientState) - : undefined, - }; + const obj = createBaseUpgradeProposal(); + if ((0, helpers_1.isSet)(object.title)) + obj.title = String(object.title); + if ((0, helpers_1.isSet)(object.description)) + obj.description = String(object.description); + if ((0, helpers_1.isSet)(object.plan)) + obj.plan = upgrade_1.Plan.fromJSON(object.plan); + if ((0, helpers_1.isSet)(object.upgradedClientState)) + obj.upgradedClientState = any_1.Any.fromJSON(object.upgradedClientState); + return obj; }, toJSON(message) { const obj = {}; @@ -89132,33 +86136,34 @@ exports.UpgradeProposal = { const message = createBaseUpgradeProposal(); message.title = object.title ?? ""; message.description = object.description ?? ""; - message.plan = - object.plan !== undefined && object.plan !== null ? upgrade_1.Plan.fromPartial(object.plan) : undefined; - message.upgradedClientState = - object.upgradedClientState !== undefined && object.upgradedClientState !== null - ? any_1.Any.fromPartial(object.upgradedClientState) - : undefined; + if (object.plan !== undefined && object.plan !== null) { + message.plan = upgrade_1.Plan.fromPartial(object.plan); + } + if (object.upgradedClientState !== undefined && object.upgradedClientState !== null) { + message.upgradedClientState = any_1.Any.fromPartial(object.upgradedClientState); + } return message; }, }; function createBaseHeight() { return { - revisionNumber: helpers_1.Long.UZERO, - revisionHeight: helpers_1.Long.UZERO, + revisionNumber: BigInt(0), + revisionHeight: BigInt(0), }; } exports.Height = { - encode(message, writer = _m0.Writer.create()) { - if (!message.revisionNumber.isZero()) { + typeUrl: "/ibc.core.client.v1.Height", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.revisionNumber !== BigInt(0)) { writer.uint32(8).uint64(message.revisionNumber); } - if (!message.revisionHeight.isZero()) { + if (message.revisionHeight !== BigInt(0)) { writer.uint32(16).uint64(message.revisionHeight); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseHeight(); while (reader.pos < end) { @@ -89178,29 +86183,29 @@ exports.Height = { return message; }, fromJSON(object) { - return { - revisionNumber: (0, helpers_1.isSet)(object.revisionNumber) ? helpers_1.Long.fromValue(object.revisionNumber) : helpers_1.Long.UZERO, - revisionHeight: (0, helpers_1.isSet)(object.revisionHeight) ? helpers_1.Long.fromValue(object.revisionHeight) : helpers_1.Long.UZERO, - }; + const obj = createBaseHeight(); + if ((0, helpers_1.isSet)(object.revisionNumber)) + obj.revisionNumber = BigInt(object.revisionNumber.toString()); + if ((0, helpers_1.isSet)(object.revisionHeight)) + obj.revisionHeight = BigInt(object.revisionHeight.toString()); + return obj; }, toJSON(message) { const obj = {}; message.revisionNumber !== undefined && - (obj.revisionNumber = (message.revisionNumber || helpers_1.Long.UZERO).toString()); + (obj.revisionNumber = (message.revisionNumber || BigInt(0)).toString()); message.revisionHeight !== undefined && - (obj.revisionHeight = (message.revisionHeight || helpers_1.Long.UZERO).toString()); + (obj.revisionHeight = (message.revisionHeight || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseHeight(); - message.revisionNumber = - object.revisionNumber !== undefined && object.revisionNumber !== null - ? helpers_1.Long.fromValue(object.revisionNumber) - : helpers_1.Long.UZERO; - message.revisionHeight = - object.revisionHeight !== undefined && object.revisionHeight !== null - ? helpers_1.Long.fromValue(object.revisionHeight) - : helpers_1.Long.UZERO; + if (object.revisionNumber !== undefined && object.revisionNumber !== null) { + message.revisionNumber = BigInt(object.revisionNumber.toString()); + } + if (object.revisionHeight !== undefined && object.revisionHeight !== null) { + message.revisionHeight = BigInt(object.revisionHeight.toString()); + } return message; }, }; @@ -89210,14 +86215,15 @@ function createBaseParams() { }; } exports.Params = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.Params", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.allowedClients) { writer.uint32(10).string(v); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseParams(); while (reader.pos < end) { @@ -89234,11 +86240,10 @@ exports.Params = { return message; }, fromJSON(object) { - return { - allowedClients: Array.isArray(object?.allowedClients) - ? object.allowedClients.map((e) => String(e)) - : [], - }; + const obj = createBaseParams(); + if (Array.isArray(object?.allowedClients)) + obj.allowedClients = object.allowedClients.map((e) => String(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -89268,36 +86273,13 @@ exports.Params = { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.QueryClientImpl = exports.QueryUpgradedConsensusStateResponse = exports.QueryUpgradedConsensusStateRequest = exports.QueryUpgradedClientStateResponse = exports.QueryUpgradedClientStateRequest = exports.QueryClientParamsResponse = exports.QueryClientParamsRequest = exports.QueryClientStatusResponse = exports.QueryClientStatusRequest = exports.QueryConsensusStateHeightsResponse = exports.QueryConsensusStateHeightsRequest = exports.QueryConsensusStatesResponse = exports.QueryConsensusStatesRequest = exports.QueryConsensusStateResponse = exports.QueryConsensusStateRequest = exports.QueryClientStatesResponse = exports.QueryClientStatesRequest = exports.QueryClientStateResponse = exports.QueryClientStateRequest = exports.protobufPackage = void 0; /* eslint-disable */ const pagination_1 = __webpack_require__(/*! ../../../../cosmos/base/query/v1beta1/pagination */ "./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js"); const any_1 = __webpack_require__(/*! ../../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); const client_1 = __webpack_require__(/*! ./client */ "./node_modules/cosmjs-types/ibc/core/client/v1/client.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "ibc.core.client.v1"; function createBaseQueryClientStateRequest() { @@ -89306,14 +86288,15 @@ function createBaseQueryClientStateRequest() { }; } exports.QueryClientStateRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.QueryClientStateRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.clientId !== "") { writer.uint32(10).string(message.clientId); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryClientStateRequest(); while (reader.pos < end) { @@ -89330,9 +86313,10 @@ exports.QueryClientStateRequest = { return message; }, fromJSON(object) { - return { - clientId: (0, helpers_1.isSet)(object.clientId) ? String(object.clientId) : "", - }; + const obj = createBaseQueryClientStateRequest(); + if ((0, helpers_1.isSet)(object.clientId)) + obj.clientId = String(object.clientId); + return obj; }, toJSON(message) { const obj = {}; @@ -89349,11 +86333,12 @@ function createBaseQueryClientStateResponse() { return { clientState: undefined, proof: new Uint8Array(), - proofHeight: undefined, + proofHeight: client_1.Height.fromPartial({}), }; } exports.QueryClientStateResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.QueryClientStateResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.clientState !== undefined) { any_1.Any.encode(message.clientState, writer.uint32(10).fork()).ldelim(); } @@ -89366,7 +86351,7 @@ exports.QueryClientStateResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryClientStateResponse(); while (reader.pos < end) { @@ -89389,11 +86374,14 @@ exports.QueryClientStateResponse = { return message; }, fromJSON(object) { - return { - clientState: (0, helpers_1.isSet)(object.clientState) ? any_1.Any.fromJSON(object.clientState) : undefined, - proof: (0, helpers_1.isSet)(object.proof) ? (0, helpers_1.bytesFromBase64)(object.proof) : new Uint8Array(), - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - }; + const obj = createBaseQueryClientStateResponse(); + if ((0, helpers_1.isSet)(object.clientState)) + obj.clientState = any_1.Any.fromJSON(object.clientState); + if ((0, helpers_1.isSet)(object.proof)) + obj.proof = (0, helpers_1.bytesFromBase64)(object.proof); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + return obj; }, toJSON(message) { const obj = {}; @@ -89407,15 +86395,13 @@ exports.QueryClientStateResponse = { }, fromPartial(object) { const message = createBaseQueryClientStateResponse(); - message.clientState = - object.clientState !== undefined && object.clientState !== null - ? any_1.Any.fromPartial(object.clientState) - : undefined; + if (object.clientState !== undefined && object.clientState !== null) { + message.clientState = any_1.Any.fromPartial(object.clientState); + } message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); + } return message; }, }; @@ -89425,14 +86411,15 @@ function createBaseQueryClientStatesRequest() { }; } exports.QueryClientStatesRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.QueryClientStatesRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.pagination !== undefined) { pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryClientStatesRequest(); while (reader.pos < end) { @@ -89449,9 +86436,10 @@ exports.QueryClientStatesRequest = { return message; }, fromJSON(object) { - return { - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryClientStatesRequest(); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -89461,10 +86449,9 @@ exports.QueryClientStatesRequest = { }, fromPartial(object) { const message = createBaseQueryClientStatesRequest(); - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } return message; }, }; @@ -89475,7 +86462,8 @@ function createBaseQueryClientStatesResponse() { }; } exports.QueryClientStatesResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.QueryClientStatesResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.clientStates) { client_1.IdentifiedClientState.encode(v, writer.uint32(10).fork()).ldelim(); } @@ -89485,7 +86473,7 @@ exports.QueryClientStatesResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryClientStatesResponse(); while (reader.pos < end) { @@ -89505,12 +86493,12 @@ exports.QueryClientStatesResponse = { return message; }, fromJSON(object) { - return { - clientStates: Array.isArray(object?.clientStates) - ? object.clientStates.map((e) => client_1.IdentifiedClientState.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryClientStatesResponse(); + if (Array.isArray(object?.clientStates)) + obj.clientStates = object.clientStates.map((e) => client_1.IdentifiedClientState.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -89527,30 +86515,30 @@ exports.QueryClientStatesResponse = { fromPartial(object) { const message = createBaseQueryClientStatesResponse(); message.clientStates = object.clientStates?.map((e) => client_1.IdentifiedClientState.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } return message; }, }; function createBaseQueryConsensusStateRequest() { return { clientId: "", - revisionNumber: helpers_1.Long.UZERO, - revisionHeight: helpers_1.Long.UZERO, + revisionNumber: BigInt(0), + revisionHeight: BigInt(0), latestHeight: false, }; } exports.QueryConsensusStateRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.QueryConsensusStateRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.clientId !== "") { writer.uint32(10).string(message.clientId); } - if (!message.revisionNumber.isZero()) { + if (message.revisionNumber !== BigInt(0)) { writer.uint32(16).uint64(message.revisionNumber); } - if (!message.revisionHeight.isZero()) { + if (message.revisionHeight !== BigInt(0)) { writer.uint32(24).uint64(message.revisionHeight); } if (message.latestHeight === true) { @@ -89559,7 +86547,7 @@ exports.QueryConsensusStateRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryConsensusStateRequest(); while (reader.pos < end) { @@ -89585,34 +86573,36 @@ exports.QueryConsensusStateRequest = { return message; }, fromJSON(object) { - return { - clientId: (0, helpers_1.isSet)(object.clientId) ? String(object.clientId) : "", - revisionNumber: (0, helpers_1.isSet)(object.revisionNumber) ? helpers_1.Long.fromValue(object.revisionNumber) : helpers_1.Long.UZERO, - revisionHeight: (0, helpers_1.isSet)(object.revisionHeight) ? helpers_1.Long.fromValue(object.revisionHeight) : helpers_1.Long.UZERO, - latestHeight: (0, helpers_1.isSet)(object.latestHeight) ? Boolean(object.latestHeight) : false, - }; + const obj = createBaseQueryConsensusStateRequest(); + if ((0, helpers_1.isSet)(object.clientId)) + obj.clientId = String(object.clientId); + if ((0, helpers_1.isSet)(object.revisionNumber)) + obj.revisionNumber = BigInt(object.revisionNumber.toString()); + if ((0, helpers_1.isSet)(object.revisionHeight)) + obj.revisionHeight = BigInt(object.revisionHeight.toString()); + if ((0, helpers_1.isSet)(object.latestHeight)) + obj.latestHeight = Boolean(object.latestHeight); + return obj; }, toJSON(message) { const obj = {}; message.clientId !== undefined && (obj.clientId = message.clientId); message.revisionNumber !== undefined && - (obj.revisionNumber = (message.revisionNumber || helpers_1.Long.UZERO).toString()); + (obj.revisionNumber = (message.revisionNumber || BigInt(0)).toString()); message.revisionHeight !== undefined && - (obj.revisionHeight = (message.revisionHeight || helpers_1.Long.UZERO).toString()); + (obj.revisionHeight = (message.revisionHeight || BigInt(0)).toString()); message.latestHeight !== undefined && (obj.latestHeight = message.latestHeight); return obj; }, fromPartial(object) { const message = createBaseQueryConsensusStateRequest(); message.clientId = object.clientId ?? ""; - message.revisionNumber = - object.revisionNumber !== undefined && object.revisionNumber !== null - ? helpers_1.Long.fromValue(object.revisionNumber) - : helpers_1.Long.UZERO; - message.revisionHeight = - object.revisionHeight !== undefined && object.revisionHeight !== null - ? helpers_1.Long.fromValue(object.revisionHeight) - : helpers_1.Long.UZERO; + if (object.revisionNumber !== undefined && object.revisionNumber !== null) { + message.revisionNumber = BigInt(object.revisionNumber.toString()); + } + if (object.revisionHeight !== undefined && object.revisionHeight !== null) { + message.revisionHeight = BigInt(object.revisionHeight.toString()); + } message.latestHeight = object.latestHeight ?? false; return message; }, @@ -89621,11 +86611,12 @@ function createBaseQueryConsensusStateResponse() { return { consensusState: undefined, proof: new Uint8Array(), - proofHeight: undefined, + proofHeight: client_1.Height.fromPartial({}), }; } exports.QueryConsensusStateResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.QueryConsensusStateResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.consensusState !== undefined) { any_1.Any.encode(message.consensusState, writer.uint32(10).fork()).ldelim(); } @@ -89638,7 +86629,7 @@ exports.QueryConsensusStateResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryConsensusStateResponse(); while (reader.pos < end) { @@ -89661,11 +86652,14 @@ exports.QueryConsensusStateResponse = { return message; }, fromJSON(object) { - return { - consensusState: (0, helpers_1.isSet)(object.consensusState) ? any_1.Any.fromJSON(object.consensusState) : undefined, - proof: (0, helpers_1.isSet)(object.proof) ? (0, helpers_1.bytesFromBase64)(object.proof) : new Uint8Array(), - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - }; + const obj = createBaseQueryConsensusStateResponse(); + if ((0, helpers_1.isSet)(object.consensusState)) + obj.consensusState = any_1.Any.fromJSON(object.consensusState); + if ((0, helpers_1.isSet)(object.proof)) + obj.proof = (0, helpers_1.bytesFromBase64)(object.proof); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + return obj; }, toJSON(message) { const obj = {}; @@ -89679,15 +86673,13 @@ exports.QueryConsensusStateResponse = { }, fromPartial(object) { const message = createBaseQueryConsensusStateResponse(); - message.consensusState = - object.consensusState !== undefined && object.consensusState !== null - ? any_1.Any.fromPartial(object.consensusState) - : undefined; + if (object.consensusState !== undefined && object.consensusState !== null) { + message.consensusState = any_1.Any.fromPartial(object.consensusState); + } message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); + } return message; }, }; @@ -89698,7 +86690,8 @@ function createBaseQueryConsensusStatesRequest() { }; } exports.QueryConsensusStatesRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.QueryConsensusStatesRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.clientId !== "") { writer.uint32(10).string(message.clientId); } @@ -89708,7 +86701,7 @@ exports.QueryConsensusStatesRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryConsensusStatesRequest(); while (reader.pos < end) { @@ -89728,10 +86721,12 @@ exports.QueryConsensusStatesRequest = { return message; }, fromJSON(object) { - return { - clientId: (0, helpers_1.isSet)(object.clientId) ? String(object.clientId) : "", - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryConsensusStatesRequest(); + if ((0, helpers_1.isSet)(object.clientId)) + obj.clientId = String(object.clientId); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -89743,10 +86738,9 @@ exports.QueryConsensusStatesRequest = { fromPartial(object) { const message = createBaseQueryConsensusStatesRequest(); message.clientId = object.clientId ?? ""; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } return message; }, }; @@ -89757,7 +86751,8 @@ function createBaseQueryConsensusStatesResponse() { }; } exports.QueryConsensusStatesResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.QueryConsensusStatesResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.consensusStates) { client_1.ConsensusStateWithHeight.encode(v, writer.uint32(10).fork()).ldelim(); } @@ -89767,7 +86762,7 @@ exports.QueryConsensusStatesResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryConsensusStatesResponse(); while (reader.pos < end) { @@ -89787,12 +86782,12 @@ exports.QueryConsensusStatesResponse = { return message; }, fromJSON(object) { - return { - consensusStates: Array.isArray(object?.consensusStates) - ? object.consensusStates.map((e) => client_1.ConsensusStateWithHeight.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryConsensusStatesResponse(); + if (Array.isArray(object?.consensusStates)) + obj.consensusStates = object.consensusStates.map((e) => client_1.ConsensusStateWithHeight.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -89810,10 +86805,9 @@ exports.QueryConsensusStatesResponse = { const message = createBaseQueryConsensusStatesResponse(); message.consensusStates = object.consensusStates?.map((e) => client_1.ConsensusStateWithHeight.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } return message; }, }; @@ -89824,7 +86818,8 @@ function createBaseQueryConsensusStateHeightsRequest() { }; } exports.QueryConsensusStateHeightsRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.QueryConsensusStateHeightsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.clientId !== "") { writer.uint32(10).string(message.clientId); } @@ -89834,7 +86829,7 @@ exports.QueryConsensusStateHeightsRequest = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryConsensusStateHeightsRequest(); while (reader.pos < end) { @@ -89854,10 +86849,12 @@ exports.QueryConsensusStateHeightsRequest = { return message; }, fromJSON(object) { - return { - clientId: (0, helpers_1.isSet)(object.clientId) ? String(object.clientId) : "", - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryConsensusStateHeightsRequest(); + if ((0, helpers_1.isSet)(object.clientId)) + obj.clientId = String(object.clientId); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -89869,10 +86866,9 @@ exports.QueryConsensusStateHeightsRequest = { fromPartial(object) { const message = createBaseQueryConsensusStateHeightsRequest(); message.clientId = object.clientId ?? ""; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } return message; }, }; @@ -89883,7 +86879,8 @@ function createBaseQueryConsensusStateHeightsResponse() { }; } exports.QueryConsensusStateHeightsResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.QueryConsensusStateHeightsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.consensusStateHeights) { client_1.Height.encode(v, writer.uint32(10).fork()).ldelim(); } @@ -89893,7 +86890,7 @@ exports.QueryConsensusStateHeightsResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryConsensusStateHeightsResponse(); while (reader.pos < end) { @@ -89913,12 +86910,12 @@ exports.QueryConsensusStateHeightsResponse = { return message; }, fromJSON(object) { - return { - consensusStateHeights: Array.isArray(object?.consensusStateHeights) - ? object.consensusStateHeights.map((e) => client_1.Height.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryConsensusStateHeightsResponse(); + if (Array.isArray(object?.consensusStateHeights)) + obj.consensusStateHeights = object.consensusStateHeights.map((e) => client_1.Height.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -89935,10 +86932,9 @@ exports.QueryConsensusStateHeightsResponse = { fromPartial(object) { const message = createBaseQueryConsensusStateHeightsResponse(); message.consensusStateHeights = object.consensusStateHeights?.map((e) => client_1.Height.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } return message; }, }; @@ -89948,14 +86944,15 @@ function createBaseQueryClientStatusRequest() { }; } exports.QueryClientStatusRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.QueryClientStatusRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.clientId !== "") { writer.uint32(10).string(message.clientId); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryClientStatusRequest(); while (reader.pos < end) { @@ -89972,9 +86969,10 @@ exports.QueryClientStatusRequest = { return message; }, fromJSON(object) { - return { - clientId: (0, helpers_1.isSet)(object.clientId) ? String(object.clientId) : "", - }; + const obj = createBaseQueryClientStatusRequest(); + if ((0, helpers_1.isSet)(object.clientId)) + obj.clientId = String(object.clientId); + return obj; }, toJSON(message) { const obj = {}; @@ -89993,14 +86991,15 @@ function createBaseQueryClientStatusResponse() { }; } exports.QueryClientStatusResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.QueryClientStatusResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.status !== "") { writer.uint32(10).string(message.status); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryClientStatusResponse(); while (reader.pos < end) { @@ -90017,9 +87016,10 @@ exports.QueryClientStatusResponse = { return message; }, fromJSON(object) { - return { - status: (0, helpers_1.isSet)(object.status) ? String(object.status) : "", - }; + const obj = createBaseQueryClientStatusResponse(); + if ((0, helpers_1.isSet)(object.status)) + obj.status = String(object.status); + return obj; }, toJSON(message) { const obj = {}; @@ -90036,11 +87036,12 @@ function createBaseQueryClientParamsRequest() { return {}; } exports.QueryClientParamsRequest = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.QueryClientParamsRequest", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryClientParamsRequest(); while (reader.pos < end) { @@ -90054,7 +87055,8 @@ exports.QueryClientParamsRequest = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseQueryClientParamsRequest(); + return obj; }, toJSON(_) { const obj = {}; @@ -90071,14 +87073,15 @@ function createBaseQueryClientParamsResponse() { }; } exports.QueryClientParamsResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.QueryClientParamsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.params !== undefined) { client_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryClientParamsResponse(); while (reader.pos < end) { @@ -90095,9 +87098,10 @@ exports.QueryClientParamsResponse = { return message; }, fromJSON(object) { - return { - params: (0, helpers_1.isSet)(object.params) ? client_1.Params.fromJSON(object.params) : undefined, - }; + const obj = createBaseQueryClientParamsResponse(); + if ((0, helpers_1.isSet)(object.params)) + obj.params = client_1.Params.fromJSON(object.params); + return obj; }, toJSON(message) { const obj = {}; @@ -90106,8 +87110,9 @@ exports.QueryClientParamsResponse = { }, fromPartial(object) { const message = createBaseQueryClientParamsResponse(); - message.params = - object.params !== undefined && object.params !== null ? client_1.Params.fromPartial(object.params) : undefined; + if (object.params !== undefined && object.params !== null) { + message.params = client_1.Params.fromPartial(object.params); + } return message; }, }; @@ -90115,11 +87120,12 @@ function createBaseQueryUpgradedClientStateRequest() { return {}; } exports.QueryUpgradedClientStateRequest = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.QueryUpgradedClientStateRequest", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryUpgradedClientStateRequest(); while (reader.pos < end) { @@ -90133,7 +87139,8 @@ exports.QueryUpgradedClientStateRequest = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseQueryUpgradedClientStateRequest(); + return obj; }, toJSON(_) { const obj = {}; @@ -90150,14 +87157,15 @@ function createBaseQueryUpgradedClientStateResponse() { }; } exports.QueryUpgradedClientStateResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.QueryUpgradedClientStateResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.upgradedClientState !== undefined) { any_1.Any.encode(message.upgradedClientState, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryUpgradedClientStateResponse(); while (reader.pos < end) { @@ -90174,11 +87182,10 @@ exports.QueryUpgradedClientStateResponse = { return message; }, fromJSON(object) { - return { - upgradedClientState: (0, helpers_1.isSet)(object.upgradedClientState) - ? any_1.Any.fromJSON(object.upgradedClientState) - : undefined, - }; + const obj = createBaseQueryUpgradedClientStateResponse(); + if ((0, helpers_1.isSet)(object.upgradedClientState)) + obj.upgradedClientState = any_1.Any.fromJSON(object.upgradedClientState); + return obj; }, toJSON(message) { const obj = {}; @@ -90190,10 +87197,9 @@ exports.QueryUpgradedClientStateResponse = { }, fromPartial(object) { const message = createBaseQueryUpgradedClientStateResponse(); - message.upgradedClientState = - object.upgradedClientState !== undefined && object.upgradedClientState !== null - ? any_1.Any.fromPartial(object.upgradedClientState) - : undefined; + if (object.upgradedClientState !== undefined && object.upgradedClientState !== null) { + message.upgradedClientState = any_1.Any.fromPartial(object.upgradedClientState); + } return message; }, }; @@ -90201,11 +87207,12 @@ function createBaseQueryUpgradedConsensusStateRequest() { return {}; } exports.QueryUpgradedConsensusStateRequest = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.QueryUpgradedConsensusStateRequest", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryUpgradedConsensusStateRequest(); while (reader.pos < end) { @@ -90219,7 +87226,8 @@ exports.QueryUpgradedConsensusStateRequest = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseQueryUpgradedConsensusStateRequest(); + return obj; }, toJSON(_) { const obj = {}; @@ -90236,14 +87244,15 @@ function createBaseQueryUpgradedConsensusStateResponse() { }; } exports.QueryUpgradedConsensusStateResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.QueryUpgradedConsensusStateResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.upgradedConsensusState !== undefined) { any_1.Any.encode(message.upgradedConsensusState, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryUpgradedConsensusStateResponse(); while (reader.pos < end) { @@ -90260,11 +87269,10 @@ exports.QueryUpgradedConsensusStateResponse = { return message; }, fromJSON(object) { - return { - upgradedConsensusState: (0, helpers_1.isSet)(object.upgradedConsensusState) - ? any_1.Any.fromJSON(object.upgradedConsensusState) - : undefined, - }; + const obj = createBaseQueryUpgradedConsensusStateResponse(); + if ((0, helpers_1.isSet)(object.upgradedConsensusState)) + obj.upgradedConsensusState = any_1.Any.fromJSON(object.upgradedConsensusState); + return obj; }, toJSON(message) { const obj = {}; @@ -90276,10 +87284,9 @@ exports.QueryUpgradedConsensusStateResponse = { }, fromPartial(object) { const message = createBaseQueryUpgradedConsensusStateResponse(); - message.upgradedConsensusState = - object.upgradedConsensusState !== undefined && object.upgradedConsensusState !== null - ? any_1.Any.fromPartial(object.upgradedConsensusState) - : undefined; + if (object.upgradedConsensusState !== undefined && object.upgradedConsensusState !== null) { + message.upgradedConsensusState = any_1.Any.fromPartial(object.upgradedConsensusState); + } return message; }, }; @@ -90299,49 +87306,49 @@ class QueryClientImpl { ClientState(request) { const data = exports.QueryClientStateRequest.encode(request).finish(); const promise = this.rpc.request("ibc.core.client.v1.Query", "ClientState", data); - return promise.then((data) => exports.QueryClientStateResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryClientStateResponse.decode(new binary_1.BinaryReader(data))); } ClientStates(request = { - pagination: undefined, + pagination: pagination_1.PageRequest.fromPartial({}), }) { const data = exports.QueryClientStatesRequest.encode(request).finish(); const promise = this.rpc.request("ibc.core.client.v1.Query", "ClientStates", data); - return promise.then((data) => exports.QueryClientStatesResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryClientStatesResponse.decode(new binary_1.BinaryReader(data))); } ConsensusState(request) { const data = exports.QueryConsensusStateRequest.encode(request).finish(); const promise = this.rpc.request("ibc.core.client.v1.Query", "ConsensusState", data); - return promise.then((data) => exports.QueryConsensusStateResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryConsensusStateResponse.decode(new binary_1.BinaryReader(data))); } ConsensusStates(request) { const data = exports.QueryConsensusStatesRequest.encode(request).finish(); const promise = this.rpc.request("ibc.core.client.v1.Query", "ConsensusStates", data); - return promise.then((data) => exports.QueryConsensusStatesResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryConsensusStatesResponse.decode(new binary_1.BinaryReader(data))); } ConsensusStateHeights(request) { const data = exports.QueryConsensusStateHeightsRequest.encode(request).finish(); const promise = this.rpc.request("ibc.core.client.v1.Query", "ConsensusStateHeights", data); - return promise.then((data) => exports.QueryConsensusStateHeightsResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryConsensusStateHeightsResponse.decode(new binary_1.BinaryReader(data))); } ClientStatus(request) { const data = exports.QueryClientStatusRequest.encode(request).finish(); const promise = this.rpc.request("ibc.core.client.v1.Query", "ClientStatus", data); - return promise.then((data) => exports.QueryClientStatusResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryClientStatusResponse.decode(new binary_1.BinaryReader(data))); } ClientParams(request = {}) { const data = exports.QueryClientParamsRequest.encode(request).finish(); const promise = this.rpc.request("ibc.core.client.v1.Query", "ClientParams", data); - return promise.then((data) => exports.QueryClientParamsResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryClientParamsResponse.decode(new binary_1.BinaryReader(data))); } UpgradedClientState(request = {}) { const data = exports.QueryUpgradedClientStateRequest.encode(request).finish(); const promise = this.rpc.request("ibc.core.client.v1.Query", "UpgradedClientState", data); - return promise.then((data) => exports.QueryUpgradedClientStateResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryUpgradedClientStateResponse.decode(new binary_1.BinaryReader(data))); } UpgradedConsensusState(request = {}) { const data = exports.QueryUpgradedConsensusStateRequest.encode(request).finish(); const promise = this.rpc.request("ibc.core.client.v1.Query", "UpgradedConsensusState", data); - return promise.then((data) => exports.QueryUpgradedConsensusStateResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.QueryUpgradedConsensusStateResponse.decode(new binary_1.BinaryReader(data))); } } exports.QueryClientImpl = QueryClientImpl; @@ -90353,38 +87360,15 @@ exports.QueryClientImpl = QueryClientImpl; /*!************************************************************!*\ !*** ./node_modules/cosmjs-types/ibc/core/client/v1/tx.js ***! \************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + Object.defineProperty(exports, "__esModule", ({ value: true })); exports.MsgClientImpl = exports.MsgSubmitMisbehaviourResponse = exports.MsgSubmitMisbehaviour = exports.MsgUpgradeClientResponse = exports.MsgUpgradeClient = exports.MsgUpdateClientResponse = exports.MsgUpdateClient = exports.MsgCreateClientResponse = exports.MsgCreateClient = exports.protobufPackage = void 0; /* eslint-disable */ const any_1 = __webpack_require__(/*! ../../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "ibc.core.client.v1"; function createBaseMsgCreateClient() { @@ -90395,7 +87379,8 @@ function createBaseMsgCreateClient() { }; } exports.MsgCreateClient = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.MsgCreateClient", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.clientState !== undefined) { any_1.Any.encode(message.clientState, writer.uint32(10).fork()).ldelim(); } @@ -90408,7 +87393,7 @@ exports.MsgCreateClient = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgCreateClient(); while (reader.pos < end) { @@ -90431,11 +87416,14 @@ exports.MsgCreateClient = { return message; }, fromJSON(object) { - return { - clientState: (0, helpers_1.isSet)(object.clientState) ? any_1.Any.fromJSON(object.clientState) : undefined, - consensusState: (0, helpers_1.isSet)(object.consensusState) ? any_1.Any.fromJSON(object.consensusState) : undefined, - signer: (0, helpers_1.isSet)(object.signer) ? String(object.signer) : "", - }; + const obj = createBaseMsgCreateClient(); + if ((0, helpers_1.isSet)(object.clientState)) + obj.clientState = any_1.Any.fromJSON(object.clientState); + if ((0, helpers_1.isSet)(object.consensusState)) + obj.consensusState = any_1.Any.fromJSON(object.consensusState); + if ((0, helpers_1.isSet)(object.signer)) + obj.signer = String(object.signer); + return obj; }, toJSON(message) { const obj = {}; @@ -90448,14 +87436,12 @@ exports.MsgCreateClient = { }, fromPartial(object) { const message = createBaseMsgCreateClient(); - message.clientState = - object.clientState !== undefined && object.clientState !== null - ? any_1.Any.fromPartial(object.clientState) - : undefined; - message.consensusState = - object.consensusState !== undefined && object.consensusState !== null - ? any_1.Any.fromPartial(object.consensusState) - : undefined; + if (object.clientState !== undefined && object.clientState !== null) { + message.clientState = any_1.Any.fromPartial(object.clientState); + } + if (object.consensusState !== undefined && object.consensusState !== null) { + message.consensusState = any_1.Any.fromPartial(object.consensusState); + } message.signer = object.signer ?? ""; return message; }, @@ -90464,11 +87450,12 @@ function createBaseMsgCreateClientResponse() { return {}; } exports.MsgCreateClientResponse = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.MsgCreateClientResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgCreateClientResponse(); while (reader.pos < end) { @@ -90482,7 +87469,8 @@ exports.MsgCreateClientResponse = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseMsgCreateClientResponse(); + return obj; }, toJSON(_) { const obj = {}; @@ -90496,17 +87484,18 @@ exports.MsgCreateClientResponse = { function createBaseMsgUpdateClient() { return { clientId: "", - header: undefined, + clientMessage: undefined, signer: "", }; } exports.MsgUpdateClient = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.MsgUpdateClient", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.clientId !== "") { writer.uint32(10).string(message.clientId); } - if (message.header !== undefined) { - any_1.Any.encode(message.header, writer.uint32(18).fork()).ldelim(); + if (message.clientMessage !== undefined) { + any_1.Any.encode(message.clientMessage, writer.uint32(18).fork()).ldelim(); } if (message.signer !== "") { writer.uint32(26).string(message.signer); @@ -90514,7 +87503,7 @@ exports.MsgUpdateClient = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgUpdateClient(); while (reader.pos < end) { @@ -90524,7 +87513,7 @@ exports.MsgUpdateClient = { message.clientId = reader.string(); break; case 2: - message.header = any_1.Any.decode(reader, reader.uint32()); + message.clientMessage = any_1.Any.decode(reader, reader.uint32()); break; case 3: message.signer = reader.string(); @@ -90537,24 +87526,29 @@ exports.MsgUpdateClient = { return message; }, fromJSON(object) { - return { - clientId: (0, helpers_1.isSet)(object.clientId) ? String(object.clientId) : "", - header: (0, helpers_1.isSet)(object.header) ? any_1.Any.fromJSON(object.header) : undefined, - signer: (0, helpers_1.isSet)(object.signer) ? String(object.signer) : "", - }; + const obj = createBaseMsgUpdateClient(); + if ((0, helpers_1.isSet)(object.clientId)) + obj.clientId = String(object.clientId); + if ((0, helpers_1.isSet)(object.clientMessage)) + obj.clientMessage = any_1.Any.fromJSON(object.clientMessage); + if ((0, helpers_1.isSet)(object.signer)) + obj.signer = String(object.signer); + return obj; }, toJSON(message) { const obj = {}; message.clientId !== undefined && (obj.clientId = message.clientId); - message.header !== undefined && (obj.header = message.header ? any_1.Any.toJSON(message.header) : undefined); + message.clientMessage !== undefined && + (obj.clientMessage = message.clientMessage ? any_1.Any.toJSON(message.clientMessage) : undefined); message.signer !== undefined && (obj.signer = message.signer); return obj; }, fromPartial(object) { const message = createBaseMsgUpdateClient(); message.clientId = object.clientId ?? ""; - message.header = - object.header !== undefined && object.header !== null ? any_1.Any.fromPartial(object.header) : undefined; + if (object.clientMessage !== undefined && object.clientMessage !== null) { + message.clientMessage = any_1.Any.fromPartial(object.clientMessage); + } message.signer = object.signer ?? ""; return message; }, @@ -90563,11 +87557,12 @@ function createBaseMsgUpdateClientResponse() { return {}; } exports.MsgUpdateClientResponse = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.MsgUpdateClientResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgUpdateClientResponse(); while (reader.pos < end) { @@ -90581,7 +87576,8 @@ exports.MsgUpdateClientResponse = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseMsgUpdateClientResponse(); + return obj; }, toJSON(_) { const obj = {}; @@ -90603,7 +87599,8 @@ function createBaseMsgUpgradeClient() { }; } exports.MsgUpgradeClient = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.MsgUpgradeClient", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.clientId !== "") { writer.uint32(10).string(message.clientId); } @@ -90625,7 +87622,7 @@ exports.MsgUpgradeClient = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgUpgradeClient(); while (reader.pos < end) { @@ -90657,18 +87654,20 @@ exports.MsgUpgradeClient = { return message; }, fromJSON(object) { - return { - clientId: (0, helpers_1.isSet)(object.clientId) ? String(object.clientId) : "", - clientState: (0, helpers_1.isSet)(object.clientState) ? any_1.Any.fromJSON(object.clientState) : undefined, - consensusState: (0, helpers_1.isSet)(object.consensusState) ? any_1.Any.fromJSON(object.consensusState) : undefined, - proofUpgradeClient: (0, helpers_1.isSet)(object.proofUpgradeClient) - ? (0, helpers_1.bytesFromBase64)(object.proofUpgradeClient) - : new Uint8Array(), - proofUpgradeConsensusState: (0, helpers_1.isSet)(object.proofUpgradeConsensusState) - ? (0, helpers_1.bytesFromBase64)(object.proofUpgradeConsensusState) - : new Uint8Array(), - signer: (0, helpers_1.isSet)(object.signer) ? String(object.signer) : "", - }; + const obj = createBaseMsgUpgradeClient(); + if ((0, helpers_1.isSet)(object.clientId)) + obj.clientId = String(object.clientId); + if ((0, helpers_1.isSet)(object.clientState)) + obj.clientState = any_1.Any.fromJSON(object.clientState); + if ((0, helpers_1.isSet)(object.consensusState)) + obj.consensusState = any_1.Any.fromJSON(object.consensusState); + if ((0, helpers_1.isSet)(object.proofUpgradeClient)) + obj.proofUpgradeClient = (0, helpers_1.bytesFromBase64)(object.proofUpgradeClient); + if ((0, helpers_1.isSet)(object.proofUpgradeConsensusState)) + obj.proofUpgradeConsensusState = (0, helpers_1.bytesFromBase64)(object.proofUpgradeConsensusState); + if ((0, helpers_1.isSet)(object.signer)) + obj.signer = String(object.signer); + return obj; }, toJSON(message) { const obj = {}; @@ -90689,14 +87688,12 @@ exports.MsgUpgradeClient = { fromPartial(object) { const message = createBaseMsgUpgradeClient(); message.clientId = object.clientId ?? ""; - message.clientState = - object.clientState !== undefined && object.clientState !== null - ? any_1.Any.fromPartial(object.clientState) - : undefined; - message.consensusState = - object.consensusState !== undefined && object.consensusState !== null - ? any_1.Any.fromPartial(object.consensusState) - : undefined; + if (object.clientState !== undefined && object.clientState !== null) { + message.clientState = any_1.Any.fromPartial(object.clientState); + } + if (object.consensusState !== undefined && object.consensusState !== null) { + message.consensusState = any_1.Any.fromPartial(object.consensusState); + } message.proofUpgradeClient = object.proofUpgradeClient ?? new Uint8Array(); message.proofUpgradeConsensusState = object.proofUpgradeConsensusState ?? new Uint8Array(); message.signer = object.signer ?? ""; @@ -90707,11 +87704,12 @@ function createBaseMsgUpgradeClientResponse() { return {}; } exports.MsgUpgradeClientResponse = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.MsgUpgradeClientResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgUpgradeClientResponse(); while (reader.pos < end) { @@ -90725,7 +87723,8 @@ exports.MsgUpgradeClientResponse = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseMsgUpgradeClientResponse(); + return obj; }, toJSON(_) { const obj = {}; @@ -90744,7 +87743,8 @@ function createBaseMsgSubmitMisbehaviour() { }; } exports.MsgSubmitMisbehaviour = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.MsgSubmitMisbehaviour", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.clientId !== "") { writer.uint32(10).string(message.clientId); } @@ -90757,7 +87757,7 @@ exports.MsgSubmitMisbehaviour = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgSubmitMisbehaviour(); while (reader.pos < end) { @@ -90780,11 +87780,14 @@ exports.MsgSubmitMisbehaviour = { return message; }, fromJSON(object) { - return { - clientId: (0, helpers_1.isSet)(object.clientId) ? String(object.clientId) : "", - misbehaviour: (0, helpers_1.isSet)(object.misbehaviour) ? any_1.Any.fromJSON(object.misbehaviour) : undefined, - signer: (0, helpers_1.isSet)(object.signer) ? String(object.signer) : "", - }; + const obj = createBaseMsgSubmitMisbehaviour(); + if ((0, helpers_1.isSet)(object.clientId)) + obj.clientId = String(object.clientId); + if ((0, helpers_1.isSet)(object.misbehaviour)) + obj.misbehaviour = any_1.Any.fromJSON(object.misbehaviour); + if ((0, helpers_1.isSet)(object.signer)) + obj.signer = String(object.signer); + return obj; }, toJSON(message) { const obj = {}; @@ -90797,10 +87800,9 @@ exports.MsgSubmitMisbehaviour = { fromPartial(object) { const message = createBaseMsgSubmitMisbehaviour(); message.clientId = object.clientId ?? ""; - message.misbehaviour = - object.misbehaviour !== undefined && object.misbehaviour !== null - ? any_1.Any.fromPartial(object.misbehaviour) - : undefined; + if (object.misbehaviour !== undefined && object.misbehaviour !== null) { + message.misbehaviour = any_1.Any.fromPartial(object.misbehaviour); + } message.signer = object.signer ?? ""; return message; }, @@ -90809,11 +87811,12 @@ function createBaseMsgSubmitMisbehaviourResponse() { return {}; } exports.MsgSubmitMisbehaviourResponse = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.client.v1.MsgSubmitMisbehaviourResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMsgSubmitMisbehaviourResponse(); while (reader.pos < end) { @@ -90827,7 +87830,8 @@ exports.MsgSubmitMisbehaviourResponse = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseMsgSubmitMisbehaviourResponse(); + return obj; }, toJSON(_) { const obj = {}; @@ -90849,22 +87853,22 @@ class MsgClientImpl { CreateClient(request) { const data = exports.MsgCreateClient.encode(request).finish(); const promise = this.rpc.request("ibc.core.client.v1.Msg", "CreateClient", data); - return promise.then((data) => exports.MsgCreateClientResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.MsgCreateClientResponse.decode(new binary_1.BinaryReader(data))); } UpdateClient(request) { const data = exports.MsgUpdateClient.encode(request).finish(); const promise = this.rpc.request("ibc.core.client.v1.Msg", "UpdateClient", data); - return promise.then((data) => exports.MsgUpdateClientResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.MsgUpdateClientResponse.decode(new binary_1.BinaryReader(data))); } UpgradeClient(request) { const data = exports.MsgUpgradeClient.encode(request).finish(); const promise = this.rpc.request("ibc.core.client.v1.Msg", "UpgradeClient", data); - return promise.then((data) => exports.MsgUpgradeClientResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.MsgUpgradeClientResponse.decode(new binary_1.BinaryReader(data))); } SubmitMisbehaviour(request) { const data = exports.MsgSubmitMisbehaviour.encode(request).finish(); const promise = this.rpc.request("ibc.core.client.v1.Msg", "SubmitMisbehaviour", data); - return promise.then((data) => exports.MsgSubmitMisbehaviourResponse.decode(new _m0.Reader(data))); + return promise.then((data) => exports.MsgSubmitMisbehaviourResponse.decode(new binary_1.BinaryReader(data))); } } exports.MsgClientImpl = MsgClientImpl; @@ -90880,34 +87884,11 @@ exports.MsgClientImpl = MsgClientImpl; "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.MerkleProof = exports.MerklePath = exports.MerklePrefix = exports.MerkleRoot = exports.protobufPackage = void 0; /* eslint-disable */ -const proofs_1 = __webpack_require__(/*! ../../../../proofs */ "./node_modules/cosmjs-types/proofs.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const proofs_1 = __webpack_require__(/*! ../../../../cosmos/ics23/v1/proofs */ "./node_modules/cosmjs-types/cosmos/ics23/v1/proofs.js"); +const binary_1 = __webpack_require__(/*! ../../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "ibc.core.commitment.v1"; function createBaseMerkleRoot() { @@ -90916,14 +87897,15 @@ function createBaseMerkleRoot() { }; } exports.MerkleRoot = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.commitment.v1.MerkleRoot", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.hash.length !== 0) { writer.uint32(10).bytes(message.hash); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMerkleRoot(); while (reader.pos < end) { @@ -90940,9 +87922,10 @@ exports.MerkleRoot = { return message; }, fromJSON(object) { - return { - hash: (0, helpers_1.isSet)(object.hash) ? (0, helpers_1.bytesFromBase64)(object.hash) : new Uint8Array(), - }; + const obj = createBaseMerkleRoot(); + if ((0, helpers_1.isSet)(object.hash)) + obj.hash = (0, helpers_1.bytesFromBase64)(object.hash); + return obj; }, toJSON(message) { const obj = {}; @@ -90962,14 +87945,15 @@ function createBaseMerklePrefix() { }; } exports.MerklePrefix = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.commitment.v1.MerklePrefix", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.keyPrefix.length !== 0) { writer.uint32(10).bytes(message.keyPrefix); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMerklePrefix(); while (reader.pos < end) { @@ -90986,9 +87970,10 @@ exports.MerklePrefix = { return message; }, fromJSON(object) { - return { - keyPrefix: (0, helpers_1.isSet)(object.keyPrefix) ? (0, helpers_1.bytesFromBase64)(object.keyPrefix) : new Uint8Array(), - }; + const obj = createBaseMerklePrefix(); + if ((0, helpers_1.isSet)(object.keyPrefix)) + obj.keyPrefix = (0, helpers_1.bytesFromBase64)(object.keyPrefix); + return obj; }, toJSON(message) { const obj = {}; @@ -91008,14 +87993,15 @@ function createBaseMerklePath() { }; } exports.MerklePath = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.commitment.v1.MerklePath", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.keyPath) { writer.uint32(10).string(v); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMerklePath(); while (reader.pos < end) { @@ -91032,9 +88018,10 @@ exports.MerklePath = { return message; }, fromJSON(object) { - return { - keyPath: Array.isArray(object?.keyPath) ? object.keyPath.map((e) => String(e)) : [], - }; + const obj = createBaseMerklePath(); + if (Array.isArray(object?.keyPath)) + obj.keyPath = object.keyPath.map((e) => String(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -91058,14 +88045,15 @@ function createBaseMerkleProof() { }; } exports.MerkleProof = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.commitment.v1.MerkleProof", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.proofs) { proofs_1.CommitmentProof.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMerkleProof(); while (reader.pos < end) { @@ -91082,9 +88070,10 @@ exports.MerkleProof = { return message; }, fromJSON(object) { - return { - proofs: Array.isArray(object?.proofs) ? object.proofs.map((e) => proofs_1.CommitmentProof.fromJSON(e)) : [], - }; + const obj = createBaseMerkleProof(); + if (Array.isArray(object?.proofs)) + obj.proofs = object.proofs.map((e) => proofs_1.CommitmentProof.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -91114,35 +88103,12 @@ exports.MerkleProof = { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Params = exports.Version = exports.ConnectionPaths = exports.ClientPaths = exports.Counterparty = exports.IdentifiedConnection = exports.ConnectionEnd = exports.stateToJSON = exports.stateFromJSON = exports.State = exports.protobufPackage = void 0; /* eslint-disable */ const commitment_1 = __webpack_require__(/*! ../../commitment/v1/commitment */ "./node_modules/cosmjs-types/ibc/core/commitment/v1/commitment.js"); +const binary_1 = __webpack_require__(/*! ../../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); exports.protobufPackage = "ibc.core.connection.v1"; /** * State defines if a connection is in one of the following states: @@ -91162,7 +88128,7 @@ var State; /** STATE_OPEN - A connection end has completed the handshake. */ State[State["STATE_OPEN"] = 3] = "STATE_OPEN"; State[State["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(State = exports.State || (exports.State = {})); +})(State || (exports.State = State = {})); function stateFromJSON(object) { switch (object) { case 0: @@ -91205,12 +88171,13 @@ function createBaseConnectionEnd() { clientId: "", versions: [], state: 0, - counterparty: undefined, - delayPeriod: helpers_1.Long.UZERO, + counterparty: exports.Counterparty.fromPartial({}), + delayPeriod: BigInt(0), }; } exports.ConnectionEnd = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.connection.v1.ConnectionEnd", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.clientId !== "") { writer.uint32(10).string(message.clientId); } @@ -91223,13 +88190,13 @@ exports.ConnectionEnd = { if (message.counterparty !== undefined) { exports.Counterparty.encode(message.counterparty, writer.uint32(34).fork()).ldelim(); } - if (!message.delayPeriod.isZero()) { + if (message.delayPeriod !== BigInt(0)) { writer.uint32(40).uint64(message.delayPeriod); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseConnectionEnd(); while (reader.pos < end) { @@ -91258,13 +88225,18 @@ exports.ConnectionEnd = { return message; }, fromJSON(object) { - return { - clientId: (0, helpers_1.isSet)(object.clientId) ? String(object.clientId) : "", - versions: Array.isArray(object?.versions) ? object.versions.map((e) => exports.Version.fromJSON(e)) : [], - state: (0, helpers_1.isSet)(object.state) ? stateFromJSON(object.state) : 0, - counterparty: (0, helpers_1.isSet)(object.counterparty) ? exports.Counterparty.fromJSON(object.counterparty) : undefined, - delayPeriod: (0, helpers_1.isSet)(object.delayPeriod) ? helpers_1.Long.fromValue(object.delayPeriod) : helpers_1.Long.UZERO, - }; + const obj = createBaseConnectionEnd(); + if ((0, helpers_1.isSet)(object.clientId)) + obj.clientId = String(object.clientId); + if (Array.isArray(object?.versions)) + obj.versions = object.versions.map((e) => exports.Version.fromJSON(e)); + if ((0, helpers_1.isSet)(object.state)) + obj.state = stateFromJSON(object.state); + if ((0, helpers_1.isSet)(object.counterparty)) + obj.counterparty = exports.Counterparty.fromJSON(object.counterparty); + if ((0, helpers_1.isSet)(object.delayPeriod)) + obj.delayPeriod = BigInt(object.delayPeriod.toString()); + return obj; }, toJSON(message) { const obj = {}; @@ -91278,7 +88250,7 @@ exports.ConnectionEnd = { message.state !== undefined && (obj.state = stateToJSON(message.state)); message.counterparty !== undefined && (obj.counterparty = message.counterparty ? exports.Counterparty.toJSON(message.counterparty) : undefined); - message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || helpers_1.Long.UZERO).toString()); + message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || BigInt(0)).toString()); return obj; }, fromPartial(object) { @@ -91286,14 +88258,12 @@ exports.ConnectionEnd = { message.clientId = object.clientId ?? ""; message.versions = object.versions?.map((e) => exports.Version.fromPartial(e)) || []; message.state = object.state ?? 0; - message.counterparty = - object.counterparty !== undefined && object.counterparty !== null - ? exports.Counterparty.fromPartial(object.counterparty) - : undefined; - message.delayPeriod = - object.delayPeriod !== undefined && object.delayPeriod !== null - ? helpers_1.Long.fromValue(object.delayPeriod) - : helpers_1.Long.UZERO; + if (object.counterparty !== undefined && object.counterparty !== null) { + message.counterparty = exports.Counterparty.fromPartial(object.counterparty); + } + if (object.delayPeriod !== undefined && object.delayPeriod !== null) { + message.delayPeriod = BigInt(object.delayPeriod.toString()); + } return message; }, }; @@ -91303,12 +88273,13 @@ function createBaseIdentifiedConnection() { clientId: "", versions: [], state: 0, - counterparty: undefined, - delayPeriod: helpers_1.Long.UZERO, + counterparty: exports.Counterparty.fromPartial({}), + delayPeriod: BigInt(0), }; } exports.IdentifiedConnection = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.connection.v1.IdentifiedConnection", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.id !== "") { writer.uint32(10).string(message.id); } @@ -91324,13 +88295,13 @@ exports.IdentifiedConnection = { if (message.counterparty !== undefined) { exports.Counterparty.encode(message.counterparty, writer.uint32(42).fork()).ldelim(); } - if (!message.delayPeriod.isZero()) { + if (message.delayPeriod !== BigInt(0)) { writer.uint32(48).uint64(message.delayPeriod); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseIdentifiedConnection(); while (reader.pos < end) { @@ -91362,14 +88333,20 @@ exports.IdentifiedConnection = { return message; }, fromJSON(object) { - return { - id: (0, helpers_1.isSet)(object.id) ? String(object.id) : "", - clientId: (0, helpers_1.isSet)(object.clientId) ? String(object.clientId) : "", - versions: Array.isArray(object?.versions) ? object.versions.map((e) => exports.Version.fromJSON(e)) : [], - state: (0, helpers_1.isSet)(object.state) ? stateFromJSON(object.state) : 0, - counterparty: (0, helpers_1.isSet)(object.counterparty) ? exports.Counterparty.fromJSON(object.counterparty) : undefined, - delayPeriod: (0, helpers_1.isSet)(object.delayPeriod) ? helpers_1.Long.fromValue(object.delayPeriod) : helpers_1.Long.UZERO, - }; + const obj = createBaseIdentifiedConnection(); + if ((0, helpers_1.isSet)(object.id)) + obj.id = String(object.id); + if ((0, helpers_1.isSet)(object.clientId)) + obj.clientId = String(object.clientId); + if (Array.isArray(object?.versions)) + obj.versions = object.versions.map((e) => exports.Version.fromJSON(e)); + if ((0, helpers_1.isSet)(object.state)) + obj.state = stateFromJSON(object.state); + if ((0, helpers_1.isSet)(object.counterparty)) + obj.counterparty = exports.Counterparty.fromJSON(object.counterparty); + if ((0, helpers_1.isSet)(object.delayPeriod)) + obj.delayPeriod = BigInt(object.delayPeriod.toString()); + return obj; }, toJSON(message) { const obj = {}; @@ -91384,7 +88361,7 @@ exports.IdentifiedConnection = { message.state !== undefined && (obj.state = stateToJSON(message.state)); message.counterparty !== undefined && (obj.counterparty = message.counterparty ? exports.Counterparty.toJSON(message.counterparty) : undefined); - message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || helpers_1.Long.UZERO).toString()); + message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || BigInt(0)).toString()); return obj; }, fromPartial(object) { @@ -91393,14 +88370,12 @@ exports.IdentifiedConnection = { message.clientId = object.clientId ?? ""; message.versions = object.versions?.map((e) => exports.Version.fromPartial(e)) || []; message.state = object.state ?? 0; - message.counterparty = - object.counterparty !== undefined && object.counterparty !== null - ? exports.Counterparty.fromPartial(object.counterparty) - : undefined; - message.delayPeriod = - object.delayPeriod !== undefined && object.delayPeriod !== null - ? helpers_1.Long.fromValue(object.delayPeriod) - : helpers_1.Long.UZERO; + if (object.counterparty !== undefined && object.counterparty !== null) { + message.counterparty = exports.Counterparty.fromPartial(object.counterparty); + } + if (object.delayPeriod !== undefined && object.delayPeriod !== null) { + message.delayPeriod = BigInt(object.delayPeriod.toString()); + } return message; }, }; @@ -91408,11 +88383,12 @@ function createBaseCounterparty() { return { clientId: "", connectionId: "", - prefix: undefined, + prefix: commitment_1.MerklePrefix.fromPartial({}), }; } exports.Counterparty = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.connection.v1.Counterparty", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.clientId !== "") { writer.uint32(10).string(message.clientId); } @@ -91425,7 +88401,7 @@ exports.Counterparty = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCounterparty(); while (reader.pos < end) { @@ -91448,11 +88424,14 @@ exports.Counterparty = { return message; }, fromJSON(object) { - return { - clientId: (0, helpers_1.isSet)(object.clientId) ? String(object.clientId) : "", - connectionId: (0, helpers_1.isSet)(object.connectionId) ? String(object.connectionId) : "", - prefix: (0, helpers_1.isSet)(object.prefix) ? commitment_1.MerklePrefix.fromJSON(object.prefix) : undefined, - }; + const obj = createBaseCounterparty(); + if ((0, helpers_1.isSet)(object.clientId)) + obj.clientId = String(object.clientId); + if ((0, helpers_1.isSet)(object.connectionId)) + obj.connectionId = String(object.connectionId); + if ((0, helpers_1.isSet)(object.prefix)) + obj.prefix = commitment_1.MerklePrefix.fromJSON(object.prefix); + return obj; }, toJSON(message) { const obj = {}; @@ -91466,10 +88445,9 @@ exports.Counterparty = { const message = createBaseCounterparty(); message.clientId = object.clientId ?? ""; message.connectionId = object.connectionId ?? ""; - message.prefix = - object.prefix !== undefined && object.prefix !== null - ? commitment_1.MerklePrefix.fromPartial(object.prefix) - : undefined; + if (object.prefix !== undefined && object.prefix !== null) { + message.prefix = commitment_1.MerklePrefix.fromPartial(object.prefix); + } return message; }, }; @@ -91479,14 +88457,15 @@ function createBaseClientPaths() { }; } exports.ClientPaths = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.connection.v1.ClientPaths", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.paths) { writer.uint32(10).string(v); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseClientPaths(); while (reader.pos < end) { @@ -91503,9 +88482,10 @@ exports.ClientPaths = { return message; }, fromJSON(object) { - return { - paths: Array.isArray(object?.paths) ? object.paths.map((e) => String(e)) : [], - }; + const obj = createBaseClientPaths(); + if (Array.isArray(object?.paths)) + obj.paths = object.paths.map((e) => String(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -91530,7 +88510,8 @@ function createBaseConnectionPaths() { }; } exports.ConnectionPaths = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.connection.v1.ConnectionPaths", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.clientId !== "") { writer.uint32(10).string(message.clientId); } @@ -91540,7 +88521,7 @@ exports.ConnectionPaths = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseConnectionPaths(); while (reader.pos < end) { @@ -91560,10 +88541,12 @@ exports.ConnectionPaths = { return message; }, fromJSON(object) { - return { - clientId: (0, helpers_1.isSet)(object.clientId) ? String(object.clientId) : "", - paths: Array.isArray(object?.paths) ? object.paths.map((e) => String(e)) : [], - }; + const obj = createBaseConnectionPaths(); + if ((0, helpers_1.isSet)(object.clientId)) + obj.clientId = String(object.clientId); + if (Array.isArray(object?.paths)) + obj.paths = object.paths.map((e) => String(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -91590,7 +88573,8 @@ function createBaseVersion() { }; } exports.Version = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.connection.v1.Version", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.identifier !== "") { writer.uint32(10).string(message.identifier); } @@ -91600,7 +88584,7 @@ exports.Version = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseVersion(); while (reader.pos < end) { @@ -91620,10 +88604,12 @@ exports.Version = { return message; }, fromJSON(object) { - return { - identifier: (0, helpers_1.isSet)(object.identifier) ? String(object.identifier) : "", - features: Array.isArray(object?.features) ? object.features.map((e) => String(e)) : [], - }; + const obj = createBaseVersion(); + if ((0, helpers_1.isSet)(object.identifier)) + obj.identifier = String(object.identifier); + if (Array.isArray(object?.features)) + obj.features = object.features.map((e) => String(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -91645,18 +88631,19 @@ exports.Version = { }; function createBaseParams() { return { - maxExpectedTimePerBlock: helpers_1.Long.UZERO, + maxExpectedTimePerBlock: BigInt(0), }; } exports.Params = { - encode(message, writer = _m0.Writer.create()) { - if (!message.maxExpectedTimePerBlock.isZero()) { + typeUrl: "/ibc.core.connection.v1.Params", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.maxExpectedTimePerBlock !== BigInt(0)) { writer.uint32(8).uint64(message.maxExpectedTimePerBlock); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseParams(); while (reader.pos < end) { @@ -91673,24 +88660,22 @@ exports.Params = { return message; }, fromJSON(object) { - return { - maxExpectedTimePerBlock: (0, helpers_1.isSet)(object.maxExpectedTimePerBlock) - ? helpers_1.Long.fromValue(object.maxExpectedTimePerBlock) - : helpers_1.Long.UZERO, - }; + const obj = createBaseParams(); + if ((0, helpers_1.isSet)(object.maxExpectedTimePerBlock)) + obj.maxExpectedTimePerBlock = BigInt(object.maxExpectedTimePerBlock.toString()); + return obj; }, toJSON(message) { const obj = {}; message.maxExpectedTimePerBlock !== undefined && - (obj.maxExpectedTimePerBlock = (message.maxExpectedTimePerBlock || helpers_1.Long.UZERO).toString()); + (obj.maxExpectedTimePerBlock = (message.maxExpectedTimePerBlock || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseParams(); - message.maxExpectedTimePerBlock = - object.maxExpectedTimePerBlock !== undefined && object.maxExpectedTimePerBlock !== null - ? helpers_1.Long.fromValue(object.maxExpectedTimePerBlock) - : helpers_1.Long.UZERO; + if (object.maxExpectedTimePerBlock !== undefined && object.maxExpectedTimePerBlock !== null) { + message.maxExpectedTimePerBlock = BigInt(object.maxExpectedTimePerBlock.toString()); + } return message; }, }; @@ -91706,37 +88691,14 @@ exports.Params = { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.QueryClientImpl = exports.QueryConnectionConsensusStateResponse = exports.QueryConnectionConsensusStateRequest = exports.QueryConnectionClientStateResponse = exports.QueryConnectionClientStateRequest = exports.QueryClientConnectionsResponse = exports.QueryClientConnectionsRequest = exports.QueryConnectionsResponse = exports.QueryConnectionsRequest = exports.QueryConnectionResponse = exports.QueryConnectionRequest = exports.protobufPackage = void 0; +exports.QueryClientImpl = exports.QueryConnectionParamsResponse = exports.QueryConnectionParamsRequest = exports.QueryConnectionConsensusStateResponse = exports.QueryConnectionConsensusStateRequest = exports.QueryConnectionClientStateResponse = exports.QueryConnectionClientStateRequest = exports.QueryClientConnectionsResponse = exports.QueryClientConnectionsRequest = exports.QueryConnectionsResponse = exports.QueryConnectionsRequest = exports.QueryConnectionResponse = exports.QueryConnectionRequest = exports.protobufPackage = void 0; /* eslint-disable */ const pagination_1 = __webpack_require__(/*! ../../../../cosmos/base/query/v1beta1/pagination */ "./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js"); const connection_1 = __webpack_require__(/*! ./connection */ "./node_modules/cosmjs-types/ibc/core/connection/v1/connection.js"); const client_1 = __webpack_require__(/*! ../../client/v1/client */ "./node_modules/cosmjs-types/ibc/core/client/v1/client.js"); const any_1 = __webpack_require__(/*! ../../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "ibc.core.connection.v1"; function createBaseQueryConnectionRequest() { @@ -91745,14 +88707,15 @@ function createBaseQueryConnectionRequest() { }; } exports.QueryConnectionRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.connection.v1.QueryConnectionRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.connectionId !== "") { writer.uint32(10).string(message.connectionId); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryConnectionRequest(); while (reader.pos < end) { @@ -91769,9 +88732,10 @@ exports.QueryConnectionRequest = { return message; }, fromJSON(object) { - return { - connectionId: (0, helpers_1.isSet)(object.connectionId) ? String(object.connectionId) : "", - }; + const obj = createBaseQueryConnectionRequest(); + if ((0, helpers_1.isSet)(object.connectionId)) + obj.connectionId = String(object.connectionId); + return obj; }, toJSON(message) { const obj = {}; @@ -91788,11 +88752,12 @@ function createBaseQueryConnectionResponse() { return { connection: undefined, proof: new Uint8Array(), - proofHeight: undefined, + proofHeight: client_1.Height.fromPartial({}), }; } exports.QueryConnectionResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.connection.v1.QueryConnectionResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.connection !== undefined) { connection_1.ConnectionEnd.encode(message.connection, writer.uint32(10).fork()).ldelim(); } @@ -91805,7 +88770,7 @@ exports.QueryConnectionResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryConnectionResponse(); while (reader.pos < end) { @@ -91828,11 +88793,14 @@ exports.QueryConnectionResponse = { return message; }, fromJSON(object) { - return { - connection: (0, helpers_1.isSet)(object.connection) ? connection_1.ConnectionEnd.fromJSON(object.connection) : undefined, - proof: (0, helpers_1.isSet)(object.proof) ? (0, helpers_1.bytesFromBase64)(object.proof) : new Uint8Array(), - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - }; + const obj = createBaseQueryConnectionResponse(); + if ((0, helpers_1.isSet)(object.connection)) + obj.connection = connection_1.ConnectionEnd.fromJSON(object.connection); + if ((0, helpers_1.isSet)(object.proof)) + obj.proof = (0, helpers_1.bytesFromBase64)(object.proof); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + return obj; }, toJSON(message) { const obj = {}; @@ -91846,15 +88814,13 @@ exports.QueryConnectionResponse = { }, fromPartial(object) { const message = createBaseQueryConnectionResponse(); - message.connection = - object.connection !== undefined && object.connection !== null - ? connection_1.ConnectionEnd.fromPartial(object.connection) - : undefined; + if (object.connection !== undefined && object.connection !== null) { + message.connection = connection_1.ConnectionEnd.fromPartial(object.connection); + } message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); + } return message; }, }; @@ -91864,14 +88830,15 @@ function createBaseQueryConnectionsRequest() { }; } exports.QueryConnectionsRequest = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.connection.v1.QueryConnectionsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.pagination !== undefined) { pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryConnectionsRequest(); while (reader.pos < end) { @@ -91888,9 +88855,10 @@ exports.QueryConnectionsRequest = { return message; }, fromJSON(object) { - return { - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageRequest.fromJSON(object.pagination) : undefined, - }; + const obj = createBaseQueryConnectionsRequest(); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageRequest.fromJSON(object.pagination); + return obj; }, toJSON(message) { const obj = {}; @@ -91900,10 +88868,9 @@ exports.QueryConnectionsRequest = { }, fromPartial(object) { const message = createBaseQueryConnectionsRequest(); - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageRequest.fromPartial(object.pagination) - : undefined; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageRequest.fromPartial(object.pagination); + } return message; }, }; @@ -91911,11 +88878,12 @@ function createBaseQueryConnectionsResponse() { return { connections: [], pagination: undefined, - height: undefined, + height: client_1.Height.fromPartial({}), }; } exports.QueryConnectionsResponse = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/ibc.core.connection.v1.QueryConnectionsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.connections) { connection_1.IdentifiedConnection.encode(v, writer.uint32(10).fork()).ldelim(); } @@ -91928,978 +88896,20 @@ exports.QueryConnectionsResponse = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQueryConnectionsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.connections.push(connection_1.IdentifiedConnection.decode(reader, reader.uint32())); - break; - case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); - break; - case 3: - message.height = client_1.Height.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromJSON(object) { - return { - connections: Array.isArray(object?.connections) - ? object.connections.map((e) => connection_1.IdentifiedConnection.fromJSON(e)) - : [], - pagination: (0, helpers_1.isSet)(object.pagination) ? pagination_1.PageResponse.fromJSON(object.pagination) : undefined, - height: (0, helpers_1.isSet)(object.height) ? client_1.Height.fromJSON(object.height) : undefined, - }; - }, - toJSON(message) { - const obj = {}; - if (message.connections) { - obj.connections = message.connections.map((e) => (e ? connection_1.IdentifiedConnection.toJSON(e) : undefined)); - } - else { - obj.connections = []; - } - message.pagination !== undefined && - (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); - message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined); - return obj; - }, - fromPartial(object) { - const message = createBaseQueryConnectionsResponse(); - message.connections = object.connections?.map((e) => connection_1.IdentifiedConnection.fromPartial(e)) || []; - message.pagination = - object.pagination !== undefined && object.pagination !== null - ? pagination_1.PageResponse.fromPartial(object.pagination) - : undefined; - message.height = - object.height !== undefined && object.height !== null ? client_1.Height.fromPartial(object.height) : undefined; - return message; - }, -}; -function createBaseQueryClientConnectionsRequest() { - return { - clientId: "", - }; -} -exports.QueryClientConnectionsRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.clientId !== "") { - writer.uint32(10).string(message.clientId); - } - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryClientConnectionsRequest(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.clientId = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromJSON(object) { - return { - clientId: (0, helpers_1.isSet)(object.clientId) ? String(object.clientId) : "", - }; - }, - toJSON(message) { - const obj = {}; - message.clientId !== undefined && (obj.clientId = message.clientId); - return obj; - }, - fromPartial(object) { - const message = createBaseQueryClientConnectionsRequest(); - message.clientId = object.clientId ?? ""; - return message; - }, -}; -function createBaseQueryClientConnectionsResponse() { - return { - connectionPaths: [], - proof: new Uint8Array(), - proofHeight: undefined, - }; -} -exports.QueryClientConnectionsResponse = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.connectionPaths) { - writer.uint32(10).string(v); - } - if (message.proof.length !== 0) { - writer.uint32(18).bytes(message.proof); - } - if (message.proofHeight !== undefined) { - client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim(); - } - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryClientConnectionsResponse(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.connectionPaths.push(reader.string()); - break; - case 2: - message.proof = reader.bytes(); - break; - case 3: - message.proofHeight = client_1.Height.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromJSON(object) { - return { - connectionPaths: Array.isArray(object?.connectionPaths) - ? object.connectionPaths.map((e) => String(e)) - : [], - proof: (0, helpers_1.isSet)(object.proof) ? (0, helpers_1.bytesFromBase64)(object.proof) : new Uint8Array(), - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - }; - }, - toJSON(message) { - const obj = {}; - if (message.connectionPaths) { - obj.connectionPaths = message.connectionPaths.map((e) => e); - } - else { - obj.connectionPaths = []; - } - message.proof !== undefined && - (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array())); - message.proofHeight !== undefined && - (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined); - return obj; - }, - fromPartial(object) { - const message = createBaseQueryClientConnectionsResponse(); - message.connectionPaths = object.connectionPaths?.map((e) => e) || []; - message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; - return message; - }, -}; -function createBaseQueryConnectionClientStateRequest() { - return { - connectionId: "", - }; -} -exports.QueryConnectionClientStateRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.connectionId !== "") { - writer.uint32(10).string(message.connectionId); - } - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryConnectionClientStateRequest(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.connectionId = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromJSON(object) { - return { - connectionId: (0, helpers_1.isSet)(object.connectionId) ? String(object.connectionId) : "", - }; - }, - toJSON(message) { - const obj = {}; - message.connectionId !== undefined && (obj.connectionId = message.connectionId); - return obj; - }, - fromPartial(object) { - const message = createBaseQueryConnectionClientStateRequest(); - message.connectionId = object.connectionId ?? ""; - return message; - }, -}; -function createBaseQueryConnectionClientStateResponse() { - return { - identifiedClientState: undefined, - proof: new Uint8Array(), - proofHeight: undefined, - }; -} -exports.QueryConnectionClientStateResponse = { - encode(message, writer = _m0.Writer.create()) { - if (message.identifiedClientState !== undefined) { - client_1.IdentifiedClientState.encode(message.identifiedClientState, writer.uint32(10).fork()).ldelim(); - } - if (message.proof.length !== 0) { - writer.uint32(18).bytes(message.proof); - } - if (message.proofHeight !== undefined) { - client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim(); - } - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryConnectionClientStateResponse(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.identifiedClientState = client_1.IdentifiedClientState.decode(reader, reader.uint32()); - break; - case 2: - message.proof = reader.bytes(); - break; - case 3: - message.proofHeight = client_1.Height.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromJSON(object) { - return { - identifiedClientState: (0, helpers_1.isSet)(object.identifiedClientState) - ? client_1.IdentifiedClientState.fromJSON(object.identifiedClientState) - : undefined, - proof: (0, helpers_1.isSet)(object.proof) ? (0, helpers_1.bytesFromBase64)(object.proof) : new Uint8Array(), - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - }; - }, - toJSON(message) { - const obj = {}; - message.identifiedClientState !== undefined && - (obj.identifiedClientState = message.identifiedClientState - ? client_1.IdentifiedClientState.toJSON(message.identifiedClientState) - : undefined); - message.proof !== undefined && - (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array())); - message.proofHeight !== undefined && - (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined); - return obj; - }, - fromPartial(object) { - const message = createBaseQueryConnectionClientStateResponse(); - message.identifiedClientState = - object.identifiedClientState !== undefined && object.identifiedClientState !== null - ? client_1.IdentifiedClientState.fromPartial(object.identifiedClientState) - : undefined; - message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; - return message; - }, -}; -function createBaseQueryConnectionConsensusStateRequest() { - return { - connectionId: "", - revisionNumber: helpers_1.Long.UZERO, - revisionHeight: helpers_1.Long.UZERO, - }; -} -exports.QueryConnectionConsensusStateRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.connectionId !== "") { - writer.uint32(10).string(message.connectionId); - } - if (!message.revisionNumber.isZero()) { - writer.uint32(16).uint64(message.revisionNumber); - } - if (!message.revisionHeight.isZero()) { - writer.uint32(24).uint64(message.revisionHeight); - } - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryConnectionConsensusStateRequest(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.connectionId = reader.string(); - break; - case 2: - message.revisionNumber = reader.uint64(); - break; - case 3: - message.revisionHeight = reader.uint64(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromJSON(object) { - return { - connectionId: (0, helpers_1.isSet)(object.connectionId) ? String(object.connectionId) : "", - revisionNumber: (0, helpers_1.isSet)(object.revisionNumber) ? helpers_1.Long.fromValue(object.revisionNumber) : helpers_1.Long.UZERO, - revisionHeight: (0, helpers_1.isSet)(object.revisionHeight) ? helpers_1.Long.fromValue(object.revisionHeight) : helpers_1.Long.UZERO, - }; - }, - toJSON(message) { - const obj = {}; - message.connectionId !== undefined && (obj.connectionId = message.connectionId); - message.revisionNumber !== undefined && - (obj.revisionNumber = (message.revisionNumber || helpers_1.Long.UZERO).toString()); - message.revisionHeight !== undefined && - (obj.revisionHeight = (message.revisionHeight || helpers_1.Long.UZERO).toString()); - return obj; - }, - fromPartial(object) { - const message = createBaseQueryConnectionConsensusStateRequest(); - message.connectionId = object.connectionId ?? ""; - message.revisionNumber = - object.revisionNumber !== undefined && object.revisionNumber !== null - ? helpers_1.Long.fromValue(object.revisionNumber) - : helpers_1.Long.UZERO; - message.revisionHeight = - object.revisionHeight !== undefined && object.revisionHeight !== null - ? helpers_1.Long.fromValue(object.revisionHeight) - : helpers_1.Long.UZERO; - return message; - }, -}; -function createBaseQueryConnectionConsensusStateResponse() { - return { - consensusState: undefined, - clientId: "", - proof: new Uint8Array(), - proofHeight: undefined, - }; -} -exports.QueryConnectionConsensusStateResponse = { - encode(message, writer = _m0.Writer.create()) { - if (message.consensusState !== undefined) { - any_1.Any.encode(message.consensusState, writer.uint32(10).fork()).ldelim(); - } - if (message.clientId !== "") { - writer.uint32(18).string(message.clientId); - } - if (message.proof.length !== 0) { - writer.uint32(26).bytes(message.proof); - } - if (message.proofHeight !== undefined) { - client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim(); - } - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryConnectionConsensusStateResponse(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.consensusState = any_1.Any.decode(reader, reader.uint32()); - break; - case 2: - message.clientId = reader.string(); - break; - case 3: - message.proof = reader.bytes(); - break; - case 4: - message.proofHeight = client_1.Height.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromJSON(object) { - return { - consensusState: (0, helpers_1.isSet)(object.consensusState) ? any_1.Any.fromJSON(object.consensusState) : undefined, - clientId: (0, helpers_1.isSet)(object.clientId) ? String(object.clientId) : "", - proof: (0, helpers_1.isSet)(object.proof) ? (0, helpers_1.bytesFromBase64)(object.proof) : new Uint8Array(), - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - }; - }, - toJSON(message) { - const obj = {}; - message.consensusState !== undefined && - (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined); - message.clientId !== undefined && (obj.clientId = message.clientId); - message.proof !== undefined && - (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array())); - message.proofHeight !== undefined && - (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined); - return obj; - }, - fromPartial(object) { - const message = createBaseQueryConnectionConsensusStateResponse(); - message.consensusState = - object.consensusState !== undefined && object.consensusState !== null - ? any_1.Any.fromPartial(object.consensusState) - : undefined; - message.clientId = object.clientId ?? ""; - message.proof = object.proof ?? new Uint8Array(); - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; - return message; - }, -}; -class QueryClientImpl { - constructor(rpc) { - this.rpc = rpc; - this.Connection = this.Connection.bind(this); - this.Connections = this.Connections.bind(this); - this.ClientConnections = this.ClientConnections.bind(this); - this.ConnectionClientState = this.ConnectionClientState.bind(this); - this.ConnectionConsensusState = this.ConnectionConsensusState.bind(this); - } - Connection(request) { - const data = exports.QueryConnectionRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.connection.v1.Query", "Connection", data); - return promise.then((data) => exports.QueryConnectionResponse.decode(new _m0.Reader(data))); - } - Connections(request = { - pagination: undefined, - }) { - const data = exports.QueryConnectionsRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.connection.v1.Query", "Connections", data); - return promise.then((data) => exports.QueryConnectionsResponse.decode(new _m0.Reader(data))); - } - ClientConnections(request) { - const data = exports.QueryClientConnectionsRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.connection.v1.Query", "ClientConnections", data); - return promise.then((data) => exports.QueryClientConnectionsResponse.decode(new _m0.Reader(data))); - } - ConnectionClientState(request) { - const data = exports.QueryConnectionClientStateRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.connection.v1.Query", "ConnectionClientState", data); - return promise.then((data) => exports.QueryConnectionClientStateResponse.decode(new _m0.Reader(data))); - } - ConnectionConsensusState(request) { - const data = exports.QueryConnectionConsensusStateRequest.encode(request).finish(); - const promise = this.rpc.request("ibc.core.connection.v1.Query", "ConnectionConsensusState", data); - return promise.then((data) => exports.QueryConnectionConsensusStateResponse.decode(new _m0.Reader(data))); - } -} -exports.QueryClientImpl = QueryClientImpl; -//# sourceMappingURL=query.js.map - -/***/ }), - -/***/ "./node_modules/cosmjs-types/ibc/core/connection/v1/tx.js": -/*!****************************************************************!*\ - !*** ./node_modules/cosmjs-types/ibc/core/connection/v1/tx.js ***! - \****************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.MsgClientImpl = exports.MsgConnectionOpenConfirmResponse = exports.MsgConnectionOpenConfirm = exports.MsgConnectionOpenAckResponse = exports.MsgConnectionOpenAck = exports.MsgConnectionOpenTryResponse = exports.MsgConnectionOpenTry = exports.MsgConnectionOpenInitResponse = exports.MsgConnectionOpenInit = exports.protobufPackage = void 0; -/* eslint-disable */ -const connection_1 = __webpack_require__(/*! ./connection */ "./node_modules/cosmjs-types/ibc/core/connection/v1/connection.js"); -const any_1 = __webpack_require__(/*! ../../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); -const client_1 = __webpack_require__(/*! ../../client/v1/client */ "./node_modules/cosmjs-types/ibc/core/client/v1/client.js"); -const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -exports.protobufPackage = "ibc.core.connection.v1"; -function createBaseMsgConnectionOpenInit() { - return { - clientId: "", - counterparty: undefined, - version: undefined, - delayPeriod: helpers_1.Long.UZERO, - signer: "", - }; -} -exports.MsgConnectionOpenInit = { - encode(message, writer = _m0.Writer.create()) { - if (message.clientId !== "") { - writer.uint32(10).string(message.clientId); - } - if (message.counterparty !== undefined) { - connection_1.Counterparty.encode(message.counterparty, writer.uint32(18).fork()).ldelim(); - } - if (message.version !== undefined) { - connection_1.Version.encode(message.version, writer.uint32(26).fork()).ldelim(); - } - if (!message.delayPeriod.isZero()) { - writer.uint32(32).uint64(message.delayPeriod); - } - if (message.signer !== "") { - writer.uint32(42).string(message.signer); - } - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgConnectionOpenInit(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.clientId = reader.string(); - break; - case 2: - message.counterparty = connection_1.Counterparty.decode(reader, reader.uint32()); - break; - case 3: - message.version = connection_1.Version.decode(reader, reader.uint32()); - break; - case 4: - message.delayPeriod = reader.uint64(); - break; - case 5: - message.signer = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromJSON(object) { - return { - clientId: (0, helpers_1.isSet)(object.clientId) ? String(object.clientId) : "", - counterparty: (0, helpers_1.isSet)(object.counterparty) ? connection_1.Counterparty.fromJSON(object.counterparty) : undefined, - version: (0, helpers_1.isSet)(object.version) ? connection_1.Version.fromJSON(object.version) : undefined, - delayPeriod: (0, helpers_1.isSet)(object.delayPeriod) ? helpers_1.Long.fromValue(object.delayPeriod) : helpers_1.Long.UZERO, - signer: (0, helpers_1.isSet)(object.signer) ? String(object.signer) : "", - }; - }, - toJSON(message) { - const obj = {}; - message.clientId !== undefined && (obj.clientId = message.clientId); - message.counterparty !== undefined && - (obj.counterparty = message.counterparty ? connection_1.Counterparty.toJSON(message.counterparty) : undefined); - message.version !== undefined && - (obj.version = message.version ? connection_1.Version.toJSON(message.version) : undefined); - message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || helpers_1.Long.UZERO).toString()); - message.signer !== undefined && (obj.signer = message.signer); - return obj; - }, - fromPartial(object) { - const message = createBaseMsgConnectionOpenInit(); - message.clientId = object.clientId ?? ""; - message.counterparty = - object.counterparty !== undefined && object.counterparty !== null - ? connection_1.Counterparty.fromPartial(object.counterparty) - : undefined; - message.version = - object.version !== undefined && object.version !== null - ? connection_1.Version.fromPartial(object.version) - : undefined; - message.delayPeriod = - object.delayPeriod !== undefined && object.delayPeriod !== null - ? helpers_1.Long.fromValue(object.delayPeriod) - : helpers_1.Long.UZERO; - message.signer = object.signer ?? ""; - return message; - }, -}; -function createBaseMsgConnectionOpenInitResponse() { - return {}; -} -exports.MsgConnectionOpenInitResponse = { - encode(_, writer = _m0.Writer.create()) { - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgConnectionOpenInitResponse(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromJSON(_) { - return {}; - }, - toJSON(_) { - const obj = {}; - return obj; - }, - fromPartial(_) { - const message = createBaseMsgConnectionOpenInitResponse(); - return message; - }, -}; -function createBaseMsgConnectionOpenTry() { - return { - clientId: "", - previousConnectionId: "", - clientState: undefined, - counterparty: undefined, - delayPeriod: helpers_1.Long.UZERO, - counterpartyVersions: [], - proofHeight: undefined, - proofInit: new Uint8Array(), - proofClient: new Uint8Array(), - proofConsensus: new Uint8Array(), - consensusHeight: undefined, - signer: "", - }; -} -exports.MsgConnectionOpenTry = { - encode(message, writer = _m0.Writer.create()) { - if (message.clientId !== "") { - writer.uint32(10).string(message.clientId); - } - if (message.previousConnectionId !== "") { - writer.uint32(18).string(message.previousConnectionId); - } - if (message.clientState !== undefined) { - any_1.Any.encode(message.clientState, writer.uint32(26).fork()).ldelim(); - } - if (message.counterparty !== undefined) { - connection_1.Counterparty.encode(message.counterparty, writer.uint32(34).fork()).ldelim(); - } - if (!message.delayPeriod.isZero()) { - writer.uint32(40).uint64(message.delayPeriod); - } - for (const v of message.counterpartyVersions) { - connection_1.Version.encode(v, writer.uint32(50).fork()).ldelim(); - } - if (message.proofHeight !== undefined) { - client_1.Height.encode(message.proofHeight, writer.uint32(58).fork()).ldelim(); - } - if (message.proofInit.length !== 0) { - writer.uint32(66).bytes(message.proofInit); - } - if (message.proofClient.length !== 0) { - writer.uint32(74).bytes(message.proofClient); - } - if (message.proofConsensus.length !== 0) { - writer.uint32(82).bytes(message.proofConsensus); - } - if (message.consensusHeight !== undefined) { - client_1.Height.encode(message.consensusHeight, writer.uint32(90).fork()).ldelim(); - } - if (message.signer !== "") { - writer.uint32(98).string(message.signer); - } - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgConnectionOpenTry(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.clientId = reader.string(); - break; - case 2: - message.previousConnectionId = reader.string(); - break; - case 3: - message.clientState = any_1.Any.decode(reader, reader.uint32()); - break; - case 4: - message.counterparty = connection_1.Counterparty.decode(reader, reader.uint32()); - break; - case 5: - message.delayPeriod = reader.uint64(); - break; - case 6: - message.counterpartyVersions.push(connection_1.Version.decode(reader, reader.uint32())); - break; - case 7: - message.proofHeight = client_1.Height.decode(reader, reader.uint32()); - break; - case 8: - message.proofInit = reader.bytes(); - break; - case 9: - message.proofClient = reader.bytes(); - break; - case 10: - message.proofConsensus = reader.bytes(); - break; - case 11: - message.consensusHeight = client_1.Height.decode(reader, reader.uint32()); - break; - case 12: - message.signer = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromJSON(object) { - return { - clientId: (0, helpers_1.isSet)(object.clientId) ? String(object.clientId) : "", - previousConnectionId: (0, helpers_1.isSet)(object.previousConnectionId) ? String(object.previousConnectionId) : "", - clientState: (0, helpers_1.isSet)(object.clientState) ? any_1.Any.fromJSON(object.clientState) : undefined, - counterparty: (0, helpers_1.isSet)(object.counterparty) ? connection_1.Counterparty.fromJSON(object.counterparty) : undefined, - delayPeriod: (0, helpers_1.isSet)(object.delayPeriod) ? helpers_1.Long.fromValue(object.delayPeriod) : helpers_1.Long.UZERO, - counterpartyVersions: Array.isArray(object?.counterpartyVersions) - ? object.counterpartyVersions.map((e) => connection_1.Version.fromJSON(e)) - : [], - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - proofInit: (0, helpers_1.isSet)(object.proofInit) ? (0, helpers_1.bytesFromBase64)(object.proofInit) : new Uint8Array(), - proofClient: (0, helpers_1.isSet)(object.proofClient) ? (0, helpers_1.bytesFromBase64)(object.proofClient) : new Uint8Array(), - proofConsensus: (0, helpers_1.isSet)(object.proofConsensus) - ? (0, helpers_1.bytesFromBase64)(object.proofConsensus) - : new Uint8Array(), - consensusHeight: (0, helpers_1.isSet)(object.consensusHeight) ? client_1.Height.fromJSON(object.consensusHeight) : undefined, - signer: (0, helpers_1.isSet)(object.signer) ? String(object.signer) : "", - }; - }, - toJSON(message) { - const obj = {}; - message.clientId !== undefined && (obj.clientId = message.clientId); - message.previousConnectionId !== undefined && (obj.previousConnectionId = message.previousConnectionId); - message.clientState !== undefined && - (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined); - message.counterparty !== undefined && - (obj.counterparty = message.counterparty ? connection_1.Counterparty.toJSON(message.counterparty) : undefined); - message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || helpers_1.Long.UZERO).toString()); - if (message.counterpartyVersions) { - obj.counterpartyVersions = message.counterpartyVersions.map((e) => (e ? connection_1.Version.toJSON(e) : undefined)); - } - else { - obj.counterpartyVersions = []; - } - message.proofHeight !== undefined && - (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined); - message.proofInit !== undefined && - (obj.proofInit = (0, helpers_1.base64FromBytes)(message.proofInit !== undefined ? message.proofInit : new Uint8Array())); - message.proofClient !== undefined && - (obj.proofClient = (0, helpers_1.base64FromBytes)(message.proofClient !== undefined ? message.proofClient : new Uint8Array())); - message.proofConsensus !== undefined && - (obj.proofConsensus = (0, helpers_1.base64FromBytes)(message.proofConsensus !== undefined ? message.proofConsensus : new Uint8Array())); - message.consensusHeight !== undefined && - (obj.consensusHeight = message.consensusHeight ? client_1.Height.toJSON(message.consensusHeight) : undefined); - message.signer !== undefined && (obj.signer = message.signer); - return obj; - }, - fromPartial(object) { - const message = createBaseMsgConnectionOpenTry(); - message.clientId = object.clientId ?? ""; - message.previousConnectionId = object.previousConnectionId ?? ""; - message.clientState = - object.clientState !== undefined && object.clientState !== null - ? any_1.Any.fromPartial(object.clientState) - : undefined; - message.counterparty = - object.counterparty !== undefined && object.counterparty !== null - ? connection_1.Counterparty.fromPartial(object.counterparty) - : undefined; - message.delayPeriod = - object.delayPeriod !== undefined && object.delayPeriod !== null - ? helpers_1.Long.fromValue(object.delayPeriod) - : helpers_1.Long.UZERO; - message.counterpartyVersions = object.counterpartyVersions?.map((e) => connection_1.Version.fromPartial(e)) || []; - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; - message.proofInit = object.proofInit ?? new Uint8Array(); - message.proofClient = object.proofClient ?? new Uint8Array(); - message.proofConsensus = object.proofConsensus ?? new Uint8Array(); - message.consensusHeight = - object.consensusHeight !== undefined && object.consensusHeight !== null - ? client_1.Height.fromPartial(object.consensusHeight) - : undefined; - message.signer = object.signer ?? ""; - return message; - }, -}; -function createBaseMsgConnectionOpenTryResponse() { - return {}; -} -exports.MsgConnectionOpenTryResponse = { - encode(_, writer = _m0.Writer.create()) { - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgConnectionOpenTryResponse(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromJSON(_) { - return {}; - }, - toJSON(_) { - const obj = {}; - return obj; - }, - fromPartial(_) { - const message = createBaseMsgConnectionOpenTryResponse(); - return message; - }, -}; -function createBaseMsgConnectionOpenAck() { - return { - connectionId: "", - counterpartyConnectionId: "", - version: undefined, - clientState: undefined, - proofHeight: undefined, - proofTry: new Uint8Array(), - proofClient: new Uint8Array(), - proofConsensus: new Uint8Array(), - consensusHeight: undefined, - signer: "", - }; -} -exports.MsgConnectionOpenAck = { - encode(message, writer = _m0.Writer.create()) { - if (message.connectionId !== "") { - writer.uint32(10).string(message.connectionId); - } - if (message.counterpartyConnectionId !== "") { - writer.uint32(18).string(message.counterpartyConnectionId); - } - if (message.version !== undefined) { - connection_1.Version.encode(message.version, writer.uint32(26).fork()).ldelim(); - } - if (message.clientState !== undefined) { - any_1.Any.encode(message.clientState, writer.uint32(34).fork()).ldelim(); - } - if (message.proofHeight !== undefined) { - client_1.Height.encode(message.proofHeight, writer.uint32(42).fork()).ldelim(); - } - if (message.proofTry.length !== 0) { - writer.uint32(50).bytes(message.proofTry); - } - if (message.proofClient.length !== 0) { - writer.uint32(58).bytes(message.proofClient); - } - if (message.proofConsensus.length !== 0) { - writer.uint32(66).bytes(message.proofConsensus); - } - if (message.consensusHeight !== undefined) { - client_1.Height.encode(message.consensusHeight, writer.uint32(74).fork()).ldelim(); - } - if (message.signer !== "") { - writer.uint32(82).string(message.signer); - } - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgConnectionOpenAck(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.connectionId = reader.string(); - break; - case 2: - message.counterpartyConnectionId = reader.string(); - break; - case 3: - message.version = connection_1.Version.decode(reader, reader.uint32()); - break; - case 4: - message.clientState = any_1.Any.decode(reader, reader.uint32()); - break; - case 5: - message.proofHeight = client_1.Height.decode(reader, reader.uint32()); - break; - case 6: - message.proofTry = reader.bytes(); - break; - case 7: - message.proofClient = reader.bytes(); - break; - case 8: - message.proofConsensus = reader.bytes(); + message.connections.push(connection_1.IdentifiedConnection.decode(reader, reader.uint32())); break; - case 9: - message.consensusHeight = client_1.Height.decode(reader, reader.uint32()); + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); break; - case 10: - message.signer = reader.string(); + case 3: + message.height = client_1.Height.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -92909,86 +88919,63 @@ exports.MsgConnectionOpenAck = { return message; }, fromJSON(object) { - return { - connectionId: (0, helpers_1.isSet)(object.connectionId) ? String(object.connectionId) : "", - counterpartyConnectionId: (0, helpers_1.isSet)(object.counterpartyConnectionId) - ? String(object.counterpartyConnectionId) - : "", - version: (0, helpers_1.isSet)(object.version) ? connection_1.Version.fromJSON(object.version) : undefined, - clientState: (0, helpers_1.isSet)(object.clientState) ? any_1.Any.fromJSON(object.clientState) : undefined, - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - proofTry: (0, helpers_1.isSet)(object.proofTry) ? (0, helpers_1.bytesFromBase64)(object.proofTry) : new Uint8Array(), - proofClient: (0, helpers_1.isSet)(object.proofClient) ? (0, helpers_1.bytesFromBase64)(object.proofClient) : new Uint8Array(), - proofConsensus: (0, helpers_1.isSet)(object.proofConsensus) - ? (0, helpers_1.bytesFromBase64)(object.proofConsensus) - : new Uint8Array(), - consensusHeight: (0, helpers_1.isSet)(object.consensusHeight) ? client_1.Height.fromJSON(object.consensusHeight) : undefined, - signer: (0, helpers_1.isSet)(object.signer) ? String(object.signer) : "", - }; + const obj = createBaseQueryConnectionsResponse(); + if (Array.isArray(object?.connections)) + obj.connections = object.connections.map((e) => connection_1.IdentifiedConnection.fromJSON(e)); + if ((0, helpers_1.isSet)(object.pagination)) + obj.pagination = pagination_1.PageResponse.fromJSON(object.pagination); + if ((0, helpers_1.isSet)(object.height)) + obj.height = client_1.Height.fromJSON(object.height); + return obj; }, toJSON(message) { const obj = {}; - message.connectionId !== undefined && (obj.connectionId = message.connectionId); - message.counterpartyConnectionId !== undefined && - (obj.counterpartyConnectionId = message.counterpartyConnectionId); - message.version !== undefined && - (obj.version = message.version ? connection_1.Version.toJSON(message.version) : undefined); - message.clientState !== undefined && - (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined); - message.proofHeight !== undefined && - (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined); - message.proofTry !== undefined && - (obj.proofTry = (0, helpers_1.base64FromBytes)(message.proofTry !== undefined ? message.proofTry : new Uint8Array())); - message.proofClient !== undefined && - (obj.proofClient = (0, helpers_1.base64FromBytes)(message.proofClient !== undefined ? message.proofClient : new Uint8Array())); - message.proofConsensus !== undefined && - (obj.proofConsensus = (0, helpers_1.base64FromBytes)(message.proofConsensus !== undefined ? message.proofConsensus : new Uint8Array())); - message.consensusHeight !== undefined && - (obj.consensusHeight = message.consensusHeight ? client_1.Height.toJSON(message.consensusHeight) : undefined); - message.signer !== undefined && (obj.signer = message.signer); + if (message.connections) { + obj.connections = message.connections.map((e) => (e ? connection_1.IdentifiedConnection.toJSON(e) : undefined)); + } + else { + obj.connections = []; + } + message.pagination !== undefined && + (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined); + message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined); return obj; }, fromPartial(object) { - const message = createBaseMsgConnectionOpenAck(); - message.connectionId = object.connectionId ?? ""; - message.counterpartyConnectionId = object.counterpartyConnectionId ?? ""; - message.version = - object.version !== undefined && object.version !== null - ? connection_1.Version.fromPartial(object.version) - : undefined; - message.clientState = - object.clientState !== undefined && object.clientState !== null - ? any_1.Any.fromPartial(object.clientState) - : undefined; - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; - message.proofTry = object.proofTry ?? new Uint8Array(); - message.proofClient = object.proofClient ?? new Uint8Array(); - message.proofConsensus = object.proofConsensus ?? new Uint8Array(); - message.consensusHeight = - object.consensusHeight !== undefined && object.consensusHeight !== null - ? client_1.Height.fromPartial(object.consensusHeight) - : undefined; - message.signer = object.signer ?? ""; + const message = createBaseQueryConnectionsResponse(); + message.connections = object.connections?.map((e) => connection_1.IdentifiedConnection.fromPartial(e)) || []; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = pagination_1.PageResponse.fromPartial(object.pagination); + } + if (object.height !== undefined && object.height !== null) { + message.height = client_1.Height.fromPartial(object.height); + } return message; }, }; -function createBaseMsgConnectionOpenAckResponse() { - return {}; +function createBaseQueryClientConnectionsRequest() { + return { + clientId: "", + }; } -exports.MsgConnectionOpenAckResponse = { - encode(_, writer = _m0.Writer.create()) { +exports.QueryClientConnectionsRequest = { + typeUrl: "/ibc.core.connection.v1.QueryClientConnectionsRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.clientId !== "") { + writer.uint32(10).string(message.clientId); + } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgConnectionOpenAckResponse(); + const message = createBaseQueryClientConnectionsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.clientId = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -92996,61 +88983,60 @@ exports.MsgConnectionOpenAckResponse = { } return message; }, - fromJSON(_) { - return {}; + fromJSON(object) { + const obj = createBaseQueryClientConnectionsRequest(); + if ((0, helpers_1.isSet)(object.clientId)) + obj.clientId = String(object.clientId); + return obj; }, - toJSON(_) { + toJSON(message) { const obj = {}; + message.clientId !== undefined && (obj.clientId = message.clientId); return obj; }, - fromPartial(_) { - const message = createBaseMsgConnectionOpenAckResponse(); + fromPartial(object) { + const message = createBaseQueryClientConnectionsRequest(); + message.clientId = object.clientId ?? ""; return message; }, }; -function createBaseMsgConnectionOpenConfirm() { +function createBaseQueryClientConnectionsResponse() { return { - connectionId: "", - proofAck: new Uint8Array(), - proofHeight: undefined, - signer: "", + connectionPaths: [], + proof: new Uint8Array(), + proofHeight: client_1.Height.fromPartial({}), }; } -exports.MsgConnectionOpenConfirm = { - encode(message, writer = _m0.Writer.create()) { - if (message.connectionId !== "") { - writer.uint32(10).string(message.connectionId); +exports.QueryClientConnectionsResponse = { + typeUrl: "/ibc.core.connection.v1.QueryClientConnectionsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.connectionPaths) { + writer.uint32(10).string(v); } - if (message.proofAck.length !== 0) { - writer.uint32(18).bytes(message.proofAck); + if (message.proof.length !== 0) { + writer.uint32(18).bytes(message.proof); } if (message.proofHeight !== undefined) { client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim(); } - if (message.signer !== "") { - writer.uint32(34).string(message.signer); - } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgConnectionOpenConfirm(); + const message = createBaseQueryClientConnectionsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.connectionId = reader.string(); + message.connectionPaths.push(reader.string()); break; case 2: - message.proofAck = reader.bytes(); + message.proof = reader.bytes(); break; case 3: message.proofHeight = client_1.Height.decode(reader, reader.uint32()); break; - case 4: - message.signer = reader.string(); - break; default: reader.skipType(tag & 7); break; @@ -93059,49 +89045,62 @@ exports.MsgConnectionOpenConfirm = { return message; }, fromJSON(object) { - return { - connectionId: (0, helpers_1.isSet)(object.connectionId) ? String(object.connectionId) : "", - proofAck: (0, helpers_1.isSet)(object.proofAck) ? (0, helpers_1.bytesFromBase64)(object.proofAck) : new Uint8Array(), - proofHeight: (0, helpers_1.isSet)(object.proofHeight) ? client_1.Height.fromJSON(object.proofHeight) : undefined, - signer: (0, helpers_1.isSet)(object.signer) ? String(object.signer) : "", - }; + const obj = createBaseQueryClientConnectionsResponse(); + if (Array.isArray(object?.connectionPaths)) + obj.connectionPaths = object.connectionPaths.map((e) => String(e)); + if ((0, helpers_1.isSet)(object.proof)) + obj.proof = (0, helpers_1.bytesFromBase64)(object.proof); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + return obj; }, toJSON(message) { const obj = {}; - message.connectionId !== undefined && (obj.connectionId = message.connectionId); - message.proofAck !== undefined && - (obj.proofAck = (0, helpers_1.base64FromBytes)(message.proofAck !== undefined ? message.proofAck : new Uint8Array())); + if (message.connectionPaths) { + obj.connectionPaths = message.connectionPaths.map((e) => e); + } + else { + obj.connectionPaths = []; + } + message.proof !== undefined && + (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array())); message.proofHeight !== undefined && (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined); - message.signer !== undefined && (obj.signer = message.signer); return obj; }, fromPartial(object) { - const message = createBaseMsgConnectionOpenConfirm(); - message.connectionId = object.connectionId ?? ""; - message.proofAck = object.proofAck ?? new Uint8Array(); - message.proofHeight = - object.proofHeight !== undefined && object.proofHeight !== null - ? client_1.Height.fromPartial(object.proofHeight) - : undefined; - message.signer = object.signer ?? ""; + const message = createBaseQueryClientConnectionsResponse(); + message.connectionPaths = object.connectionPaths?.map((e) => e) || []; + message.proof = object.proof ?? new Uint8Array(); + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); + } return message; }, }; -function createBaseMsgConnectionOpenConfirmResponse() { - return {}; +function createBaseQueryConnectionClientStateRequest() { + return { + connectionId: "", + }; } -exports.MsgConnectionOpenConfirmResponse = { - encode(_, writer = _m0.Writer.create()) { +exports.QueryConnectionClientStateRequest = { + typeUrl: "/ibc.core.connection.v1.QueryConnectionClientStateRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.connectionId !== "") { + writer.uint32(10).string(message.connectionId); + } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgConnectionOpenConfirmResponse(); + const message = createBaseQueryConnectionClientStateRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.connectionId = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -93109,187 +89108,59 @@ exports.MsgConnectionOpenConfirmResponse = { } return message; }, - fromJSON(_) { - return {}; + fromJSON(object) { + const obj = createBaseQueryConnectionClientStateRequest(); + if ((0, helpers_1.isSet)(object.connectionId)) + obj.connectionId = String(object.connectionId); + return obj; }, - toJSON(_) { + toJSON(message) { const obj = {}; + message.connectionId !== undefined && (obj.connectionId = message.connectionId); return obj; }, - fromPartial(_) { - const message = createBaseMsgConnectionOpenConfirmResponse(); + fromPartial(object) { + const message = createBaseQueryConnectionClientStateRequest(); + message.connectionId = object.connectionId ?? ""; return message; }, }; -class MsgClientImpl { - constructor(rpc) { - this.rpc = rpc; - this.ConnectionOpenInit = this.ConnectionOpenInit.bind(this); - this.ConnectionOpenTry = this.ConnectionOpenTry.bind(this); - this.ConnectionOpenAck = this.ConnectionOpenAck.bind(this); - this.ConnectionOpenConfirm = this.ConnectionOpenConfirm.bind(this); - } - ConnectionOpenInit(request) { - const data = exports.MsgConnectionOpenInit.encode(request).finish(); - const promise = this.rpc.request("ibc.core.connection.v1.Msg", "ConnectionOpenInit", data); - return promise.then((data) => exports.MsgConnectionOpenInitResponse.decode(new _m0.Reader(data))); - } - ConnectionOpenTry(request) { - const data = exports.MsgConnectionOpenTry.encode(request).finish(); - const promise = this.rpc.request("ibc.core.connection.v1.Msg", "ConnectionOpenTry", data); - return promise.then((data) => exports.MsgConnectionOpenTryResponse.decode(new _m0.Reader(data))); - } - ConnectionOpenAck(request) { - const data = exports.MsgConnectionOpenAck.encode(request).finish(); - const promise = this.rpc.request("ibc.core.connection.v1.Msg", "ConnectionOpenAck", data); - return promise.then((data) => exports.MsgConnectionOpenAckResponse.decode(new _m0.Reader(data))); - } - ConnectionOpenConfirm(request) { - const data = exports.MsgConnectionOpenConfirm.encode(request).finish(); - const promise = this.rpc.request("ibc.core.connection.v1.Msg", "ConnectionOpenConfirm", data); - return promise.then((data) => exports.MsgConnectionOpenConfirmResponse.decode(new _m0.Reader(data))); - } -} -exports.MsgClientImpl = MsgClientImpl; -//# sourceMappingURL=tx.js.map - -/***/ }), - -/***/ "./node_modules/cosmjs-types/ibc/lightclients/tendermint/v1/tendermint.js": -/*!********************************************************************************!*\ - !*** ./node_modules/cosmjs-types/ibc/lightclients/tendermint/v1/tendermint.js ***! - \********************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Fraction = exports.Header = exports.Misbehaviour = exports.ConsensusState = exports.ClientState = exports.protobufPackage = void 0; -/* eslint-disable */ -const duration_1 = __webpack_require__(/*! ../../../../google/protobuf/duration */ "./node_modules/cosmjs-types/google/protobuf/duration.js"); -const client_1 = __webpack_require__(/*! ../../../core/client/v1/client */ "./node_modules/cosmjs-types/ibc/core/client/v1/client.js"); -const proofs_1 = __webpack_require__(/*! ../../../../proofs */ "./node_modules/cosmjs-types/proofs.js"); -const timestamp_1 = __webpack_require__(/*! ../../../../google/protobuf/timestamp */ "./node_modules/cosmjs-types/google/protobuf/timestamp.js"); -const commitment_1 = __webpack_require__(/*! ../../../core/commitment/v1/commitment */ "./node_modules/cosmjs-types/ibc/core/commitment/v1/commitment.js"); -const types_1 = __webpack_require__(/*! ../../../../tendermint/types/types */ "./node_modules/cosmjs-types/tendermint/types/types.js"); -const validator_1 = __webpack_require__(/*! ../../../../tendermint/types/validator */ "./node_modules/cosmjs-types/tendermint/types/validator.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -exports.protobufPackage = "ibc.lightclients.tendermint.v1"; -function createBaseClientState() { +function createBaseQueryConnectionClientStateResponse() { return { - chainId: "", - trustLevel: undefined, - trustingPeriod: undefined, - unbondingPeriod: undefined, - maxClockDrift: undefined, - frozenHeight: undefined, - latestHeight: undefined, - proofSpecs: [], - upgradePath: [], - allowUpdateAfterExpiry: false, - allowUpdateAfterMisbehaviour: false, + identifiedClientState: undefined, + proof: new Uint8Array(), + proofHeight: client_1.Height.fromPartial({}), }; } -exports.ClientState = { - encode(message, writer = _m0.Writer.create()) { - if (message.chainId !== "") { - writer.uint32(10).string(message.chainId); - } - if (message.trustLevel !== undefined) { - exports.Fraction.encode(message.trustLevel, writer.uint32(18).fork()).ldelim(); - } - if (message.trustingPeriod !== undefined) { - duration_1.Duration.encode(message.trustingPeriod, writer.uint32(26).fork()).ldelim(); - } - if (message.unbondingPeriod !== undefined) { - duration_1.Duration.encode(message.unbondingPeriod, writer.uint32(34).fork()).ldelim(); - } - if (message.maxClockDrift !== undefined) { - duration_1.Duration.encode(message.maxClockDrift, writer.uint32(42).fork()).ldelim(); - } - if (message.frozenHeight !== undefined) { - client_1.Height.encode(message.frozenHeight, writer.uint32(50).fork()).ldelim(); - } - if (message.latestHeight !== undefined) { - client_1.Height.encode(message.latestHeight, writer.uint32(58).fork()).ldelim(); - } - for (const v of message.proofSpecs) { - proofs_1.ProofSpec.encode(v, writer.uint32(66).fork()).ldelim(); - } - for (const v of message.upgradePath) { - writer.uint32(74).string(v); +exports.QueryConnectionClientStateResponse = { + typeUrl: "/ibc.core.connection.v1.QueryConnectionClientStateResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.identifiedClientState !== undefined) { + client_1.IdentifiedClientState.encode(message.identifiedClientState, writer.uint32(10).fork()).ldelim(); } - if (message.allowUpdateAfterExpiry === true) { - writer.uint32(80).bool(message.allowUpdateAfterExpiry); + if (message.proof.length !== 0) { + writer.uint32(18).bytes(message.proof); } - if (message.allowUpdateAfterMisbehaviour === true) { - writer.uint32(88).bool(message.allowUpdateAfterMisbehaviour); + if (message.proofHeight !== undefined) { + client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseClientState(); + const message = createBaseQueryConnectionClientStateResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.chainId = reader.string(); + message.identifiedClientState = client_1.IdentifiedClientState.decode(reader, reader.uint32()); break; case 2: - message.trustLevel = exports.Fraction.decode(reader, reader.uint32()); + message.proof = reader.bytes(); break; case 3: - message.trustingPeriod = duration_1.Duration.decode(reader, reader.uint32()); - break; - case 4: - message.unbondingPeriod = duration_1.Duration.decode(reader, reader.uint32()); - break; - case 5: - message.maxClockDrift = duration_1.Duration.decode(reader, reader.uint32()); - break; - case 6: - message.frozenHeight = client_1.Height.decode(reader, reader.uint32()); - break; - case 7: - message.latestHeight = client_1.Height.decode(reader, reader.uint32()); - break; - case 8: - message.proofSpecs.push(proofs_1.ProofSpec.decode(reader, reader.uint32())); - break; - case 9: - message.upgradePath.push(reader.string()); - break; - case 10: - message.allowUpdateAfterExpiry = reader.bool(); - break; - case 11: - message.allowUpdateAfterMisbehaviour = reader.bool(); + message.proofHeight = client_1.Height.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -93299,128 +89170,75 @@ exports.ClientState = { return message; }, fromJSON(object) { - return { - chainId: (0, helpers_1.isSet)(object.chainId) ? String(object.chainId) : "", - trustLevel: (0, helpers_1.isSet)(object.trustLevel) ? exports.Fraction.fromJSON(object.trustLevel) : undefined, - trustingPeriod: (0, helpers_1.isSet)(object.trustingPeriod) ? duration_1.Duration.fromJSON(object.trustingPeriod) : undefined, - unbondingPeriod: (0, helpers_1.isSet)(object.unbondingPeriod) ? duration_1.Duration.fromJSON(object.unbondingPeriod) : undefined, - maxClockDrift: (0, helpers_1.isSet)(object.maxClockDrift) ? duration_1.Duration.fromJSON(object.maxClockDrift) : undefined, - frozenHeight: (0, helpers_1.isSet)(object.frozenHeight) ? client_1.Height.fromJSON(object.frozenHeight) : undefined, - latestHeight: (0, helpers_1.isSet)(object.latestHeight) ? client_1.Height.fromJSON(object.latestHeight) : undefined, - proofSpecs: Array.isArray(object?.proofSpecs) - ? object.proofSpecs.map((e) => proofs_1.ProofSpec.fromJSON(e)) - : [], - upgradePath: Array.isArray(object?.upgradePath) ? object.upgradePath.map((e) => String(e)) : [], - allowUpdateAfterExpiry: (0, helpers_1.isSet)(object.allowUpdateAfterExpiry) - ? Boolean(object.allowUpdateAfterExpiry) - : false, - allowUpdateAfterMisbehaviour: (0, helpers_1.isSet)(object.allowUpdateAfterMisbehaviour) - ? Boolean(object.allowUpdateAfterMisbehaviour) - : false, - }; + const obj = createBaseQueryConnectionClientStateResponse(); + if ((0, helpers_1.isSet)(object.identifiedClientState)) + obj.identifiedClientState = client_1.IdentifiedClientState.fromJSON(object.identifiedClientState); + if ((0, helpers_1.isSet)(object.proof)) + obj.proof = (0, helpers_1.bytesFromBase64)(object.proof); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + return obj; }, toJSON(message) { const obj = {}; - message.chainId !== undefined && (obj.chainId = message.chainId); - message.trustLevel !== undefined && - (obj.trustLevel = message.trustLevel ? exports.Fraction.toJSON(message.trustLevel) : undefined); - message.trustingPeriod !== undefined && - (obj.trustingPeriod = message.trustingPeriod ? duration_1.Duration.toJSON(message.trustingPeriod) : undefined); - message.unbondingPeriod !== undefined && - (obj.unbondingPeriod = message.unbondingPeriod ? duration_1.Duration.toJSON(message.unbondingPeriod) : undefined); - message.maxClockDrift !== undefined && - (obj.maxClockDrift = message.maxClockDrift ? duration_1.Duration.toJSON(message.maxClockDrift) : undefined); - message.frozenHeight !== undefined && - (obj.frozenHeight = message.frozenHeight ? client_1.Height.toJSON(message.frozenHeight) : undefined); - message.latestHeight !== undefined && - (obj.latestHeight = message.latestHeight ? client_1.Height.toJSON(message.latestHeight) : undefined); - if (message.proofSpecs) { - obj.proofSpecs = message.proofSpecs.map((e) => (e ? proofs_1.ProofSpec.toJSON(e) : undefined)); - } - else { - obj.proofSpecs = []; - } - if (message.upgradePath) { - obj.upgradePath = message.upgradePath.map((e) => e); - } - else { - obj.upgradePath = []; - } - message.allowUpdateAfterExpiry !== undefined && - (obj.allowUpdateAfterExpiry = message.allowUpdateAfterExpiry); - message.allowUpdateAfterMisbehaviour !== undefined && - (obj.allowUpdateAfterMisbehaviour = message.allowUpdateAfterMisbehaviour); + message.identifiedClientState !== undefined && + (obj.identifiedClientState = message.identifiedClientState + ? client_1.IdentifiedClientState.toJSON(message.identifiedClientState) + : undefined); + message.proof !== undefined && + (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array())); + message.proofHeight !== undefined && + (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined); return obj; }, fromPartial(object) { - const message = createBaseClientState(); - message.chainId = object.chainId ?? ""; - message.trustLevel = - object.trustLevel !== undefined && object.trustLevel !== null - ? exports.Fraction.fromPartial(object.trustLevel) - : undefined; - message.trustingPeriod = - object.trustingPeriod !== undefined && object.trustingPeriod !== null - ? duration_1.Duration.fromPartial(object.trustingPeriod) - : undefined; - message.unbondingPeriod = - object.unbondingPeriod !== undefined && object.unbondingPeriod !== null - ? duration_1.Duration.fromPartial(object.unbondingPeriod) - : undefined; - message.maxClockDrift = - object.maxClockDrift !== undefined && object.maxClockDrift !== null - ? duration_1.Duration.fromPartial(object.maxClockDrift) - : undefined; - message.frozenHeight = - object.frozenHeight !== undefined && object.frozenHeight !== null - ? client_1.Height.fromPartial(object.frozenHeight) - : undefined; - message.latestHeight = - object.latestHeight !== undefined && object.latestHeight !== null - ? client_1.Height.fromPartial(object.latestHeight) - : undefined; - message.proofSpecs = object.proofSpecs?.map((e) => proofs_1.ProofSpec.fromPartial(e)) || []; - message.upgradePath = object.upgradePath?.map((e) => e) || []; - message.allowUpdateAfterExpiry = object.allowUpdateAfterExpiry ?? false; - message.allowUpdateAfterMisbehaviour = object.allowUpdateAfterMisbehaviour ?? false; + const message = createBaseQueryConnectionClientStateResponse(); + if (object.identifiedClientState !== undefined && object.identifiedClientState !== null) { + message.identifiedClientState = client_1.IdentifiedClientState.fromPartial(object.identifiedClientState); + } + message.proof = object.proof ?? new Uint8Array(); + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); + } return message; }, }; -function createBaseConsensusState() { +function createBaseQueryConnectionConsensusStateRequest() { return { - timestamp: undefined, - root: undefined, - nextValidatorsHash: new Uint8Array(), + connectionId: "", + revisionNumber: BigInt(0), + revisionHeight: BigInt(0), }; } -exports.ConsensusState = { - encode(message, writer = _m0.Writer.create()) { - if (message.timestamp !== undefined) { - timestamp_1.Timestamp.encode(message.timestamp, writer.uint32(10).fork()).ldelim(); +exports.QueryConnectionConsensusStateRequest = { + typeUrl: "/ibc.core.connection.v1.QueryConnectionConsensusStateRequest", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.connectionId !== "") { + writer.uint32(10).string(message.connectionId); } - if (message.root !== undefined) { - commitment_1.MerkleRoot.encode(message.root, writer.uint32(18).fork()).ldelim(); + if (message.revisionNumber !== BigInt(0)) { + writer.uint32(16).uint64(message.revisionNumber); } - if (message.nextValidatorsHash.length !== 0) { - writer.uint32(26).bytes(message.nextValidatorsHash); + if (message.revisionHeight !== BigInt(0)) { + writer.uint32(24).uint64(message.revisionHeight); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseConsensusState(); + const message = createBaseQueryConnectionConsensusStateRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.timestamp = timestamp_1.Timestamp.decode(reader, reader.uint32()); + message.connectionId = reader.string(); break; case 2: - message.root = commitment_1.MerkleRoot.decode(reader, reader.uint32()); + message.revisionNumber = reader.uint64(); break; case 3: - message.nextValidatorsHash = reader.bytes(); + message.revisionHeight = reader.uint64(); break; default: reader.skipType(tag & 7); @@ -93430,69 +89248,79 @@ exports.ConsensusState = { return message; }, fromJSON(object) { - return { - timestamp: (0, helpers_1.isSet)(object.timestamp) ? (0, helpers_1.fromJsonTimestamp)(object.timestamp) : undefined, - root: (0, helpers_1.isSet)(object.root) ? commitment_1.MerkleRoot.fromJSON(object.root) : undefined, - nextValidatorsHash: (0, helpers_1.isSet)(object.nextValidatorsHash) - ? (0, helpers_1.bytesFromBase64)(object.nextValidatorsHash) - : new Uint8Array(), - }; + const obj = createBaseQueryConnectionConsensusStateRequest(); + if ((0, helpers_1.isSet)(object.connectionId)) + obj.connectionId = String(object.connectionId); + if ((0, helpers_1.isSet)(object.revisionNumber)) + obj.revisionNumber = BigInt(object.revisionNumber.toString()); + if ((0, helpers_1.isSet)(object.revisionHeight)) + obj.revisionHeight = BigInt(object.revisionHeight.toString()); + return obj; }, toJSON(message) { const obj = {}; - message.timestamp !== undefined && (obj.timestamp = (0, helpers_1.fromTimestamp)(message.timestamp).toISOString()); - message.root !== undefined && (obj.root = message.root ? commitment_1.MerkleRoot.toJSON(message.root) : undefined); - message.nextValidatorsHash !== undefined && - (obj.nextValidatorsHash = (0, helpers_1.base64FromBytes)(message.nextValidatorsHash !== undefined ? message.nextValidatorsHash : new Uint8Array())); + message.connectionId !== undefined && (obj.connectionId = message.connectionId); + message.revisionNumber !== undefined && + (obj.revisionNumber = (message.revisionNumber || BigInt(0)).toString()); + message.revisionHeight !== undefined && + (obj.revisionHeight = (message.revisionHeight || BigInt(0)).toString()); return obj; }, fromPartial(object) { - const message = createBaseConsensusState(); - message.timestamp = - object.timestamp !== undefined && object.timestamp !== null - ? timestamp_1.Timestamp.fromPartial(object.timestamp) - : undefined; - message.root = - object.root !== undefined && object.root !== null ? commitment_1.MerkleRoot.fromPartial(object.root) : undefined; - message.nextValidatorsHash = object.nextValidatorsHash ?? new Uint8Array(); + const message = createBaseQueryConnectionConsensusStateRequest(); + message.connectionId = object.connectionId ?? ""; + if (object.revisionNumber !== undefined && object.revisionNumber !== null) { + message.revisionNumber = BigInt(object.revisionNumber.toString()); + } + if (object.revisionHeight !== undefined && object.revisionHeight !== null) { + message.revisionHeight = BigInt(object.revisionHeight.toString()); + } return message; }, }; -function createBaseMisbehaviour() { +function createBaseQueryConnectionConsensusStateResponse() { return { + consensusState: undefined, clientId: "", - header1: undefined, - header2: undefined, + proof: new Uint8Array(), + proofHeight: client_1.Height.fromPartial({}), }; } -exports.Misbehaviour = { - encode(message, writer = _m0.Writer.create()) { +exports.QueryConnectionConsensusStateResponse = { + typeUrl: "/ibc.core.connection.v1.QueryConnectionConsensusStateResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.consensusState !== undefined) { + any_1.Any.encode(message.consensusState, writer.uint32(10).fork()).ldelim(); + } if (message.clientId !== "") { - writer.uint32(10).string(message.clientId); + writer.uint32(18).string(message.clientId); } - if (message.header1 !== undefined) { - exports.Header.encode(message.header1, writer.uint32(18).fork()).ldelim(); + if (message.proof.length !== 0) { + writer.uint32(26).bytes(message.proof); } - if (message.header2 !== undefined) { - exports.Header.encode(message.header2, writer.uint32(26).fork()).ldelim(); + if (message.proofHeight !== undefined) { + client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMisbehaviour(); + const message = createBaseQueryConnectionConsensusStateResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.clientId = reader.string(); + message.consensusState = any_1.Any.decode(reader, reader.uint32()); break; case 2: - message.header1 = exports.Header.decode(reader, reader.uint32()); + message.clientId = reader.string(); break; case 3: - message.header2 = exports.Header.decode(reader, reader.uint32()); + message.proof = reader.bytes(); + break; + case 4: + message.proofHeight = client_1.Height.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -93502,78 +89330,56 @@ exports.Misbehaviour = { return message; }, fromJSON(object) { - return { - clientId: (0, helpers_1.isSet)(object.clientId) ? String(object.clientId) : "", - header1: (0, helpers_1.isSet)(object.header1) ? exports.Header.fromJSON(object.header1) : undefined, - header2: (0, helpers_1.isSet)(object.header2) ? exports.Header.fromJSON(object.header2) : undefined, - }; + const obj = createBaseQueryConnectionConsensusStateResponse(); + if ((0, helpers_1.isSet)(object.consensusState)) + obj.consensusState = any_1.Any.fromJSON(object.consensusState); + if ((0, helpers_1.isSet)(object.clientId)) + obj.clientId = String(object.clientId); + if ((0, helpers_1.isSet)(object.proof)) + obj.proof = (0, helpers_1.bytesFromBase64)(object.proof); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + return obj; }, toJSON(message) { const obj = {}; + message.consensusState !== undefined && + (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined); message.clientId !== undefined && (obj.clientId = message.clientId); - message.header1 !== undefined && - (obj.header1 = message.header1 ? exports.Header.toJSON(message.header1) : undefined); - message.header2 !== undefined && - (obj.header2 = message.header2 ? exports.Header.toJSON(message.header2) : undefined); + message.proof !== undefined && + (obj.proof = (0, helpers_1.base64FromBytes)(message.proof !== undefined ? message.proof : new Uint8Array())); + message.proofHeight !== undefined && + (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined); return obj; }, fromPartial(object) { - const message = createBaseMisbehaviour(); + const message = createBaseQueryConnectionConsensusStateResponse(); + if (object.consensusState !== undefined && object.consensusState !== null) { + message.consensusState = any_1.Any.fromPartial(object.consensusState); + } message.clientId = object.clientId ?? ""; - message.header1 = - object.header1 !== undefined && object.header1 !== null - ? exports.Header.fromPartial(object.header1) - : undefined; - message.header2 = - object.header2 !== undefined && object.header2 !== null - ? exports.Header.fromPartial(object.header2) - : undefined; + message.proof = object.proof ?? new Uint8Array(); + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); + } return message; }, }; -function createBaseHeader() { - return { - signedHeader: undefined, - validatorSet: undefined, - trustedHeight: undefined, - trustedValidators: undefined, - }; +function createBaseQueryConnectionParamsRequest() { + return {}; } -exports.Header = { - encode(message, writer = _m0.Writer.create()) { - if (message.signedHeader !== undefined) { - types_1.SignedHeader.encode(message.signedHeader, writer.uint32(10).fork()).ldelim(); - } - if (message.validatorSet !== undefined) { - validator_1.ValidatorSet.encode(message.validatorSet, writer.uint32(18).fork()).ldelim(); - } - if (message.trustedHeight !== undefined) { - client_1.Height.encode(message.trustedHeight, writer.uint32(26).fork()).ldelim(); - } - if (message.trustedValidators !== undefined) { - validator_1.ValidatorSet.encode(message.trustedValidators, writer.uint32(34).fork()).ldelim(); - } +exports.QueryConnectionParamsRequest = { + typeUrl: "/ibc.core.connection.v1.QueryConnectionParamsRequest", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseHeader(); + const message = createBaseQueryConnectionParamsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.signedHeader = types_1.SignedHeader.decode(reader, reader.uint32()); - break; - case 2: - message.validatorSet = validator_1.ValidatorSet.decode(reader, reader.uint32()); - break; - case 3: - message.trustedHeight = client_1.Height.decode(reader, reader.uint32()); - break; - case 4: - message.trustedValidators = validator_1.ValidatorSet.decode(reader, reader.uint32()); - break; default: reader.skipType(tag & 7); break; @@ -93581,79 +89387,41 @@ exports.Header = { } return message; }, - fromJSON(object) { - return { - signedHeader: (0, helpers_1.isSet)(object.signedHeader) ? types_1.SignedHeader.fromJSON(object.signedHeader) : undefined, - validatorSet: (0, helpers_1.isSet)(object.validatorSet) ? validator_1.ValidatorSet.fromJSON(object.validatorSet) : undefined, - trustedHeight: (0, helpers_1.isSet)(object.trustedHeight) ? client_1.Height.fromJSON(object.trustedHeight) : undefined, - trustedValidators: (0, helpers_1.isSet)(object.trustedValidators) - ? validator_1.ValidatorSet.fromJSON(object.trustedValidators) - : undefined, - }; + fromJSON(_) { + const obj = createBaseQueryConnectionParamsRequest(); + return obj; }, - toJSON(message) { + toJSON(_) { const obj = {}; - message.signedHeader !== undefined && - (obj.signedHeader = message.signedHeader ? types_1.SignedHeader.toJSON(message.signedHeader) : undefined); - message.validatorSet !== undefined && - (obj.validatorSet = message.validatorSet ? validator_1.ValidatorSet.toJSON(message.validatorSet) : undefined); - message.trustedHeight !== undefined && - (obj.trustedHeight = message.trustedHeight ? client_1.Height.toJSON(message.trustedHeight) : undefined); - message.trustedValidators !== undefined && - (obj.trustedValidators = message.trustedValidators - ? validator_1.ValidatorSet.toJSON(message.trustedValidators) - : undefined); return obj; }, - fromPartial(object) { - const message = createBaseHeader(); - message.signedHeader = - object.signedHeader !== undefined && object.signedHeader !== null - ? types_1.SignedHeader.fromPartial(object.signedHeader) - : undefined; - message.validatorSet = - object.validatorSet !== undefined && object.validatorSet !== null - ? validator_1.ValidatorSet.fromPartial(object.validatorSet) - : undefined; - message.trustedHeight = - object.trustedHeight !== undefined && object.trustedHeight !== null - ? client_1.Height.fromPartial(object.trustedHeight) - : undefined; - message.trustedValidators = - object.trustedValidators !== undefined && object.trustedValidators !== null - ? validator_1.ValidatorSet.fromPartial(object.trustedValidators) - : undefined; + fromPartial(_) { + const message = createBaseQueryConnectionParamsRequest(); return message; }, }; -function createBaseFraction() { +function createBaseQueryConnectionParamsResponse() { return { - numerator: helpers_1.Long.UZERO, - denominator: helpers_1.Long.UZERO, + params: undefined, }; } -exports.Fraction = { - encode(message, writer = _m0.Writer.create()) { - if (!message.numerator.isZero()) { - writer.uint32(8).uint64(message.numerator); - } - if (!message.denominator.isZero()) { - writer.uint32(16).uint64(message.denominator); +exports.QueryConnectionParamsResponse = { + typeUrl: "/ibc.core.connection.v1.QueryConnectionParamsResponse", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.params !== undefined) { + client_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseFraction(); + const message = createBaseQueryConnectionParamsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.numerator = reader.uint64(); - break; - case 2: - message.denominator = reader.uint64(); + message.params = client_1.Params.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -93663,262 +89431,139 @@ exports.Fraction = { return message; }, fromJSON(object) { - return { - numerator: (0, helpers_1.isSet)(object.numerator) ? helpers_1.Long.fromValue(object.numerator) : helpers_1.Long.UZERO, - denominator: (0, helpers_1.isSet)(object.denominator) ? helpers_1.Long.fromValue(object.denominator) : helpers_1.Long.UZERO, - }; + const obj = createBaseQueryConnectionParamsResponse(); + if ((0, helpers_1.isSet)(object.params)) + obj.params = client_1.Params.fromJSON(object.params); + return obj; }, toJSON(message) { const obj = {}; - message.numerator !== undefined && (obj.numerator = (message.numerator || helpers_1.Long.UZERO).toString()); - message.denominator !== undefined && (obj.denominator = (message.denominator || helpers_1.Long.UZERO).toString()); + message.params !== undefined && (obj.params = message.params ? client_1.Params.toJSON(message.params) : undefined); return obj; }, fromPartial(object) { - const message = createBaseFraction(); - message.numerator = - object.numerator !== undefined && object.numerator !== null - ? helpers_1.Long.fromValue(object.numerator) - : helpers_1.Long.UZERO; - message.denominator = - object.denominator !== undefined && object.denominator !== null - ? helpers_1.Long.fromValue(object.denominator) - : helpers_1.Long.UZERO; + const message = createBaseQueryConnectionParamsResponse(); + if (object.params !== undefined && object.params !== null) { + message.params = client_1.Params.fromPartial(object.params); + } return message; }, }; -//# sourceMappingURL=tendermint.js.map +class QueryClientImpl { + constructor(rpc) { + this.rpc = rpc; + this.Connection = this.Connection.bind(this); + this.Connections = this.Connections.bind(this); + this.ClientConnections = this.ClientConnections.bind(this); + this.ConnectionClientState = this.ConnectionClientState.bind(this); + this.ConnectionConsensusState = this.ConnectionConsensusState.bind(this); + this.ConnectionParams = this.ConnectionParams.bind(this); + } + Connection(request) { + const data = exports.QueryConnectionRequest.encode(request).finish(); + const promise = this.rpc.request("ibc.core.connection.v1.Query", "Connection", data); + return promise.then((data) => exports.QueryConnectionResponse.decode(new binary_1.BinaryReader(data))); + } + Connections(request = { + pagination: pagination_1.PageRequest.fromPartial({}), + }) { + const data = exports.QueryConnectionsRequest.encode(request).finish(); + const promise = this.rpc.request("ibc.core.connection.v1.Query", "Connections", data); + return promise.then((data) => exports.QueryConnectionsResponse.decode(new binary_1.BinaryReader(data))); + } + ClientConnections(request) { + const data = exports.QueryClientConnectionsRequest.encode(request).finish(); + const promise = this.rpc.request("ibc.core.connection.v1.Query", "ClientConnections", data); + return promise.then((data) => exports.QueryClientConnectionsResponse.decode(new binary_1.BinaryReader(data))); + } + ConnectionClientState(request) { + const data = exports.QueryConnectionClientStateRequest.encode(request).finish(); + const promise = this.rpc.request("ibc.core.connection.v1.Query", "ConnectionClientState", data); + return promise.then((data) => exports.QueryConnectionClientStateResponse.decode(new binary_1.BinaryReader(data))); + } + ConnectionConsensusState(request) { + const data = exports.QueryConnectionConsensusStateRequest.encode(request).finish(); + const promise = this.rpc.request("ibc.core.connection.v1.Query", "ConnectionConsensusState", data); + return promise.then((data) => exports.QueryConnectionConsensusStateResponse.decode(new binary_1.BinaryReader(data))); + } + ConnectionParams(request = {}) { + const data = exports.QueryConnectionParamsRequest.encode(request).finish(); + const promise = this.rpc.request("ibc.core.connection.v1.Query", "ConnectionParams", data); + return promise.then((data) => exports.QueryConnectionParamsResponse.decode(new binary_1.BinaryReader(data))); + } +} +exports.QueryClientImpl = QueryClientImpl; +//# sourceMappingURL=query.js.map /***/ }), -/***/ "./node_modules/cosmjs-types/proofs.js": -/*!*********************************************!*\ - !*** ./node_modules/cosmjs-types/proofs.js ***! - \*********************************************/ +/***/ "./node_modules/cosmjs-types/ibc/core/connection/v1/tx.js": +/*!****************************************************************!*\ + !*** ./node_modules/cosmjs-types/ibc/core/connection/v1/tx.js ***! + \****************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.CompressedNonExistenceProof = exports.CompressedExistenceProof = exports.CompressedBatchEntry = exports.CompressedBatchProof = exports.BatchEntry = exports.BatchProof = exports.InnerSpec = exports.ProofSpec = exports.InnerOp = exports.LeafOp = exports.CommitmentProof = exports.NonExistenceProof = exports.ExistenceProof = exports.lengthOpToJSON = exports.lengthOpFromJSON = exports.LengthOp = exports.hashOpToJSON = exports.hashOpFromJSON = exports.HashOp = exports.protobufPackage = void 0; +exports.MsgClientImpl = exports.MsgConnectionOpenConfirmResponse = exports.MsgConnectionOpenConfirm = exports.MsgConnectionOpenAckResponse = exports.MsgConnectionOpenAck = exports.MsgConnectionOpenTryResponse = exports.MsgConnectionOpenTry = exports.MsgConnectionOpenInitResponse = exports.MsgConnectionOpenInit = exports.protobufPackage = void 0; /* eslint-disable */ -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ./helpers */ "./node_modules/cosmjs-types/helpers.js"); -exports.protobufPackage = "ics23"; -var HashOp; -(function (HashOp) { - /** NO_HASH - NO_HASH is the default if no data passed. Note this is an illegal argument some places. */ - HashOp[HashOp["NO_HASH"] = 0] = "NO_HASH"; - HashOp[HashOp["SHA256"] = 1] = "SHA256"; - HashOp[HashOp["SHA512"] = 2] = "SHA512"; - HashOp[HashOp["KECCAK"] = 3] = "KECCAK"; - HashOp[HashOp["RIPEMD160"] = 4] = "RIPEMD160"; - /** BITCOIN - ripemd160(sha256(x)) */ - HashOp[HashOp["BITCOIN"] = 5] = "BITCOIN"; - HashOp[HashOp["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(HashOp = exports.HashOp || (exports.HashOp = {})); -function hashOpFromJSON(object) { - switch (object) { - case 0: - case "NO_HASH": - return HashOp.NO_HASH; - case 1: - case "SHA256": - return HashOp.SHA256; - case 2: - case "SHA512": - return HashOp.SHA512; - case 3: - case "KECCAK": - return HashOp.KECCAK; - case 4: - case "RIPEMD160": - return HashOp.RIPEMD160; - case 5: - case "BITCOIN": - return HashOp.BITCOIN; - case -1: - case "UNRECOGNIZED": - default: - return HashOp.UNRECOGNIZED; - } -} -exports.hashOpFromJSON = hashOpFromJSON; -function hashOpToJSON(object) { - switch (object) { - case HashOp.NO_HASH: - return "NO_HASH"; - case HashOp.SHA256: - return "SHA256"; - case HashOp.SHA512: - return "SHA512"; - case HashOp.KECCAK: - return "KECCAK"; - case HashOp.RIPEMD160: - return "RIPEMD160"; - case HashOp.BITCOIN: - return "BITCOIN"; - case HashOp.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -exports.hashOpToJSON = hashOpToJSON; -/** - * LengthOp defines how to process the key and value of the LeafOp - * to include length information. After encoding the length with the given - * algorithm, the length will be prepended to the key and value bytes. - * (Each one with it's own encoded length) - */ -var LengthOp; -(function (LengthOp) { - /** NO_PREFIX - NO_PREFIX don't include any length info */ - LengthOp[LengthOp["NO_PREFIX"] = 0] = "NO_PREFIX"; - /** VAR_PROTO - VAR_PROTO uses protobuf (and go-amino) varint encoding of the length */ - LengthOp[LengthOp["VAR_PROTO"] = 1] = "VAR_PROTO"; - /** VAR_RLP - VAR_RLP uses rlp int encoding of the length */ - LengthOp[LengthOp["VAR_RLP"] = 2] = "VAR_RLP"; - /** FIXED32_BIG - FIXED32_BIG uses big-endian encoding of the length as a 32 bit integer */ - LengthOp[LengthOp["FIXED32_BIG"] = 3] = "FIXED32_BIG"; - /** FIXED32_LITTLE - FIXED32_LITTLE uses little-endian encoding of the length as a 32 bit integer */ - LengthOp[LengthOp["FIXED32_LITTLE"] = 4] = "FIXED32_LITTLE"; - /** FIXED64_BIG - FIXED64_BIG uses big-endian encoding of the length as a 64 bit integer */ - LengthOp[LengthOp["FIXED64_BIG"] = 5] = "FIXED64_BIG"; - /** FIXED64_LITTLE - FIXED64_LITTLE uses little-endian encoding of the length as a 64 bit integer */ - LengthOp[LengthOp["FIXED64_LITTLE"] = 6] = "FIXED64_LITTLE"; - /** REQUIRE_32_BYTES - REQUIRE_32_BYTES is like NONE, but will fail if the input is not exactly 32 bytes (sha256 output) */ - LengthOp[LengthOp["REQUIRE_32_BYTES"] = 7] = "REQUIRE_32_BYTES"; - /** REQUIRE_64_BYTES - REQUIRE_64_BYTES is like NONE, but will fail if the input is not exactly 64 bytes (sha512 output) */ - LengthOp[LengthOp["REQUIRE_64_BYTES"] = 8] = "REQUIRE_64_BYTES"; - LengthOp[LengthOp["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(LengthOp = exports.LengthOp || (exports.LengthOp = {})); -function lengthOpFromJSON(object) { - switch (object) { - case 0: - case "NO_PREFIX": - return LengthOp.NO_PREFIX; - case 1: - case "VAR_PROTO": - return LengthOp.VAR_PROTO; - case 2: - case "VAR_RLP": - return LengthOp.VAR_RLP; - case 3: - case "FIXED32_BIG": - return LengthOp.FIXED32_BIG; - case 4: - case "FIXED32_LITTLE": - return LengthOp.FIXED32_LITTLE; - case 5: - case "FIXED64_BIG": - return LengthOp.FIXED64_BIG; - case 6: - case "FIXED64_LITTLE": - return LengthOp.FIXED64_LITTLE; - case 7: - case "REQUIRE_32_BYTES": - return LengthOp.REQUIRE_32_BYTES; - case 8: - case "REQUIRE_64_BYTES": - return LengthOp.REQUIRE_64_BYTES; - case -1: - case "UNRECOGNIZED": - default: - return LengthOp.UNRECOGNIZED; - } -} -exports.lengthOpFromJSON = lengthOpFromJSON; -function lengthOpToJSON(object) { - switch (object) { - case LengthOp.NO_PREFIX: - return "NO_PREFIX"; - case LengthOp.VAR_PROTO: - return "VAR_PROTO"; - case LengthOp.VAR_RLP: - return "VAR_RLP"; - case LengthOp.FIXED32_BIG: - return "FIXED32_BIG"; - case LengthOp.FIXED32_LITTLE: - return "FIXED32_LITTLE"; - case LengthOp.FIXED64_BIG: - return "FIXED64_BIG"; - case LengthOp.FIXED64_LITTLE: - return "FIXED64_LITTLE"; - case LengthOp.REQUIRE_32_BYTES: - return "REQUIRE_32_BYTES"; - case LengthOp.REQUIRE_64_BYTES: - return "REQUIRE_64_BYTES"; - case LengthOp.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -exports.lengthOpToJSON = lengthOpToJSON; -function createBaseExistenceProof() { +const connection_1 = __webpack_require__(/*! ./connection */ "./node_modules/cosmjs-types/ibc/core/connection/v1/connection.js"); +const any_1 = __webpack_require__(/*! ../../../../google/protobuf/any */ "./node_modules/cosmjs-types/google/protobuf/any.js"); +const client_1 = __webpack_require__(/*! ../../client/v1/client */ "./node_modules/cosmjs-types/ibc/core/client/v1/client.js"); +const binary_1 = __webpack_require__(/*! ../../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "ibc.core.connection.v1"; +function createBaseMsgConnectionOpenInit() { return { - key: new Uint8Array(), - value: new Uint8Array(), - leaf: undefined, - path: [], + clientId: "", + counterparty: connection_1.Counterparty.fromPartial({}), + version: undefined, + delayPeriod: BigInt(0), + signer: "", }; } -exports.ExistenceProof = { - encode(message, writer = _m0.Writer.create()) { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); +exports.MsgConnectionOpenInit = { + typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenInit", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.clientId !== "") { + writer.uint32(10).string(message.clientId); } - if (message.value.length !== 0) { - writer.uint32(18).bytes(message.value); + if (message.counterparty !== undefined) { + connection_1.Counterparty.encode(message.counterparty, writer.uint32(18).fork()).ldelim(); } - if (message.leaf !== undefined) { - exports.LeafOp.encode(message.leaf, writer.uint32(26).fork()).ldelim(); + if (message.version !== undefined) { + connection_1.Version.encode(message.version, writer.uint32(26).fork()).ldelim(); } - for (const v of message.path) { - exports.InnerOp.encode(v, writer.uint32(34).fork()).ldelim(); + if (message.delayPeriod !== BigInt(0)) { + writer.uint32(32).uint64(message.delayPeriod); + } + if (message.signer !== "") { + writer.uint32(42).string(message.signer); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseExistenceProof(); + const message = createBaseMsgConnectionOpenInit(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.key = reader.bytes(); + message.clientId = reader.string(); break; case 2: - message.value = reader.bytes(); + message.counterparty = connection_1.Counterparty.decode(reader, reader.uint32()); break; case 3: - message.leaf = exports.LeafOp.decode(reader, reader.uint32()); + message.version = connection_1.Version.decode(reader, reader.uint32()); break; case 4: - message.path.push(exports.InnerOp.decode(reader, reader.uint32())); + message.delayPeriod = reader.uint64(); + break; + case 5: + message.signer = reader.string(); break; default: reader.skipType(tag & 7); @@ -93928,74 +89573,61 @@ exports.ExistenceProof = { return message; }, fromJSON(object) { - return { - key: (0, helpers_1.isSet)(object.key) ? (0, helpers_1.bytesFromBase64)(object.key) : new Uint8Array(), - value: (0, helpers_1.isSet)(object.value) ? (0, helpers_1.bytesFromBase64)(object.value) : new Uint8Array(), - leaf: (0, helpers_1.isSet)(object.leaf) ? exports.LeafOp.fromJSON(object.leaf) : undefined, - path: Array.isArray(object?.path) ? object.path.map((e) => exports.InnerOp.fromJSON(e)) : [], - }; + const obj = createBaseMsgConnectionOpenInit(); + if ((0, helpers_1.isSet)(object.clientId)) + obj.clientId = String(object.clientId); + if ((0, helpers_1.isSet)(object.counterparty)) + obj.counterparty = connection_1.Counterparty.fromJSON(object.counterparty); + if ((0, helpers_1.isSet)(object.version)) + obj.version = connection_1.Version.fromJSON(object.version); + if ((0, helpers_1.isSet)(object.delayPeriod)) + obj.delayPeriod = BigInt(object.delayPeriod.toString()); + if ((0, helpers_1.isSet)(object.signer)) + obj.signer = String(object.signer); + return obj; }, toJSON(message) { const obj = {}; - message.key !== undefined && - (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array())); - message.value !== undefined && - (obj.value = (0, helpers_1.base64FromBytes)(message.value !== undefined ? message.value : new Uint8Array())); - message.leaf !== undefined && (obj.leaf = message.leaf ? exports.LeafOp.toJSON(message.leaf) : undefined); - if (message.path) { - obj.path = message.path.map((e) => (e ? exports.InnerOp.toJSON(e) : undefined)); - } - else { - obj.path = []; - } + message.clientId !== undefined && (obj.clientId = message.clientId); + message.counterparty !== undefined && + (obj.counterparty = message.counterparty ? connection_1.Counterparty.toJSON(message.counterparty) : undefined); + message.version !== undefined && + (obj.version = message.version ? connection_1.Version.toJSON(message.version) : undefined); + message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || BigInt(0)).toString()); + message.signer !== undefined && (obj.signer = message.signer); return obj; }, fromPartial(object) { - const message = createBaseExistenceProof(); - message.key = object.key ?? new Uint8Array(); - message.value = object.value ?? new Uint8Array(); - message.leaf = - object.leaf !== undefined && object.leaf !== null ? exports.LeafOp.fromPartial(object.leaf) : undefined; - message.path = object.path?.map((e) => exports.InnerOp.fromPartial(e)) || []; + const message = createBaseMsgConnectionOpenInit(); + message.clientId = object.clientId ?? ""; + if (object.counterparty !== undefined && object.counterparty !== null) { + message.counterparty = connection_1.Counterparty.fromPartial(object.counterparty); + } + if (object.version !== undefined && object.version !== null) { + message.version = connection_1.Version.fromPartial(object.version); + } + if (object.delayPeriod !== undefined && object.delayPeriod !== null) { + message.delayPeriod = BigInt(object.delayPeriod.toString()); + } + message.signer = object.signer ?? ""; return message; }, }; -function createBaseNonExistenceProof() { - return { - key: new Uint8Array(), - left: undefined, - right: undefined, - }; +function createBaseMsgConnectionOpenInitResponse() { + return {}; } -exports.NonExistenceProof = { - encode(message, writer = _m0.Writer.create()) { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); - } - if (message.left !== undefined) { - exports.ExistenceProof.encode(message.left, writer.uint32(18).fork()).ldelim(); - } - if (message.right !== undefined) { - exports.ExistenceProof.encode(message.right, writer.uint32(26).fork()).ldelim(); - } +exports.MsgConnectionOpenInitResponse = { + typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenInitResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseNonExistenceProof(); + const message = createBaseMsgConnectionOpenInitResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.key = reader.bytes(); - break; - case 2: - message.left = exports.ExistenceProof.decode(reader, reader.uint32()); - break; - case 3: - message.right = exports.ExistenceProof.decode(reader, reader.uint32()); - break; default: reader.skipType(tag & 7); break; @@ -94003,76 +89635,125 @@ exports.NonExistenceProof = { } return message; }, - fromJSON(object) { - return { - key: (0, helpers_1.isSet)(object.key) ? (0, helpers_1.bytesFromBase64)(object.key) : new Uint8Array(), - left: (0, helpers_1.isSet)(object.left) ? exports.ExistenceProof.fromJSON(object.left) : undefined, - right: (0, helpers_1.isSet)(object.right) ? exports.ExistenceProof.fromJSON(object.right) : undefined, - }; + fromJSON(_) { + const obj = createBaseMsgConnectionOpenInitResponse(); + return obj; }, - toJSON(message) { + toJSON(_) { const obj = {}; - message.key !== undefined && - (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array())); - message.left !== undefined && (obj.left = message.left ? exports.ExistenceProof.toJSON(message.left) : undefined); - message.right !== undefined && - (obj.right = message.right ? exports.ExistenceProof.toJSON(message.right) : undefined); return obj; }, - fromPartial(object) { - const message = createBaseNonExistenceProof(); - message.key = object.key ?? new Uint8Array(); - message.left = - object.left !== undefined && object.left !== null ? exports.ExistenceProof.fromPartial(object.left) : undefined; - message.right = - object.right !== undefined && object.right !== null - ? exports.ExistenceProof.fromPartial(object.right) - : undefined; + fromPartial(_) { + const message = createBaseMsgConnectionOpenInitResponse(); return message; }, }; -function createBaseCommitmentProof() { +function createBaseMsgConnectionOpenTry() { return { - exist: undefined, - nonexist: undefined, - batch: undefined, - compressed: undefined, + clientId: "", + previousConnectionId: "", + clientState: undefined, + counterparty: connection_1.Counterparty.fromPartial({}), + delayPeriod: BigInt(0), + counterpartyVersions: [], + proofHeight: client_1.Height.fromPartial({}), + proofInit: new Uint8Array(), + proofClient: new Uint8Array(), + proofConsensus: new Uint8Array(), + consensusHeight: client_1.Height.fromPartial({}), + signer: "", + hostConsensusStateProof: new Uint8Array(), }; } -exports.CommitmentProof = { - encode(message, writer = _m0.Writer.create()) { - if (message.exist !== undefined) { - exports.ExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim(); +exports.MsgConnectionOpenTry = { + typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenTry", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.clientId !== "") { + writer.uint32(10).string(message.clientId); } - if (message.nonexist !== undefined) { - exports.NonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim(); + if (message.previousConnectionId !== "") { + writer.uint32(18).string(message.previousConnectionId); } - if (message.batch !== undefined) { - exports.BatchProof.encode(message.batch, writer.uint32(26).fork()).ldelim(); + if (message.clientState !== undefined) { + any_1.Any.encode(message.clientState, writer.uint32(26).fork()).ldelim(); } - if (message.compressed !== undefined) { - exports.CompressedBatchProof.encode(message.compressed, writer.uint32(34).fork()).ldelim(); + if (message.counterparty !== undefined) { + connection_1.Counterparty.encode(message.counterparty, writer.uint32(34).fork()).ldelim(); + } + if (message.delayPeriod !== BigInt(0)) { + writer.uint32(40).uint64(message.delayPeriod); + } + for (const v of message.counterpartyVersions) { + connection_1.Version.encode(v, writer.uint32(50).fork()).ldelim(); + } + if (message.proofHeight !== undefined) { + client_1.Height.encode(message.proofHeight, writer.uint32(58).fork()).ldelim(); + } + if (message.proofInit.length !== 0) { + writer.uint32(66).bytes(message.proofInit); + } + if (message.proofClient.length !== 0) { + writer.uint32(74).bytes(message.proofClient); + } + if (message.proofConsensus.length !== 0) { + writer.uint32(82).bytes(message.proofConsensus); + } + if (message.consensusHeight !== undefined) { + client_1.Height.encode(message.consensusHeight, writer.uint32(90).fork()).ldelim(); + } + if (message.signer !== "") { + writer.uint32(98).string(message.signer); + } + if (message.hostConsensusStateProof.length !== 0) { + writer.uint32(106).bytes(message.hostConsensusStateProof); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCommitmentProof(); + const message = createBaseMsgConnectionOpenTry(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.exist = exports.ExistenceProof.decode(reader, reader.uint32()); + message.clientId = reader.string(); break; case 2: - message.nonexist = exports.NonExistenceProof.decode(reader, reader.uint32()); + message.previousConnectionId = reader.string(); break; case 3: - message.batch = exports.BatchProof.decode(reader, reader.uint32()); + message.clientState = any_1.Any.decode(reader, reader.uint32()); break; case 4: - message.compressed = exports.CompressedBatchProof.decode(reader, reader.uint32()); + message.counterparty = connection_1.Counterparty.decode(reader, reader.uint32()); + break; + case 5: + message.delayPeriod = reader.uint64(); + break; + case 6: + message.counterpartyVersions.push(connection_1.Version.decode(reader, reader.uint32())); + break; + case 7: + message.proofHeight = client_1.Height.decode(reader, reader.uint32()); + break; + case 8: + message.proofInit = reader.bytes(); + break; + case 9: + message.proofClient = reader.bytes(); + break; + case 10: + message.proofConsensus = reader.bytes(); + break; + case 11: + message.consensusHeight = client_1.Height.decode(reader, reader.uint32()); + break; + case 12: + message.signer = reader.string(); + break; + case 13: + message.hostConsensusStateProof = reader.bytes(); break; default: reader.skipType(tag & 7); @@ -94082,93 +89763,108 @@ exports.CommitmentProof = { return message; }, fromJSON(object) { - return { - exist: (0, helpers_1.isSet)(object.exist) ? exports.ExistenceProof.fromJSON(object.exist) : undefined, - nonexist: (0, helpers_1.isSet)(object.nonexist) ? exports.NonExistenceProof.fromJSON(object.nonexist) : undefined, - batch: (0, helpers_1.isSet)(object.batch) ? exports.BatchProof.fromJSON(object.batch) : undefined, - compressed: (0, helpers_1.isSet)(object.compressed) ? exports.CompressedBatchProof.fromJSON(object.compressed) : undefined, - }; + const obj = createBaseMsgConnectionOpenTry(); + if ((0, helpers_1.isSet)(object.clientId)) + obj.clientId = String(object.clientId); + if ((0, helpers_1.isSet)(object.previousConnectionId)) + obj.previousConnectionId = String(object.previousConnectionId); + if ((0, helpers_1.isSet)(object.clientState)) + obj.clientState = any_1.Any.fromJSON(object.clientState); + if ((0, helpers_1.isSet)(object.counterparty)) + obj.counterparty = connection_1.Counterparty.fromJSON(object.counterparty); + if ((0, helpers_1.isSet)(object.delayPeriod)) + obj.delayPeriod = BigInt(object.delayPeriod.toString()); + if (Array.isArray(object?.counterpartyVersions)) + obj.counterpartyVersions = object.counterpartyVersions.map((e) => connection_1.Version.fromJSON(e)); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + if ((0, helpers_1.isSet)(object.proofInit)) + obj.proofInit = (0, helpers_1.bytesFromBase64)(object.proofInit); + if ((0, helpers_1.isSet)(object.proofClient)) + obj.proofClient = (0, helpers_1.bytesFromBase64)(object.proofClient); + if ((0, helpers_1.isSet)(object.proofConsensus)) + obj.proofConsensus = (0, helpers_1.bytesFromBase64)(object.proofConsensus); + if ((0, helpers_1.isSet)(object.consensusHeight)) + obj.consensusHeight = client_1.Height.fromJSON(object.consensusHeight); + if ((0, helpers_1.isSet)(object.signer)) + obj.signer = String(object.signer); + if ((0, helpers_1.isSet)(object.hostConsensusStateProof)) + obj.hostConsensusStateProof = (0, helpers_1.bytesFromBase64)(object.hostConsensusStateProof); + return obj; }, toJSON(message) { const obj = {}; - message.exist !== undefined && - (obj.exist = message.exist ? exports.ExistenceProof.toJSON(message.exist) : undefined); - message.nonexist !== undefined && - (obj.nonexist = message.nonexist ? exports.NonExistenceProof.toJSON(message.nonexist) : undefined); - message.batch !== undefined && (obj.batch = message.batch ? exports.BatchProof.toJSON(message.batch) : undefined); - message.compressed !== undefined && - (obj.compressed = message.compressed ? exports.CompressedBatchProof.toJSON(message.compressed) : undefined); - return obj; - }, - fromPartial(object) { - const message = createBaseCommitmentProof(); - message.exist = - object.exist !== undefined && object.exist !== null - ? exports.ExistenceProof.fromPartial(object.exist) - : undefined; - message.nonexist = - object.nonexist !== undefined && object.nonexist !== null - ? exports.NonExistenceProof.fromPartial(object.nonexist) - : undefined; - message.batch = - object.batch !== undefined && object.batch !== null ? exports.BatchProof.fromPartial(object.batch) : undefined; - message.compressed = - object.compressed !== undefined && object.compressed !== null - ? exports.CompressedBatchProof.fromPartial(object.compressed) - : undefined; - return message; - }, -}; -function createBaseLeafOp() { - return { - hash: 0, - prehashKey: 0, - prehashValue: 0, - length: 0, - prefix: new Uint8Array(), - }; -} -exports.LeafOp = { - encode(message, writer = _m0.Writer.create()) { - if (message.hash !== 0) { - writer.uint32(8).int32(message.hash); + message.clientId !== undefined && (obj.clientId = message.clientId); + message.previousConnectionId !== undefined && (obj.previousConnectionId = message.previousConnectionId); + message.clientState !== undefined && + (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined); + message.counterparty !== undefined && + (obj.counterparty = message.counterparty ? connection_1.Counterparty.toJSON(message.counterparty) : undefined); + message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || BigInt(0)).toString()); + if (message.counterpartyVersions) { + obj.counterpartyVersions = message.counterpartyVersions.map((e) => (e ? connection_1.Version.toJSON(e) : undefined)); + } + else { + obj.counterpartyVersions = []; + } + message.proofHeight !== undefined && + (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined); + message.proofInit !== undefined && + (obj.proofInit = (0, helpers_1.base64FromBytes)(message.proofInit !== undefined ? message.proofInit : new Uint8Array())); + message.proofClient !== undefined && + (obj.proofClient = (0, helpers_1.base64FromBytes)(message.proofClient !== undefined ? message.proofClient : new Uint8Array())); + message.proofConsensus !== undefined && + (obj.proofConsensus = (0, helpers_1.base64FromBytes)(message.proofConsensus !== undefined ? message.proofConsensus : new Uint8Array())); + message.consensusHeight !== undefined && + (obj.consensusHeight = message.consensusHeight ? client_1.Height.toJSON(message.consensusHeight) : undefined); + message.signer !== undefined && (obj.signer = message.signer); + message.hostConsensusStateProof !== undefined && + (obj.hostConsensusStateProof = (0, helpers_1.base64FromBytes)(message.hostConsensusStateProof !== undefined ? message.hostConsensusStateProof : new Uint8Array())); + return obj; + }, + fromPartial(object) { + const message = createBaseMsgConnectionOpenTry(); + message.clientId = object.clientId ?? ""; + message.previousConnectionId = object.previousConnectionId ?? ""; + if (object.clientState !== undefined && object.clientState !== null) { + message.clientState = any_1.Any.fromPartial(object.clientState); } - if (message.prehashKey !== 0) { - writer.uint32(16).int32(message.prehashKey); + if (object.counterparty !== undefined && object.counterparty !== null) { + message.counterparty = connection_1.Counterparty.fromPartial(object.counterparty); } - if (message.prehashValue !== 0) { - writer.uint32(24).int32(message.prehashValue); + if (object.delayPeriod !== undefined && object.delayPeriod !== null) { + message.delayPeriod = BigInt(object.delayPeriod.toString()); } - if (message.length !== 0) { - writer.uint32(32).int32(message.length); + message.counterpartyVersions = object.counterpartyVersions?.map((e) => connection_1.Version.fromPartial(e)) || []; + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); } - if (message.prefix.length !== 0) { - writer.uint32(42).bytes(message.prefix); + message.proofInit = object.proofInit ?? new Uint8Array(); + message.proofClient = object.proofClient ?? new Uint8Array(); + message.proofConsensus = object.proofConsensus ?? new Uint8Array(); + if (object.consensusHeight !== undefined && object.consensusHeight !== null) { + message.consensusHeight = client_1.Height.fromPartial(object.consensusHeight); } + message.signer = object.signer ?? ""; + message.hostConsensusStateProof = object.hostConsensusStateProof ?? new Uint8Array(); + return message; + }, +}; +function createBaseMsgConnectionOpenTryResponse() { + return {}; +} +exports.MsgConnectionOpenTryResponse = { + typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenTryResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseLeafOp(); + const message = createBaseMsgConnectionOpenTryResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.hash = reader.int32(); - break; - case 2: - message.prehashKey = reader.int32(); - break; - case 3: - message.prehashValue = reader.int32(); - break; - case 4: - message.length = reader.int32(); - break; - case 5: - message.prefix = reader.bytes(); - break; default: reader.skipType(tag & 7); break; @@ -94176,70 +89872,111 @@ exports.LeafOp = { } return message; }, - fromJSON(object) { - return { - hash: (0, helpers_1.isSet)(object.hash) ? hashOpFromJSON(object.hash) : 0, - prehashKey: (0, helpers_1.isSet)(object.prehashKey) ? hashOpFromJSON(object.prehashKey) : 0, - prehashValue: (0, helpers_1.isSet)(object.prehashValue) ? hashOpFromJSON(object.prehashValue) : 0, - length: (0, helpers_1.isSet)(object.length) ? lengthOpFromJSON(object.length) : 0, - prefix: (0, helpers_1.isSet)(object.prefix) ? (0, helpers_1.bytesFromBase64)(object.prefix) : new Uint8Array(), - }; + fromJSON(_) { + const obj = createBaseMsgConnectionOpenTryResponse(); + return obj; }, - toJSON(message) { + toJSON(_) { const obj = {}; - message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash)); - message.prehashKey !== undefined && (obj.prehashKey = hashOpToJSON(message.prehashKey)); - message.prehashValue !== undefined && (obj.prehashValue = hashOpToJSON(message.prehashValue)); - message.length !== undefined && (obj.length = lengthOpToJSON(message.length)); - message.prefix !== undefined && - (obj.prefix = (0, helpers_1.base64FromBytes)(message.prefix !== undefined ? message.prefix : new Uint8Array())); return obj; }, - fromPartial(object) { - const message = createBaseLeafOp(); - message.hash = object.hash ?? 0; - message.prehashKey = object.prehashKey ?? 0; - message.prehashValue = object.prehashValue ?? 0; - message.length = object.length ?? 0; - message.prefix = object.prefix ?? new Uint8Array(); + fromPartial(_) { + const message = createBaseMsgConnectionOpenTryResponse(); return message; }, }; -function createBaseInnerOp() { +function createBaseMsgConnectionOpenAck() { return { - hash: 0, - prefix: new Uint8Array(), - suffix: new Uint8Array(), + connectionId: "", + counterpartyConnectionId: "", + version: undefined, + clientState: undefined, + proofHeight: client_1.Height.fromPartial({}), + proofTry: new Uint8Array(), + proofClient: new Uint8Array(), + proofConsensus: new Uint8Array(), + consensusHeight: client_1.Height.fromPartial({}), + signer: "", + hostConsensusStateProof: new Uint8Array(), }; } -exports.InnerOp = { - encode(message, writer = _m0.Writer.create()) { - if (message.hash !== 0) { - writer.uint32(8).int32(message.hash); +exports.MsgConnectionOpenAck = { + typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenAck", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.connectionId !== "") { + writer.uint32(10).string(message.connectionId); } - if (message.prefix.length !== 0) { - writer.uint32(18).bytes(message.prefix); + if (message.counterpartyConnectionId !== "") { + writer.uint32(18).string(message.counterpartyConnectionId); } - if (message.suffix.length !== 0) { - writer.uint32(26).bytes(message.suffix); + if (message.version !== undefined) { + connection_1.Version.encode(message.version, writer.uint32(26).fork()).ldelim(); + } + if (message.clientState !== undefined) { + any_1.Any.encode(message.clientState, writer.uint32(34).fork()).ldelim(); + } + if (message.proofHeight !== undefined) { + client_1.Height.encode(message.proofHeight, writer.uint32(42).fork()).ldelim(); + } + if (message.proofTry.length !== 0) { + writer.uint32(50).bytes(message.proofTry); + } + if (message.proofClient.length !== 0) { + writer.uint32(58).bytes(message.proofClient); + } + if (message.proofConsensus.length !== 0) { + writer.uint32(66).bytes(message.proofConsensus); + } + if (message.consensusHeight !== undefined) { + client_1.Height.encode(message.consensusHeight, writer.uint32(74).fork()).ldelim(); + } + if (message.signer !== "") { + writer.uint32(82).string(message.signer); + } + if (message.hostConsensusStateProof.length !== 0) { + writer.uint32(90).bytes(message.hostConsensusStateProof); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseInnerOp(); + const message = createBaseMsgConnectionOpenAck(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.hash = reader.int32(); + message.connectionId = reader.string(); break; case 2: - message.prefix = reader.bytes(); + message.counterpartyConnectionId = reader.string(); break; case 3: - message.suffix = reader.bytes(); + message.version = connection_1.Version.decode(reader, reader.uint32()); + break; + case 4: + message.clientState = any_1.Any.decode(reader, reader.uint32()); + break; + case 5: + message.proofHeight = client_1.Height.decode(reader, reader.uint32()); + break; + case 6: + message.proofTry = reader.bytes(); + break; + case 7: + message.proofClient = reader.bytes(); + break; + case 8: + message.proofConsensus = reader.bytes(); + break; + case 9: + message.consensusHeight = client_1.Height.decode(reader, reader.uint32()); + break; + case 10: + message.signer = reader.string(); + break; + case 11: + message.hostConsensusStateProof = reader.bytes(); break; default: reader.skipType(tag & 7); @@ -94249,72 +89986,94 @@ exports.InnerOp = { return message; }, fromJSON(object) { - return { - hash: (0, helpers_1.isSet)(object.hash) ? hashOpFromJSON(object.hash) : 0, - prefix: (0, helpers_1.isSet)(object.prefix) ? (0, helpers_1.bytesFromBase64)(object.prefix) : new Uint8Array(), - suffix: (0, helpers_1.isSet)(object.suffix) ? (0, helpers_1.bytesFromBase64)(object.suffix) : new Uint8Array(), - }; + const obj = createBaseMsgConnectionOpenAck(); + if ((0, helpers_1.isSet)(object.connectionId)) + obj.connectionId = String(object.connectionId); + if ((0, helpers_1.isSet)(object.counterpartyConnectionId)) + obj.counterpartyConnectionId = String(object.counterpartyConnectionId); + if ((0, helpers_1.isSet)(object.version)) + obj.version = connection_1.Version.fromJSON(object.version); + if ((0, helpers_1.isSet)(object.clientState)) + obj.clientState = any_1.Any.fromJSON(object.clientState); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + if ((0, helpers_1.isSet)(object.proofTry)) + obj.proofTry = (0, helpers_1.bytesFromBase64)(object.proofTry); + if ((0, helpers_1.isSet)(object.proofClient)) + obj.proofClient = (0, helpers_1.bytesFromBase64)(object.proofClient); + if ((0, helpers_1.isSet)(object.proofConsensus)) + obj.proofConsensus = (0, helpers_1.bytesFromBase64)(object.proofConsensus); + if ((0, helpers_1.isSet)(object.consensusHeight)) + obj.consensusHeight = client_1.Height.fromJSON(object.consensusHeight); + if ((0, helpers_1.isSet)(object.signer)) + obj.signer = String(object.signer); + if ((0, helpers_1.isSet)(object.hostConsensusStateProof)) + obj.hostConsensusStateProof = (0, helpers_1.bytesFromBase64)(object.hostConsensusStateProof); + return obj; }, toJSON(message) { const obj = {}; - message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash)); - message.prefix !== undefined && - (obj.prefix = (0, helpers_1.base64FromBytes)(message.prefix !== undefined ? message.prefix : new Uint8Array())); - message.suffix !== undefined && - (obj.suffix = (0, helpers_1.base64FromBytes)(message.suffix !== undefined ? message.suffix : new Uint8Array())); + message.connectionId !== undefined && (obj.connectionId = message.connectionId); + message.counterpartyConnectionId !== undefined && + (obj.counterpartyConnectionId = message.counterpartyConnectionId); + message.version !== undefined && + (obj.version = message.version ? connection_1.Version.toJSON(message.version) : undefined); + message.clientState !== undefined && + (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined); + message.proofHeight !== undefined && + (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined); + message.proofTry !== undefined && + (obj.proofTry = (0, helpers_1.base64FromBytes)(message.proofTry !== undefined ? message.proofTry : new Uint8Array())); + message.proofClient !== undefined && + (obj.proofClient = (0, helpers_1.base64FromBytes)(message.proofClient !== undefined ? message.proofClient : new Uint8Array())); + message.proofConsensus !== undefined && + (obj.proofConsensus = (0, helpers_1.base64FromBytes)(message.proofConsensus !== undefined ? message.proofConsensus : new Uint8Array())); + message.consensusHeight !== undefined && + (obj.consensusHeight = message.consensusHeight ? client_1.Height.toJSON(message.consensusHeight) : undefined); + message.signer !== undefined && (obj.signer = message.signer); + message.hostConsensusStateProof !== undefined && + (obj.hostConsensusStateProof = (0, helpers_1.base64FromBytes)(message.hostConsensusStateProof !== undefined ? message.hostConsensusStateProof : new Uint8Array())); return obj; }, fromPartial(object) { - const message = createBaseInnerOp(); - message.hash = object.hash ?? 0; - message.prefix = object.prefix ?? new Uint8Array(); - message.suffix = object.suffix ?? new Uint8Array(); - return message; - }, -}; -function createBaseProofSpec() { - return { - leafSpec: undefined, - innerSpec: undefined, - maxDepth: 0, - minDepth: 0, - }; -} -exports.ProofSpec = { - encode(message, writer = _m0.Writer.create()) { - if (message.leafSpec !== undefined) { - exports.LeafOp.encode(message.leafSpec, writer.uint32(10).fork()).ldelim(); + const message = createBaseMsgConnectionOpenAck(); + message.connectionId = object.connectionId ?? ""; + message.counterpartyConnectionId = object.counterpartyConnectionId ?? ""; + if (object.version !== undefined && object.version !== null) { + message.version = connection_1.Version.fromPartial(object.version); } - if (message.innerSpec !== undefined) { - exports.InnerSpec.encode(message.innerSpec, writer.uint32(18).fork()).ldelim(); + if (object.clientState !== undefined && object.clientState !== null) { + message.clientState = any_1.Any.fromPartial(object.clientState); } - if (message.maxDepth !== 0) { - writer.uint32(24).int32(message.maxDepth); + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); } - if (message.minDepth !== 0) { - writer.uint32(32).int32(message.minDepth); + message.proofTry = object.proofTry ?? new Uint8Array(); + message.proofClient = object.proofClient ?? new Uint8Array(); + message.proofConsensus = object.proofConsensus ?? new Uint8Array(); + if (object.consensusHeight !== undefined && object.consensusHeight !== null) { + message.consensusHeight = client_1.Height.fromPartial(object.consensusHeight); } + message.signer = object.signer ?? ""; + message.hostConsensusStateProof = object.hostConsensusStateProof ?? new Uint8Array(); + return message; + }, +}; +function createBaseMsgConnectionOpenAckResponse() { + return {}; +} +exports.MsgConnectionOpenAckResponse = { + typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenAckResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseProofSpec(); + const message = createBaseMsgConnectionOpenAckResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.leafSpec = exports.LeafOp.decode(reader, reader.uint32()); - break; - case 2: - message.innerSpec = exports.InnerSpec.decode(reader, reader.uint32()); - break; - case 3: - message.maxDepth = reader.int32(); - break; - case 4: - message.minDepth = reader.int32(); - break; default: reader.skipType(tag & 7); break; @@ -94322,105 +90081,62 @@ exports.ProofSpec = { } return message; }, - fromJSON(object) { - return { - leafSpec: (0, helpers_1.isSet)(object.leafSpec) ? exports.LeafOp.fromJSON(object.leafSpec) : undefined, - innerSpec: (0, helpers_1.isSet)(object.innerSpec) ? exports.InnerSpec.fromJSON(object.innerSpec) : undefined, - maxDepth: (0, helpers_1.isSet)(object.maxDepth) ? Number(object.maxDepth) : 0, - minDepth: (0, helpers_1.isSet)(object.minDepth) ? Number(object.minDepth) : 0, - }; + fromJSON(_) { + const obj = createBaseMsgConnectionOpenAckResponse(); + return obj; }, - toJSON(message) { + toJSON(_) { const obj = {}; - message.leafSpec !== undefined && - (obj.leafSpec = message.leafSpec ? exports.LeafOp.toJSON(message.leafSpec) : undefined); - message.innerSpec !== undefined && - (obj.innerSpec = message.innerSpec ? exports.InnerSpec.toJSON(message.innerSpec) : undefined); - message.maxDepth !== undefined && (obj.maxDepth = Math.round(message.maxDepth)); - message.minDepth !== undefined && (obj.minDepth = Math.round(message.minDepth)); return obj; }, - fromPartial(object) { - const message = createBaseProofSpec(); - message.leafSpec = - object.leafSpec !== undefined && object.leafSpec !== null - ? exports.LeafOp.fromPartial(object.leafSpec) - : undefined; - message.innerSpec = - object.innerSpec !== undefined && object.innerSpec !== null - ? exports.InnerSpec.fromPartial(object.innerSpec) - : undefined; - message.maxDepth = object.maxDepth ?? 0; - message.minDepth = object.minDepth ?? 0; + fromPartial(_) { + const message = createBaseMsgConnectionOpenAckResponse(); return message; }, }; -function createBaseInnerSpec() { +function createBaseMsgConnectionOpenConfirm() { return { - childOrder: [], - childSize: 0, - minPrefixLength: 0, - maxPrefixLength: 0, - emptyChild: new Uint8Array(), - hash: 0, + connectionId: "", + proofAck: new Uint8Array(), + proofHeight: client_1.Height.fromPartial({}), + signer: "", }; } -exports.InnerSpec = { - encode(message, writer = _m0.Writer.create()) { - writer.uint32(10).fork(); - for (const v of message.childOrder) { - writer.int32(v); - } - writer.ldelim(); - if (message.childSize !== 0) { - writer.uint32(16).int32(message.childSize); - } - if (message.minPrefixLength !== 0) { - writer.uint32(24).int32(message.minPrefixLength); +exports.MsgConnectionOpenConfirm = { + typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenConfirm", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.connectionId !== "") { + writer.uint32(10).string(message.connectionId); } - if (message.maxPrefixLength !== 0) { - writer.uint32(32).int32(message.maxPrefixLength); + if (message.proofAck.length !== 0) { + writer.uint32(18).bytes(message.proofAck); } - if (message.emptyChild.length !== 0) { - writer.uint32(42).bytes(message.emptyChild); + if (message.proofHeight !== undefined) { + client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim(); } - if (message.hash !== 0) { - writer.uint32(48).int32(message.hash); + if (message.signer !== "") { + writer.uint32(34).string(message.signer); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseInnerSpec(); + const message = createBaseMsgConnectionOpenConfirm(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - if ((tag & 7) === 2) { - const end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) { - message.childOrder.push(reader.int32()); - } - } - else { - message.childOrder.push(reader.int32()); - } + message.connectionId = reader.string(); break; case 2: - message.childSize = reader.int32(); + message.proofAck = reader.bytes(); break; case 3: - message.minPrefixLength = reader.int32(); + message.proofHeight = client_1.Height.decode(reader, reader.uint32()); break; case 4: - message.maxPrefixLength = reader.int32(); - break; - case 5: - message.emptyChild = reader.bytes(); - break; - case 6: - message.hash = reader.int32(); + message.signer = reader.string(); break; default: reader.skipType(tag & 7); @@ -94430,64 +90146,53 @@ exports.InnerSpec = { return message; }, fromJSON(object) { - return { - childOrder: Array.isArray(object?.childOrder) ? object.childOrder.map((e) => Number(e)) : [], - childSize: (0, helpers_1.isSet)(object.childSize) ? Number(object.childSize) : 0, - minPrefixLength: (0, helpers_1.isSet)(object.minPrefixLength) ? Number(object.minPrefixLength) : 0, - maxPrefixLength: (0, helpers_1.isSet)(object.maxPrefixLength) ? Number(object.maxPrefixLength) : 0, - emptyChild: (0, helpers_1.isSet)(object.emptyChild) ? (0, helpers_1.bytesFromBase64)(object.emptyChild) : new Uint8Array(), - hash: (0, helpers_1.isSet)(object.hash) ? hashOpFromJSON(object.hash) : 0, - }; + const obj = createBaseMsgConnectionOpenConfirm(); + if ((0, helpers_1.isSet)(object.connectionId)) + obj.connectionId = String(object.connectionId); + if ((0, helpers_1.isSet)(object.proofAck)) + obj.proofAck = (0, helpers_1.bytesFromBase64)(object.proofAck); + if ((0, helpers_1.isSet)(object.proofHeight)) + obj.proofHeight = client_1.Height.fromJSON(object.proofHeight); + if ((0, helpers_1.isSet)(object.signer)) + obj.signer = String(object.signer); + return obj; }, toJSON(message) { const obj = {}; - if (message.childOrder) { - obj.childOrder = message.childOrder.map((e) => Math.round(e)); - } - else { - obj.childOrder = []; - } - message.childSize !== undefined && (obj.childSize = Math.round(message.childSize)); - message.minPrefixLength !== undefined && (obj.minPrefixLength = Math.round(message.minPrefixLength)); - message.maxPrefixLength !== undefined && (obj.maxPrefixLength = Math.round(message.maxPrefixLength)); - message.emptyChild !== undefined && - (obj.emptyChild = (0, helpers_1.base64FromBytes)(message.emptyChild !== undefined ? message.emptyChild : new Uint8Array())); - message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash)); + message.connectionId !== undefined && (obj.connectionId = message.connectionId); + message.proofAck !== undefined && + (obj.proofAck = (0, helpers_1.base64FromBytes)(message.proofAck !== undefined ? message.proofAck : new Uint8Array())); + message.proofHeight !== undefined && + (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined); + message.signer !== undefined && (obj.signer = message.signer); return obj; }, fromPartial(object) { - const message = createBaseInnerSpec(); - message.childOrder = object.childOrder?.map((e) => e) || []; - message.childSize = object.childSize ?? 0; - message.minPrefixLength = object.minPrefixLength ?? 0; - message.maxPrefixLength = object.maxPrefixLength ?? 0; - message.emptyChild = object.emptyChild ?? new Uint8Array(); - message.hash = object.hash ?? 0; + const message = createBaseMsgConnectionOpenConfirm(); + message.connectionId = object.connectionId ?? ""; + message.proofAck = object.proofAck ?? new Uint8Array(); + if (object.proofHeight !== undefined && object.proofHeight !== null) { + message.proofHeight = client_1.Height.fromPartial(object.proofHeight); + } + message.signer = object.signer ?? ""; return message; }, }; -function createBaseBatchProof() { - return { - entries: [], - }; +function createBaseMsgConnectionOpenConfirmResponse() { + return {}; } -exports.BatchProof = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.entries) { - exports.BatchEntry.encode(v, writer.uint32(10).fork()).ldelim(); - } +exports.MsgConnectionOpenConfirmResponse = { + typeUrl: "/ibc.core.connection.v1.MsgConnectionOpenConfirmResponse", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBatchProof(); + const message = createBaseMsgConnectionOpenConfirmResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.entries.push(exports.BatchEntry.decode(reader, reader.uint32())); - break; default: reader.skipType(tag & 7); break; @@ -94495,55 +90200,166 @@ exports.BatchProof = { } return message; }, - fromJSON(object) { - return { - entries: Array.isArray(object?.entries) ? object.entries.map((e) => exports.BatchEntry.fromJSON(e)) : [], - }; + fromJSON(_) { + const obj = createBaseMsgConnectionOpenConfirmResponse(); + return obj; }, - toJSON(message) { + toJSON(_) { const obj = {}; - if (message.entries) { - obj.entries = message.entries.map((e) => (e ? exports.BatchEntry.toJSON(e) : undefined)); - } - else { - obj.entries = []; - } return obj; }, - fromPartial(object) { - const message = createBaseBatchProof(); - message.entries = object.entries?.map((e) => exports.BatchEntry.fromPartial(e)) || []; + fromPartial(_) { + const message = createBaseMsgConnectionOpenConfirmResponse(); return message; }, }; -function createBaseBatchEntry() { +class MsgClientImpl { + constructor(rpc) { + this.rpc = rpc; + this.ConnectionOpenInit = this.ConnectionOpenInit.bind(this); + this.ConnectionOpenTry = this.ConnectionOpenTry.bind(this); + this.ConnectionOpenAck = this.ConnectionOpenAck.bind(this); + this.ConnectionOpenConfirm = this.ConnectionOpenConfirm.bind(this); + } + ConnectionOpenInit(request) { + const data = exports.MsgConnectionOpenInit.encode(request).finish(); + const promise = this.rpc.request("ibc.core.connection.v1.Msg", "ConnectionOpenInit", data); + return promise.then((data) => exports.MsgConnectionOpenInitResponse.decode(new binary_1.BinaryReader(data))); + } + ConnectionOpenTry(request) { + const data = exports.MsgConnectionOpenTry.encode(request).finish(); + const promise = this.rpc.request("ibc.core.connection.v1.Msg", "ConnectionOpenTry", data); + return promise.then((data) => exports.MsgConnectionOpenTryResponse.decode(new binary_1.BinaryReader(data))); + } + ConnectionOpenAck(request) { + const data = exports.MsgConnectionOpenAck.encode(request).finish(); + const promise = this.rpc.request("ibc.core.connection.v1.Msg", "ConnectionOpenAck", data); + return promise.then((data) => exports.MsgConnectionOpenAckResponse.decode(new binary_1.BinaryReader(data))); + } + ConnectionOpenConfirm(request) { + const data = exports.MsgConnectionOpenConfirm.encode(request).finish(); + const promise = this.rpc.request("ibc.core.connection.v1.Msg", "ConnectionOpenConfirm", data); + return promise.then((data) => exports.MsgConnectionOpenConfirmResponse.decode(new binary_1.BinaryReader(data))); + } +} +exports.MsgClientImpl = MsgClientImpl; +//# sourceMappingURL=tx.js.map + +/***/ }), + +/***/ "./node_modules/cosmjs-types/ibc/lightclients/tendermint/v1/tendermint.js": +/*!********************************************************************************!*\ + !*** ./node_modules/cosmjs-types/ibc/lightclients/tendermint/v1/tendermint.js ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Fraction = exports.Header = exports.Misbehaviour = exports.ConsensusState = exports.ClientState = exports.protobufPackage = void 0; +/* eslint-disable */ +const duration_1 = __webpack_require__(/*! ../../../../google/protobuf/duration */ "./node_modules/cosmjs-types/google/protobuf/duration.js"); +const client_1 = __webpack_require__(/*! ../../../core/client/v1/client */ "./node_modules/cosmjs-types/ibc/core/client/v1/client.js"); +const proofs_1 = __webpack_require__(/*! ../../../../cosmos/ics23/v1/proofs */ "./node_modules/cosmjs-types/cosmos/ics23/v1/proofs.js"); +const timestamp_1 = __webpack_require__(/*! ../../../../google/protobuf/timestamp */ "./node_modules/cosmjs-types/google/protobuf/timestamp.js"); +const commitment_1 = __webpack_require__(/*! ../../../core/commitment/v1/commitment */ "./node_modules/cosmjs-types/ibc/core/commitment/v1/commitment.js"); +const types_1 = __webpack_require__(/*! ../../../../tendermint/types/types */ "./node_modules/cosmjs-types/tendermint/types/types.js"); +const validator_1 = __webpack_require__(/*! ../../../../tendermint/types/validator */ "./node_modules/cosmjs-types/tendermint/types/validator.js"); +const binary_1 = __webpack_require__(/*! ../../../../binary */ "./node_modules/cosmjs-types/binary.js"); +const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/cosmjs-types/helpers.js"); +exports.protobufPackage = "ibc.lightclients.tendermint.v1"; +function createBaseClientState() { return { - exist: undefined, - nonexist: undefined, + chainId: "", + trustLevel: exports.Fraction.fromPartial({}), + trustingPeriod: duration_1.Duration.fromPartial({}), + unbondingPeriod: duration_1.Duration.fromPartial({}), + maxClockDrift: duration_1.Duration.fromPartial({}), + frozenHeight: client_1.Height.fromPartial({}), + latestHeight: client_1.Height.fromPartial({}), + proofSpecs: [], + upgradePath: [], + allowUpdateAfterExpiry: false, + allowUpdateAfterMisbehaviour: false, }; } -exports.BatchEntry = { - encode(message, writer = _m0.Writer.create()) { - if (message.exist !== undefined) { - exports.ExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim(); +exports.ClientState = { + typeUrl: "/ibc.lightclients.tendermint.v1.ClientState", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.chainId !== "") { + writer.uint32(10).string(message.chainId); } - if (message.nonexist !== undefined) { - exports.NonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim(); + if (message.trustLevel !== undefined) { + exports.Fraction.encode(message.trustLevel, writer.uint32(18).fork()).ldelim(); + } + if (message.trustingPeriod !== undefined) { + duration_1.Duration.encode(message.trustingPeriod, writer.uint32(26).fork()).ldelim(); + } + if (message.unbondingPeriod !== undefined) { + duration_1.Duration.encode(message.unbondingPeriod, writer.uint32(34).fork()).ldelim(); + } + if (message.maxClockDrift !== undefined) { + duration_1.Duration.encode(message.maxClockDrift, writer.uint32(42).fork()).ldelim(); + } + if (message.frozenHeight !== undefined) { + client_1.Height.encode(message.frozenHeight, writer.uint32(50).fork()).ldelim(); + } + if (message.latestHeight !== undefined) { + client_1.Height.encode(message.latestHeight, writer.uint32(58).fork()).ldelim(); + } + for (const v of message.proofSpecs) { + proofs_1.ProofSpec.encode(v, writer.uint32(66).fork()).ldelim(); + } + for (const v of message.upgradePath) { + writer.uint32(74).string(v); + } + if (message.allowUpdateAfterExpiry === true) { + writer.uint32(80).bool(message.allowUpdateAfterExpiry); + } + if (message.allowUpdateAfterMisbehaviour === true) { + writer.uint32(88).bool(message.allowUpdateAfterMisbehaviour); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBatchEntry(); + const message = createBaseClientState(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.exist = exports.ExistenceProof.decode(reader, reader.uint32()); + message.chainId = reader.string(); break; case 2: - message.nonexist = exports.NonExistenceProof.decode(reader, reader.uint32()); + message.trustLevel = exports.Fraction.decode(reader, reader.uint32()); + break; + case 3: + message.trustingPeriod = duration_1.Duration.decode(reader, reader.uint32()); + break; + case 4: + message.unbondingPeriod = duration_1.Duration.decode(reader, reader.uint32()); + break; + case 5: + message.maxClockDrift = duration_1.Duration.decode(reader, reader.uint32()); + break; + case 6: + message.frozenHeight = client_1.Height.decode(reader, reader.uint32()); + break; + case 7: + message.latestHeight = client_1.Height.decode(reader, reader.uint32()); + break; + case 8: + message.proofSpecs.push(proofs_1.ProofSpec.decode(reader, reader.uint32())); + break; + case 9: + message.upgradePath.push(reader.string()); + break; + case 10: + message.allowUpdateAfterExpiry = reader.bool(); + break; + case 11: + message.allowUpdateAfterMisbehaviour = reader.bool(); break; default: reader.skipType(tag & 7); @@ -94553,60 +90369,128 @@ exports.BatchEntry = { return message; }, fromJSON(object) { - return { - exist: (0, helpers_1.isSet)(object.exist) ? exports.ExistenceProof.fromJSON(object.exist) : undefined, - nonexist: (0, helpers_1.isSet)(object.nonexist) ? exports.NonExistenceProof.fromJSON(object.nonexist) : undefined, - }; + const obj = createBaseClientState(); + if ((0, helpers_1.isSet)(object.chainId)) + obj.chainId = String(object.chainId); + if ((0, helpers_1.isSet)(object.trustLevel)) + obj.trustLevel = exports.Fraction.fromJSON(object.trustLevel); + if ((0, helpers_1.isSet)(object.trustingPeriod)) + obj.trustingPeriod = duration_1.Duration.fromJSON(object.trustingPeriod); + if ((0, helpers_1.isSet)(object.unbondingPeriod)) + obj.unbondingPeriod = duration_1.Duration.fromJSON(object.unbondingPeriod); + if ((0, helpers_1.isSet)(object.maxClockDrift)) + obj.maxClockDrift = duration_1.Duration.fromJSON(object.maxClockDrift); + if ((0, helpers_1.isSet)(object.frozenHeight)) + obj.frozenHeight = client_1.Height.fromJSON(object.frozenHeight); + if ((0, helpers_1.isSet)(object.latestHeight)) + obj.latestHeight = client_1.Height.fromJSON(object.latestHeight); + if (Array.isArray(object?.proofSpecs)) + obj.proofSpecs = object.proofSpecs.map((e) => proofs_1.ProofSpec.fromJSON(e)); + if (Array.isArray(object?.upgradePath)) + obj.upgradePath = object.upgradePath.map((e) => String(e)); + if ((0, helpers_1.isSet)(object.allowUpdateAfterExpiry)) + obj.allowUpdateAfterExpiry = Boolean(object.allowUpdateAfterExpiry); + if ((0, helpers_1.isSet)(object.allowUpdateAfterMisbehaviour)) + obj.allowUpdateAfterMisbehaviour = Boolean(object.allowUpdateAfterMisbehaviour); + return obj; }, toJSON(message) { const obj = {}; - message.exist !== undefined && - (obj.exist = message.exist ? exports.ExistenceProof.toJSON(message.exist) : undefined); - message.nonexist !== undefined && - (obj.nonexist = message.nonexist ? exports.NonExistenceProof.toJSON(message.nonexist) : undefined); + message.chainId !== undefined && (obj.chainId = message.chainId); + message.trustLevel !== undefined && + (obj.trustLevel = message.trustLevel ? exports.Fraction.toJSON(message.trustLevel) : undefined); + message.trustingPeriod !== undefined && + (obj.trustingPeriod = message.trustingPeriod ? duration_1.Duration.toJSON(message.trustingPeriod) : undefined); + message.unbondingPeriod !== undefined && + (obj.unbondingPeriod = message.unbondingPeriod ? duration_1.Duration.toJSON(message.unbondingPeriod) : undefined); + message.maxClockDrift !== undefined && + (obj.maxClockDrift = message.maxClockDrift ? duration_1.Duration.toJSON(message.maxClockDrift) : undefined); + message.frozenHeight !== undefined && + (obj.frozenHeight = message.frozenHeight ? client_1.Height.toJSON(message.frozenHeight) : undefined); + message.latestHeight !== undefined && + (obj.latestHeight = message.latestHeight ? client_1.Height.toJSON(message.latestHeight) : undefined); + if (message.proofSpecs) { + obj.proofSpecs = message.proofSpecs.map((e) => (e ? proofs_1.ProofSpec.toJSON(e) : undefined)); + } + else { + obj.proofSpecs = []; + } + if (message.upgradePath) { + obj.upgradePath = message.upgradePath.map((e) => e); + } + else { + obj.upgradePath = []; + } + message.allowUpdateAfterExpiry !== undefined && + (obj.allowUpdateAfterExpiry = message.allowUpdateAfterExpiry); + message.allowUpdateAfterMisbehaviour !== undefined && + (obj.allowUpdateAfterMisbehaviour = message.allowUpdateAfterMisbehaviour); return obj; }, fromPartial(object) { - const message = createBaseBatchEntry(); - message.exist = - object.exist !== undefined && object.exist !== null - ? exports.ExistenceProof.fromPartial(object.exist) - : undefined; - message.nonexist = - object.nonexist !== undefined && object.nonexist !== null - ? exports.NonExistenceProof.fromPartial(object.nonexist) - : undefined; + const message = createBaseClientState(); + message.chainId = object.chainId ?? ""; + if (object.trustLevel !== undefined && object.trustLevel !== null) { + message.trustLevel = exports.Fraction.fromPartial(object.trustLevel); + } + if (object.trustingPeriod !== undefined && object.trustingPeriod !== null) { + message.trustingPeriod = duration_1.Duration.fromPartial(object.trustingPeriod); + } + if (object.unbondingPeriod !== undefined && object.unbondingPeriod !== null) { + message.unbondingPeriod = duration_1.Duration.fromPartial(object.unbondingPeriod); + } + if (object.maxClockDrift !== undefined && object.maxClockDrift !== null) { + message.maxClockDrift = duration_1.Duration.fromPartial(object.maxClockDrift); + } + if (object.frozenHeight !== undefined && object.frozenHeight !== null) { + message.frozenHeight = client_1.Height.fromPartial(object.frozenHeight); + } + if (object.latestHeight !== undefined && object.latestHeight !== null) { + message.latestHeight = client_1.Height.fromPartial(object.latestHeight); + } + message.proofSpecs = object.proofSpecs?.map((e) => proofs_1.ProofSpec.fromPartial(e)) || []; + message.upgradePath = object.upgradePath?.map((e) => e) || []; + message.allowUpdateAfterExpiry = object.allowUpdateAfterExpiry ?? false; + message.allowUpdateAfterMisbehaviour = object.allowUpdateAfterMisbehaviour ?? false; return message; }, }; -function createBaseCompressedBatchProof() { +function createBaseConsensusState() { return { - entries: [], - lookupInners: [], + timestamp: timestamp_1.Timestamp.fromPartial({}), + root: commitment_1.MerkleRoot.fromPartial({}), + nextValidatorsHash: new Uint8Array(), }; } -exports.CompressedBatchProof = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.entries) { - exports.CompressedBatchEntry.encode(v, writer.uint32(10).fork()).ldelim(); +exports.ConsensusState = { + typeUrl: "/ibc.lightclients.tendermint.v1.ConsensusState", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.timestamp !== undefined) { + timestamp_1.Timestamp.encode(message.timestamp, writer.uint32(10).fork()).ldelim(); } - for (const v of message.lookupInners) { - exports.InnerOp.encode(v, writer.uint32(18).fork()).ldelim(); + if (message.root !== undefined) { + commitment_1.MerkleRoot.encode(message.root, writer.uint32(18).fork()).ldelim(); + } + if (message.nextValidatorsHash.length !== 0) { + writer.uint32(26).bytes(message.nextValidatorsHash); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCompressedBatchProof(); + const message = createBaseConsensusState(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.entries.push(exports.CompressedBatchEntry.decode(reader, reader.uint32())); + message.timestamp = timestamp_1.Timestamp.decode(reader, reader.uint32()); break; case 2: - message.lookupInners.push(exports.InnerOp.decode(reader, reader.uint32())); + message.root = commitment_1.MerkleRoot.decode(reader, reader.uint32()); + break; + case 3: + message.nextValidatorsHash = reader.bytes(); break; default: reader.skipType(tag & 7); @@ -94616,66 +90500,71 @@ exports.CompressedBatchProof = { return message; }, fromJSON(object) { - return { - entries: Array.isArray(object?.entries) - ? object.entries.map((e) => exports.CompressedBatchEntry.fromJSON(e)) - : [], - lookupInners: Array.isArray(object?.lookupInners) - ? object.lookupInners.map((e) => exports.InnerOp.fromJSON(e)) - : [], - }; + const obj = createBaseConsensusState(); + if ((0, helpers_1.isSet)(object.timestamp)) + obj.timestamp = (0, helpers_1.fromJsonTimestamp)(object.timestamp); + if ((0, helpers_1.isSet)(object.root)) + obj.root = commitment_1.MerkleRoot.fromJSON(object.root); + if ((0, helpers_1.isSet)(object.nextValidatorsHash)) + obj.nextValidatorsHash = (0, helpers_1.bytesFromBase64)(object.nextValidatorsHash); + return obj; }, toJSON(message) { const obj = {}; - if (message.entries) { - obj.entries = message.entries.map((e) => (e ? exports.CompressedBatchEntry.toJSON(e) : undefined)); - } - else { - obj.entries = []; - } - if (message.lookupInners) { - obj.lookupInners = message.lookupInners.map((e) => (e ? exports.InnerOp.toJSON(e) : undefined)); - } - else { - obj.lookupInners = []; - } + message.timestamp !== undefined && (obj.timestamp = (0, helpers_1.fromTimestamp)(message.timestamp).toISOString()); + message.root !== undefined && (obj.root = message.root ? commitment_1.MerkleRoot.toJSON(message.root) : undefined); + message.nextValidatorsHash !== undefined && + (obj.nextValidatorsHash = (0, helpers_1.base64FromBytes)(message.nextValidatorsHash !== undefined ? message.nextValidatorsHash : new Uint8Array())); return obj; }, fromPartial(object) { - const message = createBaseCompressedBatchProof(); - message.entries = object.entries?.map((e) => exports.CompressedBatchEntry.fromPartial(e)) || []; - message.lookupInners = object.lookupInners?.map((e) => exports.InnerOp.fromPartial(e)) || []; + const message = createBaseConsensusState(); + if (object.timestamp !== undefined && object.timestamp !== null) { + message.timestamp = timestamp_1.Timestamp.fromPartial(object.timestamp); + } + if (object.root !== undefined && object.root !== null) { + message.root = commitment_1.MerkleRoot.fromPartial(object.root); + } + message.nextValidatorsHash = object.nextValidatorsHash ?? new Uint8Array(); return message; }, }; -function createBaseCompressedBatchEntry() { +function createBaseMisbehaviour() { return { - exist: undefined, - nonexist: undefined, + clientId: "", + header1: undefined, + header2: undefined, }; } -exports.CompressedBatchEntry = { - encode(message, writer = _m0.Writer.create()) { - if (message.exist !== undefined) { - exports.CompressedExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim(); +exports.Misbehaviour = { + typeUrl: "/ibc.lightclients.tendermint.v1.Misbehaviour", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.clientId !== "") { + writer.uint32(10).string(message.clientId); } - if (message.nonexist !== undefined) { - exports.CompressedNonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim(); + if (message.header1 !== undefined) { + exports.Header.encode(message.header1, writer.uint32(18).fork()).ldelim(); + } + if (message.header2 !== undefined) { + exports.Header.encode(message.header2, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCompressedBatchEntry(); + const message = createBaseMisbehaviour(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.exist = exports.CompressedExistenceProof.decode(reader, reader.uint32()); + message.clientId = reader.string(); break; case 2: - message.nonexist = exports.CompressedNonExistenceProof.decode(reader, reader.uint32()); + message.header1 = exports.Header.decode(reader, reader.uint32()); + break; + case 3: + message.header2 = exports.Header.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -94685,84 +90574,79 @@ exports.CompressedBatchEntry = { return message; }, fromJSON(object) { - return { - exist: (0, helpers_1.isSet)(object.exist) ? exports.CompressedExistenceProof.fromJSON(object.exist) : undefined, - nonexist: (0, helpers_1.isSet)(object.nonexist) ? exports.CompressedNonExistenceProof.fromJSON(object.nonexist) : undefined, - }; + const obj = createBaseMisbehaviour(); + if ((0, helpers_1.isSet)(object.clientId)) + obj.clientId = String(object.clientId); + if ((0, helpers_1.isSet)(object.header1)) + obj.header1 = exports.Header.fromJSON(object.header1); + if ((0, helpers_1.isSet)(object.header2)) + obj.header2 = exports.Header.fromJSON(object.header2); + return obj; }, toJSON(message) { const obj = {}; - message.exist !== undefined && - (obj.exist = message.exist ? exports.CompressedExistenceProof.toJSON(message.exist) : undefined); - message.nonexist !== undefined && - (obj.nonexist = message.nonexist ? exports.CompressedNonExistenceProof.toJSON(message.nonexist) : undefined); + message.clientId !== undefined && (obj.clientId = message.clientId); + message.header1 !== undefined && + (obj.header1 = message.header1 ? exports.Header.toJSON(message.header1) : undefined); + message.header2 !== undefined && + (obj.header2 = message.header2 ? exports.Header.toJSON(message.header2) : undefined); return obj; }, fromPartial(object) { - const message = createBaseCompressedBatchEntry(); - message.exist = - object.exist !== undefined && object.exist !== null - ? exports.CompressedExistenceProof.fromPartial(object.exist) - : undefined; - message.nonexist = - object.nonexist !== undefined && object.nonexist !== null - ? exports.CompressedNonExistenceProof.fromPartial(object.nonexist) - : undefined; + const message = createBaseMisbehaviour(); + message.clientId = object.clientId ?? ""; + if (object.header1 !== undefined && object.header1 !== null) { + message.header1 = exports.Header.fromPartial(object.header1); + } + if (object.header2 !== undefined && object.header2 !== null) { + message.header2 = exports.Header.fromPartial(object.header2); + } return message; }, }; -function createBaseCompressedExistenceProof() { +function createBaseHeader() { return { - key: new Uint8Array(), - value: new Uint8Array(), - leaf: undefined, - path: [], + signedHeader: undefined, + validatorSet: undefined, + trustedHeight: client_1.Height.fromPartial({}), + trustedValidators: undefined, }; } -exports.CompressedExistenceProof = { - encode(message, writer = _m0.Writer.create()) { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); +exports.Header = { + typeUrl: "/ibc.lightclients.tendermint.v1.Header", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.signedHeader !== undefined) { + types_1.SignedHeader.encode(message.signedHeader, writer.uint32(10).fork()).ldelim(); } - if (message.value.length !== 0) { - writer.uint32(18).bytes(message.value); + if (message.validatorSet !== undefined) { + validator_1.ValidatorSet.encode(message.validatorSet, writer.uint32(18).fork()).ldelim(); } - if (message.leaf !== undefined) { - exports.LeafOp.encode(message.leaf, writer.uint32(26).fork()).ldelim(); + if (message.trustedHeight !== undefined) { + client_1.Height.encode(message.trustedHeight, writer.uint32(26).fork()).ldelim(); } - writer.uint32(34).fork(); - for (const v of message.path) { - writer.int32(v); + if (message.trustedValidators !== undefined) { + validator_1.ValidatorSet.encode(message.trustedValidators, writer.uint32(34).fork()).ldelim(); } - writer.ldelim(); return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCompressedExistenceProof(); + const message = createBaseHeader(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.key = reader.bytes(); + message.signedHeader = types_1.SignedHeader.decode(reader, reader.uint32()); break; case 2: - message.value = reader.bytes(); + message.validatorSet = validator_1.ValidatorSet.decode(reader, reader.uint32()); break; case 3: - message.leaf = exports.LeafOp.decode(reader, reader.uint32()); + message.trustedHeight = client_1.Height.decode(reader, reader.uint32()); break; case 4: - if ((tag & 7) === 2) { - const end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) { - message.path.push(reader.int32()); - } - } - else { - message.path.push(reader.int32()); - } + message.trustedValidators = validator_1.ValidatorSet.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -94772,73 +90656,77 @@ exports.CompressedExistenceProof = { return message; }, fromJSON(object) { - return { - key: (0, helpers_1.isSet)(object.key) ? (0, helpers_1.bytesFromBase64)(object.key) : new Uint8Array(), - value: (0, helpers_1.isSet)(object.value) ? (0, helpers_1.bytesFromBase64)(object.value) : new Uint8Array(), - leaf: (0, helpers_1.isSet)(object.leaf) ? exports.LeafOp.fromJSON(object.leaf) : undefined, - path: Array.isArray(object?.path) ? object.path.map((e) => Number(e)) : [], - }; + const obj = createBaseHeader(); + if ((0, helpers_1.isSet)(object.signedHeader)) + obj.signedHeader = types_1.SignedHeader.fromJSON(object.signedHeader); + if ((0, helpers_1.isSet)(object.validatorSet)) + obj.validatorSet = validator_1.ValidatorSet.fromJSON(object.validatorSet); + if ((0, helpers_1.isSet)(object.trustedHeight)) + obj.trustedHeight = client_1.Height.fromJSON(object.trustedHeight); + if ((0, helpers_1.isSet)(object.trustedValidators)) + obj.trustedValidators = validator_1.ValidatorSet.fromJSON(object.trustedValidators); + return obj; }, toJSON(message) { const obj = {}; - message.key !== undefined && - (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array())); - message.value !== undefined && - (obj.value = (0, helpers_1.base64FromBytes)(message.value !== undefined ? message.value : new Uint8Array())); - message.leaf !== undefined && (obj.leaf = message.leaf ? exports.LeafOp.toJSON(message.leaf) : undefined); - if (message.path) { - obj.path = message.path.map((e) => Math.round(e)); - } - else { - obj.path = []; - } + message.signedHeader !== undefined && + (obj.signedHeader = message.signedHeader ? types_1.SignedHeader.toJSON(message.signedHeader) : undefined); + message.validatorSet !== undefined && + (obj.validatorSet = message.validatorSet ? validator_1.ValidatorSet.toJSON(message.validatorSet) : undefined); + message.trustedHeight !== undefined && + (obj.trustedHeight = message.trustedHeight ? client_1.Height.toJSON(message.trustedHeight) : undefined); + message.trustedValidators !== undefined && + (obj.trustedValidators = message.trustedValidators + ? validator_1.ValidatorSet.toJSON(message.trustedValidators) + : undefined); return obj; }, fromPartial(object) { - const message = createBaseCompressedExistenceProof(); - message.key = object.key ?? new Uint8Array(); - message.value = object.value ?? new Uint8Array(); - message.leaf = - object.leaf !== undefined && object.leaf !== null ? exports.LeafOp.fromPartial(object.leaf) : undefined; - message.path = object.path?.map((e) => e) || []; + const message = createBaseHeader(); + if (object.signedHeader !== undefined && object.signedHeader !== null) { + message.signedHeader = types_1.SignedHeader.fromPartial(object.signedHeader); + } + if (object.validatorSet !== undefined && object.validatorSet !== null) { + message.validatorSet = validator_1.ValidatorSet.fromPartial(object.validatorSet); + } + if (object.trustedHeight !== undefined && object.trustedHeight !== null) { + message.trustedHeight = client_1.Height.fromPartial(object.trustedHeight); + } + if (object.trustedValidators !== undefined && object.trustedValidators !== null) { + message.trustedValidators = validator_1.ValidatorSet.fromPartial(object.trustedValidators); + } return message; }, }; -function createBaseCompressedNonExistenceProof() { +function createBaseFraction() { return { - key: new Uint8Array(), - left: undefined, - right: undefined, + numerator: BigInt(0), + denominator: BigInt(0), }; } -exports.CompressedNonExistenceProof = { - encode(message, writer = _m0.Writer.create()) { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); - } - if (message.left !== undefined) { - exports.CompressedExistenceProof.encode(message.left, writer.uint32(18).fork()).ldelim(); +exports.Fraction = { + typeUrl: "/ibc.lightclients.tendermint.v1.Fraction", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.numerator !== BigInt(0)) { + writer.uint32(8).uint64(message.numerator); } - if (message.right !== undefined) { - exports.CompressedExistenceProof.encode(message.right, writer.uint32(26).fork()).ldelim(); + if (message.denominator !== BigInt(0)) { + writer.uint32(16).uint64(message.denominator); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCompressedNonExistenceProof(); + const message = createBaseFraction(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.key = reader.bytes(); + message.numerator = reader.uint64(); break; case 2: - message.left = exports.CompressedExistenceProof.decode(reader, reader.uint32()); - break; - case 3: - message.right = exports.CompressedExistenceProof.decode(reader, reader.uint32()); + message.denominator = reader.uint64(); break; default: reader.skipType(tag & 7); @@ -94848,37 +90736,31 @@ exports.CompressedNonExistenceProof = { return message; }, fromJSON(object) { - return { - key: (0, helpers_1.isSet)(object.key) ? (0, helpers_1.bytesFromBase64)(object.key) : new Uint8Array(), - left: (0, helpers_1.isSet)(object.left) ? exports.CompressedExistenceProof.fromJSON(object.left) : undefined, - right: (0, helpers_1.isSet)(object.right) ? exports.CompressedExistenceProof.fromJSON(object.right) : undefined, - }; + const obj = createBaseFraction(); + if ((0, helpers_1.isSet)(object.numerator)) + obj.numerator = BigInt(object.numerator.toString()); + if ((0, helpers_1.isSet)(object.denominator)) + obj.denominator = BigInt(object.denominator.toString()); + return obj; }, toJSON(message) { const obj = {}; - message.key !== undefined && - (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array())); - message.left !== undefined && - (obj.left = message.left ? exports.CompressedExistenceProof.toJSON(message.left) : undefined); - message.right !== undefined && - (obj.right = message.right ? exports.CompressedExistenceProof.toJSON(message.right) : undefined); + message.numerator !== undefined && (obj.numerator = (message.numerator || BigInt(0)).toString()); + message.denominator !== undefined && (obj.denominator = (message.denominator || BigInt(0)).toString()); return obj; }, fromPartial(object) { - const message = createBaseCompressedNonExistenceProof(); - message.key = object.key ?? new Uint8Array(); - message.left = - object.left !== undefined && object.left !== null - ? exports.CompressedExistenceProof.fromPartial(object.left) - : undefined; - message.right = - object.right !== undefined && object.right !== null - ? exports.CompressedExistenceProof.fromPartial(object.right) - : undefined; + const message = createBaseFraction(); + if (object.numerator !== undefined && object.numerator !== null) { + message.numerator = BigInt(object.numerator.toString()); + } + if (object.denominator !== undefined && object.denominator !== null) { + message.denominator = BigInt(object.denominator.toString()); + } return message; }, }; -//# sourceMappingURL=proofs.js.map +//# sourceMappingURL=tendermint.js.map /***/ }), @@ -94890,39 +90772,16 @@ exports.CompressedNonExistenceProof = { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Event = exports.LastCommitInfo = exports.BlockParams = exports.ConsensusParams = exports.ResponseApplySnapshotChunk = exports.ResponseLoadSnapshotChunk = exports.ResponseOfferSnapshot = exports.ResponseListSnapshots = exports.ResponseCommit = exports.ResponseEndBlock = exports.ResponseDeliverTx = exports.ResponseCheckTx = exports.ResponseBeginBlock = exports.ResponseQuery = exports.ResponseInitChain = exports.ResponseSetOption = exports.ResponseInfo = exports.ResponseFlush = exports.ResponseEcho = exports.ResponseException = exports.Response = exports.RequestApplySnapshotChunk = exports.RequestLoadSnapshotChunk = exports.RequestOfferSnapshot = exports.RequestListSnapshots = exports.RequestCommit = exports.RequestEndBlock = exports.RequestDeliverTx = exports.RequestCheckTx = exports.RequestBeginBlock = exports.RequestQuery = exports.RequestInitChain = exports.RequestSetOption = exports.RequestInfo = exports.RequestFlush = exports.RequestEcho = exports.Request = exports.evidenceTypeToJSON = exports.evidenceTypeFromJSON = exports.EvidenceType = exports.responseApplySnapshotChunk_ResultToJSON = exports.responseApplySnapshotChunk_ResultFromJSON = exports.ResponseApplySnapshotChunk_Result = exports.responseOfferSnapshot_ResultToJSON = exports.responseOfferSnapshot_ResultFromJSON = exports.ResponseOfferSnapshot_Result = exports.checkTxTypeToJSON = exports.checkTxTypeFromJSON = exports.CheckTxType = exports.protobufPackage = void 0; -exports.ABCIApplicationClientImpl = exports.Snapshot = exports.Evidence = exports.VoteInfo = exports.ValidatorUpdate = exports.Validator = exports.TxResult = exports.EventAttribute = void 0; +exports.ResponsePrepareProposal = exports.ResponseApplySnapshotChunk = exports.ResponseLoadSnapshotChunk = exports.ResponseOfferSnapshot = exports.ResponseListSnapshots = exports.ResponseCommit = exports.ResponseEndBlock = exports.ResponseDeliverTx = exports.ResponseCheckTx = exports.ResponseBeginBlock = exports.ResponseQuery = exports.ResponseInitChain = exports.ResponseInfo = exports.ResponseFlush = exports.ResponseEcho = exports.ResponseException = exports.Response = exports.RequestProcessProposal = exports.RequestPrepareProposal = exports.RequestApplySnapshotChunk = exports.RequestLoadSnapshotChunk = exports.RequestOfferSnapshot = exports.RequestListSnapshots = exports.RequestCommit = exports.RequestEndBlock = exports.RequestDeliverTx = exports.RequestCheckTx = exports.RequestBeginBlock = exports.RequestQuery = exports.RequestInitChain = exports.RequestInfo = exports.RequestFlush = exports.RequestEcho = exports.Request = exports.misbehaviorTypeToJSON = exports.misbehaviorTypeFromJSON = exports.MisbehaviorType = exports.responseProcessProposal_ProposalStatusToJSON = exports.responseProcessProposal_ProposalStatusFromJSON = exports.ResponseProcessProposal_ProposalStatus = exports.responseApplySnapshotChunk_ResultToJSON = exports.responseApplySnapshotChunk_ResultFromJSON = exports.ResponseApplySnapshotChunk_Result = exports.responseOfferSnapshot_ResultToJSON = exports.responseOfferSnapshot_ResultFromJSON = exports.ResponseOfferSnapshot_Result = exports.checkTxTypeToJSON = exports.checkTxTypeFromJSON = exports.CheckTxType = exports.protobufPackage = void 0; +exports.ABCIApplicationClientImpl = exports.Snapshot = exports.Misbehavior = exports.ExtendedVoteInfo = exports.VoteInfo = exports.ValidatorUpdate = exports.Validator = exports.TxResult = exports.EventAttribute = exports.Event = exports.ExtendedCommitInfo = exports.CommitInfo = exports.ResponseProcessProposal = void 0; /* eslint-disable */ const timestamp_1 = __webpack_require__(/*! ../../google/protobuf/timestamp */ "./node_modules/cosmjs-types/google/protobuf/timestamp.js"); +const params_1 = __webpack_require__(/*! ../types/params */ "./node_modules/cosmjs-types/tendermint/types/params.js"); const types_1 = __webpack_require__(/*! ../types/types */ "./node_modules/cosmjs-types/tendermint/types/types.js"); const proof_1 = __webpack_require__(/*! ../crypto/proof */ "./node_modules/cosmjs-types/tendermint/crypto/proof.js"); -const params_1 = __webpack_require__(/*! ../types/params */ "./node_modules/cosmjs-types/tendermint/types/params.js"); const keys_1 = __webpack_require__(/*! ../crypto/keys */ "./node_modules/cosmjs-types/tendermint/crypto/keys.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "tendermint.abci"; var CheckTxType; @@ -94930,7 +90789,7 @@ var CheckTxType; CheckTxType[CheckTxType["NEW"] = 0] = "NEW"; CheckTxType[CheckTxType["RECHECK"] = 1] = "RECHECK"; CheckTxType[CheckTxType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(CheckTxType = exports.CheckTxType || (exports.CheckTxType = {})); +})(CheckTxType || (exports.CheckTxType = CheckTxType = {})); function checkTxTypeFromJSON(object) { switch (object) { case 0: @@ -94973,7 +90832,7 @@ var ResponseOfferSnapshot_Result; /** REJECT_SENDER - Reject all snapshots from the sender(s), try others */ ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result["REJECT_SENDER"] = 5] = "REJECT_SENDER"; ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(ResponseOfferSnapshot_Result = exports.ResponseOfferSnapshot_Result || (exports.ResponseOfferSnapshot_Result = {})); +})(ResponseOfferSnapshot_Result || (exports.ResponseOfferSnapshot_Result = ResponseOfferSnapshot_Result = {})); function responseOfferSnapshot_ResultFromJSON(object) { switch (object) { case 0: @@ -95036,7 +90895,7 @@ var ResponseApplySnapshotChunk_Result; /** REJECT_SNAPSHOT - Reject this snapshot, try others */ ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result["REJECT_SNAPSHOT"] = 5] = "REJECT_SNAPSHOT"; ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(ResponseApplySnapshotChunk_Result = exports.ResponseApplySnapshotChunk_Result || (exports.ResponseApplySnapshotChunk_Result = {})); +})(ResponseApplySnapshotChunk_Result || (exports.ResponseApplySnapshotChunk_Result = ResponseApplySnapshotChunk_Result = {})); function responseApplySnapshotChunk_ResultFromJSON(object) { switch (object) { case 0: @@ -95084,51 +90943,89 @@ function responseApplySnapshotChunk_ResultToJSON(object) { } } exports.responseApplySnapshotChunk_ResultToJSON = responseApplySnapshotChunk_ResultToJSON; -var EvidenceType; -(function (EvidenceType) { - EvidenceType[EvidenceType["UNKNOWN"] = 0] = "UNKNOWN"; - EvidenceType[EvidenceType["DUPLICATE_VOTE"] = 1] = "DUPLICATE_VOTE"; - EvidenceType[EvidenceType["LIGHT_CLIENT_ATTACK"] = 2] = "LIGHT_CLIENT_ATTACK"; - EvidenceType[EvidenceType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(EvidenceType = exports.EvidenceType || (exports.EvidenceType = {})); -function evidenceTypeFromJSON(object) { +var ResponseProcessProposal_ProposalStatus; +(function (ResponseProcessProposal_ProposalStatus) { + ResponseProcessProposal_ProposalStatus[ResponseProcessProposal_ProposalStatus["UNKNOWN"] = 0] = "UNKNOWN"; + ResponseProcessProposal_ProposalStatus[ResponseProcessProposal_ProposalStatus["ACCEPT"] = 1] = "ACCEPT"; + ResponseProcessProposal_ProposalStatus[ResponseProcessProposal_ProposalStatus["REJECT"] = 2] = "REJECT"; + ResponseProcessProposal_ProposalStatus[ResponseProcessProposal_ProposalStatus["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(ResponseProcessProposal_ProposalStatus || (exports.ResponseProcessProposal_ProposalStatus = ResponseProcessProposal_ProposalStatus = {})); +function responseProcessProposal_ProposalStatusFromJSON(object) { + switch (object) { + case 0: + case "UNKNOWN": + return ResponseProcessProposal_ProposalStatus.UNKNOWN; + case 1: + case "ACCEPT": + return ResponseProcessProposal_ProposalStatus.ACCEPT; + case 2: + case "REJECT": + return ResponseProcessProposal_ProposalStatus.REJECT; + case -1: + case "UNRECOGNIZED": + default: + return ResponseProcessProposal_ProposalStatus.UNRECOGNIZED; + } +} +exports.responseProcessProposal_ProposalStatusFromJSON = responseProcessProposal_ProposalStatusFromJSON; +function responseProcessProposal_ProposalStatusToJSON(object) { + switch (object) { + case ResponseProcessProposal_ProposalStatus.UNKNOWN: + return "UNKNOWN"; + case ResponseProcessProposal_ProposalStatus.ACCEPT: + return "ACCEPT"; + case ResponseProcessProposal_ProposalStatus.REJECT: + return "REJECT"; + case ResponseProcessProposal_ProposalStatus.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} +exports.responseProcessProposal_ProposalStatusToJSON = responseProcessProposal_ProposalStatusToJSON; +var MisbehaviorType; +(function (MisbehaviorType) { + MisbehaviorType[MisbehaviorType["UNKNOWN"] = 0] = "UNKNOWN"; + MisbehaviorType[MisbehaviorType["DUPLICATE_VOTE"] = 1] = "DUPLICATE_VOTE"; + MisbehaviorType[MisbehaviorType["LIGHT_CLIENT_ATTACK"] = 2] = "LIGHT_CLIENT_ATTACK"; + MisbehaviorType[MisbehaviorType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(MisbehaviorType || (exports.MisbehaviorType = MisbehaviorType = {})); +function misbehaviorTypeFromJSON(object) { switch (object) { case 0: case "UNKNOWN": - return EvidenceType.UNKNOWN; + return MisbehaviorType.UNKNOWN; case 1: case "DUPLICATE_VOTE": - return EvidenceType.DUPLICATE_VOTE; + return MisbehaviorType.DUPLICATE_VOTE; case 2: case "LIGHT_CLIENT_ATTACK": - return EvidenceType.LIGHT_CLIENT_ATTACK; + return MisbehaviorType.LIGHT_CLIENT_ATTACK; case -1: case "UNRECOGNIZED": default: - return EvidenceType.UNRECOGNIZED; + return MisbehaviorType.UNRECOGNIZED; } } -exports.evidenceTypeFromJSON = evidenceTypeFromJSON; -function evidenceTypeToJSON(object) { +exports.misbehaviorTypeFromJSON = misbehaviorTypeFromJSON; +function misbehaviorTypeToJSON(object) { switch (object) { - case EvidenceType.UNKNOWN: + case MisbehaviorType.UNKNOWN: return "UNKNOWN"; - case EvidenceType.DUPLICATE_VOTE: + case MisbehaviorType.DUPLICATE_VOTE: return "DUPLICATE_VOTE"; - case EvidenceType.LIGHT_CLIENT_ATTACK: + case MisbehaviorType.LIGHT_CLIENT_ATTACK: return "LIGHT_CLIENT_ATTACK"; - case EvidenceType.UNRECOGNIZED: + case MisbehaviorType.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } -exports.evidenceTypeToJSON = evidenceTypeToJSON; +exports.misbehaviorTypeToJSON = misbehaviorTypeToJSON; function createBaseRequest() { return { echo: undefined, flush: undefined, info: undefined, - setOption: undefined, initChain: undefined, query: undefined, beginBlock: undefined, @@ -95140,10 +91037,13 @@ function createBaseRequest() { offerSnapshot: undefined, loadSnapshotChunk: undefined, applySnapshotChunk: undefined, + prepareProposal: undefined, + processProposal: undefined, }; } exports.Request = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.Request", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.echo !== undefined) { exports.RequestEcho.encode(message.echo, writer.uint32(10).fork()).ldelim(); } @@ -95153,9 +91053,6 @@ exports.Request = { if (message.info !== undefined) { exports.RequestInfo.encode(message.info, writer.uint32(26).fork()).ldelim(); } - if (message.setOption !== undefined) { - exports.RequestSetOption.encode(message.setOption, writer.uint32(34).fork()).ldelim(); - } if (message.initChain !== undefined) { exports.RequestInitChain.encode(message.initChain, writer.uint32(42).fork()).ldelim(); } @@ -95189,10 +91086,16 @@ exports.Request = { if (message.applySnapshotChunk !== undefined) { exports.RequestApplySnapshotChunk.encode(message.applySnapshotChunk, writer.uint32(122).fork()).ldelim(); } + if (message.prepareProposal !== undefined) { + exports.RequestPrepareProposal.encode(message.prepareProposal, writer.uint32(130).fork()).ldelim(); + } + if (message.processProposal !== undefined) { + exports.RequestProcessProposal.encode(message.processProposal, writer.uint32(138).fork()).ldelim(); + } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseRequest(); while (reader.pos < end) { @@ -95207,9 +91110,6 @@ exports.Request = { case 3: message.info = exports.RequestInfo.decode(reader, reader.uint32()); break; - case 4: - message.setOption = exports.RequestSetOption.decode(reader, reader.uint32()); - break; case 5: message.initChain = exports.RequestInitChain.decode(reader, reader.uint32()); break; @@ -95243,6 +91143,12 @@ exports.Request = { case 15: message.applySnapshotChunk = exports.RequestApplySnapshotChunk.decode(reader, reader.uint32()); break; + case 16: + message.prepareProposal = exports.RequestPrepareProposal.decode(reader, reader.uint32()); + break; + case 17: + message.processProposal = exports.RequestProcessProposal.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -95251,31 +91157,40 @@ exports.Request = { return message; }, fromJSON(object) { - return { - echo: (0, helpers_1.isSet)(object.echo) ? exports.RequestEcho.fromJSON(object.echo) : undefined, - flush: (0, helpers_1.isSet)(object.flush) ? exports.RequestFlush.fromJSON(object.flush) : undefined, - info: (0, helpers_1.isSet)(object.info) ? exports.RequestInfo.fromJSON(object.info) : undefined, - setOption: (0, helpers_1.isSet)(object.setOption) ? exports.RequestSetOption.fromJSON(object.setOption) : undefined, - initChain: (0, helpers_1.isSet)(object.initChain) ? exports.RequestInitChain.fromJSON(object.initChain) : undefined, - query: (0, helpers_1.isSet)(object.query) ? exports.RequestQuery.fromJSON(object.query) : undefined, - beginBlock: (0, helpers_1.isSet)(object.beginBlock) ? exports.RequestBeginBlock.fromJSON(object.beginBlock) : undefined, - checkTx: (0, helpers_1.isSet)(object.checkTx) ? exports.RequestCheckTx.fromJSON(object.checkTx) : undefined, - deliverTx: (0, helpers_1.isSet)(object.deliverTx) ? exports.RequestDeliverTx.fromJSON(object.deliverTx) : undefined, - endBlock: (0, helpers_1.isSet)(object.endBlock) ? exports.RequestEndBlock.fromJSON(object.endBlock) : undefined, - commit: (0, helpers_1.isSet)(object.commit) ? exports.RequestCommit.fromJSON(object.commit) : undefined, - listSnapshots: (0, helpers_1.isSet)(object.listSnapshots) - ? exports.RequestListSnapshots.fromJSON(object.listSnapshots) - : undefined, - offerSnapshot: (0, helpers_1.isSet)(object.offerSnapshot) - ? exports.RequestOfferSnapshot.fromJSON(object.offerSnapshot) - : undefined, - loadSnapshotChunk: (0, helpers_1.isSet)(object.loadSnapshotChunk) - ? exports.RequestLoadSnapshotChunk.fromJSON(object.loadSnapshotChunk) - : undefined, - applySnapshotChunk: (0, helpers_1.isSet)(object.applySnapshotChunk) - ? exports.RequestApplySnapshotChunk.fromJSON(object.applySnapshotChunk) - : undefined, - }; + const obj = createBaseRequest(); + if ((0, helpers_1.isSet)(object.echo)) + obj.echo = exports.RequestEcho.fromJSON(object.echo); + if ((0, helpers_1.isSet)(object.flush)) + obj.flush = exports.RequestFlush.fromJSON(object.flush); + if ((0, helpers_1.isSet)(object.info)) + obj.info = exports.RequestInfo.fromJSON(object.info); + if ((0, helpers_1.isSet)(object.initChain)) + obj.initChain = exports.RequestInitChain.fromJSON(object.initChain); + if ((0, helpers_1.isSet)(object.query)) + obj.query = exports.RequestQuery.fromJSON(object.query); + if ((0, helpers_1.isSet)(object.beginBlock)) + obj.beginBlock = exports.RequestBeginBlock.fromJSON(object.beginBlock); + if ((0, helpers_1.isSet)(object.checkTx)) + obj.checkTx = exports.RequestCheckTx.fromJSON(object.checkTx); + if ((0, helpers_1.isSet)(object.deliverTx)) + obj.deliverTx = exports.RequestDeliverTx.fromJSON(object.deliverTx); + if ((0, helpers_1.isSet)(object.endBlock)) + obj.endBlock = exports.RequestEndBlock.fromJSON(object.endBlock); + if ((0, helpers_1.isSet)(object.commit)) + obj.commit = exports.RequestCommit.fromJSON(object.commit); + if ((0, helpers_1.isSet)(object.listSnapshots)) + obj.listSnapshots = exports.RequestListSnapshots.fromJSON(object.listSnapshots); + if ((0, helpers_1.isSet)(object.offerSnapshot)) + obj.offerSnapshot = exports.RequestOfferSnapshot.fromJSON(object.offerSnapshot); + if ((0, helpers_1.isSet)(object.loadSnapshotChunk)) + obj.loadSnapshotChunk = exports.RequestLoadSnapshotChunk.fromJSON(object.loadSnapshotChunk); + if ((0, helpers_1.isSet)(object.applySnapshotChunk)) + obj.applySnapshotChunk = exports.RequestApplySnapshotChunk.fromJSON(object.applySnapshotChunk); + if ((0, helpers_1.isSet)(object.prepareProposal)) + obj.prepareProposal = exports.RequestPrepareProposal.fromJSON(object.prepareProposal); + if ((0, helpers_1.isSet)(object.processProposal)) + obj.processProposal = exports.RequestProcessProposal.fromJSON(object.processProposal); + return obj; }, toJSON(message) { const obj = {}; @@ -95283,8 +91198,6 @@ exports.Request = { message.flush !== undefined && (obj.flush = message.flush ? exports.RequestFlush.toJSON(message.flush) : undefined); message.info !== undefined && (obj.info = message.info ? exports.RequestInfo.toJSON(message.info) : undefined); - message.setOption !== undefined && - (obj.setOption = message.setOption ? exports.RequestSetOption.toJSON(message.setOption) : undefined); message.initChain !== undefined && (obj.initChain = message.initChain ? exports.RequestInitChain.toJSON(message.initChain) : undefined); message.query !== undefined && @@ -95315,66 +91228,66 @@ exports.Request = { (obj.applySnapshotChunk = message.applySnapshotChunk ? exports.RequestApplySnapshotChunk.toJSON(message.applySnapshotChunk) : undefined); + message.prepareProposal !== undefined && + (obj.prepareProposal = message.prepareProposal + ? exports.RequestPrepareProposal.toJSON(message.prepareProposal) + : undefined); + message.processProposal !== undefined && + (obj.processProposal = message.processProposal + ? exports.RequestProcessProposal.toJSON(message.processProposal) + : undefined); return obj; }, fromPartial(object) { const message = createBaseRequest(); - message.echo = - object.echo !== undefined && object.echo !== null ? exports.RequestEcho.fromPartial(object.echo) : undefined; - message.flush = - object.flush !== undefined && object.flush !== null - ? exports.RequestFlush.fromPartial(object.flush) - : undefined; - message.info = - object.info !== undefined && object.info !== null ? exports.RequestInfo.fromPartial(object.info) : undefined; - message.setOption = - object.setOption !== undefined && object.setOption !== null - ? exports.RequestSetOption.fromPartial(object.setOption) - : undefined; - message.initChain = - object.initChain !== undefined && object.initChain !== null - ? exports.RequestInitChain.fromPartial(object.initChain) - : undefined; - message.query = - object.query !== undefined && object.query !== null - ? exports.RequestQuery.fromPartial(object.query) - : undefined; - message.beginBlock = - object.beginBlock !== undefined && object.beginBlock !== null - ? exports.RequestBeginBlock.fromPartial(object.beginBlock) - : undefined; - message.checkTx = - object.checkTx !== undefined && object.checkTx !== null - ? exports.RequestCheckTx.fromPartial(object.checkTx) - : undefined; - message.deliverTx = - object.deliverTx !== undefined && object.deliverTx !== null - ? exports.RequestDeliverTx.fromPartial(object.deliverTx) - : undefined; - message.endBlock = - object.endBlock !== undefined && object.endBlock !== null - ? exports.RequestEndBlock.fromPartial(object.endBlock) - : undefined; - message.commit = - object.commit !== undefined && object.commit !== null - ? exports.RequestCommit.fromPartial(object.commit) - : undefined; - message.listSnapshots = - object.listSnapshots !== undefined && object.listSnapshots !== null - ? exports.RequestListSnapshots.fromPartial(object.listSnapshots) - : undefined; - message.offerSnapshot = - object.offerSnapshot !== undefined && object.offerSnapshot !== null - ? exports.RequestOfferSnapshot.fromPartial(object.offerSnapshot) - : undefined; - message.loadSnapshotChunk = - object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null - ? exports.RequestLoadSnapshotChunk.fromPartial(object.loadSnapshotChunk) - : undefined; - message.applySnapshotChunk = - object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null - ? exports.RequestApplySnapshotChunk.fromPartial(object.applySnapshotChunk) - : undefined; + if (object.echo !== undefined && object.echo !== null) { + message.echo = exports.RequestEcho.fromPartial(object.echo); + } + if (object.flush !== undefined && object.flush !== null) { + message.flush = exports.RequestFlush.fromPartial(object.flush); + } + if (object.info !== undefined && object.info !== null) { + message.info = exports.RequestInfo.fromPartial(object.info); + } + if (object.initChain !== undefined && object.initChain !== null) { + message.initChain = exports.RequestInitChain.fromPartial(object.initChain); + } + if (object.query !== undefined && object.query !== null) { + message.query = exports.RequestQuery.fromPartial(object.query); + } + if (object.beginBlock !== undefined && object.beginBlock !== null) { + message.beginBlock = exports.RequestBeginBlock.fromPartial(object.beginBlock); + } + if (object.checkTx !== undefined && object.checkTx !== null) { + message.checkTx = exports.RequestCheckTx.fromPartial(object.checkTx); + } + if (object.deliverTx !== undefined && object.deliverTx !== null) { + message.deliverTx = exports.RequestDeliverTx.fromPartial(object.deliverTx); + } + if (object.endBlock !== undefined && object.endBlock !== null) { + message.endBlock = exports.RequestEndBlock.fromPartial(object.endBlock); + } + if (object.commit !== undefined && object.commit !== null) { + message.commit = exports.RequestCommit.fromPartial(object.commit); + } + if (object.listSnapshots !== undefined && object.listSnapshots !== null) { + message.listSnapshots = exports.RequestListSnapshots.fromPartial(object.listSnapshots); + } + if (object.offerSnapshot !== undefined && object.offerSnapshot !== null) { + message.offerSnapshot = exports.RequestOfferSnapshot.fromPartial(object.offerSnapshot); + } + if (object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null) { + message.loadSnapshotChunk = exports.RequestLoadSnapshotChunk.fromPartial(object.loadSnapshotChunk); + } + if (object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null) { + message.applySnapshotChunk = exports.RequestApplySnapshotChunk.fromPartial(object.applySnapshotChunk); + } + if (object.prepareProposal !== undefined && object.prepareProposal !== null) { + message.prepareProposal = exports.RequestPrepareProposal.fromPartial(object.prepareProposal); + } + if (object.processProposal !== undefined && object.processProposal !== null) { + message.processProposal = exports.RequestProcessProposal.fromPartial(object.processProposal); + } return message; }, }; @@ -95384,14 +91297,15 @@ function createBaseRequestEcho() { }; } exports.RequestEcho = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.RequestEcho", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.message !== "") { writer.uint32(10).string(message.message); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseRequestEcho(); while (reader.pos < end) { @@ -95408,9 +91322,10 @@ exports.RequestEcho = { return message; }, fromJSON(object) { - return { - message: (0, helpers_1.isSet)(object.message) ? String(object.message) : "", - }; + const obj = createBaseRequestEcho(); + if ((0, helpers_1.isSet)(object.message)) + obj.message = String(object.message); + return obj; }, toJSON(message) { const obj = {}; @@ -95427,11 +91342,12 @@ function createBaseRequestFlush() { return {}; } exports.RequestFlush = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.RequestFlush", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseRequestFlush(); while (reader.pos < end) { @@ -95445,7 +91361,8 @@ exports.RequestFlush = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseRequestFlush(); + return obj; }, toJSON(_) { const obj = {}; @@ -95459,25 +91376,30 @@ exports.RequestFlush = { function createBaseRequestInfo() { return { version: "", - blockVersion: helpers_1.Long.UZERO, - p2pVersion: helpers_1.Long.UZERO, + blockVersion: BigInt(0), + p2pVersion: BigInt(0), + abciVersion: "", }; } exports.RequestInfo = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.RequestInfo", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.version !== "") { writer.uint32(10).string(message.version); } - if (!message.blockVersion.isZero()) { + if (message.blockVersion !== BigInt(0)) { writer.uint32(16).uint64(message.blockVersion); } - if (!message.p2pVersion.isZero()) { + if (message.p2pVersion !== BigInt(0)) { writer.uint32(24).uint64(message.p2pVersion); } + if (message.abciVersion !== "") { + writer.uint32(34).string(message.abciVersion); + } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseRequestInfo(); while (reader.pos < end) { @@ -95492,6 +91414,9 @@ exports.RequestInfo = { case 3: message.p2pVersion = reader.uint64(); break; + case 4: + message.abciVersion = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -95500,101 +91425,51 @@ exports.RequestInfo = { return message; }, fromJSON(object) { - return { - version: (0, helpers_1.isSet)(object.version) ? String(object.version) : "", - blockVersion: (0, helpers_1.isSet)(object.blockVersion) ? helpers_1.Long.fromValue(object.blockVersion) : helpers_1.Long.UZERO, - p2pVersion: (0, helpers_1.isSet)(object.p2pVersion) ? helpers_1.Long.fromValue(object.p2pVersion) : helpers_1.Long.UZERO, - }; + const obj = createBaseRequestInfo(); + if ((0, helpers_1.isSet)(object.version)) + obj.version = String(object.version); + if ((0, helpers_1.isSet)(object.blockVersion)) + obj.blockVersion = BigInt(object.blockVersion.toString()); + if ((0, helpers_1.isSet)(object.p2pVersion)) + obj.p2pVersion = BigInt(object.p2pVersion.toString()); + if ((0, helpers_1.isSet)(object.abciVersion)) + obj.abciVersion = String(object.abciVersion); + return obj; }, toJSON(message) { const obj = {}; message.version !== undefined && (obj.version = message.version); - message.blockVersion !== undefined && - (obj.blockVersion = (message.blockVersion || helpers_1.Long.UZERO).toString()); - message.p2pVersion !== undefined && (obj.p2pVersion = (message.p2pVersion || helpers_1.Long.UZERO).toString()); + message.blockVersion !== undefined && (obj.blockVersion = (message.blockVersion || BigInt(0)).toString()); + message.p2pVersion !== undefined && (obj.p2pVersion = (message.p2pVersion || BigInt(0)).toString()); + message.abciVersion !== undefined && (obj.abciVersion = message.abciVersion); return obj; }, fromPartial(object) { const message = createBaseRequestInfo(); message.version = object.version ?? ""; - message.blockVersion = - object.blockVersion !== undefined && object.blockVersion !== null - ? helpers_1.Long.fromValue(object.blockVersion) - : helpers_1.Long.UZERO; - message.p2pVersion = - object.p2pVersion !== undefined && object.p2pVersion !== null - ? helpers_1.Long.fromValue(object.p2pVersion) - : helpers_1.Long.UZERO; - return message; - }, -}; -function createBaseRequestSetOption() { - return { - key: "", - value: "", - }; -} -exports.RequestSetOption = { - encode(message, writer = _m0.Writer.create()) { - if (message.key !== "") { - writer.uint32(10).string(message.key); - } - if (message.value !== "") { - writer.uint32(18).string(message.value); + if (object.blockVersion !== undefined && object.blockVersion !== null) { + message.blockVersion = BigInt(object.blockVersion.toString()); } - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRequestSetOption(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.key = reader.string(); - break; - case 2: - message.value = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } + if (object.p2pVersion !== undefined && object.p2pVersion !== null) { + message.p2pVersion = BigInt(object.p2pVersion.toString()); } - return message; - }, - fromJSON(object) { - return { - key: (0, helpers_1.isSet)(object.key) ? String(object.key) : "", - value: (0, helpers_1.isSet)(object.value) ? String(object.value) : "", - }; - }, - toJSON(message) { - const obj = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); - return obj; - }, - fromPartial(object) { - const message = createBaseRequestSetOption(); - message.key = object.key ?? ""; - message.value = object.value ?? ""; + message.abciVersion = object.abciVersion ?? ""; return message; }, }; function createBaseRequestInitChain() { return { - time: undefined, + time: timestamp_1.Timestamp.fromPartial({}), chainId: "", consensusParams: undefined, validators: [], appStateBytes: new Uint8Array(), - initialHeight: helpers_1.Long.ZERO, + initialHeight: BigInt(0), }; } exports.RequestInitChain = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.RequestInitChain", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.time !== undefined) { timestamp_1.Timestamp.encode(message.time, writer.uint32(10).fork()).ldelim(); } @@ -95602,7 +91477,7 @@ exports.RequestInitChain = { writer.uint32(18).string(message.chainId); } if (message.consensusParams !== undefined) { - exports.ConsensusParams.encode(message.consensusParams, writer.uint32(26).fork()).ldelim(); + params_1.ConsensusParams.encode(message.consensusParams, writer.uint32(26).fork()).ldelim(); } for (const v of message.validators) { exports.ValidatorUpdate.encode(v, writer.uint32(34).fork()).ldelim(); @@ -95610,13 +91485,13 @@ exports.RequestInitChain = { if (message.appStateBytes.length !== 0) { writer.uint32(42).bytes(message.appStateBytes); } - if (!message.initialHeight.isZero()) { + if (message.initialHeight !== BigInt(0)) { writer.uint32(48).int64(message.initialHeight); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseRequestInitChain(); while (reader.pos < end) { @@ -95629,7 +91504,7 @@ exports.RequestInitChain = { message.chainId = reader.string(); break; case 3: - message.consensusParams = exports.ConsensusParams.decode(reader, reader.uint32()); + message.consensusParams = params_1.ConsensusParams.decode(reader, reader.uint32()); break; case 4: message.validators.push(exports.ValidatorUpdate.decode(reader, reader.uint32())); @@ -95648,18 +91523,20 @@ exports.RequestInitChain = { return message; }, fromJSON(object) { - return { - time: (0, helpers_1.isSet)(object.time) ? (0, helpers_1.fromJsonTimestamp)(object.time) : undefined, - chainId: (0, helpers_1.isSet)(object.chainId) ? String(object.chainId) : "", - consensusParams: (0, helpers_1.isSet)(object.consensusParams) - ? exports.ConsensusParams.fromJSON(object.consensusParams) - : undefined, - validators: Array.isArray(object?.validators) - ? object.validators.map((e) => exports.ValidatorUpdate.fromJSON(e)) - : [], - appStateBytes: (0, helpers_1.isSet)(object.appStateBytes) ? (0, helpers_1.bytesFromBase64)(object.appStateBytes) : new Uint8Array(), - initialHeight: (0, helpers_1.isSet)(object.initialHeight) ? helpers_1.Long.fromValue(object.initialHeight) : helpers_1.Long.ZERO, - }; + const obj = createBaseRequestInitChain(); + if ((0, helpers_1.isSet)(object.time)) + obj.time = (0, helpers_1.fromJsonTimestamp)(object.time); + if ((0, helpers_1.isSet)(object.chainId)) + obj.chainId = String(object.chainId); + if ((0, helpers_1.isSet)(object.consensusParams)) + obj.consensusParams = params_1.ConsensusParams.fromJSON(object.consensusParams); + if (Array.isArray(object?.validators)) + obj.validators = object.validators.map((e) => exports.ValidatorUpdate.fromJSON(e)); + if ((0, helpers_1.isSet)(object.appStateBytes)) + obj.appStateBytes = (0, helpers_1.bytesFromBase64)(object.appStateBytes); + if ((0, helpers_1.isSet)(object.initialHeight)) + obj.initialHeight = BigInt(object.initialHeight.toString()); + return obj; }, toJSON(message) { const obj = {}; @@ -95667,7 +91544,7 @@ exports.RequestInitChain = { message.chainId !== undefined && (obj.chainId = message.chainId); message.consensusParams !== undefined && (obj.consensusParams = message.consensusParams - ? exports.ConsensusParams.toJSON(message.consensusParams) + ? params_1.ConsensusParams.toJSON(message.consensusParams) : undefined); if (message.validators) { obj.validators = message.validators.map((e) => (e ? exports.ValidatorUpdate.toJSON(e) : undefined)); @@ -95678,24 +91555,23 @@ exports.RequestInitChain = { message.appStateBytes !== undefined && (obj.appStateBytes = (0, helpers_1.base64FromBytes)(message.appStateBytes !== undefined ? message.appStateBytes : new Uint8Array())); message.initialHeight !== undefined && - (obj.initialHeight = (message.initialHeight || helpers_1.Long.ZERO).toString()); + (obj.initialHeight = (message.initialHeight || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseRequestInitChain(); - message.time = - object.time !== undefined && object.time !== null ? timestamp_1.Timestamp.fromPartial(object.time) : undefined; + if (object.time !== undefined && object.time !== null) { + message.time = timestamp_1.Timestamp.fromPartial(object.time); + } message.chainId = object.chainId ?? ""; - message.consensusParams = - object.consensusParams !== undefined && object.consensusParams !== null - ? exports.ConsensusParams.fromPartial(object.consensusParams) - : undefined; + if (object.consensusParams !== undefined && object.consensusParams !== null) { + message.consensusParams = params_1.ConsensusParams.fromPartial(object.consensusParams); + } message.validators = object.validators?.map((e) => exports.ValidatorUpdate.fromPartial(e)) || []; message.appStateBytes = object.appStateBytes ?? new Uint8Array(); - message.initialHeight = - object.initialHeight !== undefined && object.initialHeight !== null - ? helpers_1.Long.fromValue(object.initialHeight) - : helpers_1.Long.ZERO; + if (object.initialHeight !== undefined && object.initialHeight !== null) { + message.initialHeight = BigInt(object.initialHeight.toString()); + } return message; }, }; @@ -95703,19 +91579,20 @@ function createBaseRequestQuery() { return { data: new Uint8Array(), path: "", - height: helpers_1.Long.ZERO, + height: BigInt(0), prove: false, }; } exports.RequestQuery = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.RequestQuery", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.data.length !== 0) { writer.uint32(10).bytes(message.data); } if (message.path !== "") { writer.uint32(18).string(message.path); } - if (!message.height.isZero()) { + if (message.height !== BigInt(0)) { writer.uint32(24).int64(message.height); } if (message.prove === true) { @@ -95724,7 +91601,7 @@ exports.RequestQuery = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseRequestQuery(); while (reader.pos < end) { @@ -95750,19 +91627,23 @@ exports.RequestQuery = { return message; }, fromJSON(object) { - return { - data: (0, helpers_1.isSet)(object.data) ? (0, helpers_1.bytesFromBase64)(object.data) : new Uint8Array(), - path: (0, helpers_1.isSet)(object.path) ? String(object.path) : "", - height: (0, helpers_1.isSet)(object.height) ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO, - prove: (0, helpers_1.isSet)(object.prove) ? Boolean(object.prove) : false, - }; + const obj = createBaseRequestQuery(); + if ((0, helpers_1.isSet)(object.data)) + obj.data = (0, helpers_1.bytesFromBase64)(object.data); + if ((0, helpers_1.isSet)(object.path)) + obj.path = String(object.path); + if ((0, helpers_1.isSet)(object.height)) + obj.height = BigInt(object.height.toString()); + if ((0, helpers_1.isSet)(object.prove)) + obj.prove = Boolean(object.prove); + return obj; }, toJSON(message) { const obj = {}; message.data !== undefined && (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array())); message.path !== undefined && (obj.path = message.path); - message.height !== undefined && (obj.height = (message.height || helpers_1.Long.ZERO).toString()); + message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString()); message.prove !== undefined && (obj.prove = message.prove); return obj; }, @@ -95770,8 +91651,9 @@ exports.RequestQuery = { const message = createBaseRequestQuery(); message.data = object.data ?? new Uint8Array(); message.path = object.path ?? ""; - message.height = - object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; + if (object.height !== undefined && object.height !== null) { + message.height = BigInt(object.height.toString()); + } message.prove = object.prove ?? false; return message; }, @@ -95779,13 +91661,14 @@ exports.RequestQuery = { function createBaseRequestBeginBlock() { return { hash: new Uint8Array(), - header: undefined, - lastCommitInfo: undefined, + header: types_1.Header.fromPartial({}), + lastCommitInfo: exports.CommitInfo.fromPartial({}), byzantineValidators: [], }; } exports.RequestBeginBlock = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.RequestBeginBlock", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.hash.length !== 0) { writer.uint32(10).bytes(message.hash); } @@ -95793,15 +91676,15 @@ exports.RequestBeginBlock = { types_1.Header.encode(message.header, writer.uint32(18).fork()).ldelim(); } if (message.lastCommitInfo !== undefined) { - exports.LastCommitInfo.encode(message.lastCommitInfo, writer.uint32(26).fork()).ldelim(); + exports.CommitInfo.encode(message.lastCommitInfo, writer.uint32(26).fork()).ldelim(); } for (const v of message.byzantineValidators) { - exports.Evidence.encode(v, writer.uint32(34).fork()).ldelim(); + exports.Misbehavior.encode(v, writer.uint32(34).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseRequestBeginBlock(); while (reader.pos < end) { @@ -95814,10 +91697,10 @@ exports.RequestBeginBlock = { message.header = types_1.Header.decode(reader, reader.uint32()); break; case 3: - message.lastCommitInfo = exports.LastCommitInfo.decode(reader, reader.uint32()); + message.lastCommitInfo = exports.CommitInfo.decode(reader, reader.uint32()); break; case 4: - message.byzantineValidators.push(exports.Evidence.decode(reader, reader.uint32())); + message.byzantineValidators.push(exports.Misbehavior.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -95827,16 +91710,16 @@ exports.RequestBeginBlock = { return message; }, fromJSON(object) { - return { - hash: (0, helpers_1.isSet)(object.hash) ? (0, helpers_1.bytesFromBase64)(object.hash) : new Uint8Array(), - header: (0, helpers_1.isSet)(object.header) ? types_1.Header.fromJSON(object.header) : undefined, - lastCommitInfo: (0, helpers_1.isSet)(object.lastCommitInfo) - ? exports.LastCommitInfo.fromJSON(object.lastCommitInfo) - : undefined, - byzantineValidators: Array.isArray(object?.byzantineValidators) - ? object.byzantineValidators.map((e) => exports.Evidence.fromJSON(e)) - : [], - }; + const obj = createBaseRequestBeginBlock(); + if ((0, helpers_1.isSet)(object.hash)) + obj.hash = (0, helpers_1.bytesFromBase64)(object.hash); + if ((0, helpers_1.isSet)(object.header)) + obj.header = types_1.Header.fromJSON(object.header); + if ((0, helpers_1.isSet)(object.lastCommitInfo)) + obj.lastCommitInfo = exports.CommitInfo.fromJSON(object.lastCommitInfo); + if (Array.isArray(object?.byzantineValidators)) + obj.byzantineValidators = object.byzantineValidators.map((e) => exports.Misbehavior.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -95844,11 +91727,9 @@ exports.RequestBeginBlock = { (obj.hash = (0, helpers_1.base64FromBytes)(message.hash !== undefined ? message.hash : new Uint8Array())); message.header !== undefined && (obj.header = message.header ? types_1.Header.toJSON(message.header) : undefined); message.lastCommitInfo !== undefined && - (obj.lastCommitInfo = message.lastCommitInfo - ? exports.LastCommitInfo.toJSON(message.lastCommitInfo) - : undefined); + (obj.lastCommitInfo = message.lastCommitInfo ? exports.CommitInfo.toJSON(message.lastCommitInfo) : undefined); if (message.byzantineValidators) { - obj.byzantineValidators = message.byzantineValidators.map((e) => (e ? exports.Evidence.toJSON(e) : undefined)); + obj.byzantineValidators = message.byzantineValidators.map((e) => e ? exports.Misbehavior.toJSON(e) : undefined); } else { obj.byzantineValidators = []; @@ -95858,13 +91739,13 @@ exports.RequestBeginBlock = { fromPartial(object) { const message = createBaseRequestBeginBlock(); message.hash = object.hash ?? new Uint8Array(); - message.header = - object.header !== undefined && object.header !== null ? types_1.Header.fromPartial(object.header) : undefined; - message.lastCommitInfo = - object.lastCommitInfo !== undefined && object.lastCommitInfo !== null - ? exports.LastCommitInfo.fromPartial(object.lastCommitInfo) - : undefined; - message.byzantineValidators = object.byzantineValidators?.map((e) => exports.Evidence.fromPartial(e)) || []; + if (object.header !== undefined && object.header !== null) { + message.header = types_1.Header.fromPartial(object.header); + } + if (object.lastCommitInfo !== undefined && object.lastCommitInfo !== null) { + message.lastCommitInfo = exports.CommitInfo.fromPartial(object.lastCommitInfo); + } + message.byzantineValidators = object.byzantineValidators?.map((e) => exports.Misbehavior.fromPartial(e)) || []; return message; }, }; @@ -95875,7 +91756,8 @@ function createBaseRequestCheckTx() { }; } exports.RequestCheckTx = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.RequestCheckTx", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.tx.length !== 0) { writer.uint32(10).bytes(message.tx); } @@ -95885,7 +91767,7 @@ exports.RequestCheckTx = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseRequestCheckTx(); while (reader.pos < end) { @@ -95905,10 +91787,12 @@ exports.RequestCheckTx = { return message; }, fromJSON(object) { - return { - tx: (0, helpers_1.isSet)(object.tx) ? (0, helpers_1.bytesFromBase64)(object.tx) : new Uint8Array(), - type: (0, helpers_1.isSet)(object.type) ? checkTxTypeFromJSON(object.type) : 0, - }; + const obj = createBaseRequestCheckTx(); + if ((0, helpers_1.isSet)(object.tx)) + obj.tx = (0, helpers_1.bytesFromBase64)(object.tx); + if ((0, helpers_1.isSet)(object.type)) + obj.type = checkTxTypeFromJSON(object.type); + return obj; }, toJSON(message) { const obj = {}; @@ -95930,14 +91814,15 @@ function createBaseRequestDeliverTx() { }; } exports.RequestDeliverTx = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.RequestDeliverTx", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.tx.length !== 0) { writer.uint32(10).bytes(message.tx); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseRequestDeliverTx(); while (reader.pos < end) { @@ -95954,9 +91839,10 @@ exports.RequestDeliverTx = { return message; }, fromJSON(object) { - return { - tx: (0, helpers_1.isSet)(object.tx) ? (0, helpers_1.bytesFromBase64)(object.tx) : new Uint8Array(), - }; + const obj = createBaseRequestDeliverTx(); + if ((0, helpers_1.isSet)(object.tx)) + obj.tx = (0, helpers_1.bytesFromBase64)(object.tx); + return obj; }, toJSON(message) { const obj = {}; @@ -95972,18 +91858,19 @@ exports.RequestDeliverTx = { }; function createBaseRequestEndBlock() { return { - height: helpers_1.Long.ZERO, + height: BigInt(0), }; } exports.RequestEndBlock = { - encode(message, writer = _m0.Writer.create()) { - if (!message.height.isZero()) { + typeUrl: "/tendermint.abci.RequestEndBlock", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.height !== BigInt(0)) { writer.uint32(8).int64(message.height); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseRequestEndBlock(); while (reader.pos < end) { @@ -96000,19 +91887,21 @@ exports.RequestEndBlock = { return message; }, fromJSON(object) { - return { - height: (0, helpers_1.isSet)(object.height) ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO, - }; + const obj = createBaseRequestEndBlock(); + if ((0, helpers_1.isSet)(object.height)) + obj.height = BigInt(object.height.toString()); + return obj; }, toJSON(message) { const obj = {}; - message.height !== undefined && (obj.height = (message.height || helpers_1.Long.ZERO).toString()); + message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseRequestEndBlock(); - message.height = - object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; + if (object.height !== undefined && object.height !== null) { + message.height = BigInt(object.height.toString()); + } return message; }, }; @@ -96020,11 +91909,12 @@ function createBaseRequestCommit() { return {}; } exports.RequestCommit = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.RequestCommit", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseRequestCommit(); while (reader.pos < end) { @@ -96038,7 +91928,8 @@ exports.RequestCommit = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseRequestCommit(); + return obj; }, toJSON(_) { const obj = {}; @@ -96053,11 +91944,12 @@ function createBaseRequestListSnapshots() { return {}; } exports.RequestListSnapshots = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.RequestListSnapshots", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseRequestListSnapshots(); while (reader.pos < end) { @@ -96071,7 +91963,8 @@ exports.RequestListSnapshots = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseRequestListSnapshots(); + return obj; }, toJSON(_) { const obj = {}; @@ -96089,7 +91982,8 @@ function createBaseRequestOfferSnapshot() { }; } exports.RequestOfferSnapshot = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.RequestOfferSnapshot", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.snapshot !== undefined) { exports.Snapshot.encode(message.snapshot, writer.uint32(10).fork()).ldelim(); } @@ -96099,7 +91993,7 @@ exports.RequestOfferSnapshot = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseRequestOfferSnapshot(); while (reader.pos < end) { @@ -96119,10 +92013,12 @@ exports.RequestOfferSnapshot = { return message; }, fromJSON(object) { - return { - snapshot: (0, helpers_1.isSet)(object.snapshot) ? exports.Snapshot.fromJSON(object.snapshot) : undefined, - appHash: (0, helpers_1.isSet)(object.appHash) ? (0, helpers_1.bytesFromBase64)(object.appHash) : new Uint8Array(), - }; + const obj = createBaseRequestOfferSnapshot(); + if ((0, helpers_1.isSet)(object.snapshot)) + obj.snapshot = exports.Snapshot.fromJSON(object.snapshot); + if ((0, helpers_1.isSet)(object.appHash)) + obj.appHash = (0, helpers_1.bytesFromBase64)(object.appHash); + return obj; }, toJSON(message) { const obj = {}; @@ -96134,24 +92030,24 @@ exports.RequestOfferSnapshot = { }, fromPartial(object) { const message = createBaseRequestOfferSnapshot(); - message.snapshot = - object.snapshot !== undefined && object.snapshot !== null - ? exports.Snapshot.fromPartial(object.snapshot) - : undefined; + if (object.snapshot !== undefined && object.snapshot !== null) { + message.snapshot = exports.Snapshot.fromPartial(object.snapshot); + } message.appHash = object.appHash ?? new Uint8Array(); return message; }, }; function createBaseRequestLoadSnapshotChunk() { return { - height: helpers_1.Long.UZERO, + height: BigInt(0), format: 0, chunk: 0, }; } exports.RequestLoadSnapshotChunk = { - encode(message, writer = _m0.Writer.create()) { - if (!message.height.isZero()) { + typeUrl: "/tendermint.abci.RequestLoadSnapshotChunk", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.height !== BigInt(0)) { writer.uint32(8).uint64(message.height); } if (message.format !== 0) { @@ -96163,7 +92059,7 @@ exports.RequestLoadSnapshotChunk = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseRequestLoadSnapshotChunk(); while (reader.pos < end) { @@ -96186,23 +92082,27 @@ exports.RequestLoadSnapshotChunk = { return message; }, fromJSON(object) { - return { - height: (0, helpers_1.isSet)(object.height) ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.UZERO, - format: (0, helpers_1.isSet)(object.format) ? Number(object.format) : 0, - chunk: (0, helpers_1.isSet)(object.chunk) ? Number(object.chunk) : 0, - }; + const obj = createBaseRequestLoadSnapshotChunk(); + if ((0, helpers_1.isSet)(object.height)) + obj.height = BigInt(object.height.toString()); + if ((0, helpers_1.isSet)(object.format)) + obj.format = Number(object.format); + if ((0, helpers_1.isSet)(object.chunk)) + obj.chunk = Number(object.chunk); + return obj; }, toJSON(message) { const obj = {}; - message.height !== undefined && (obj.height = (message.height || helpers_1.Long.UZERO).toString()); + message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString()); message.format !== undefined && (obj.format = Math.round(message.format)); message.chunk !== undefined && (obj.chunk = Math.round(message.chunk)); return obj; }, fromPartial(object) { const message = createBaseRequestLoadSnapshotChunk(); - message.height = - object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.UZERO; + if (object.height !== undefined && object.height !== null) { + message.height = BigInt(object.height.toString()); + } message.format = object.format ?? 0; message.chunk = object.chunk ?? 0; return message; @@ -96216,7 +92116,8 @@ function createBaseRequestApplySnapshotChunk() { }; } exports.RequestApplySnapshotChunk = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.RequestApplySnapshotChunk", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.index !== 0) { writer.uint32(8).uint32(message.index); } @@ -96229,7 +92130,7 @@ exports.RequestApplySnapshotChunk = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseRequestApplySnapshotChunk(); while (reader.pos < end) { @@ -96252,11 +92153,14 @@ exports.RequestApplySnapshotChunk = { return message; }, fromJSON(object) { - return { - index: (0, helpers_1.isSet)(object.index) ? Number(object.index) : 0, - chunk: (0, helpers_1.isSet)(object.chunk) ? (0, helpers_1.bytesFromBase64)(object.chunk) : new Uint8Array(), - sender: (0, helpers_1.isSet)(object.sender) ? String(object.sender) : "", - }; + const obj = createBaseRequestApplySnapshotChunk(); + if ((0, helpers_1.isSet)(object.index)) + obj.index = Number(object.index); + if ((0, helpers_1.isSet)(object.chunk)) + obj.chunk = (0, helpers_1.bytesFromBase64)(object.chunk); + if ((0, helpers_1.isSet)(object.sender)) + obj.sender = String(object.sender); + return obj; }, toJSON(message) { const obj = {}; @@ -96274,13 +92178,305 @@ exports.RequestApplySnapshotChunk = { return message; }, }; +function createBaseRequestPrepareProposal() { + return { + maxTxBytes: BigInt(0), + txs: [], + localLastCommit: exports.ExtendedCommitInfo.fromPartial({}), + misbehavior: [], + height: BigInt(0), + time: timestamp_1.Timestamp.fromPartial({}), + nextValidatorsHash: new Uint8Array(), + proposerAddress: new Uint8Array(), + }; +} +exports.RequestPrepareProposal = { + typeUrl: "/tendermint.abci.RequestPrepareProposal", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.maxTxBytes !== BigInt(0)) { + writer.uint32(8).int64(message.maxTxBytes); + } + for (const v of message.txs) { + writer.uint32(18).bytes(v); + } + if (message.localLastCommit !== undefined) { + exports.ExtendedCommitInfo.encode(message.localLastCommit, writer.uint32(26).fork()).ldelim(); + } + for (const v of message.misbehavior) { + exports.Misbehavior.encode(v, writer.uint32(34).fork()).ldelim(); + } + if (message.height !== BigInt(0)) { + writer.uint32(40).int64(message.height); + } + if (message.time !== undefined) { + timestamp_1.Timestamp.encode(message.time, writer.uint32(50).fork()).ldelim(); + } + if (message.nextValidatorsHash.length !== 0) { + writer.uint32(58).bytes(message.nextValidatorsHash); + } + if (message.proposerAddress.length !== 0) { + writer.uint32(66).bytes(message.proposerAddress); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseRequestPrepareProposal(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.maxTxBytes = reader.int64(); + break; + case 2: + message.txs.push(reader.bytes()); + break; + case 3: + message.localLastCommit = exports.ExtendedCommitInfo.decode(reader, reader.uint32()); + break; + case 4: + message.misbehavior.push(exports.Misbehavior.decode(reader, reader.uint32())); + break; + case 5: + message.height = reader.int64(); + break; + case 6: + message.time = timestamp_1.Timestamp.decode(reader, reader.uint32()); + break; + case 7: + message.nextValidatorsHash = reader.bytes(); + break; + case 8: + message.proposerAddress = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseRequestPrepareProposal(); + if ((0, helpers_1.isSet)(object.maxTxBytes)) + obj.maxTxBytes = BigInt(object.maxTxBytes.toString()); + if (Array.isArray(object?.txs)) + obj.txs = object.txs.map((e) => (0, helpers_1.bytesFromBase64)(e)); + if ((0, helpers_1.isSet)(object.localLastCommit)) + obj.localLastCommit = exports.ExtendedCommitInfo.fromJSON(object.localLastCommit); + if (Array.isArray(object?.misbehavior)) + obj.misbehavior = object.misbehavior.map((e) => exports.Misbehavior.fromJSON(e)); + if ((0, helpers_1.isSet)(object.height)) + obj.height = BigInt(object.height.toString()); + if ((0, helpers_1.isSet)(object.time)) + obj.time = (0, helpers_1.fromJsonTimestamp)(object.time); + if ((0, helpers_1.isSet)(object.nextValidatorsHash)) + obj.nextValidatorsHash = (0, helpers_1.bytesFromBase64)(object.nextValidatorsHash); + if ((0, helpers_1.isSet)(object.proposerAddress)) + obj.proposerAddress = (0, helpers_1.bytesFromBase64)(object.proposerAddress); + return obj; + }, + toJSON(message) { + const obj = {}; + message.maxTxBytes !== undefined && (obj.maxTxBytes = (message.maxTxBytes || BigInt(0)).toString()); + if (message.txs) { + obj.txs = message.txs.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array())); + } + else { + obj.txs = []; + } + message.localLastCommit !== undefined && + (obj.localLastCommit = message.localLastCommit + ? exports.ExtendedCommitInfo.toJSON(message.localLastCommit) + : undefined); + if (message.misbehavior) { + obj.misbehavior = message.misbehavior.map((e) => (e ? exports.Misbehavior.toJSON(e) : undefined)); + } + else { + obj.misbehavior = []; + } + message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString()); + message.time !== undefined && (obj.time = (0, helpers_1.fromTimestamp)(message.time).toISOString()); + message.nextValidatorsHash !== undefined && + (obj.nextValidatorsHash = (0, helpers_1.base64FromBytes)(message.nextValidatorsHash !== undefined ? message.nextValidatorsHash : new Uint8Array())); + message.proposerAddress !== undefined && + (obj.proposerAddress = (0, helpers_1.base64FromBytes)(message.proposerAddress !== undefined ? message.proposerAddress : new Uint8Array())); + return obj; + }, + fromPartial(object) { + const message = createBaseRequestPrepareProposal(); + if (object.maxTxBytes !== undefined && object.maxTxBytes !== null) { + message.maxTxBytes = BigInt(object.maxTxBytes.toString()); + } + message.txs = object.txs?.map((e) => e) || []; + if (object.localLastCommit !== undefined && object.localLastCommit !== null) { + message.localLastCommit = exports.ExtendedCommitInfo.fromPartial(object.localLastCommit); + } + message.misbehavior = object.misbehavior?.map((e) => exports.Misbehavior.fromPartial(e)) || []; + if (object.height !== undefined && object.height !== null) { + message.height = BigInt(object.height.toString()); + } + if (object.time !== undefined && object.time !== null) { + message.time = timestamp_1.Timestamp.fromPartial(object.time); + } + message.nextValidatorsHash = object.nextValidatorsHash ?? new Uint8Array(); + message.proposerAddress = object.proposerAddress ?? new Uint8Array(); + return message; + }, +}; +function createBaseRequestProcessProposal() { + return { + txs: [], + proposedLastCommit: exports.CommitInfo.fromPartial({}), + misbehavior: [], + hash: new Uint8Array(), + height: BigInt(0), + time: timestamp_1.Timestamp.fromPartial({}), + nextValidatorsHash: new Uint8Array(), + proposerAddress: new Uint8Array(), + }; +} +exports.RequestProcessProposal = { + typeUrl: "/tendermint.abci.RequestProcessProposal", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.txs) { + writer.uint32(10).bytes(v); + } + if (message.proposedLastCommit !== undefined) { + exports.CommitInfo.encode(message.proposedLastCommit, writer.uint32(18).fork()).ldelim(); + } + for (const v of message.misbehavior) { + exports.Misbehavior.encode(v, writer.uint32(26).fork()).ldelim(); + } + if (message.hash.length !== 0) { + writer.uint32(34).bytes(message.hash); + } + if (message.height !== BigInt(0)) { + writer.uint32(40).int64(message.height); + } + if (message.time !== undefined) { + timestamp_1.Timestamp.encode(message.time, writer.uint32(50).fork()).ldelim(); + } + if (message.nextValidatorsHash.length !== 0) { + writer.uint32(58).bytes(message.nextValidatorsHash); + } + if (message.proposerAddress.length !== 0) { + writer.uint32(66).bytes(message.proposerAddress); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseRequestProcessProposal(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.txs.push(reader.bytes()); + break; + case 2: + message.proposedLastCommit = exports.CommitInfo.decode(reader, reader.uint32()); + break; + case 3: + message.misbehavior.push(exports.Misbehavior.decode(reader, reader.uint32())); + break; + case 4: + message.hash = reader.bytes(); + break; + case 5: + message.height = reader.int64(); + break; + case 6: + message.time = timestamp_1.Timestamp.decode(reader, reader.uint32()); + break; + case 7: + message.nextValidatorsHash = reader.bytes(); + break; + case 8: + message.proposerAddress = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseRequestProcessProposal(); + if (Array.isArray(object?.txs)) + obj.txs = object.txs.map((e) => (0, helpers_1.bytesFromBase64)(e)); + if ((0, helpers_1.isSet)(object.proposedLastCommit)) + obj.proposedLastCommit = exports.CommitInfo.fromJSON(object.proposedLastCommit); + if (Array.isArray(object?.misbehavior)) + obj.misbehavior = object.misbehavior.map((e) => exports.Misbehavior.fromJSON(e)); + if ((0, helpers_1.isSet)(object.hash)) + obj.hash = (0, helpers_1.bytesFromBase64)(object.hash); + if ((0, helpers_1.isSet)(object.height)) + obj.height = BigInt(object.height.toString()); + if ((0, helpers_1.isSet)(object.time)) + obj.time = (0, helpers_1.fromJsonTimestamp)(object.time); + if ((0, helpers_1.isSet)(object.nextValidatorsHash)) + obj.nextValidatorsHash = (0, helpers_1.bytesFromBase64)(object.nextValidatorsHash); + if ((0, helpers_1.isSet)(object.proposerAddress)) + obj.proposerAddress = (0, helpers_1.bytesFromBase64)(object.proposerAddress); + return obj; + }, + toJSON(message) { + const obj = {}; + if (message.txs) { + obj.txs = message.txs.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array())); + } + else { + obj.txs = []; + } + message.proposedLastCommit !== undefined && + (obj.proposedLastCommit = message.proposedLastCommit + ? exports.CommitInfo.toJSON(message.proposedLastCommit) + : undefined); + if (message.misbehavior) { + obj.misbehavior = message.misbehavior.map((e) => (e ? exports.Misbehavior.toJSON(e) : undefined)); + } + else { + obj.misbehavior = []; + } + message.hash !== undefined && + (obj.hash = (0, helpers_1.base64FromBytes)(message.hash !== undefined ? message.hash : new Uint8Array())); + message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString()); + message.time !== undefined && (obj.time = (0, helpers_1.fromTimestamp)(message.time).toISOString()); + message.nextValidatorsHash !== undefined && + (obj.nextValidatorsHash = (0, helpers_1.base64FromBytes)(message.nextValidatorsHash !== undefined ? message.nextValidatorsHash : new Uint8Array())); + message.proposerAddress !== undefined && + (obj.proposerAddress = (0, helpers_1.base64FromBytes)(message.proposerAddress !== undefined ? message.proposerAddress : new Uint8Array())); + return obj; + }, + fromPartial(object) { + const message = createBaseRequestProcessProposal(); + message.txs = object.txs?.map((e) => e) || []; + if (object.proposedLastCommit !== undefined && object.proposedLastCommit !== null) { + message.proposedLastCommit = exports.CommitInfo.fromPartial(object.proposedLastCommit); + } + message.misbehavior = object.misbehavior?.map((e) => exports.Misbehavior.fromPartial(e)) || []; + message.hash = object.hash ?? new Uint8Array(); + if (object.height !== undefined && object.height !== null) { + message.height = BigInt(object.height.toString()); + } + if (object.time !== undefined && object.time !== null) { + message.time = timestamp_1.Timestamp.fromPartial(object.time); + } + message.nextValidatorsHash = object.nextValidatorsHash ?? new Uint8Array(); + message.proposerAddress = object.proposerAddress ?? new Uint8Array(); + return message; + }, +}; function createBaseResponse() { return { exception: undefined, echo: undefined, flush: undefined, info: undefined, - setOption: undefined, initChain: undefined, query: undefined, beginBlock: undefined, @@ -96292,10 +92488,13 @@ function createBaseResponse() { offerSnapshot: undefined, loadSnapshotChunk: undefined, applySnapshotChunk: undefined, + prepareProposal: undefined, + processProposal: undefined, }; } exports.Response = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.Response", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.exception !== undefined) { exports.ResponseException.encode(message.exception, writer.uint32(10).fork()).ldelim(); } @@ -96308,9 +92507,6 @@ exports.Response = { if (message.info !== undefined) { exports.ResponseInfo.encode(message.info, writer.uint32(34).fork()).ldelim(); } - if (message.setOption !== undefined) { - exports.ResponseSetOption.encode(message.setOption, writer.uint32(42).fork()).ldelim(); - } if (message.initChain !== undefined) { exports.ResponseInitChain.encode(message.initChain, writer.uint32(50).fork()).ldelim(); } @@ -96344,10 +92540,16 @@ exports.Response = { if (message.applySnapshotChunk !== undefined) { exports.ResponseApplySnapshotChunk.encode(message.applySnapshotChunk, writer.uint32(130).fork()).ldelim(); } + if (message.prepareProposal !== undefined) { + exports.ResponsePrepareProposal.encode(message.prepareProposal, writer.uint32(138).fork()).ldelim(); + } + if (message.processProposal !== undefined) { + exports.ResponseProcessProposal.encode(message.processProposal, writer.uint32(146).fork()).ldelim(); + } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseResponse(); while (reader.pos < end) { @@ -96365,9 +92567,6 @@ exports.Response = { case 4: message.info = exports.ResponseInfo.decode(reader, reader.uint32()); break; - case 5: - message.setOption = exports.ResponseSetOption.decode(reader, reader.uint32()); - break; case 6: message.initChain = exports.ResponseInitChain.decode(reader, reader.uint32()); break; @@ -96401,6 +92600,12 @@ exports.Response = { case 16: message.applySnapshotChunk = exports.ResponseApplySnapshotChunk.decode(reader, reader.uint32()); break; + case 17: + message.prepareProposal = exports.ResponsePrepareProposal.decode(reader, reader.uint32()); + break; + case 18: + message.processProposal = exports.ResponseProcessProposal.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -96409,32 +92614,42 @@ exports.Response = { return message; }, fromJSON(object) { - return { - exception: (0, helpers_1.isSet)(object.exception) ? exports.ResponseException.fromJSON(object.exception) : undefined, - echo: (0, helpers_1.isSet)(object.echo) ? exports.ResponseEcho.fromJSON(object.echo) : undefined, - flush: (0, helpers_1.isSet)(object.flush) ? exports.ResponseFlush.fromJSON(object.flush) : undefined, - info: (0, helpers_1.isSet)(object.info) ? exports.ResponseInfo.fromJSON(object.info) : undefined, - setOption: (0, helpers_1.isSet)(object.setOption) ? exports.ResponseSetOption.fromJSON(object.setOption) : undefined, - initChain: (0, helpers_1.isSet)(object.initChain) ? exports.ResponseInitChain.fromJSON(object.initChain) : undefined, - query: (0, helpers_1.isSet)(object.query) ? exports.ResponseQuery.fromJSON(object.query) : undefined, - beginBlock: (0, helpers_1.isSet)(object.beginBlock) ? exports.ResponseBeginBlock.fromJSON(object.beginBlock) : undefined, - checkTx: (0, helpers_1.isSet)(object.checkTx) ? exports.ResponseCheckTx.fromJSON(object.checkTx) : undefined, - deliverTx: (0, helpers_1.isSet)(object.deliverTx) ? exports.ResponseDeliverTx.fromJSON(object.deliverTx) : undefined, - endBlock: (0, helpers_1.isSet)(object.endBlock) ? exports.ResponseEndBlock.fromJSON(object.endBlock) : undefined, - commit: (0, helpers_1.isSet)(object.commit) ? exports.ResponseCommit.fromJSON(object.commit) : undefined, - listSnapshots: (0, helpers_1.isSet)(object.listSnapshots) - ? exports.ResponseListSnapshots.fromJSON(object.listSnapshots) - : undefined, - offerSnapshot: (0, helpers_1.isSet)(object.offerSnapshot) - ? exports.ResponseOfferSnapshot.fromJSON(object.offerSnapshot) - : undefined, - loadSnapshotChunk: (0, helpers_1.isSet)(object.loadSnapshotChunk) - ? exports.ResponseLoadSnapshotChunk.fromJSON(object.loadSnapshotChunk) - : undefined, - applySnapshotChunk: (0, helpers_1.isSet)(object.applySnapshotChunk) - ? exports.ResponseApplySnapshotChunk.fromJSON(object.applySnapshotChunk) - : undefined, - }; + const obj = createBaseResponse(); + if ((0, helpers_1.isSet)(object.exception)) + obj.exception = exports.ResponseException.fromJSON(object.exception); + if ((0, helpers_1.isSet)(object.echo)) + obj.echo = exports.ResponseEcho.fromJSON(object.echo); + if ((0, helpers_1.isSet)(object.flush)) + obj.flush = exports.ResponseFlush.fromJSON(object.flush); + if ((0, helpers_1.isSet)(object.info)) + obj.info = exports.ResponseInfo.fromJSON(object.info); + if ((0, helpers_1.isSet)(object.initChain)) + obj.initChain = exports.ResponseInitChain.fromJSON(object.initChain); + if ((0, helpers_1.isSet)(object.query)) + obj.query = exports.ResponseQuery.fromJSON(object.query); + if ((0, helpers_1.isSet)(object.beginBlock)) + obj.beginBlock = exports.ResponseBeginBlock.fromJSON(object.beginBlock); + if ((0, helpers_1.isSet)(object.checkTx)) + obj.checkTx = exports.ResponseCheckTx.fromJSON(object.checkTx); + if ((0, helpers_1.isSet)(object.deliverTx)) + obj.deliverTx = exports.ResponseDeliverTx.fromJSON(object.deliverTx); + if ((0, helpers_1.isSet)(object.endBlock)) + obj.endBlock = exports.ResponseEndBlock.fromJSON(object.endBlock); + if ((0, helpers_1.isSet)(object.commit)) + obj.commit = exports.ResponseCommit.fromJSON(object.commit); + if ((0, helpers_1.isSet)(object.listSnapshots)) + obj.listSnapshots = exports.ResponseListSnapshots.fromJSON(object.listSnapshots); + if ((0, helpers_1.isSet)(object.offerSnapshot)) + obj.offerSnapshot = exports.ResponseOfferSnapshot.fromJSON(object.offerSnapshot); + if ((0, helpers_1.isSet)(object.loadSnapshotChunk)) + obj.loadSnapshotChunk = exports.ResponseLoadSnapshotChunk.fromJSON(object.loadSnapshotChunk); + if ((0, helpers_1.isSet)(object.applySnapshotChunk)) + obj.applySnapshotChunk = exports.ResponseApplySnapshotChunk.fromJSON(object.applySnapshotChunk); + if ((0, helpers_1.isSet)(object.prepareProposal)) + obj.prepareProposal = exports.ResponsePrepareProposal.fromJSON(object.prepareProposal); + if ((0, helpers_1.isSet)(object.processProposal)) + obj.processProposal = exports.ResponseProcessProposal.fromJSON(object.processProposal); + return obj; }, toJSON(message) { const obj = {}; @@ -96444,8 +92659,6 @@ exports.Response = { message.flush !== undefined && (obj.flush = message.flush ? exports.ResponseFlush.toJSON(message.flush) : undefined); message.info !== undefined && (obj.info = message.info ? exports.ResponseInfo.toJSON(message.info) : undefined); - message.setOption !== undefined && - (obj.setOption = message.setOption ? exports.ResponseSetOption.toJSON(message.setOption) : undefined); message.initChain !== undefined && (obj.initChain = message.initChain ? exports.ResponseInitChain.toJSON(message.initChain) : undefined); message.query !== undefined && @@ -96476,70 +92689,69 @@ exports.Response = { (obj.applySnapshotChunk = message.applySnapshotChunk ? exports.ResponseApplySnapshotChunk.toJSON(message.applySnapshotChunk) : undefined); + message.prepareProposal !== undefined && + (obj.prepareProposal = message.prepareProposal + ? exports.ResponsePrepareProposal.toJSON(message.prepareProposal) + : undefined); + message.processProposal !== undefined && + (obj.processProposal = message.processProposal + ? exports.ResponseProcessProposal.toJSON(message.processProposal) + : undefined); return obj; }, fromPartial(object) { const message = createBaseResponse(); - message.exception = - object.exception !== undefined && object.exception !== null - ? exports.ResponseException.fromPartial(object.exception) - : undefined; - message.echo = - object.echo !== undefined && object.echo !== null ? exports.ResponseEcho.fromPartial(object.echo) : undefined; - message.flush = - object.flush !== undefined && object.flush !== null - ? exports.ResponseFlush.fromPartial(object.flush) - : undefined; - message.info = - object.info !== undefined && object.info !== null ? exports.ResponseInfo.fromPartial(object.info) : undefined; - message.setOption = - object.setOption !== undefined && object.setOption !== null - ? exports.ResponseSetOption.fromPartial(object.setOption) - : undefined; - message.initChain = - object.initChain !== undefined && object.initChain !== null - ? exports.ResponseInitChain.fromPartial(object.initChain) - : undefined; - message.query = - object.query !== undefined && object.query !== null - ? exports.ResponseQuery.fromPartial(object.query) - : undefined; - message.beginBlock = - object.beginBlock !== undefined && object.beginBlock !== null - ? exports.ResponseBeginBlock.fromPartial(object.beginBlock) - : undefined; - message.checkTx = - object.checkTx !== undefined && object.checkTx !== null - ? exports.ResponseCheckTx.fromPartial(object.checkTx) - : undefined; - message.deliverTx = - object.deliverTx !== undefined && object.deliverTx !== null - ? exports.ResponseDeliverTx.fromPartial(object.deliverTx) - : undefined; - message.endBlock = - object.endBlock !== undefined && object.endBlock !== null - ? exports.ResponseEndBlock.fromPartial(object.endBlock) - : undefined; - message.commit = - object.commit !== undefined && object.commit !== null - ? exports.ResponseCommit.fromPartial(object.commit) - : undefined; - message.listSnapshots = - object.listSnapshots !== undefined && object.listSnapshots !== null - ? exports.ResponseListSnapshots.fromPartial(object.listSnapshots) - : undefined; - message.offerSnapshot = - object.offerSnapshot !== undefined && object.offerSnapshot !== null - ? exports.ResponseOfferSnapshot.fromPartial(object.offerSnapshot) - : undefined; - message.loadSnapshotChunk = - object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null - ? exports.ResponseLoadSnapshotChunk.fromPartial(object.loadSnapshotChunk) - : undefined; - message.applySnapshotChunk = - object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null - ? exports.ResponseApplySnapshotChunk.fromPartial(object.applySnapshotChunk) - : undefined; + if (object.exception !== undefined && object.exception !== null) { + message.exception = exports.ResponseException.fromPartial(object.exception); + } + if (object.echo !== undefined && object.echo !== null) { + message.echo = exports.ResponseEcho.fromPartial(object.echo); + } + if (object.flush !== undefined && object.flush !== null) { + message.flush = exports.ResponseFlush.fromPartial(object.flush); + } + if (object.info !== undefined && object.info !== null) { + message.info = exports.ResponseInfo.fromPartial(object.info); + } + if (object.initChain !== undefined && object.initChain !== null) { + message.initChain = exports.ResponseInitChain.fromPartial(object.initChain); + } + if (object.query !== undefined && object.query !== null) { + message.query = exports.ResponseQuery.fromPartial(object.query); + } + if (object.beginBlock !== undefined && object.beginBlock !== null) { + message.beginBlock = exports.ResponseBeginBlock.fromPartial(object.beginBlock); + } + if (object.checkTx !== undefined && object.checkTx !== null) { + message.checkTx = exports.ResponseCheckTx.fromPartial(object.checkTx); + } + if (object.deliverTx !== undefined && object.deliverTx !== null) { + message.deliverTx = exports.ResponseDeliverTx.fromPartial(object.deliverTx); + } + if (object.endBlock !== undefined && object.endBlock !== null) { + message.endBlock = exports.ResponseEndBlock.fromPartial(object.endBlock); + } + if (object.commit !== undefined && object.commit !== null) { + message.commit = exports.ResponseCommit.fromPartial(object.commit); + } + if (object.listSnapshots !== undefined && object.listSnapshots !== null) { + message.listSnapshots = exports.ResponseListSnapshots.fromPartial(object.listSnapshots); + } + if (object.offerSnapshot !== undefined && object.offerSnapshot !== null) { + message.offerSnapshot = exports.ResponseOfferSnapshot.fromPartial(object.offerSnapshot); + } + if (object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null) { + message.loadSnapshotChunk = exports.ResponseLoadSnapshotChunk.fromPartial(object.loadSnapshotChunk); + } + if (object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null) { + message.applySnapshotChunk = exports.ResponseApplySnapshotChunk.fromPartial(object.applySnapshotChunk); + } + if (object.prepareProposal !== undefined && object.prepareProposal !== null) { + message.prepareProposal = exports.ResponsePrepareProposal.fromPartial(object.prepareProposal); + } + if (object.processProposal !== undefined && object.processProposal !== null) { + message.processProposal = exports.ResponseProcessProposal.fromPartial(object.processProposal); + } return message; }, }; @@ -96549,14 +92761,15 @@ function createBaseResponseException() { }; } exports.ResponseException = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.ResponseException", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.error !== "") { writer.uint32(10).string(message.error); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseResponseException(); while (reader.pos < end) { @@ -96573,9 +92786,10 @@ exports.ResponseException = { return message; }, fromJSON(object) { - return { - error: (0, helpers_1.isSet)(object.error) ? String(object.error) : "", - }; + const obj = createBaseResponseException(); + if ((0, helpers_1.isSet)(object.error)) + obj.error = String(object.error); + return obj; }, toJSON(message) { const obj = {}; @@ -96594,14 +92808,15 @@ function createBaseResponseEcho() { }; } exports.ResponseEcho = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.ResponseEcho", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.message !== "") { writer.uint32(10).string(message.message); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseResponseEcho(); while (reader.pos < end) { @@ -96618,9 +92833,10 @@ exports.ResponseEcho = { return message; }, fromJSON(object) { - return { - message: (0, helpers_1.isSet)(object.message) ? String(object.message) : "", - }; + const obj = createBaseResponseEcho(); + if ((0, helpers_1.isSet)(object.message)) + obj.message = String(object.message); + return obj; }, toJSON(message) { const obj = {}; @@ -96637,11 +92853,12 @@ function createBaseResponseFlush() { return {}; } exports.ResponseFlush = { - encode(_, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.ResponseFlush", + encode(_, writer = binary_1.BinaryWriter.create()) { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseResponseFlush(); while (reader.pos < end) { @@ -96655,7 +92872,8 @@ exports.ResponseFlush = { return message; }, fromJSON(_) { - return {}; + const obj = createBaseResponseFlush(); + return obj; }, toJSON(_) { const obj = {}; @@ -96670,23 +92888,24 @@ function createBaseResponseInfo() { return { data: "", version: "", - appVersion: helpers_1.Long.UZERO, - lastBlockHeight: helpers_1.Long.ZERO, + appVersion: BigInt(0), + lastBlockHeight: BigInt(0), lastBlockAppHash: new Uint8Array(), }; } exports.ResponseInfo = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.ResponseInfo", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.data !== "") { writer.uint32(10).string(message.data); } if (message.version !== "") { writer.uint32(18).string(message.version); } - if (!message.appVersion.isZero()) { + if (message.appVersion !== BigInt(0)) { writer.uint32(24).uint64(message.appVersion); } - if (!message.lastBlockHeight.isZero()) { + if (message.lastBlockHeight !== BigInt(0)) { writer.uint32(32).int64(message.lastBlockHeight); } if (message.lastBlockAppHash.length !== 0) { @@ -96695,7 +92914,7 @@ exports.ResponseInfo = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseResponseInfo(); while (reader.pos < end) { @@ -96724,23 +92943,26 @@ exports.ResponseInfo = { return message; }, fromJSON(object) { - return { - data: (0, helpers_1.isSet)(object.data) ? String(object.data) : "", - version: (0, helpers_1.isSet)(object.version) ? String(object.version) : "", - appVersion: (0, helpers_1.isSet)(object.appVersion) ? helpers_1.Long.fromValue(object.appVersion) : helpers_1.Long.UZERO, - lastBlockHeight: (0, helpers_1.isSet)(object.lastBlockHeight) ? helpers_1.Long.fromValue(object.lastBlockHeight) : helpers_1.Long.ZERO, - lastBlockAppHash: (0, helpers_1.isSet)(object.lastBlockAppHash) - ? (0, helpers_1.bytesFromBase64)(object.lastBlockAppHash) - : new Uint8Array(), - }; + const obj = createBaseResponseInfo(); + if ((0, helpers_1.isSet)(object.data)) + obj.data = String(object.data); + if ((0, helpers_1.isSet)(object.version)) + obj.version = String(object.version); + if ((0, helpers_1.isSet)(object.appVersion)) + obj.appVersion = BigInt(object.appVersion.toString()); + if ((0, helpers_1.isSet)(object.lastBlockHeight)) + obj.lastBlockHeight = BigInt(object.lastBlockHeight.toString()); + if ((0, helpers_1.isSet)(object.lastBlockAppHash)) + obj.lastBlockAppHash = (0, helpers_1.bytesFromBase64)(object.lastBlockAppHash); + return obj; }, toJSON(message) { const obj = {}; message.data !== undefined && (obj.data = message.data); message.version !== undefined && (obj.version = message.version); - message.appVersion !== undefined && (obj.appVersion = (message.appVersion || helpers_1.Long.UZERO).toString()); + message.appVersion !== undefined && (obj.appVersion = (message.appVersion || BigInt(0)).toString()); message.lastBlockHeight !== undefined && - (obj.lastBlockHeight = (message.lastBlockHeight || helpers_1.Long.ZERO).toString()); + (obj.lastBlockHeight = (message.lastBlockHeight || BigInt(0)).toString()); message.lastBlockAppHash !== undefined && (obj.lastBlockAppHash = (0, helpers_1.base64FromBytes)(message.lastBlockAppHash !== undefined ? message.lastBlockAppHash : new Uint8Array())); return obj; @@ -96749,80 +92971,13 @@ exports.ResponseInfo = { const message = createBaseResponseInfo(); message.data = object.data ?? ""; message.version = object.version ?? ""; - message.appVersion = - object.appVersion !== undefined && object.appVersion !== null - ? helpers_1.Long.fromValue(object.appVersion) - : helpers_1.Long.UZERO; - message.lastBlockHeight = - object.lastBlockHeight !== undefined && object.lastBlockHeight !== null - ? helpers_1.Long.fromValue(object.lastBlockHeight) - : helpers_1.Long.ZERO; - message.lastBlockAppHash = object.lastBlockAppHash ?? new Uint8Array(); - return message; - }, -}; -function createBaseResponseSetOption() { - return { - code: 0, - log: "", - info: "", - }; -} -exports.ResponseSetOption = { - encode(message, writer = _m0.Writer.create()) { - if (message.code !== 0) { - writer.uint32(8).uint32(message.code); - } - if (message.log !== "") { - writer.uint32(26).string(message.log); + if (object.appVersion !== undefined && object.appVersion !== null) { + message.appVersion = BigInt(object.appVersion.toString()); } - if (message.info !== "") { - writer.uint32(34).string(message.info); + if (object.lastBlockHeight !== undefined && object.lastBlockHeight !== null) { + message.lastBlockHeight = BigInt(object.lastBlockHeight.toString()); } - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResponseSetOption(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.code = reader.uint32(); - break; - case 3: - message.log = reader.string(); - break; - case 4: - message.info = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromJSON(object) { - return { - code: (0, helpers_1.isSet)(object.code) ? Number(object.code) : 0, - log: (0, helpers_1.isSet)(object.log) ? String(object.log) : "", - info: (0, helpers_1.isSet)(object.info) ? String(object.info) : "", - }; - }, - toJSON(message) { - const obj = {}; - message.code !== undefined && (obj.code = Math.round(message.code)); - message.log !== undefined && (obj.log = message.log); - message.info !== undefined && (obj.info = message.info); - return obj; - }, - fromPartial(object) { - const message = createBaseResponseSetOption(); - message.code = object.code ?? 0; - message.log = object.log ?? ""; - message.info = object.info ?? ""; + message.lastBlockAppHash = object.lastBlockAppHash ?? new Uint8Array(); return message; }, }; @@ -96834,9 +92989,10 @@ function createBaseResponseInitChain() { }; } exports.ResponseInitChain = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.ResponseInitChain", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.consensusParams !== undefined) { - exports.ConsensusParams.encode(message.consensusParams, writer.uint32(10).fork()).ldelim(); + params_1.ConsensusParams.encode(message.consensusParams, writer.uint32(10).fork()).ldelim(); } for (const v of message.validators) { exports.ValidatorUpdate.encode(v, writer.uint32(18).fork()).ldelim(); @@ -96847,14 +93003,14 @@ exports.ResponseInitChain = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseResponseInitChain(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.consensusParams = exports.ConsensusParams.decode(reader, reader.uint32()); + message.consensusParams = params_1.ConsensusParams.decode(reader, reader.uint32()); break; case 2: message.validators.push(exports.ValidatorUpdate.decode(reader, reader.uint32())); @@ -96870,21 +93026,20 @@ exports.ResponseInitChain = { return message; }, fromJSON(object) { - return { - consensusParams: (0, helpers_1.isSet)(object.consensusParams) - ? exports.ConsensusParams.fromJSON(object.consensusParams) - : undefined, - validators: Array.isArray(object?.validators) - ? object.validators.map((e) => exports.ValidatorUpdate.fromJSON(e)) - : [], - appHash: (0, helpers_1.isSet)(object.appHash) ? (0, helpers_1.bytesFromBase64)(object.appHash) : new Uint8Array(), - }; + const obj = createBaseResponseInitChain(); + if ((0, helpers_1.isSet)(object.consensusParams)) + obj.consensusParams = params_1.ConsensusParams.fromJSON(object.consensusParams); + if (Array.isArray(object?.validators)) + obj.validators = object.validators.map((e) => exports.ValidatorUpdate.fromJSON(e)); + if ((0, helpers_1.isSet)(object.appHash)) + obj.appHash = (0, helpers_1.bytesFromBase64)(object.appHash); + return obj; }, toJSON(message) { const obj = {}; message.consensusParams !== undefined && (obj.consensusParams = message.consensusParams - ? exports.ConsensusParams.toJSON(message.consensusParams) + ? params_1.ConsensusParams.toJSON(message.consensusParams) : undefined); if (message.validators) { obj.validators = message.validators.map((e) => (e ? exports.ValidatorUpdate.toJSON(e) : undefined)); @@ -96898,10 +93053,9 @@ exports.ResponseInitChain = { }, fromPartial(object) { const message = createBaseResponseInitChain(); - message.consensusParams = - object.consensusParams !== undefined && object.consensusParams !== null - ? exports.ConsensusParams.fromPartial(object.consensusParams) - : undefined; + if (object.consensusParams !== undefined && object.consensusParams !== null) { + message.consensusParams = params_1.ConsensusParams.fromPartial(object.consensusParams); + } message.validators = object.validators?.map((e) => exports.ValidatorUpdate.fromPartial(e)) || []; message.appHash = object.appHash ?? new Uint8Array(); return message; @@ -96912,16 +93066,17 @@ function createBaseResponseQuery() { code: 0, log: "", info: "", - index: helpers_1.Long.ZERO, + index: BigInt(0), key: new Uint8Array(), value: new Uint8Array(), proofOps: undefined, - height: helpers_1.Long.ZERO, + height: BigInt(0), codespace: "", }; } exports.ResponseQuery = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.ResponseQuery", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.code !== 0) { writer.uint32(8).uint32(message.code); } @@ -96931,7 +93086,7 @@ exports.ResponseQuery = { if (message.info !== "") { writer.uint32(34).string(message.info); } - if (!message.index.isZero()) { + if (message.index !== BigInt(0)) { writer.uint32(40).int64(message.index); } if (message.key.length !== 0) { @@ -96943,7 +93098,7 @@ exports.ResponseQuery = { if (message.proofOps !== undefined) { proof_1.ProofOps.encode(message.proofOps, writer.uint32(66).fork()).ldelim(); } - if (!message.height.isZero()) { + if (message.height !== BigInt(0)) { writer.uint32(72).int64(message.height); } if (message.codespace !== "") { @@ -96952,7 +93107,7 @@ exports.ResponseQuery = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseResponseQuery(); while (reader.pos < end) { @@ -96993,31 +93148,40 @@ exports.ResponseQuery = { return message; }, fromJSON(object) { - return { - code: (0, helpers_1.isSet)(object.code) ? Number(object.code) : 0, - log: (0, helpers_1.isSet)(object.log) ? String(object.log) : "", - info: (0, helpers_1.isSet)(object.info) ? String(object.info) : "", - index: (0, helpers_1.isSet)(object.index) ? helpers_1.Long.fromValue(object.index) : helpers_1.Long.ZERO, - key: (0, helpers_1.isSet)(object.key) ? (0, helpers_1.bytesFromBase64)(object.key) : new Uint8Array(), - value: (0, helpers_1.isSet)(object.value) ? (0, helpers_1.bytesFromBase64)(object.value) : new Uint8Array(), - proofOps: (0, helpers_1.isSet)(object.proofOps) ? proof_1.ProofOps.fromJSON(object.proofOps) : undefined, - height: (0, helpers_1.isSet)(object.height) ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO, - codespace: (0, helpers_1.isSet)(object.codespace) ? String(object.codespace) : "", - }; + const obj = createBaseResponseQuery(); + if ((0, helpers_1.isSet)(object.code)) + obj.code = Number(object.code); + if ((0, helpers_1.isSet)(object.log)) + obj.log = String(object.log); + if ((0, helpers_1.isSet)(object.info)) + obj.info = String(object.info); + if ((0, helpers_1.isSet)(object.index)) + obj.index = BigInt(object.index.toString()); + if ((0, helpers_1.isSet)(object.key)) + obj.key = (0, helpers_1.bytesFromBase64)(object.key); + if ((0, helpers_1.isSet)(object.value)) + obj.value = (0, helpers_1.bytesFromBase64)(object.value); + if ((0, helpers_1.isSet)(object.proofOps)) + obj.proofOps = proof_1.ProofOps.fromJSON(object.proofOps); + if ((0, helpers_1.isSet)(object.height)) + obj.height = BigInt(object.height.toString()); + if ((0, helpers_1.isSet)(object.codespace)) + obj.codespace = String(object.codespace); + return obj; }, toJSON(message) { const obj = {}; message.code !== undefined && (obj.code = Math.round(message.code)); message.log !== undefined && (obj.log = message.log); message.info !== undefined && (obj.info = message.info); - message.index !== undefined && (obj.index = (message.index || helpers_1.Long.ZERO).toString()); + message.index !== undefined && (obj.index = (message.index || BigInt(0)).toString()); message.key !== undefined && (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array())); message.value !== undefined && (obj.value = (0, helpers_1.base64FromBytes)(message.value !== undefined ? message.value : new Uint8Array())); message.proofOps !== undefined && (obj.proofOps = message.proofOps ? proof_1.ProofOps.toJSON(message.proofOps) : undefined); - message.height !== undefined && (obj.height = (message.height || helpers_1.Long.ZERO).toString()); + message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString()); message.codespace !== undefined && (obj.codespace = message.codespace); return obj; }, @@ -97026,16 +93190,17 @@ exports.ResponseQuery = { message.code = object.code ?? 0; message.log = object.log ?? ""; message.info = object.info ?? ""; - message.index = - object.index !== undefined && object.index !== null ? helpers_1.Long.fromValue(object.index) : helpers_1.Long.ZERO; + if (object.index !== undefined && object.index !== null) { + message.index = BigInt(object.index.toString()); + } message.key = object.key ?? new Uint8Array(); message.value = object.value ?? new Uint8Array(); - message.proofOps = - object.proofOps !== undefined && object.proofOps !== null - ? proof_1.ProofOps.fromPartial(object.proofOps) - : undefined; - message.height = - object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; + if (object.proofOps !== undefined && object.proofOps !== null) { + message.proofOps = proof_1.ProofOps.fromPartial(object.proofOps); + } + if (object.height !== undefined && object.height !== null) { + message.height = BigInt(object.height.toString()); + } message.codespace = object.codespace ?? ""; return message; }, @@ -97046,14 +93211,15 @@ function createBaseResponseBeginBlock() { }; } exports.ResponseBeginBlock = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.ResponseBeginBlock", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.events) { exports.Event.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseResponseBeginBlock(); while (reader.pos < end) { @@ -97070,9 +93236,10 @@ exports.ResponseBeginBlock = { return message; }, fromJSON(object) { - return { - events: Array.isArray(object?.events) ? object.events.map((e) => exports.Event.fromJSON(e)) : [], - }; + const obj = createBaseResponseBeginBlock(); + if (Array.isArray(object?.events)) + obj.events = object.events.map((e) => exports.Event.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -97096,17 +93263,18 @@ function createBaseResponseCheckTx() { data: new Uint8Array(), log: "", info: "", - gasWanted: helpers_1.Long.ZERO, - gasUsed: helpers_1.Long.ZERO, + gasWanted: BigInt(0), + gasUsed: BigInt(0), events: [], codespace: "", sender: "", - priority: helpers_1.Long.ZERO, + priority: BigInt(0), mempoolError: "", }; } exports.ResponseCheckTx = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.ResponseCheckTx", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.code !== 0) { writer.uint32(8).uint32(message.code); } @@ -97119,10 +93287,10 @@ exports.ResponseCheckTx = { if (message.info !== "") { writer.uint32(34).string(message.info); } - if (!message.gasWanted.isZero()) { + if (message.gasWanted !== BigInt(0)) { writer.uint32(40).int64(message.gasWanted); } - if (!message.gasUsed.isZero()) { + if (message.gasUsed !== BigInt(0)) { writer.uint32(48).int64(message.gasUsed); } for (const v of message.events) { @@ -97134,7 +93302,7 @@ exports.ResponseCheckTx = { if (message.sender !== "") { writer.uint32(74).string(message.sender); } - if (!message.priority.isZero()) { + if (message.priority !== BigInt(0)) { writer.uint32(80).int64(message.priority); } if (message.mempoolError !== "") { @@ -97143,7 +93311,7 @@ exports.ResponseCheckTx = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseResponseCheckTx(); while (reader.pos < end) { @@ -97190,19 +93358,30 @@ exports.ResponseCheckTx = { return message; }, fromJSON(object) { - return { - code: (0, helpers_1.isSet)(object.code) ? Number(object.code) : 0, - data: (0, helpers_1.isSet)(object.data) ? (0, helpers_1.bytesFromBase64)(object.data) : new Uint8Array(), - log: (0, helpers_1.isSet)(object.log) ? String(object.log) : "", - info: (0, helpers_1.isSet)(object.info) ? String(object.info) : "", - gasWanted: (0, helpers_1.isSet)(object.gas_wanted) ? helpers_1.Long.fromValue(object.gas_wanted) : helpers_1.Long.ZERO, - gasUsed: (0, helpers_1.isSet)(object.gas_used) ? helpers_1.Long.fromValue(object.gas_used) : helpers_1.Long.ZERO, - events: Array.isArray(object?.events) ? object.events.map((e) => exports.Event.fromJSON(e)) : [], - codespace: (0, helpers_1.isSet)(object.codespace) ? String(object.codespace) : "", - sender: (0, helpers_1.isSet)(object.sender) ? String(object.sender) : "", - priority: (0, helpers_1.isSet)(object.priority) ? helpers_1.Long.fromValue(object.priority) : helpers_1.Long.ZERO, - mempoolError: (0, helpers_1.isSet)(object.mempoolError) ? String(object.mempoolError) : "", - }; + const obj = createBaseResponseCheckTx(); + if ((0, helpers_1.isSet)(object.code)) + obj.code = Number(object.code); + if ((0, helpers_1.isSet)(object.data)) + obj.data = (0, helpers_1.bytesFromBase64)(object.data); + if ((0, helpers_1.isSet)(object.log)) + obj.log = String(object.log); + if ((0, helpers_1.isSet)(object.info)) + obj.info = String(object.info); + if ((0, helpers_1.isSet)(object.gas_wanted)) + obj.gasWanted = BigInt(object.gas_wanted.toString()); + if ((0, helpers_1.isSet)(object.gas_used)) + obj.gasUsed = BigInt(object.gas_used.toString()); + if (Array.isArray(object?.events)) + obj.events = object.events.map((e) => exports.Event.fromJSON(e)); + if ((0, helpers_1.isSet)(object.codespace)) + obj.codespace = String(object.codespace); + if ((0, helpers_1.isSet)(object.sender)) + obj.sender = String(object.sender); + if ((0, helpers_1.isSet)(object.priority)) + obj.priority = BigInt(object.priority.toString()); + if ((0, helpers_1.isSet)(object.mempoolError)) + obj.mempoolError = String(object.mempoolError); + return obj; }, toJSON(message) { const obj = {}; @@ -97211,8 +93390,8 @@ exports.ResponseCheckTx = { (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array())); message.log !== undefined && (obj.log = message.log); message.info !== undefined && (obj.info = message.info); - message.gasWanted !== undefined && (obj.gas_wanted = (message.gasWanted || helpers_1.Long.ZERO).toString()); - message.gasUsed !== undefined && (obj.gas_used = (message.gasUsed || helpers_1.Long.ZERO).toString()); + message.gasWanted !== undefined && (obj.gas_wanted = (message.gasWanted || BigInt(0)).toString()); + message.gasUsed !== undefined && (obj.gas_used = (message.gasUsed || BigInt(0)).toString()); if (message.events) { obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined)); } @@ -97221,7 +93400,7 @@ exports.ResponseCheckTx = { } message.codespace !== undefined && (obj.codespace = message.codespace); message.sender !== undefined && (obj.sender = message.sender); - message.priority !== undefined && (obj.priority = (message.priority || helpers_1.Long.ZERO).toString()); + message.priority !== undefined && (obj.priority = (message.priority || BigInt(0)).toString()); message.mempoolError !== undefined && (obj.mempoolError = message.mempoolError); return obj; }, @@ -97231,17 +93410,18 @@ exports.ResponseCheckTx = { message.data = object.data ?? new Uint8Array(); message.log = object.log ?? ""; message.info = object.info ?? ""; - message.gasWanted = - object.gasWanted !== undefined && object.gasWanted !== null - ? helpers_1.Long.fromValue(object.gasWanted) - : helpers_1.Long.ZERO; - message.gasUsed = - object.gasUsed !== undefined && object.gasUsed !== null ? helpers_1.Long.fromValue(object.gasUsed) : helpers_1.Long.ZERO; + if (object.gasWanted !== undefined && object.gasWanted !== null) { + message.gasWanted = BigInt(object.gasWanted.toString()); + } + if (object.gasUsed !== undefined && object.gasUsed !== null) { + message.gasUsed = BigInt(object.gasUsed.toString()); + } message.events = object.events?.map((e) => exports.Event.fromPartial(e)) || []; message.codespace = object.codespace ?? ""; message.sender = object.sender ?? ""; - message.priority = - object.priority !== undefined && object.priority !== null ? helpers_1.Long.fromValue(object.priority) : helpers_1.Long.ZERO; + if (object.priority !== undefined && object.priority !== null) { + message.priority = BigInt(object.priority.toString()); + } message.mempoolError = object.mempoolError ?? ""; return message; }, @@ -97252,14 +93432,15 @@ function createBaseResponseDeliverTx() { data: new Uint8Array(), log: "", info: "", - gasWanted: helpers_1.Long.ZERO, - gasUsed: helpers_1.Long.ZERO, + gasWanted: BigInt(0), + gasUsed: BigInt(0), events: [], codespace: "", }; } exports.ResponseDeliverTx = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.ResponseDeliverTx", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.code !== 0) { writer.uint32(8).uint32(message.code); } @@ -97272,10 +93453,10 @@ exports.ResponseDeliverTx = { if (message.info !== "") { writer.uint32(34).string(message.info); } - if (!message.gasWanted.isZero()) { + if (message.gasWanted !== BigInt(0)) { writer.uint32(40).int64(message.gasWanted); } - if (!message.gasUsed.isZero()) { + if (message.gasUsed !== BigInt(0)) { writer.uint32(48).int64(message.gasUsed); } for (const v of message.events) { @@ -97287,7 +93468,7 @@ exports.ResponseDeliverTx = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseResponseDeliverTx(); while (reader.pos < end) { @@ -97325,16 +93506,24 @@ exports.ResponseDeliverTx = { return message; }, fromJSON(object) { - return { - code: (0, helpers_1.isSet)(object.code) ? Number(object.code) : 0, - data: (0, helpers_1.isSet)(object.data) ? (0, helpers_1.bytesFromBase64)(object.data) : new Uint8Array(), - log: (0, helpers_1.isSet)(object.log) ? String(object.log) : "", - info: (0, helpers_1.isSet)(object.info) ? String(object.info) : "", - gasWanted: (0, helpers_1.isSet)(object.gas_wanted) ? helpers_1.Long.fromValue(object.gas_wanted) : helpers_1.Long.ZERO, - gasUsed: (0, helpers_1.isSet)(object.gas_used) ? helpers_1.Long.fromValue(object.gas_used) : helpers_1.Long.ZERO, - events: Array.isArray(object?.events) ? object.events.map((e) => exports.Event.fromJSON(e)) : [], - codespace: (0, helpers_1.isSet)(object.codespace) ? String(object.codespace) : "", - }; + const obj = createBaseResponseDeliverTx(); + if ((0, helpers_1.isSet)(object.code)) + obj.code = Number(object.code); + if ((0, helpers_1.isSet)(object.data)) + obj.data = (0, helpers_1.bytesFromBase64)(object.data); + if ((0, helpers_1.isSet)(object.log)) + obj.log = String(object.log); + if ((0, helpers_1.isSet)(object.info)) + obj.info = String(object.info); + if ((0, helpers_1.isSet)(object.gas_wanted)) + obj.gasWanted = BigInt(object.gas_wanted.toString()); + if ((0, helpers_1.isSet)(object.gas_used)) + obj.gasUsed = BigInt(object.gas_used.toString()); + if (Array.isArray(object?.events)) + obj.events = object.events.map((e) => exports.Event.fromJSON(e)); + if ((0, helpers_1.isSet)(object.codespace)) + obj.codespace = String(object.codespace); + return obj; }, toJSON(message) { const obj = {}; @@ -97343,8 +93532,8 @@ exports.ResponseDeliverTx = { (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array())); message.log !== undefined && (obj.log = message.log); message.info !== undefined && (obj.info = message.info); - message.gasWanted !== undefined && (obj.gas_wanted = (message.gasWanted || helpers_1.Long.ZERO).toString()); - message.gasUsed !== undefined && (obj.gas_used = (message.gasUsed || helpers_1.Long.ZERO).toString()); + message.gasWanted !== undefined && (obj.gas_wanted = (message.gasWanted || BigInt(0)).toString()); + message.gasUsed !== undefined && (obj.gas_used = (message.gasUsed || BigInt(0)).toString()); if (message.events) { obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined)); } @@ -97360,12 +93549,12 @@ exports.ResponseDeliverTx = { message.data = object.data ?? new Uint8Array(); message.log = object.log ?? ""; message.info = object.info ?? ""; - message.gasWanted = - object.gasWanted !== undefined && object.gasWanted !== null - ? helpers_1.Long.fromValue(object.gasWanted) - : helpers_1.Long.ZERO; - message.gasUsed = - object.gasUsed !== undefined && object.gasUsed !== null ? helpers_1.Long.fromValue(object.gasUsed) : helpers_1.Long.ZERO; + if (object.gasWanted !== undefined && object.gasWanted !== null) { + message.gasWanted = BigInt(object.gasWanted.toString()); + } + if (object.gasUsed !== undefined && object.gasUsed !== null) { + message.gasUsed = BigInt(object.gasUsed.toString()); + } message.events = object.events?.map((e) => exports.Event.fromPartial(e)) || []; message.codespace = object.codespace ?? ""; return message; @@ -97379,12 +93568,13 @@ function createBaseResponseEndBlock() { }; } exports.ResponseEndBlock = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.ResponseEndBlock", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.validatorUpdates) { exports.ValidatorUpdate.encode(v, writer.uint32(10).fork()).ldelim(); } if (message.consensusParamUpdates !== undefined) { - exports.ConsensusParams.encode(message.consensusParamUpdates, writer.uint32(18).fork()).ldelim(); + params_1.ConsensusParams.encode(message.consensusParamUpdates, writer.uint32(18).fork()).ldelim(); } for (const v of message.events) { exports.Event.encode(v, writer.uint32(26).fork()).ldelim(); @@ -97392,7 +93582,7 @@ exports.ResponseEndBlock = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseResponseEndBlock(); while (reader.pos < end) { @@ -97402,7 +93592,7 @@ exports.ResponseEndBlock = { message.validatorUpdates.push(exports.ValidatorUpdate.decode(reader, reader.uint32())); break; case 2: - message.consensusParamUpdates = exports.ConsensusParams.decode(reader, reader.uint32()); + message.consensusParamUpdates = params_1.ConsensusParams.decode(reader, reader.uint32()); break; case 3: message.events.push(exports.Event.decode(reader, reader.uint32())); @@ -97415,15 +93605,14 @@ exports.ResponseEndBlock = { return message; }, fromJSON(object) { - return { - validatorUpdates: Array.isArray(object?.validatorUpdates) - ? object.validatorUpdates.map((e) => exports.ValidatorUpdate.fromJSON(e)) - : [], - consensusParamUpdates: (0, helpers_1.isSet)(object.consensusParamUpdates) - ? exports.ConsensusParams.fromJSON(object.consensusParamUpdates) - : undefined, - events: Array.isArray(object?.events) ? object.events.map((e) => exports.Event.fromJSON(e)) : [], - }; + const obj = createBaseResponseEndBlock(); + if (Array.isArray(object?.validatorUpdates)) + obj.validatorUpdates = object.validatorUpdates.map((e) => exports.ValidatorUpdate.fromJSON(e)); + if ((0, helpers_1.isSet)(object.consensusParamUpdates)) + obj.consensusParamUpdates = params_1.ConsensusParams.fromJSON(object.consensusParamUpdates); + if (Array.isArray(object?.events)) + obj.events = object.events.map((e) => exports.Event.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -97435,7 +93624,7 @@ exports.ResponseEndBlock = { } message.consensusParamUpdates !== undefined && (obj.consensusParamUpdates = message.consensusParamUpdates - ? exports.ConsensusParams.toJSON(message.consensusParamUpdates) + ? params_1.ConsensusParams.toJSON(message.consensusParamUpdates) : undefined); if (message.events) { obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined)); @@ -97448,10 +93637,9 @@ exports.ResponseEndBlock = { fromPartial(object) { const message = createBaseResponseEndBlock(); message.validatorUpdates = object.validatorUpdates?.map((e) => exports.ValidatorUpdate.fromPartial(e)) || []; - message.consensusParamUpdates = - object.consensusParamUpdates !== undefined && object.consensusParamUpdates !== null - ? exports.ConsensusParams.fromPartial(object.consensusParamUpdates) - : undefined; + if (object.consensusParamUpdates !== undefined && object.consensusParamUpdates !== null) { + message.consensusParamUpdates = params_1.ConsensusParams.fromPartial(object.consensusParamUpdates); + } message.events = object.events?.map((e) => exports.Event.fromPartial(e)) || []; return message; }, @@ -97459,21 +93647,22 @@ exports.ResponseEndBlock = { function createBaseResponseCommit() { return { data: new Uint8Array(), - retainHeight: helpers_1.Long.ZERO, + retainHeight: BigInt(0), }; } exports.ResponseCommit = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.ResponseCommit", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.data.length !== 0) { writer.uint32(18).bytes(message.data); } - if (!message.retainHeight.isZero()) { + if (message.retainHeight !== BigInt(0)) { writer.uint32(24).int64(message.retainHeight); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseResponseCommit(); while (reader.pos < end) { @@ -97493,25 +93682,26 @@ exports.ResponseCommit = { return message; }, fromJSON(object) { - return { - data: (0, helpers_1.isSet)(object.data) ? (0, helpers_1.bytesFromBase64)(object.data) : new Uint8Array(), - retainHeight: (0, helpers_1.isSet)(object.retainHeight) ? helpers_1.Long.fromValue(object.retainHeight) : helpers_1.Long.ZERO, - }; + const obj = createBaseResponseCommit(); + if ((0, helpers_1.isSet)(object.data)) + obj.data = (0, helpers_1.bytesFromBase64)(object.data); + if ((0, helpers_1.isSet)(object.retainHeight)) + obj.retainHeight = BigInt(object.retainHeight.toString()); + return obj; }, toJSON(message) { const obj = {}; message.data !== undefined && (obj.data = (0, helpers_1.base64FromBytes)(message.data !== undefined ? message.data : new Uint8Array())); - message.retainHeight !== undefined && (obj.retainHeight = (message.retainHeight || helpers_1.Long.ZERO).toString()); + message.retainHeight !== undefined && (obj.retainHeight = (message.retainHeight || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseResponseCommit(); message.data = object.data ?? new Uint8Array(); - message.retainHeight = - object.retainHeight !== undefined && object.retainHeight !== null - ? helpers_1.Long.fromValue(object.retainHeight) - : helpers_1.Long.ZERO; + if (object.retainHeight !== undefined && object.retainHeight !== null) { + message.retainHeight = BigInt(object.retainHeight.toString()); + } return message; }, }; @@ -97521,14 +93711,15 @@ function createBaseResponseListSnapshots() { }; } exports.ResponseListSnapshots = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.ResponseListSnapshots", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.snapshots) { exports.Snapshot.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseResponseListSnapshots(); while (reader.pos < end) { @@ -97545,11 +93736,10 @@ exports.ResponseListSnapshots = { return message; }, fromJSON(object) { - return { - snapshots: Array.isArray(object?.snapshots) - ? object.snapshots.map((e) => exports.Snapshot.fromJSON(e)) - : [], - }; + const obj = createBaseResponseListSnapshots(); + if (Array.isArray(object?.snapshots)) + obj.snapshots = object.snapshots.map((e) => exports.Snapshot.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -97573,14 +93763,15 @@ function createBaseResponseOfferSnapshot() { }; } exports.ResponseOfferSnapshot = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.ResponseOfferSnapshot", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.result !== 0) { writer.uint32(8).int32(message.result); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseResponseOfferSnapshot(); while (reader.pos < end) { @@ -97597,9 +93788,10 @@ exports.ResponseOfferSnapshot = { return message; }, fromJSON(object) { - return { - result: (0, helpers_1.isSet)(object.result) ? responseOfferSnapshot_ResultFromJSON(object.result) : 0, - }; + const obj = createBaseResponseOfferSnapshot(); + if ((0, helpers_1.isSet)(object.result)) + obj.result = responseOfferSnapshot_ResultFromJSON(object.result); + return obj; }, toJSON(message) { const obj = {}; @@ -97618,14 +93810,15 @@ function createBaseResponseLoadSnapshotChunk() { }; } exports.ResponseLoadSnapshotChunk = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.ResponseLoadSnapshotChunk", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.chunk.length !== 0) { writer.uint32(10).bytes(message.chunk); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseResponseLoadSnapshotChunk(); while (reader.pos < end) { @@ -97642,9 +93835,10 @@ exports.ResponseLoadSnapshotChunk = { return message; }, fromJSON(object) { - return { - chunk: (0, helpers_1.isSet)(object.chunk) ? (0, helpers_1.bytesFromBase64)(object.chunk) : new Uint8Array(), - }; + const obj = createBaseResponseLoadSnapshotChunk(); + if ((0, helpers_1.isSet)(object.chunk)) + obj.chunk = (0, helpers_1.bytesFromBase64)(object.chunk); + return obj; }, toJSON(message) { const obj = {}; @@ -97666,7 +93860,8 @@ function createBaseResponseApplySnapshotChunk() { }; } exports.ResponseApplySnapshotChunk = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.ResponseApplySnapshotChunk", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.result !== 0) { writer.uint32(8).int32(message.result); } @@ -97681,7 +93876,7 @@ exports.ResponseApplySnapshotChunk = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseResponseApplySnapshotChunk(); while (reader.pos < end) { @@ -97712,15 +93907,14 @@ exports.ResponseApplySnapshotChunk = { return message; }, fromJSON(object) { - return { - result: (0, helpers_1.isSet)(object.result) ? responseApplySnapshotChunk_ResultFromJSON(object.result) : 0, - refetchChunks: Array.isArray(object?.refetchChunks) - ? object.refetchChunks.map((e) => Number(e)) - : [], - rejectSenders: Array.isArray(object?.rejectSenders) - ? object.rejectSenders.map((e) => String(e)) - : [], - }; + const obj = createBaseResponseApplySnapshotChunk(); + if ((0, helpers_1.isSet)(object.result)) + obj.result = responseApplySnapshotChunk_ResultFromJSON(object.result); + if (Array.isArray(object?.refetchChunks)) + obj.refetchChunks = object.refetchChunks.map((e) => Number(e)); + if (Array.isArray(object?.rejectSenders)) + obj.rejectSenders = object.rejectSenders.map((e) => String(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -97747,48 +93941,80 @@ exports.ResponseApplySnapshotChunk = { return message; }, }; -function createBaseConsensusParams() { +function createBaseResponsePrepareProposal() { return { - block: undefined, - evidence: undefined, - validator: undefined, - version: undefined, + txs: [], }; } -exports.ConsensusParams = { - encode(message, writer = _m0.Writer.create()) { - if (message.block !== undefined) { - exports.BlockParams.encode(message.block, writer.uint32(10).fork()).ldelim(); +exports.ResponsePrepareProposal = { + typeUrl: "/tendermint.abci.ResponsePrepareProposal", + encode(message, writer = binary_1.BinaryWriter.create()) { + for (const v of message.txs) { + writer.uint32(10).bytes(v); } - if (message.evidence !== undefined) { - params_1.EvidenceParams.encode(message.evidence, writer.uint32(18).fork()).ldelim(); + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseResponsePrepareProposal(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.txs.push(reader.bytes()); + break; + default: + reader.skipType(tag & 7); + break; + } } - if (message.validator !== undefined) { - params_1.ValidatorParams.encode(message.validator, writer.uint32(26).fork()).ldelim(); + return message; + }, + fromJSON(object) { + const obj = createBaseResponsePrepareProposal(); + if (Array.isArray(object?.txs)) + obj.txs = object.txs.map((e) => (0, helpers_1.bytesFromBase64)(e)); + return obj; + }, + toJSON(message) { + const obj = {}; + if (message.txs) { + obj.txs = message.txs.map((e) => (0, helpers_1.base64FromBytes)(e !== undefined ? e : new Uint8Array())); } - if (message.version !== undefined) { - params_1.VersionParams.encode(message.version, writer.uint32(34).fork()).ldelim(); + else { + obj.txs = []; + } + return obj; + }, + fromPartial(object) { + const message = createBaseResponsePrepareProposal(); + message.txs = object.txs?.map((e) => e) || []; + return message; + }, +}; +function createBaseResponseProcessProposal() { + return { + status: 0, + }; +} +exports.ResponseProcessProposal = { + typeUrl: "/tendermint.abci.ResponseProcessProposal", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.status !== 0) { + writer.uint32(8).int32(message.status); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseConsensusParams(); + const message = createBaseResponseProcessProposal(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.block = exports.BlockParams.decode(reader, reader.uint32()); - break; - case 2: - message.evidence = params_1.EvidenceParams.decode(reader, reader.uint32()); - break; - case 3: - message.validator = params_1.ValidatorParams.decode(reader, reader.uint32()); - break; - case 4: - message.version = params_1.VersionParams.decode(reader, reader.uint32()); + message.status = reader.int32(); break; default: reader.skipType(tag & 7); @@ -97798,72 +94024,52 @@ exports.ConsensusParams = { return message; }, fromJSON(object) { - return { - block: (0, helpers_1.isSet)(object.block) ? exports.BlockParams.fromJSON(object.block) : undefined, - evidence: (0, helpers_1.isSet)(object.evidence) ? params_1.EvidenceParams.fromJSON(object.evidence) : undefined, - validator: (0, helpers_1.isSet)(object.validator) ? params_1.ValidatorParams.fromJSON(object.validator) : undefined, - version: (0, helpers_1.isSet)(object.version) ? params_1.VersionParams.fromJSON(object.version) : undefined, - }; + const obj = createBaseResponseProcessProposal(); + if ((0, helpers_1.isSet)(object.status)) + obj.status = responseProcessProposal_ProposalStatusFromJSON(object.status); + return obj; }, toJSON(message) { const obj = {}; - message.block !== undefined && - (obj.block = message.block ? exports.BlockParams.toJSON(message.block) : undefined); - message.evidence !== undefined && - (obj.evidence = message.evidence ? params_1.EvidenceParams.toJSON(message.evidence) : undefined); - message.validator !== undefined && - (obj.validator = message.validator ? params_1.ValidatorParams.toJSON(message.validator) : undefined); - message.version !== undefined && - (obj.version = message.version ? params_1.VersionParams.toJSON(message.version) : undefined); + message.status !== undefined && + (obj.status = responseProcessProposal_ProposalStatusToJSON(message.status)); return obj; }, fromPartial(object) { - const message = createBaseConsensusParams(); - message.block = - object.block !== undefined && object.block !== null ? exports.BlockParams.fromPartial(object.block) : undefined; - message.evidence = - object.evidence !== undefined && object.evidence !== null - ? params_1.EvidenceParams.fromPartial(object.evidence) - : undefined; - message.validator = - object.validator !== undefined && object.validator !== null - ? params_1.ValidatorParams.fromPartial(object.validator) - : undefined; - message.version = - object.version !== undefined && object.version !== null - ? params_1.VersionParams.fromPartial(object.version) - : undefined; + const message = createBaseResponseProcessProposal(); + message.status = object.status ?? 0; return message; }, }; -function createBaseBlockParams() { +function createBaseCommitInfo() { return { - maxBytes: helpers_1.Long.ZERO, - maxGas: helpers_1.Long.ZERO, + round: 0, + votes: [], }; } -exports.BlockParams = { - encode(message, writer = _m0.Writer.create()) { - if (!message.maxBytes.isZero()) { - writer.uint32(8).int64(message.maxBytes); +exports.CommitInfo = { + typeUrl: "/tendermint.abci.CommitInfo", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.round !== 0) { + writer.uint32(8).int32(message.round); } - if (!message.maxGas.isZero()) { - writer.uint32(16).int64(message.maxGas); + for (const v of message.votes) { + exports.VoteInfo.encode(v, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBlockParams(); + const message = createBaseCommitInfo(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.maxBytes = reader.int64(); + message.round = reader.int32(); break; case 2: - message.maxGas = reader.int64(); + message.votes.push(exports.VoteInfo.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -97873,46 +94079,52 @@ exports.BlockParams = { return message; }, fromJSON(object) { - return { - maxBytes: (0, helpers_1.isSet)(object.maxBytes) ? helpers_1.Long.fromValue(object.maxBytes) : helpers_1.Long.ZERO, - maxGas: (0, helpers_1.isSet)(object.maxGas) ? helpers_1.Long.fromValue(object.maxGas) : helpers_1.Long.ZERO, - }; + const obj = createBaseCommitInfo(); + if ((0, helpers_1.isSet)(object.round)) + obj.round = Number(object.round); + if (Array.isArray(object?.votes)) + obj.votes = object.votes.map((e) => exports.VoteInfo.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || helpers_1.Long.ZERO).toString()); - message.maxGas !== undefined && (obj.maxGas = (message.maxGas || helpers_1.Long.ZERO).toString()); + message.round !== undefined && (obj.round = Math.round(message.round)); + if (message.votes) { + obj.votes = message.votes.map((e) => (e ? exports.VoteInfo.toJSON(e) : undefined)); + } + else { + obj.votes = []; + } return obj; }, fromPartial(object) { - const message = createBaseBlockParams(); - message.maxBytes = - object.maxBytes !== undefined && object.maxBytes !== null ? helpers_1.Long.fromValue(object.maxBytes) : helpers_1.Long.ZERO; - message.maxGas = - object.maxGas !== undefined && object.maxGas !== null ? helpers_1.Long.fromValue(object.maxGas) : helpers_1.Long.ZERO; + const message = createBaseCommitInfo(); + message.round = object.round ?? 0; + message.votes = object.votes?.map((e) => exports.VoteInfo.fromPartial(e)) || []; return message; }, }; -function createBaseLastCommitInfo() { +function createBaseExtendedCommitInfo() { return { round: 0, votes: [], }; } -exports.LastCommitInfo = { - encode(message, writer = _m0.Writer.create()) { +exports.ExtendedCommitInfo = { + typeUrl: "/tendermint.abci.ExtendedCommitInfo", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.round !== 0) { writer.uint32(8).int32(message.round); } for (const v of message.votes) { - exports.VoteInfo.encode(v, writer.uint32(18).fork()).ldelim(); + exports.ExtendedVoteInfo.encode(v, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseLastCommitInfo(); + const message = createBaseExtendedCommitInfo(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { @@ -97920,7 +94132,7 @@ exports.LastCommitInfo = { message.round = reader.int32(); break; case 2: - message.votes.push(exports.VoteInfo.decode(reader, reader.uint32())); + message.votes.push(exports.ExtendedVoteInfo.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -97930,16 +94142,18 @@ exports.LastCommitInfo = { return message; }, fromJSON(object) { - return { - round: (0, helpers_1.isSet)(object.round) ? Number(object.round) : 0, - votes: Array.isArray(object?.votes) ? object.votes.map((e) => exports.VoteInfo.fromJSON(e)) : [], - }; + const obj = createBaseExtendedCommitInfo(); + if ((0, helpers_1.isSet)(object.round)) + obj.round = Number(object.round); + if (Array.isArray(object?.votes)) + obj.votes = object.votes.map((e) => exports.ExtendedVoteInfo.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; message.round !== undefined && (obj.round = Math.round(message.round)); if (message.votes) { - obj.votes = message.votes.map((e) => (e ? exports.VoteInfo.toJSON(e) : undefined)); + obj.votes = message.votes.map((e) => (e ? exports.ExtendedVoteInfo.toJSON(e) : undefined)); } else { obj.votes = []; @@ -97947,9 +94161,9 @@ exports.LastCommitInfo = { return obj; }, fromPartial(object) { - const message = createBaseLastCommitInfo(); + const message = createBaseExtendedCommitInfo(); message.round = object.round ?? 0; - message.votes = object.votes?.map((e) => exports.VoteInfo.fromPartial(e)) || []; + message.votes = object.votes?.map((e) => exports.ExtendedVoteInfo.fromPartial(e)) || []; return message; }, }; @@ -97960,7 +94174,8 @@ function createBaseEvent() { }; } exports.Event = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.Event", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.type !== "") { writer.uint32(10).string(message.type); } @@ -97970,7 +94185,7 @@ exports.Event = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseEvent(); while (reader.pos < end) { @@ -97990,12 +94205,12 @@ exports.Event = { return message; }, fromJSON(object) { - return { - type: (0, helpers_1.isSet)(object.type) ? String(object.type) : "", - attributes: Array.isArray(object?.attributes) - ? object.attributes.map((e) => exports.EventAttribute.fromJSON(e)) - : [], - }; + const obj = createBaseEvent(); + if ((0, helpers_1.isSet)(object.type)) + obj.type = String(object.type); + if (Array.isArray(object?.attributes)) + obj.attributes = object.attributes.map((e) => exports.EventAttribute.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -98017,18 +94232,19 @@ exports.Event = { }; function createBaseEventAttribute() { return { - key: new Uint8Array(), - value: new Uint8Array(), + key: "", + value: "", index: false, }; } exports.EventAttribute = { - encode(message, writer = _m0.Writer.create()) { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); + typeUrl: "/tendermint.abci.EventAttribute", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.key !== "") { + writer.uint32(10).string(message.key); } - if (message.value.length !== 0) { - writer.uint32(18).bytes(message.value); + if (message.value !== "") { + writer.uint32(18).string(message.value); } if (message.index === true) { writer.uint32(24).bool(message.index); @@ -98036,17 +94252,17 @@ exports.EventAttribute = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseEventAttribute(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.key = reader.bytes(); + message.key = reader.string(); break; case 2: - message.value = reader.bytes(); + message.value = reader.string(); break; case 3: message.index = reader.bool(); @@ -98059,40 +94275,42 @@ exports.EventAttribute = { return message; }, fromJSON(object) { - return { - key: (0, helpers_1.isSet)(object.key) ? (0, helpers_1.bytesFromBase64)(object.key) : new Uint8Array(), - value: (0, helpers_1.isSet)(object.value) ? (0, helpers_1.bytesFromBase64)(object.value) : new Uint8Array(), - index: (0, helpers_1.isSet)(object.index) ? Boolean(object.index) : false, - }; + const obj = createBaseEventAttribute(); + if ((0, helpers_1.isSet)(object.key)) + obj.key = String(object.key); + if ((0, helpers_1.isSet)(object.value)) + obj.value = String(object.value); + if ((0, helpers_1.isSet)(object.index)) + obj.index = Boolean(object.index); + return obj; }, toJSON(message) { const obj = {}; - message.key !== undefined && - (obj.key = (0, helpers_1.base64FromBytes)(message.key !== undefined ? message.key : new Uint8Array())); - message.value !== undefined && - (obj.value = (0, helpers_1.base64FromBytes)(message.value !== undefined ? message.value : new Uint8Array())); + message.key !== undefined && (obj.key = message.key); + message.value !== undefined && (obj.value = message.value); message.index !== undefined && (obj.index = message.index); return obj; }, fromPartial(object) { const message = createBaseEventAttribute(); - message.key = object.key ?? new Uint8Array(); - message.value = object.value ?? new Uint8Array(); + message.key = object.key ?? ""; + message.value = object.value ?? ""; message.index = object.index ?? false; return message; }, }; function createBaseTxResult() { return { - height: helpers_1.Long.ZERO, + height: BigInt(0), index: 0, tx: new Uint8Array(), - result: undefined, + result: exports.ResponseDeliverTx.fromPartial({}), }; } exports.TxResult = { - encode(message, writer = _m0.Writer.create()) { - if (!message.height.isZero()) { + typeUrl: "/tendermint.abci.TxResult", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.height !== BigInt(0)) { writer.uint32(8).int64(message.height); } if (message.index !== 0) { @@ -98107,7 +94325,7 @@ exports.TxResult = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseTxResult(); while (reader.pos < end) { @@ -98133,16 +94351,20 @@ exports.TxResult = { return message; }, fromJSON(object) { - return { - height: (0, helpers_1.isSet)(object.height) ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO, - index: (0, helpers_1.isSet)(object.index) ? Number(object.index) : 0, - tx: (0, helpers_1.isSet)(object.tx) ? (0, helpers_1.bytesFromBase64)(object.tx) : new Uint8Array(), - result: (0, helpers_1.isSet)(object.result) ? exports.ResponseDeliverTx.fromJSON(object.result) : undefined, - }; + const obj = createBaseTxResult(); + if ((0, helpers_1.isSet)(object.height)) + obj.height = BigInt(object.height.toString()); + if ((0, helpers_1.isSet)(object.index)) + obj.index = Number(object.index); + if ((0, helpers_1.isSet)(object.tx)) + obj.tx = (0, helpers_1.bytesFromBase64)(object.tx); + if ((0, helpers_1.isSet)(object.result)) + obj.result = exports.ResponseDeliverTx.fromJSON(object.result); + return obj; }, toJSON(message) { const obj = {}; - message.height !== undefined && (obj.height = (message.height || helpers_1.Long.ZERO).toString()); + message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString()); message.index !== undefined && (obj.index = Math.round(message.index)); message.tx !== undefined && (obj.tx = (0, helpers_1.base64FromBytes)(message.tx !== undefined ? message.tx : new Uint8Array())); @@ -98152,35 +94374,36 @@ exports.TxResult = { }, fromPartial(object) { const message = createBaseTxResult(); - message.height = - object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; + if (object.height !== undefined && object.height !== null) { + message.height = BigInt(object.height.toString()); + } message.index = object.index ?? 0; message.tx = object.tx ?? new Uint8Array(); - message.result = - object.result !== undefined && object.result !== null - ? exports.ResponseDeliverTx.fromPartial(object.result) - : undefined; + if (object.result !== undefined && object.result !== null) { + message.result = exports.ResponseDeliverTx.fromPartial(object.result); + } return message; }, }; function createBaseValidator() { return { address: new Uint8Array(), - power: helpers_1.Long.ZERO, + power: BigInt(0), }; } exports.Validator = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.Validator", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.address.length !== 0) { writer.uint32(10).bytes(message.address); } - if (!message.power.isZero()) { + if (message.power !== BigInt(0)) { writer.uint32(24).int64(message.power); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseValidator(); while (reader.pos < end) { @@ -98200,44 +94423,48 @@ exports.Validator = { return message; }, fromJSON(object) { - return { - address: (0, helpers_1.isSet)(object.address) ? (0, helpers_1.bytesFromBase64)(object.address) : new Uint8Array(), - power: (0, helpers_1.isSet)(object.power) ? helpers_1.Long.fromValue(object.power) : helpers_1.Long.ZERO, - }; + const obj = createBaseValidator(); + if ((0, helpers_1.isSet)(object.address)) + obj.address = (0, helpers_1.bytesFromBase64)(object.address); + if ((0, helpers_1.isSet)(object.power)) + obj.power = BigInt(object.power.toString()); + return obj; }, toJSON(message) { const obj = {}; message.address !== undefined && (obj.address = (0, helpers_1.base64FromBytes)(message.address !== undefined ? message.address : new Uint8Array())); - message.power !== undefined && (obj.power = (message.power || helpers_1.Long.ZERO).toString()); + message.power !== undefined && (obj.power = (message.power || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseValidator(); message.address = object.address ?? new Uint8Array(); - message.power = - object.power !== undefined && object.power !== null ? helpers_1.Long.fromValue(object.power) : helpers_1.Long.ZERO; + if (object.power !== undefined && object.power !== null) { + message.power = BigInt(object.power.toString()); + } return message; }, }; function createBaseValidatorUpdate() { return { - pubKey: undefined, - power: helpers_1.Long.ZERO, + pubKey: keys_1.PublicKey.fromPartial({}), + power: BigInt(0), }; } exports.ValidatorUpdate = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.ValidatorUpdate", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.pubKey !== undefined) { keys_1.PublicKey.encode(message.pubKey, writer.uint32(10).fork()).ldelim(); } - if (!message.power.isZero()) { + if (message.power !== BigInt(0)) { writer.uint32(16).int64(message.power); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseValidatorUpdate(); while (reader.pos < end) { @@ -98257,37 +94484,40 @@ exports.ValidatorUpdate = { return message; }, fromJSON(object) { - return { - pubKey: (0, helpers_1.isSet)(object.pubKey) ? keys_1.PublicKey.fromJSON(object.pubKey) : undefined, - power: (0, helpers_1.isSet)(object.power) ? helpers_1.Long.fromValue(object.power) : helpers_1.Long.ZERO, - }; + const obj = createBaseValidatorUpdate(); + if ((0, helpers_1.isSet)(object.pubKey)) + obj.pubKey = keys_1.PublicKey.fromJSON(object.pubKey); + if ((0, helpers_1.isSet)(object.power)) + obj.power = BigInt(object.power.toString()); + return obj; }, toJSON(message) { const obj = {}; message.pubKey !== undefined && (obj.pubKey = message.pubKey ? keys_1.PublicKey.toJSON(message.pubKey) : undefined); - message.power !== undefined && (obj.power = (message.power || helpers_1.Long.ZERO).toString()); + message.power !== undefined && (obj.power = (message.power || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseValidatorUpdate(); - message.pubKey = - object.pubKey !== undefined && object.pubKey !== null - ? keys_1.PublicKey.fromPartial(object.pubKey) - : undefined; - message.power = - object.power !== undefined && object.power !== null ? helpers_1.Long.fromValue(object.power) : helpers_1.Long.ZERO; + if (object.pubKey !== undefined && object.pubKey !== null) { + message.pubKey = keys_1.PublicKey.fromPartial(object.pubKey); + } + if (object.power !== undefined && object.power !== null) { + message.power = BigInt(object.power.toString()); + } return message; }, }; function createBaseVoteInfo() { return { - validator: undefined, + validator: exports.Validator.fromPartial({}), signedLastBlock: false, }; } exports.VoteInfo = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.abci.VoteInfo", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.validator !== undefined) { exports.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim(); } @@ -98297,7 +94527,7 @@ exports.VoteInfo = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseVoteInfo(); while (reader.pos < end) { @@ -98317,10 +94547,12 @@ exports.VoteInfo = { return message; }, fromJSON(object) { - return { - validator: (0, helpers_1.isSet)(object.validator) ? exports.Validator.fromJSON(object.validator) : undefined, - signedLastBlock: (0, helpers_1.isSet)(object.signedLastBlock) ? Boolean(object.signedLastBlock) : false, - }; + const obj = createBaseVoteInfo(); + if ((0, helpers_1.isSet)(object.validator)) + obj.validator = exports.Validator.fromJSON(object.validator); + if ((0, helpers_1.isSet)(object.signedLastBlock)) + obj.signedLastBlock = Boolean(object.signedLastBlock); + return obj; }, toJSON(message) { const obj = {}; @@ -98331,46 +94563,119 @@ exports.VoteInfo = { }, fromPartial(object) { const message = createBaseVoteInfo(); - message.validator = - object.validator !== undefined && object.validator !== null - ? exports.Validator.fromPartial(object.validator) - : undefined; + if (object.validator !== undefined && object.validator !== null) { + message.validator = exports.Validator.fromPartial(object.validator); + } message.signedLastBlock = object.signedLastBlock ?? false; return message; }, }; -function createBaseEvidence() { +function createBaseExtendedVoteInfo() { + return { + validator: exports.Validator.fromPartial({}), + signedLastBlock: false, + voteExtension: new Uint8Array(), + }; +} +exports.ExtendedVoteInfo = { + typeUrl: "/tendermint.abci.ExtendedVoteInfo", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.validator !== undefined) { + exports.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim(); + } + if (message.signedLastBlock === true) { + writer.uint32(16).bool(message.signedLastBlock); + } + if (message.voteExtension.length !== 0) { + writer.uint32(26).bytes(message.voteExtension); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseExtendedVoteInfo(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.validator = exports.Validator.decode(reader, reader.uint32()); + break; + case 2: + message.signedLastBlock = reader.bool(); + break; + case 3: + message.voteExtension = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromJSON(object) { + const obj = createBaseExtendedVoteInfo(); + if ((0, helpers_1.isSet)(object.validator)) + obj.validator = exports.Validator.fromJSON(object.validator); + if ((0, helpers_1.isSet)(object.signedLastBlock)) + obj.signedLastBlock = Boolean(object.signedLastBlock); + if ((0, helpers_1.isSet)(object.voteExtension)) + obj.voteExtension = (0, helpers_1.bytesFromBase64)(object.voteExtension); + return obj; + }, + toJSON(message) { + const obj = {}; + message.validator !== undefined && + (obj.validator = message.validator ? exports.Validator.toJSON(message.validator) : undefined); + message.signedLastBlock !== undefined && (obj.signedLastBlock = message.signedLastBlock); + message.voteExtension !== undefined && + (obj.voteExtension = (0, helpers_1.base64FromBytes)(message.voteExtension !== undefined ? message.voteExtension : new Uint8Array())); + return obj; + }, + fromPartial(object) { + const message = createBaseExtendedVoteInfo(); + if (object.validator !== undefined && object.validator !== null) { + message.validator = exports.Validator.fromPartial(object.validator); + } + message.signedLastBlock = object.signedLastBlock ?? false; + message.voteExtension = object.voteExtension ?? new Uint8Array(); + return message; + }, +}; +function createBaseMisbehavior() { return { type: 0, - validator: undefined, - height: helpers_1.Long.ZERO, - time: undefined, - totalVotingPower: helpers_1.Long.ZERO, + validator: exports.Validator.fromPartial({}), + height: BigInt(0), + time: timestamp_1.Timestamp.fromPartial({}), + totalVotingPower: BigInt(0), }; } -exports.Evidence = { - encode(message, writer = _m0.Writer.create()) { +exports.Misbehavior = { + typeUrl: "/tendermint.abci.Misbehavior", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.type !== 0) { writer.uint32(8).int32(message.type); } if (message.validator !== undefined) { exports.Validator.encode(message.validator, writer.uint32(18).fork()).ldelim(); } - if (!message.height.isZero()) { + if (message.height !== BigInt(0)) { writer.uint32(24).int64(message.height); } if (message.time !== undefined) { timestamp_1.Timestamp.encode(message.time, writer.uint32(34).fork()).ldelim(); } - if (!message.totalVotingPower.isZero()) { + if (message.totalVotingPower !== BigInt(0)) { writer.uint32(40).int64(message.totalVotingPower); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEvidence(); + const message = createBaseMisbehavior(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { @@ -98397,46 +94702,51 @@ exports.Evidence = { return message; }, fromJSON(object) { - return { - type: (0, helpers_1.isSet)(object.type) ? evidenceTypeFromJSON(object.type) : 0, - validator: (0, helpers_1.isSet)(object.validator) ? exports.Validator.fromJSON(object.validator) : undefined, - height: (0, helpers_1.isSet)(object.height) ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO, - time: (0, helpers_1.isSet)(object.time) ? (0, helpers_1.fromJsonTimestamp)(object.time) : undefined, - totalVotingPower: (0, helpers_1.isSet)(object.totalVotingPower) ? helpers_1.Long.fromValue(object.totalVotingPower) : helpers_1.Long.ZERO, - }; + const obj = createBaseMisbehavior(); + if ((0, helpers_1.isSet)(object.type)) + obj.type = misbehaviorTypeFromJSON(object.type); + if ((0, helpers_1.isSet)(object.validator)) + obj.validator = exports.Validator.fromJSON(object.validator); + if ((0, helpers_1.isSet)(object.height)) + obj.height = BigInt(object.height.toString()); + if ((0, helpers_1.isSet)(object.time)) + obj.time = (0, helpers_1.fromJsonTimestamp)(object.time); + if ((0, helpers_1.isSet)(object.totalVotingPower)) + obj.totalVotingPower = BigInt(object.totalVotingPower.toString()); + return obj; }, toJSON(message) { const obj = {}; - message.type !== undefined && (obj.type = evidenceTypeToJSON(message.type)); + message.type !== undefined && (obj.type = misbehaviorTypeToJSON(message.type)); message.validator !== undefined && (obj.validator = message.validator ? exports.Validator.toJSON(message.validator) : undefined); - message.height !== undefined && (obj.height = (message.height || helpers_1.Long.ZERO).toString()); + message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString()); message.time !== undefined && (obj.time = (0, helpers_1.fromTimestamp)(message.time).toISOString()); message.totalVotingPower !== undefined && - (obj.totalVotingPower = (message.totalVotingPower || helpers_1.Long.ZERO).toString()); + (obj.totalVotingPower = (message.totalVotingPower || BigInt(0)).toString()); return obj; }, fromPartial(object) { - const message = createBaseEvidence(); + const message = createBaseMisbehavior(); message.type = object.type ?? 0; - message.validator = - object.validator !== undefined && object.validator !== null - ? exports.Validator.fromPartial(object.validator) - : undefined; - message.height = - object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; - message.time = - object.time !== undefined && object.time !== null ? timestamp_1.Timestamp.fromPartial(object.time) : undefined; - message.totalVotingPower = - object.totalVotingPower !== undefined && object.totalVotingPower !== null - ? helpers_1.Long.fromValue(object.totalVotingPower) - : helpers_1.Long.ZERO; + if (object.validator !== undefined && object.validator !== null) { + message.validator = exports.Validator.fromPartial(object.validator); + } + if (object.height !== undefined && object.height !== null) { + message.height = BigInt(object.height.toString()); + } + if (object.time !== undefined && object.time !== null) { + message.time = timestamp_1.Timestamp.fromPartial(object.time); + } + if (object.totalVotingPower !== undefined && object.totalVotingPower !== null) { + message.totalVotingPower = BigInt(object.totalVotingPower.toString()); + } return message; }, }; function createBaseSnapshot() { return { - height: helpers_1.Long.UZERO, + height: BigInt(0), format: 0, chunks: 0, hash: new Uint8Array(), @@ -98444,8 +94754,9 @@ function createBaseSnapshot() { }; } exports.Snapshot = { - encode(message, writer = _m0.Writer.create()) { - if (!message.height.isZero()) { + typeUrl: "/tendermint.abci.Snapshot", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.height !== BigInt(0)) { writer.uint32(8).uint64(message.height); } if (message.format !== 0) { @@ -98463,7 +94774,7 @@ exports.Snapshot = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSnapshot(); while (reader.pos < end) { @@ -98492,17 +94803,22 @@ exports.Snapshot = { return message; }, fromJSON(object) { - return { - height: (0, helpers_1.isSet)(object.height) ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.UZERO, - format: (0, helpers_1.isSet)(object.format) ? Number(object.format) : 0, - chunks: (0, helpers_1.isSet)(object.chunks) ? Number(object.chunks) : 0, - hash: (0, helpers_1.isSet)(object.hash) ? (0, helpers_1.bytesFromBase64)(object.hash) : new Uint8Array(), - metadata: (0, helpers_1.isSet)(object.metadata) ? (0, helpers_1.bytesFromBase64)(object.metadata) : new Uint8Array(), - }; + const obj = createBaseSnapshot(); + if ((0, helpers_1.isSet)(object.height)) + obj.height = BigInt(object.height.toString()); + if ((0, helpers_1.isSet)(object.format)) + obj.format = Number(object.format); + if ((0, helpers_1.isSet)(object.chunks)) + obj.chunks = Number(object.chunks); + if ((0, helpers_1.isSet)(object.hash)) + obj.hash = (0, helpers_1.bytesFromBase64)(object.hash); + if ((0, helpers_1.isSet)(object.metadata)) + obj.metadata = (0, helpers_1.bytesFromBase64)(object.metadata); + return obj; }, toJSON(message) { const obj = {}; - message.height !== undefined && (obj.height = (message.height || helpers_1.Long.UZERO).toString()); + message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString()); message.format !== undefined && (obj.format = Math.round(message.format)); message.chunks !== undefined && (obj.chunks = Math.round(message.chunks)); message.hash !== undefined && @@ -98513,8 +94829,9 @@ exports.Snapshot = { }, fromPartial(object) { const message = createBaseSnapshot(); - message.height = - object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.UZERO; + if (object.height !== undefined && object.height !== null) { + message.height = BigInt(object.height.toString()); + } message.format = object.format ?? 0; message.chunks = object.chunks ?? 0; message.hash = object.hash ?? new Uint8Array(); @@ -98528,7 +94845,6 @@ class ABCIApplicationClientImpl { this.Echo = this.Echo.bind(this); this.Flush = this.Flush.bind(this); this.Info = this.Info.bind(this); - this.SetOption = this.SetOption.bind(this); this.DeliverTx = this.DeliverTx.bind(this); this.CheckTx = this.CheckTx.bind(this); this.Query = this.Query.bind(this); @@ -98540,81 +94856,88 @@ class ABCIApplicationClientImpl { this.OfferSnapshot = this.OfferSnapshot.bind(this); this.LoadSnapshotChunk = this.LoadSnapshotChunk.bind(this); this.ApplySnapshotChunk = this.ApplySnapshotChunk.bind(this); + this.PrepareProposal = this.PrepareProposal.bind(this); + this.ProcessProposal = this.ProcessProposal.bind(this); } Echo(request) { const data = exports.RequestEcho.encode(request).finish(); const promise = this.rpc.request("tendermint.abci.ABCIApplication", "Echo", data); - return promise.then((data) => exports.ResponseEcho.decode(new _m0.Reader(data))); + return promise.then((data) => exports.ResponseEcho.decode(new binary_1.BinaryReader(data))); } Flush(request = {}) { const data = exports.RequestFlush.encode(request).finish(); const promise = this.rpc.request("tendermint.abci.ABCIApplication", "Flush", data); - return promise.then((data) => exports.ResponseFlush.decode(new _m0.Reader(data))); + return promise.then((data) => exports.ResponseFlush.decode(new binary_1.BinaryReader(data))); } Info(request) { const data = exports.RequestInfo.encode(request).finish(); const promise = this.rpc.request("tendermint.abci.ABCIApplication", "Info", data); - return promise.then((data) => exports.ResponseInfo.decode(new _m0.Reader(data))); - } - SetOption(request) { - const data = exports.RequestSetOption.encode(request).finish(); - const promise = this.rpc.request("tendermint.abci.ABCIApplication", "SetOption", data); - return promise.then((data) => exports.ResponseSetOption.decode(new _m0.Reader(data))); + return promise.then((data) => exports.ResponseInfo.decode(new binary_1.BinaryReader(data))); } DeliverTx(request) { const data = exports.RequestDeliverTx.encode(request).finish(); const promise = this.rpc.request("tendermint.abci.ABCIApplication", "DeliverTx", data); - return promise.then((data) => exports.ResponseDeliverTx.decode(new _m0.Reader(data))); + return promise.then((data) => exports.ResponseDeliverTx.decode(new binary_1.BinaryReader(data))); } CheckTx(request) { const data = exports.RequestCheckTx.encode(request).finish(); const promise = this.rpc.request("tendermint.abci.ABCIApplication", "CheckTx", data); - return promise.then((data) => exports.ResponseCheckTx.decode(new _m0.Reader(data))); + return promise.then((data) => exports.ResponseCheckTx.decode(new binary_1.BinaryReader(data))); } Query(request) { const data = exports.RequestQuery.encode(request).finish(); const promise = this.rpc.request("tendermint.abci.ABCIApplication", "Query", data); - return promise.then((data) => exports.ResponseQuery.decode(new _m0.Reader(data))); + return promise.then((data) => exports.ResponseQuery.decode(new binary_1.BinaryReader(data))); } Commit(request = {}) { const data = exports.RequestCommit.encode(request).finish(); const promise = this.rpc.request("tendermint.abci.ABCIApplication", "Commit", data); - return promise.then((data) => exports.ResponseCommit.decode(new _m0.Reader(data))); + return promise.then((data) => exports.ResponseCommit.decode(new binary_1.BinaryReader(data))); } InitChain(request) { const data = exports.RequestInitChain.encode(request).finish(); const promise = this.rpc.request("tendermint.abci.ABCIApplication", "InitChain", data); - return promise.then((data) => exports.ResponseInitChain.decode(new _m0.Reader(data))); + return promise.then((data) => exports.ResponseInitChain.decode(new binary_1.BinaryReader(data))); } BeginBlock(request) { const data = exports.RequestBeginBlock.encode(request).finish(); const promise = this.rpc.request("tendermint.abci.ABCIApplication", "BeginBlock", data); - return promise.then((data) => exports.ResponseBeginBlock.decode(new _m0.Reader(data))); + return promise.then((data) => exports.ResponseBeginBlock.decode(new binary_1.BinaryReader(data))); } EndBlock(request) { const data = exports.RequestEndBlock.encode(request).finish(); const promise = this.rpc.request("tendermint.abci.ABCIApplication", "EndBlock", data); - return promise.then((data) => exports.ResponseEndBlock.decode(new _m0.Reader(data))); + return promise.then((data) => exports.ResponseEndBlock.decode(new binary_1.BinaryReader(data))); } ListSnapshots(request = {}) { const data = exports.RequestListSnapshots.encode(request).finish(); const promise = this.rpc.request("tendermint.abci.ABCIApplication", "ListSnapshots", data); - return promise.then((data) => exports.ResponseListSnapshots.decode(new _m0.Reader(data))); + return promise.then((data) => exports.ResponseListSnapshots.decode(new binary_1.BinaryReader(data))); } OfferSnapshot(request) { const data = exports.RequestOfferSnapshot.encode(request).finish(); const promise = this.rpc.request("tendermint.abci.ABCIApplication", "OfferSnapshot", data); - return promise.then((data) => exports.ResponseOfferSnapshot.decode(new _m0.Reader(data))); + return promise.then((data) => exports.ResponseOfferSnapshot.decode(new binary_1.BinaryReader(data))); } LoadSnapshotChunk(request) { const data = exports.RequestLoadSnapshotChunk.encode(request).finish(); const promise = this.rpc.request("tendermint.abci.ABCIApplication", "LoadSnapshotChunk", data); - return promise.then((data) => exports.ResponseLoadSnapshotChunk.decode(new _m0.Reader(data))); + return promise.then((data) => exports.ResponseLoadSnapshotChunk.decode(new binary_1.BinaryReader(data))); } ApplySnapshotChunk(request) { const data = exports.RequestApplySnapshotChunk.encode(request).finish(); const promise = this.rpc.request("tendermint.abci.ABCIApplication", "ApplySnapshotChunk", data); - return promise.then((data) => exports.ResponseApplySnapshotChunk.decode(new _m0.Reader(data))); + return promise.then((data) => exports.ResponseApplySnapshotChunk.decode(new binary_1.BinaryReader(data))); + } + PrepareProposal(request) { + const data = exports.RequestPrepareProposal.encode(request).finish(); + const promise = this.rpc.request("tendermint.abci.ABCIApplication", "PrepareProposal", data); + return promise.then((data) => exports.ResponsePrepareProposal.decode(new binary_1.BinaryReader(data))); + } + ProcessProposal(request) { + const data = exports.RequestProcessProposal.encode(request).finish(); + const promise = this.rpc.request("tendermint.abci.ABCIApplication", "ProcessProposal", data); + return promise.then((data) => exports.ResponseProcessProposal.decode(new binary_1.BinaryReader(data))); } } exports.ABCIApplicationClientImpl = ABCIApplicationClientImpl; @@ -98630,33 +94953,10 @@ exports.ABCIApplicationClientImpl = ABCIApplicationClientImpl; "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.PublicKey = exports.protobufPackage = void 0; /* eslint-disable */ -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "tendermint.crypto"; function createBasePublicKey() { @@ -98666,7 +94966,8 @@ function createBasePublicKey() { }; } exports.PublicKey = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.crypto.PublicKey", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.ed25519 !== undefined) { writer.uint32(10).bytes(message.ed25519); } @@ -98676,7 +94977,7 @@ exports.PublicKey = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePublicKey(); while (reader.pos < end) { @@ -98696,10 +94997,12 @@ exports.PublicKey = { return message; }, fromJSON(object) { - return { - ed25519: (0, helpers_1.isSet)(object.ed25519) ? (0, helpers_1.bytesFromBase64)(object.ed25519) : undefined, - secp256k1: (0, helpers_1.isSet)(object.secp256k1) ? (0, helpers_1.bytesFromBase64)(object.secp256k1) : undefined, - }; + const obj = createBasePublicKey(); + if ((0, helpers_1.isSet)(object.ed25519)) + obj.ed25519 = (0, helpers_1.bytesFromBase64)(object.ed25519); + if ((0, helpers_1.isSet)(object.secp256k1)) + obj.secp256k1 = (0, helpers_1.bytesFromBase64)(object.secp256k1); + return obj; }, toJSON(message) { const obj = {}; @@ -98728,49 +95031,27 @@ exports.PublicKey = { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.ProofOps = exports.ProofOp = exports.DominoOp = exports.ValueOp = exports.Proof = exports.protobufPackage = void 0; /* eslint-disable */ +const binary_1 = __webpack_require__(/*! ../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); exports.protobufPackage = "tendermint.crypto"; function createBaseProof() { return { - total: helpers_1.Long.ZERO, - index: helpers_1.Long.ZERO, + total: BigInt(0), + index: BigInt(0), leafHash: new Uint8Array(), aunts: [], }; } exports.Proof = { - encode(message, writer = _m0.Writer.create()) { - if (!message.total.isZero()) { + typeUrl: "/tendermint.crypto.Proof", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.total !== BigInt(0)) { writer.uint32(8).int64(message.total); } - if (!message.index.isZero()) { + if (message.index !== BigInt(0)) { writer.uint32(16).int64(message.index); } if (message.leafHash.length !== 0) { @@ -98782,7 +95063,7 @@ exports.Proof = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseProof(); while (reader.pos < end) { @@ -98808,17 +95089,21 @@ exports.Proof = { return message; }, fromJSON(object) { - return { - total: (0, helpers_1.isSet)(object.total) ? helpers_1.Long.fromValue(object.total) : helpers_1.Long.ZERO, - index: (0, helpers_1.isSet)(object.index) ? helpers_1.Long.fromValue(object.index) : helpers_1.Long.ZERO, - leafHash: (0, helpers_1.isSet)(object.leafHash) ? (0, helpers_1.bytesFromBase64)(object.leafHash) : new Uint8Array(), - aunts: Array.isArray(object?.aunts) ? object.aunts.map((e) => (0, helpers_1.bytesFromBase64)(e)) : [], - }; + const obj = createBaseProof(); + if ((0, helpers_1.isSet)(object.total)) + obj.total = BigInt(object.total.toString()); + if ((0, helpers_1.isSet)(object.index)) + obj.index = BigInt(object.index.toString()); + if ((0, helpers_1.isSet)(object.leafHash)) + obj.leafHash = (0, helpers_1.bytesFromBase64)(object.leafHash); + if (Array.isArray(object?.aunts)) + obj.aunts = object.aunts.map((e) => (0, helpers_1.bytesFromBase64)(e)); + return obj; }, toJSON(message) { const obj = {}; - message.total !== undefined && (obj.total = (message.total || helpers_1.Long.ZERO).toString()); - message.index !== undefined && (obj.index = (message.index || helpers_1.Long.ZERO).toString()); + message.total !== undefined && (obj.total = (message.total || BigInt(0)).toString()); + message.index !== undefined && (obj.index = (message.index || BigInt(0)).toString()); message.leafHash !== undefined && (obj.leafHash = (0, helpers_1.base64FromBytes)(message.leafHash !== undefined ? message.leafHash : new Uint8Array())); if (message.aunts) { @@ -98831,10 +95116,12 @@ exports.Proof = { }, fromPartial(object) { const message = createBaseProof(); - message.total = - object.total !== undefined && object.total !== null ? helpers_1.Long.fromValue(object.total) : helpers_1.Long.ZERO; - message.index = - object.index !== undefined && object.index !== null ? helpers_1.Long.fromValue(object.index) : helpers_1.Long.ZERO; + if (object.total !== undefined && object.total !== null) { + message.total = BigInt(object.total.toString()); + } + if (object.index !== undefined && object.index !== null) { + message.index = BigInt(object.index.toString()); + } message.leafHash = object.leafHash ?? new Uint8Array(); message.aunts = object.aunts?.map((e) => e) || []; return message; @@ -98847,7 +95134,8 @@ function createBaseValueOp() { }; } exports.ValueOp = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.crypto.ValueOp", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.key.length !== 0) { writer.uint32(10).bytes(message.key); } @@ -98857,7 +95145,7 @@ exports.ValueOp = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseValueOp(); while (reader.pos < end) { @@ -98877,10 +95165,12 @@ exports.ValueOp = { return message; }, fromJSON(object) { - return { - key: (0, helpers_1.isSet)(object.key) ? (0, helpers_1.bytesFromBase64)(object.key) : new Uint8Array(), - proof: (0, helpers_1.isSet)(object.proof) ? exports.Proof.fromJSON(object.proof) : undefined, - }; + const obj = createBaseValueOp(); + if ((0, helpers_1.isSet)(object.key)) + obj.key = (0, helpers_1.bytesFromBase64)(object.key); + if ((0, helpers_1.isSet)(object.proof)) + obj.proof = exports.Proof.fromJSON(object.proof); + return obj; }, toJSON(message) { const obj = {}; @@ -98892,8 +95182,9 @@ exports.ValueOp = { fromPartial(object) { const message = createBaseValueOp(); message.key = object.key ?? new Uint8Array(); - message.proof = - object.proof !== undefined && object.proof !== null ? exports.Proof.fromPartial(object.proof) : undefined; + if (object.proof !== undefined && object.proof !== null) { + message.proof = exports.Proof.fromPartial(object.proof); + } return message; }, }; @@ -98905,7 +95196,8 @@ function createBaseDominoOp() { }; } exports.DominoOp = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.crypto.DominoOp", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.key !== "") { writer.uint32(10).string(message.key); } @@ -98918,7 +95210,7 @@ exports.DominoOp = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDominoOp(); while (reader.pos < end) { @@ -98941,11 +95233,14 @@ exports.DominoOp = { return message; }, fromJSON(object) { - return { - key: (0, helpers_1.isSet)(object.key) ? String(object.key) : "", - input: (0, helpers_1.isSet)(object.input) ? String(object.input) : "", - output: (0, helpers_1.isSet)(object.output) ? String(object.output) : "", - }; + const obj = createBaseDominoOp(); + if ((0, helpers_1.isSet)(object.key)) + obj.key = String(object.key); + if ((0, helpers_1.isSet)(object.input)) + obj.input = String(object.input); + if ((0, helpers_1.isSet)(object.output)) + obj.output = String(object.output); + return obj; }, toJSON(message) { const obj = {}; @@ -98970,7 +95265,8 @@ function createBaseProofOp() { }; } exports.ProofOp = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.crypto.ProofOp", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.type !== "") { writer.uint32(10).string(message.type); } @@ -98983,7 +95279,7 @@ exports.ProofOp = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseProofOp(); while (reader.pos < end) { @@ -99006,11 +95302,14 @@ exports.ProofOp = { return message; }, fromJSON(object) { - return { - type: (0, helpers_1.isSet)(object.type) ? String(object.type) : "", - key: (0, helpers_1.isSet)(object.key) ? (0, helpers_1.bytesFromBase64)(object.key) : new Uint8Array(), - data: (0, helpers_1.isSet)(object.data) ? (0, helpers_1.bytesFromBase64)(object.data) : new Uint8Array(), - }; + const obj = createBaseProofOp(); + if ((0, helpers_1.isSet)(object.type)) + obj.type = String(object.type); + if ((0, helpers_1.isSet)(object.key)) + obj.key = (0, helpers_1.bytesFromBase64)(object.key); + if ((0, helpers_1.isSet)(object.data)) + obj.data = (0, helpers_1.bytesFromBase64)(object.data); + return obj; }, toJSON(message) { const obj = {}; @@ -99035,14 +95334,15 @@ function createBaseProofOps() { }; } exports.ProofOps = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.crypto.ProofOps", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.ops) { exports.ProofOp.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseProofOps(); while (reader.pos < end) { @@ -99059,9 +95359,10 @@ exports.ProofOps = { return message; }, fromJSON(object) { - return { - ops: Array.isArray(object?.ops) ? object.ops.map((e) => exports.ProofOp.fromJSON(e)) : [], - }; + const obj = createBaseProofOps(); + if (Array.isArray(object?.ops)) + obj.ops = object.ops.map((e) => exports.ProofOp.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -99091,47 +95392,25 @@ exports.ProofOps = { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Block = exports.protobufPackage = void 0; /* eslint-disable */ const types_1 = __webpack_require__(/*! ./types */ "./node_modules/cosmjs-types/tendermint/types/types.js"); const evidence_1 = __webpack_require__(/*! ./evidence */ "./node_modules/cosmjs-types/tendermint/types/evidence.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "tendermint.types"; function createBaseBlock() { return { - header: undefined, - data: undefined, - evidence: undefined, + header: types_1.Header.fromPartial({}), + data: types_1.Data.fromPartial({}), + evidence: evidence_1.EvidenceList.fromPartial({}), lastCommit: undefined, }; } exports.Block = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.types.Block", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.header !== undefined) { types_1.Header.encode(message.header, writer.uint32(10).fork()).ldelim(); } @@ -99147,7 +95426,7 @@ exports.Block = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseBlock(); while (reader.pos < end) { @@ -99173,12 +95452,16 @@ exports.Block = { return message; }, fromJSON(object) { - return { - header: (0, helpers_1.isSet)(object.header) ? types_1.Header.fromJSON(object.header) : undefined, - data: (0, helpers_1.isSet)(object.data) ? types_1.Data.fromJSON(object.data) : undefined, - evidence: (0, helpers_1.isSet)(object.evidence) ? evidence_1.EvidenceList.fromJSON(object.evidence) : undefined, - lastCommit: (0, helpers_1.isSet)(object.lastCommit) ? types_1.Commit.fromJSON(object.lastCommit) : undefined, - }; + const obj = createBaseBlock(); + if ((0, helpers_1.isSet)(object.header)) + obj.header = types_1.Header.fromJSON(object.header); + if ((0, helpers_1.isSet)(object.data)) + obj.data = types_1.Data.fromJSON(object.data); + if ((0, helpers_1.isSet)(object.evidence)) + obj.evidence = evidence_1.EvidenceList.fromJSON(object.evidence); + if ((0, helpers_1.isSet)(object.lastCommit)) + obj.lastCommit = types_1.Commit.fromJSON(object.lastCommit); + return obj; }, toJSON(message) { const obj = {}; @@ -99192,18 +95475,18 @@ exports.Block = { }, fromPartial(object) { const message = createBaseBlock(); - message.header = - object.header !== undefined && object.header !== null ? types_1.Header.fromPartial(object.header) : undefined; - message.data = - object.data !== undefined && object.data !== null ? types_1.Data.fromPartial(object.data) : undefined; - message.evidence = - object.evidence !== undefined && object.evidence !== null - ? evidence_1.EvidenceList.fromPartial(object.evidence) - : undefined; - message.lastCommit = - object.lastCommit !== undefined && object.lastCommit !== null - ? types_1.Commit.fromPartial(object.lastCommit) - : undefined; + if (object.header !== undefined && object.header !== null) { + message.header = types_1.Header.fromPartial(object.header); + } + if (object.data !== undefined && object.data !== null) { + message.data = types_1.Data.fromPartial(object.data); + } + if (object.evidence !== undefined && object.evidence !== null) { + message.evidence = evidence_1.EvidenceList.fromPartial(object.evidence); + } + if (object.lastCommit !== undefined && object.lastCommit !== null) { + message.lastCommit = types_1.Commit.fromPartial(object.lastCommit); + } return message; }, }; @@ -99219,36 +95502,13 @@ exports.Block = { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.EvidenceList = exports.LightClientAttackEvidence = exports.DuplicateVoteEvidence = exports.Evidence = exports.protobufPackage = void 0; /* eslint-disable */ const types_1 = __webpack_require__(/*! ./types */ "./node_modules/cosmjs-types/tendermint/types/types.js"); const timestamp_1 = __webpack_require__(/*! ../../google/protobuf/timestamp */ "./node_modules/cosmjs-types/google/protobuf/timestamp.js"); const validator_1 = __webpack_require__(/*! ./validator */ "./node_modules/cosmjs-types/tendermint/types/validator.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "tendermint.types"; function createBaseEvidence() { @@ -99258,7 +95518,8 @@ function createBaseEvidence() { }; } exports.Evidence = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.types.Evidence", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.duplicateVoteEvidence !== undefined) { exports.DuplicateVoteEvidence.encode(message.duplicateVoteEvidence, writer.uint32(10).fork()).ldelim(); } @@ -99268,7 +95529,7 @@ exports.Evidence = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseEvidence(); while (reader.pos < end) { @@ -99288,14 +95549,12 @@ exports.Evidence = { return message; }, fromJSON(object) { - return { - duplicateVoteEvidence: (0, helpers_1.isSet)(object.duplicateVoteEvidence) - ? exports.DuplicateVoteEvidence.fromJSON(object.duplicateVoteEvidence) - : undefined, - lightClientAttackEvidence: (0, helpers_1.isSet)(object.lightClientAttackEvidence) - ? exports.LightClientAttackEvidence.fromJSON(object.lightClientAttackEvidence) - : undefined, - }; + const obj = createBaseEvidence(); + if ((0, helpers_1.isSet)(object.duplicateVoteEvidence)) + obj.duplicateVoteEvidence = exports.DuplicateVoteEvidence.fromJSON(object.duplicateVoteEvidence); + if ((0, helpers_1.isSet)(object.lightClientAttackEvidence)) + obj.lightClientAttackEvidence = exports.LightClientAttackEvidence.fromJSON(object.lightClientAttackEvidence); + return obj; }, toJSON(message) { const obj = {}; @@ -99311,14 +95570,12 @@ exports.Evidence = { }, fromPartial(object) { const message = createBaseEvidence(); - message.duplicateVoteEvidence = - object.duplicateVoteEvidence !== undefined && object.duplicateVoteEvidence !== null - ? exports.DuplicateVoteEvidence.fromPartial(object.duplicateVoteEvidence) - : undefined; - message.lightClientAttackEvidence = - object.lightClientAttackEvidence !== undefined && object.lightClientAttackEvidence !== null - ? exports.LightClientAttackEvidence.fromPartial(object.lightClientAttackEvidence) - : undefined; + if (object.duplicateVoteEvidence !== undefined && object.duplicateVoteEvidence !== null) { + message.duplicateVoteEvidence = exports.DuplicateVoteEvidence.fromPartial(object.duplicateVoteEvidence); + } + if (object.lightClientAttackEvidence !== undefined && object.lightClientAttackEvidence !== null) { + message.lightClientAttackEvidence = exports.LightClientAttackEvidence.fromPartial(object.lightClientAttackEvidence); + } return message; }, }; @@ -99326,23 +95583,24 @@ function createBaseDuplicateVoteEvidence() { return { voteA: undefined, voteB: undefined, - totalVotingPower: helpers_1.Long.ZERO, - validatorPower: helpers_1.Long.ZERO, - timestamp: undefined, + totalVotingPower: BigInt(0), + validatorPower: BigInt(0), + timestamp: timestamp_1.Timestamp.fromPartial({}), }; } exports.DuplicateVoteEvidence = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.types.DuplicateVoteEvidence", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.voteA !== undefined) { types_1.Vote.encode(message.voteA, writer.uint32(10).fork()).ldelim(); } if (message.voteB !== undefined) { types_1.Vote.encode(message.voteB, writer.uint32(18).fork()).ldelim(); } - if (!message.totalVotingPower.isZero()) { + if (message.totalVotingPower !== BigInt(0)) { writer.uint32(24).int64(message.totalVotingPower); } - if (!message.validatorPower.isZero()) { + if (message.validatorPower !== BigInt(0)) { writer.uint32(32).int64(message.validatorPower); } if (message.timestamp !== undefined) { @@ -99351,7 +95609,7 @@ exports.DuplicateVoteEvidence = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseDuplicateVoteEvidence(); while (reader.pos < end) { @@ -99380,67 +95638,72 @@ exports.DuplicateVoteEvidence = { return message; }, fromJSON(object) { - return { - voteA: (0, helpers_1.isSet)(object.voteA) ? types_1.Vote.fromJSON(object.voteA) : undefined, - voteB: (0, helpers_1.isSet)(object.voteB) ? types_1.Vote.fromJSON(object.voteB) : undefined, - totalVotingPower: (0, helpers_1.isSet)(object.totalVotingPower) ? helpers_1.Long.fromValue(object.totalVotingPower) : helpers_1.Long.ZERO, - validatorPower: (0, helpers_1.isSet)(object.validatorPower) ? helpers_1.Long.fromValue(object.validatorPower) : helpers_1.Long.ZERO, - timestamp: (0, helpers_1.isSet)(object.timestamp) ? (0, helpers_1.fromJsonTimestamp)(object.timestamp) : undefined, - }; + const obj = createBaseDuplicateVoteEvidence(); + if ((0, helpers_1.isSet)(object.voteA)) + obj.voteA = types_1.Vote.fromJSON(object.voteA); + if ((0, helpers_1.isSet)(object.voteB)) + obj.voteB = types_1.Vote.fromJSON(object.voteB); + if ((0, helpers_1.isSet)(object.totalVotingPower)) + obj.totalVotingPower = BigInt(object.totalVotingPower.toString()); + if ((0, helpers_1.isSet)(object.validatorPower)) + obj.validatorPower = BigInt(object.validatorPower.toString()); + if ((0, helpers_1.isSet)(object.timestamp)) + obj.timestamp = (0, helpers_1.fromJsonTimestamp)(object.timestamp); + return obj; }, toJSON(message) { const obj = {}; message.voteA !== undefined && (obj.voteA = message.voteA ? types_1.Vote.toJSON(message.voteA) : undefined); message.voteB !== undefined && (obj.voteB = message.voteB ? types_1.Vote.toJSON(message.voteB) : undefined); message.totalVotingPower !== undefined && - (obj.totalVotingPower = (message.totalVotingPower || helpers_1.Long.ZERO).toString()); + (obj.totalVotingPower = (message.totalVotingPower || BigInt(0)).toString()); message.validatorPower !== undefined && - (obj.validatorPower = (message.validatorPower || helpers_1.Long.ZERO).toString()); + (obj.validatorPower = (message.validatorPower || BigInt(0)).toString()); message.timestamp !== undefined && (obj.timestamp = (0, helpers_1.fromTimestamp)(message.timestamp).toISOString()); return obj; }, fromPartial(object) { const message = createBaseDuplicateVoteEvidence(); - message.voteA = - object.voteA !== undefined && object.voteA !== null ? types_1.Vote.fromPartial(object.voteA) : undefined; - message.voteB = - object.voteB !== undefined && object.voteB !== null ? types_1.Vote.fromPartial(object.voteB) : undefined; - message.totalVotingPower = - object.totalVotingPower !== undefined && object.totalVotingPower !== null - ? helpers_1.Long.fromValue(object.totalVotingPower) - : helpers_1.Long.ZERO; - message.validatorPower = - object.validatorPower !== undefined && object.validatorPower !== null - ? helpers_1.Long.fromValue(object.validatorPower) - : helpers_1.Long.ZERO; - message.timestamp = - object.timestamp !== undefined && object.timestamp !== null - ? timestamp_1.Timestamp.fromPartial(object.timestamp) - : undefined; + if (object.voteA !== undefined && object.voteA !== null) { + message.voteA = types_1.Vote.fromPartial(object.voteA); + } + if (object.voteB !== undefined && object.voteB !== null) { + message.voteB = types_1.Vote.fromPartial(object.voteB); + } + if (object.totalVotingPower !== undefined && object.totalVotingPower !== null) { + message.totalVotingPower = BigInt(object.totalVotingPower.toString()); + } + if (object.validatorPower !== undefined && object.validatorPower !== null) { + message.validatorPower = BigInt(object.validatorPower.toString()); + } + if (object.timestamp !== undefined && object.timestamp !== null) { + message.timestamp = timestamp_1.Timestamp.fromPartial(object.timestamp); + } return message; }, }; function createBaseLightClientAttackEvidence() { return { conflictingBlock: undefined, - commonHeight: helpers_1.Long.ZERO, + commonHeight: BigInt(0), byzantineValidators: [], - totalVotingPower: helpers_1.Long.ZERO, - timestamp: undefined, + totalVotingPower: BigInt(0), + timestamp: timestamp_1.Timestamp.fromPartial({}), }; } exports.LightClientAttackEvidence = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.types.LightClientAttackEvidence", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.conflictingBlock !== undefined) { types_1.LightBlock.encode(message.conflictingBlock, writer.uint32(10).fork()).ldelim(); } - if (!message.commonHeight.isZero()) { + if (message.commonHeight !== BigInt(0)) { writer.uint32(16).int64(message.commonHeight); } for (const v of message.byzantineValidators) { validator_1.Validator.encode(v, writer.uint32(26).fork()).ldelim(); } - if (!message.totalVotingPower.isZero()) { + if (message.totalVotingPower !== BigInt(0)) { writer.uint32(32).int64(message.totalVotingPower); } if (message.timestamp !== undefined) { @@ -99449,7 +95712,7 @@ exports.LightClientAttackEvidence = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseLightClientAttackEvidence(); while (reader.pos < end) { @@ -99478,17 +95741,18 @@ exports.LightClientAttackEvidence = { return message; }, fromJSON(object) { - return { - conflictingBlock: (0, helpers_1.isSet)(object.conflictingBlock) - ? types_1.LightBlock.fromJSON(object.conflictingBlock) - : undefined, - commonHeight: (0, helpers_1.isSet)(object.commonHeight) ? helpers_1.Long.fromValue(object.commonHeight) : helpers_1.Long.ZERO, - byzantineValidators: Array.isArray(object?.byzantineValidators) - ? object.byzantineValidators.map((e) => validator_1.Validator.fromJSON(e)) - : [], - totalVotingPower: (0, helpers_1.isSet)(object.totalVotingPower) ? helpers_1.Long.fromValue(object.totalVotingPower) : helpers_1.Long.ZERO, - timestamp: (0, helpers_1.isSet)(object.timestamp) ? (0, helpers_1.fromJsonTimestamp)(object.timestamp) : undefined, - }; + const obj = createBaseLightClientAttackEvidence(); + if ((0, helpers_1.isSet)(object.conflictingBlock)) + obj.conflictingBlock = types_1.LightBlock.fromJSON(object.conflictingBlock); + if ((0, helpers_1.isSet)(object.commonHeight)) + obj.commonHeight = BigInt(object.commonHeight.toString()); + if (Array.isArray(object?.byzantineValidators)) + obj.byzantineValidators = object.byzantineValidators.map((e) => validator_1.Validator.fromJSON(e)); + if ((0, helpers_1.isSet)(object.totalVotingPower)) + obj.totalVotingPower = BigInt(object.totalVotingPower.toString()); + if ((0, helpers_1.isSet)(object.timestamp)) + obj.timestamp = (0, helpers_1.fromJsonTimestamp)(object.timestamp); + return obj; }, toJSON(message) { const obj = {}; @@ -99496,7 +95760,7 @@ exports.LightClientAttackEvidence = { (obj.conflictingBlock = message.conflictingBlock ? types_1.LightBlock.toJSON(message.conflictingBlock) : undefined); - message.commonHeight !== undefined && (obj.commonHeight = (message.commonHeight || helpers_1.Long.ZERO).toString()); + message.commonHeight !== undefined && (obj.commonHeight = (message.commonHeight || BigInt(0)).toString()); if (message.byzantineValidators) { obj.byzantineValidators = message.byzantineValidators.map((e) => (e ? validator_1.Validator.toJSON(e) : undefined)); } @@ -99504,29 +95768,25 @@ exports.LightClientAttackEvidence = { obj.byzantineValidators = []; } message.totalVotingPower !== undefined && - (obj.totalVotingPower = (message.totalVotingPower || helpers_1.Long.ZERO).toString()); + (obj.totalVotingPower = (message.totalVotingPower || BigInt(0)).toString()); message.timestamp !== undefined && (obj.timestamp = (0, helpers_1.fromTimestamp)(message.timestamp).toISOString()); return obj; }, fromPartial(object) { const message = createBaseLightClientAttackEvidence(); - message.conflictingBlock = - object.conflictingBlock !== undefined && object.conflictingBlock !== null - ? types_1.LightBlock.fromPartial(object.conflictingBlock) - : undefined; - message.commonHeight = - object.commonHeight !== undefined && object.commonHeight !== null - ? helpers_1.Long.fromValue(object.commonHeight) - : helpers_1.Long.ZERO; + if (object.conflictingBlock !== undefined && object.conflictingBlock !== null) { + message.conflictingBlock = types_1.LightBlock.fromPartial(object.conflictingBlock); + } + if (object.commonHeight !== undefined && object.commonHeight !== null) { + message.commonHeight = BigInt(object.commonHeight.toString()); + } message.byzantineValidators = object.byzantineValidators?.map((e) => validator_1.Validator.fromPartial(e)) || []; - message.totalVotingPower = - object.totalVotingPower !== undefined && object.totalVotingPower !== null - ? helpers_1.Long.fromValue(object.totalVotingPower) - : helpers_1.Long.ZERO; - message.timestamp = - object.timestamp !== undefined && object.timestamp !== null - ? timestamp_1.Timestamp.fromPartial(object.timestamp) - : undefined; + if (object.totalVotingPower !== undefined && object.totalVotingPower !== null) { + message.totalVotingPower = BigInt(object.totalVotingPower.toString()); + } + if (object.timestamp !== undefined && object.timestamp !== null) { + message.timestamp = timestamp_1.Timestamp.fromPartial(object.timestamp); + } return message; }, }; @@ -99536,14 +95796,15 @@ function createBaseEvidenceList() { }; } exports.EvidenceList = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.types.EvidenceList", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.evidence) { exports.Evidence.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseEvidenceList(); while (reader.pos < end) { @@ -99560,9 +95821,10 @@ exports.EvidenceList = { return message; }, fromJSON(object) { - return { - evidence: Array.isArray(object?.evidence) ? object.evidence.map((e) => exports.Evidence.fromJSON(e)) : [], - }; + const obj = createBaseEvidenceList(); + if (Array.isArray(object?.evidence)) + obj.evidence = object.evidence.map((e) => exports.Evidence.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -99592,34 +95854,11 @@ exports.EvidenceList = { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.HashedParams = exports.VersionParams = exports.ValidatorParams = exports.EvidenceParams = exports.BlockParams = exports.ConsensusParams = exports.protobufPackage = void 0; /* eslint-disable */ const duration_1 = __webpack_require__(/*! ../../google/protobuf/duration */ "./node_modules/cosmjs-types/google/protobuf/duration.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "tendermint.types"; function createBaseConsensusParams() { @@ -99631,7 +95870,8 @@ function createBaseConsensusParams() { }; } exports.ConsensusParams = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.types.ConsensusParams", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.block !== undefined) { exports.BlockParams.encode(message.block, writer.uint32(10).fork()).ldelim(); } @@ -99647,7 +95887,7 @@ exports.ConsensusParams = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseConsensusParams(); while (reader.pos < end) { @@ -99673,12 +95913,16 @@ exports.ConsensusParams = { return message; }, fromJSON(object) { - return { - block: (0, helpers_1.isSet)(object.block) ? exports.BlockParams.fromJSON(object.block) : undefined, - evidence: (0, helpers_1.isSet)(object.evidence) ? exports.EvidenceParams.fromJSON(object.evidence) : undefined, - validator: (0, helpers_1.isSet)(object.validator) ? exports.ValidatorParams.fromJSON(object.validator) : undefined, - version: (0, helpers_1.isSet)(object.version) ? exports.VersionParams.fromJSON(object.version) : undefined, - }; + const obj = createBaseConsensusParams(); + if ((0, helpers_1.isSet)(object.block)) + obj.block = exports.BlockParams.fromJSON(object.block); + if ((0, helpers_1.isSet)(object.evidence)) + obj.evidence = exports.EvidenceParams.fromJSON(object.evidence); + if ((0, helpers_1.isSet)(object.validator)) + obj.validator = exports.ValidatorParams.fromJSON(object.validator); + if ((0, helpers_1.isSet)(object.version)) + obj.version = exports.VersionParams.fromJSON(object.version); + return obj; }, toJSON(message) { const obj = {}; @@ -99694,45 +95938,40 @@ exports.ConsensusParams = { }, fromPartial(object) { const message = createBaseConsensusParams(); - message.block = - object.block !== undefined && object.block !== null ? exports.BlockParams.fromPartial(object.block) : undefined; - message.evidence = - object.evidence !== undefined && object.evidence !== null - ? exports.EvidenceParams.fromPartial(object.evidence) - : undefined; - message.validator = - object.validator !== undefined && object.validator !== null - ? exports.ValidatorParams.fromPartial(object.validator) - : undefined; - message.version = - object.version !== undefined && object.version !== null - ? exports.VersionParams.fromPartial(object.version) - : undefined; + if (object.block !== undefined && object.block !== null) { + message.block = exports.BlockParams.fromPartial(object.block); + } + if (object.evidence !== undefined && object.evidence !== null) { + message.evidence = exports.EvidenceParams.fromPartial(object.evidence); + } + if (object.validator !== undefined && object.validator !== null) { + message.validator = exports.ValidatorParams.fromPartial(object.validator); + } + if (object.version !== undefined && object.version !== null) { + message.version = exports.VersionParams.fromPartial(object.version); + } return message; }, }; function createBaseBlockParams() { return { - maxBytes: helpers_1.Long.ZERO, - maxGas: helpers_1.Long.ZERO, - timeIotaMs: helpers_1.Long.ZERO, + maxBytes: BigInt(0), + maxGas: BigInt(0), }; } exports.BlockParams = { - encode(message, writer = _m0.Writer.create()) { - if (!message.maxBytes.isZero()) { + typeUrl: "/tendermint.types.BlockParams", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.maxBytes !== BigInt(0)) { writer.uint32(8).int64(message.maxBytes); } - if (!message.maxGas.isZero()) { + if (message.maxGas !== BigInt(0)) { writer.uint32(16).int64(message.maxGas); } - if (!message.timeIotaMs.isZero()) { - writer.uint32(24).int64(message.timeIotaMs); - } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseBlockParams(); while (reader.pos < end) { @@ -99744,9 +95983,6 @@ exports.BlockParams = { case 2: message.maxGas = reader.int64(); break; - case 3: - message.timeIotaMs = reader.int64(); - break; default: reader.skipType(tag & 7); break; @@ -99755,54 +95991,53 @@ exports.BlockParams = { return message; }, fromJSON(object) { - return { - maxBytes: (0, helpers_1.isSet)(object.maxBytes) ? helpers_1.Long.fromValue(object.maxBytes) : helpers_1.Long.ZERO, - maxGas: (0, helpers_1.isSet)(object.maxGas) ? helpers_1.Long.fromValue(object.maxGas) : helpers_1.Long.ZERO, - timeIotaMs: (0, helpers_1.isSet)(object.timeIotaMs) ? helpers_1.Long.fromValue(object.timeIotaMs) : helpers_1.Long.ZERO, - }; + const obj = createBaseBlockParams(); + if ((0, helpers_1.isSet)(object.maxBytes)) + obj.maxBytes = BigInt(object.maxBytes.toString()); + if ((0, helpers_1.isSet)(object.maxGas)) + obj.maxGas = BigInt(object.maxGas.toString()); + return obj; }, toJSON(message) { const obj = {}; - message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || helpers_1.Long.ZERO).toString()); - message.maxGas !== undefined && (obj.maxGas = (message.maxGas || helpers_1.Long.ZERO).toString()); - message.timeIotaMs !== undefined && (obj.timeIotaMs = (message.timeIotaMs || helpers_1.Long.ZERO).toString()); + message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || BigInt(0)).toString()); + message.maxGas !== undefined && (obj.maxGas = (message.maxGas || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseBlockParams(); - message.maxBytes = - object.maxBytes !== undefined && object.maxBytes !== null ? helpers_1.Long.fromValue(object.maxBytes) : helpers_1.Long.ZERO; - message.maxGas = - object.maxGas !== undefined && object.maxGas !== null ? helpers_1.Long.fromValue(object.maxGas) : helpers_1.Long.ZERO; - message.timeIotaMs = - object.timeIotaMs !== undefined && object.timeIotaMs !== null - ? helpers_1.Long.fromValue(object.timeIotaMs) - : helpers_1.Long.ZERO; + if (object.maxBytes !== undefined && object.maxBytes !== null) { + message.maxBytes = BigInt(object.maxBytes.toString()); + } + if (object.maxGas !== undefined && object.maxGas !== null) { + message.maxGas = BigInt(object.maxGas.toString()); + } return message; }, }; function createBaseEvidenceParams() { return { - maxAgeNumBlocks: helpers_1.Long.ZERO, - maxAgeDuration: undefined, - maxBytes: helpers_1.Long.ZERO, + maxAgeNumBlocks: BigInt(0), + maxAgeDuration: duration_1.Duration.fromPartial({}), + maxBytes: BigInt(0), }; } exports.EvidenceParams = { - encode(message, writer = _m0.Writer.create()) { - if (!message.maxAgeNumBlocks.isZero()) { + typeUrl: "/tendermint.types.EvidenceParams", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.maxAgeNumBlocks !== BigInt(0)) { writer.uint32(8).int64(message.maxAgeNumBlocks); } if (message.maxAgeDuration !== undefined) { duration_1.Duration.encode(message.maxAgeDuration, writer.uint32(18).fork()).ldelim(); } - if (!message.maxBytes.isZero()) { + if (message.maxBytes !== BigInt(0)) { writer.uint32(24).int64(message.maxBytes); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseEvidenceParams(); while (reader.pos < end) { @@ -99825,33 +96060,35 @@ exports.EvidenceParams = { return message; }, fromJSON(object) { - return { - maxAgeNumBlocks: (0, helpers_1.isSet)(object.maxAgeNumBlocks) ? helpers_1.Long.fromValue(object.maxAgeNumBlocks) : helpers_1.Long.ZERO, - maxAgeDuration: (0, helpers_1.isSet)(object.maxAgeDuration) ? duration_1.Duration.fromJSON(object.maxAgeDuration) : undefined, - maxBytes: (0, helpers_1.isSet)(object.maxBytes) ? helpers_1.Long.fromValue(object.maxBytes) : helpers_1.Long.ZERO, - }; + const obj = createBaseEvidenceParams(); + if ((0, helpers_1.isSet)(object.maxAgeNumBlocks)) + obj.maxAgeNumBlocks = BigInt(object.maxAgeNumBlocks.toString()); + if ((0, helpers_1.isSet)(object.maxAgeDuration)) + obj.maxAgeDuration = duration_1.Duration.fromJSON(object.maxAgeDuration); + if ((0, helpers_1.isSet)(object.maxBytes)) + obj.maxBytes = BigInt(object.maxBytes.toString()); + return obj; }, toJSON(message) { const obj = {}; message.maxAgeNumBlocks !== undefined && - (obj.maxAgeNumBlocks = (message.maxAgeNumBlocks || helpers_1.Long.ZERO).toString()); + (obj.maxAgeNumBlocks = (message.maxAgeNumBlocks || BigInt(0)).toString()); message.maxAgeDuration !== undefined && (obj.maxAgeDuration = message.maxAgeDuration ? duration_1.Duration.toJSON(message.maxAgeDuration) : undefined); - message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || helpers_1.Long.ZERO).toString()); + message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseEvidenceParams(); - message.maxAgeNumBlocks = - object.maxAgeNumBlocks !== undefined && object.maxAgeNumBlocks !== null - ? helpers_1.Long.fromValue(object.maxAgeNumBlocks) - : helpers_1.Long.ZERO; - message.maxAgeDuration = - object.maxAgeDuration !== undefined && object.maxAgeDuration !== null - ? duration_1.Duration.fromPartial(object.maxAgeDuration) - : undefined; - message.maxBytes = - object.maxBytes !== undefined && object.maxBytes !== null ? helpers_1.Long.fromValue(object.maxBytes) : helpers_1.Long.ZERO; + if (object.maxAgeNumBlocks !== undefined && object.maxAgeNumBlocks !== null) { + message.maxAgeNumBlocks = BigInt(object.maxAgeNumBlocks.toString()); + } + if (object.maxAgeDuration !== undefined && object.maxAgeDuration !== null) { + message.maxAgeDuration = duration_1.Duration.fromPartial(object.maxAgeDuration); + } + if (object.maxBytes !== undefined && object.maxBytes !== null) { + message.maxBytes = BigInt(object.maxBytes.toString()); + } return message; }, }; @@ -99861,14 +96098,15 @@ function createBaseValidatorParams() { }; } exports.ValidatorParams = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.types.ValidatorParams", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.pubKeyTypes) { writer.uint32(10).string(v); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseValidatorParams(); while (reader.pos < end) { @@ -99885,9 +96123,10 @@ exports.ValidatorParams = { return message; }, fromJSON(object) { - return { - pubKeyTypes: Array.isArray(object?.pubKeyTypes) ? object.pubKeyTypes.map((e) => String(e)) : [], - }; + const obj = createBaseValidatorParams(); + if (Array.isArray(object?.pubKeyTypes)) + obj.pubKeyTypes = object.pubKeyTypes.map((e) => String(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -99907,25 +96146,26 @@ exports.ValidatorParams = { }; function createBaseVersionParams() { return { - appVersion: helpers_1.Long.UZERO, + app: BigInt(0), }; } exports.VersionParams = { - encode(message, writer = _m0.Writer.create()) { - if (!message.appVersion.isZero()) { - writer.uint32(8).uint64(message.appVersion); + typeUrl: "/tendermint.types.VersionParams", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.app !== BigInt(0)) { + writer.uint32(8).uint64(message.app); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseVersionParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.appVersion = reader.uint64(); + message.app = reader.uint64(); break; default: reader.skipType(tag & 7); @@ -99935,42 +96175,43 @@ exports.VersionParams = { return message; }, fromJSON(object) { - return { - appVersion: (0, helpers_1.isSet)(object.appVersion) ? helpers_1.Long.fromValue(object.appVersion) : helpers_1.Long.UZERO, - }; + const obj = createBaseVersionParams(); + if ((0, helpers_1.isSet)(object.app)) + obj.app = BigInt(object.app.toString()); + return obj; }, toJSON(message) { const obj = {}; - message.appVersion !== undefined && (obj.appVersion = (message.appVersion || helpers_1.Long.UZERO).toString()); + message.app !== undefined && (obj.app = (message.app || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseVersionParams(); - message.appVersion = - object.appVersion !== undefined && object.appVersion !== null - ? helpers_1.Long.fromValue(object.appVersion) - : helpers_1.Long.UZERO; + if (object.app !== undefined && object.app !== null) { + message.app = BigInt(object.app.toString()); + } return message; }, }; function createBaseHashedParams() { return { - blockMaxBytes: helpers_1.Long.ZERO, - blockMaxGas: helpers_1.Long.ZERO, + blockMaxBytes: BigInt(0), + blockMaxGas: BigInt(0), }; } exports.HashedParams = { - encode(message, writer = _m0.Writer.create()) { - if (!message.blockMaxBytes.isZero()) { + typeUrl: "/tendermint.types.HashedParams", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.blockMaxBytes !== BigInt(0)) { writer.uint32(8).int64(message.blockMaxBytes); } - if (!message.blockMaxGas.isZero()) { + if (message.blockMaxGas !== BigInt(0)) { writer.uint32(16).int64(message.blockMaxGas); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseHashedParams(); while (reader.pos < end) { @@ -99990,28 +96231,28 @@ exports.HashedParams = { return message; }, fromJSON(object) { - return { - blockMaxBytes: (0, helpers_1.isSet)(object.blockMaxBytes) ? helpers_1.Long.fromValue(object.blockMaxBytes) : helpers_1.Long.ZERO, - blockMaxGas: (0, helpers_1.isSet)(object.blockMaxGas) ? helpers_1.Long.fromValue(object.blockMaxGas) : helpers_1.Long.ZERO, - }; + const obj = createBaseHashedParams(); + if ((0, helpers_1.isSet)(object.blockMaxBytes)) + obj.blockMaxBytes = BigInt(object.blockMaxBytes.toString()); + if ((0, helpers_1.isSet)(object.blockMaxGas)) + obj.blockMaxGas = BigInt(object.blockMaxGas.toString()); + return obj; }, toJSON(message) { const obj = {}; message.blockMaxBytes !== undefined && - (obj.blockMaxBytes = (message.blockMaxBytes || helpers_1.Long.ZERO).toString()); - message.blockMaxGas !== undefined && (obj.blockMaxGas = (message.blockMaxGas || helpers_1.Long.ZERO).toString()); + (obj.blockMaxBytes = (message.blockMaxBytes || BigInt(0)).toString()); + message.blockMaxGas !== undefined && (obj.blockMaxGas = (message.blockMaxGas || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseHashedParams(); - message.blockMaxBytes = - object.blockMaxBytes !== undefined && object.blockMaxBytes !== null - ? helpers_1.Long.fromValue(object.blockMaxBytes) - : helpers_1.Long.ZERO; - message.blockMaxGas = - object.blockMaxGas !== undefined && object.blockMaxGas !== null - ? helpers_1.Long.fromValue(object.blockMaxGas) - : helpers_1.Long.ZERO; + if (object.blockMaxBytes !== undefined && object.blockMaxBytes !== null) { + message.blockMaxBytes = BigInt(object.blockMaxBytes.toString()); + } + if (object.blockMaxGas !== undefined && object.blockMaxGas !== null) { + message.blockMaxGas = BigInt(object.blockMaxGas.toString()); + } return message; }, }; @@ -100027,29 +96268,6 @@ exports.HashedParams = { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.TxProof = exports.BlockMeta = exports.LightBlock = exports.SignedHeader = exports.Proposal = exports.CommitSig = exports.Commit = exports.Vote = exports.Data = exports.Header = exports.BlockID = exports.Part = exports.PartSetHeader = exports.signedMsgTypeToJSON = exports.signedMsgTypeFromJSON = exports.SignedMsgType = exports.blockIDFlagToJSON = exports.blockIDFlagFromJSON = exports.BlockIDFlag = exports.protobufPackage = void 0; /* eslint-disable */ @@ -100057,7 +96275,7 @@ const proof_1 = __webpack_require__(/*! ../crypto/proof */ "./node_modules/cosmj const types_1 = __webpack_require__(/*! ../version/types */ "./node_modules/cosmjs-types/tendermint/version/types.js"); const timestamp_1 = __webpack_require__(/*! ../../google/protobuf/timestamp */ "./node_modules/cosmjs-types/google/protobuf/timestamp.js"); const validator_1 = __webpack_require__(/*! ./validator */ "./node_modules/cosmjs-types/tendermint/types/validator.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const binary_1 = __webpack_require__(/*! ../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/cosmjs-types/helpers.js"); exports.protobufPackage = "tendermint.types"; /** BlockIdFlag indicates which BlcokID the signature is for */ @@ -100068,7 +96286,7 @@ var BlockIDFlag; BlockIDFlag[BlockIDFlag["BLOCK_ID_FLAG_COMMIT"] = 2] = "BLOCK_ID_FLAG_COMMIT"; BlockIDFlag[BlockIDFlag["BLOCK_ID_FLAG_NIL"] = 3] = "BLOCK_ID_FLAG_NIL"; BlockIDFlag[BlockIDFlag["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(BlockIDFlag = exports.BlockIDFlag || (exports.BlockIDFlag = {})); +})(BlockIDFlag || (exports.BlockIDFlag = BlockIDFlag = {})); function blockIDFlagFromJSON(object) { switch (object) { case 0: @@ -100116,7 +96334,7 @@ var SignedMsgType; /** SIGNED_MSG_TYPE_PROPOSAL - Proposals */ SignedMsgType[SignedMsgType["SIGNED_MSG_TYPE_PROPOSAL"] = 32] = "SIGNED_MSG_TYPE_PROPOSAL"; SignedMsgType[SignedMsgType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(SignedMsgType = exports.SignedMsgType || (exports.SignedMsgType = {})); +})(SignedMsgType || (exports.SignedMsgType = SignedMsgType = {})); function signedMsgTypeFromJSON(object) { switch (object) { case 0: @@ -100161,7 +96379,8 @@ function createBasePartSetHeader() { }; } exports.PartSetHeader = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.types.PartSetHeader", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.total !== 0) { writer.uint32(8).uint32(message.total); } @@ -100171,7 +96390,7 @@ exports.PartSetHeader = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePartSetHeader(); while (reader.pos < end) { @@ -100191,10 +96410,12 @@ exports.PartSetHeader = { return message; }, fromJSON(object) { - return { - total: (0, helpers_1.isSet)(object.total) ? Number(object.total) : 0, - hash: (0, helpers_1.isSet)(object.hash) ? (0, helpers_1.bytesFromBase64)(object.hash) : new Uint8Array(), - }; + const obj = createBasePartSetHeader(); + if ((0, helpers_1.isSet)(object.total)) + obj.total = Number(object.total); + if ((0, helpers_1.isSet)(object.hash)) + obj.hash = (0, helpers_1.bytesFromBase64)(object.hash); + return obj; }, toJSON(message) { const obj = {}; @@ -100214,11 +96435,12 @@ function createBasePart() { return { index: 0, bytes: new Uint8Array(), - proof: undefined, + proof: proof_1.Proof.fromPartial({}), }; } exports.Part = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.types.Part", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.index !== 0) { writer.uint32(8).uint32(message.index); } @@ -100231,7 +96453,7 @@ exports.Part = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePart(); while (reader.pos < end) { @@ -100254,11 +96476,14 @@ exports.Part = { return message; }, fromJSON(object) { - return { - index: (0, helpers_1.isSet)(object.index) ? Number(object.index) : 0, - bytes: (0, helpers_1.isSet)(object.bytes) ? (0, helpers_1.bytesFromBase64)(object.bytes) : new Uint8Array(), - proof: (0, helpers_1.isSet)(object.proof) ? proof_1.Proof.fromJSON(object.proof) : undefined, - }; + const obj = createBasePart(); + if ((0, helpers_1.isSet)(object.index)) + obj.index = Number(object.index); + if ((0, helpers_1.isSet)(object.bytes)) + obj.bytes = (0, helpers_1.bytesFromBase64)(object.bytes); + if ((0, helpers_1.isSet)(object.proof)) + obj.proof = proof_1.Proof.fromJSON(object.proof); + return obj; }, toJSON(message) { const obj = {}; @@ -100272,19 +96497,21 @@ exports.Part = { const message = createBasePart(); message.index = object.index ?? 0; message.bytes = object.bytes ?? new Uint8Array(); - message.proof = - object.proof !== undefined && object.proof !== null ? proof_1.Proof.fromPartial(object.proof) : undefined; + if (object.proof !== undefined && object.proof !== null) { + message.proof = proof_1.Proof.fromPartial(object.proof); + } return message; }, }; function createBaseBlockID() { return { hash: new Uint8Array(), - partSetHeader: undefined, + partSetHeader: exports.PartSetHeader.fromPartial({}), }; } exports.BlockID = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.types.BlockID", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.hash.length !== 0) { writer.uint32(10).bytes(message.hash); } @@ -100294,7 +96521,7 @@ exports.BlockID = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseBlockID(); while (reader.pos < end) { @@ -100314,10 +96541,12 @@ exports.BlockID = { return message; }, fromJSON(object) { - return { - hash: (0, helpers_1.isSet)(object.hash) ? (0, helpers_1.bytesFromBase64)(object.hash) : new Uint8Array(), - partSetHeader: (0, helpers_1.isSet)(object.partSetHeader) ? exports.PartSetHeader.fromJSON(object.partSetHeader) : undefined, - }; + const obj = createBaseBlockID(); + if ((0, helpers_1.isSet)(object.hash)) + obj.hash = (0, helpers_1.bytesFromBase64)(object.hash); + if ((0, helpers_1.isSet)(object.partSetHeader)) + obj.partSetHeader = exports.PartSetHeader.fromJSON(object.partSetHeader); + return obj; }, toJSON(message) { const obj = {}; @@ -100330,20 +96559,19 @@ exports.BlockID = { fromPartial(object) { const message = createBaseBlockID(); message.hash = object.hash ?? new Uint8Array(); - message.partSetHeader = - object.partSetHeader !== undefined && object.partSetHeader !== null - ? exports.PartSetHeader.fromPartial(object.partSetHeader) - : undefined; + if (object.partSetHeader !== undefined && object.partSetHeader !== null) { + message.partSetHeader = exports.PartSetHeader.fromPartial(object.partSetHeader); + } return message; }, }; function createBaseHeader() { return { - version: undefined, + version: types_1.Consensus.fromPartial({}), chainId: "", - height: helpers_1.Long.ZERO, - time: undefined, - lastBlockId: undefined, + height: BigInt(0), + time: timestamp_1.Timestamp.fromPartial({}), + lastBlockId: exports.BlockID.fromPartial({}), lastCommitHash: new Uint8Array(), dataHash: new Uint8Array(), validatorsHash: new Uint8Array(), @@ -100356,14 +96584,15 @@ function createBaseHeader() { }; } exports.Header = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.types.Header", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.version !== undefined) { types_1.Consensus.encode(message.version, writer.uint32(10).fork()).ldelim(); } if (message.chainId !== "") { writer.uint32(18).string(message.chainId); } - if (!message.height.isZero()) { + if (message.height !== BigInt(0)) { writer.uint32(24).int64(message.height); } if (message.time !== undefined) { @@ -100402,7 +96631,7 @@ exports.Header = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseHeader(); while (reader.pos < end) { @@ -100458,39 +96687,43 @@ exports.Header = { return message; }, fromJSON(object) { - return { - version: (0, helpers_1.isSet)(object.version) ? types_1.Consensus.fromJSON(object.version) : undefined, - chainId: (0, helpers_1.isSet)(object.chainId) ? String(object.chainId) : "", - height: (0, helpers_1.isSet)(object.height) ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO, - time: (0, helpers_1.isSet)(object.time) ? (0, helpers_1.fromJsonTimestamp)(object.time) : undefined, - lastBlockId: (0, helpers_1.isSet)(object.lastBlockId) ? exports.BlockID.fromJSON(object.lastBlockId) : undefined, - lastCommitHash: (0, helpers_1.isSet)(object.lastCommitHash) - ? (0, helpers_1.bytesFromBase64)(object.lastCommitHash) - : new Uint8Array(), - dataHash: (0, helpers_1.isSet)(object.dataHash) ? (0, helpers_1.bytesFromBase64)(object.dataHash) : new Uint8Array(), - validatorsHash: (0, helpers_1.isSet)(object.validatorsHash) - ? (0, helpers_1.bytesFromBase64)(object.validatorsHash) - : new Uint8Array(), - nextValidatorsHash: (0, helpers_1.isSet)(object.nextValidatorsHash) - ? (0, helpers_1.bytesFromBase64)(object.nextValidatorsHash) - : new Uint8Array(), - consensusHash: (0, helpers_1.isSet)(object.consensusHash) ? (0, helpers_1.bytesFromBase64)(object.consensusHash) : new Uint8Array(), - appHash: (0, helpers_1.isSet)(object.appHash) ? (0, helpers_1.bytesFromBase64)(object.appHash) : new Uint8Array(), - lastResultsHash: (0, helpers_1.isSet)(object.lastResultsHash) - ? (0, helpers_1.bytesFromBase64)(object.lastResultsHash) - : new Uint8Array(), - evidenceHash: (0, helpers_1.isSet)(object.evidenceHash) ? (0, helpers_1.bytesFromBase64)(object.evidenceHash) : new Uint8Array(), - proposerAddress: (0, helpers_1.isSet)(object.proposerAddress) - ? (0, helpers_1.bytesFromBase64)(object.proposerAddress) - : new Uint8Array(), - }; + const obj = createBaseHeader(); + if ((0, helpers_1.isSet)(object.version)) + obj.version = types_1.Consensus.fromJSON(object.version); + if ((0, helpers_1.isSet)(object.chainId)) + obj.chainId = String(object.chainId); + if ((0, helpers_1.isSet)(object.height)) + obj.height = BigInt(object.height.toString()); + if ((0, helpers_1.isSet)(object.time)) + obj.time = (0, helpers_1.fromJsonTimestamp)(object.time); + if ((0, helpers_1.isSet)(object.lastBlockId)) + obj.lastBlockId = exports.BlockID.fromJSON(object.lastBlockId); + if ((0, helpers_1.isSet)(object.lastCommitHash)) + obj.lastCommitHash = (0, helpers_1.bytesFromBase64)(object.lastCommitHash); + if ((0, helpers_1.isSet)(object.dataHash)) + obj.dataHash = (0, helpers_1.bytesFromBase64)(object.dataHash); + if ((0, helpers_1.isSet)(object.validatorsHash)) + obj.validatorsHash = (0, helpers_1.bytesFromBase64)(object.validatorsHash); + if ((0, helpers_1.isSet)(object.nextValidatorsHash)) + obj.nextValidatorsHash = (0, helpers_1.bytesFromBase64)(object.nextValidatorsHash); + if ((0, helpers_1.isSet)(object.consensusHash)) + obj.consensusHash = (0, helpers_1.bytesFromBase64)(object.consensusHash); + if ((0, helpers_1.isSet)(object.appHash)) + obj.appHash = (0, helpers_1.bytesFromBase64)(object.appHash); + if ((0, helpers_1.isSet)(object.lastResultsHash)) + obj.lastResultsHash = (0, helpers_1.bytesFromBase64)(object.lastResultsHash); + if ((0, helpers_1.isSet)(object.evidenceHash)) + obj.evidenceHash = (0, helpers_1.bytesFromBase64)(object.evidenceHash); + if ((0, helpers_1.isSet)(object.proposerAddress)) + obj.proposerAddress = (0, helpers_1.bytesFromBase64)(object.proposerAddress); + return obj; }, toJSON(message) { const obj = {}; message.version !== undefined && (obj.version = message.version ? types_1.Consensus.toJSON(message.version) : undefined); message.chainId !== undefined && (obj.chainId = message.chainId); - message.height !== undefined && (obj.height = (message.height || helpers_1.Long.ZERO).toString()); + message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString()); message.time !== undefined && (obj.time = (0, helpers_1.fromTimestamp)(message.time).toISOString()); message.lastBlockId !== undefined && (obj.lastBlockId = message.lastBlockId ? exports.BlockID.toJSON(message.lastBlockId) : undefined); @@ -100516,19 +96749,19 @@ exports.Header = { }, fromPartial(object) { const message = createBaseHeader(); - message.version = - object.version !== undefined && object.version !== null - ? types_1.Consensus.fromPartial(object.version) - : undefined; + if (object.version !== undefined && object.version !== null) { + message.version = types_1.Consensus.fromPartial(object.version); + } message.chainId = object.chainId ?? ""; - message.height = - object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; - message.time = - object.time !== undefined && object.time !== null ? timestamp_1.Timestamp.fromPartial(object.time) : undefined; - message.lastBlockId = - object.lastBlockId !== undefined && object.lastBlockId !== null - ? exports.BlockID.fromPartial(object.lastBlockId) - : undefined; + if (object.height !== undefined && object.height !== null) { + message.height = BigInt(object.height.toString()); + } + if (object.time !== undefined && object.time !== null) { + message.time = timestamp_1.Timestamp.fromPartial(object.time); + } + if (object.lastBlockId !== undefined && object.lastBlockId !== null) { + message.lastBlockId = exports.BlockID.fromPartial(object.lastBlockId); + } message.lastCommitHash = object.lastCommitHash ?? new Uint8Array(); message.dataHash = object.dataHash ?? new Uint8Array(); message.validatorsHash = object.validatorsHash ?? new Uint8Array(); @@ -100547,14 +96780,15 @@ function createBaseData() { }; } exports.Data = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.types.Data", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.txs) { writer.uint32(10).bytes(v); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseData(); while (reader.pos < end) { @@ -100571,9 +96805,10 @@ exports.Data = { return message; }, fromJSON(object) { - return { - txs: Array.isArray(object?.txs) ? object.txs.map((e) => (0, helpers_1.bytesFromBase64)(e)) : [], - }; + const obj = createBaseData(); + if (Array.isArray(object?.txs)) + obj.txs = object.txs.map((e) => (0, helpers_1.bytesFromBase64)(e)); + return obj; }, toJSON(message) { const obj = {}; @@ -100594,21 +96829,22 @@ exports.Data = { function createBaseVote() { return { type: 0, - height: helpers_1.Long.ZERO, + height: BigInt(0), round: 0, - blockId: undefined, - timestamp: undefined, + blockId: exports.BlockID.fromPartial({}), + timestamp: timestamp_1.Timestamp.fromPartial({}), validatorAddress: new Uint8Array(), validatorIndex: 0, signature: new Uint8Array(), }; } exports.Vote = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.types.Vote", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.type !== 0) { writer.uint32(8).int32(message.type); } - if (!message.height.isZero()) { + if (message.height !== BigInt(0)) { writer.uint32(16).int64(message.height); } if (message.round !== 0) { @@ -100632,7 +96868,7 @@ exports.Vote = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseVote(); while (reader.pos < end) { @@ -100670,23 +96906,29 @@ exports.Vote = { return message; }, fromJSON(object) { - return { - type: (0, helpers_1.isSet)(object.type) ? signedMsgTypeFromJSON(object.type) : 0, - height: (0, helpers_1.isSet)(object.height) ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO, - round: (0, helpers_1.isSet)(object.round) ? Number(object.round) : 0, - blockId: (0, helpers_1.isSet)(object.blockId) ? exports.BlockID.fromJSON(object.blockId) : undefined, - timestamp: (0, helpers_1.isSet)(object.timestamp) ? (0, helpers_1.fromJsonTimestamp)(object.timestamp) : undefined, - validatorAddress: (0, helpers_1.isSet)(object.validatorAddress) - ? (0, helpers_1.bytesFromBase64)(object.validatorAddress) - : new Uint8Array(), - validatorIndex: (0, helpers_1.isSet)(object.validatorIndex) ? Number(object.validatorIndex) : 0, - signature: (0, helpers_1.isSet)(object.signature) ? (0, helpers_1.bytesFromBase64)(object.signature) : new Uint8Array(), - }; + const obj = createBaseVote(); + if ((0, helpers_1.isSet)(object.type)) + obj.type = signedMsgTypeFromJSON(object.type); + if ((0, helpers_1.isSet)(object.height)) + obj.height = BigInt(object.height.toString()); + if ((0, helpers_1.isSet)(object.round)) + obj.round = Number(object.round); + if ((0, helpers_1.isSet)(object.blockId)) + obj.blockId = exports.BlockID.fromJSON(object.blockId); + if ((0, helpers_1.isSet)(object.timestamp)) + obj.timestamp = (0, helpers_1.fromJsonTimestamp)(object.timestamp); + if ((0, helpers_1.isSet)(object.validatorAddress)) + obj.validatorAddress = (0, helpers_1.bytesFromBase64)(object.validatorAddress); + if ((0, helpers_1.isSet)(object.validatorIndex)) + obj.validatorIndex = Number(object.validatorIndex); + if ((0, helpers_1.isSet)(object.signature)) + obj.signature = (0, helpers_1.bytesFromBase64)(object.signature); + return obj; }, toJSON(message) { const obj = {}; message.type !== undefined && (obj.type = signedMsgTypeToJSON(message.type)); - message.height !== undefined && (obj.height = (message.height || helpers_1.Long.ZERO).toString()); + message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString()); message.round !== undefined && (obj.round = Math.round(message.round)); message.blockId !== undefined && (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined); @@ -100701,17 +96943,16 @@ exports.Vote = { fromPartial(object) { const message = createBaseVote(); message.type = object.type ?? 0; - message.height = - object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; + if (object.height !== undefined && object.height !== null) { + message.height = BigInt(object.height.toString()); + } message.round = object.round ?? 0; - message.blockId = - object.blockId !== undefined && object.blockId !== null - ? exports.BlockID.fromPartial(object.blockId) - : undefined; - message.timestamp = - object.timestamp !== undefined && object.timestamp !== null - ? timestamp_1.Timestamp.fromPartial(object.timestamp) - : undefined; + if (object.blockId !== undefined && object.blockId !== null) { + message.blockId = exports.BlockID.fromPartial(object.blockId); + } + if (object.timestamp !== undefined && object.timestamp !== null) { + message.timestamp = timestamp_1.Timestamp.fromPartial(object.timestamp); + } message.validatorAddress = object.validatorAddress ?? new Uint8Array(); message.validatorIndex = object.validatorIndex ?? 0; message.signature = object.signature ?? new Uint8Array(); @@ -100720,15 +96961,16 @@ exports.Vote = { }; function createBaseCommit() { return { - height: helpers_1.Long.ZERO, + height: BigInt(0), round: 0, - blockId: undefined, + blockId: exports.BlockID.fromPartial({}), signatures: [], }; } exports.Commit = { - encode(message, writer = _m0.Writer.create()) { - if (!message.height.isZero()) { + typeUrl: "/tendermint.types.Commit", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.height !== BigInt(0)) { writer.uint32(8).int64(message.height); } if (message.round !== 0) { @@ -100743,7 +96985,7 @@ exports.Commit = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCommit(); while (reader.pos < end) { @@ -100769,18 +97011,20 @@ exports.Commit = { return message; }, fromJSON(object) { - return { - height: (0, helpers_1.isSet)(object.height) ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO, - round: (0, helpers_1.isSet)(object.round) ? Number(object.round) : 0, - blockId: (0, helpers_1.isSet)(object.blockId) ? exports.BlockID.fromJSON(object.blockId) : undefined, - signatures: Array.isArray(object?.signatures) - ? object.signatures.map((e) => exports.CommitSig.fromJSON(e)) - : [], - }; + const obj = createBaseCommit(); + if ((0, helpers_1.isSet)(object.height)) + obj.height = BigInt(object.height.toString()); + if ((0, helpers_1.isSet)(object.round)) + obj.round = Number(object.round); + if ((0, helpers_1.isSet)(object.blockId)) + obj.blockId = exports.BlockID.fromJSON(object.blockId); + if (Array.isArray(object?.signatures)) + obj.signatures = object.signatures.map((e) => exports.CommitSig.fromJSON(e)); + return obj; }, toJSON(message) { const obj = {}; - message.height !== undefined && (obj.height = (message.height || helpers_1.Long.ZERO).toString()); + message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString()); message.round !== undefined && (obj.round = Math.round(message.round)); message.blockId !== undefined && (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined); @@ -100794,13 +97038,13 @@ exports.Commit = { }, fromPartial(object) { const message = createBaseCommit(); - message.height = - object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; + if (object.height !== undefined && object.height !== null) { + message.height = BigInt(object.height.toString()); + } message.round = object.round ?? 0; - message.blockId = - object.blockId !== undefined && object.blockId !== null - ? exports.BlockID.fromPartial(object.blockId) - : undefined; + if (object.blockId !== undefined && object.blockId !== null) { + message.blockId = exports.BlockID.fromPartial(object.blockId); + } message.signatures = object.signatures?.map((e) => exports.CommitSig.fromPartial(e)) || []; return message; }, @@ -100809,12 +97053,13 @@ function createBaseCommitSig() { return { blockIdFlag: 0, validatorAddress: new Uint8Array(), - timestamp: undefined, + timestamp: timestamp_1.Timestamp.fromPartial({}), signature: new Uint8Array(), }; } exports.CommitSig = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.types.CommitSig", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.blockIdFlag !== 0) { writer.uint32(8).int32(message.blockIdFlag); } @@ -100830,7 +97075,7 @@ exports.CommitSig = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCommitSig(); while (reader.pos < end) { @@ -100856,14 +97101,16 @@ exports.CommitSig = { return message; }, fromJSON(object) { - return { - blockIdFlag: (0, helpers_1.isSet)(object.blockIdFlag) ? blockIDFlagFromJSON(object.blockIdFlag) : 0, - validatorAddress: (0, helpers_1.isSet)(object.validatorAddress) - ? (0, helpers_1.bytesFromBase64)(object.validatorAddress) - : new Uint8Array(), - timestamp: (0, helpers_1.isSet)(object.timestamp) ? (0, helpers_1.fromJsonTimestamp)(object.timestamp) : undefined, - signature: (0, helpers_1.isSet)(object.signature) ? (0, helpers_1.bytesFromBase64)(object.signature) : new Uint8Array(), - }; + const obj = createBaseCommitSig(); + if ((0, helpers_1.isSet)(object.blockIdFlag)) + obj.blockIdFlag = blockIDFlagFromJSON(object.blockIdFlag); + if ((0, helpers_1.isSet)(object.validatorAddress)) + obj.validatorAddress = (0, helpers_1.bytesFromBase64)(object.validatorAddress); + if ((0, helpers_1.isSet)(object.timestamp)) + obj.timestamp = (0, helpers_1.fromJsonTimestamp)(object.timestamp); + if ((0, helpers_1.isSet)(object.signature)) + obj.signature = (0, helpers_1.bytesFromBase64)(object.signature); + return obj; }, toJSON(message) { const obj = {}; @@ -100879,10 +97126,9 @@ exports.CommitSig = { const message = createBaseCommitSig(); message.blockIdFlag = object.blockIdFlag ?? 0; message.validatorAddress = object.validatorAddress ?? new Uint8Array(); - message.timestamp = - object.timestamp !== undefined && object.timestamp !== null - ? timestamp_1.Timestamp.fromPartial(object.timestamp) - : undefined; + if (object.timestamp !== undefined && object.timestamp !== null) { + message.timestamp = timestamp_1.Timestamp.fromPartial(object.timestamp); + } message.signature = object.signature ?? new Uint8Array(); return message; }, @@ -100890,20 +97136,21 @@ exports.CommitSig = { function createBaseProposal() { return { type: 0, - height: helpers_1.Long.ZERO, + height: BigInt(0), round: 0, polRound: 0, - blockId: undefined, - timestamp: undefined, + blockId: exports.BlockID.fromPartial({}), + timestamp: timestamp_1.Timestamp.fromPartial({}), signature: new Uint8Array(), }; } exports.Proposal = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.types.Proposal", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.type !== 0) { writer.uint32(8).int32(message.type); } - if (!message.height.isZero()) { + if (message.height !== BigInt(0)) { writer.uint32(16).int64(message.height); } if (message.round !== 0) { @@ -100924,7 +97171,7 @@ exports.Proposal = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseProposal(); while (reader.pos < end) { @@ -100959,20 +97206,27 @@ exports.Proposal = { return message; }, fromJSON(object) { - return { - type: (0, helpers_1.isSet)(object.type) ? signedMsgTypeFromJSON(object.type) : 0, - height: (0, helpers_1.isSet)(object.height) ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO, - round: (0, helpers_1.isSet)(object.round) ? Number(object.round) : 0, - polRound: (0, helpers_1.isSet)(object.polRound) ? Number(object.polRound) : 0, - blockId: (0, helpers_1.isSet)(object.blockId) ? exports.BlockID.fromJSON(object.blockId) : undefined, - timestamp: (0, helpers_1.isSet)(object.timestamp) ? (0, helpers_1.fromJsonTimestamp)(object.timestamp) : undefined, - signature: (0, helpers_1.isSet)(object.signature) ? (0, helpers_1.bytesFromBase64)(object.signature) : new Uint8Array(), - }; + const obj = createBaseProposal(); + if ((0, helpers_1.isSet)(object.type)) + obj.type = signedMsgTypeFromJSON(object.type); + if ((0, helpers_1.isSet)(object.height)) + obj.height = BigInt(object.height.toString()); + if ((0, helpers_1.isSet)(object.round)) + obj.round = Number(object.round); + if ((0, helpers_1.isSet)(object.polRound)) + obj.polRound = Number(object.polRound); + if ((0, helpers_1.isSet)(object.blockId)) + obj.blockId = exports.BlockID.fromJSON(object.blockId); + if ((0, helpers_1.isSet)(object.timestamp)) + obj.timestamp = (0, helpers_1.fromJsonTimestamp)(object.timestamp); + if ((0, helpers_1.isSet)(object.signature)) + obj.signature = (0, helpers_1.bytesFromBase64)(object.signature); + return obj; }, toJSON(message) { const obj = {}; message.type !== undefined && (obj.type = signedMsgTypeToJSON(message.type)); - message.height !== undefined && (obj.height = (message.height || helpers_1.Long.ZERO).toString()); + message.height !== undefined && (obj.height = (message.height || BigInt(0)).toString()); message.round !== undefined && (obj.round = Math.round(message.round)); message.polRound !== undefined && (obj.polRound = Math.round(message.polRound)); message.blockId !== undefined && @@ -100985,18 +97239,17 @@ exports.Proposal = { fromPartial(object) { const message = createBaseProposal(); message.type = object.type ?? 0; - message.height = - object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; + if (object.height !== undefined && object.height !== null) { + message.height = BigInt(object.height.toString()); + } message.round = object.round ?? 0; message.polRound = object.polRound ?? 0; - message.blockId = - object.blockId !== undefined && object.blockId !== null - ? exports.BlockID.fromPartial(object.blockId) - : undefined; - message.timestamp = - object.timestamp !== undefined && object.timestamp !== null - ? timestamp_1.Timestamp.fromPartial(object.timestamp) - : undefined; + if (object.blockId !== undefined && object.blockId !== null) { + message.blockId = exports.BlockID.fromPartial(object.blockId); + } + if (object.timestamp !== undefined && object.timestamp !== null) { + message.timestamp = timestamp_1.Timestamp.fromPartial(object.timestamp); + } message.signature = object.signature ?? new Uint8Array(); return message; }, @@ -101008,7 +97261,8 @@ function createBaseSignedHeader() { }; } exports.SignedHeader = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.types.SignedHeader", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.header !== undefined) { exports.Header.encode(message.header, writer.uint32(10).fork()).ldelim(); } @@ -101018,7 +97272,7 @@ exports.SignedHeader = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSignedHeader(); while (reader.pos < end) { @@ -101038,10 +97292,12 @@ exports.SignedHeader = { return message; }, fromJSON(object) { - return { - header: (0, helpers_1.isSet)(object.header) ? exports.Header.fromJSON(object.header) : undefined, - commit: (0, helpers_1.isSet)(object.commit) ? exports.Commit.fromJSON(object.commit) : undefined, - }; + const obj = createBaseSignedHeader(); + if ((0, helpers_1.isSet)(object.header)) + obj.header = exports.Header.fromJSON(object.header); + if ((0, helpers_1.isSet)(object.commit)) + obj.commit = exports.Commit.fromJSON(object.commit); + return obj; }, toJSON(message) { const obj = {}; @@ -101051,10 +97307,12 @@ exports.SignedHeader = { }, fromPartial(object) { const message = createBaseSignedHeader(); - message.header = - object.header !== undefined && object.header !== null ? exports.Header.fromPartial(object.header) : undefined; - message.commit = - object.commit !== undefined && object.commit !== null ? exports.Commit.fromPartial(object.commit) : undefined; + if (object.header !== undefined && object.header !== null) { + message.header = exports.Header.fromPartial(object.header); + } + if (object.commit !== undefined && object.commit !== null) { + message.commit = exports.Commit.fromPartial(object.commit); + } return message; }, }; @@ -101065,7 +97323,8 @@ function createBaseLightBlock() { }; } exports.LightBlock = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.types.LightBlock", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.signedHeader !== undefined) { exports.SignedHeader.encode(message.signedHeader, writer.uint32(10).fork()).ldelim(); } @@ -101075,7 +97334,7 @@ exports.LightBlock = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseLightBlock(); while (reader.pos < end) { @@ -101095,10 +97354,12 @@ exports.LightBlock = { return message; }, fromJSON(object) { - return { - signedHeader: (0, helpers_1.isSet)(object.signedHeader) ? exports.SignedHeader.fromJSON(object.signedHeader) : undefined, - validatorSet: (0, helpers_1.isSet)(object.validatorSet) ? validator_1.ValidatorSet.fromJSON(object.validatorSet) : undefined, - }; + const obj = createBaseLightBlock(); + if ((0, helpers_1.isSet)(object.signedHeader)) + obj.signedHeader = exports.SignedHeader.fromJSON(object.signedHeader); + if ((0, helpers_1.isSet)(object.validatorSet)) + obj.validatorSet = validator_1.ValidatorSet.fromJSON(object.validatorSet); + return obj; }, toJSON(message) { const obj = {}; @@ -101110,43 +97371,42 @@ exports.LightBlock = { }, fromPartial(object) { const message = createBaseLightBlock(); - message.signedHeader = - object.signedHeader !== undefined && object.signedHeader !== null - ? exports.SignedHeader.fromPartial(object.signedHeader) - : undefined; - message.validatorSet = - object.validatorSet !== undefined && object.validatorSet !== null - ? validator_1.ValidatorSet.fromPartial(object.validatorSet) - : undefined; + if (object.signedHeader !== undefined && object.signedHeader !== null) { + message.signedHeader = exports.SignedHeader.fromPartial(object.signedHeader); + } + if (object.validatorSet !== undefined && object.validatorSet !== null) { + message.validatorSet = validator_1.ValidatorSet.fromPartial(object.validatorSet); + } return message; }, }; function createBaseBlockMeta() { return { - blockId: undefined, - blockSize: helpers_1.Long.ZERO, - header: undefined, - numTxs: helpers_1.Long.ZERO, + blockId: exports.BlockID.fromPartial({}), + blockSize: BigInt(0), + header: exports.Header.fromPartial({}), + numTxs: BigInt(0), }; } exports.BlockMeta = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.types.BlockMeta", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.blockId !== undefined) { exports.BlockID.encode(message.blockId, writer.uint32(10).fork()).ldelim(); } - if (!message.blockSize.isZero()) { + if (message.blockSize !== BigInt(0)) { writer.uint32(16).int64(message.blockSize); } if (message.header !== undefined) { exports.Header.encode(message.header, writer.uint32(26).fork()).ldelim(); } - if (!message.numTxs.isZero()) { + if (message.numTxs !== BigInt(0)) { writer.uint32(32).int64(message.numTxs); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseBlockMeta(); while (reader.pos < end) { @@ -101172,36 +97432,40 @@ exports.BlockMeta = { return message; }, fromJSON(object) { - return { - blockId: (0, helpers_1.isSet)(object.blockId) ? exports.BlockID.fromJSON(object.blockId) : undefined, - blockSize: (0, helpers_1.isSet)(object.blockSize) ? helpers_1.Long.fromValue(object.blockSize) : helpers_1.Long.ZERO, - header: (0, helpers_1.isSet)(object.header) ? exports.Header.fromJSON(object.header) : undefined, - numTxs: (0, helpers_1.isSet)(object.numTxs) ? helpers_1.Long.fromValue(object.numTxs) : helpers_1.Long.ZERO, - }; + const obj = createBaseBlockMeta(); + if ((0, helpers_1.isSet)(object.blockId)) + obj.blockId = exports.BlockID.fromJSON(object.blockId); + if ((0, helpers_1.isSet)(object.blockSize)) + obj.blockSize = BigInt(object.blockSize.toString()); + if ((0, helpers_1.isSet)(object.header)) + obj.header = exports.Header.fromJSON(object.header); + if ((0, helpers_1.isSet)(object.numTxs)) + obj.numTxs = BigInt(object.numTxs.toString()); + return obj; }, toJSON(message) { const obj = {}; message.blockId !== undefined && (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined); - message.blockSize !== undefined && (obj.blockSize = (message.blockSize || helpers_1.Long.ZERO).toString()); + message.blockSize !== undefined && (obj.blockSize = (message.blockSize || BigInt(0)).toString()); message.header !== undefined && (obj.header = message.header ? exports.Header.toJSON(message.header) : undefined); - message.numTxs !== undefined && (obj.numTxs = (message.numTxs || helpers_1.Long.ZERO).toString()); + message.numTxs !== undefined && (obj.numTxs = (message.numTxs || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseBlockMeta(); - message.blockId = - object.blockId !== undefined && object.blockId !== null - ? exports.BlockID.fromPartial(object.blockId) - : undefined; - message.blockSize = - object.blockSize !== undefined && object.blockSize !== null - ? helpers_1.Long.fromValue(object.blockSize) - : helpers_1.Long.ZERO; - message.header = - object.header !== undefined && object.header !== null ? exports.Header.fromPartial(object.header) : undefined; - message.numTxs = - object.numTxs !== undefined && object.numTxs !== null ? helpers_1.Long.fromValue(object.numTxs) : helpers_1.Long.ZERO; + if (object.blockId !== undefined && object.blockId !== null) { + message.blockId = exports.BlockID.fromPartial(object.blockId); + } + if (object.blockSize !== undefined && object.blockSize !== null) { + message.blockSize = BigInt(object.blockSize.toString()); + } + if (object.header !== undefined && object.header !== null) { + message.header = exports.Header.fromPartial(object.header); + } + if (object.numTxs !== undefined && object.numTxs !== null) { + message.numTxs = BigInt(object.numTxs.toString()); + } return message; }, }; @@ -101213,7 +97477,8 @@ function createBaseTxProof() { }; } exports.TxProof = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.types.TxProof", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.rootHash.length !== 0) { writer.uint32(10).bytes(message.rootHash); } @@ -101226,7 +97491,7 @@ exports.TxProof = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseTxProof(); while (reader.pos < end) { @@ -101249,11 +97514,14 @@ exports.TxProof = { return message; }, fromJSON(object) { - return { - rootHash: (0, helpers_1.isSet)(object.rootHash) ? (0, helpers_1.bytesFromBase64)(object.rootHash) : new Uint8Array(), - data: (0, helpers_1.isSet)(object.data) ? (0, helpers_1.bytesFromBase64)(object.data) : new Uint8Array(), - proof: (0, helpers_1.isSet)(object.proof) ? proof_1.Proof.fromJSON(object.proof) : undefined, - }; + const obj = createBaseTxProof(); + if ((0, helpers_1.isSet)(object.rootHash)) + obj.rootHash = (0, helpers_1.bytesFromBase64)(object.rootHash); + if ((0, helpers_1.isSet)(object.data)) + obj.data = (0, helpers_1.bytesFromBase64)(object.data); + if ((0, helpers_1.isSet)(object.proof)) + obj.proof = proof_1.Proof.fromJSON(object.proof); + return obj; }, toJSON(message) { const obj = {}; @@ -101268,8 +97536,9 @@ exports.TxProof = { const message = createBaseTxProof(); message.rootHash = object.rootHash ?? new Uint8Array(); message.data = object.data ?? new Uint8Array(); - message.proof = - object.proof !== undefined && object.proof !== null ? proof_1.Proof.fromPartial(object.proof) : undefined; + if (object.proof !== undefined && object.proof !== null) { + message.proof = proof_1.Proof.fromPartial(object.proof); + } return message; }, }; @@ -101285,58 +97554,36 @@ exports.TxProof = { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.SimpleValidator = exports.Validator = exports.ValidatorSet = exports.protobufPackage = void 0; /* eslint-disable */ const keys_1 = __webpack_require__(/*! ../crypto/keys */ "./node_modules/cosmjs-types/tendermint/crypto/keys.js"); +const binary_1 = __webpack_require__(/*! ../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); exports.protobufPackage = "tendermint.types"; function createBaseValidatorSet() { return { validators: [], proposer: undefined, - totalVotingPower: helpers_1.Long.ZERO, + totalVotingPower: BigInt(0), }; } exports.ValidatorSet = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.types.ValidatorSet", + encode(message, writer = binary_1.BinaryWriter.create()) { for (const v of message.validators) { exports.Validator.encode(v, writer.uint32(10).fork()).ldelim(); } if (message.proposer !== undefined) { exports.Validator.encode(message.proposer, writer.uint32(18).fork()).ldelim(); } - if (!message.totalVotingPower.isZero()) { + if (message.totalVotingPower !== BigInt(0)) { writer.uint32(24).int64(message.totalVotingPower); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseValidatorSet(); while (reader.pos < end) { @@ -101359,13 +97606,14 @@ exports.ValidatorSet = { return message; }, fromJSON(object) { - return { - validators: Array.isArray(object?.validators) - ? object.validators.map((e) => exports.Validator.fromJSON(e)) - : [], - proposer: (0, helpers_1.isSet)(object.proposer) ? exports.Validator.fromJSON(object.proposer) : undefined, - totalVotingPower: (0, helpers_1.isSet)(object.totalVotingPower) ? helpers_1.Long.fromValue(object.totalVotingPower) : helpers_1.Long.ZERO, - }; + const obj = createBaseValidatorSet(); + if (Array.isArray(object?.validators)) + obj.validators = object.validators.map((e) => exports.Validator.fromJSON(e)); + if ((0, helpers_1.isSet)(object.proposer)) + obj.proposer = exports.Validator.fromJSON(object.proposer); + if ((0, helpers_1.isSet)(object.totalVotingPower)) + obj.totalVotingPower = BigInt(object.totalVotingPower.toString()); + return obj; }, toJSON(message) { const obj = {}; @@ -101378,49 +97626,48 @@ exports.ValidatorSet = { message.proposer !== undefined && (obj.proposer = message.proposer ? exports.Validator.toJSON(message.proposer) : undefined); message.totalVotingPower !== undefined && - (obj.totalVotingPower = (message.totalVotingPower || helpers_1.Long.ZERO).toString()); + (obj.totalVotingPower = (message.totalVotingPower || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseValidatorSet(); message.validators = object.validators?.map((e) => exports.Validator.fromPartial(e)) || []; - message.proposer = - object.proposer !== undefined && object.proposer !== null - ? exports.Validator.fromPartial(object.proposer) - : undefined; - message.totalVotingPower = - object.totalVotingPower !== undefined && object.totalVotingPower !== null - ? helpers_1.Long.fromValue(object.totalVotingPower) - : helpers_1.Long.ZERO; + if (object.proposer !== undefined && object.proposer !== null) { + message.proposer = exports.Validator.fromPartial(object.proposer); + } + if (object.totalVotingPower !== undefined && object.totalVotingPower !== null) { + message.totalVotingPower = BigInt(object.totalVotingPower.toString()); + } return message; }, }; function createBaseValidator() { return { address: new Uint8Array(), - pubKey: undefined, - votingPower: helpers_1.Long.ZERO, - proposerPriority: helpers_1.Long.ZERO, + pubKey: keys_1.PublicKey.fromPartial({}), + votingPower: BigInt(0), + proposerPriority: BigInt(0), }; } exports.Validator = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.types.Validator", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.address.length !== 0) { writer.uint32(10).bytes(message.address); } if (message.pubKey !== undefined) { keys_1.PublicKey.encode(message.pubKey, writer.uint32(18).fork()).ldelim(); } - if (!message.votingPower.isZero()) { + if (message.votingPower !== BigInt(0)) { writer.uint32(24).int64(message.votingPower); } - if (!message.proposerPriority.isZero()) { + if (message.proposerPriority !== BigInt(0)) { writer.uint32(32).int64(message.proposerPriority); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseValidator(); while (reader.pos < end) { @@ -101446,12 +97693,16 @@ exports.Validator = { return message; }, fromJSON(object) { - return { - address: (0, helpers_1.isSet)(object.address) ? (0, helpers_1.bytesFromBase64)(object.address) : new Uint8Array(), - pubKey: (0, helpers_1.isSet)(object.pubKey) ? keys_1.PublicKey.fromJSON(object.pubKey) : undefined, - votingPower: (0, helpers_1.isSet)(object.votingPower) ? helpers_1.Long.fromValue(object.votingPower) : helpers_1.Long.ZERO, - proposerPriority: (0, helpers_1.isSet)(object.proposerPriority) ? helpers_1.Long.fromValue(object.proposerPriority) : helpers_1.Long.ZERO, - }; + const obj = createBaseValidator(); + if ((0, helpers_1.isSet)(object.address)) + obj.address = (0, helpers_1.bytesFromBase64)(object.address); + if ((0, helpers_1.isSet)(object.pubKey)) + obj.pubKey = keys_1.PublicKey.fromJSON(object.pubKey); + if ((0, helpers_1.isSet)(object.votingPower)) + obj.votingPower = BigInt(object.votingPower.toString()); + if ((0, helpers_1.isSet)(object.proposerPriority)) + obj.proposerPriority = BigInt(object.proposerPriority.toString()); + return obj; }, toJSON(message) { const obj = {}; @@ -101459,47 +97710,45 @@ exports.Validator = { (obj.address = (0, helpers_1.base64FromBytes)(message.address !== undefined ? message.address : new Uint8Array())); message.pubKey !== undefined && (obj.pubKey = message.pubKey ? keys_1.PublicKey.toJSON(message.pubKey) : undefined); - message.votingPower !== undefined && (obj.votingPower = (message.votingPower || helpers_1.Long.ZERO).toString()); + message.votingPower !== undefined && (obj.votingPower = (message.votingPower || BigInt(0)).toString()); message.proposerPriority !== undefined && - (obj.proposerPriority = (message.proposerPriority || helpers_1.Long.ZERO).toString()); + (obj.proposerPriority = (message.proposerPriority || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseValidator(); message.address = object.address ?? new Uint8Array(); - message.pubKey = - object.pubKey !== undefined && object.pubKey !== null - ? keys_1.PublicKey.fromPartial(object.pubKey) - : undefined; - message.votingPower = - object.votingPower !== undefined && object.votingPower !== null - ? helpers_1.Long.fromValue(object.votingPower) - : helpers_1.Long.ZERO; - message.proposerPriority = - object.proposerPriority !== undefined && object.proposerPriority !== null - ? helpers_1.Long.fromValue(object.proposerPriority) - : helpers_1.Long.ZERO; + if (object.pubKey !== undefined && object.pubKey !== null) { + message.pubKey = keys_1.PublicKey.fromPartial(object.pubKey); + } + if (object.votingPower !== undefined && object.votingPower !== null) { + message.votingPower = BigInt(object.votingPower.toString()); + } + if (object.proposerPriority !== undefined && object.proposerPriority !== null) { + message.proposerPriority = BigInt(object.proposerPriority.toString()); + } return message; }, }; function createBaseSimpleValidator() { return { pubKey: undefined, - votingPower: helpers_1.Long.ZERO, + votingPower: BigInt(0), }; } exports.SimpleValidator = { - encode(message, writer = _m0.Writer.create()) { + typeUrl: "/tendermint.types.SimpleValidator", + encode(message, writer = binary_1.BinaryWriter.create()) { if (message.pubKey !== undefined) { keys_1.PublicKey.encode(message.pubKey, writer.uint32(10).fork()).ldelim(); } - if (!message.votingPower.isZero()) { + if (message.votingPower !== BigInt(0)) { writer.uint32(16).int64(message.votingPower); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSimpleValidator(); while (reader.pos < end) { @@ -101519,28 +97768,28 @@ exports.SimpleValidator = { return message; }, fromJSON(object) { - return { - pubKey: (0, helpers_1.isSet)(object.pubKey) ? keys_1.PublicKey.fromJSON(object.pubKey) : undefined, - votingPower: (0, helpers_1.isSet)(object.votingPower) ? helpers_1.Long.fromValue(object.votingPower) : helpers_1.Long.ZERO, - }; + const obj = createBaseSimpleValidator(); + if ((0, helpers_1.isSet)(object.pubKey)) + obj.pubKey = keys_1.PublicKey.fromJSON(object.pubKey); + if ((0, helpers_1.isSet)(object.votingPower)) + obj.votingPower = BigInt(object.votingPower.toString()); + return obj; }, toJSON(message) { const obj = {}; message.pubKey !== undefined && (obj.pubKey = message.pubKey ? keys_1.PublicKey.toJSON(message.pubKey) : undefined); - message.votingPower !== undefined && (obj.votingPower = (message.votingPower || helpers_1.Long.ZERO).toString()); + message.votingPower !== undefined && (obj.votingPower = (message.votingPower || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseSimpleValidator(); - message.pubKey = - object.pubKey !== undefined && object.pubKey !== null - ? keys_1.PublicKey.fromPartial(object.pubKey) - : undefined; - message.votingPower = - object.votingPower !== undefined && object.votingPower !== null - ? helpers_1.Long.fromValue(object.votingPower) - : helpers_1.Long.ZERO; + if (object.pubKey !== undefined && object.pubKey !== null) { + message.pubKey = keys_1.PublicKey.fromPartial(object.pubKey); + } + if (object.votingPower !== undefined && object.votingPower !== null) { + message.votingPower = BigInt(object.votingPower.toString()); + } return message; }, }; @@ -101556,44 +97805,22 @@ exports.SimpleValidator = { "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Consensus = exports.App = exports.protobufPackage = void 0; /* eslint-disable */ +const binary_1 = __webpack_require__(/*! ../../binary */ "./node_modules/cosmjs-types/binary.js"); const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/cosmjs-types/helpers.js"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); exports.protobufPackage = "tendermint.version"; function createBaseApp() { return { - protocol: helpers_1.Long.UZERO, + protocol: BigInt(0), software: "", }; } exports.App = { - encode(message, writer = _m0.Writer.create()) { - if (!message.protocol.isZero()) { + typeUrl: "/tendermint.version.App", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.protocol !== BigInt(0)) { writer.uint32(8).uint64(message.protocol); } if (message.software !== "") { @@ -101602,7 +97829,7 @@ exports.App = { return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseApp(); while (reader.pos < end) { @@ -101622,45 +97849,47 @@ exports.App = { return message; }, fromJSON(object) { - return { - protocol: (0, helpers_1.isSet)(object.protocol) ? helpers_1.Long.fromValue(object.protocol) : helpers_1.Long.UZERO, - software: (0, helpers_1.isSet)(object.software) ? String(object.software) : "", - }; + const obj = createBaseApp(); + if ((0, helpers_1.isSet)(object.protocol)) + obj.protocol = BigInt(object.protocol.toString()); + if ((0, helpers_1.isSet)(object.software)) + obj.software = String(object.software); + return obj; }, toJSON(message) { const obj = {}; - message.protocol !== undefined && (obj.protocol = (message.protocol || helpers_1.Long.UZERO).toString()); + message.protocol !== undefined && (obj.protocol = (message.protocol || BigInt(0)).toString()); message.software !== undefined && (obj.software = message.software); return obj; }, fromPartial(object) { const message = createBaseApp(); - message.protocol = - object.protocol !== undefined && object.protocol !== null - ? helpers_1.Long.fromValue(object.protocol) - : helpers_1.Long.UZERO; + if (object.protocol !== undefined && object.protocol !== null) { + message.protocol = BigInt(object.protocol.toString()); + } message.software = object.software ?? ""; return message; }, }; function createBaseConsensus() { return { - block: helpers_1.Long.UZERO, - app: helpers_1.Long.UZERO, + block: BigInt(0), + app: BigInt(0), }; } exports.Consensus = { - encode(message, writer = _m0.Writer.create()) { - if (!message.block.isZero()) { + typeUrl: "/tendermint.version.Consensus", + encode(message, writer = binary_1.BinaryWriter.create()) { + if (message.block !== BigInt(0)) { writer.uint32(8).uint64(message.block); } - if (!message.app.isZero()) { + if (message.app !== BigInt(0)) { writer.uint32(16).uint64(message.app); } return writer; }, decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseConsensus(); while (reader.pos < end) { @@ -101680,22 +97909,27 @@ exports.Consensus = { return message; }, fromJSON(object) { - return { - block: (0, helpers_1.isSet)(object.block) ? helpers_1.Long.fromValue(object.block) : helpers_1.Long.UZERO, - app: (0, helpers_1.isSet)(object.app) ? helpers_1.Long.fromValue(object.app) : helpers_1.Long.UZERO, - }; + const obj = createBaseConsensus(); + if ((0, helpers_1.isSet)(object.block)) + obj.block = BigInt(object.block.toString()); + if ((0, helpers_1.isSet)(object.app)) + obj.app = BigInt(object.app.toString()); + return obj; }, toJSON(message) { const obj = {}; - message.block !== undefined && (obj.block = (message.block || helpers_1.Long.UZERO).toString()); - message.app !== undefined && (obj.app = (message.app || helpers_1.Long.UZERO).toString()); + message.block !== undefined && (obj.block = (message.block || BigInt(0)).toString()); + message.app !== undefined && (obj.app = (message.app || BigInt(0)).toString()); return obj; }, fromPartial(object) { const message = createBaseConsensus(); - message.block = - object.block !== undefined && object.block !== null ? helpers_1.Long.fromValue(object.block) : helpers_1.Long.UZERO; - message.app = object.app !== undefined && object.app !== null ? helpers_1.Long.fromValue(object.app) : helpers_1.Long.UZERO; + if (object.block !== undefined && object.block !== null) { + message.block = BigInt(object.block.toString()); + } + if (object.app !== undefined && object.app !== null) { + message.app = BigInt(object.app.toString()); + } return message; }, }; @@ -101703,6 +97937,588 @@ exports.Consensus = { /***/ }), +/***/ "./node_modules/cosmjs-types/utf8.js": +/*!*******************************************!*\ + !*** ./node_modules/cosmjs-types/utf8.js ***! + \*******************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; +/* eslint-disable */ +/** + * This file and any referenced files were automatically generated by @cosmology/telescope@1.0.7 + * DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain + * and run the transpile command or yarn proto command to regenerate this bundle. + */ +// Copyright (c) 2016, Daniel Wirtz All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of its author, nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.utf8Write = exports.utf8Read = exports.utf8Length = void 0; +/** + * Calculates the UTF8 byte length of a string. + * @param {string} string String + * @returns {number} Byte length + */ +function utf8Length(str) { + let len = 0, c = 0; + for (let i = 0; i < str.length; ++i) { + c = str.charCodeAt(i); + if (c < 128) + len += 1; + else if (c < 2048) + len += 2; + else if ((c & 0xfc00) === 0xd800 && (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) { + ++i; + len += 4; + } + else + len += 3; + } + return len; +} +exports.utf8Length = utf8Length; +/** + * Reads UTF8 bytes as a string. + * @param {Uint8Array} buffer Source buffer + * @param {number} start Source start + * @param {number} end Source end + * @returns {string} String read + */ +function utf8Read(buffer, start, end) { + const len = end - start; + if (len < 1) + return ""; + const chunk = []; + let parts = [], i = 0, // char offset + t; // temporary + while (start < end) { + t = buffer[start++]; + if (t < 128) + chunk[i++] = t; + else if (t > 191 && t < 224) + chunk[i++] = ((t & 31) << 6) | (buffer[start++] & 63); + else if (t > 239 && t < 365) { + t = + (((t & 7) << 18) | + ((buffer[start++] & 63) << 12) | + ((buffer[start++] & 63) << 6) | + (buffer[start++] & 63)) - + 0x10000; + chunk[i++] = 0xd800 + (t >> 10); + chunk[i++] = 0xdc00 + (t & 1023); + } + else + chunk[i++] = ((t & 15) << 12) | ((buffer[start++] & 63) << 6) | (buffer[start++] & 63); + if (i > 8191) { + (parts || (parts = [])).push(String.fromCharCode(...chunk)); + i = 0; + } + } + if (parts) { + if (i) + parts.push(String.fromCharCode(...chunk.slice(0, i))); + return parts.join(""); + } + return String.fromCharCode(...chunk.slice(0, i)); +} +exports.utf8Read = utf8Read; +/** + * Writes a string as UTF8 bytes. + * @param {string} string Source string + * @param {Uint8Array} buffer Destination buffer + * @param {number} offset Destination offset + * @returns {number} Bytes written + */ +function utf8Write(str, buffer, offset) { + const start = offset; + let c1, // character 1 + c2; // character 2 + for (let i = 0; i < str.length; ++i) { + c1 = str.charCodeAt(i); + if (c1 < 128) { + buffer[offset++] = c1; + } + else if (c1 < 2048) { + buffer[offset++] = (c1 >> 6) | 192; + buffer[offset++] = (c1 & 63) | 128; + } + else if ((c1 & 0xfc00) === 0xd800 && ((c2 = str.charCodeAt(i + 1)) & 0xfc00) === 0xdc00) { + c1 = 0x10000 + ((c1 & 0x03ff) << 10) + (c2 & 0x03ff); + ++i; + buffer[offset++] = (c1 >> 18) | 240; + buffer[offset++] = ((c1 >> 12) & 63) | 128; + buffer[offset++] = ((c1 >> 6) & 63) | 128; + buffer[offset++] = (c1 & 63) | 128; + } + else { + buffer[offset++] = (c1 >> 12) | 224; + buffer[offset++] = ((c1 >> 6) & 63) | 128; + buffer[offset++] = (c1 & 63) | 128; + } + } + return offset - start; +} +exports.utf8Write = utf8Write; +//# sourceMappingURL=utf8.js.map + +/***/ }), + +/***/ "./node_modules/cosmjs-types/varint.js": +/*!*********************************************!*\ + !*** ./node_modules/cosmjs-types/varint.js ***! + \*********************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +/* eslint-disable */ +/** + * This file and any referenced files were automatically generated by @cosmology/telescope@1.0.7 + * DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain + * and run the transpile command or yarn proto command to regenerate this bundle. + */ +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.writeByte = exports.writeFixed32 = exports.int64Length = exports.writeVarint64 = exports.writeVarint32 = exports.readInt32 = exports.readUInt32 = exports.zzDecode = exports.zzEncode = exports.varint32read = exports.varint32write = exports.uInt64ToString = exports.int64ToString = exports.int64FromString = exports.varint64write = exports.varint64read = void 0; +// Copyright 2008 Google Inc. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Code generated by the Protocol Buffer compiler is owned by the owner +// of the input file used when generating it. This code is not +// standalone and requires a support library to be linked with it. This +// support library is itself covered by the above license. +/* eslint-disable prefer-const,@typescript-eslint/restrict-plus-operands */ +/** + * Read a 64 bit varint as two JS numbers. + * + * Returns tuple: + * [0]: low bits + * [1]: high bits + * + * Copyright 2008 Google Inc. All rights reserved. + * + * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L175 + */ +function varint64read() { + let lowBits = 0; + let highBits = 0; + for (let shift = 0; shift < 28; shift += 7) { + let b = this.buf[this.pos++]; + lowBits |= (b & 0x7f) << shift; + if ((b & 0x80) == 0) { + this.assertBounds(); + return [lowBits, highBits]; + } + } + let middleByte = this.buf[this.pos++]; + // last four bits of the first 32 bit number + lowBits |= (middleByte & 0x0f) << 28; + // 3 upper bits are part of the next 32 bit number + highBits = (middleByte & 0x70) >> 4; + if ((middleByte & 0x80) == 0) { + this.assertBounds(); + return [lowBits, highBits]; + } + for (let shift = 3; shift <= 31; shift += 7) { + let b = this.buf[this.pos++]; + highBits |= (b & 0x7f) << shift; + if ((b & 0x80) == 0) { + this.assertBounds(); + return [lowBits, highBits]; + } + } + throw new Error("invalid varint"); +} +exports.varint64read = varint64read; +/** + * Write a 64 bit varint, given as two JS numbers, to the given bytes array. + * + * Copyright 2008 Google Inc. All rights reserved. + * + * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/writer.js#L344 + */ +function varint64write(lo, hi, bytes) { + for (let i = 0; i < 28; i = i + 7) { + const shift = lo >>> i; + const hasNext = !(shift >>> 7 == 0 && hi == 0); + const byte = (hasNext ? shift | 0x80 : shift) & 0xff; + bytes.push(byte); + if (!hasNext) { + return; + } + } + const splitBits = ((lo >>> 28) & 0x0f) | ((hi & 0x07) << 4); + const hasMoreBits = !(hi >> 3 == 0); + bytes.push((hasMoreBits ? splitBits | 0x80 : splitBits) & 0xff); + if (!hasMoreBits) { + return; + } + for (let i = 3; i < 31; i = i + 7) { + const shift = hi >>> i; + const hasNext = !(shift >>> 7 == 0); + const byte = (hasNext ? shift | 0x80 : shift) & 0xff; + bytes.push(byte); + if (!hasNext) { + return; + } + } + bytes.push((hi >>> 31) & 0x01); +} +exports.varint64write = varint64write; +// constants for binary math +const TWO_PWR_32_DBL = 0x100000000; +/** + * Parse decimal string of 64 bit integer value as two JS numbers. + * + * Copyright 2008 Google Inc. All rights reserved. + * + * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10 + */ +function int64FromString(dec) { + // Check for minus sign. + const minus = dec[0] === "-"; + if (minus) { + dec = dec.slice(1); + } + // Work 6 decimal digits at a time, acting like we're converting base 1e6 + // digits to binary. This is safe to do with floating point math because + // Number.isSafeInteger(ALL_32_BITS * 1e6) == true. + const base = 1e6; + let lowBits = 0; + let highBits = 0; + function add1e6digit(begin, end) { + // Note: Number('') is 0. + const digit1e6 = Number(dec.slice(begin, end)); + highBits *= base; + lowBits = lowBits * base + digit1e6; + // Carry bits from lowBits to + if (lowBits >= TWO_PWR_32_DBL) { + highBits = highBits + ((lowBits / TWO_PWR_32_DBL) | 0); + lowBits = lowBits % TWO_PWR_32_DBL; + } + } + add1e6digit(-24, -18); + add1e6digit(-18, -12); + add1e6digit(-12, -6); + add1e6digit(-6); + return minus ? negate(lowBits, highBits) : newBits(lowBits, highBits); +} +exports.int64FromString = int64FromString; +/** + * Losslessly converts a 64-bit signed integer in 32:32 split representation + * into a decimal string. + * + * Copyright 2008 Google Inc. All rights reserved. + * + * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10 + */ +function int64ToString(lo, hi) { + let bits = newBits(lo, hi); + // If we're treating the input as a signed value and the high bit is set, do + // a manual two's complement conversion before the decimal conversion. + const negative = bits.hi & 0x80000000; + if (negative) { + bits = negate(bits.lo, bits.hi); + } + const result = uInt64ToString(bits.lo, bits.hi); + return negative ? "-" + result : result; +} +exports.int64ToString = int64ToString; +/** + * Losslessly converts a 64-bit unsigned integer in 32:32 split representation + * into a decimal string. + * + * Copyright 2008 Google Inc. All rights reserved. + * + * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10 + */ +function uInt64ToString(lo, hi) { + ({ lo, hi } = toUnsigned(lo, hi)); + // Skip the expensive conversion if the number is small enough to use the + // built-in conversions. + // Number.MAX_SAFE_INTEGER = 0x001FFFFF FFFFFFFF, thus any number with + // highBits <= 0x1FFFFF can be safely expressed with a double and retain + // integer precision. + // Proven by: Number.isSafeInteger(0x1FFFFF * 2**32 + 0xFFFFFFFF) == true. + if (hi <= 0x1fffff) { + return String(TWO_PWR_32_DBL * hi + lo); + } + // What this code is doing is essentially converting the input number from + // base-2 to base-1e7, which allows us to represent the 64-bit range with + // only 3 (very large) digits. Those digits are then trivial to convert to + // a base-10 string. + // The magic numbers used here are - + // 2^24 = 16777216 = (1,6777216) in base-1e7. + // 2^48 = 281474976710656 = (2,8147497,6710656) in base-1e7. + // Split 32:32 representation into 16:24:24 representation so our + // intermediate digits don't overflow. + const low = lo & 0xffffff; + const mid = ((lo >>> 24) | (hi << 8)) & 0xffffff; + const high = (hi >> 16) & 0xffff; + // Assemble our three base-1e7 digits, ignoring carries. The maximum + // value in a digit at this step is representable as a 48-bit integer, which + // can be stored in a 64-bit floating point number. + let digitA = low + mid * 6777216 + high * 6710656; + let digitB = mid + high * 8147497; + let digitC = high * 2; + // Apply carries from A to B and from B to C. + const base = 10000000; + if (digitA >= base) { + digitB += Math.floor(digitA / base); + digitA %= base; + } + if (digitB >= base) { + digitC += Math.floor(digitB / base); + digitB %= base; + } + // If digitC is 0, then we should have returned in the trivial code path + // at the top for non-safe integers. Given this, we can assume both digitB + // and digitA need leading zeros. + return digitC.toString() + decimalFrom1e7WithLeadingZeros(digitB) + decimalFrom1e7WithLeadingZeros(digitA); +} +exports.uInt64ToString = uInt64ToString; +function toUnsigned(lo, hi) { + return { lo: lo >>> 0, hi: hi >>> 0 }; +} +function newBits(lo, hi) { + return { lo: lo | 0, hi: hi | 0 }; +} +/** + * Returns two's compliment negation of input. + * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Signed_32-bit_integers + */ +function negate(lowBits, highBits) { + highBits = ~highBits; + if (lowBits) { + lowBits = ~lowBits + 1; + } + else { + // If lowBits is 0, then bitwise-not is 0xFFFFFFFF, + // adding 1 to that, results in 0x100000000, which leaves + // the low bits 0x0 and simply adds one to the high bits. + highBits += 1; + } + return newBits(lowBits, highBits); +} +/** + * Returns decimal representation of digit1e7 with leading zeros. + */ +const decimalFrom1e7WithLeadingZeros = (digit1e7) => { + const partial = String(digit1e7); + return "0000000".slice(partial.length) + partial; +}; +/** + * Write a 32 bit varint, signed or unsigned. Same as `varint64write(0, value, bytes)` + * + * Copyright 2008 Google Inc. All rights reserved. + * + * See https://github.com/protocolbuffers/protobuf/blob/1b18833f4f2a2f681f4e4a25cdf3b0a43115ec26/js/binary/encoder.js#L144 + */ +function varint32write(value, bytes) { + if (value >= 0) { + // write value as varint 32 + while (value > 0x7f) { + bytes.push((value & 0x7f) | 0x80); + value = value >>> 7; + } + bytes.push(value); + } + else { + for (let i = 0; i < 9; i++) { + bytes.push((value & 127) | 128); + value = value >> 7; + } + bytes.push(1); + } +} +exports.varint32write = varint32write; +/** + * Read an unsigned 32 bit varint. + * + * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L220 + */ +function varint32read() { + let b = this.buf[this.pos++]; + let result = b & 0x7f; + if ((b & 0x80) == 0) { + this.assertBounds(); + return result; + } + b = this.buf[this.pos++]; + result |= (b & 0x7f) << 7; + if ((b & 0x80) == 0) { + this.assertBounds(); + return result; + } + b = this.buf[this.pos++]; + result |= (b & 0x7f) << 14; + if ((b & 0x80) == 0) { + this.assertBounds(); + return result; + } + b = this.buf[this.pos++]; + result |= (b & 0x7f) << 21; + if ((b & 0x80) == 0) { + this.assertBounds(); + return result; + } + // Extract only last 4 bits + b = this.buf[this.pos++]; + result |= (b & 0x0f) << 28; + for (let readBytes = 5; (b & 0x80) !== 0 && readBytes < 10; readBytes++) + b = this.buf[this.pos++]; + if ((b & 0x80) != 0) + throw new Error("invalid varint"); + this.assertBounds(); + // Result can have 32 bits, convert it to unsigned + return result >>> 0; +} +exports.varint32read = varint32read; +/** + * encode zig zag + */ +function zzEncode(lo, hi) { + let mask = hi >> 31; + hi = (((hi << 1) | (lo >>> 31)) ^ mask) >>> 0; + lo = ((lo << 1) ^ mask) >>> 0; + return [lo, hi]; +} +exports.zzEncode = zzEncode; +/** + * decode zig zag + */ +function zzDecode(lo, hi) { + let mask = -(lo & 1); + lo = (((lo >>> 1) | (hi << 31)) ^ mask) >>> 0; + hi = ((hi >>> 1) ^ mask) >>> 0; + return [lo, hi]; +} +exports.zzDecode = zzDecode; +/** + * unsigned int32 without moving pos. + */ +function readUInt32(buf, pos) { + return (buf[pos] | (buf[pos + 1] << 8) | (buf[pos + 2] << 16)) + buf[pos + 3] * 0x1000000; +} +exports.readUInt32 = readUInt32; +/** + * signed int32 without moving pos. + */ +function readInt32(buf, pos) { + return (buf[pos] | (buf[pos + 1] << 8) | (buf[pos + 2] << 16)) + (buf[pos + 3] << 24); +} +exports.readInt32 = readInt32; +/** + * writing varint32 to pos + */ +function writeVarint32(val, buf, pos) { + while (val > 127) { + buf[pos++] = (val & 127) | 128; + val >>>= 7; + } + buf[pos] = val; +} +exports.writeVarint32 = writeVarint32; +/** + * writing varint64 to pos + */ +function writeVarint64(val, buf, pos) { + while (val.hi) { + buf[pos++] = (val.lo & 127) | 128; + val.lo = ((val.lo >>> 7) | (val.hi << 25)) >>> 0; + val.hi >>>= 7; + } + while (val.lo > 127) { + buf[pos++] = (val.lo & 127) | 128; + val.lo = val.lo >>> 7; + } + buf[pos++] = val.lo; +} +exports.writeVarint64 = writeVarint64; +function int64Length(lo, hi) { + let part0 = lo, part1 = ((lo >>> 28) | (hi << 4)) >>> 0, part2 = hi >>> 24; + return part2 === 0 + ? part1 === 0 + ? part0 < 16384 + ? part0 < 128 + ? 1 + : 2 + : part0 < 2097152 + ? 3 + : 4 + : part1 < 16384 + ? part1 < 128 + ? 5 + : 6 + : part1 < 2097152 + ? 7 + : 8 + : part2 < 128 + ? 9 + : 10; +} +exports.int64Length = int64Length; +function writeFixed32(val, buf, pos) { + buf[pos] = val & 255; + buf[pos + 1] = (val >>> 8) & 255; + buf[pos + 2] = (val >>> 16) & 255; + buf[pos + 3] = val >>> 24; +} +exports.writeFixed32 = writeFixed32; +function writeByte(val, buf, pos) { + buf[pos] = val & 255; +} +exports.writeByte = writeByte; +//# sourceMappingURL=varint.js.map + +/***/ }), + /***/ "./node_modules/create-ecdh/browser.js": /*!*********************************************!*\ !*** ./node_modules/create-ecdh/browser.js ***! @@ -129891,32 +126707,32 @@ module.exports = ws /***/ }), -/***/ "./node_modules/libsodium-wrappers/dist/modules/libsodium-wrappers.js": -/*!****************************************************************************!*\ - !*** ./node_modules/libsodium-wrappers/dist/modules/libsodium-wrappers.js ***! - \****************************************************************************/ +/***/ "./node_modules/libsodium-sumo/dist/modules-sumo/libsodium-sumo.js": +/*!*************************************************************************!*\ + !*** ./node_modules/libsodium-sumo/dist/modules-sumo/libsodium-sumo.js ***! + \*************************************************************************/ /***/ (function(module, exports, __webpack_require__) { -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!function(e){function r(e,r){"use strict";var t,a="uint8array",_=r.ready.then((function(){function a(){if(0!==t._sodium_init())throw new Error("libsodium was not correctly initialized.");for(var r=["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_keypair","crypto_box_curve25519xchacha20poly1305_seal","crypto_box_curve25519xchacha20poly1305_seal_open","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"],a=[x,k,S,T,w,Y,B,A,K,M,I,N,L,U,O,C,R,P,G,X,D,F,V,H,q,j,z,W,J,Q,Z,$,ee,re,te,ae,_e,se,ne,ce,oe,he,pe,ye,ie,le,ue,de,ve,ge,be,fe,me,Ee,xe,ke,Se,Te,we,Ye,Be,Ae,Ke,Me,Ie,Ne,Le,Ue,Oe,Ce,Re,Pe,Ge,Xe,De,Fe,Ve,He,qe,je,ze,We,Je,Qe,Ze,$e,er,rr,tr,ar,_r,sr,nr,cr,or,hr,pr,yr,ir,lr,ur,dr,vr,gr,br,fr,mr,Er,xr,kr,Sr,Tr,wr,Yr,Br,Ar,Kr,Mr,Ir,Nr,Lr,Ur,Or,Cr,Rr,Pr,Gr,Xr,Dr,Fr,Vr,Hr,qr,jr,zr,Wr,Jr,Qr,Zr,$r,et,rt,tt,at,_t,st,nt,ct,ot,ht,pt,yt,it,lt,ut,dt,vt,gt,bt,ft,mt,Et],_=0;_=240?(p=4,o=!0):y>=224?(p=3,o=!0):y>=192?(p=2,o=!0):y<128&&(p=1,o=!0)}while(!o);for(var i=p-(c.length-h),l=0;l>8&-39)<<8|87+(r=e[s]>>>4)+(r-10>>8&-39),_+=String.fromCharCode(255&a)+String.fromCharCode(a>>>8);return _}var o={ORIGINAL:1,ORIGINAL_NO_PADDING:3,URLSAFE:5,URLSAFE_NO_PADDING:7};function h(e){if(null==e)return o.URLSAFE_NO_PADDING;if(e!==o.ORIGINAL&&e!==o.ORIGINAL_NO_PADDING&&e!==o.URLSAFE&&e!=o.URLSAFE_NO_PADDING)throw new Error("unsupported base64 variant");return e}function p(e,r){r=h(r),e=E(_,e,"input");var a,_=[],s=0|Math.floor(e.length/3),c=e.length-3*s,o=4*s+(0!==c?0==(2&r)?4:2+(c>>>1):0),p=new u(o+1),y=d(e);return _.push(y),_.push(p.address),0===t._sodium_bin2base64(p.address,p.length,y,e.length,r)&&b(_,"conversion failed"),p.length=o,a=n(p.to_Uint8Array()),g(_),a}function y(e,r){var t=r||a;if(!i(t))throw new Error(t+" output format is not available");if(e instanceof u){if("uint8array"===t)return e.to_Uint8Array();if("text"===t)return n(e.to_Uint8Array());if("hex"===t)return c(e.to_Uint8Array());if("base64"===t)return p(e.to_Uint8Array(),o.URLSAFE_NO_PADDING);throw new Error('What is output format "'+t+'"?')}if("object"==typeof e){for(var _=Object.keys(e),s={},h=0;h<_.length;h++)s[_[h]]=y(e[_[h]],t);return s}if("string"==typeof e)return e;throw new TypeError("Cannot format output")}function i(e){for(var r=["uint8array","text","hex","base64"],t=0;t>>24>>>8,o,p);var x=y(v,n);return g(c),x}function ar(e){var r=[];l(e);var a=new u(0|t._crypto_kdf_keybytes()),_=a.address;r.push(_),t._crypto_kdf_keygen(_);var s=y(a,e);return g(r),s}function _r(e,r,a,_){var s=[];l(_),e=E(s,e,"clientPublicKey");var n,c=0|t._crypto_kx_publickeybytes();e.length!==c&&f(s,"invalid clientPublicKey length"),n=d(e),s.push(n),r=E(s,r,"clientSecretKey");var o,h=0|t._crypto_kx_secretkeybytes();r.length!==h&&f(s,"invalid clientSecretKey length"),o=d(r),s.push(o),a=E(s,a,"serverPublicKey");var p,i=0|t._crypto_kx_publickeybytes();a.length!==i&&f(s,"invalid serverPublicKey length"),p=d(a),s.push(p);var v=new u(0|t._crypto_kx_sessionkeybytes()),m=v.address;s.push(m);var x=new u(0|t._crypto_kx_sessionkeybytes()),k=x.address;if(s.push(k),0==(0|t._crypto_kx_client_session_keys(m,k,n,o,p))){var S=y({sharedRx:v,sharedTx:x},_);return g(s),S}b(s,"invalid usage")}function sr(e){var r=[];l(e);var a=new u(0|t._crypto_kx_publickeybytes()),_=a.address;r.push(_);var s=new u(0|t._crypto_kx_secretkeybytes()),n=s.address;if(r.push(n),0==(0|t._crypto_kx_keypair(_,n))){var c={publicKey:y(a,e),privateKey:y(s,e),keyType:"x25519"};return g(r),c}b(r,"internal error")}function nr(e,r){var a=[];l(r),e=E(a,e,"seed");var _,s=0|t._crypto_kx_seedbytes();e.length!==s&&f(a,"invalid seed length"),_=d(e),a.push(_);var n=new u(0|t._crypto_kx_publickeybytes()),c=n.address;a.push(c);var o=new u(0|t._crypto_kx_secretkeybytes()),h=o.address;if(a.push(h),0==(0|t._crypto_kx_seed_keypair(c,h,_))){var p={publicKey:y(n,r),privateKey:y(o,r),keyType:"x25519"};return g(a),p}b(a,"internal error")}function cr(e,r,a,_){var s=[];l(_),e=E(s,e,"serverPublicKey");var n,c=0|t._crypto_kx_publickeybytes();e.length!==c&&f(s,"invalid serverPublicKey length"),n=d(e),s.push(n),r=E(s,r,"serverSecretKey");var o,h=0|t._crypto_kx_secretkeybytes();r.length!==h&&f(s,"invalid serverSecretKey length"),o=d(r),s.push(o),a=E(s,a,"clientPublicKey");var p,i=0|t._crypto_kx_publickeybytes();a.length!==i&&f(s,"invalid clientPublicKey length"),p=d(a),s.push(p);var v=new u(0|t._crypto_kx_sessionkeybytes()),m=v.address;s.push(m);var x=new u(0|t._crypto_kx_sessionkeybytes()),k=x.address;if(s.push(k),0==(0|t._crypto_kx_server_session_keys(m,k,n,o,p))){var S=y({sharedRx:v,sharedTx:x},_);return g(s),S}b(s,"invalid usage")}function or(e,r,a){var _=[];l(a);var s=d(e=E(_,e,"message")),n=e.length;_.push(s),r=E(_,r,"key");var c,o=0|t._crypto_onetimeauth_keybytes();r.length!==o&&f(_,"invalid key length"),c=d(r),_.push(c);var h=new u(0|t._crypto_onetimeauth_bytes()),p=h.address;if(_.push(p),0==(0|t._crypto_onetimeauth(p,s,n,0,c))){var i=y(h,a);return g(_),i}b(_,"invalid usage")}function hr(e,r){var a=[];l(r),m(a,e,"state_address");var _=new u(0|t._crypto_onetimeauth_bytes()),s=_.address;if(a.push(s),0==(0|t._crypto_onetimeauth_final(e,s))){var n=(t._free(e),y(_,r));return g(a),n}b(a,"invalid usage")}function pr(e,r){var a=[];l(r);var _=null;null!=e&&(_=d(e=E(a,e,"key")),e.length,a.push(_));var s=new u(144).address;if(0==(0|t._crypto_onetimeauth_init(s,_))){var n=s;return g(a),n}b(a,"invalid usage")}function yr(e){var r=[];l(e);var a=new u(0|t._crypto_onetimeauth_keybytes()),_=a.address;r.push(_),t._crypto_onetimeauth_keygen(_);var s=y(a,e);return g(r),s}function ir(e,r,a){var _=[];l(a),m(_,e,"state_address");var s=d(r=E(_,r,"message_chunk")),n=r.length;_.push(s),0!=(0|t._crypto_onetimeauth_update(e,s,n))&&b(_,"invalid usage"),g(_)}function lr(e,r,a){var _=[];e=E(_,e,"hash");var s,n=0|t._crypto_onetimeauth_bytes();e.length!==n&&f(_,"invalid hash length"),s=d(e),_.push(s);var c=d(r=E(_,r,"message")),o=r.length;_.push(c),a=E(_,a,"key");var h,p=0|t._crypto_onetimeauth_keybytes();a.length!==p&&f(_,"invalid key length"),h=d(a),_.push(h);var y=0==(0|t._crypto_onetimeauth_verify(s,c,o,0,h));return g(_),y}function ur(e,r,a,_,s,n,c){var o=[];l(c),m(o,e,"keyLength"),("number"!=typeof e||(0|e)!==e||e<0)&&f(o,"keyLength must be an unsigned integer");var h=d(r=E(o,r,"password")),p=r.length;o.push(h),a=E(o,a,"salt");var i,v=0|t._crypto_pwhash_saltbytes();a.length!==v&&f(o,"invalid salt length"),i=d(a),o.push(i),m(o,_,"opsLimit"),("number"!=typeof _||(0|_)!==_||_<0)&&f(o,"opsLimit must be an unsigned integer"),m(o,s,"memLimit"),("number"!=typeof s||(0|s)!==s||s<0)&&f(o,"memLimit must be an unsigned integer"),m(o,n,"algorithm"),("number"!=typeof n||(0|n)!==n||n<0)&&f(o,"algorithm must be an unsigned integer");var x=new u(0|e),k=x.address;if(o.push(k),0==(0|t._crypto_pwhash(k,e,0,h,p,0,i,_,0,s,n))){var S=y(x,c);return g(o),S}b(o,"invalid usage")}function dr(e,r,a,_,s,n){var c=[];l(n),m(c,e,"keyLength"),("number"!=typeof e||(0|e)!==e||e<0)&&f(c,"keyLength must be an unsigned integer");var o=d(r=E(c,r,"password")),h=r.length;c.push(o),a=E(c,a,"salt");var p,i=0|t._crypto_pwhash_scryptsalsa208sha256_saltbytes();a.length!==i&&f(c,"invalid salt length"),p=d(a),c.push(p),m(c,_,"opsLimit"),("number"!=typeof _||(0|_)!==_||_<0)&&f(c,"opsLimit must be an unsigned integer"),m(c,s,"memLimit"),("number"!=typeof s||(0|s)!==s||s<0)&&f(c,"memLimit must be an unsigned integer");var v=new u(0|e),x=v.address;if(c.push(x),0==(0|t._crypto_pwhash_scryptsalsa208sha256(x,e,0,o,h,0,p,_,0,s))){var k=y(v,n);return g(c),k}b(c,"invalid usage")}function vr(e,r,a,_,s,n,c){var o=[];l(c);var h=d(e=E(o,e,"password")),p=e.length;o.push(h);var i=d(r=E(o,r,"salt")),v=r.length;o.push(i),m(o,a,"opsLimit"),("number"!=typeof a||(0|a)!==a||a<0)&&f(o,"opsLimit must be an unsigned integer"),m(o,_,"r"),("number"!=typeof _||(0|_)!==_||_<0)&&f(o,"r must be an unsigned integer"),m(o,s,"p"),("number"!=typeof s||(0|s)!==s||s<0)&&f(o,"p must be an unsigned integer"),m(o,n,"keyLength"),("number"!=typeof n||(0|n)!==n||n<0)&&f(o,"keyLength must be an unsigned integer");var x=new u(0|n),k=x.address;if(o.push(k),0==(0|t._crypto_pwhash_scryptsalsa208sha256_ll(h,p,i,v,a,0,_,s,k,n))){var S=y(x,c);return g(o),S}b(o,"invalid usage")}function gr(e,r,a,_){var s=[];l(_);var n=d(e=E(s,e,"password")),c=e.length;s.push(n),m(s,r,"opsLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&f(s,"opsLimit must be an unsigned integer"),m(s,a,"memLimit"),("number"!=typeof a||(0|a)!==a||a<0)&&f(s,"memLimit must be an unsigned integer");var o=new u(0|t._crypto_pwhash_scryptsalsa208sha256_strbytes()).address;if(s.push(o),0==(0|t._crypto_pwhash_scryptsalsa208sha256_str(o,n,c,0,r,0,a))){var h=t.UTF8ToString(o);return g(s),h}b(s,"invalid usage")}function br(e,r,a){var _=[];l(a),"string"!=typeof e&&f(_,"hashed_password must be a string"),e=s(e+"\0"),null!=c&&e.length-1!==c&&f(_,"invalid hashed_password length");var n=d(e),c=e.length-1;_.push(n);var o=d(r=E(_,r,"password")),h=r.length;_.push(o);var p=0==(0|t._crypto_pwhash_scryptsalsa208sha256_str_verify(n,o,h,0));return g(_),p}function fr(e,r,a,_){var s=[];l(_);var n=d(e=E(s,e,"password")),c=e.length;s.push(n),m(s,r,"opsLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&f(s,"opsLimit must be an unsigned integer"),m(s,a,"memLimit"),("number"!=typeof a||(0|a)!==a||a<0)&&f(s,"memLimit must be an unsigned integer");var o=new u(0|t._crypto_pwhash_strbytes()).address;if(s.push(o),0==(0|t._crypto_pwhash_str(o,n,c,0,r,0,a))){var h=t.UTF8ToString(o);return g(s),h}b(s,"invalid usage")}function mr(e,r,a,_){var n=[];l(_),"string"!=typeof e&&f(n,"hashed_password must be a string"),e=s(e+"\0"),null!=o&&e.length-1!==o&&f(n,"invalid hashed_password length");var c=d(e),o=e.length-1;n.push(c),m(n,r,"opsLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&f(n,"opsLimit must be an unsigned integer"),m(n,a,"memLimit"),("number"!=typeof a||(0|a)!==a||a<0)&&f(n,"memLimit must be an unsigned integer");var h=0!=(0|t._crypto_pwhash_str_needs_rehash(c,r,0,a));return g(n),h}function Er(e,r,a){var _=[];l(a),"string"!=typeof e&&f(_,"hashed_password must be a string"),e=s(e+"\0"),null!=c&&e.length-1!==c&&f(_,"invalid hashed_password length");var n=d(e),c=e.length-1;_.push(n);var o=d(r=E(_,r,"password")),h=r.length;_.push(o);var p=0==(0|t._crypto_pwhash_str_verify(n,o,h,0));return g(_),p}function xr(e,r,a){var _=[];l(a),e=E(_,e,"privateKey");var s,n=0|t._crypto_scalarmult_scalarbytes();e.length!==n&&f(_,"invalid privateKey length"),s=d(e),_.push(s),r=E(_,r,"publicKey");var c,o=0|t._crypto_scalarmult_bytes();r.length!==o&&f(_,"invalid publicKey length"),c=d(r),_.push(c);var h=new u(0|t._crypto_scalarmult_bytes()),p=h.address;if(_.push(p),0==(0|t._crypto_scalarmult(p,s,c))){var i=y(h,a);return g(_),i}b(_,"weak public key")}function kr(e,r){var a=[];l(r),e=E(a,e,"privateKey");var _,s=0|t._crypto_scalarmult_scalarbytes();e.length!==s&&f(a,"invalid privateKey length"),_=d(e),a.push(_);var n=new u(0|t._crypto_scalarmult_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_base(c,_))){var o=y(n,r);return g(a),o}b(a,"unknown error")}function Sr(e,r,a){var _=[];l(a),e=E(_,e,"n");var s,n=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&f(_,"invalid n length"),s=d(e),_.push(s),r=E(_,r,"p");var c,o=0|t._crypto_scalarmult_ed25519_bytes();r.length!==o&&f(_,"invalid p length"),c=d(r),_.push(c);var h=new u(0|t._crypto_scalarmult_ed25519_bytes()),p=h.address;if(_.push(p),0==(0|t._crypto_scalarmult_ed25519(p,s,c))){var i=y(h,a);return g(_),i}b(_,"invalid point or scalar is 0")}function Tr(e,r){var a=[];l(r),e=E(a,e,"scalar");var _,s=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&f(a,"invalid scalar length"),_=d(e),a.push(_);var n=new u(0|t._crypto_scalarmult_ed25519_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_ed25519_base(c,_))){var o=y(n,r);return g(a),o}b(a,"scalar is 0")}function wr(e,r){var a=[];l(r),e=E(a,e,"scalar");var _,s=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&f(a,"invalid scalar length"),_=d(e),a.push(_);var n=new u(0|t._crypto_scalarmult_ed25519_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_ed25519_base_noclamp(c,_))){var o=y(n,r);return g(a),o}b(a,"scalar is 0")}function Yr(e,r,a){var _=[];l(a),e=E(_,e,"n");var s,n=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&f(_,"invalid n length"),s=d(e),_.push(s),r=E(_,r,"p");var c,o=0|t._crypto_scalarmult_ed25519_bytes();r.length!==o&&f(_,"invalid p length"),c=d(r),_.push(c);var h=new u(0|t._crypto_scalarmult_ed25519_bytes()),p=h.address;if(_.push(p),0==(0|t._crypto_scalarmult_ed25519_noclamp(p,s,c))){var i=y(h,a);return g(_),i}b(_,"invalid point or scalar is 0")}function Br(e,r,a){var _=[];l(a),e=E(_,e,"scalar");var s,n=0|t._crypto_scalarmult_ristretto255_scalarbytes();e.length!==n&&f(_,"invalid scalar length"),s=d(e),_.push(s),r=E(_,r,"element");var c,o=0|t._crypto_scalarmult_ristretto255_bytes();r.length!==o&&f(_,"invalid element length"),c=d(r),_.push(c);var h=new u(0|t._crypto_scalarmult_ristretto255_bytes()),p=h.address;if(_.push(p),0==(0|t._crypto_scalarmult_ristretto255(p,s,c))){var i=y(h,a);return g(_),i}b(_,"result is identity element")}function Ar(e,r){var a=[];l(r),e=E(a,e,"scalar");var _,s=0|t._crypto_core_ristretto255_scalarbytes();e.length!==s&&f(a,"invalid scalar length"),_=d(e),a.push(_);var n=new u(0|t._crypto_core_ristretto255_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_ristretto255_base(c,_))){var o=y(n,r);return g(a),o}b(a,"scalar is 0")}function Kr(e,r,a,_){var s=[];l(_);var n=d(e=E(s,e,"message")),c=e.length;s.push(n),r=E(s,r,"nonce");var o,h=0|t._crypto_secretbox_noncebytes();r.length!==h&&f(s,"invalid nonce length"),o=d(r),s.push(o),a=E(s,a,"key");var p,i=0|t._crypto_secretbox_keybytes();a.length!==i&&f(s,"invalid key length"),p=d(a),s.push(p);var v=new u(0|c),m=v.address;s.push(m);var x=new u(0|t._crypto_secretbox_macbytes()),k=x.address;if(s.push(k),0==(0|t._crypto_secretbox_detached(m,k,n,c,0,o,p))){var S=y({mac:x,cipher:v},_);return g(s),S}b(s,"invalid usage")}function Mr(e,r,a,_){var s=[];l(_);var n=d(e=E(s,e,"message")),c=e.length;s.push(n),r=E(s,r,"nonce");var o,h=0|t._crypto_secretbox_noncebytes();r.length!==h&&f(s,"invalid nonce length"),o=d(r),s.push(o),a=E(s,a,"key");var p,i=0|t._crypto_secretbox_keybytes();a.length!==i&&f(s,"invalid key length"),p=d(a),s.push(p);var v=new u(c+t._crypto_secretbox_macbytes()|0),m=v.address;if(s.push(m),0==(0|t._crypto_secretbox_easy(m,n,c,0,o,p))){var x=y(v,_);return g(s),x}b(s,"invalid usage")}function Ir(e){var r=[];l(e);var a=new u(0|t._crypto_secretbox_keybytes()),_=a.address;r.push(_),t._crypto_secretbox_keygen(_);var s=y(a,e);return g(r),s}function Nr(e,r,a,_,s){var n=[];l(s);var c=d(e=E(n,e,"ciphertext")),o=e.length;n.push(c),r=E(n,r,"mac");var h,p=0|t._crypto_secretbox_macbytes();r.length!==p&&f(n,"invalid mac length"),h=d(r),n.push(h),a=E(n,a,"nonce");var i,v=0|t._crypto_secretbox_noncebytes();a.length!==v&&f(n,"invalid nonce length"),i=d(a),n.push(i),_=E(n,_,"key");var m,x=0|t._crypto_secretbox_keybytes();_.length!==x&&f(n,"invalid key length"),m=d(_),n.push(m);var k=new u(0|o),S=k.address;if(n.push(S),0==(0|t._crypto_secretbox_open_detached(S,c,h,o,0,i,m))){var T=y(k,s);return g(n),T}b(n,"wrong secret key for the given ciphertext")}function Lr(e,r,a,_){var s=[];l(_),e=E(s,e,"ciphertext");var n,c=t._crypto_secretbox_macbytes(),o=e.length;o>>0;return g([]),r}function bt(e,r){var a=[];l(r);for(var _=t._malloc(24),s=0;s<6;s++)t.setValue(_+4*s,t.Runtime.addFunction(e[["implementation_name","random","stir","uniform","buf","close"][s]]),"i32");0!=(0|t._randombytes_set_implementation(_))&&b(a,"unsupported implementation"),g(a)}function ft(e){l(e),t._randombytes_stir()}function mt(e,r){var a=[];l(r),m(a,e,"upper_bound"),("number"!=typeof e||(0|e)!==e||e<0)&&f(a,"upper_bound must be an unsigned integer");var _=t._randombytes_uniform(e)>>>0;return g(a),_}function Et(){var e=t._sodium_version_string(),r=t.UTF8ToString(e);return g([]),r}return u.prototype.to_Uint8Array=function(){var e=new Uint8Array(this.length);return e.set(t.HEAPU8.subarray(this.address,this.address+this.length)),e},e.add=function(e,r){if(!(e instanceof Uint8Array&&r instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can added");var t=e.length,a=0,_=0;if(r.length!=e.length)throw new TypeError("Arguments must have the same length");for(_=0;_>=8,a+=e[_]+r[_],e[_]=255&a},e.base64_variants=o,e.compare=function(e,r){if(!(e instanceof Uint8Array&&r instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be compared");if(e.length!==r.length)throw new TypeError("Only instances of identical length can be compared");for(var t=0,a=1,_=e.length;_-- >0;)t|=r[_]-e[_]>>8&a,a&=(r[_]^e[_])-1>>8;return t+t+a-1},e.from_base64=function(e,r){r=h(r);var a,_=[],s=new u(3*(e=E(_,e,"input")).length/4),n=d(e),c=v(4),o=v(4);return _.push(n),_.push(s.address),_.push(s.result_bin_len_p),_.push(s.b64_end_p),0!==t._sodium_base642bin(s.address,s.length,n,e.length,0,c,o,r)&&b(_,"invalid input"),t.getValue(o,"i32")-n!==e.length&&b(_,"incomplete input"),s.length=t.getValue(c,"i32"),a=s.to_Uint8Array(),g(_),a},e.from_hex=function(e){var r,a=[],_=new u((e=E(a,e,"input")).length/2),s=d(e),n=v(4);return a.push(s),a.push(_.address),a.push(_.hex_end_p),0!==t._sodium_hex2bin(_.address,_.length,s,e.length,0,0,n)&&b(a,"invalid input"),t.getValue(n,"i32")-s!==e.length&&b(a,"incomplete input"),r=_.to_Uint8Array(),g(a),r},e.from_string=s,e.increment=function(e){if(!(e instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be incremented");for(var r=256,t=0,a=e.length;t>=8,r+=e[t],e[t]=255&r},e.is_zero=function(e){if(!(e instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be checked");for(var r=0,t=0,a=e.length;t 0");var a,_=[],s=v(4),n=1,c=0,o=0|e.length,h=new u(o+r);_.push(s),_.push(h.address);for(var p=h.address,y=h.address+o+r;p>>48|o>>>32|o>>>16|o))-1>>16);return 0!==t._sodium_pad(s,h.address,e.length,r,h.length)&&b(_,"internal error"),h.length=t.getValue(s,"i32"),a=h.to_Uint8Array(),g(_),a},e.unpad=function(e,r){if(!(e instanceof Uint8Array))throw new TypeError("buffer must be a Uint8Array");if((r|=0)<=0)throw new Error("block size must be > 0");var a=[],_=d(e),s=v(4);return a.push(_),a.push(s),0!==t._sodium_unpad(s,_,e.length,r)&&b(a,"unsupported/invalid padding"),e=(e=new Uint8Array(e)).subarray(0,t.getValue(s,"i32")),g(a),e},e.ready=_,e.symbols=function(){return Object.keys(e).sort()},e.to_base64=p,e.to_hex=c,e.to_string=n,e}var t="object"==typeof e.sodium&&"function"==typeof e.sodium.onload?e.sodium.onload:null; true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports,__webpack_require__(/*! libsodium */ "./node_modules/libsodium/dist/modules/libsodium.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (r), +var __dirname = "/"; +/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; +var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!function(A){function I(A){"use strict";var I;void 0===(I=A)&&(I={});var g=I;"object"!=typeof g.sodium&&("object"==typeof __webpack_require__.g?g=__webpack_require__.g:"object"==typeof window&&(g=window));var C=I;return I.ready=new Promise((function(A,I){(Q=C).onAbort=I,Q.print=function(A){},Q.printErr=function(A){},Q.onRuntimeInitialized=function(){try{Q._crypto_secretbox_keybytes(),A()}catch(A){I(A)}},Q.useBackupModule=function(){return new Promise((function(A,I){(Q={}).onAbort=I,Q.onRuntimeInitialized=function(){Object.keys(C).forEach((function(A){"getRandomValue"!==A&&delete C[A]})),Object.keys(Q).forEach((function(A){C[A]=Q[A]})),A()};var g,B,Q=void 0!==Q?Q:{},i=Object.assign({},Q),o="object"==typeof window,E="function"==typeof importScripts,a= true&&"object"==typeof ({"env":{"NODE_ENV":"production"}}).versions&&"string"==typeof ({"env":{"NODE_ENV":"production"}}).versions.node,_="";if(a){var c=__webpack_require__(/*! fs */ "?0b9d"),t=__webpack_require__(/*! path */ "?5b1a");_=E?t.dirname(_)+"/":__dirname+"/",g=(A,I)=>(A=function(A){return A.startsWith("file://")}(A)?new URL(A):t.normalize(A),c.readFileSync(A,I?void 0:"utf8")),B=A=>{var I=g(A,!0);return I.buffer||(I=new Uint8Array(I)),I},!Q.thisProgram&&({"env":{"NODE_ENV":"production"}}).argv.length>1&&({"env":{"NODE_ENV":"production"}}).argv[1].replace(/\\/g,"/"),({"env":{"NODE_ENV":"production"}}).argv.slice(2), true&&(module.exports=Q),Q.inspect=()=>"[Emscripten Module object]"}else(o||E)&&(E?_=self.location.href:"undefined"!=typeof document&&document.currentScript&&(_=document.currentScript.src),_=0!==_.indexOf("blob:")?_.substr(0,_.replace(/[?#].*/,"").lastIndexOf("/")+1):"",g=A=>{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.send(null),I.responseText},E&&(B=A=>{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)}));Q.print;var r,e=Q.printErr||void 0;Object.assign(Q,i),i=null,Q.arguments&&Q.arguments,Q.thisProgram&&Q.thisProgram,Q.quit&&Q.quit,Q.wasmBinary&&(r=Q.wasmBinary),Q.noExitRuntime;var y,s={Memory:function(A){this.buffer=new ArrayBuffer(65536*A.initial)},Module:function(A){},Instance:function(A,I){this.exports=function(A){for(var I,g=new Uint8Array(123),C=25;C>=0;--C)g[48+C]=52+C,g[65+C]=C,g[97+C]=26+C;function B(A,I,C){for(var B,Q,i=0,o=I,E=C.length,a=I+(3*E>>2)-("="==C[E-2])-("="==C[E-1]);i>4,o>2),o>>0>P>>>0?E+1|0:E)|0,E=(QA=(_=P)>>>0>(P=P+QA|0)>>>0?E+1|0:E)+yA|0,iA=eA=P+rA|0,eA=E=eA>>>0

>>0?E+1|0:E,P=KI(P^(a[A+80|0]|a[A+81|0]<<8|a[A+82|0]<<16|a[A+83|0]<<24)^-79577749,QA^(a[A+84|0]|a[A+85|0]<<8|a[A+86|0]<<16|a[A+87|0]<<24)^528734635,32),kA=E=w,E=E+1013904242|0,QA=P,Z=E=(P=P-23791573|0)>>>0<4271175723?E+1|0:E,_A=KI(P^aA,E^_A,40),E=(E=eA)+(eA=w)|0,aA=KI(QA^(h=aA=_A+iA|0),kA^(D=h>>>0<_A>>>0?E+1|0:E),48),E=Z+(v=w)|0,k=E=(aA=P+(p=aA)|0)>>>0

>>0?E+1|0:E,aA=E=KI(_A^(n=aA),eA^E,1),Z=P=w,eA=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,kA=E=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,tA=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,P=(_A=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24)+(QA=a[A+40|0]|a[A+41|0]<<8|a[A+42|0]<<16|a[A+43|0]<<24)|0,E=(GA=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24)+(bA=a[A+44|0]|a[A+45|0]<<8|a[A+46|0]<<16|a[A+47|0]<<24)|0,E=(a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24)+(P>>>0>>0?E+1|0:E)|0,E=kA+(iA=(_=P)>>>0>(P=P+tA|0)>>>0?E+1|0:E)|0,E=(tA=P+eA|0)>>>0

>>0?E+1|0:E,_=KI(P^(a[A+72|0]|a[A+73|0]<<8|a[A+74|0]<<16|a[A+75|0]<<24)^725511199,iA^(a[A+76|0]|a[A+77|0]<<8|a[A+78|0]<<16|a[A+79|0]<<24)^-1694144372,32),e=KI(QA^(c=_-2067093701|0),bA^(x=(J=P=w)-((_>>>0<2067093701)+1150833018|0)|0),40),E=(L=w)+E|0,E=(d=(F=P=e+tA|0)>>>0>>0?E+1|0:E)+Z|0,E=(F>>>0>(P=F+aA|0)>>>0?E+1|0:E)+X|0,E=(QA=(t=P)>>>0>(P=P+oA|0)>>>0?E+1|0:E)+z|0,m=z=P+g|0,s=E=z>>>0

>>0?E+1|0:E,f=aA,fA=Z,Z=P,iA=QA,aA=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,P=E=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,bA=E=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,Q=QA=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,X=E,E=(FA=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24)+(r=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24)|0,E=Q+((z=a[A+32|0]|a[A+33|0]<<8|a[A+34|0]<<16|a[A+35|0]<<24)>>>0>(t=z+(QA=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24)|0)>>>0?E+1|0:E)|0,E=(tA=(X=t+X|0)>>>0>>0?E+1|0:E)+P|0,pA=t=X+aA|0,t=E=t>>>0>>0?E+1|0:E,y=z,z=KI(X^(a[0|(E=A- -64|0)]|a[E+1|0]<<8|a[E+2|0]<<16|a[E+3|0]<<24)^-1377402159,tA^(a[E+4|0]|a[E+5|0]<<8|a[E+6|0]<<16|a[E+7|0]<<24)^1359893119,32),tA=E=w,E=E+1779033703|0,X=z,K=E=(z=z-205731576|0)>>>0<4089235720?E+1|0:E,r=KI(y^(N=z),E^r,40),E=(l=w)+t|0,y=KI(X^(t=z=r+pA|0),tA^(G=r>>>0>t>>>0?E+1|0:E),48),E=KI(y^Z,(T=w)^iA,32),V=z=w,u=E,C=E=a[I+60|0]|a[I+61|0]<<8|a[I+62|0]<<16|a[I+63|0]<<24,tA=pA=a[I+56|0]|a[I+57|0]<<8|a[I+58|0]<<16|a[I+59|0]<<24,b=a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,z=(iA=a[I+48|0]|a[I+49|0]<<8|a[I+50|0]<<16|a[I+51|0]<<24)+(X=a[A+56|0]|a[A+57|0]<<8|a[A+58|0]<<16|a[A+59|0]<<24)|0,E=(NA=a[I+52|0]|a[I+53|0]<<8|a[I+54|0]<<16|a[I+55|0]<<24)+(U=a[A+60|0]|a[A+61|0]<<8|a[A+62|0]<<16|a[A+63|0]<<24)|0,E=(a[A+28|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24)+(z>>>0>>0?E+1|0:E)|0,E=C+(Z=(M=z)>>>0>(z=b+z|0)>>>0?E+1|0:E)|0,E=(b=z+tA|0)>>>0>>0?E+1|0:E,Z=KI(z^(a[A+88|0]|a[A+89|0]<<8|a[A+90|0]<<16|a[A+91|0]<<24)^327033209,Z^(a[A+92|0]|a[A+93|0]<<8|a[A+94|0]<<16|a[A+95|0]<<24)^1541459225,32),X=KI(X^(tA=Z+1595750129|0),(M=U)^(U=(H=z=w)-((Z>>>0<2699217167)+1521486533|0)|0),40),E=(IA=w)+E|0,z=KI((b=z=X+b|0)^Z,H^(M=b>>>0>>0?E+1|0:E),48),E=U+($=w)|0,Y=E=(z=tA+(U=z)|0)>>>0>>0?E+1|0:E,E=V+E|0,O=f^(Z=u+(H=z)|0),f=E=Z>>>0>>0?E+1|0:E,tA=KI(O,E^fA,40),E=(fA=w)+s|0,z=KI(m=u^(s=z=tA+m|0),V^(u=s>>>0>>0?E+1|0:E),48),E=f+(CA=w)|0,V=E=(f=Z+(m=z)|0)>>>0>>0?E+1|0:E,z=(R=KI(f^tA,fA^E,1))+(Z=a[I+72|0]|a[I+73|0]<<8|a[I+74|0]<<16|a[I+75|0]<<24)|0,E=(hA=w)+(fA=a[I+76|0]|a[I+77|0]<<8|a[I+78|0]<<16|a[I+79|0]<<24)|0,nA=z,q=z>>>0>>0?E+1|0:E,W=sA,z=a[I+96|0]|a[I+97|0]<<8|a[I+98|0]<<16|a[I+99|0]<<24,tA=E=a[I+100|0]|a[I+101|0]<<8|a[I+102|0]<<16|a[I+103|0]<<24,X=(E=h)+(h=KI(H^X,Y^IA,1))|0,E=(H=w)+D|0,E=(h>>>0>X>>>0?E+1|0:E)+tA|0,E=(D=(D=X)>>>0>(X=z+X|0)>>>0?E+1|0:E)+W|0,O=Y=X+gA|0,Y=E=Y>>>0>>0?E+1|0:E,F=KI(_^F,d^J,48),d=E=KI(F^X,(J=w)^D,32),E=K+T|0,E=(IA=X=w)+(N=(X=y+N|0)>>>0>>0?E+1|0:E)|0,K=E=(D=X)>>>0>(y=D+d|0)>>>0?E+1|0:E,h=KI(y^h,H^E,40),E=(T=w)+Y|0,E=(H=h>>>0>(Y=X=h+O|0)>>>0?E+1|0:E)+q|0,E=(_=Y>>>0>(X=Y+nA|0)>>>0?E+1|0:E)+wA|0,nA=q=X+EA|0,q=E=q>>>0>>0?E+1|0:E,O=X,W=_,X=a[I+116|0]|a[I+117|0]<<8|a[I+118|0]<<16|a[I+119|0]<<24,I=a[I+112|0]|a[I+113|0]<<8|a[I+114|0]<<16|a[I+115|0]<<24,r=KI(r^D,N^l,1),E=(l=w)+M|0,E=((_=r+b|0)>>>0>>0?E+1|0:E)+X|0,E=(D=(N=_)>>>0>(_=I+_|0)>>>0?E+1|0:E)+wA|0,MA=N=_+EA|0,N=E=N>>>0<_>>>0?E+1|0:E,E=KI(_^p,D^v,32),AA=_=w,p=E,D=_,E=J+x|0,F=_=c+F|0,b=E=_>>>0>>0?E+1|0:E,E=E+D|0,M=_=_+p|0,v=E=F>>>0>_>>>0?E+1|0:E,D=KI(_^r,l^E,40),E=(l=w)+N|0,p=KI((_=D+MA|0)^p,AA^(c=_>>>0>>0?E+1|0:E),48),E=KI(p^O,(MA=w)^W,32),AA=r=w,N=E,O=r,e=KI(e^F,b^L,1),E=G+(F=w)|0,E=((r=t)>>>0>(t=t+e|0)>>>0?E+1|0:E)+BA|0,E=(t=(r=t+j|0)>>>0>>0?E+1|0:E)+fA|0,W=G=r+Z|0,G=E=G>>>0>>0?E+1|0:E,b=e,r=KI(r^U,t^$,32),E=(U=w)+k|0,n=KI(b^(t=e=r+n|0),(k=r>>>0>t>>>0?E+1|0:E)^F,40),E=($=w)+G|0,F=e=n+W|0,e=KI(r^e,U^(G=e>>>0>>0?E+1|0:E),48),E=k+(i=w)|0,k=e,U=E=(e=t+e|0)>>>0>>0?E+1|0:E,E=E+O|0,E=(b=e)>>>0>(e=e+N|0)>>>0?E+1|0:E,O=e,e^=R,R=E,r=KI(e,hA^E,40),E=(hA=w)+q|0,q=e=r+nA|0,E=B+(W=r>>>0>e>>>0?E+1|0:E)|0,nA=e=e+g|0,J=E=e>>>0>>0?E+1|0:E,e=_,x=gA,L=sA,_=KI(d^Y,H^IA,48),E=K+(IA=w)|0,d=_,K=E=(t=y+_|0)>>>0>>0?E+1|0:E,_=KI(t^h,T^E,1),E=(y=w)+L|0,E=((h=_+x|0)>>>0<_>>>0?E+1|0:E)+c|0,E=NA+(e=(c=e+h|0)>>>0>>0?E+1|0:E)|0,Y=h=c+iA|0,h=E=h>>>0>>0?E+1|0:E,c=KI(c^k,e^i,32),E=V+(H=w)|0,k=c,f=E=(c=f+c|0)>>>0>>0?E+1|0:E,e=KI(_^c,E^y,40),E=(E=h)+(h=w)|0,y=_=e+Y|0,_=KI(_^k,H^(Y=_>>>0>>0?E+1|0:E),48),E=f+(T=w)|0,H=_,V=E=(f=c+_|0)>>>0>>0?E+1|0:E,_=KI(e^f,h^E,1),E=(h=w)+J|0,E=C+(e=(c=_+nA|0)>>>0<_>>>0?E+1|0:E)|0,nA=k=c+pA|0,k=E=k>>>0>>0?E+1|0:E,J=_,x=h,E=v+MA|0,E=(_=p+M|0)>>>0

>>0?E+1|0:E,p=_,M=E,E=KI(_^D,l^E,1),D=h=w,_=E,E=G+X|0,E=((F=I+F|0)>>>0>>0?E+1|0:E)+h|0,E=DA+(F=(h=_+F|0)>>>0>>0?E+1|0:E)|0,v=G=h+oA|0,G=E=G>>>0>>0?E+1|0:E,h=KI(h^m,F^CA,32),E=K+(m=w)|0,F=h,K=E=(K=t)>>>0>(t=t+h|0)>>>0?E+1|0:E,h=KI(_^t,E^D,40),E=(l=w)+G|0,D=_=h+v|0,_=KI(G=_^F,m^(F=_>>>0>>0?E+1|0:E),48),E=K+(CA=w)|0,K=_,G=_=t+_|0,m=E=_>>>0>>0?E+1|0:E,v=c,L=e,_=KI(n^b,U^$,1),E=(t=w)+S|0,E=u+((c=_+cA|0)>>>0<_>>>0?E+1|0:E)|0,E=BA+(e=(c=c+s|0)>>>0>>0?E+1|0:E)|0,u=s=c+j|0,s=E=s>>>0>>0?E+1|0:E,n=_,_=(c=KI(c^d,e^IA,32))+p|0,E=(p=w)+M|0,e=_,t=KI(_^n,(d=_>>>0>>0?E+1|0:E)^t,40),E=(IA=w)+s|0,s=_=t+u|0,b=KI(_^c,p^(u=_>>>0>>0?E+1|0:E),48),c=KI(b^v,(E=L)^(L=w),32),E=(v=w)+m|0,p=_=c+G|0,n=KI(_^J,(M=_>>>0>>0?E+1|0:E)^x,40),E=(J=w)+k|0,k=_=n+nA|0,_=KI(_^c,v^(U=_>>>0>>0?E+1|0:E),48),E=M+($=w)|0,M=_,v=E=(c=p)>>>0>(p=p+_|0)>>>0?E+1|0:E,_=KI(p^n,J^E,1),E=wA+(nA=w)|0,J=_,MA=_=EA+_|0,n=E=_>>>0>>0?E+1|0:E,c=rA,_=KI(h^G,l^m,1),E=Y+(h=w)|0,E=((G=y)>>>0>(y=_+y|0)>>>0?E+1|0:E)+yA|0,E=(G=(c=c+y|0)>>>0>>0?E+1|0:E)+kA|0,x=y=c+eA|0,Y=E=y>>>0>>0?E+1|0:E,m=_,y=KI(N^q,W^AA,48),E=KI(y^c,(l=w)^G,32),AA=_=w,N=E,c=_,E=d+L|0,E=(_=e+b|0)>>>0>>0?E+1|0:E,e=_,d=E,E=E+c|0,G=_=_+N|0,b=E=e>>>0>_>>>0?E+1|0:E,c=KI(_^m,E^h,40),E=(E=Y)+(Y=w)|0,m=_=c+x|0,q=E=_>>>0>>0?E+1|0:E,E=E+n|0,W=E=(h=_+MA|0)>>>0<_>>>0?E+1|0:E,n=E,_=KI(t^e,d^IA,1),E=P+(t=w)|0,E=F+((e=_+aA|0)>>>0>>0?E+1|0:E)|0,E=tA+(D=(e=e+D|0)>>>0>>0?E+1|0:E)|0,x=F=e+z|0,F=E=F>>>0>>0?E+1|0:E,d=_,E=KI(e^H,D^T,32),L=_=w,e=E,D=_,E=l+R|0,H=_=y+O|0,R=E=_>>>0>>0?E+1|0:E,E=E+D|0,E=(y=_+e|0)>>>0<_>>>0?E+1|0:E,_=y^d,d=E,D=KI(_,E^t,40),E=(T=w)+F|0,t=_=D+x|0,O=KI(_^e,L^(F=_>>>0>>0?E+1|0:E),48),E=KI(O^h,(IA=w)^n,32),MA=_=w,x=E,n=_,_=KI(r^H,R^hA,1),E=u+(r=w)|0,E=FA+((e=_+s|0)>>>0>>0?E+1|0:E)|0,E=(s=(e=e+QA|0)>>>0>>0?E+1|0:E)+GA|0,H=u=e+_A|0,u=E=u>>>0>>0?E+1|0:E,e=KI(e^K,s^CA,32),E=V+(R=w)|0,K=e,s=r,r=E=(e=f+e|0)>>>0>>0?E+1|0:E,s=KI(_^e,s^E,40),E=(CA=w)+u|0,f=_=s+H|0,_=KI(H=_^K,R^(K=_>>>0>>0?E+1|0:E),48),E=r+(l=w)|0,r=_,u=_=e+_|0,H=E=_>>>0>>0?E+1|0:E,E=E+n|0,V=E=(n=_+x|0)>>>0<_>>>0?E+1|0:E,e=KI(n^J,nA^E,40),E=W+(R=w)|0,E=((_=e+h|0)>>>0>>0?E+1|0:E)+sA|0,h=_,W=_=_+gA|0,J=E=h>>>0>_>>>0?E+1|0:E,L=BA,h=KI(N^m,q^AA,48),E=(hA=w)+b|0,N=_=h+G|0,E=KI(_^c,(G=_>>>0>>0?E+1|0:E)^Y,1),Y=c=w,_=E,E=F+B|0,E=((t=t+g|0)>>>0>>0?E+1|0:E)+c|0,E=(t=(c=_+t|0)>>>0>>0?E+1|0:E)+L|0,b=F=c+j|0,F=E=F>>>0>>0?E+1|0:E,c=KI(c^r,t^l,32),E=v+(m=w)|0,p=E=(r=c+p|0)>>>0

>>0?E+1|0:E,t=KI(_^r,E^Y,40),E=(q=w)+F|0,F=_=t+b|0,c=KI(_^c,m^(Y=_>>>0>>0?E+1|0:E),48),E=p+(b=w)|0,m=E=(p=c+r|0)>>>0>>0?E+1|0:E,_=KI(t^p,q^E,1),E=(q=w)+J|0,E=fA+((r=_+W|0)>>>0<_>>>0?E+1|0:E)|0,E=(t=(r=r+Z|0)>>>0>>0?E+1|0:E)+S|0,nA=S=r+cA|0,S=E=S>>>0>>0?E+1|0:E,v=_,L=r,l=t,r=rA,_=KI(s^u,H^CA,1),E=U+(s=w)|0,E=((t=k)>>>0>(k=_+k|0)>>>0?E+1|0:E)+yA|0,E=GA+(t=(r=r+k|0)>>>0>>0?E+1|0:E)|0,U=k=r+_A|0,u=E=k>>>0<_A>>>0?E+1|0:E,k=_,t=E=KI(r^h,t^hA,32),E=d+IA|0,E=(H=_=w)+(y=(_=y+O|0)>>>0>>0?E+1|0:E)|0,d=E=(h=_+t|0)>>>0<_>>>0?E+1|0:E,k=KI(h^k,E^s,40),E=(IA=w)+u|0,u=KI(U=(r=k+U|0)^t,H^(t=r>>>0>>0?E+1|0:E),48),E=KI(u^L,(CA=w)^l,32),hA=s=w,U=E,H=s,_=KI(_^D,y^T,1),E=tA+(s=w)|0,E=K+((y=_+z|0)>>>0>>0?E+1|0:E)|0,E=FA+(f=(y=y+f|0)>>>0>>0?E+1|0:E)|0,L=D=y+QA|0,D=E=D>>>0>>0?E+1|0:E,K=_,O=s,y=KI(y^M,f^$,32),E=(M=w)+G|0,s=_=y+N|0,f=KI(_^K,(N=_>>>0>>0?E+1|0:E)^O,40),E=(T=w)+D|0,K=_=f+L|0,_=KI(_^y,M^(G=_>>>0>>0?E+1|0:E),48),E=N+(L=w)|0,D=_,N=_=s+_|0,M=E=_>>>0>>0?E+1|0:E,E=E+H|0,H=_=_+U|0,y=q,q=E=N>>>0>_>>>0?E+1|0:E,y=KI(_^v,y^E,40),E=(E=S)+(S=w)|0,O=_=y+nA|0,v=E=_>>>0>>0?E+1|0:E,s=t,_=KI(x^W,J^MA,48),E=V+($=w)|0,V=_,t=(_=n+_|0)^e,e=E=_>>>0>>0?E+1|0:E,t=KI(t,E^R,1),E=(R=w)+s|0,E=C+((r=t+r|0)>>>0>>0?E+1|0:E)|0,E=(s=(r=r+pA|0)>>>0>>0?E+1|0:E)+P|0,W=n=r+aA|0,n=E=n>>>0>>0?E+1|0:E,r=KI(r^D,s^L,32),E=m+(J=w)|0,m=r,p=E=(s=p+r|0)>>>0

>>0?E+1|0:E,t=KI(t^s,R^E,40),E=(E=n)+(n=w)|0,D=r=t+W|0,r=KI(x=r^m,J^(m=r>>>0>>0?E+1|0:E),48),E=p+(nA=w)|0,R=r,W=E=(p=s+r|0)>>>0>>0?E+1|0:E,r=KI(t^p,n^E,1),E=(n=w)+v|0,E=B+((t=r+O|0)>>>0>>0?E+1|0:E)|0,E=X+(s=(t=t+g|0)>>>0>>0?E+1|0:E)|0,MA=J=I+t|0,J=E=J>>>0>>0?E+1|0:E,x=r,L=n,n=t,l=s,r=KI(f^N,M^T,1),E=(s=w)+Y|0,E=DA+((t=r+F|0)>>>0>>0?E+1|0:E)|0,E=(f=(t=t+oA|0)>>>0>>0?E+1|0:E)+X|0,Y=F=I+t|0,F=E=F>>>0>>0?E+1|0:E,N=r,t=E=KI(t^V,f^$,32),f=r=w,E=d+CA|0,d=E=(r=h+u|0)>>>0>>0?E+1|0:E,E=E+f|0,E=(h=r)>>>0>(r=r+t|0)>>>0?E+1|0:E,u=r,r^=N,N=E,s=KI(r,E^s,40),E=(T=w)+F|0,f=KI(F=(r=s+Y|0)^t,f^(t=r>>>0>>0?E+1|0:E),48),E=KI(f^n,(E=l)^(l=w),32),$=n=w,F=E,Y=e,e=c,E=KI(h^k,d^IA,1),M=c=w,h=E,E=G+kA|0,E=((k=K+eA|0)>>>0>>0?E+1|0:E)+c|0,k=E=(c=h+k|0)>>>0>>0?E+1|0:E,e=KI(c^e,E^b,32),E=(E=Y)+(Y=w)|0,h=KI((_=e+_|0)^h,M^(d=_>>>0>>0?E+1|0:E),40),E=k+(IA=w)|0,K=h,E=NA+((G=c)>>>0>(c=c+h|0)>>>0?E+1|0:E)|0,G=E=(h=c+iA|0)>>>0>>0?E+1|0:E,c=KI(e^h,Y^E,48),E=d+(CA=w)|0,b=_,e=c,d=_=_+c|0,Y=E=b>>>0>_>>>0?E+1|0:E,E=E+n|0,b=E=(n=_+F|0)>>>0<_>>>0?E+1|0:E,_=(k=KI(n^x,E^L,40))+MA|0,E=(MA=w)+J|0,M=_,V=_>>>0>>0?E+1|0:E,_=KI(U^O,v^hA,48),E=(U=w)+q|0,H=c=_+H|0,x=S,S=E=c>>>0<_>>>0?E+1|0:E,E=KI(c^y,x^E,1),O=c=w,y=E,E=t+C|0,E=((r=r+pA|0)>>>0>>0?E+1|0:E)+c|0,E=fA+(r=(c=r+y|0)>>>0>>0?E+1|0:E)|0,v=t=c+Z|0,t=E=t>>>0>>0?E+1|0:E,c=KI(c^e,r^CA,32),E=W+(J=w)|0,q=c,c=(e=p+c|0)^y,y=E=e>>>0

>>0?E+1|0:E,r=KI(c,O^E,40),E=(E=t)+(t=w)|0,O=c=r+v|0,c=KI(p=c^q,J^(q=c>>>0>>0?E+1|0:E),48),E=y+(CA=w)|0,W=c,e=E=(c=e+c|0)>>>0>>0?E+1|0:E,r=KI(c^r,t^E,1),E=(p=w)+V|0,E=wA+((t=r+M|0)>>>0>>0?E+1|0:E)|0,E=(y=(t=t+EA|0)>>>0>>0?E+1|0:E)+BA|0,AA=v=t+j|0,v=E=v>>>0>>0?E+1|0:E,J=r,x=t,L=y,r=KI(K^d,Y^IA,1),E=(Y=w)+sA|0,E=m+(r>>>0>(t=r+gA|0)>>>0?E+1|0:E)|0,y=E=(t=t+D|0)>>>0>>0?E+1|0:E,E=KI(_^t,E^U,32),U=_=w,D=E,E=N+l|0,E=(_=f+u|0)>>>0>>0?E+1|0:E,f=_,d=E,E=U+E|0,N=_=_+D|0,K=E=f>>>0>_>>>0?E+1|0:E,_=KI(_^r,Y^E,40),E=y+(l=w)|0,u=_,E=tA+((_=t+_|0)>>>0>>0?E+1|0:E)|0,E=(_=_+z|0)>>>0>>0?E+1|0:E,Y=_,_^=D,D=E,y=KI(_,U^E,48),E=KI(y^x,(E=L)^(L=w),32),IA=_=w,U=E,m=_,_=KI(s^f,d^T,1),E=kA+(t=w)|0,E=G+((r=_+eA|0)>>>0>>0?E+1|0:E)|0,E=(s=(r=r+h|0)>>>0>>0?E+1|0:E)+P|0,G=f=r+aA|0,f=E=f>>>0>>0?E+1|0:E,h=_,d=t,_=(r=KI(r^R,s^nA,32))+H|0,E=(H=w)+S|0,t=_,s=KI(s=_^h,(h=_>>>0>>0?E+1|0:E)^d,40),E=(T=w)+f|0,f=_=s+G|0,r=KI(_^r,H^(S=_>>>0>>0?E+1|0:E),48),E=h+(d=w)|0,G=_=r+t|0,H=E=_>>>0>>0?E+1|0:E,E=E+m|0,m=E=(h=_+U|0)>>>0<_>>>0?E+1|0:E,t=KI(h^J,E^p,40),E=(R=w)+v|0,v=_=t+AA|0,J=E=_>>>0>>0?E+1|0:E,_=c,p=e,e=r,c=KI(F^M,V^$,48),E=b+(AA=w)|0,F=c,n=E=(r=n+c|0)>>>0>>0?E+1|0:E,E=KI(r^k,MA^E,1),b=c=w,k=E,E=D+SA|0,E=((D=Y+cA|0)>>>0>>0?E+1|0:E)+c|0,D=E=(c=D+k|0)>>>0>>0?E+1|0:E,e=KI(c^e,E^d,32),E=(Y=w)+p|0,k=KI((_=e+_|0)^k,b^(p=_>>>0>>0?E+1|0:E),40),E=D+(M=w)|0,E=FA+((D=c)>>>0>(c=c+k|0)>>>0?E+1|0:E)|0,d=E=(D=c+QA|0)>>>0>>0?E+1|0:E,c=KI(e^D,Y^E,48),E=p+($=w)|0,Y=c,b=E=(p=_+c|0)>>>0<_>>>0?E+1|0:E,_=KI(p^k,M^E,1),E=(k=w)+J|0,E=DA+((c=_+v|0)>>>0<_>>>0?E+1|0:E)|0,E=wA+(e=(c=c+oA|0)>>>0>>0?E+1|0:E)|0,hA=M=c+EA|0,M=E=M>>>0>>0?E+1|0:E,V=_,x=c,_=KI(s^G,H^T,1),E=(s=w)+q|0,E=GA+((c=_+O|0)>>>0<_>>>0?E+1|0:E)|0,E=NA+(G=(c=c+_A|0)>>>0<_A>>>0?E+1|0:E)|0,O=H=c+iA|0,H=E=H>>>0>>0?E+1|0:E,q=_,E=KI(c^F,G^AA,32),AA=_=w,c=E,E=K+L|0,N=_=y+N|0,F=E=_>>>0>>0?E+1|0:E,E=AA+E|0,K=E=(y=_+c|0)>>>0<_>>>0?E+1|0:E,s=KI(y^q,E^s,40),E=(L=w)+H|0,G=_=s+O|0,q=KI(_^c,AA^(H=_>>>0>>0?E+1|0:E),48),E=KI(q^x,(AA=w)^e,32),T=_=w,O=E,e=_,c=rA,_=KI(N^u,F^l,1),E=S+(F=w)|0,E=((N=f)>>>0>(f=_+f|0)>>>0?E+1|0:E)+yA|0,E=DA+(f=(c=c+f|0)>>>0>>0?E+1|0:E)|0,N=S=c+oA|0,S=E=S>>>0>>0?E+1|0:E,c=KI(c^W,f^CA,32),E=n+(u=w)|0,n=c,E=(c=r+c|0)>>>0>>0?E+1|0:E,r=F,F=E,r=KI(_^c,r^E,40),E=(l=w)+S|0,f=_=r+N|0,_=KI(_^n,u^(S=_>>>0>>0?E+1|0:E),48),E=F+(x=w)|0,F=_,N=_=c+_|0,u=E=_>>>0>>0?E+1|0:E,E=E+e|0,E=(n=_+O|0)>>>0<_>>>0?E+1|0:E,_=n^V,V=E,k=KI(_,E^k,40),E=(CA=w)+M|0,M=_=k+hA|0,W=_>>>0>>0?E+1|0:E,_=KI(U^v,J^IA,48),E=m+(IA=w)|0,U=_,E=(_=h+_|0)>>>0>>0?E+1|0:E,h=_,m=E,E=KI(_^t,E^R,1),R=_=w,e=E,E=H+fA|0,E=((c=G+Z|0)>>>0>>0?E+1|0:E)+_|0,E=FA+(c=(_=c+e|0)>>>0>>0?E+1|0:E)|0,G=t=_+QA|0,t=E=t>>>0>>0?E+1|0:E,_=KI(_^F,c^x,32),E=b+(H=w)|0,F=_,p=E=(c=p+_|0)>>>0

>>0?E+1|0:E,e=KI(c^e,R^E,40),E=(R=w)+t|0,G=_=e+G|0,_=KI(t=_^F,H^(F=_>>>0>>0?E+1|0:E),48),E=p+(hA=w)|0,p=_,b=E=(t=c+_|0)>>>0>>0?E+1|0:E,_=KI(t^e,R^E,1),E=(H=w)+W|0,E=kA+((c=_+M|0)>>>0<_>>>0?E+1|0:E)|0,E=(e=(c=c+eA|0)>>>0>>0?E+1|0:E)+sA|0,nA=R=c+gA|0,R=E=R>>>0>>0?E+1|0:E,v=_,J=c,x=e,_=KI(r^N,l^u,1),E=GA+(e=w)|0,E=d+((c=_+_A|0)>>>0<_A>>>0?E+1|0:E)|0,E=SA+(r=(c=c+D|0)>>>0>>0?E+1|0:E)|0,u=D=c+cA|0,D=E=D>>>0>>0?E+1|0:E,d=_,N=e,E=KI(c^U,r^IA,32),U=_=w,r=E,c=_,E=K+AA|0,E=(_=y+q|0)>>>0>>0?E+1|0:E,y=_,K=E,E=E+c|0,E=(e=_+r|0)>>>0<_>>>0?E+1|0:E,_=e^d,d=E,_=KI(_,E^N,40),E=(E=D)+(D=w)|0,N=c=_+u|0,u=E=c>>>0<_>>>0?E+1|0:E,U=KI(c^r,U^E,48),E=KI(U^J,(E=x)^(x=w),32),l=c=w,q=E,c=KI(y^s,K^L,1),E=(y=w)+yA|0,E=S+((r=c+rA|0)>>>0>>0?E+1|0:E)|0,E=C+(s=(r=r+f|0)>>>0>>0?E+1|0:E)|0,L=f=r+pA|0,f=E=f>>>0>>0?E+1|0:E,S=c,K=y,r=KI(r^Y,s^$,32),E=(Y=w)+m|0,y=c=r+h|0,c=(s=KI(c^S,(h=c>>>0>>0?E+1|0:E)^K,40))+L|0,E=(L=w)+f|0,S=c,c=KI(c^r,Y^(K=c>>>0>>0?E+1|0:E),48),E=h+(AA=w)|0,Y=c,m=c=y+c|0,J=E=c>>>0>>0?E+1|0:E,E=l+E|0,E=(r=c+q|0)>>>0>>0?E+1|0:E,c=H,H=E,y=KI(r^v,c^E,40),E=(IA=w)+R|0,f=c=y+nA|0,E=KI(c^q,l^(R=c>>>0>>0?E+1|0:E),48),l=c=w,q=E,c=_,E=d+x|0,d=_=e+U|0,U=E=_>>>0>>0?E+1|0:E,E=KI(_^c,E^D,1),e=c=w,_=E,E=K+B|0,E=((h=S+g|0)>>>0>>0?E+1|0:E)+c|0,E=tA+(h=(c=_+h|0)>>>0>>0?E+1|0:E)|0,x=D=c+z|0,D=E=D>>>0>>0?E+1|0:E,S=_,K=e,_=KI(M^O,W^T,48),E=V+(T=w)|0,M=_,E=(_=n+_|0)>>>0>>0?E+1|0:E,n=_,c=KI(c^p,h^hA,32),V=E,E=E+(O=w)|0,e=_=c+_|0,h=KI(_^S,(p=_>>>0>>0?E+1|0:E)^K,40),E=(W=w)+D|0,D=_=h+x|0,_=KI(_^c,O^(S=_>>>0>>0?E+1|0:E),48),E=p+($=w)|0,K=_,O=E=(p=e+_|0)>>>0>>0?E+1|0:E,_=KI(h^p,W^E,1),E=FA+(x=w)|0,W=_,hA=_=QA+_|0,e=E=_>>>0>>0?E+1|0:E,_=KI(k^n,V^CA,1),E=(h=w)+u|0,E=NA+((c=_+N|0)>>>0<_>>>0?E+1|0:E)|0,E=BA+(n=(c=c+iA|0)>>>0>>0?E+1|0:E)|0,V=k=c+j|0,k=E=k>>>0>>0?E+1|0:E,N=h,c=KI(c^Y,n^AA,32),E=b+(AA=w)|0,u=c,E=(h=t+c|0)>>>0>>0?E+1|0:E,t=N,N=E,n=KI(_^h,t^E,40),E=(CA=w)+k|0,Y=_=n+V|0,E=(b=_>>>0>>0?E+1|0:E)+e|0,k=E=(e=_+hA|0)>>>0<_>>>0?E+1|0:E,V=E=KI(e^q,E^l,32),v=_=w,_=KI(s^m,J^L,1),E=(t=w)+F|0,E=X+((c=_+G|0)>>>0<_>>>0?E+1|0:E)|0,E=(s=(c=I+c|0)>>>0>>0?E+1|0:E)+P|0,J=F=c+aA|0,F=E=F>>>0>>0?E+1|0:E,G=_,m=t,c=KI(c^M,s^T,32),E=(M=w)+U|0,t=_=c+d|0,_=(s=KI(_^G,(d=_>>>0>>0?E+1|0:E)^m,40))+J|0,E=(J=w)+F|0,F=_,_=KI(_^c,M^(G=_>>>0>>0?E+1|0:E),48),E=d+(T=w)|0,d=_,M=E=(_=t+_|0)>>>0>>0?E+1|0:E,E=E+v|0,U=E=(t=_)>>>0>(_=_+V|0)>>>0?E+1|0:E,c=KI(_^W,x^E,40),E=k+(x=w)|0,m=c,E=B+((c=e+c|0)>>>0>>0?E+1|0:E)|0,W=c=c+g|0,e=c^V,V=E=c>>>0>>0?E+1|0:E,c=KI(e,v^E,48),E=U+(v=w)|0,U=E=(k=_+c|0)>>>0<_>>>0?E+1|0:E,_=E=KI(k^m,x^E,1),m=e=w,e=KI(t^s,M^J,1),E=S+(s=w)|0,E=NA+((t=e+D|0)>>>0>>0?E+1|0:E)|0,E=DA+(D=(t=t+iA|0)>>>0>>0?E+1|0:E)|0,x=S=t+oA|0,S=E=S>>>0>>0?E+1|0:E,M=e,J=s,E=H+l|0,E=(e=r+q|0)>>>0>>0?E+1|0:E,H=e,u=KI(Y^u,b^AA,48),s=KI(t^u,D^(AA=w),32),Y=E,E=E+(hA=w)|0,D=e=s+e|0,e=KI(e^M,(b=e>>>0>>0?E+1|0:E)^J,40),E=(M=w)+S|0,J=E=(r=e+x|0)>>>0>>0?E+1|0:E,E=E+m|0,E=C+((q=r)>>>0>(r=_+r|0)>>>0?E+1|0:E)|0,E=(t=(r=r+pA|0)>>>0>>0?E+1|0:E)+yA|0,nA=S=r+rA|0,x=E=S>>>0>>0?E+1|0:E,L=_,l=r,E=KI(y^H,Y^IA,1),y=r=w,_=E,E=G+GA|0,E=((S=F+_A|0)>>>0<_A>>>0?E+1|0:E)+r|0,E=tA+(S=(r=_+S|0)>>>0>>0?E+1|0:E)|0,Y=F=r+z|0,F=E=F>>>0>>0?E+1|0:E,G=_,E=KI(r^K,S^$,32),H=_=w,r=E,S=_,E=N+AA|0,N=_=h+u|0,K=E=_>>>0>>0?E+1|0:E,E=E+S|0,E=(h=_+r|0)>>>0<_>>>0?E+1|0:E;_=h^G,G=E,S=KI(_,E^y,40),E=(AA=w)+F|0,u=KI(F=(_=S+Y|0)^r,H^(r=_>>>0>>0?E+1|0:E),48),E=KI(E=u^l,(l=w)^t,32),IA=t=w,Y=E,F=t,t=KI(n^N,K^CA,1),E=BA+(n=w)|0,E=R+((y=t+j|0)>>>0>>0?E+1|0:E)|0,E=kA+(f=(y=y+f|0)>>>0>>0?E+1|0:E)|0,K=N=y+eA|0,N=E=N>>>0>>0?E+1|0:E,y=KI(y^d,f^T,32),E=O+(H=w)|0,d=y,p=E=(y=p+y|0)>>>0

>>0?E+1|0:E,f=KI(t^y,E^n,40),E=(T=w)+N|0,n=t=f+K|0,t=KI(N=t^d,H^(d=t>>>0>>0?E+1|0:E),48),E=p+($=w)|0,N=t,K=t=y+t|0,H=E=t>>>0>>0?E+1|0:E,E=E+F|0,E=(y=t+Y|0)>>>0>>0?E+1|0:E,t=m,m=E,p=KI(y^L,t^E,40),E=(R=w)+x|0,F=t=p+nA|0,t=KI(x=t^Y,IA^(Y=t>>>0

>>0?E+1|0:E),48),E=m+(IA=w)|0,m=t,y=E=(t=y+t|0)>>>0>>0?E+1|0:E,R=E=KI(t^p,R^E,1),CA=E,O=p=w,p=r,r=e,e=KI(s^q,J^hA,48),E=b+(hA=w)|0,b=e,E=(e=D+e|0)>>>0>>0?E+1|0:E,D=_,_=r^e,r=E,_=KI(_,E^M,1),E=(M=w)+p|0,E=SA+(_>>>0>(s=D+_|0)>>>0?E+1|0:E)|0,E=sA+(D=(s=s+cA|0)>>>0>>0?E+1|0:E)|0,q=p=s+gA|0,p=E=p>>>0>>0?E+1|0:E,s=KI(s^N,D^$,32),E=U+(J=w)|0,N=E=(D=s+k|0)>>>0>>0?E+1|0:E,k=KI(_^D,M^E,40),E=($=w)+p|0,M=_=k+q|0,s=KI(_^s,J^(U=_>>>0>>0?E+1|0:E),48),E=N+(q=w)|0,J=_=s+D|0,N=_,x=E=_>>>0>>0?E+1|0:E,D=e,p=r,E=G+l|0,E=(_=h+u|0)>>>0>>0?E+1|0:E,h=_,_^=S,S=E,E=KI(_,AA^E,1),L=_=w,G=E,r=E,E=d+P|0,E=((e=n+aA|0)>>>0>>0?E+1|0:E)+_|0,n=E=(_=e)>>>0>(e=r+e|0)>>>0?E+1|0:E,r=KI(c^e,E^v,32),E=(E=p)+(p=w)|0,u=_=r+D|0,c=KI(c=_^G,L^(G=_>>>0>>0?E+1|0:E),40),E=n+(v=w)|0,E=fA+((_=c+e|0)>>>0>>0?E+1|0:E)|0,L=E=(D=_+Z|0)>>>0>>0?E+1|0:E,p=KI(r^D,p^E,48),nA=E=w,_=KI(f^K,H^T,1),E=(r=w)+V|0,E=wA+((e=_+W|0)>>>0<_>>>0?E+1|0:E)|0,E=X+(f=(e=e+EA|0)>>>0>>0?E+1|0:E)|0,V=n=I+e|0,K=E=n>>>0>>0?E+1|0:E,H=_,n=KI(e^b,f^hA,32),E=(T=w)+S|0,S=_=n+h|0,e=KI(_^H,(b=_>>>0>>0?E+1|0:E)^r,40),E=(E=K)+(K=w)|0,H=_=e+V|0,V=E=_>>>0>>0?E+1|0:E,r=E,E=X+O|0,E=((f=I+R|0)>>>0>>0?E+1|0:E)+r|0,d=E=(r=_+f|0)>>>0>>0?E+1|0:E,_=KI(r^p,nA^E,32),E=(R=w)+x|0,h=KI((f=_+N|0)^CA,(E=f>>>0<_>>>0?E+1|0:E)^O,40),O=E,E=sA+(N=w)|0,E=d+((W=h+gA|0)>>>0>>0?E+1|0:E)|0,E=(d=r+W|0)>>>0>>0?E+1|0:E,r=R,R=E,r=KI(_^d,r^E,48),E=(E=O)+(O=w)|0,_=h^(f=r+f|0),h=E=f>>>0>>0?E+1|0:E,W=E=KI(_,E^N,1),CA=E,l=_=w,N=t,AA=y,t=e,e=KI(n^H,V^T,48),E=b+(H=w)|0,n=_=e+S|0,S=E=_>>>0>>0?E+1|0:E,t=KI(_^t,E^K,1),E=(V=w)+SA|0,E=L+((_=t+cA|0)>>>0>>0?E+1|0:E)|0,D=E=(y=_+D|0)>>>0>>0?E+1|0:E,_=KI(y^s,E^q,32),E=(K=w)+AA|0,N=s=_+N|0,b=E=s>>>0<_>>>0?E+1|0:E,t=KI(t^s,E^V,40),E=DA+(hA=w)|0,V=t,E=D+((t=oA+t|0)>>>0>>0?E+1|0:E)|0,y=E=(t=t+y|0)>>>0>>0?E+1|0:E,s=KI(_^t,E^K,48),E=(E=b)+(b=w)|0,q=_=s+N|0,K=_,L=E=_>>>0>>0?E+1|0:E,E=G+nA|0,N=(_=p+u|0)^c,c=E=_>>>0

>>0?E+1|0:E,E=KI(N,E^v,1),v=D=w,N=E,E=U+tA|0,E=((p=M+z|0)>>>0>>0?E+1|0:E)+D|0,G=E=(G=p)>>>0>(p=p+N|0)>>>0?E+1|0:E,u=D=KI(p^m,IA^E,32),M=E=w,E=E+S|0,U=D=D+n|0,m=E=u>>>0>D>>>0?E+1|0:E,D=KI(D^N,v^E,40),E=yA+(v=w)|0,E=G+((n=D+rA|0)>>>0>>0?E+1|0:E)|0,n=E=(N=p)>>>0>(p=p+n|0)>>>0?E+1|0:E,N=KI(p^u,E^M,48),IA=E=w,S=E,k=KI(k^J,x^$,1),G=E=w,u=e,E=E+P|0,E=Y+((e=k+aA|0)>>>0>>0?E+1|0:E)|0,E=(e=e+F|0)>>>0>>0?E+1|0:E,F=e^u,u=E,F=KI(F,E^H,32),E=($=w)+c|0,Y=_=F+_|0,c=KI(_^k,(c=G)^(G=_>>>0>>0?E+1|0:E),40),E=wA+(M=w)|0,E=u+((_=c+EA|0)>>>0>>0?E+1|0:E)|0,u=_=_+e|0,H=E=_>>>0>>0?E+1|0:E,e=E,E=l+NA|0,E=((k=W+iA|0)>>>0>>0?E+1|0:E)+e|0,W=E=(e=_+k|0)>>>0>>0?E+1|0:E,_=KI(e^N,E^S,32),E=(J=w)+L|0,S=KI((k=_+K|0)^CA,(E=k>>>0<_>>>0?E+1|0:E)^l,40),x=K=w,l=E,E=K+kA|0,E=W+((K=S+eA|0)>>>0>>0?E+1|0:E)|0,W=E=(K=e+K|0)>>>0>>0?E+1|0:E,e=KI(_^K,E^J,48),E=(J=w)+l|0,_=(k=e+k|0)^S,S=E=k>>>0>>0?E+1|0:E,x=E=KI(_,E^x,1),l=_=w,AA=f,T=s,s=c,c=KI(F^u,H^$,48),E=(F=w)+G|0,G=_=c+Y|0,u=E=_>>>0>>0?E+1|0:E,s=KI(_^s,E^M,1),E=(M=w)+FA|0,E=((_=s+QA|0)>>>0>>0?E+1|0:E)+n|0,p=E=(f=_+p|0)>>>0<_>>>0?E+1|0:E,_=KI(f^T,E^b,32),E=(n=w)+h|0,Y=h=_+AA|0,b=E=h>>>0<_>>>0?E+1|0:E,s=KI(s^h,E^M,40),E=C+(T=w)|0,M=s,E=p+((s=pA+s|0)>>>0>>0?E+1|0:E)|0,H=E=(h=s+f|0)>>>0>>0?E+1|0:E,s=KI(_^h,E^n,48),E=(E=b)+(b=w)|0,Y=_=s+Y|0,AA=E=_>>>0>>0?E+1|0:E,p=r,f=t,E=m+IA|0,r=E=(_=N+U|0)>>>0>>0?E+1|0:E,t=KI(_^D,E^v,1),E=(D=w)+BA|0,E=((n=t+j|0)>>>0>>0?E+1|0:E)+y|0,y=KI(p^(f=f+n|0),(E=f>>>0>>0?E+1|0:E)^O,32),n=E,N=t,E=(p=w)+u|0,E=(t=y+G|0)>>>0>>0?E+1|0:E,G=t,t^=N,N=E,t=KI(t,E^D,40),E=B+(u=w)|0,E=((D=t+g|0)>>>0>>0?E+1|0:E)+n|0,U=E=(n=D)>>>0>(D=D+f|0)>>>0?E+1|0:E,p=KI(y^D,E^p,48),IA=E=w,f=E,y=KI(q^V,L^hA,1),m=E=w,V=r,E=E+fA|0,E=R+((r=y+Z|0)>>>0>>0?E+1|0:E)|0,n=F,F=E=(r=r+d|0)>>>0>>0?E+1|0:E,n=KI(c^r,n^E,32),E=($=w)+V|0,d=_=n+_|0,c=KI(_^y,(c=m)^(m=_>>>0>>0?E+1|0:E),40),E=GA+(V=w)|0,E=F+((_=c+_A|0)>>>0<_A>>>0?E+1|0:E)|0,R=_=_+r|0,q=E=_>>>0>>0?E+1|0:E,r=E,E=l+tA|0,E=((y=z+x|0)>>>0>>0?E+1|0:E)+r|0,F=E=(r=_+y|0)>>>0>>0?E+1|0:E,_=KI(r^p,E^f,32),E=(O=w)+AA|0,f=KI((y=_+Y|0)^x,(E=y>>>0<_>>>0?E+1|0:E)^l,40),x=E,E=P+(v=w)|0,E=F+((L=f+aA|0)>>>0>>0?E+1|0:E)|0,E=(F=r+L|0)>>>0>>0?E+1|0:E,r=O,O=E,r=KI(_^F,r^E,48),E=(E=x)+(x=w)|0,_=(y=r+y|0)^f,f=E=y>>>0>>0?E+1|0:E,v=E=KI(_,E^v,1),L=_=w,l=s,s=c,c=KI(n^R,q^$,48),E=(E=m)+(m=w)|0,d=_=c+d|0,n=V,V=E=_>>>0>>0?E+1|0:E,s=KI(_^s,n^E,1),E=(R=w)+kA|0,E=U+((_=s+eA|0)>>>0>>0?E+1|0:E)|0,n=D,D=_+D|0,_=b,b=E=n>>>0>D>>>0?E+1|0:E,_=KI(D^l,_^E,32),E=(E=S)+(S=w)|0,U=E=(n=_+k|0)>>>0<_>>>0?E+1|0:E,k=n,s=KI(s^n,E^R,40),E=fA+($=w)|0,R=s,E=b+((s=Z+s|0)>>>0>>0?E+1|0:E)|0,b=E=(n=s+D|0)>>>0>>0?E+1|0:E,s=KI(_^n,E^S,48),E=(E=U)+(U=w)|0,q=_=s+k|0,l=E=_>>>0>>0?E+1|0:E,k=e,E=N+IA|0,e=E=(_=p+G|0)>>>0

>>0?E+1|0:E,t=KI(_^t,E^u,1),E=sA+(p=w)|0,E=H+((D=t+gA|0)>>>0>>0?E+1|0:E)|0,N=(D=h+D|0)^k,k=E=D>>>0>>0?E+1|0:E,h=KI(N,E^J,32),S=E=w,N=t,E=E+V|0,E=(t=h+d|0)>>>0>>0?E+1|0:E,G=t,t^=N,N=E,t=KI(t,E^p,40),E=B+(u=w)|0,E=k+((p=t+g|0)>>>0>>0?E+1|0:E)|0,H=E=(p=D+p|0)>>>0>>0?E+1|0:E,k=KI(h^p,E^S,48),IA=E=w,D=E,h=KI(M^Y,T^AA,1),d=E=w,Y=e,E=E+C|0,E=W+((e=h+pA|0)>>>0>>0?E+1|0:E)|0,K=E=(e=e+K|0)>>>0>>0?E+1|0:E,S=KI(c^e,E^m,32),E=(CA=w)+Y|0,Y=_=S+_|0,c=KI(_^h,(M=_>>>0>>0?E+1|0:E)^d,40),E=X+(m=w)|0,E=K+((_=I+c|0)>>>0>>0?E+1|0:E)|0,K=_=_+e|0,V=E=_>>>0>>0?E+1|0:E,e=E,E=L+wA|0,E=((h=v+EA|0)>>>0>>0?E+1|0:E)+e|0,d=E=(e=_+h|0)>>>0>>0?E+1|0:E,_=KI(e^k,E^D,32),E=(W=w)+l|0,D=KI((h=_+q|0)^v,(E=h>>>0<_>>>0?E+1|0:E)^L,40),J=E,E=SA+(v=w)|0,E=d+((L=D+cA|0)>>>0>>0?E+1|0:E)|0,E=(d=e+L|0)>>>0>>0?E+1|0:E,e=W,W=E,e=KI(_^d,e^E,48),E=(E=J)+(J=w)|0,_=(h=e+h|0)^D,D=E=h>>>0>>0?E+1|0:E,v=E=KI(_,E^v,1),hA=E,L=_=w,AA=y,T=s,y=c,c=KI(S^K,V^CA,48),E=(S=w)+M|0,K=_=c+Y|0,Y=E=_>>>0>>0?E+1|0:E,y=KI(_^y,E^m,1),E=(m=w)+yA|0,E=H+((_=y+rA|0)>>>0>>0?E+1|0:E)|0,p=E=(s=_+p|0)>>>0

>>0?E+1|0:E,_=KI(s^T,E^U,32),E=(M=w)+f|0,U=E=(f=_+AA|0)>>>0<_>>>0?E+1|0:E,y=KI(y^f,E^m,40),E=FA+(CA=w)|0,H=y,E=p+((y=QA+y|0)>>>0>>0?E+1|0:E)|0,p=y+s|0,y=M,M=E=p>>>0>>0?E+1|0:E,y=KI(_^p,y^E,48),E=(E=U)+(U=w)|0,m=_=y+f|0,V=E=_>>>0>>0?E+1|0:E,s=r,E=N+IA|0,r=E=(_=k+G|0)>>>0>>0?E+1|0:E,t=KI(_^t,E^u,1),E=(k=w)+GA|0,E=b+((f=t+_A|0)>>>0>>0?E+1|0:E)|0,s=KI(s^(f=f+n|0),(E=f>>>0>>0?E+1|0:E)^x,32),N=n=w,n=E,G=t,E=N+Y|0,E=(t=s+K|0)>>>0>>0?E+1|0:E,K=t,t^=G,G=E,t=KI(t,E^k,40),E=DA+(u=w)|0,E=((k=t+oA|0)>>>0>>0?E+1|0:E)+n|0,b=N,N=E=(n=f+k|0)>>>0>>0?E+1|0:E,k=KI(s^n,b^E,48),IA=E=w,f=E,s=KI(q^R,l^$,1),Y=E=w,b=r,E=E+BA|0,E=O+((r=s+j|0)>>>0>>0?E+1|0:E)|0,F=E=(r=r+F|0)>>>0>>0?E+1|0:E,S=KI(c^r,E^S,32),E=($=w)+b|0,b=_=S+_|0,c=KI(_^s,(c=Y)^(Y=_>>>0>>0?E+1|0:E),40),E=NA+(R=w)|0,E=F+((_=c+iA|0)>>>0>>0?E+1|0:E)|0,q=_=_+r|0,O=E=_>>>0>>0?E+1|0:E,r=E,E=L+B|0,E=((s=v+g|0)>>>0>>0?E+1|0:E)+r|0,F=E=(r=_+s|0)>>>0>>0?E+1|0:E,_=KI(r^k,E^f,32),E=(v=w)+V|0,f=KI((s=_+m|0)^hA,(E=s>>>0<_>>>0?E+1|0:E)^L,40),L=E,E=kA+(x=w)|0,E=F+((l=f+eA|0)>>>0>>0?E+1|0:E)|0,E=(F=r+l|0)>>>0>>0?E+1|0:E,r=v,v=E,r=KI(_^F,r^E,48),E=(E=L)+(L=w)|0,_=(s=r+s|0)^f,f=E=s>>>0>>0?E+1|0:E,x=E=KI(_,E^x,1),l=_=w,AA=h,T=y,y=c,c=KI(S^q,O^$,48),E=(S=w)+Y|0,Y=_=c+b|0,b=E=_>>>0>>0?E+1|0:E,y=KI(_^y,E^R,1),E=(R=w)+FA|0,E=N+((_=y+QA|0)>>>0>>0?E+1|0:E)|0,n=E=(h=_+n|0)>>>0>>0?E+1|0:E,_=KI(h^T,E^U,32),E=(N=w)+D|0,U=E=(D=_+AA|0)>>>0<_>>>0?E+1|0:E,y=KI(y^D,E^R,40),E=BA+($=w)|0,R=y,E=n+((y=j+y|0)>>>0>>0?E+1|0:E)|0,n=y+h|0,y=N,N=E=n>>>0>>0?E+1|0:E,y=KI(_^n,y^E,48),E=(E=U)+(U=w)|0,q=_=y+D|0,O=E=_>>>0>>0?E+1|0:E,h=e,E=G+IA|0,e=E=(_=k+K|0)>>>0>>0?E+1|0:E,t=KI(_^t,E^u,1),E=NA+(k=w)|0,E=M+((D=t+iA|0)>>>0>>0?E+1|0:E)|0,p=E=(D=D+p|0)>>>0

>>0?E+1|0:E,h=KI(h^D,E^J,32),K=E=w,G=t,E=E+b|0,E=(t=h+Y|0)>>>0>>0?E+1|0:E,u=t,t^=G,G=E,t=KI(t,E^k,40),E=wA+(Y=w)|0,E=p+((k=t+EA|0)>>>0>>0?E+1|0:E)|0,E=(p=D+k|0)>>>0>>0?E+1|0:E,D=K,K=E,k=KI(h^p,D^E,48),IA=E=w,D=E,h=KI(H^m,V^CA,1),b=E=w,M=e,E=E+X|0,E=W+((e=I+h|0)>>>0>>0?E+1|0:E)|0,d=E=(e=e+d|0)>>>0>>0?E+1|0:E,S=KI(c^e,E^S,32),E=(CA=w)+M|0,M=_=S+_|0,c=KI(_^h,(c=b)^(b=_>>>0>>0?E+1|0:E),40),E=fA+(H=w)|0,E=d+((_=c+Z|0)>>>0>>0?E+1|0:E)|0,m=_=_+e|0,V=E=_>>>0>>0?E+1|0:E,e=E,E=l+sA|0,E=((h=x+gA|0)>>>0>>0?E+1|0:E)+e|0,d=E=(e=_+h|0)>>>0>>0?E+1|0:E,_=KI(e^k,E^D,32),E=(W=w)+O|0,D=KI((h=_+q|0)^x,(E=h>>>0<_>>>0?E+1|0:E)^l,40),x=E,E=C+(J=w)|0,E=d+((l=D+pA|0)>>>0>>0?E+1|0:E)|0,E=(d=e+l|0)>>>0>>0?E+1|0:E,e=W,W=E,e=KI(_^d,e^E,48),E=(E=x)+(x=w)|0,_=(h=e+h|0)^D,D=E=h>>>0>>0?E+1|0:E,J=E=KI(_,E^J,1),l=_=w,AA=s,T=y,y=c,c=KI(S^m,V^CA,48),E=(S=w)+b|0,b=_=c+M|0,M=E=_>>>0>>0?E+1|0:E,y=KI(_^y,E^H,1),E=(H=w)+tA|0,E=K+((_=y+z|0)>>>0>>0?E+1|0:E)|0,p=E=(s=_+p|0)>>>0

>>0?E+1|0:E,_=KI(s^T,E^U,32),E=(K=w)+f|0,U=E=(f=_+AA|0)>>>0<_>>>0?E+1|0:E,y=KI(y^f,E^H,40),E=GA+(CA=w)|0,H=y,E=p+((y=_A+y|0)>>>0<_A>>>0?E+1|0:E)|0,p=y+s|0,y=K,K=E=p>>>0>>0?E+1|0:E,y=KI(_^p,y^E,48),E=(E=U)+(U=w)|0,m=_=y+f|0,V=E=_>>>0>>0?E+1|0:E,s=r,E=G+IA|0,r=E=(_=k+u|0)>>>0>>0?E+1|0:E,t=KI(_^t,E^Y,1),E=(k=w)+DA|0,E=N+((f=t+oA|0)>>>0>>0?E+1|0:E)|0,n=E=(f=f+n|0)>>>0>>0?E+1|0:E,s=KI(s^f,E^L,32),N=E=w,G=t,E=E+M|0,E=(t=s+b|0)>>>0>>0?E+1|0:E,u=t,t^=G,G=E,t=KI(t,E^k,40),E=yA+(Y=w)|0,E=n+((k=t+rA|0)>>>0>>0?E+1|0:E)|0,b=N,N=E=(n=f+k|0)>>>0>>0?E+1|0:E,k=KI(s^n,b^E,48),IA=E=w,f=E,s=KI(q^R,O^$,1),b=E=w,M=r,E=E+P|0,E=v+((r=s+aA|0)>>>0>>0?E+1|0:E)|0,F=E=(r=r+F|0)>>>0>>0?E+1|0:E,S=KI(c^r,E^S,32),E=($=w)+M|0,M=_=S+_|0,c=KI(_^s,(c=b)^(b=_>>>0>>0?E+1|0:E),40),E=SA+(R=w)|0,E=F+((_=c+cA|0)>>>0>>0?E+1|0:E)|0,q=_=_+r|0,O=E=_>>>0>>0?E+1|0:E,r=E,E=l+C|0,E=((s=J+pA|0)>>>0>>0?E+1|0:E)+r|0,F=E=(r=_+s|0)>>>0>>0?E+1|0:E,_=KI(r^k,E^f,32),E=(v=w)+V|0,f=KI((s=_+m|0)^J,(E=s>>>0<_>>>0?E+1|0:E)^l,40),L=E,E=NA+(J=w)|0,E=F+((l=f+iA|0)>>>0>>0?E+1|0:E)|0,E=(F=r+l|0)>>>0>>0?E+1|0:E,r=v,v=E,r=KI(_^F,r^E,48),E=(E=L)+(L=w)|0,_=(s=r+s|0)^f,f=E=s>>>0>>0?E+1|0:E,J=E=KI(_,E^J,1),l=_=w,AA=h,T=y,y=c,c=KI(S^q,O^$,48),E=(S=w)+b|0,b=_=c+M|0,M=E=_>>>0>>0?E+1|0:E,y=KI(_^y,E^R,1),E=(R=w)+P|0,E=N+((_=y+aA|0)>>>0>>0?E+1|0:E)|0,n=E=(h=_+n|0)>>>0>>0?E+1|0:E,_=KI(h^T,E^U,32),E=(N=w)+D|0,U=E=(D=_+AA|0)>>>0<_>>>0?E+1|0:E,y=KI(y^D,E^R,40),E=yA+($=w)|0,R=y,E=n+((y=rA+y|0)>>>0>>0?E+1|0:E)|0,n=y+h|0,y=N,N=E=n>>>0>>0?E+1|0:E,y=KI(_^n,y^E,48),E=(E=U)+(U=w)|0,q=_=y+D|0,O=E=_>>>0>>0?E+1|0:E,h=e,E=G+IA|0,e=E=(_=k+u|0)>>>0>>0?E+1|0:E,t=KI(_^t,E^Y,1),E=DA+(k=w)|0,E=K+((D=t+oA|0)>>>0>>0?E+1|0:E)|0,p=E=(D=D+p|0)>>>0

>>0?E+1|0:E,h=KI(h^D,E^x,32),K=E=w,G=t,E=E+M|0,E=(t=h+b|0)>>>0>>0?E+1|0:E,u=t,t^=G,G=E,t=KI(t,E^k,40),E=GA+(Y=w)|0,E=p+((k=t+_A|0)>>>0<_A>>>0?E+1|0:E)|0,E=(p=D+k|0)>>>0>>0?E+1|0:E,D=K,K=E,k=KI(h^p,D^E,48),IA=E=w,D=E,h=KI(H^m,V^CA,1),b=E=w,M=e,E=E+BA|0,E=W+((e=h+j|0)>>>0>>0?E+1|0:E)|0,d=E=(e=e+d|0)>>>0>>0?E+1|0:E,S=KI(c^e,E^S,32),E=(CA=w)+M|0,M=_=S+_|0,c=KI(_^h,(c=b)^(b=_>>>0>>0?E+1|0:E),40),E=SA+(H=w)|0,E=d+((_=c+cA|0)>>>0>>0?E+1|0:E)|0,m=_=_+e|0,V=E=_>>>0>>0?E+1|0:E,e=E,E=l+fA|0,E=((h=J+Z|0)>>>0>>0?E+1|0:E)+e|0,d=E=(e=_+h|0)>>>0>>0?E+1|0:E,_=KI(e^k,E^D,32),E=(W=w)+O|0,D=KI((h=_+q|0)^J,(E=h>>>0<_>>>0?E+1|0:E)^l,40),x=E,E=X+(J=w)|0,E=d+((l=I+D|0)>>>0>>0?E+1|0:E)|0,E=(d=e+l|0)>>>0>>0?E+1|0:E,e=W,W=E,e=KI(_^d,e^E,48),E=(E=x)+(x=w)|0,_=(h=e+h|0)^D,D=E=h>>>0>>0?E+1|0:E,J=E=KI(_,E^J,1),l=_=w,AA=s,T=y,y=c,c=KI(S^m,V^CA,48),E=(S=w)+b|0,b=_=c+M|0,M=E=_>>>0>>0?E+1|0:E,y=KI(_^y,E^H,1),E=(H=w)+wA|0,E=K+((_=y+EA|0)>>>0>>0?E+1|0:E)|0,p=E=(s=_+p|0)>>>0

>>0?E+1|0:E,_=KI(s^T,E^U,32),E=(K=w)+f|0,U=E=(f=_+AA|0)>>>0<_>>>0?E+1|0:E,y=KI(y^f,E^H,40),E=B+(CA=w)|0,H=y,E=p+((y=g+y|0)>>>0>>0?E+1|0:E)|0,p=y+s|0,y=K,K=E=p>>>0>>0?E+1|0:E,y=KI(_^p,y^E,48),E=(E=U)+(U=w)|0,m=_=y+f|0,V=E=_>>>0>>0?E+1|0:E,s=r,E=G+IA|0,r=E=(_=k+u|0)>>>0>>0?E+1|0:E,t=KI(_^t,E^Y,1),E=(k=w)+sA|0,E=N+((f=t+gA|0)>>>0>>0?E+1|0:E)|0,n=E=(f=f+n|0)>>>0>>0?E+1|0:E,s=KI(s^f,E^L,32),N=E=w,G=t,E=E+M|0,E=(t=s+b|0)>>>0>>0?E+1|0:E,u=t,t^=G,G=E,t=KI(t,E^k,40),E=FA+(Y=w)|0,E=n+((k=t+QA|0)>>>0>>0?E+1|0:E)|0,b=N,N=E=(n=f+k|0)>>>0>>0?E+1|0:E,k=KI(s^n,b^E,48),IA=E=w,f=E,s=KI(q^R,O^$,1),b=E=w,M=r,E=E+kA|0,E=v+((r=s+eA|0)>>>0>>0?E+1|0:E)|0,F=E=(r=r+F|0)>>>0>>0?E+1|0:E,S=KI(c^r,E^S,32),E=($=w)+M|0,M=_=S+_|0,c=KI(_^s,(c=b)^(b=_>>>0>>0?E+1|0:E),40),E=tA+(R=w)|0,E=F+((_=c+z|0)>>>0>>0?E+1|0:E)|0,q=_=_+r|0,O=E=_>>>0>>0?E+1|0:E,r=E,E=l+SA|0,E=((s=J+cA|0)>>>0>>0?E+1|0:E)+r|0,F=E=(r=_+s|0)>>>0>>0?E+1|0:E,_=KI(r^k,E^f,32),E=(v=w)+V|0,f=KI((s=_+m|0)^J,(E=s>>>0<_>>>0?E+1|0:E)^l,40),L=E,E=yA+(J=w)|0,E=F+((l=f+rA|0)>>>0>>0?E+1|0:E)|0,E=(F=r+l|0)>>>0>>0?E+1|0:E,r=v,v=E,r=KI(_^F,r^E,48),E=(E=L)+(L=w)|0,_=(s=r+s|0)^f,f=E=s>>>0>>0?E+1|0:E,J=E=KI(_,E^J,1),l=_=w,AA=h,T=y,y=c,c=KI(S^q,O^$,48),E=(S=w)+b|0,b=_=c+M|0,M=E=_>>>0>>0?E+1|0:E,y=KI(_^y,E^R,1),E=(R=w)+NA|0,E=N+((_=y+iA|0)>>>0>>0?E+1|0:E)|0,n=E=(h=_+n|0)>>>0>>0?E+1|0:E,_=KI(h^T,E^U,32),E=(N=w)+D|0,U=E=(D=_+AA|0)>>>0<_>>>0?E+1|0:E,y=KI(y^D,E^R,40),E=C+($=w)|0,R=y,E=n+((y=pA+y|0)>>>0>>0?E+1|0:E)|0,n=y+h|0,y=N,N=E=n>>>0>>0?E+1|0:E,y=KI(_^n,y^E,48),E=(E=U)+(U=w)|0,q=_=y+D|0,O=E=_>>>0>>0?E+1|0:E,h=e,E=G+IA|0,e=E=(_=k+u|0)>>>0>>0?E+1|0:E,t=KI(_^t,E^Y,1),E=FA+(k=w)|0,E=K+((D=t+QA|0)>>>0>>0?E+1|0:E)|0,p=E=(D=D+p|0)>>>0

>>0?E+1|0:E,h=KI(h^D,E^x,32),K=E=w,G=t,E=E+M|0,E=(t=h+b|0)>>>0>>0?E+1|0:E,u=t,t^=G,G=E,t=KI(t,E^k,40),E=P+(Y=w)|0,E=p+((k=t+aA|0)>>>0>>0?E+1|0:E)|0,E=(p=D+k|0)>>>0>>0?E+1|0:E,D=K,K=E,k=KI(h^p,D^E,48),IA=E=w,D=E,h=KI(H^m,V^CA,1),b=E=w,M=e,E=E+GA|0,E=W+((e=h+_A|0)>>>0<_A>>>0?E+1|0:E)|0,d=E=(e=e+d|0)>>>0>>0?E+1|0:E,S=KI(c^e,E^S,32),E=(CA=w)+M|0,M=_=S+_|0,c=KI(_^h,(c=b)^(b=_>>>0>>0?E+1|0:E),40),E=kA+(H=w)|0,E=d+((_=c+eA|0)>>>0>>0?E+1|0:E)|0,m=_=_+e|0,V=E=_>>>0>>0?E+1|0:E,e=E,E=l+DA|0,E=((h=J+oA|0)>>>0>>0?E+1|0:E)+e|0,d=E=(e=_+h|0)>>>0>>0?E+1|0:E,_=KI(e^k,E^D,32),E=(W=w)+O|0,D=KI((h=_+q|0)^J,(E=h>>>0<_>>>0?E+1|0:E)^l,40),x=E,E=B+(J=w)|0,E=d+((l=D+g|0)>>>0>>0?E+1|0:E)|0,E=(d=e+l|0)>>>0>>0?E+1|0:E,e=W,W=E,e=KI(_^d,e^E,48),E=(E=x)+(x=w)|0,_=(h=e+h|0)^D,D=E=h>>>0>>0?E+1|0:E,J=E=KI(_,E^J,1),l=_=w,AA=s,T=y,y=c,c=KI(S^m,V^CA,48),E=(S=w)+b|0,b=_=c+M|0,M=E=_>>>0>>0?E+1|0:E,y=KI(_^y,E^H,1),E=(m=w)+BA|0,E=K+((_=y+j|0)>>>0>>0?E+1|0:E)|0,p=E=(s=_+p|0)>>>0

>>0?E+1|0:E,_=KI(s^T,E^U,32),E=(K=w)+f|0,U=f=_+AA|0,H=E=f>>>0<_>>>0?E+1|0:E,y=KI(y^f,E^m,40),E=fA+(AA=w)|0,m=y,E=p+((y=Z+y|0)>>>0>>0?E+1|0:E)|0,f=y+s|0,y=K,K=E=f>>>0>>0?E+1|0:E,y=KI(_^f,y^E,48),E=(E=H)+(H=w)|0,U=_=y+U|0,V=E=_>>>0>>0?E+1|0:E,s=r,E=G+IA|0,r=E=(_=k+u|0)>>>0>>0?E+1|0:E,t=KI(_^t,E^Y,1),E=(k=w)+X|0,E=N+((p=I+t|0)>>>0>>0?E+1|0:E)|0,n=E=(p=p+n|0)>>>0>>0?E+1|0:E,N=s=KI(s^p,E^L,32),G=E=w,u=t,E=E+M|0,E=(t=s+b|0)>>>0>>0?E+1|0:E,Y=t,t^=u,u=E,t=KI(t,E^k,40),E=wA+(b=w)|0,E=n+((s=t+EA|0)>>>0>>0?E+1|0:E)|0,M=(s=s+p|0)^N,N=E=s>>>0

>>0?E+1|0:E,p=KI(M,E^G,48),L=E=w,k=E,G=n=KI(q^R,O^$,1),M=E=w,R=r,E=E+tA|0,E=v+((r=n+z|0)>>>0>>0?E+1|0:E)|0,E=(r=r+F|0)>>>0>>0?E+1|0:E,F=S,S=E,n=KI(c^r,F^E,32),E=(T=w)+R|0,F=_=n+_|0,c=KI(c=_^G,(G=_>>>0>>0?E+1|0:E)^M,40),E=sA+(M=w)|0,E=S+((_=c+gA|0)>>>0>>0?E+1|0:E)|0,S=_=_+r|0,R=E=_>>>0>>0?E+1|0:E,r=E,E=l+fA|0,E=((v=Z)>>>0>(Z=J+Z|0)>>>0?E+1|0:E)+r|0,fA=E=(_=_+Z|0)>>>0>>0?E+1|0:E,Z=KI(_^p,E^k,32),E=(q=w)+V|0,k=KI((r=U+Z|0)^J,(E=r>>>0>>0?E+1|0:E)^l,40),v=E,E=wA+(O=w)|0,E=fA+((J=EA)>>>0>(EA=k+EA|0)>>>0?E+1|0:E)|0,E=(EA=_+EA|0)>>>0<_>>>0?E+1|0:E,_=Z^EA,Z=E;wA=KI(_,E^q,48),E=(fA=w)+v|0,r=E=(_=r+wA|0)>>>0>>0?E+1|0:E,E=KI(_^k,E^O,1),k=w,q=E,O=h,h=gA,v=sA,sA=KI(n^S,R^T,48),E=(n=w)+G|0,G=h,F=E=(gA=F+sA|0)>>>0>>0?E+1|0:E,h=KI(c^(S=gA),E^M,1),E=(M=w)+v|0,E=N+(h>>>0>(gA=G+h|0)>>>0?E+1|0:E)|0,c=E=(gA=s+gA|0)>>>0>>0?E+1|0:E,y=KI(y^gA,E^H,32),E=(E=D)+(D=w)|0,N=s=y+O|0,G=E=s>>>0>>0?E+1|0:E,s=KI(s^h,E^M,40),E=(M=w)+NA|0,E=(s>>>0>(iA=s+iA|0)>>>0?E+1|0:E)+c|0,c=E=(c=iA)>>>0>(iA=gA+iA|0)>>>0?E+1|0:E,y=KI(y^iA,E^D,48),E=(h=w)+G|0,D=gA=y+N|0,NA=E=gA>>>0>>0?E+1|0:E,N=I,G=X,E=u+L|0,gA=E=(I=p+Y|0)>>>0

>>0?E+1|0:E,X=KI(I^t,E^b,1),E=(p=w)+G|0,E=K+((t=N+X|0)>>>0>>0?E+1|0:E)|0,e=KI((t=t+f|0)^e,(E=t>>>0>>0?E+1|0:E)^x,32),N=E,K=oA,oA=X,E=(f=w)+F|0,F=p,p=E=(X=e+S|0)>>>0>>0?E+1|0:E,oA=KI(X^oA,F^E,40),E=(S=w)+DA|0,E=((DA=K+oA|0)>>>0>>0?E+1|0:E)+N|0,N=DA,t=e^(DA=t+DA|0),e=E=N>>>0>DA>>>0?E+1|0:E,E=KI(t,E^f,48),u=t=w,f=E,F=j,N=BA,j=KI(U^m,V^AA,1),G=E=w,E=E+SA|0,E=W+((j=(K=j)+cA|0)>>>0>>0?E+1|0:E)|0,cA=E=(j=d+j|0)>>>0>>0?E+1|0:E,BA=KI(j^sA,E^n,32),E=(d=w)+gA|0,gA=I=BA+I|0,sA=KI(I^K,(n=I>>>0>>0?E+1|0:E)^G,40),E=(E=N)+(N=w)|0,E=cA+((I=sA+F|0)>>>0>>0?E+1|0:E)|0,cA=I=I+j|0,SA=E=I>>>0>>0?E+1|0:E,j=E,E=k+FA|0,E=((K=QA)>>>0>(QA=q+QA|0)>>>0?E+1|0:E)+j|0,FA=E=(j=I+QA|0)>>>0>>0?E+1|0:E,QA=KI(f^j,E^t,32),E=(K=w)+NA|0,t=I=QA+D|0,I=KI(I^q,(F=k)^(k=I>>>0>>0?E+1|0:E),40),E=GA+(G=w)|0,GA=I,E=FA+((I=_A+I|0)>>>0<_A>>>0?E+1|0:E)|0,E=(I=I+j|0)>>>0>>0?E+1|0:E,FA=I,Y=(a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24)^I,F=E,b=E^(a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24),j=KI(BA^cA,d^SA,48),E=(cA=w)+n|0,n=I=j+gA|0,SA=E=I>>>0>>0?E+1|0:E,BA=rA,E=p+u|0,rA=E=(I=f+X|0)>>>0>>0?E+1|0:E,oA=KI(I^oA,E^S,1),E=(f=w)+yA|0,E=((BA=oA+BA|0)>>>0>>0?E+1|0:E)+c|0,BA=E=(yA=BA+iA|0)>>>0>>0?E+1|0:E,gA=KI(yA^wA,E^fA,32),E=(X=w)+SA|0,iA=E=(_A=gA+n|0)>>>0>>0?E+1|0:E,wA=gA,gA=KI(oA^_A,E^f,40),E=(c=w)+kA|0,E=(gA>>>0>(oA=gA+eA|0)>>>0?E+1|0:E)+BA|0,p=X,X=E=(yA=oA+yA|0)>>>0>>0?E+1|0:E,oA=KI(wA^(eA=yA),p^E,48),E=(f=w)+iA|0,E=(BA=oA+_A|0)>>>0>>0?E+1|0:E,_A=BA,BA^=Y,o[A+8|0]=BA,o[A+9|0]=BA>>>8,o[A+10|0]=BA>>>16,o[A+11|0]=BA>>>24,iA=E,E^=b,o[A+12|0]=E,o[A+13|0]=E>>>8,o[A+14|0]=E>>>16,o[A+15|0]=E>>>24,yA=I,BA=rA,I=j,j=KI(s^D,M^NA,1),E=(kA=w)+B|0,E=(j>>>0>(rA=j+g|0)>>>0?E+1|0:E)+Z|0,EA=E=(D=rA)>>>0>(rA=EA+rA|0)>>>0?E+1|0:E,I=KI(I^rA,E^cA,32),E=(E=BA)+(BA=w)|0,cA=E=(yA=I+yA|0)>>>0>>0?E+1|0:E,wA=I,yA=KI(j^(Z=yA),E^kA,40),E=(s=w)+C|0,E=EA+((I=yA+pA|0)>>>0>>0?E+1|0:E)|0,E=(I=I+rA|0)>>>0>>0?E+1|0:E,EA=I,I^=wA,wA=E,rA=KI(I,E^BA,48),E=(D=w)+cA|0,Z=I=rA+Z|0,cA=I>>>0>>0?E+1|0:E,sA=I=KI(n^sA,N^SA,1),kA=E=w,E=E+P|0,E=e+((I=I+aA|0)>>>0>>0?E+1|0:E)|0,P=E=(j=I+DA|0)>>>0>>0?E+1|0:E,I=(BA=KI(y^j,E^h,32))+_|0,E=(_=w)+r|0,DA=I,I=(aA=KI(e=I^sA,(sA=I>>>0>>0?E+1|0:E)^kA,40))+z|0,E=(z=w)+tA|0,E=P+(I>>>0>>0?E+1|0:E)|0,E=(P=I+j|0)>>>0>>0?E+1|0:E,j=P^bA^Z,o[0|(I=A)]=j,o[I+1|0]=j>>>8,o[I+2|0]=j>>>16,o[I+3|0]=j>>>24,j=E^Q^cA,o[I+4|0]=j,o[I+5|0]=j>>>8,o[I+6|0]=j>>>16,o[I+7|0]=j>>>24,j=(BA=KI(P^BA,E^_,48))+DA|0,E=(DA=w)+sA|0,E=(sA=j>>>0>>0?E+1|0:E)^(a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24)^wA,P=(a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24)^EA^j,o[I+16|0]=P,o[I+17|0]=P>>>8,o[I+18|0]=P>>>16,o[I+19|0]=P>>>24,o[I+20|0]=E,o[I+21|0]=E>>>8,o[I+22|0]=E>>>16,o[I+23|0]=E>>>24,I=KI(QA^FA,F^K,48),P=w,EA=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24,E=(a[A+32|0]|a[A+33|0]<<8|a[A+34|0]<<16|a[A+35|0]<<24)^KI(gA^_A,c^iA,1)^I,o[A+32|0]=E,o[A+33|0]=E>>>8,o[A+34|0]=E>>>16,o[A+35|0]=E>>>24,E=w^EA^P,o[A+36|0]=E,o[A+37|0]=E>>>8,o[A+38|0]=E>>>16,o[A+39|0]=E>>>24,E=k+P|0,E=(EA=I+t|0)>>>0>>0?E+1|0:E,gA=(a[(I=A)+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24)^X^E,P=(a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24)^eA^EA,o[I+24|0]=P,o[I+25|0]=P>>>8,o[I+26|0]=P>>>16,o[I+27|0]=P>>>24,o[I+28|0]=gA,o[I+29|0]=gA>>>8,o[I+30|0]=gA>>>16,o[I+31|0]=gA>>>24,gA=a[I+44|0]|a[I+45|0]<<8|a[I+46|0]<<16|a[I+47|0]<<24,I=rA^(a[I+40|0]|a[I+41|0]<<8|a[I+42|0]<<16|a[I+43|0]<<24)^KI(j^aA,z^sA,1),o[A+40|0]=I,o[A+41|0]=I>>>8,o[A+42|0]=I>>>16,o[A+43|0]=I>>>24,I=D^w^gA,o[A+44|0]=I,o[A+45|0]=I>>>8,o[A+46|0]=I>>>16,o[A+47|0]=I>>>24,j=a[A+60|0]|a[A+61|0]<<8|a[A+62|0]<<16|a[A+63|0]<<24,I=BA^(a[A+56|0]|a[A+57|0]<<8|a[A+58|0]<<16|a[A+59|0]<<24)^KI(Z^yA,s^cA,1),o[A+56|0]=I,o[A+57|0]=I>>>8,o[A+58|0]=I>>>16,o[A+59|0]=I>>>24,I=DA^w^j,o[A+60|0]=I,o[A+61|0]=I>>>8,o[A+62|0]=I>>>16,o[A+63|0]=I>>>24,j=a[A+52|0]|a[A+53|0]<<8|a[A+54|0]<<16|a[A+55|0]<<24,I=oA^(a[A+48|0]|a[A+49|0]<<8|a[A+50|0]<<16|a[A+51|0]<<24)^KI(EA^GA,E^G,1),o[A+48|0]=I,o[A+49|0]=I>>>8,o[A+50|0]=I>>>16,o[A+51|0]=I>>>24,I=f^w^j,o[A+52|0]=I,o[A+53|0]=I>>>8,o[A+54|0]=I>>>16,o[A+55|0]=I>>>24}function n(A,I,g,C,B,Q,i){var _,c,t,r,e,y,s,D,p,f,n,k,F,S,G,M,b,K,H,Y,d,J,U,l,m,u,x,R,v,L,P,q,j,X,O,V,Z,W,T,$,AA,IA,gA,CA,BA,QA,iA,oA,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,pA=0,wA=0,fA=0,FA=0,NA=0,SA=0,GA=0,MA=0,bA=0,KA=0,HA=0,YA=0,dA=0,JA=0,UA=0,lA=0,mA=0,uA=0,xA=0,RA=0,vA=0,LA=0,PA=0,qA=0,zA=0,jA=0,XA=0,OA=0,VA=0,ZA=0,WA=0,TA=0,$A=0,AI=0,II=0;return h=t=h-560|0,SI(_A=t+352|0),i&&nA(_A,35600,34,0),kI(t+288|0,Q,32,0),nA(cA=t+352|0,t+320|0,32,0),nA(cA,g,C,B),z(cA,yA=t+224|0),sA=a[(aA=Q)+32|0]|a[aA+33|0]<<8|a[aA+34|0]<<16|a[aA+35|0]<<24,DA=a[aA+36|0]|a[aA+37|0]<<8|a[aA+38|0]<<16|a[aA+39|0]<<24,tA=a[aA+40|0]|a[aA+41|0]<<8|a[aA+42|0]<<16|a[aA+43|0]<<24,EA=a[aA+44|0]|a[aA+45|0]<<8|a[aA+46|0]<<16|a[aA+47|0]<<24,_A=a[aA+48|0]|a[aA+49|0]<<8|a[aA+50|0]<<16|a[aA+51|0]<<24,Q=a[aA+52|0]|a[aA+53|0]<<8|a[aA+54|0]<<16|a[aA+55|0]<<24,rA=a[aA+60|0]|a[aA+61|0]<<8|a[aA+62|0]<<16|a[aA+63|0]<<24,aA=a[aA+56|0]|a[aA+57|0]<<8|a[aA+58|0]<<16|a[aA+59|0]<<24,o[A+56|0]=aA,o[A+57|0]=aA>>>8,o[A+58|0]=aA>>>16,o[A+59|0]=aA>>>24,o[A+60|0]=rA,o[A+61|0]=rA>>>8,o[A+62|0]=rA>>>16,o[A+63|0]=rA>>>24,o[A+48|0]=_A,o[A+49|0]=_A>>>8,o[A+50|0]=_A>>>16,o[A+51|0]=_A>>>24,o[A+52|0]=Q,o[A+53|0]=Q>>>8,o[A+54|0]=Q>>>16,o[A+55|0]=Q>>>24,o[A+40|0]=tA,o[A+41|0]=tA>>>8,o[A+42|0]=tA>>>16,o[A+43|0]=tA>>>24,o[A+44|0]=EA,o[A+45|0]=EA>>>8,o[A+46|0]=EA>>>16,o[A+47|0]=EA>>>24,o[0|(Q=A+32|0)]=sA,o[Q+1|0]=sA>>>8,o[Q+2|0]=sA>>>16,o[Q+3|0]=sA>>>24,o[Q+4|0]=DA,o[Q+5|0]=DA>>>8,o[Q+6|0]=DA>>>16,o[Q+7|0]=DA>>>24,N(yA),kA(t,yA),tg(A,t),SI(cA),i&&nA(cA,35600,34,0),nA(i=t+352|0,A,64,0),nA(i,g,C,B),z(i,eA=t+160|0),N(eA),o[t+288|0]=248&a[t+288|0],o[t+319|0]=63&a[t+319|0]|64,g=a[23+(A=c=t+288|0)|0],tA=Ig(r=a[A+21|0]|a[A+22|0]<<8|g<<16&2031616,0,e=(a[eA+28|0]|a[eA+29|0]<<8|a[eA+30|0]<<16|a[eA+31|0]<<24)>>>7|0,0),_A=w,g=(A=a[eA+27|0])>>>24|0,B=A<<8|(EA=a[eA+23|0]|a[eA+24|0]<<8|a[eA+25|0]<<16|a[eA+26|0]<<24)>>>24,A=Ig(y=2097151&((3&(DA=(A=(C=a[eA+28|0])>>>16|0)|g))<<30|(g=(C<<=16)|B)>>>2),0,s=(i=a[c+23|0]|a[c+24|0]<<8|a[c+25|0]<<16|a[c+26|0]<<24)>>>5&2097151,0),g=w+_A|0,C=A>>>0>(B=A+tA|0)>>>0?g+1|0:g,A=Ig(D=(g=a[eA+23|0])<<16&2031616|a[eA+21|0]|a[eA+22|0]<<8,0,p=(a[c+28|0]|a[c+29|0]<<8|a[c+30|0]<<16|a[c+31|0]<<24)>>>7|0,0),C=w+C|0,_A=g=A+B|0,B=A>>>0>g>>>0?C+1|0:C,C=(A=a[c+27|0])>>>24|0,i=A<<8|i>>>24,A=Ig(f=2097151&((3&(C|=g=(A=a[c+28|0])>>>16|0))<<30|(g=(A<<=16)|i)>>>2),0,n=EA>>>5&2097151,0),g=w+B|0,aA=C=A+_A|0,B=A>>>0>C>>>0?g+1|0:g,EA=Ig(s,0,n,0),_A=w,g=(A=a[c+19|0])>>>24|0,i=A<<8|(SA=a[c+15|0]|a[c+16|0]<<8|a[c+17|0]<<16|a[c+18|0]<<24)>>>24,C=g,g=Ig(k=(7&(C|=g=(A=a[c+20|0])>>>16|0))<<29|(g=(A<<=16)|i)>>>3,DA=C>>>3|0,e,0),A=w+_A|0,A=g>>>0>(C=g+EA|0)>>>0?A+1|0:A,i=(g=Ig(r,0,y,0))+C|0,C=w+A|0,g=g>>>0>(EA=i)>>>0?C+1|0:C,C=(A=a[eA+19|0])>>>24|0,_A=A<<8|(NA=a[eA+15|0]|a[eA+16|0]<<8|a[eA+17|0]<<16|a[eA+18|0]<<24)>>>24,A=Ig(F=(7&(tA=(A=(i=a[eA+20|0])>>>16|0)|C))<<29|(C=(i<<=16)|_A)>>>3,S=tA>>>3|0,p,0),g=w+g|0,g=A>>>0>(C=A+EA|0)>>>0?g+1|0:g,A=Ig(D,0,f,0),g=w+g|0,sA=g=A>>>0>(yA=A+C|0)>>>0?g+1|0:g,pA=A=g-((yA>>>0<4293918720)-1|0)|0,C=(g=A>>>21|0)+B|0,EA=C=(A=(2097151&A)<<11|(tA=yA- -1048576|0)>>>21)>>>0>(aA=A+aA|0)>>>0?C+1|0:C,fA=A=C-((aA>>>0<4293918720)-1|0)|0,rA=(2097151&A)<<11|(_A=aA- -1048576|0)>>>21,i=A>>>21|0,A=Ig(p,0,n,0),g=w,C=A,A=Ig(e,0,s,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,wA=(A=C)+(C=Ig(y,0,f,0))|0,A=w+g|0,A=C>>>0>wA>>>0?A+1|0:A,cA=wA-(g=-2097152&(C=wA- -1048576|0))|0,g=(A-((131071&(B=A-((wA>>>0<4293918720)-1|0)|0))+(g>>>0>wA>>>0)|0)|0)+i|0,v=g=(A=cA+rA|0)>>>0>>0?g+1|0:g,L=A,cA=Ig(A,g,470296,0),rA=w,g=Ig(e,0,f,0),A=w,i=g,g=Ig(y,0,p,0),A=w+A|0,g=g>>>0>(i=i+g|0)>>>0?A+1|0:A,A=B>>>21|0,B=(2097151&B)<<11|C>>>21,C=A+g|0,HA=B=(C=B>>>0>(i=B+i|0)>>>0?C+1|0:C)-((i>>>0<4293918720)-1|0)|0,A=i-(g=-2097152&(KA=i- -1048576|0))|0,P=i=C-((131071&B)+(g>>>0>i>>>0)|0)|0,q=g=aA-(C=-2097152&_A)|0,j=B=EA-((C>>>0>aA>>>0)+fA|0)|0,X=A,C=Ig(A,i,666643,0),A=w+rA|0,A=C>>>0>(i=C+cA|0)>>>0?A+1|0:A,C=Ig(g,B,654183,0),g=w+A|0,hA=B=C+i|0,_A=C>>>0>B>>>0?g+1|0:g,wA=yA-(A=-2097152&tA)|0,pA=sA-((A>>>0>yA>>>0)+pA|0)|0,g=Ig(y,0,k,DA),C=w,B=(A=g)+(g=Ig(G=SA>>>6&2097151,0,e,0))|0,A=w+C|0,A=g>>>0>B>>>0?A+1|0:A,g=Ig(s,0,D,0),C=w+A|0,C=g>>>0>(B=g+B|0)>>>0?C+1|0:C,A=Ig(r,0,n,0),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,C=Ig(p,0,M=NA>>>6&2097151,0),A=w+g|0,A=C>>>0>(B=C+B|0)>>>0?A+1|0:A,C=Ig(f,0,F,S),g=w+A|0,yA=B=C+B|0,i=C>>>0>B>>>0?g+1|0:g,g=(A=a[c+14|0])>>>24|0,B=A<<8|(sA=a[c+10|0]|a[c+11|0]<<8|a[c+12|0]<<16|a[c+13|0]<<24)>>>24,g=Ig(b=2097151&((1&(g|=A=(C=a[c+15|0])>>>16|0))<<31|(A=(C<<=16)|B)>>>1),0,e,0),A=w,C=g,g=Ig(y,0,G,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=Ig(n,0,k,DA))+C|0,C=w+A|0,C=g>>>0>B>>>0?C+1|0:C,A=Ig(s,0,F,S),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,A=Ig(r,0,D,0),g=w+g|0,tA=C=A+B|0,B=A>>>0>C>>>0?g+1|0:g,g=(A=a[eA+14|0])>>>24|0,EA=A<<8|(aA=a[eA+10|0]|a[eA+11|0]<<8|a[eA+12|0]<<16|a[eA+13|0]<<24)>>>24,C=g,g=(A=a[eA+15|0])>>>16|0,g=Ig(K=2097151&((1&(g|=C))<<31|(A=A<<16|EA)>>>1),0,p,0),A=w+B|0,A=g>>>0>(C=g+tA|0)>>>0?A+1|0:A,g=Ig(f,0,M,0),A=w+A|0,EA=A=g>>>0>(tA=g+C|0)>>>0?A+1|0:A,YA=g=A-((tA>>>0<4293918720)-1|0)|0,C=(A=g>>>21|0)+i|0,rA=C=(g=(2097151&g)<<11|(cA=tA- -1048576|0)>>>21)>>>0>(fA=g+yA|0)>>>0?C+1|0:C,MA=g=C-((fA>>>0<4293918720)-1|0)|0,A=(A=g>>>21|0)+pA|0,O=A=(g=(C=(2097151&g)<<11|(yA=fA- -1048576|0)>>>21)+wA|0)>>>0>>0?A+1|0:A,V=g,A=Ig(g,A,-997805,-1),g=w+_A|0,hA=C=A+hA|0,_A=A>>>0>C>>>0?g+1|0:g,wA=(UA=a[23+(_=t+224|0)|0]|a[_+24|0]<<8|a[_+25|0]<<16|a[_+26|0]<<24)>>>5&2097151,C=Ig(H=(A=a[c+2|0])<<16&2031616|a[0|c]|a[c+1|0]<<8,0,n,0),g=w,B=(A=Ig(D,0,Y=(i=a[c+2|0]|a[c+3|0]<<8|a[c+4|0]<<16|a[c+5|0]<<24)>>>5&2097151,0))+C|0,C=w+g|0,C=A>>>0>B>>>0?C+1|0:C,A=Ig(d=(a[c+7|0]|a[c+8|0]<<8|a[c+9|0]<<16|a[c+10|0]<<24)>>>7&2097151,0,M,0),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,C=Ig(K,0,J=sA>>>4&2097151,0),A=w+g|0,sA=B=C+B|0,B=C>>>0>B>>>0?A+1|0:A,i=(g=a[c+6|0])<<8|i>>>24,C=A=g>>>24|0,g=(A=a[c+7|0])>>>16|0,g=Ig(U=2097151&((3&(g|=C))<<30|(A=A<<16|i)>>>2),0,F,S),A=w+B|0,A=g>>>0>(C=g+sA|0)>>>0?A+1|0:A,B=(g=Ig(G,0,l=(a[eA+7|0]|a[eA+8|0]<<8|a[eA+9|0]<<16|a[eA+10|0]<<24)>>>7&2097151,0))+C|0,C=w+A|0,C=g>>>0>B>>>0?C+1|0:C,g=Ig(b,0,bA=aA>>>4&2097151,0),A=w+C|0,i=g>>>0>(B=g+B|0)>>>0?A+1|0:A,A=(g=a[eA+6|0])>>>24|0,sA=g<<8|(aA=a[eA+2|0]|a[eA+3|0]<<8|a[eA+4|0]<<16|a[eA+5|0]<<24)>>>24,g=A,A=Ig(k,DA,m=2097151&((3&(g|=C=(A=a[eA+7|0])>>>16|0))<<30|(A=A<<16|sA)>>>2),0),g=w+i|0,g=A>>>0>(C=A+B|0)>>>0?g+1|0:g,B=C,C=Ig(u=(A=a[eA+2|0])<<16&2031616|a[0|eA]|a[eA+1|0]<<8,0,s,0),A=w+g|0,A=C>>>0>(B=B+C|0)>>>0?A+1|0:A,g=Ig(r,0,x=aA>>>5&2097151,0),A=w+A|0,A=g>>>0>(C=g+B|0)>>>0?A+1|0:A,g=C,sA=C=C+wA|0,i=g=g>>>0>C>>>0?A+1|0:A,B=a[_+21|0]|a[_+22|0]<<8,A=Ig(D,0,H,0),g=w,aA=(C=A)+(A=Ig(F,S,Y,0))|0,C=w+g|0,C=A>>>0>aA>>>0?C+1|0:C,A=Ig(K,0,d,0),g=w+C|0,g=A>>>0>(aA=A+aA|0)>>>0?g+1|0:g,A=Ig(J,0,bA,0),g=w+g|0,g=A>>>0>(C=A+aA|0)>>>0?g+1|0:g,aA=(A=C)+(C=Ig(M,0,U,0))|0,A=w+g|0,A=C>>>0>aA>>>0?A+1|0:A,g=Ig(G,0,m,0),A=w+A|0,A=g>>>0>(C=g+aA|0)>>>0?A+1|0:A,aA=(g=Ig(b,0,l,0))+C|0,C=w+A|0,C=g>>>0>aA>>>0?C+1|0:C,A=Ig(k,DA,x,0),g=w+C|0,g=A>>>0>(aA=A+aA|0)>>>0?g+1|0:g,A=Ig(r,0,u,0),g=w+g|0,A=A>>>0>(C=A+aA|0)>>>0?g+1|0:g,g=(g=C)>>>0>(C=C+B|0)>>>0?A+1|0:A,B=C,C=(A=a[_+23|0])<<16&2031616,A=g,C=A=C>>>0>(B=B+C|0)>>>0?A+1|0:A,eA=A=A-((B>>>0<4293918720)-1|0)|0,g=(g=A>>>21|0)+i|0,A=(g=(i=sA=(A=(2097151&A)<<11|(aA=B- -1048576|0)>>>21)+sA|0)>>>0>>0?g+1|0:g)+_A|0,A=(_A=i+hA|0)>>>0>>0?A+1|0:A,SA=i- -1048576|0,FA=i=g-((i>>>0<4293918720)-1|0)|0,GA=_A-(g=-2097152&SA)|0,dA=A-((g>>>0>_A>>>0)+i|0)|0,sA=B,_A=C,A=Ig(q,j,470296,0),g=w,C=A,A=Ig(L,v,666643,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,B=(A=C)+(C=Ig(V,O,654183,0))|0,A=w+g|0,NA=B,i=C>>>0>B>>>0?A+1|0:A,g=Ig(F,S,H,0),A=w,C=g,g=Ig(M,0,Y,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=C)+(C=Ig(d,0,bA,0))|0,g=w+A|0,g=C>>>0>B>>>0?g+1|0:g,A=Ig(J,0,l,0),C=w+g|0,C=A>>>0>(B=A+B|0)>>>0?C+1|0:C,A=Ig(K,0,U,0),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,C=Ig(G,0,x,0),A=w+g|0,A=C>>>0>(B=C+B|0)>>>0?A+1|0:A,g=Ig(b,0,m,0),A=w+A|0,A=g>>>0>(C=g+B|0)>>>0?A+1|0:A,B=(g=C)+(C=Ig(k,DA,u,0))|0,g=w+A|0,wA=B,C=C>>>0>B>>>0?g+1|0:g,g=(A=a[_+19|0])>>>24|0,pA=A<<8|(hA=a[_+15|0]|a[_+16|0]<<8|a[_+17|0]<<16|a[_+18|0]<<24)>>>24,C=((JA=(A=(B=a[_+20|0])>>>16|0)|g)>>>3|0)+C|0,wA=B=(g=(7&JA)<<29|(g=(B<<=16)|pA)>>>3)+wA|0,B=g>>>0>B>>>0?C+1|0:C,pA=hA>>>6&2097151,A=Ig(M,0,H,0),g=w,C=A,A=Ig(K,0,Y,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,hA=(A=C)+(C=Ig(d,0,l,0))|0,A=w+g|0,A=C>>>0>hA>>>0?A+1|0:A,C=Ig(J,0,m,0),g=w+A|0,g=C>>>0>(hA=C+hA|0)>>>0?g+1|0:g,C=Ig(U,0,bA,0),A=w+g|0,A=C>>>0>(hA=C+hA|0)>>>0?A+1|0:A,g=Ig(G,0,u,0),C=w+A|0,C=g>>>0>(hA=g+hA|0)>>>0?C+1|0:C,A=Ig(b,0,x,0),g=w+C|0,A=A>>>0>(hA=A+hA|0)>>>0?g+1|0:g,qA=A=(mA=hA+pA|0)>>>0>>0?A+1|0:A,WA=A=A-((mA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(LA=mA- -1048576|0)>>>21,A=(A>>>21|0)+B|0,jA=A=C>>>0>(zA=C+wA|0)>>>0?A+1|0:A,TA=A=A-((zA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(xA=zA- -1048576|0)>>>21,A=(A>>>21|0)+i|0,g=(C>>>0>(B=C+NA|0)>>>0?A+1|0:A)+_A|0,_A=(C=B+sA|0)-(A=-2097152&aA)|0,eA=A=(g=C>>>0>>0?g+1|0:g)-((A>>>0>C>>>0)+eA|0)|0,$A=A=A-((_A>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(RA=_A- -1048576|0)>>>21,A=(A>>21)+dA|0,B=A=C>>>0>(i=C+GA|0)>>>0?A+1|0:A,ZA=A=A-((i>>>0<4293918720)-1|0)|0,vA=(2097151&A)<<11|(NA=i- -1048576|0)>>>21,sA=A>>21,JA=fA-(A=-2097152&yA)|0,MA=rA-((A>>>0>fA>>>0)+MA|0)|0,A=Ig(e,0,p,0),PA=g=w,GA=A,hA=A- -1048576|0,uA=g=g-((A>>>0<4293918720)-1|0)|0,Z=A=g>>>21|0,A=Ig(R=(2097151&g)<<11|hA>>>21,A,-683901,-1),g=w+EA|0,g=A>>>0>(C=A+tA|0)>>>0?g+1|0:g,yA=C-(A=-2097152&cA)|0,aA=g-((A>>>0>C>>>0)+YA|0)|0,g=Ig(n,0,G,0),A=w,C=g,g=Ig(e,0,J,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,g=Ig(y,0,b,0),A=w+A|0,A=g>>>0>(C=g+C|0)>>>0?A+1|0:A,EA=(g=C)+(C=Ig(D,0,k,DA))|0,g=w+A|0,g=C>>>0>EA>>>0?g+1|0:g,A=Ig(s,0,M,0),C=w+g|0,C=A>>>0>(EA=A+EA|0)>>>0?C+1|0:C,A=Ig(r,0,F,S),g=w+C|0,g=A>>>0>(EA=A+EA|0)>>>0?g+1|0:g,C=Ig(p,0,bA,0),A=w+g|0,A=C>>>0>(EA=C+EA|0)>>>0?A+1|0:A,g=Ig(f,0,K,0),A=w+A|0,tA=C=g+EA|0,EA=g>>>0>C>>>0?A+1|0:A,A=Ig(y,0,J,0),g=w,C=A,A=Ig(e,0,d,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,rA=(A=Ig(D,0,G,0))+C|0,C=w+g|0,C=A>>>0>rA>>>0?C+1|0:C,A=Ig(n,0,b,0),g=w+C|0,g=A>>>0>(rA=A+rA|0)>>>0?g+1|0:g,C=Ig(k,DA,F,S),A=w+g|0,A=C>>>0>(rA=C+rA|0)>>>0?A+1|0:A,g=Ig(s,0,K,0),A=w+A|0,A=g>>>0>(C=g+rA|0)>>>0?A+1|0:A,rA=(g=C)+(C=Ig(r,0,M,0))|0,g=w+A|0,g=C>>>0>rA>>>0?g+1|0:g,A=Ig(p,0,l,0),C=w+g|0,C=A>>>0>(rA=A+rA|0)>>>0?C+1|0:C,A=Ig(f,0,bA,0),g=w+C|0,pA=g=A>>>0>(wA=A+rA|0)>>>0?g+1|0:g,OA=A=g-((wA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(fA=wA- -1048576|0)>>>21,A=(A>>>21|0)+EA|0,cA=A=g>>>0>(YA=g+tA|0)>>>0?A+1|0:A,lA=A=A-((YA>>>0<4293918720)-1|0)|0,g=(C=A>>>21|0)+aA|0,yA=g=(A=(2097151&A)<<11|(rA=YA- -1048576|0)>>>21)>>>0>(dA=A+yA|0)>>>0?g+1|0:g,XA=A=g-((dA>>>0<4293918720)-1|0)|0,EA=(2097151&A)<<11|(aA=dA- -1048576|0)>>>21,A=(A>>21)+MA|0,W=A=(g=EA+JA|0)>>>0>>0?A+1|0:A,T=g,A=Ig(g,A,-683901,-1),g=w+sA|0,vA=C=A+vA|0,sA=A>>>0>C>>>0?g+1|0:g,A=Ig(y,0,H,0),g=w,C=A,A=Ig(n,0,Y,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,EA=(A=C)+(C=Ig(F,S,d,0))|0,A=w+g|0,A=C>>>0>EA>>>0?A+1|0:A,g=Ig(M,0,J,0),C=w+A|0,C=g>>>0>(EA=g+EA|0)>>>0?C+1|0:C,g=Ig(D,0,U,0),A=w+C|0,A=g>>>0>(EA=g+EA|0)>>>0?A+1|0:A,C=Ig(G,0,bA,0),g=w+A|0,g=C>>>0>(EA=C+EA|0)>>>0?g+1|0:g,A=Ig(b,0,K,0),g=w+g|0,g=A>>>0>(C=A+EA|0)>>>0?g+1|0:g,EA=(A=C)+(C=Ig(k,DA,l,0))|0,A=w+g|0,A=C>>>0>EA>>>0?A+1|0:A,g=Ig(s,0,x,0),C=w+A|0,C=g>>>0>(EA=g+EA|0)>>>0?C+1|0:C,g=Ig(r,0,m,0),A=w+C|0,A=g>>>0>(EA=g+EA|0)>>>0?A+1|0:A,C=Ig(f,0,u,0),g=w+A|0,MA=EA=C+EA|0,C=C>>>0>EA>>>0?g+1|0:g,g=(A=a[_+27|0])>>>24|0,tA=A<<8|UA>>>24,EA=2097151&((3&(g|=A=(EA=a[_+28|0])>>>16|0))<<30|(A=(EA<<=16)|tA)>>>2),g=C,tA=A=EA+MA|0,EA=A>>>0>>0?g+1|0:g,JA=Ig(X,P,470296,0),MA=w,A=(C=(2097151&HA)<<11|KA>>>21)+(GA-(g=-2097152&hA)|0)|0,g=PA-((524287&uA)+(g>>>0>GA>>>0)|0)+(HA>>>21)|0,$=g=A>>>0>>0?g+1|0:g,AA=A,g=Ig(A,g,666643,0),A=w+MA|0,A=g>>>0>(C=g+JA|0)>>>0?A+1|0:A,hA=(g=Ig(L,v,654183,0))+C|0,C=w+A|0,C=g>>>0>hA>>>0?C+1|0:C,g=Ig(q,j,-997805,-1),A=w+C|0,A=g>>>0>(hA=g+hA|0)>>>0?A+1|0:A,C=Ig(V,O,136657,0),g=w+A|0,SA=(A=(2097151&FA)<<11|SA>>>21)+(hA=C+hA|0)|0,g=(FA>>>21|0)+(C>>>0>hA>>>0?g+1|0:g)|0,uA=hA=EA-((tA>>>0<4293918720)-1|0)|0,A=(A>>>0>SA>>>0?g+1|0:g)+EA|0,g=(EA=tA+SA|0)-(C=-2097152&(PA=tA- -1048576|0))|0,C=(A=(A=EA>>>0>>0?A+1|0:A)-((C>>>0>EA>>>0)+hA|0)|0)+sA|0,JA=EA=A-((g>>>0<4293918720)-1|0)|0,GA=(C=(tA=g+vA|0)>>>0>>0?C+1|0:C)-(((g=-2097152&(MA=g- -1048576|0))>>>0>tA>>>0)+EA|0)|0,UA=A=tA-g|0,EA=i,i=B,VA=dA-(A=-2097152&aA)|0,hA=yA-((A>>>0>dA>>>0)+XA|0)|0,A=Ig(AA,$,-683901,-1),g=w,B=(C=A)+(A=Ig(R,Z,136657,0))|0,C=w+g|0,g=cA+(A>>>0>B>>>0?C+1|0:C)|0,rA=(C=B+YA|0)-(A=-2097152&rA)|0,yA=(g=C>>>0>>0?g+1|0:g)-((A>>>0>C>>>0)+lA|0)|0,g=Ig(R,Z,-997805,-1),A=w+pA|0,A=g>>>0>(C=g+wA|0)>>>0?A+1|0:A,B=(g=Ig(AA,$,136657,0))+C|0,C=w+A|0,C=g>>>0>B>>>0?C+1|0:C,A=Ig(X,P,-683901,-1),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,aA=B-(A=-2097152&fA)|0,sA=g-((A>>>0>B>>>0)+OA|0)|0,g=Ig(n,0,J,0),A=w,C=g,g=Ig(y,0,d,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=Ig(e,0,U,0))+C|0,C=w+A|0,C=g>>>0>B>>>0?C+1|0:C,A=Ig(F,S,G,0),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,C=Ig(D,0,b,0),A=w+g|0,A=C>>>0>(B=C+B|0)>>>0?A+1|0:A,C=Ig(k,DA,M,0),g=w+A|0,g=C>>>0>(B=C+B|0)>>>0?g+1|0:g,C=Ig(s,0,bA,0),A=w+g|0,A=C>>>0>(B=C+B|0)>>>0?A+1|0:A,g=Ig(r,0,K,0),C=w+A|0,C=g>>>0>(B=g+B|0)>>>0?C+1|0:C,A=Ig(p,0,m,0),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,C=Ig(f,0,l,0),A=w+g|0,tA=B=C+B|0,B=C>>>0>B>>>0?A+1|0:A,A=Ig(n,0,d,0),g=w,C=A,A=Ig(e,0,Y,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,cA=(A=C)+(C=Ig(D,0,J,0))|0,A=w+g|0,A=C>>>0>cA>>>0?A+1|0:A,g=Ig(y,0,U,0),C=w+A|0,C=g>>>0>(cA=g+cA|0)>>>0?C+1|0:C,A=Ig(G,0,M,0),g=w+C|0,g=A>>>0>(cA=A+cA|0)>>>0?g+1|0:g,C=Ig(F,S,b,0),A=w+g|0,A=C>>>0>(cA=C+cA|0)>>>0?A+1|0:A,C=Ig(k,DA,K,0),g=w+A|0,g=C>>>0>(cA=C+cA|0)>>>0?g+1|0:g,C=Ig(s,0,l,0),A=w+g|0,A=C>>>0>(cA=C+cA|0)>>>0?A+1|0:A,g=Ig(r,0,bA,0),C=w+A|0,C=g>>>0>(cA=g+cA|0)>>>0?C+1|0:C,cA=(A=Ig(p,0,x,0))+cA|0,g=w+C|0,C=Ig(f,0,m,0),A=w+(A>>>0>cA>>>0?g+1|0:g)|0,dA=A=C>>>0>(XA=C+cA|0)>>>0?A+1|0:A,gA=A=A-((XA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(HA=XA- -1048576|0)>>>21,A=(A>>>21|0)+B|0,KA=A=C>>>0>(vA=C+tA|0)>>>0?A+1|0:A,CA=A=A-((vA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(FA=vA- -1048576|0)>>>21,A=(A>>>21|0)+sA|0,SA=A=C>>>0>(YA=C+aA|0)>>>0?A+1|0:A,BA=A=A-((YA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(pA=YA- -1048576|0)>>>21,A=(A>>21)+yA|0,B=A=C>>>0>(aA=C+rA|0)>>>0?A+1|0:A,yA=A=A-((aA>>>0<4293918720)-1|0)|0,sA=(2097151&A)<<11|(C=aA- -1048576|0)>>>21,A=(A>>21)+hA|0,OA=A=(tA=sA+VA|0)>>>0>>0?A+1|0:A,lA=tA,A=Ig(tA,A,-683901,-1),g=w,tA=A,A=Ig(T,W,136657,0),g=w+g|0,A=(A>>>0>(tA=tA+A|0)>>>0?g+1|0:g)+i|0,AI=(i=EA+tA|0)-(g=-2097152&NA)|0,II=(A=i>>>0>>0?A+1|0:A)-((g>>>0>i>>>0)+ZA|0)|0,sA=_A,tA=eA,_A=Ig(lA,OA,136657,0),i=w,VA=A=aA-(g=-2097152&C)|0,IA=B=B-((g>>>0>aA>>>0)+yA|0)|0,C=Ig(T,W,-997805,-1),g=w+i|0,g=C>>>0>(_A=C+_A|0)>>>0?g+1|0:g,C=Ig(A,B,-683901,-1),A=w+g|0,ZA=B=C+_A|0,EA=C>>>0>B>>>0?A+1|0:A,A=Ig(V,O,470296,0),g=w,B=(C=A)+(A=Ig(q,j,666643,0))|0,C=w+g|0,g=jA+(A>>>0>B>>>0?C+1|0:C)|0,hA=A=B+zA|0,i=g=A>>>0>>0?g+1|0:g,g=Ig(V,O,666643,0),A=w+qA|0,A=g>>>0>(C=g+mA|0)>>>0?A+1|0:A,rA=C-(g=-2097152&LA)|0,wA=A-((g>>>0>C>>>0)+WA|0)|0,g=Ig(K,0,H,0),A=w,C=g,g=Ig(Y,0,bA,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=C)+(C=Ig(d,0,m,0))|0,g=w+A|0,g=C>>>0>B>>>0?g+1|0:g,C=Ig(J,0,x,0),A=w+g|0,A=C>>>0>(B=C+B|0)>>>0?A+1|0:A,g=Ig(U,0,l,0),C=w+A|0,C=g>>>0>(B=g+B|0)>>>0?C+1|0:C,A=Ig(b,0,u,0),g=w+C|0,aA=B=A+B|0,B=A>>>0>B>>>0?g+1|0:g,g=(A=a[_+14|0])>>>24|0,_A=A<<8|(yA=a[_+10|0]|a[_+11|0]<<8|a[_+12|0]<<16|a[_+13|0]<<24)>>>24,g=2097151&((1&(g|=C=(A=a[_+15|0])>>>16|0))<<31|(A=_A|A<<16)>>>1),A=B,aA=C=g+aA|0,B=g>>>0>C>>>0?A+1|0:A,_A=yA>>>4&2097151,A=Ig(H,0,bA,0),g=w,C=A,A=Ig(Y,0,l,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,A=Ig(d,0,x,0),g=w+g|0,g=A>>>0>(C=A+C|0)>>>0?g+1|0:g,yA=(A=C)+(C=Ig(J,0,u,0))|0,A=w+g|0,A=C>>>0>yA>>>0?A+1|0:A,g=Ig(U,0,m,0),C=w+A|0,A=g>>>0>(yA=g+yA|0)>>>0?C+1|0:C,eA=A=(LA=_A+yA|0)>>>0>>0?A+1|0:A,QA=A=A-((LA>>>0<4293918720)-1|0)|0,g=(C=A>>>21|0)+B|0,fA=g=(A=(2097151&A)<<11|(NA=LA- -1048576|0)>>>21)>>>0>(jA=A+aA|0)>>>0?g+1|0:g,iA=A=g-((jA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(cA=jA- -1048576|0)>>>21,A=(A>>>21|0)+wA|0,yA=A=g>>>0>(rA=g+rA|0)>>>0?A+1|0:A,oA=A=A-((rA>>>0<4293918720)-1|0)|0,g=(C=A>>21)+i|0,WA=g=(g=(A=(2097151&A)<<11|(aA=rA- -1048576|0)>>>21)>>>0>(B=A+hA|0)>>>0?g+1|0:g)-(((C=-2097152&xA)>>>0>B>>>0)+TA|0)|0,xA=A=B-C|0,_A=A- -1048576|0,TA=A=g-((A>>>0<4293918720)-1|0)|0,C=(g=A>>21)+EA|0,g=((A=(2097151&A)<<11|_A>>>21)>>>0>(B=A+ZA|0)>>>0?C+1|0:C)+tA|0,mA=g=(g=(A=B)>>>0>(B=B+sA|0)>>>0?g+1|0:g)-(((C=-2097152&RA)>>>0>B>>>0)+$A|0)|0,tA=A=B-C|0,i=A- -1048576|0,qA=A=g-((A>>>0<4293918720)-1|0)|0,C=(g=A>>21)+II|0,RA=A=(C=(A=(2097151&A)<<11|i>>>21)>>>0>(EA=A+AI|0)>>>0?C+1|0:C)-((EA>>>0<4293918720)-1|0)|0,hA=UA- -1048576|0,wA=GA-((UA>>>0<4293918720)-1|0)|0,sA=(2097151&A)<<11|(B=EA- -1048576|0)>>>21,A=(A>>21)+GA|0,$A=(UA=sA+UA|0)-(g=-2097152&hA)|0,AI=(sA>>>0>UA>>>0?A+1|0:A)-((g>>>0>UA>>>0)+wA|0)|0,II=EA-(A=-2097152&B)|0,ZA=C-((A>>>0>EA>>>0)+RA|0)|0,zA=tA-(A=-2097152&i)|0,UA=mA-((A>>>0>tA>>>0)+qA|0)|0,A=Ig(lA,OA,-997805,-1),g=w,C=A,A=Ig(T,W,654183,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,B=(A=C)+(C=Ig(VA,IA,136657,0))|0,A=w+g|0,g=WA+(C>>>0>B>>>0?A+1|0:A)|0,mA=(C=B+xA|0)-(A=-2097152&_A)|0,qA=(g=C>>>0>>0?g+1|0:g)-((A>>>0>C>>>0)+TA|0)|0,xA=YA-(A=-2097152&pA)|0,GA=SA-((A>>>0>YA>>>0)+BA|0)|0,g=Ig(AA,$,-997805,-1),A=w,C=g,g=Ig(R,Z,654183,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=C)+(C=Ig(X,P,136657,0))|0,g=w+A|0,g=C>>>0>B>>>0?g+1|0:g,A=Ig(L,v,-683901,-1),C=w+g|0,g=KA+(A>>>0>(B=A+B|0)>>>0?C+1|0:C)|0,pA=(C=B+vA|0)-(A=-2097152&FA)|0,SA=(g=C>>>0>>0?g+1|0:g)-((A>>>0>C>>>0)+CA|0)|0,g=Ig(AA,$,654183,0),A=w,C=g,g=Ig(R,Z,470296,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=Ig(X,P,-997805,-1))+C|0,C=w+A|0,g=dA+(g>>>0>B>>>0?C+1|0:C)|0,g=(A=B+XA|0)>>>0>>0?g+1|0:g,C=A,A=Ig(L,v,136657,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,B=(A=C)+(C=Ig(q,j,-683901,-1))|0,A=w+g|0,_A=B-(g=-2097152&HA)|0,i=(C>>>0>B>>>0?A+1|0:A)-((g>>>0>B>>>0)+gA|0)|0,B=(a[_+28|0]|a[_+29|0]<<8|a[_+30|0]<<16|a[_+31|0]<<24)>>>7|0,A=Ig(e,0,H,0),g=w,EA=(C=A)+(A=Ig(y,0,Y,0))|0,C=w+g|0,C=A>>>0>EA>>>0?C+1|0:C,A=Ig(D,0,d,0),g=w+C|0,g=A>>>0>(EA=A+EA|0)>>>0?g+1|0:g,C=Ig(F,S,J,0),A=w+g|0,A=C>>>0>(EA=C+EA|0)>>>0?A+1|0:A,C=Ig(n,0,U,0),g=w+A|0,g=C>>>0>(EA=C+EA|0)>>>0?g+1|0:g,C=Ig(G,0,K,0),A=w+g|0,A=C>>>0>(EA=C+EA|0)>>>0?A+1|0:A,g=Ig(M,0,b,0),C=w+A|0,C=g>>>0>(EA=g+EA|0)>>>0?C+1|0:C,A=Ig(k,DA,bA,0),g=w+C|0,g=A>>>0>(EA=A+EA|0)>>>0?g+1|0:g,C=Ig(s,0,m,0),A=w+g|0,A=C>>>0>(EA=C+EA|0)>>>0?A+1|0:A,C=Ig(r,0,l,0),g=w+A|0,g=C>>>0>(EA=C+EA|0)>>>0?g+1|0:g,C=Ig(p,0,u,0),A=w+g|0,A=C>>>0>(EA=C+EA|0)>>>0?A+1|0:A,g=Ig(f,0,x,0),C=w+A|0,g=C=g>>>0>(EA=g+EA|0)>>>0?C+1|0:C,KA=(C=(2097151&uA)<<11|PA>>>21)+(A=B+EA|0)|0,A=(uA>>>21|0)+(g=A>>>0>>0?g+1|0:g)|0,sA=A=C>>>0>KA>>>0?A+1|0:A,RA=g=A-((KA>>>0<4293918720)-1|0)|0,C=(A=g>>>21|0)+i|0,tA=C=(g=(2097151&g)<<11|(DA=KA- -1048576|0)>>>21)>>>0>(FA=g+_A|0)>>>0?C+1|0:C,PA=g=C-((FA>>>0<4293918720)-1|0)|0,A=(A=g>>21)+SA|0,_A=A=(g=(2097151&g)<<11|(EA=FA- -1048576|0)>>>21)>>>0>(pA=g+pA|0)>>>0?A+1|0:A,HA=g=A-((pA>>>0<4293918720)-1|0)|0,C=(A=g>>21)+GA|0,uA=C=(g=(B=(2097151&g)<<11|(i=pA- -1048576|0)>>>21)+xA|0)>>>0>>0?C+1|0:C,GA=g,A=Ig(g,C,-683901,-1),g=w+qA|0,SA=C=A+mA|0,B=A>>>0>C>>>0?g+1|0:g,g=Ig(T,W,470296,0),A=w+yA|0,A=g>>>0>(rA=g+rA|0)>>>0?A+1|0:A,g=Ig(lA,OA,654183,0),A=w+(A-(((C=-2097152&aA)>>>0>rA>>>0)+oA|0)|0)|0,A=g>>>0>(aA=g+(rA-C|0)|0)>>>0?A+1|0:A,C=Ig(VA,IA,-997805,-1),g=w+A|0,g=C>>>0>(aA=C+aA|0)>>>0?g+1|0:g,dA=C=pA-(A=-2097152&i)|0,bA=_A=_A-((A>>>0>pA>>>0)+HA|0)|0,aA=(i=Ig(GA,uA,136657,0))+aA|0,A=w+g|0,C=Ig(C,_A,-683901,-1),g=w+(i>>>0>aA>>>0?A+1|0:A)|0,_A=g=C>>>0>(yA=C+aA|0)>>>0?g+1|0:g,HA=A=g-((yA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(i=yA- -1048576|0)>>>21,A=(A>>21)+B|0,pA=g=(A=g>>>0>(aA=g+SA|0)>>>0?A+1|0:A)-((aA>>>0<4293918720)-1|0)|0,rA=(2097151&g)<<11|(B=aA- -1048576|0)>>>21,g=(g>>21)+UA|0,zA=SA=rA+zA|0,SA=rA>>>0>SA>>>0?g+1|0:g,UA=aA-(g=-2097152&B)|0,XA=A-((g>>>0>aA>>>0)+pA|0)|0,mA=yA-(A=-2097152&i)|0,qA=_A-((A>>>0>yA>>>0)+HA|0)|0,A=Ig(T,W,666643,0),C=fA+w|0,C=(i=A+jA|0)>>>0>>0?C+1|0:C,B=(A=Ig(lA,OA,470296,0))+(i-(g=-2097152&cA)|0)|0,g=w+(C-((g>>>0>i>>>0)+iA|0)|0)|0,g=A>>>0>B>>>0?g+1|0:g,C=Ig(VA,IA,654183,0),A=w+g|0,aA=B=C+B|0,B=C>>>0>B>>>0?A+1|0:A,i=FA-(A=-2097152&EA)|0,_A=tA-((A>>>0>FA>>>0)+PA|0)|0,A=Ig(AA,$,470296,0),g=w,C=A,A=Ig(R,Z,666643,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,A=Ig(X,P,654183,0),g=w+g|0,g=A>>>0>(C=A+C|0)>>>0?g+1|0:g,EA=(A=C)+(C=Ig(L,v,-997805,-1))|0,A=w+g|0,A=C>>>0>EA>>>0?A+1|0:A,g=Ig(q,j,136657,0),A=w+A|0,A=g>>>0>(C=g+EA|0)>>>0?A+1|0:A,EA=(g=Ig(V,O,-683901,-1))+C|0,C=w+A|0,g=sA+(g>>>0>EA>>>0?C+1|0:C)|0,FA=(C=(2097151&JA)<<11|MA>>>21)+((EA=EA+KA|0)-(A=-2097152&DA)|0)|0,A=((g=EA>>>0>>0?g+1|0:g)-((A>>>0>EA>>>0)+RA|0)|0)+(JA>>21)|0,pA=A=C>>>0>FA>>>0?A+1|0:A,xA=A=A-((FA>>>0<4293918720)-1|0)|0,g=i,i=(2097151&A)<<11|(cA=FA- -1048576|0)>>>21,A=(A>>21)+_A|0,HA=A=(C=g+i|0)>>>0>>0?A+1|0:A,KA=C,A=Ig(C,A,-683901,-1),g=w+B|0,g=A>>>0>(C=A+aA|0)>>>0?g+1|0:g,B=(A=C)+(C=Ig(GA,uA,-997805,-1))|0,A=w+g|0,A=C>>>0>B>>>0?A+1|0:A,g=Ig(dA,bA,136657,0),C=w+A|0,MA=B=g+B|0,tA=g>>>0>B>>>0?C+1|0:C,aA=LA-(A=-2097152&NA)|0,sA=eA-((A>>>0>LA>>>0)+QA|0)|0,g=Ig(H,0,l,0),A=w,C=g,g=Ig(Y,0,m,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,g=Ig(d,0,u,0),A=w+A|0,A=g>>>0>(C=g+C|0)>>>0?A+1|0:A,B=(g=Ig(U,0,x,0))+C|0,C=w+A|0,g=g>>>0>B>>>0?C+1|0:C,DA=C=(A=(a[_+7|0]|a[_+8|0]<<8|a[_+9|0]<<16|a[_+10|0]<<24)>>>7&2097151)+B|0,EA=A>>>0>C>>>0?g+1|0:g,A=Ig(H,0,m,0),g=w,C=A,A=Ig(Y,0,x,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,B=(A=C)+(C=Ig(U,0,u,0))|0,A=w+g|0,_A=B,B=C>>>0>B>>>0?A+1|0:A,A=(g=a[_+6|0])>>>24|0,i=g<<8|(RA=a[_+2|0]|a[_+3|0]<<8|a[_+4|0]<<16|a[_+5|0]<<24)>>>24,C=A,g=(A=a[_+7|0])>>>16|0,g|=C,C=B,i=C=(A=2097151&((3&g)<<30|(A=A<<16|i)>>>2))>>>0>(_A=A+_A|0)>>>0?C+1|0:C,vA=A=C-((_A>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(fA=_A- -1048576|0)>>>21,A=(A>>>21|0)+EA|0,rA=A=C>>>0>(eA=C+DA|0)>>>0?A+1|0:A,PA=A=A-((eA>>>0<4293918720)-1|0)|0,C=(g=A>>>21|0)+sA|0,C=(A=(2097151&A)<<11|(yA=eA- -1048576|0)>>>21)>>>0>(B=A+aA|0)>>>0?C+1|0:C,g=Ig(lA,OA,666643,0),A=w+C|0,A=g>>>0>(B=g+B|0)>>>0?A+1|0:A,g=Ig(VA,IA,470296,0),A=w+A|0,A=g>>>0>(C=g+B|0)>>>0?A+1|0:A,B=(g=C)+(C=Ig(KA,HA,136657,0))|0,g=w+A|0,g=C>>>0>B>>>0?g+1|0:g,A=Ig(GA,uA,654183,0),g=w+g|0,g=A>>>0>(C=A+B|0)>>>0?g+1|0:g,aA=(A=Ig(dA,bA,-997805,-1))+C|0,C=w+g|0,sA=C=A>>>0>aA>>>0?C+1|0:C,JA=A=C-((aA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(DA=aA- -1048576|0)>>>21,A=(A>>21)+tA|0,MA=C=(A=C>>>0>(B=C+MA|0)>>>0?A+1|0:A)-((B>>>0<4293918720)-1|0)|0,EA=(2097151&C)<<11|(tA=B- -1048576|0)>>>21,C=(C>>21)+qA|0,YA=NA=EA+mA|0,NA=EA>>>0>NA>>>0?C+1|0:C,EA=B,g=A,B=(FA-(A=-2097152&cA)|0)+(cA=(2097151&wA)<<11|hA>>>21)|0,A=(pA-((A>>>0>FA>>>0)+xA|0)|0)+(wA>>21)|0,hA=A=B>>>0>>0?A+1|0:A,mA=A=A-((B>>>0<4293918720)-1|0)|0,FA=C=A>>21,A=Ig(lA=(2097151&A)<<11|(wA=B- -1048576|0)>>>21,C,-683901,-1),g=w+g|0,g=A>>>0>(C=A+EA|0)>>>0?g+1|0:g,qA=C-(A=-2097152&tA)|0,LA=g-((A>>>0>C>>>0)+MA|0)|0,g=Ig(lA,FA,136657,0),A=w+sA|0,A=g>>>0>(C=g+aA|0)>>>0?A+1|0:A,jA=C-(g=-2097152&DA)|0,JA=A-((g>>>0>C>>>0)+JA|0)|0,g=Ig(VA,IA,666643,0),A=w+(rA-(((C=-2097152&yA)>>>0>eA>>>0)+PA|0)|0)|0,A=g>>>0>(EA=g+(eA-C|0)|0)>>>0?A+1|0:A,C=Ig(KA,HA,-997805,-1),g=w+A|0,g=C>>>0>(EA=C+EA|0)>>>0?g+1|0:g,A=Ig(GA,uA,470296,0),C=w+g|0,C=A>>>0>(EA=A+EA|0)>>>0?C+1|0:C,g=Ig(dA,bA,654183,0),A=w+C|0,MA=EA=g+EA|0,sA=g>>>0>EA>>>0?A+1|0:A,C=RA>>>5&2097151,A=Ig(H,0,x,0),g=w,tA=A,A=Ig(Y,0,u,0),g=w+g|0,A=A>>>0>(EA=tA+A|0)>>>0?g+1|0:g,tA=g=C+EA|0,C=A=g>>>0>>0?A+1|0:A,eA=(g=Ig(H,0,u,0))+(A=(A=a[_+2|0])<<16&2031616|a[0|_]|a[_+1|0]<<8)|0,g=w,cA=g=A>>>0>eA>>>0?g+1|0:g,xA=g=g-((eA>>>0<4293918720)-1|0)|0,A=(A=g>>>21|0)+C|0,yA=A=(g=(2097151&g)<<11|(rA=eA- -1048576|0)>>>21)>>>0>(pA=g+tA|0)>>>0?A+1|0:A,RA=g=A-((pA>>>0<4293918720)-1|0)|0,C=(2097151&g)<<11|(aA=pA- -1048576|0)>>>21,g=(g>>>21|0)+i|0,g=C>>>0>(EA=C+_A|0)>>>0?g+1|0:g,C=Ig(KA,HA,654183,0),A=w+(g-(((i=-2097152&fA)>>>0>EA>>>0)+vA|0)|0)|0,A=C>>>0>(_A=C+(EA-i|0)|0)>>>0?A+1|0:A,g=Ig(GA,uA,666643,0),A=w+A|0,A=g>>>0>(C=g+_A|0)>>>0?A+1|0:A,DA=(g=C)+(C=Ig(dA,bA,470296,0))|0,g=w+A|0,tA=g=C>>>0>DA>>>0?g+1|0:g,PA=g=g-((DA>>>0<4293918720)-1|0)|0,C=(A=g>>21)+sA|0,fA=g=(C=(g=(2097151&g)<<11|(EA=DA- -1048576|0)>>>21)>>>0>(_A=g+MA|0)>>>0?C+1|0:C)-((_A>>>0<4293918720)-1|0)|0,sA=(2097151&g)<<11|(i=_A- -1048576|0)>>>21,g=(g>>21)+JA|0,uA=GA=sA+jA|0,sA=sA>>>0>GA>>>0?g+1|0:g,A=Ig(lA,FA,-997805,-1),g=w+C|0,g=A>>>0>(_A=A+_A|0)>>>0?g+1|0:g,JA=_A-(A=-2097152&i)|0,MA=g-((A>>>0>_A>>>0)+fA|0)|0,g=Ig(lA,FA,654183,0),A=w+tA|0,A=g>>>0>(C=g+DA|0)>>>0?A+1|0:A,GA=C-(g=-2097152&EA)|0,fA=A-((g>>>0>C>>>0)+PA|0)|0,A=Ig(KA,HA,470296,0),C=w+(yA-(((g=-2097152&aA)>>>0>pA>>>0)+RA|0)|0)|0,C=A>>>0>(i=A+(pA-g|0)|0)>>>0?C+1|0:C,g=Ig(dA,bA,666643,0),A=w+C|0,_A=i=g+i|0,C=g>>>0>i>>>0?A+1|0:A,g=Ig(KA,HA,666643,0),A=w+(cA-((4095&xA)+((i=-2097152&rA)>>>0>eA>>>0)|0)|0)|0,DA=A=g>>>0>(aA=g+(eA-i|0)|0)>>>0?A+1|0:A,cA=A=A-((aA>>>0<4293918720)-1|0)|0,i=(2097151&A)<<11|(tA=aA- -1048576|0)>>>21,A=(A>>21)+C|0,C=A=i>>>0>(EA=i+_A|0)>>>0?A+1|0:A,rA=A=A-((EA>>>0<4293918720)-1|0)|0,i=(2097151&A)<<11|(_A=EA- -1048576|0)>>>21,A=(A>>21)+fA|0,i=i>>>0>(yA=i+GA|0)>>>0?A+1|0:A,A=Ig(lA,FA,470296,0),C=w+C|0,C=A>>>0>(g=A+EA|0)>>>0?C+1|0:C,EA=g-(A=-2097152&_A)|0,_A=C-((A>>>0>g>>>0)+rA|0)|0,g=Ig(lA,FA,666643,0),A=w+(DA-(((C=-2097152&tA)>>>0>aA>>>0)+cA|0)|0)|0,g=(C=(A=g>>>0>(pA=g+(aA-C|0)|0)>>>0?A+1|0:A)>>21)+_A|0,A=(A=(g=(A=(2097151&A)<<11|pA>>>21)>>>0>(fA=A+EA|0)>>>0?g+1|0:g)>>21)+i|0,g=(g=(A=(g=(2097151&g)<<11|fA>>>21)>>>0>(cA=g+yA|0)>>>0?A+1|0:A)>>21)+MA|0,C=(A=(g=(A=(2097151&A)<<11|cA>>>21)>>>0>(i=A+JA|0)>>>0?g+1|0:g)>>21)+sA|0,A=(g=(C=(g=(2097151&g)<<11|i>>>21)>>>0>(rA=g+uA|0)>>>0?C+1|0:C)>>21)+LA|0,g=(C=(A=(C=(2097151&C)<<11|rA>>>21)>>>0>(yA=C+qA|0)>>>0?A+1|0:A)>>21)+NA|0,A=(A=(g=(A=(2097151&A)<<11|yA>>>21)>>>0>(aA=A+YA|0)>>>0?g+1|0:g)>>21)+XA|0,g=(g=(A=(g=(2097151&g)<<11|aA>>>21)>>>0>(sA=g+UA|0)>>>0?A+1|0:A)>>21)+SA|0,C=(A=(g=(A=(2097151&A)<<11|sA>>>21)>>>0>(DA=A+zA|0)>>>0?g+1|0:g)>>21)+ZA|0,A=(g=(C=(g=(2097151&g)<<11|DA>>>21)>>>0>(tA=g+II|0)>>>0?C+1|0:C)>>21)+AI|0,_A=(wA=B-(g=-2097152&wA)|0)+((2097151&(A=(C=(2097151&C)<<11|tA>>>21)>>>0>(EA=C+$A|0)>>>0?A+1|0:A))<<11|EA>>>21)|0,A=(hA-((g>>>0>B>>>0)+mA|0)|0)+(A>>21)|0,wA=g=(A=_A>>>0>>0?A+1|0:A)>>21,pA=(A=Ig(NA=(2097151&A)<<11|_A>>>21,g,666643,0))+(g=2097151&pA)|0,A=w,B=A=g>>>0>pA>>>0?A+1|0:A,o[0|Q]=pA,o[Q+1|0]=(255&A)<<24|pA>>>8,A=2097151&fA,g=Ig(NA,wA,470296,0)+A|0,C=w,A=(B>>21)+(A>>>0>g>>>0?C+1|0:C)|0,A=(hA=(2097151&B)<<11|pA>>>21)>>>0>(fA=hA+g|0)>>>0?A+1|0:A,o[Q+4|0]=(2047&A)<<21|fA>>>11,g=A,C=fA,o[Q+3|0]=(7&A)<<29|C>>>3,o[Q+2|0]=31&((65535&B)<<16|pA>>>16)|C<<5,B=2097151&cA,cA=Ig(NA,wA,654183,0)+B|0,A=w,fA=(2097151&g)<<11|C>>>21,g=(g>>21)+(B=B>>>0>cA>>>0?A+1|0:A)|0,A=g=(cA=fA+cA|0)>>>0>>0?g+1|0:g,o[Q+6|0]=(63&A)<<26|cA>>>6,B=cA,cA=0,o[Q+5|0]=cA<<13|(1572864&C)>>>19|B<<2,C=2097151&i,i=Ig(NA,wA,-997805,-1)+C|0,g=w,g=C>>>0>i>>>0?g+1|0:g,cA=(2097151&(C=A))<<11|B>>>21,C=(A>>=21)+g|0,C=(i=cA+i|0)>>>0>>0?C+1|0:C,o[Q+9|0]=(511&C)<<23|i>>>9,o[Q+8|0]=(1&C)<<31|i>>>1,g=0,o[Q+7|0]=g<<18|(2080768&B)>>>14|i<<7,g=2097151&rA,B=Ig(NA,wA,136657,0)+g|0,A=w,A=g>>>0>B>>>0?A+1|0:A,rA=(2097151&(g=C))<<11|i>>>21,g=A+(C=g>>21)|0,g=(B=rA+B|0)>>>0>>0?g+1|0:g,o[Q+12|0]=(4095&g)<<20|B>>>12,C=B,o[Q+11|0]=(15&g)<<28|C>>>4,B=0,o[Q+10|0]=B<<15|(1966080&i)>>>17|C<<4,B=2097151&yA,i=Ig(NA,wA,-683901,-1)+B|0,A=w,A=B>>>0>i>>>0?A+1|0:A,B=g,g=A+(g>>=21)|0,g=(B=(yA=i)+(i=(2097151&B)<<11|C>>>21)|0)>>>0>>0?g+1|0:g,o[Q+14|0]=(127&g)<<25|B>>>7,i=0,o[Q+13|0]=i<<12|(1048576&C)>>>20|B<<1,A=g>>21,C=(g=(2097151&g)<<11|B>>>21)>>>0>(i=g+(2097151&aA)|0)>>>0?A+1|0:A,o[Q+17|0]=(1023&C)<<22|i>>>10,o[Q+16|0]=(3&C)<<30|i>>>2,g=0,o[Q+15|0]=g<<17|(2064384&B)>>>15|i<<6,A=C>>21,A=(g=(2097151&C)<<11|i>>>21)>>>0>(C=g+(2097151&sA)|0)>>>0?A+1|0:A,o[Q+20|0]=(8191&A)<<19|C>>>13,o[Q+19|0]=(31&A)<<27|C>>>5,B=(g=2097151&DA)+(DA=(2097151&A)<<11|C>>>21)|0,g=A>>21,g=B>>>0>>0?g+1|0:g,DA=B,o[Q+21|0]=B,sA=0,o[Q+18|0]=sA<<14|(1835008&i)>>>18|C<<3,o[Q+22|0]=(255&g)<<24|B>>>8,C=g>>21,C=(B=(i=(2097151&g)<<11|B>>>21)+(2097151&tA)|0)>>>0>>0?C+1|0:C,o[Q+25|0]=(2047&C)<<21|B>>>11,o[Q+24|0]=(7&C)<<29|B>>>3,o[Q+23|0]=31&((65535&g)<<16|DA>>>16)|B<<5,A=C>>21,A=(g=(2097151&C)<<11|B>>>21)>>>0>(C=g+(2097151&EA)|0)>>>0?A+1|0:A,o[Q+27|0]=(63&A)<<26|C>>>6,i=0,o[Q+26|0]=i<<13|(1572864&B)>>>19|C<<2,g=A>>21,g=(A=(B=(2097151&A)<<11|C>>>21)+(2097151&_A)|0)>>>0>>0?g+1|0:g,o[Q+31|0]=(131071&g)<<15|A>>>17,o[Q+30|0]=(511&g)<<23|A>>>9,o[Q+29|0]=(1&g)<<31|A>>>1,B=0,o[Q+28|0]=B<<18|(2080768&C)>>>14|A<<7,XC(c,64),XC(_,64),I&&(E[I>>2]=64,E[I+4>>2]=0),h=t+560|0,0}function k(A,I,g){var C,B,Q,i,E,_,c,t,r,e,y,s,h,D,p,f,n,k,F,N,S,G,M,b,K,H,Y,d,J,U,l,m,u,x,R,v,L,P,q,z,j,X,O=0,V=0,Z=0,W=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,pA=0,wA=0,fA=0,nA=0,kA=0,FA=0,NA=0,SA=0,GA=0,MA=0,bA=0,KA=0,HA=0,YA=0,dA=0,JA=0,UA=0,lA=0,mA=0,uA=0,xA=0,RA=0,vA=0,LA=0,PA=0,qA=0;W=Ig(C=(V=a[g+2|0])<<16&2031616|a[0|g]|a[g+1|0]<<8,0,B=(QA=a[I+23|0]|a[I+24|0]<<8|a[I+25|0]<<16|a[I+26|0]<<24)>>>5&2097151,0),Z=w,O=Ig(Q=(V=a[I+23|0])<<16&2031616|a[I+21|0]|a[I+22|0]<<8,0,i=(T=a[g+2|0]|a[g+3|0]<<8|a[g+4|0]<<16|a[g+5|0]<<24)>>>5&2097151,0),V=w+Z|0,V=O>>>0>(W=O+W|0)>>>0?V+1|0:V,Z=Ig(E=(a[g+7|0]|a[g+8|0]<<8|a[g+9|0]<<16|a[g+10|0]<<24)>>>7&2097151,0,_=(oA=a[I+15|0]|a[I+16|0]<<8|a[I+17|0]<<16|a[I+18|0]<<24)>>>6&2097151,0),O=w+V|0,IA=W=Z+W|0,Z=Z>>>0>W>>>0?O+1|0:O,O=(V=a[I+14|0])>>>24|0,$=V<<8|(gA=a[I+10|0]|a[I+11|0]<<8|a[I+12|0]<<16|a[I+13|0]<<24)>>>24,O=Ig(c=2097151&((1&(CA=(V=O)|(O=(W=a[I+15|0])>>>16|0)))<<31|(V=(W<<=16)|$)>>>1),0,t=(AA=a[g+10|0]|a[g+11|0]<<8|a[g+12|0]<<16|a[g+13|0]<<24)>>>4&2097151,0),Z=w+Z|0,CA=V=O+IA|0,W=V>>>0>>0?Z+1|0:Z,Z=(O=a[g+6|0])>>>24|0,IA=O<<8|T>>>24,T=r=2097151&((3&(Z|=O=(V=a[g+7|0])>>>16|0))<<30|(V=IA|V<<16)>>>2),IA=0,$=(V=a[I+19|0])<<8|oA>>>24,Z=O=V>>>24|0,V=(O=a[I+20|0])>>>16|0,G=Z=(V|=Z)>>>3|0,O=Ig(T,IA,e=(7&V)<<29|(O=O<<16|$)>>>3,Z),V=w+W|0,V=O>>>0>($=O+CA|0)>>>0?V+1|0:V,Z=Ig(y=(T=a[g+15|0]|a[g+16|0]<<8|a[g+17|0]<<16|a[g+18|0]<<24)>>>6&2097151,0,s=(a[I+7|0]|a[I+8|0]<<8|a[I+9|0]<<16|a[I+10|0]<<24)>>>7&2097151,0),O=w+V|0,IA=W=Z+$|0,W=Z>>>0>W>>>0?O+1|0:O,$=(V=a[g+14|0])<<8|AA>>>24,V=O=V>>>24|0,Z=(O=a[g+15|0])>>>16|0,O=Ig(h=2097151&((1&(Z|=V))<<31|(V=(O<<=16)|$)>>>1),0,D=gA>>>4&2097151,0),V=w+W|0,AA=Z=O+IA|0,IA=O>>>0>Z>>>0?V+1|0:V,V=(O=a[g+19|0])>>>24|0,W=O<<8|T>>>24,Z=(O=a[g+20|0])>>>16|0,p=(7&(Z|=V))<<29|(O=W|O<<16)>>>3,eA=V=Z>>>3|0,W=V,V=(O=a[I+6|0])>>>24|0,T=O<<8|(CA=a[I+2|0]|a[I+3|0]<<8|a[I+4|0]<<16|a[I+5|0]<<24)>>>24,Z=V,V=(O=a[I+7|0])>>>16|0,V=Ig(p,W,f=2097151&((3&(V|=Z))<<30|(O=O<<16|T)>>>2),0),O=w+IA|0,Z=V>>>0>(W=V+AA|0)>>>0?O+1|0:O,V=Ig(n=(V=a[g+23|0])<<16&2031616|a[g+21|0]|a[g+22|0]<<8,0,k=CA>>>5&2097151,0),O=w+Z|0,Z=V>>>0>(W=V+W|0)>>>0?O+1|0:O,O=Ig(F=(V=a[I+2|0])<<16&2031616|a[0|I]|a[I+1|0]<<8,0,DA=(CA=a[g+23|0]|a[g+24|0]<<8|a[g+25|0]<<16|a[g+26|0]<<24)>>>5&2097151,0),V=w+Z|0,T=W=O+W|0,IA=O>>>0>W>>>0?V+1|0:V,O=Ig(Q,0,C,0),V=w,W=(Z=O)+(O=Ig(e,G,i,0))|0,Z=w+V|0,Z=O>>>0>W>>>0?Z+1|0:Z,O=Ig(E,0,c,0),V=w+Z|0,V=O>>>0>(W=O+W|0)>>>0?V+1|0:V,Z=Ig(t,0,D,0),O=w+V|0,O=Z>>>0>(W=Z+W|0)>>>0?O+1|0:O,V=Ig(_,0,r,0),O=w+O|0,O=V>>>0>(Z=V+W|0)>>>0?O+1|0:O,W=(V=Z)+(Z=Ig(y,0,f,0))|0,V=w+O|0,V=Z>>>0>W>>>0?V+1|0:V,O=Ig(h,0,s,0),Z=w+V|0,Z=O>>>0>(W=O+W|0)>>>0?Z+1|0:Z,W=(O=Ig(p,eA,k,0))+W|0,V=w+Z|0,Z=Ig(n,0,F,0),O=w+(O>>>0>W>>>0?V+1|0:V)|0,W=O=Z>>>0>($=Z+W|0)>>>0?O+1|0:O,EA=O=O-(($>>>0<4293918720)-1|0)|0,V=(V=O>>>21|0)+IA|0,aA=Z=(V=(O=(2097151&O)<<11|(cA=$- -1048576|0)>>>21)>>>0>(T=O+T|0)>>>0?V+1|0:V)-((T>>>0<4293918720)-1|0)|0,iA=T-(O=-2097152&(tA=T- -1048576|0))|0,BA=V-((O>>>0>T>>>0)+Z|0)|0,IA=(V=a[g+27|0])<<8|CA>>>24,Z=O=V>>>24|0,T=Ig(N=2097151&((3&(Z|=V=(O=a[g+28|0])>>>16|0))<<30|(V=(O<<=16)|IA)>>>2),0,wA=(a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24)>>>7|0,0),IA=w,V=(O=a[I+27|0])>>>24|0,I=Ig(S=2097151&((3&(V|=Z=(I=a[I+28|0])>>>16|0))<<30|(O=O<<8|QA>>>24|I<<16)>>>2),0,fA=(a[g+28|0]|a[g+29|0]<<8|a[g+30|0]<<16|a[g+31|0]<<24)>>>7|0,0),O=w+IA|0,O=I>>>0>(g=I+T|0)>>>0?O+1|0:O,Z=g,I=Ig(B,0,fA,0),g=w,IA=(V=I)+(I=Ig(DA,0,wA,0))|0,V=w+g|0,V=I>>>0>IA>>>0?V+1|0:V,I=Ig(N,0,S,0),V=w+V|0,IA=V=I>>>0>(CA=I+IA|0)>>>0?V+1|0:V,AA=I=V-((CA>>>0<4293918720)-1|0)|0,V=I>>>21|0,T=(I=(2097151&I)<<11|(g=CA- -1048576|0)>>>21)+Z|0,Z=V+O|0,oA=V=(Z=I>>>0>T>>>0?Z+1|0:Z)-((T>>>0<4293918720)-1|0)|0,I=T-(O=-2097152&(gA=T- -1048576|0))|0,b=O=Z-((131071&V)+(O>>>0>T>>>0)|0)|0,K=I,I=Ig(I,O,666643,0),O=w+BA|0,kA=V=I+iA|0,T=I>>>0>V>>>0?O+1|0:O,iA=CA-(I=-2097152&g)|0,sA=IA-((131071&AA)+(I>>>0>CA>>>0)|0)|0,I=Ig(n,0,wA,0),g=w,V=(O=I)+(I=Ig(DA,0,S,0))|0,O=w+g|0,O=I>>>0>V>>>0?O+1|0:O,g=(I=Ig(Q,0,fA,0))+V|0,V=w+O|0,V=I>>>0>g>>>0?V+1|0:V,I=Ig(B,0,N,0),O=w+V|0,AA=g=I+g|0,I=I>>>0>g>>>0?O+1|0:O,g=Ig(B,0,DA,0),O=w,Z=(V=g)+(g=Ig(p,eA,wA,0))|0,V=w+O|0,V=g>>>0>Z>>>0?V+1|0:V,O=(g=Ig(n,0,S,0))+Z|0,Z=w+V|0,Z=g>>>0>O>>>0?Z+1|0:Z,V=(g=Ig(e,G,fA,0))+O|0,O=w+Z|0,O=g>>>0>V>>>0?O+1|0:O,BA=(g=Ig(Q,0,N,0))+V|0,V=w+O|0,CA=V=g>>>0>BA>>>0?V+1|0:V,_A=g=V-((BA>>>0<4293918720)-1|0)|0,V=I+(O=g>>>21|0)|0,g=V=(g=(2097151&g)<<11|(IA=BA- -1048576|0)>>>21)>>>0>(AA=g+AA|0)>>>0?V+1|0:V,QA=V=V-((AA>>>0<4293918720)-1|0)|0,O=iA,iA=(2097151&V)<<11|(I=AA- -1048576|0)>>>21,V=(V>>>21|0)+sA|0,H=V=(Z=O+iA|0)>>>0>>0?V+1|0:V,Y=I=AA-(O=-2097152&I)|0,d=AA=g-((O>>>0>AA>>>0)+QA|0)|0,J=Z,g=Ig(Z,V,470296,0),O=w+T|0,O=g>>>0>(V=g+kA|0)>>>0?O+1|0:O,I=Ig(I,AA,654183,0),Z=w+O|0,sA=g=I+V|0,T=I>>>0>g>>>0?Z+1|0:Z,QA=BA-(I=-2097152&IA)|0,BA=CA-((I>>>0>BA>>>0)+_A|0)|0,I=Ig(p,eA,S,0),g=w,V=(O=I)+(I=Ig(y,0,wA,0))|0,O=w+g|0,O=I>>>0>V>>>0?O+1|0:O,g=(I=Ig(Q,0,DA,0))+V|0,V=w+O|0,V=I>>>0>g>>>0?V+1|0:V,I=Ig(B,0,n,0),Z=w+V|0,Z=I>>>0>(g=I+g|0)>>>0?Z+1|0:Z,I=Ig(_,0,fA,0),O=w+Z|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(e,G,N,0),V=w+O|0,CA=g=I+g|0,IA=I>>>0>g>>>0?V+1|0:V,I=Ig(h,0,wA,0),g=w,V=(O=I)+(I=Ig(y,0,S,0))|0,O=w+g|0,O=I>>>0>V>>>0?O+1|0:O,g=(I=Ig(B,0,p,eA))+V|0,V=w+O|0,V=I>>>0>g>>>0?V+1|0:V,I=Ig(e,G,DA,0),Z=w+V|0,Z=I>>>0>(g=I+g|0)>>>0?Z+1|0:Z,I=Ig(Q,0,n,0),O=w+Z|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(c,0,fA,0),V=w+O|0,V=I>>>0>(g=I+g|0)>>>0?V+1|0:V,I=Ig(_,0,N,0),O=w+V|0,I=O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,yA=O=O-((g>>>0<4293918720)-1|0)|0,Z=(V=O>>>21|0)+IA|0,iA=Z=(O=(2097151&O)<<11|(_A=g- -1048576|0)>>>21)>>>0>(hA=O+CA|0)>>>0?Z+1|0:Z,dA=O=Z-((hA>>>0<4293918720)-1|0)|0,IA=(2097151&O)<<11|(AA=hA- -1048576|0)>>>21,O=(O>>>21|0)+BA|0,U=O=(Z=IA+QA|0)>>>0>>0?O+1|0:O,l=Z,O=Ig(Z,O,-997805,-1),V=w+T|0,BA=Z=O+sA|0,T=O>>>0>Z>>>0?V+1|0:V,IA=$,$=W,O=Ig(C,0,e,G),V=w,W=(Z=O)+(O=Ig(_,0,i,0))|0,Z=w+V|0,Z=O>>>0>W>>>0?Z+1|0:Z,V=Ig(E,0,D,0),O=w+Z|0,O=V>>>0>(W=V+W|0)>>>0?O+1|0:O,Z=Ig(t,0,s,0),V=w+O|0,V=Z>>>0>(W=Z+W|0)>>>0?V+1|0:V,Z=Ig(c,0,r,0),O=w+V|0,O=Z>>>0>(W=Z+W|0)>>>0?O+1|0:O,Z=Ig(y,0,k,0),V=w+O|0,V=Z>>>0>(W=Z+W|0)>>>0?V+1|0:V,O=Ig(h,0,f,0),Z=w+V|0,Z=O>>>0>(W=O+W|0)>>>0?Z+1|0:Z,V=Ig(p,eA,F,0),O=w+Z|0,CA=W=V+W|0,W=V>>>0>W>>>0?O+1|0:O,O=Ig(C,0,_,0),V=w,Z=O,O=Ig(c,0,i,0),V=w+V|0,V=O>>>0>(Z=Z+O|0)>>>0?V+1|0:V,QA=(O=Z)+(Z=Ig(E,0,s,0))|0,O=w+V|0,O=Z>>>0>QA>>>0?O+1|0:O,Z=Ig(t,0,f,0),V=w+O|0,V=Z>>>0>(QA=Z+QA|0)>>>0?V+1|0:V,O=Ig(r,0,D,0),Z=w+V|0,Z=O>>>0>(QA=O+QA|0)>>>0?Z+1|0:Z,QA=(V=Ig(y,0,F,0))+QA|0,O=w+Z|0,Z=Ig(h,0,k,0),V=w+(V>>>0>QA>>>0?O+1|0:O)|0,GA=V=Z>>>0>(SA=Z+QA|0)>>>0?V+1|0:V,xA=V=V-((SA>>>0<4293918720)-1|0)|0,Z=(2097151&V)<<11|(NA=SA- -1048576|0)>>>21,V=(V>>>21|0)+W|0,rA=V=Z>>>0>(MA=Z+CA|0)>>>0?V+1|0:V,RA=V=V-((MA>>>0<4293918720)-1|0)|0,Z=(2097151&V)<<11|(kA=MA- -1048576|0)>>>21,V=(V>>>21|0)+$|0,V=Z>>>0>(IA=Z+IA|0)>>>0?V+1|0:V,O=Ig(J,H,666643,0),V=w+(V-(((Z=-2097152&cA)>>>0>IA>>>0)+EA|0)|0)|0,V=O>>>0>(W=O+(IA-Z|0)|0)>>>0?V+1|0:V,Z=Ig(Y,d,470296,0),O=w+V|0,O=Z>>>0>(W=Z+W|0)>>>0?O+1|0:O,Z=Ig(l,U,654183,0),V=w+O|0,sA=V=Z>>>0>(pA=Z+W|0)>>>0?V+1|0:V,lA=V=V-((pA>>>0<4293918720)-1|0)|0,O=(O=V>>21)+T|0,BA=O=(V=(2097151&V)<<11|(QA=pA- -1048576|0)>>>21)>>>0>(EA=V+BA|0)>>>0?O+1|0:O,bA=V=O-((EA>>>0<4293918720)-1|0)|0,JA=(2097151&V)<<11|(cA=EA- -1048576|0)>>>21,CA=V>>21,O=Ig(C,0,S,0),V=w,Z=O,O=Ig(B,0,i,0),V=w+V|0,V=O>>>0>(Z=Z+O|0)>>>0?V+1|0:V,W=(O=Ig(E,0,e,G))+Z|0,Z=w+V|0,Z=O>>>0>W>>>0?Z+1|0:Z,V=Ig(_,0,t,0),O=w+Z|0,O=V>>>0>(W=V+W|0)>>>0?O+1|0:O,Z=Ig(Q,0,r,0),V=w+O|0,V=Z>>>0>(W=Z+W|0)>>>0?V+1|0:V,Z=Ig(y,0,D,0),O=w+V|0,O=Z>>>0>(W=Z+W|0)>>>0?O+1|0:O,Z=Ig(c,0,h,0),V=w+O|0,V=Z>>>0>(W=Z+W|0)>>>0?V+1|0:V,O=Ig(s,0,p,eA),Z=w+V|0,Z=O>>>0>(W=O+W|0)>>>0?Z+1|0:Z,V=Ig(k,0,DA,0),O=w+Z|0,O=V>>>0>(W=V+W|0)>>>0?O+1|0:O,Z=Ig(f,0,n,0),V=w+O|0,V=Z>>>0>(W=Z+W|0)>>>0?V+1|0:V,Z=(O=W)+(W=Ig(N,0,F,0))|0,O=w+V|0,T=Z,IA=Z>>>0>>0?O+1|0:O,FA=Ig(wA,0,fA,0),$=Z=(KA=w)-((FA>>>0<4293918720)-1|0)|0,V=FA-(O=-2097152&(W=FA- -1048576|0))|0,O=(oA>>>21|0)+(O=KA-((524287&Z)+(O>>>0>FA>>>0)|0)|0)|0,m=O=(Z=(gA=(2097151&oA)<<11|gA>>>21)+V|0)>>>0>>0?O+1|0:O,u=Z,V=(2097151&aA)<<11|tA>>>21,gA=Ig(Z,O,666643,0)+V|0,O=w+(aA>>>21|0)|0,O=V>>>0>gA>>>0?O+1|0:O,Z=Ig(K,b,470296,0),V=w+O|0,V=(Z>>>0>(gA=Z+gA|0)>>>0?V+1|0:V)+IA|0,V=(O=T+gA|0)>>>0>>0?V+1|0:V,gA=(Z=Ig(J,H,654183,0))+O|0,O=w+V|0,UA=T- -1048576|0,FA=IA=IA-((T>>>0<4293918720)-1|0)|0,V=Ig(Y,d,-997805,-1),Z=w+(Z>>>0>gA>>>0?O+1|0:O)|0,Z=V>>>0>(T=V+gA|0)>>>0?Z+1|0:Z,tA=(O=Ig(l,U,136657,0))+(T-(V=-2097152&UA)|0)|0,V=w+(Z-((V>>>0>T>>>0)+IA|0)|0)|0,Z=(oA=O>>>0>tA>>>0?V+1|0:V)+CA|0,HA=O=tA+JA|0,gA=Z=O>>>0>>0?Z+1|0:Z,KA=hA-(O=-2097152&AA)|0,hA=iA-((O>>>0>hA>>>0)+dA|0)|0,x=Z=$>>>21|0,V=(O=g)+(g=Ig(M=(2097151&$)<<11|W>>>21,Z,-683901,-1))|0,O=w+I|0,iA=V-(I=-2097152&_A)|0,aA=(g>>>0>V>>>0?O+1|0:O)-((I>>>0>V>>>0)+yA|0)|0,I=Ig(B,0,y,0),g=w,O=I,I=Ig(t,0,wA,0),V=w+g|0,V=I>>>0>(O=O+I|0)>>>0?V+1|0:V,I=Ig(h,0,S,0),Z=w+V|0,Z=I>>>0>(g=I+O|0)>>>0?Z+1|0:Z,I=Ig(Q,0,p,eA),O=w+Z|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(_,0,DA,0),O=w+O|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(e,G,n,0),V=w+O|0,V=I>>>0>(g=I+g|0)>>>0?V+1|0:V,I=Ig(D,0,fA,0),V=w+V|0,V=I>>>0>(g=I+g|0)>>>0?V+1|0:V,I=Ig(c,0,N,0),Z=w+V|0,W=g=I+g|0,I=I>>>0>g>>>0?Z+1|0:Z,g=Ig(t,0,S,0),O=w,V=g,g=Ig(E,0,wA,0),O=w+O|0,O=g>>>0>(V=V+g|0)>>>0?O+1|0:O,g=Ig(Q,0,y,0),O=w+O|0,O=g>>>0>(V=g+V|0)>>>0?O+1|0:O,Z=(g=Ig(B,0,h,0))+V|0,V=w+O|0,V=g>>>0>Z>>>0?V+1|0:V,g=Ig(e,G,p,eA),V=w+V|0,V=g>>>0>(O=g+Z|0)>>>0?V+1|0:V,g=Ig(c,0,DA,0),Z=w+V|0,Z=g>>>0>(O=g+O|0)>>>0?Z+1|0:Z,V=(g=Ig(_,0,n,0))+O|0,O=w+Z|0,O=g>>>0>V>>>0?O+1|0:O,g=Ig(s,0,fA,0),O=w+O|0,O=g>>>0>(V=g+V|0)>>>0?O+1|0:O,AA=(g=Ig(D,0,N,0))+V|0,V=w+O|0,CA=V=g>>>0>AA>>>0?V+1|0:V,YA=g=V-((AA>>>0<4293918720)-1|0)|0,Z=I+(O=g>>>21|0)|0,IA=Z=(g=(2097151&g)<<11|(T=AA- -1048576|0)>>>21)>>>0>(_A=g+W|0)>>>0?Z+1|0:Z,yA=I=Z-((_A>>>0<4293918720)-1|0)|0,V=(O=I>>>21|0)+aA|0,W=V=(I=(2097151&I)<<11|($=_A- -1048576|0)>>>21)>>>0>(iA=I+iA|0)>>>0?V+1|0:V,aA=g=V-((iA>>>0<4293918720)-1|0)|0,Z=(O=g>>21)+hA|0,R=Z=(g=(V=(2097151&g)<<11|(I=iA- -1048576|0)>>>21)+KA|0)>>>0>>0?Z+1|0:Z,dA=tA- -1048576|0,JA=V=oA-((tA>>>0<4293918720)-1|0)|0,mA=g,g=Ig(g,Z,-683901,-1),O=w+gA|0,KA=O=(V=(O=g>>>0>(Z=g+HA|0)>>>0?O+1|0:O)-(((g=-2097152&dA)>>>0>Z>>>0)+V|0)|0)-(((gA=Z-g|0)>>>0<4293918720)-1|0)|0,P=gA-(g=-2097152&(hA=gA- -1048576|0))|0,vA=V-((g>>>0>gA>>>0)+O|0)|0,g=Ig(mA,R,136657,0),V=w+(BA-(((O=-2097152&cA)>>>0>EA>>>0)+bA|0)|0)|0,uA=Z=g+(EA-O|0)|0,g=g>>>0>Z>>>0?V+1|0:V,nA=iA-(I&=-2097152)|0,cA=W-((I>>>0>iA>>>0)+aA|0)|0,I=Ig(u,m,-683901,-1),O=w,V=I,I=Ig(M,x,136657,0),O=w+O|0,V=IA+(I>>>0>(Z=V+I|0)>>>0?O+1|0:O)|0,oA=(O=Z+_A|0)-(I=-2097152&$)|0,gA=(V=O>>>0<_A>>>0?V+1|0:V)-((I>>>0>O>>>0)+yA|0)|0,I=Ig(M,x,-997805,-1),O=w+CA|0,O=I>>>0>(V=I+AA|0)>>>0?O+1|0:O,I=Ig(u,m,136657,0),O=w+O|0,O=I>>>0>(V=I+V|0)>>>0?O+1|0:O,Z=(I=Ig(K,b,-683901,-1))+V|0,V=w+O|0,V=I>>>0>Z>>>0?V+1|0:V,IA=Z-(I=-2097152&T)|0,$=V-((I>>>0>Z>>>0)+YA|0)|0,I=Ig(B,0,t,0),O=w,Z=(V=I)+(I=Ig(E,0,S,0))|0,V=w+O|0,V=I>>>0>Z>>>0?V+1|0:V,I=Ig(r,0,wA,0),O=w+V|0,O=I>>>0>(Z=I+Z|0)>>>0?O+1|0:O,I=Ig(y,0,e,G),V=w+O|0,V=I>>>0>(Z=I+Z|0)>>>0?V+1|0:V,I=Ig(Q,0,h,0),O=w+V|0,O=I>>>0>(Z=I+Z|0)>>>0?O+1|0:O,V=(I=Ig(_,0,p,eA))+Z|0,Z=w+O|0,Z=I>>>0>V>>>0?Z+1|0:Z,O=(I=Ig(D,0,DA,0))+V|0,V=w+Z|0,V=I>>>0>O>>>0?V+1|0:V,Z=(I=Ig(c,0,n,0))+O|0,O=w+V|0,O=I>>>0>Z>>>0?O+1|0:O,I=Ig(f,0,fA,0),V=w+O|0,V=I>>>0>(Z=I+Z|0)>>>0?V+1|0:V,I=Ig(s,0,N,0),O=w+V|0,W=Z=I+Z|0,I=I>>>0>Z>>>0?O+1|0:O,O=Ig(B,0,E,0),V=w,T=(Z=O)+(O=Ig(i,0,wA,0))|0,Z=w+V|0,Z=O>>>0>T>>>0?Z+1|0:Z,O=Ig(Q,0,t,0),V=w+Z|0,V=O>>>0>(T=O+T|0)>>>0?V+1|0:V,Z=Ig(r,0,S,0),O=w+V|0,O=Z>>>0>(T=Z+T|0)>>>0?O+1|0:O,Z=Ig(_,0,y,0),V=w+O|0,V=Z>>>0>(T=Z+T|0)>>>0?V+1|0:V,Z=Ig(e,G,h,0),O=w+V|0,O=Z>>>0>(T=Z+T|0)>>>0?O+1|0:O,V=Ig(c,0,p,eA),Z=w+O|0,Z=V>>>0>(T=V+T|0)>>>0?Z+1|0:Z,O=Ig(s,0,DA,0),V=w+Z|0,V=O>>>0>(T=O+T|0)>>>0?V+1|0:V,Z=Ig(D,0,n,0),O=w+V|0,O=Z>>>0>(T=Z+T|0)>>>0?O+1|0:O,Z=Ig(k,0,fA,0),V=w+O|0,V=Z>>>0>(T=Z+T|0)>>>0?V+1|0:V,Z=Ig(f,0,N,0),O=w+V|0,EA=O=Z>>>0>(bA=Z+T|0)>>>0?O+1|0:O,q=O=O-((bA>>>0<4293918720)-1|0)|0,V=I+(V=O>>>21|0)|0,tA=V=(O=(2097151&O)<<11|(aA=bA- -1048576|0)>>>21)>>>0>(HA=O+W|0)>>>0?V+1|0:V,z=I=V-((HA>>>0<4293918720)-1|0)|0,O=(V=I>>>21|0)+$|0,iA=O=(I=(2097151&I)<<11|(_A=HA- -1048576|0)>>>21)>>>0>(YA=I+IA|0)>>>0?O+1|0:O,j=I=O-((YA>>>0<4293918720)-1|0)|0,V=(V=I>>21)+gA|0,CA=V=(I=(2097151&I)<<11|(BA=YA- -1048576|0)>>>21)>>>0>(yA=I+oA|0)>>>0?V+1|0:V,LA=I=V-((yA>>>0<4293918720)-1|0)|0,O=(V=I>>21)+cA|0,v=O=(I=(Z=(2097151&I)<<11|(W=yA- -1048576|0)>>>21)+nA|0)>>>0>>0?O+1|0:O,nA=I,I=Ig(I,O,-683901,-1),Z=w+g|0,PA=O=I+uA|0,T=I>>>0>O>>>0?Z+1|0:Z,qA=pA-(I=-2097152&QA)|0,lA=sA-((I>>>0>pA>>>0)+lA|0)|0,I=Ig(Y,d,666643,0),O=w+(rA-(((g=-2097152&kA)>>>0>MA>>>0)+RA|0)|0)|0,O=I>>>0>(V=I+(MA-g|0)|0)>>>0?O+1|0:O,g=(I=Ig(l,U,470296,0))+V|0,V=w+O|0,kA=g,g=I>>>0>g>>>0?V+1|0:V,AA=SA-(I=-2097152&NA)|0,IA=GA-((I>>>0>SA>>>0)+xA|0)|0,I=Ig(C,0,c,0),O=w,V=I,I=Ig(i,0,D,0),Z=w+O|0,Z=I>>>0>(V=V+I|0)>>>0?Z+1|0:Z,I=Ig(E,0,f,0),O=w+Z|0,O=I>>>0>(V=I+V|0)>>>0?O+1|0:O,Z=(I=Ig(t,0,k,0))+V|0,V=w+O|0,V=I>>>0>Z>>>0?V+1|0:V,I=Ig(r,0,s,0),O=w+V|0,O=I>>>0>(Z=I+Z|0)>>>0?O+1|0:O,I=Ig(h,0,F,0),V=w+O|0,$=Z=I+Z|0,I=I>>>0>Z>>>0?V+1|0:V,O=Ig(C,0,D,0),V=w,gA=(Z=O)+(O=Ig(i,0,s,0))|0,Z=w+V|0,Z=O>>>0>gA>>>0?Z+1|0:Z,V=Ig(E,0,k,0),O=w+Z|0,O=V>>>0>(gA=V+gA|0)>>>0?O+1|0:O,Z=Ig(t,0,F,0),V=w+O|0,V=Z>>>0>(gA=Z+gA|0)>>>0?V+1|0:V,Z=Ig(r,0,f,0),O=w+V|0,sA=O=Z>>>0>(pA=Z+gA|0)>>>0?O+1|0:O,X=O=O-((pA>>>0<4293918720)-1|0)|0,Z=I+(V=O>>>21|0)|0,cA=Z=(O=(2097151&O)<<11|(QA=pA- -1048576|0)>>>21)>>>0>(GA=O+$|0)>>>0?Z+1|0:Z,xA=I=Z-((GA>>>0<4293918720)-1|0)|0,O=(V=I>>>21|0)+IA|0,O=(I=(2097151&I)<<11|(oA=GA- -1048576|0)>>>21)>>>0>(Z=I+AA|0)>>>0?O+1|0:O,I=Ig(l,U,666643,0),V=w+O|0,gA=V=I>>>0>(NA=I+Z|0)>>>0?V+1|0:V,RA=I=V-((NA>>>0<4293918720)-1|0)|0,O=g+(O=I>>21)|0,IA=O=(I=(2097151&I)<<11|(AA=NA- -1048576|0)>>>21)>>>0>(rA=I+kA|0)>>>0?O+1|0:O,uA=I=O-((rA>>>0<4293918720)-1|0)|0,V=(O=I>>21)+lA|0,V=(I=(2097151&I)<<11|($=rA- -1048576|0)>>>21)>>>0>(g=I+qA|0)>>>0?V+1|0:V,I=Ig(mA,R,-997805,-1),Z=w+V|0,Z=I>>>0>(O=I+g|0)>>>0?Z+1|0:Z,MA=I=yA-(g=-2097152&W)|0,L=V=CA-((g>>>0>yA>>>0)+LA|0)|0,W=(g=Ig(nA,v,136657,0))+O|0,O=w+Z|0,I=Ig(I,V,-683901,-1),O=w+(g>>>0>W>>>0?O+1|0:O)|0,W=O=I>>>0>(CA=I+W|0)>>>0?O+1|0:O,SA=I=O-((CA>>>0<4293918720)-1|0)|0,O=(V=I>>21)+T|0,g=O=(T=kA=(I=(2097151&I)<<11|(Z=CA- -1048576|0)>>>21)+PA|0)>>>0>>0?O+1|0:O,yA=O=O-((T>>>0<4293918720)-1|0)|0,kA=(2097151&O)<<11|(I=T- -1048576|0)>>>21,O=(O>>21)+vA|0,vA=lA=kA+P|0,kA=kA>>>0>lA>>>0?O+1|0:O,LA=T-(I&=-2097152)|0,PA=g-((I>>>0>T>>>0)+yA|0)|0,qA=CA-(I=-2097152&Z)|0,lA=W-((I>>>0>CA>>>0)+SA|0)|0,I=Ig(mA,R,654183,0),V=w+(IA-(((g=-2097152&$)>>>0>rA>>>0)+uA|0)|0)|0,V=I>>>0>(O=I+(rA-g|0)|0)>>>0?V+1|0:V,g=(I=Ig(nA,v,-997805,-1))+O|0,O=w+V|0,O=I>>>0>g>>>0?O+1|0:O,I=Ig(MA,L,136657,0),O=w+O|0,uA=g=I+g|0,I=I>>>0>g>>>0?O+1|0:O,SA=YA-(g=-2097152&BA)|0,rA=iA-((g>>>0>YA>>>0)+j|0)|0,g=Ig(u,m,-997805,-1),O=w,Z=(V=g)+(g=Ig(M,x,654183,0))|0,V=w+O|0,V=g>>>0>Z>>>0?V+1|0:V,g=Ig(K,b,136657,0),O=w+V|0,O=g>>>0>(Z=g+Z|0)>>>0?O+1|0:O,g=Ig(J,H,-683901,-1),O=w+O|0,V=tA+(g>>>0>(Z=g+Z|0)>>>0?O+1|0:O)|0,BA=(O=Z+HA|0)-(g=-2097152&_A)|0,tA=(V=O>>>0>>0?V+1|0:V)-((g>>>0>O>>>0)+z|0)|0,g=Ig(u,m,654183,0),O=w,Z=(V=g)+(g=Ig(M,x,470296,0))|0,V=w+O|0,V=g>>>0>Z>>>0?V+1|0:V,g=Ig(K,b,-997805,-1),O=w+V|0,V=EA+(g>>>0>(Z=g+Z|0)>>>0?O+1|0:O)|0,V=(g=Z+bA|0)>>>0>>0?V+1|0:V,Z=(O=g)+(g=Ig(J,H,136657,0))|0,O=w+V|0,O=g>>>0>Z>>>0?O+1|0:O,V=(g=Ig(Y,d,-683901,-1))+Z|0,Z=w+O|0,Z=g>>>0>V>>>0?Z+1|0:Z,$=V-(g=-2097152&aA)|0,W=Z-((g>>>0>V>>>0)+q|0)|0,g=Ig(C,0,wA,0),O=w,V=g,g=Ig(i,0,S,0),O=w+O|0,O=g>>>0>(V=V+g|0)>>>0?O+1|0:O,g=Ig(Q,0,E,0),O=w+O|0,O=g>>>0>(V=g+V|0)>>>0?O+1|0:O,g=Ig(e,G,t,0),Z=w+O|0,Z=g>>>0>(V=g+V|0)>>>0?Z+1|0:Z,O=(g=Ig(B,0,r,0))+V|0,V=w+Z|0,V=g>>>0>O>>>0?V+1|0:V,g=Ig(y,0,c,0),V=w+V|0,V=g>>>0>(O=g+O|0)>>>0?V+1|0:V,Z=(g=Ig(_,0,h,0))+O|0,O=w+V|0,O=g>>>0>Z>>>0?O+1|0:O,g=Ig(D,0,p,eA),O=w+O|0,O=g>>>0>(V=g+Z|0)>>>0?O+1|0:O,g=Ig(f,0,DA,0),Z=w+O|0,Z=g>>>0>(V=g+V|0)>>>0?Z+1|0:Z,O=(g=Ig(s,0,n,0))+V|0,V=w+Z|0,V=g>>>0>O>>>0?V+1|0:V,g=Ig(F,0,fA,0),V=w+V|0,V=g>>>0>(O=g+O|0)>>>0?V+1|0:V,Z=(g=Ig(N,0,k,0))+O|0,O=w+V|0,O=(FA>>>21|0)+(O=g>>>0>Z>>>0?O+1|0:O)|0,CA=O=(g=(2097151&FA)<<11|UA>>>21)>>>0>(_A=g+Z|0)>>>0?O+1|0:O,bA=g=O-((_A>>>0<4293918720)-1|0)|0,V=(V=g>>>21|0)+W|0,IA=V=(g=(2097151&g)<<11|(T=_A- -1048576|0)>>>21)>>>0>(iA=g+$|0)>>>0?V+1|0:V,yA=g=V-((iA>>>0<4293918720)-1|0)|0,O=(V=g>>21)+tA|0,W=O=(g=(2097151&g)<<11|($=iA- -1048576|0)>>>21)>>>0>(BA=g+BA|0)>>>0?O+1|0:O,aA=O=O-((BA>>>0<4293918720)-1|0)|0,V=(V=O>>21)+rA|0,rA=V=(O=(Z=(2097151&O)<<11|(g=BA- -1048576|0)>>>21)+SA|0)>>>0>>0?V+1|0:V,UA=O,V=Ig(O,V,-683901,-1),O=w+I|0,tA=Z=V+uA|0,I=V>>>0>Z>>>0?O+1|0:O,O=Ig(mA,R,470296,0),Z=w+(gA-(((V=-2097152&AA)>>>0>NA>>>0)+RA|0)|0)|0,Z=O>>>0>(AA=O+(NA-V|0)|0)>>>0?Z+1|0:Z,O=Ig(nA,v,654183,0),V=w+Z|0,V=O>>>0>(AA=O+AA|0)>>>0?V+1|0:V,Z=Ig(MA,L,-997805,-1),O=w+V|0,O=Z>>>0>(AA=Z+AA|0)>>>0?O+1|0:O,FA=g=BA-(V=-2097152&g)|0,eA=W=W-((V>>>0>BA>>>0)+aA|0)|0,AA=(Z=Ig(UA,rA,136657,0))+AA|0,V=w+O|0,g=Ig(g,W,-683901,-1),Z=w+(Z>>>0>AA>>>0?V+1|0:V)|0,W=Z=g>>>0>(gA=g+AA|0)>>>0?Z+1|0:Z,EA=V=Z-((gA>>>0<4293918720)-1|0)|0,Z=(2097151&V)<<11|(g=gA- -1048576|0)>>>21,V=(V>>21)+I|0,aA=Z=(V=Z>>>0>(AA=Z+tA|0)>>>0?V+1|0:V)-((AA>>>0<4293918720)-1|0)|0,BA=(2097151&Z)<<11|(I=AA- -1048576|0)>>>21,Z=(Z>>21)+lA|0,tA=BA>>>0>(DA=tA=BA+qA|0)>>>0?Z+1|0:Z,wA=AA-(I&=-2097152)|0,fA=V-((I>>>0>AA>>>0)+aA|0)|0,HA=gA-(I=-2097152&g)|0,YA=W-((I>>>0>gA>>>0)+EA|0)|0,I=Ig(mA,R,666643,0),V=w+(cA-(((g=-2097152&oA)>>>0>GA>>>0)+xA|0)|0)|0,V=I>>>0>(O=I+(GA-g|0)|0)>>>0?V+1|0:V,I=Ig(nA,v,470296,0),Z=w+V|0,Z=I>>>0>(g=I+O|0)>>>0?Z+1|0:Z,I=Ig(MA,L,654183,0),V=w+Z|0,AA=g=I+g|0,I=I>>>0>g>>>0?V+1|0:V,$=iA-(g=-2097152&$)|0,W=IA-((g>>>0>iA>>>0)+yA|0)|0,g=Ig(u,m,470296,0),O=w,V=g,g=Ig(M,x,666643,0),O=w+O|0,O=g>>>0>(V=V+g|0)>>>0?O+1|0:O,g=Ig(K,b,654183,0),Z=w+O|0,Z=g>>>0>(V=g+V|0)>>>0?Z+1|0:Z,O=(g=Ig(J,H,-997805,-1))+V|0,V=w+Z|0,V=g>>>0>O>>>0?V+1|0:V,g=Ig(Y,d,136657,0),V=w+V|0,O=CA+(g>>>0>(Z=g+O|0)>>>0?V+1|0:V)|0,O=(g=Z+_A|0)>>>0<_A>>>0?O+1|0:O,V=g,g=Ig(l,U,-683901,-1),O=w+O|0,O=g>>>0>(Z=V+g|0)>>>0?O+1|0:O,EA=(g=(2097151&JA)<<11|dA>>>21)+(Z-(V=-2097152&T)|0)|0,V=(O-((V>>>0>Z>>>0)+bA|0)|0)+(JA>>21)|0,iA=V=g>>>0>EA>>>0?V+1|0:V,yA=g=V-((EA>>>0<4293918720)-1|0)|0,V=(O=g>>21)+W|0,dA=V=(g=(Z=(2097151&g)<<11|(BA=EA- -1048576|0)>>>21)+$|0)>>>0>>0?V+1|0:V,JA=g,g=Ig(g,V,-683901,-1),Z=w+I|0,Z=g>>>0>(O=g+AA|0)>>>0?Z+1|0:Z,I=Ig(UA,rA,-997805,-1),V=w+Z|0,V=I>>>0>(g=I+O|0)>>>0?V+1|0:V,I=Ig(FA,eA,136657,0),O=w+V|0,_A=g=I+g|0,$=I>>>0>g>>>0?O+1|0:O,T=pA-(I=-2097152&QA)|0,IA=sA-((I>>>0>pA>>>0)+X|0)|0,I=Ig(C,0,s,0),g=w,O=I,I=Ig(i,0,f,0),V=w+g|0,V=I>>>0>(O=O+I|0)>>>0?V+1|0:V,I=Ig(E,0,F,0),V=w+V|0,V=I>>>0>(g=I+O|0)>>>0?V+1|0:V,I=Ig(r,0,k,0),O=w+V|0,I=I>>>0>(V=g=I+g|0)>>>0?O+1|0:O,g=Ig(C,0,f,0),O=w,W=(Z=g)+(g=Ig(i,0,k,0))|0,Z=w+O|0,Z=g>>>0>W>>>0?Z+1|0:Z,g=Ig(r,0,F,0),O=w+Z|0,g=O=g>>>0>(W=g+W|0)>>>0?O+1|0:O,mA=O=O-((W>>>0<4293918720)-1|0)|0,Z=O>>>21|0,aA=(O=(2097151&O)<<11|(cA=W- -1048576|0)>>>21)+V|0,V=I+Z|0,oA=V=O>>>0>aA>>>0?V+1|0:V,pA=I=V-((aA>>>0<4293918720)-1|0)|0,O=(Z=I>>>21|0)+IA|0,O=(I=(2097151&I)<<11|(gA=aA- -1048576|0)>>>21)>>>0>(V=I+T|0)>>>0?O+1|0:O,Z=(I=Ig(nA,v,666643,0))+V|0,V=w+O|0,V=I>>>0>Z>>>0?V+1|0:V,I=Ig(MA,L,470296,0),V=w+V|0,V=I>>>0>(O=I+Z|0)>>>0?V+1|0:V,Z=(I=Ig(JA,dA,136657,0))+O|0,O=w+V|0,O=I>>>0>Z>>>0?O+1|0:O,V=(I=Ig(UA,rA,654183,0))+Z|0,Z=w+O|0,Z=I>>>0>V>>>0?Z+1|0:Z,I=Ig(FA,eA,-997805,-1),O=w+Z|0,CA=O=I>>>0>(AA=I+V|0)>>>0?O+1|0:O,GA=I=O-((AA>>>0<4293918720)-1|0)|0,V=(Z=I>>21)+$|0,NA=O=(V=(I=(O=(2097151&I)<<11|(T=AA- -1048576|0)>>>21)+_A|0)>>>0>>0?V+1|0:V)-((I>>>0<4293918720)-1|0)|0,$=(2097151&O)<<11|(IA=I- -1048576|0)>>>21,O=(O>>21)+YA|0,SA=QA=$+HA|0,_A=$>>>0>QA>>>0?O+1|0:O,$=I,Z=V,V=(iA-(((O=-2097152&BA)>>>0>EA>>>0)+yA|0)|0)+(KA>>21)|0,sA=V=(I=(EA-O|0)+(BA=(2097151&KA)<<11|hA>>>21)|0)>>>0>>0?V+1|0:V,bA=V=V-((I>>>0<4293918720)-1|0)|0,EA=O=V>>21,V=Ig(nA=(2097151&V)<<11|(QA=I- -1048576|0)>>>21,O,-683901,-1),O=w+Z|0,O=V>>>0>($=V+$|0)>>>0?O+1|0:O,HA=$-(V=-2097152&IA)|0,YA=O-((V>>>0>$>>>0)+NA|0)|0,O=Ig(nA,EA,136657,0),V=w+CA|0,V=O>>>0>(Z=O+AA|0)>>>0?V+1|0:V,yA=Z-(O=-2097152&T)|0,KA=V-((O>>>0>Z>>>0)+GA|0)|0,Z=(O=Ig(MA,L,666643,0))+(aA-(V=-2097152&gA)|0)|0,V=w+(oA-((V>>>0>aA>>>0)+pA|0)|0)|0,V=O>>>0>Z>>>0?V+1|0:V,$=(O=Ig(JA,dA,-997805,-1))+Z|0,Z=w+V|0,Z=O>>>0>$>>>0?Z+1|0:Z,V=Ig(UA,rA,470296,0),O=w+Z|0,O=V>>>0>($=V+$|0)>>>0?O+1|0:O,Z=Ig(FA,eA,654183,0),V=w+O|0,hA=$=Z+$|0,CA=Z>>>0>$>>>0?V+1|0:V,$=W,W=g,g=Ig(i,0,F,0),O=w,V=g,g=Ig(C,0,k,0),O=w+O|0,O=g>>>0>(Z=V+g|0)>>>0?O+1|0:O,g=Ig(C,0,F,0),pA=V=w,iA=g,oA=g- -1048576|0,GA=g=V-((g>>>0<4293918720)-1|0)|0,V=g>>>21|0,BA=(g=(2097151&g)<<11|oA>>>21)+Z|0,Z=V+O|0,gA=Z=g>>>0>BA>>>0?Z+1|0:Z,NA=g=Z-((BA>>>0<4293918720)-1|0)|0,O=(V=g>>>21|0)+W|0,O=(g=(2097151&g)<<11|(AA=BA- -1048576|0)>>>21)>>>0>(Z=g+$|0)>>>0?O+1|0:O,W=(g=Ig(JA,dA,654183,0))+(Z-(V=-2097152&cA)|0)|0,Z=w+(O-((8191&mA)+(V>>>0>Z>>>0)|0)|0)|0,Z=g>>>0>W>>>0?Z+1|0:Z,g=Ig(UA,rA,666643,0),V=w+Z|0,V=g>>>0>(O=g+W|0)>>>0?V+1|0:V,T=(g=Ig(FA,eA,470296,0))+O|0,O=w+V|0,IA=O=g>>>0>T>>>0?O+1|0:O,aA=g=O-((T>>>0<4293918720)-1|0)|0,V=(V=g>>21)+CA|0,Z=V=(g=(2097151&g)<<11|($=T- -1048576|0)>>>21)>>>0>(W=g+hA|0)>>>0?V+1|0:V,cA=O=V-((W>>>0<4293918720)-1|0)|0,CA=(2097151&O)<<11|(g=W- -1048576|0)>>>21,O=(O>>21)+KA|0,CA=CA>>>0>(rA=hA=CA+yA|0)>>>0?O+1|0:O,V=Ig(nA,EA,-997805,-1),O=w+Z|0,UA=(W=V+W|0)-(g&=-2097152)|0,KA=(V>>>0>W>>>0?O+1|0:O)-((g>>>0>W>>>0)+cA|0)|0,g=Ig(nA,EA,654183,0),Z=w+IA|0,Z=g>>>0>(O=g+T|0)>>>0?Z+1|0:Z,hA=O-(g=-2097152&$)|0,aA=Z-((g>>>0>O>>>0)+aA|0)|0,g=Ig(JA,dA,470296,0),V=w+(gA-((8191&NA)+((O=-2097152&AA)>>>0>BA>>>0)|0)|0)|0,V=g>>>0>(Z=g+(BA-O|0)|0)>>>0?V+1|0:V,g=Ig(FA,eA,666643,0),V=w+V|0,V=g>>>0>(O=g+Z|0)>>>0?V+1|0:V,W=O,g=Ig(JA,dA,666643,0),Z=w+(pA-((2047&GA)+((O=-2097152&oA)>>>0>iA>>>0)|0)|0)|0,T=Z=g>>>0>(AA=g+(iA-O|0)|0)>>>0?Z+1|0:Z,cA=g=Z-((AA>>>0<4293918720)-1|0)|0,V=V+(O=g>>21)|0,oA=g=(V=(g=(2097151&g)<<11|(IA=AA- -1048576|0)>>>21)>>>0>($=g+W|0)>>>0?V+1|0:V)-(($>>>0<4293918720)-1|0)|0,Z=(O=g>>21)+aA|0,g=(g=(2097151&g)<<11|(W=$- -1048576|0)>>>21)>>>0>(gA=g+hA|0)>>>0?Z+1|0:Z,O=Ig(nA,EA,470296,0),V=w+V|0,V=O>>>0>(Z=O+$|0)>>>0?V+1|0:V,W=Z-(O=-2097152&W)|0,$=V-((O>>>0>Z>>>0)+oA|0)|0,O=Ig(nA,EA,666643,0),Z=w+(T-(((V=-2097152&IA)>>>0>AA>>>0)+cA|0)|0)|0,O=(V=(Z=O>>>0>(iA=O+(AA-V|0)|0)>>>0?Z+1|0:Z)>>21)+$|0,V=g+(Z=(O=(Z=(2097151&Z)<<11|iA>>>21)>>>0>(W=Z+W|0)>>>0?O+1|0:O)>>21)|0,O=(O=(V=(g=$=(O=(2097151&O)<<11|W>>>21)+gA|0)>>>0>>0?V+1|0:V)>>21)+KA|0,V=(V=(O=(V=(2097151&V)<<11|g>>>21)>>>0>(BA=V+UA|0)>>>0?O+1|0:O)>>21)+CA|0,Z=(O=(V=(O=(2097151&O)<<11|BA>>>21)>>>0>(cA=O+rA|0)>>>0?V+1|0:V)>>21)+YA|0,O=(V=(Z=(V=(2097151&V)<<11|cA>>>21)>>>0>(oA=V+HA|0)>>>0?Z+1|0:Z)>>21)+_A|0,V=(Z=(O=(Z=(2097151&Z)<<11|oA>>>21)>>>0>(gA=Z+SA|0)>>>0?O+1|0:O)>>21)+fA|0,O=(O=(V=(O=(2097151&O)<<11|gA>>>21)>>>0>(AA=O+wA|0)>>>0?V+1|0:V)>>21)+tA|0,V=(V=(O=(V=(2097151&V)<<11|AA>>>21)>>>0>(CA=V+DA|0)>>>0?O+1|0:O)>>21)+PA|0,Z=(O=(V=(O=(2097151&O)<<11|CA>>>21)>>>0>(T=O+LA|0)>>>0?V+1|0:V)>>21)+kA|0,V=(sA-((I>>>0<(O=-2097152&QA)>>>0)+bA|0)|0)+((Z=(V=(2097151&V)<<11|T>>>21)>>>0>(IA=V+vA|0)>>>0?Z+1|0:Z)>>21)|0,QA=O=(V=($=(QA=I-O|0)+((2097151&Z)<<11|IA>>>21)|0)>>>0>>0?V+1|0:V)>>21,I=(I=Ig(sA=(2097151&V)<<11|$>>>21,O,666643,0))+(O=2097151&iA)|0,Z=w,o[0|A]=I,Z=I>>>0>>0?Z+1|0:Z,o[A+1|0]=(255&Z)<<24|I>>>8,O=2097151&W,W=Ig(sA,QA,470296,0)+O|0,V=w,V=(Z>>21)+(V=O>>>0>W>>>0?V+1|0:V)|0,V=(W=(iA=(2097151&Z)<<11|I>>>21)+W|0)>>>0>>0?V+1|0:V,o[A+4|0]=(2047&V)<<21|W>>>11;o[A+3|0]=(7&V)<<29|W>>>3,o[A+2|0]=31&((65535&Z)<<16|I>>>16)|W<<5,I=2097151&g,g=Ig(sA,QA,654183,0)+I|0,Z=w,Z=I>>>0>g>>>0?Z+1|0:Z,I=V,O=(V>>=21)+Z|0,I=O=(I=(2097151&I)<<11|W>>>21)>>>0>(g=I+g|0)>>>0?O+1|0:O,o[A+6|0]=(63&O)<<26|g>>>6,V=0,o[A+5|0]=V<<13|(1572864&W)>>>19|g<<2,V=2097151&BA,Z=Ig(sA,QA,-997805,-1)+V|0,O=w,O=V>>>0>Z>>>0?O+1|0:O,V=(V=I>>21)+O|0,V=(I=(W=Z)+(Z=(2097151&I)<<11|g>>>21)|0)>>>0>>0?V+1|0:V,o[A+9|0]=(511&V)<<23|I>>>9,o[A+8|0]=(1&V)<<31|I>>>1,O=0,o[A+7|0]=O<<18|(2080768&g)>>>14|I<<7,g=2097151&cA,O=Ig(sA,QA,136657,0)+g|0,Z=w,Z=g>>>0>O>>>0?Z+1|0:Z,g=(W=(2097151&(g=V))<<11|I>>>21)+O|0,O=(V>>=21)+Z|0,O=g>>>0>>0?O+1|0:O,o[A+12|0]=(4095&O)<<20|g>>>12,o[A+11|0]=(15&O)<<28|g>>>4,V=0,o[A+10|0]=V<<15|(1966080&I)>>>17|g<<4,I=2097151&oA,Z=Ig(sA,QA,-683901,-1)+I|0,V=w,V=I>>>0>Z>>>0?V+1|0:V,I=O,O=V+(O>>=21)|0,O=(I=(W=Z)+(Z=(2097151&I)<<11|g>>>21)|0)>>>0>>0?O+1|0:O,o[A+14|0]=(127&O)<<25|I>>>7,V=0,o[A+13|0]=V<<12|(1048576&g)>>>20|I<<1,V=O>>21,V=(g=(O=(2097151&O)<<11|I>>>21)+(2097151&gA)|0)>>>0>>0?V+1|0:V,o[A+17|0]=(1023&V)<<22|g>>>10,o[A+16|0]=(3&V)<<30|g>>>2,O=0,o[A+15|0]=O<<17|(2064384&I)>>>15|g<<6,I=V,V>>=21,Z=(I=(O=(2097151&I)<<11|g>>>21)+(2097151&AA)|0)>>>0>>0?V+1|0:V,o[A+20|0]=(8191&Z)<<19|I>>>13,o[A+19|0]=(31&Z)<<27|I>>>5,O=Z>>21,O=(V=(W=(2097151&Z)<<11|I>>>21)+(2097151&CA)|0)>>>0>>0?O+1|0:O,W=V,o[A+21|0]=V,V=0,o[A+18|0]=V<<14|(1835008&g)>>>18|I<<3,o[A+22|0]=(255&O)<<24|W>>>8,V=O>>21,V=(I=(g=(2097151&O)<<11|W>>>21)+(2097151&T)|0)>>>0>>0?V+1|0:V,o[A+25|0]=(2047&V)<<21|I>>>11,o[A+24|0]=(7&V)<<29|I>>>3,o[A+23|0]=31&((65535&O)<<16|W>>>16)|I<<5,O=(2097151&V)<<11|I>>>21,V>>=21,V=(g=O+(2097151&IA)|0)>>>0>>0?V+1|0:V,o[A+27|0]=(63&V)<<26|g>>>6,O=0,o[A+26|0]=O<<13|(1572864&I)>>>19|g<<2,O=V>>21,O=(I=(V=(2097151&V)<<11|g>>>21)+(2097151&$)|0)>>>0>>0?O+1|0:O,o[A+31|0]=(131071&O)<<15|I>>>17,o[A+30|0]=(511&O)<<23|I>>>9,o[A+29|0]=(1&O)<<31|I>>>1,V=0,o[A+28|0]=V<<18|(2080768&g)>>>14|I<<7}function F(A,I,g,C){for(var B=0,Q=0,i=0,o=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,f=0,n=0,k=0,F=0,N=0,S=0,G=0,M=0,b=0,K=0,H=0,Y=0,d=0,J=0,U=0,l=0,m=0,u=0,x=0,R=0,v=0,L=0,P=0;i=(B=_<<3)+g|0,Q=a[0|(B=I+B|0)]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,G=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,c=Q<<24|(65280&Q)<<8,t=(o=16711680&Q)<<24,o=o>>>8|0,B=(e=-16777216&Q)>>>24|0,E[i>>2]=t|e<<8|-16777216&((255&G)<<24|Q>>>8)|16711680&((16777215&G)<<8|Q>>>24)|G>>>8&65280|G>>>24,Q=B|o|c,B=0,E[i+4>>2]=Q|B|B,16!=(0|(_=_+1|0)););for(I=E[A+4>>2],E[C>>2]=E[A>>2],E[C+4>>2]=I,I=E[A+60>>2],E[C+56>>2]=E[A+56>>2],E[C+60>>2]=I,I=E[A+52>>2],E[C+48>>2]=E[A+48>>2],E[C+52>>2]=I,I=E[A+44>>2],E[C+40>>2]=E[A+40>>2],E[C+44>>2]=I,I=E[A+36>>2],E[C+32>>2]=E[A+32>>2],E[C+36>>2]=I,I=E[A+28>>2],E[C+24>>2]=E[A+24>>2],E[C+28>>2]=I,I=E[A+20>>2],E[C+16>>2]=E[A+16>>2],E[C+20>>2]=I,I=E[A+12>>2],E[C+8>>2]=E[A+8>>2],E[C+12>>2]=I;i=E[C+56>>2],o=E[C+60>>2],B=E[(I=G=(M=P<<3)+g|0)>>2],I=E[I+4>>2],k=Q=E[C+36>>2],Q=KI(p=E[C+32>>2],Q,50),_=w,Q=KI(p,k,46)^Q,_^=w,Q=KI(p,k,23)^Q,I=(w^_)+I|0,I=(B=Q+B|0)>>>0>>0?I+1|0:I,B=(_=E[(Q=M+34816|0)>>2])+B|0,I=E[Q+4>>2]+I|0,I=B>>>0<_>>>0?I+1|0:I,Q=(_=((t=E[C+48>>2])^(y=E[C+40>>2]))&p^t)+B|0,B=(((f=E[C+52>>2])^(F=E[C+44>>2]))&k^f)+I|0,I=(Q>>>0<_>>>0?B+1|0:B)+o|0,I=(i=Q+i|0)>>>0>>0?I+1|0:I,_=(Q=E[C+24>>2])+i|0,B=E[C+28>>2]+I|0,s=B=Q>>>0>_>>>0?B+1|0:B,E[C+24>>2]=_,E[C+28>>2]=B,n=B=E[C+4>>2],B=KI(Q=E[C>>2],B,36),o=w,B=KI(Q,n,30)^B,o^=w,e=i+(KI(Q,n,25)^B)|0,B=I+(w^o)|0,B=i>>>0>e>>>0?B+1|0:B,c=(I=e)+(e=Q&((o=E[C+16>>2])|(i=E[C+8>>2]))|i&o)|0,I=(I=B)+(n&((B=E[C+20>>2])|(h=E[C+12>>2]))|B&h)|0,e=I=c>>>0>>0?I+1|0:I,E[C+56>>2]=c,E[C+60>>2]=I,r=o,D=B,S=E[(I=m=(N=8|M)+g|0)>>2],K=E[I+4>>2],B=((k^F)&s^F)+f|0,B=(I=(o=(y^p)&_^y)+t|0)>>>0>>0?B+1|0:B,o=KI(_,s,50),t=w,o=KI(_,s,46)^o,t^=w,o=(f=KI(_,s,23)^o)+I|0,I=(w^t)+B|0,I=(o>>>0>>0?I+1|0:I)+K|0,I=(B=o+S|0)>>>0>>0?I+1|0:I,o=(o=B)+(t=E[(B=N+34816|0)>>2])|0,B=E[B+4>>2]+I|0,B=(I=o>>>0>>0?B+1|0:B)+D|0,f=B=(t=o+r|0)>>>0>>0?B+1|0:B,E[C+16>>2]=t,E[C+20>>2]=B,I=I+((h|n)&e|h&n)|0,I=(B=o+((Q|i)&c|Q&i)|0)>>>0>>0?I+1|0:I,o=KI(c,e,36),r=w,o=KI(c,e,30)^o,r^=w,D=B,B=KI(c,e,25)^o,I=(w^r)+I|0,r=I=B>>>0>(o=D+B|0)>>>0?I+1|0:I,E[C+48>>2]=o,E[C+52>>2]=I,D=i,N=h,I=(h=E[(B=d=(i=16|M)+g|0)>>2])+y|0,B=E[B+4>>2]+F|0,B=I>>>0>>0?B+1|0:B,i=(y=I)+(h=E[(I=i+34816|0)>>2])|0,I=E[I+4>>2]+B|0,I=((s^k)&f^k)+(I=i>>>0>>0?I+1|0:I)|0,I=(B=(B=i)+(i=(_^p)&t^p)|0)>>>0>>0?I+1|0:I,i=KI(t,f,50),h=w,i=KI(t,f,46)^i,h^=w,i=(y=KI(t,f,23)^i)+B|0,B=(w^h)+I|0,B=(y=i>>>0>>0?B+1|0:B)+N|0,N=B=(h=i)>>>0>(i=i+D|0)>>>0?B+1|0:B,E[C+8>>2]=i,E[C+12>>2]=B,I=KI(o,r,36),B=w,I=KI(o,r,30)^I,B^=w,F=KI(o,r,25)^I,I=((e|n)&r|e&n)+(w^B)|0,B=y+((D=F+((Q|c)&o|Q&c)|0)>>>0>>0?I+1|0:I)|0,h=B=(y=h+D|0)>>>0>>0?B+1|0:B,E[C+40>>2]=y,E[C+44>>2]=B,D=Q,B=(B=p)+(p=E[(I=u=(Q=24|M)+g|0)>>2])|0,I=E[I+4>>2]+k|0,I=B>>>0

>>0?I+1|0:I,Q=(F=B)+(p=E[(B=Q+34816|0)>>2])|0,B=E[B+4>>2]+I|0,B=(s^(s^f)&N)+(B=Q>>>0

>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=_^(_^t)&i)|0)>>>0>>0?B+1|0:B,Q=KI(i,N,50),p=w,Q=KI(i,N,46)^Q,p^=w,Q=(k=KI(i,N,23)^Q)+I|0,I=(w^p)+B|0,B=(I=Q>>>0>>0?I+1|0:I)+n|0,k=B=(n=Q+D|0)>>>0>>0?B+1|0:B,E[C>>2]=n,E[C+4>>2]=B,B=KI(y,h,36),p=w,B=KI(y,h,30)^B,D=w^p,F=KI(y,h,25)^B,B=((e|r)&h|e&r)+(w^D)|0,I=I+((p=F+((o|c)&y|o&c)|0)>>>0>>0?B+1|0:B)|0,p=I=(D=Q+p|0)>>>0>>0?I+1|0:I,E[C+32>>2]=D,E[C+36>>2]=I,Q=E[(B=l=(I=32|M)+g|0)>>2],B=s+E[B+4>>2]|0,B=(Q=Q+_|0)>>>0<_>>>0?B+1|0:B,Q=(_=E[(I=I+34816|0)>>2])+Q|0,I=E[I+4>>2]+B|0,I=(f^(f^N)&k)+(I=Q>>>0<_>>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=t^(i^t)&n)|0)>>>0>>0?I+1|0:I,Q=KI(n,k,50),_=w,Q=KI(n,k,46)^Q,_^=w,Q=(s=KI(n,k,23)^Q)+B|0,B=(w^_)+I|0,F=B=Q>>>0>>0?B+1|0:B,I=B,B=KI(D,p,36),_=w,B=KI(D,p,30)^B,s=w^_,S=KI(D,p,25)^B,B=((r|h)&p|r&h)+(w^s)|0,I=((_=S+((o|y)&D|o&y)|0)>>>0>>0?B+1|0:B)+I|0,_=I=(s=Q+_|0)>>>0<_>>>0?I+1|0:I,E[C+24>>2]=s,E[C+28>>2]=I,B=e+F|0,F=B=(e=Q+c|0)>>>0>>0?B+1|0:B,E[C+56>>2]=e,E[C+60>>2]=B,Q=E[(I=J=(B=40|M)+g|0)>>2],I=f+E[I+4>>2]|0,I=(Q=Q+t|0)>>>0>>0?I+1|0:I,Q=(c=E[(B=B+34816|0)>>2])+Q|0,B=E[B+4>>2]+I|0,B=(N^(k^N)&F)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=i^(i^n)&e)|0)>>>0>>0?B+1|0:B,Q=KI(e,F,50),c=w,Q=KI(e,F,46)^Q,c^=w,Q=(t=KI(e,F,23)^Q)+I|0,I=(w^c)+B|0,I=Q>>>0>>0?I+1|0:I,B=KI(s,_,36),c=w,B=KI(s,_,30)^B,t=w^c,f=KI(s,_,25)^B,B=((h|p)&_|h&p)+(w^t)|0,B=((c=f+((y|D)&s|y&D)|0)>>>0>>0?B+1|0:B)+I|0,c=B=(t=Q+c|0)>>>0>>0?B+1|0:B,E[C+16>>2]=t,E[C+20>>2]=B,I=I+r|0,S=I=(r=Q+o|0)>>>0>>0?I+1|0:I,E[C+48>>2]=r,E[C+52>>2]=I,Q=E[(B=Y=(I=48|M)+g|0)>>2],B=N+E[B+4>>2]|0,B=(Q=Q+i|0)>>>0>>0?B+1|0:B,Q=(i=E[(I=I+34816|0)>>2])+Q|0,I=E[I+4>>2]+B|0,I=(k^(k^F)&S)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=n^(e^n)&r)|0)>>>0>>0?I+1|0:I,Q=KI(r,S,50),i=w,Q=KI(r,S,46)^Q,i^=w,Q=(o=KI(r,S,23)^Q)+B|0,B=(w^i)+I|0,o=B=Q>>>0>>0?B+1|0:B,I=B,B=KI(t,c,36),i=w,B=KI(t,c,30)^B,f=w^i,N=KI(t,c,25)^B,B=((_|p)&c|_&p)+(w^f)|0,I=((i=N+((s|D)&t|s&D)|0)>>>0>>0?B+1|0:B)+I|0,f=I=(B=i)>>>0>(i=Q+i|0)>>>0?I+1|0:I,E[C+8>>2]=i,E[C+12>>2]=I,B=o+h|0,N=B=(K=Q+y|0)>>>0>>0?B+1|0:B,E[C+40>>2]=K,E[C+44>>2]=B,Q=E[(I=U=(B=56|M)+g|0)>>2],I=k+E[I+4>>2]|0,I=(Q=Q+n|0)>>>0>>0?I+1|0:I,Q=(o=E[(B=B+34816|0)>>2])+Q|0,B=E[B+4>>2]+I|0,B=(F^(F^S)&N)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=e^(e^r)&K)|0)>>>0>>0?B+1|0:B,Q=KI(K,N,50),o=w,Q=KI(K,N,46)^Q,o^=w,Q=(h=KI(K,N,23)^Q)+I|0,I=(w^o)+B|0,I=Q>>>0>>0?I+1|0:I,B=KI(i,f,36),o=w,B=KI(i,f,30)^B,h=w^o,y=KI(i,f,25)^B,B=((_|c)&f|_&c)+(w^h)|0,B=((o=y+((t|s)&i|t&s)|0)>>>0>>0?B+1|0:B)+I|0,h=B=(h=o)>>>0>(o=Q+o|0)>>>0?B+1|0:B,E[C>>2]=o,E[C+4>>2]=B,I=I+p|0,k=I=(y=Q+D|0)>>>0>>0?I+1|0:I,E[C+32>>2]=y,E[C+36>>2]=I,Q=E[(B=x=(I=64|M)+g|0)>>2],B=F+E[B+4>>2]|0,B=(Q=Q+e|0)>>>0>>0?B+1|0:B,Q=(e=E[(I=I+34816|0)>>2])+Q|0,I=E[I+4>>2]+B|0,I=(S^(N^S)&k)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=r^(r^K)&y)|0)>>>0>>0?I+1|0:I,Q=KI(y,k,50),e=w,Q=KI(y,k,46)^Q,e^=w,Q=(n=KI(y,k,23)^Q)+B|0,B=(w^e)+I|0,p=B=Q>>>0>>0?B+1|0:B,I=B,B=KI(o,h,36),e=w,B=KI(o,h,30)^B,n=w^e,D=KI(o,h,25)^B,B=((c|f)&h|c&f)+(w^n)|0,I=((e=D+((i|t)&o|i&t)|0)>>>0>>0?B+1|0:B)+I|0,e=I=(n=Q+e|0)>>>0>>0?I+1|0:I,E[C+56>>2]=n,E[C+60>>2]=I,B=_+p|0,F=B=(_=Q+s|0)>>>0>>0?B+1|0:B,E[C+24>>2]=_,E[C+28>>2]=B,Q=E[(I=H=(B=72|M)+g|0)>>2],I=S+E[I+4>>2]|0,I=(Q=Q+r|0)>>>0>>0?I+1|0:I,Q=(r=E[(B=B+34816|0)>>2])+Q|0,B=E[B+4>>2]+I|0,B=(N^(k^N)&F)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=K^(y^K)&_)|0)>>>0>>0?B+1|0:B,Q=KI(_,F,50),r=w,Q=KI(_,F,46)^Q,r^=w,Q=(p=KI(_,F,23)^Q)+I|0,I=(w^r)+B|0,I=Q>>>0

>>0?I+1|0:I,B=KI(n,e,36),r=w,B=KI(n,e,30)^B,p=w^r,D=KI(n,e,25)^B,B=((h|f)&e|h&f)+(w^p)|0,B=((r=D+((i|o)&n|i&o)|0)>>>0>>0?B+1|0:B)+I|0,r=B=(p=Q+r|0)>>>0>>0?B+1|0:B,E[C+48>>2]=p,E[C+52>>2]=B,I=I+c|0,S=I=(c=Q+t|0)>>>0>>0?I+1|0:I,E[C+16>>2]=c,E[C+20>>2]=I,I=(I=K)+(t=E[(B=K=(Q=80|M)+g|0)>>2])|0,B=E[B+4>>2]+N|0,B=I>>>0>>0?B+1|0:B,Q=(s=I)+(t=E[(I=Q+34816|0)>>2])|0,I=E[I+4>>2]+B|0,I=(k^(k^F)&S)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=y^(_^y)&c)|0)>>>0>>0?I+1|0:I,Q=KI(c,S,50),t=w,Q=KI(c,S,46)^Q,t^=w,Q=(D=KI(c,S,23)^Q)+B|0,B=(w^t)+I|0,s=B=Q>>>0>>0?B+1|0:B,I=B,B=KI(p,r,36),t=w,B=KI(p,r,30)^B,D=w^t,N=KI(p,r,25)^B,B=((e|h)&r|e&h)+(w^D)|0,I=((t=N+((o|n)&p|o&n)|0)>>>0>>0?B+1|0:B)+I|0,t=I=(D=Q+t|0)>>>0>>0?I+1|0:I,E[C+40>>2]=D,E[C+44>>2]=I,B=s+f|0,f=B=(s=Q+i|0)>>>0>>0?B+1|0:B,E[C+8>>2]=s,E[C+12>>2]=B,B=34816+(I=88|M)|0,i=E[(I=b=I+g|0)>>2],Q=E[B>>2]+i|0,I=E[B+4>>2]+E[I+4>>2]|0,B=k+(Q>>>0>>0?I+1|0:I)|0,B=(F^(F^S)&f)+(B=(I=Q+y|0)>>>0>>0?B+1|0:B)|0,B=(I=(Q=_^(_^c)&s)+I|0)>>>0>>0?B+1|0:B,Q=KI(s,f,50),i=w,Q=KI(s,f,46)^Q,i^=w,Q=(y=KI(s,f,23)^Q)+I|0,I=(w^i)+B|0,I=Q>>>0>>0?I+1|0:I,B=KI(D,t,36),i=w,B=KI(D,t,30)^B,y=w^i,N=KI(D,t,25)^B,B=((e|r)&t|e&r)+(w^y)|0,B=((i=N+((p|n)&D|p&n)|0)>>>0>>0?B+1|0:B)+I|0,y=B=(y=i)>>>0>(i=Q+i|0)>>>0?B+1|0:B,E[C+32>>2]=i,E[C+36>>2]=B,I=I+h|0,h=I=(B=o)>>>0>(o=Q+o|0)>>>0?I+1|0:I,E[C>>2]=o,E[C+4>>2]=I,B=34816+(I=96|M)|0,N=E[(I=R=I+g|0)>>2],Q=E[B>>2]+N|0,B=E[B+4>>2]+E[I+4>>2]|0,I=F+(Q>>>0>>0?B+1|0:B)|0,I=(B=Q+_|0)>>>0<_>>>0?I+1|0:I,Q=(_=c^(c^s)&o)+B|0,B=(S^(f^S)&h)+I|0,B=Q>>>0<_>>>0?B+1|0:B,I=KI(o,h,50),_=w,I=KI(o,h,46)^I,_^=w,F=Q,Q=KI(o,h,23)^I,B=(w^_)+B|0,k=B=(I=F+Q|0)>>>0>>0?B+1|0:B,Q=I,I=KI(i,y,36),_=w,I=KI(i,y,30)^I,N=w^_,F=KI(i,y,25)^I,I=((t|r)&y|t&r)+(w^N)|0,B=((_=F+((p|D)&i|p&D)|0)>>>0>>0?I+1|0:I)+B|0,_=B=(N=Q+_|0)>>>0<_>>>0?B+1|0:B,E[C+24>>2]=N,E[C+28>>2]=B,B=e+k|0,e=B=(n=Q+n|0)>>>0>>0?B+1|0:B,E[C+56>>2]=n,E[C+60>>2]=B,B=34816+(I=104|M)|0,k=E[(I=L=I+g|0)>>2],Q=E[B>>2]+k|0,I=E[B+4>>2]+E[I+4>>2]|0,B=S+(Q>>>0>>0?I+1|0:I)|0,B=(I=Q+c|0)>>>0>>0?B+1|0:B,Q=(c=s^(o^s)&n)+I|0,I=(f^(h^f)&e)+B|0,I=Q>>>0>>0?I+1|0:I,B=KI(n,e,50),c=w,B=KI(n,e,46)^B,c^=w,k=KI(n,e,23)^B,B=(w^c)+I|0,F=B=(Q=k+Q|0)>>>0>>0?B+1|0:B,I=B,B=KI(N,_,36),c=w,B=KI(N,_,30)^B,k=w^c,S=KI(N,_,25)^B,B=((t|y)&_|t&y)+(w^k)|0,I=((c=S+((i|D)&N|i&D)|0)>>>0>>0?B+1|0:B)+I|0,c=I=(k=Q+c|0)>>>0>>0?I+1|0:I,E[C+16>>2]=k,E[C+20>>2]=I,I=r+F|0,r=I=(p=Q+p|0)>>>0>>0?I+1|0:I,E[C+48>>2]=p,E[C+52>>2]=I,B=34816+(I=112|M)|0,F=E[(Q=S=I+g|0)>>2],I=E[B>>2]+F|0,B=E[B+4>>2]+E[Q+4>>2]|0,B=f+(I>>>0>>0?B+1|0:B)|0,B=(h^(e^h)&r)+(B=(I=I+s|0)>>>0>>0?B+1|0:B)|0,B=(I=(Q=o^(o^n)&p)+I|0)>>>0>>0?B+1|0:B,Q=KI(p,r,50),s=w,Q=KI(p,r,46)^Q,s^=w,Q=(f=KI(p,r,23)^Q)+I|0,I=(w^s)+B|0,F=I=Q>>>0>>0?I+1|0:I,B=I,I=KI(k,c,36),s=w,I=KI(k,c,30)^I,f=w^s,v=KI(k,c,25)^I,I=((_|y)&c|_&y)+(w^f)|0,B=((s=v+((i|N)&k|i&N)|0)>>>0>>0?I+1|0:I)+B|0,s=B=(f=Q+s|0)>>>0>>0?B+1|0:B,E[C+8>>2]=f,E[C+12>>2]=B,B=t+F|0,Q=B=(t=Q+D|0)>>>0>>0?B+1|0:B,E[C+40>>2]=t,E[C+44>>2]=B,B=34816+(I=120|M)|0,M=E[(I=D=I+g|0)>>2],F=E[B>>2]+M|0,B=E[B+4>>2]+E[I+4>>2]|0,I=h+(F>>>0>>0?B+1|0:B)|0,I=(e^(e^r)&Q)+(I=(B=o+F|0)>>>0>>0?I+1|0:I)|0,I=(B=(o=n^(p^n)&t)+B|0)>>>0>>0?I+1|0:I,o=KI(t,Q,50),e=w,o=KI(t,Q,46)^o,e^=w,Q=(o=KI(t,Q,23)^o)+B|0,B=(w^e)+I|0,B=Q>>>0>>0?B+1|0:B,o=Q,e=B,I=B,B=KI(f,s,36),t=w,B=KI(f,s,30)^B,r=w^t,h=KI(f,s,25)^B,B=((_|c)&s|_&c)+(w^r)|0,I=((t=h+((k|N)&f|k&N)|0)>>>0>>0?B+1|0:B)+I|0,I=(Q=Q+t|0)>>>0>>0?I+1|0:I,E[C>>2]=Q,E[C+4>>2]=I,B=e+y|0,B=(r=i)>>>0>(i=i+o|0)>>>0?B+1|0:B,E[C+32>>2]=i,E[C+36>>2]=B,64!=(0|P);)c=((P=P+16|0)<<3)+g|0,o=E[G>>2],_=E[G+4>>2],v=E[H>>2],e=I=E[H+4>>2],B=I,Q=I=E[S+4>>2],I=KI(N=E[S>>2],I,45),i=w,r=((63&Q)<<26|N>>>6)^(I=KI(N,Q,3)^I),I=(Q>>>6^(t=w^i))+B|0,B=((i=r+v|0)>>>0>>0?I+1|0:I)+_|0,B=(I=i+o|0)>>>0>>0?B+1|0:B,o=i=E[m+4>>2],i=KI(_=E[m>>2],i,63),t=w,i=((127&o)<<25|_>>>7)^KI(_,o,56)^i,B=(w^t^o>>>7)+B|0,i=B=i>>>0>(k=i+I|0)>>>0?B+1|0:B,E[c>>2]=k,E[c+4>>2]=B,_=(S=E[K>>2])+_|0,I=(c=E[K+4>>2])+o|0,B=_>>>0>>0?I+1|0:I,o=I=E[D+4>>2],I=KI(F=E[D>>2],I,45),t=w,r=_,_=((63&o)<<26|F>>>6)^KI(F,o,3)^I,B=(w^t^o>>>6)+B|0,_=_>>>0>(r=r+_|0)>>>0?B+1|0:B,B=KI(t=E[d>>2],I=E[d+4>>2],63),h=w,s=r,r=((127&I)<<25|t>>>7)^KI(t,I,56)^B,B=(w^h^I>>>7)+_|0,_=B=r>>>0>(f=s+r|0)>>>0?B+1|0:B,E[G+136>>2]=f,E[G+140>>2]=B,B=(K=E[b>>2])+t|0,I=(t=E[b+4>>2])+I|0,r=KI(k,i,45),h=w,r=(y=((63&i)<<26|k>>>6)^KI(k,i,3)^r)+B|0,B=(w^h^i>>>6)+(B>>>0>>0?I+1|0:I)|0,B=r>>>0>>0?B+1|0:B,h=I=E[u+4>>2],I=KI(y=E[u>>2],I,63),n=w,s=r,r=((127&h)<<25|y>>>7)^KI(y,h,56)^I,B=(w^n^h>>>7)+B|0,r=B=r>>>0>(M=s+r|0)>>>0?B+1|0:B,E[G+144>>2]=M,E[G+148>>2]=B,y=(m=E[R>>2])+y|0,I=(I=h)+(h=E[R+4>>2])|0,B=y>>>0>>0?I+1|0:I,I=KI(f,_,45),n=w,p=((63&_)<<26|f>>>6)^KI(f,_,3)^I,B=(w^n^_>>>6)+B|0,B=(y=p+y|0)>>>0

>>0?B+1|0:B,n=I=E[l+4>>2],I=KI(p=E[l>>2],I,63),D=w,s=y,y=((127&n)<<25|p>>>7)^KI(p,n,56)^I,B=(w^D^n>>>7)+B|0,y=B=y>>>0>(d=s+y|0)>>>0?B+1|0:B,E[G+152>>2]=d,E[G+156>>2]=B,I=(u=E[L>>2])+p|0,B=(B=n)+(n=E[L+4>>2])|0,p=KI(M,r,45),D=w,p=((63&r)<<26|M>>>6)^KI(M,r,3)^p,B=(w^D^r>>>6)+(I>>>0>>0?B+1|0:B)|0,p=(s=p+I|0)>>>0

>>0?B+1|0:B,B=KI(D=E[J>>2],I=E[J+4>>2],63),l=w,b=s,s=((127&I)<<25|D>>>7)^(B=KI(D,I,56)^B),B=(I>>>7^(J=w^l))+p|0,p=B=s>>>0>(l=b+s|0)>>>0?B+1|0:B,E[G+160>>2]=l,E[G+164>>2]=B,I=I+Q|0,I=(B=D+N|0)>>>0>>0?I+1|0:I,D=KI(d,y,45),s=w,D=(J=((63&y)<<26|d>>>6)^KI(d,y,3)^D)+B|0,B=(w^s^y>>>6)+I|0,B=D>>>0>>0?B+1|0:B,s=E[Y>>2],Y=I=E[Y+4>>2],I=KI(s,I,63),J=w,I=KI(s,Y,56)^I,b=D,B=(Y>>>7^(H=w^J))+B|0,D=B=(D=((127&Y)<<25|s>>>7)^I)>>>0>(J=b+D|0)>>>0?B+1|0:B,E[G+168>>2]=J,E[G+172>>2]=B,I=o+Y|0,I=(B=s+F|0)>>>0>>0?I+1|0:I,b=s=E[U+4>>2],s=KI(H=E[U>>2],s,63),Y=w,s=(U=((127&b)<<25|H>>>7)^KI(H,b,56)^s)+B|0,B=(w^Y^b>>>7)+I|0,I=s>>>0>>0?B+1|0:B,B=KI(l,p,45),Y=w,B=KI(l,p,3)^B,U=w^Y,Y=s,I=(p>>>6^U)+I|0,s=I=(s=((63&p)<<26|l>>>6)^B)>>>0>(Y=Y+s|0)>>>0?I+1|0:I,E[G+176>>2]=Y,E[G+180>>2]=I,R=E[x>>2],x=I=E[x+4>>2],U=I,I=KI(v,e,63),B=w,L=((127&e)<<25|v>>>7)^KI(v,e,56)^I,I=(w^B^e>>>7)+_|0,B=((f=L+f|0)>>>0>>0?I+1|0:I)+U|0,B=(I=f+R|0)>>>0>>0?B+1|0:B,_=KI(Y,s,45),f=w,U=(_=((63&s)<<26|Y>>>6)^KI(Y,s,3)^_)+I|0,I=(w^f^s>>>6)+B|0,_=I=_>>>0>U>>>0?I+1|0:I,E[G+192>>2]=U,E[G+196>>2]=I,B=i+b|0,B=(I=k+H|0)>>>0>>0?B+1|0:B,f=KI(R,x,63),H=w,b=((127&x)<<25|R>>>7)^KI(R,x,56)^f,B=(w^H^x>>>7)+B|0,I=(f=b+I|0)>>>0>>0?B+1|0:B,B=KI(J,D,45),H=w,B=KI(J,D,3)^B,x=f,I=(D>>>6^(b=w^H))+I|0,f=I=(f=((63&D)<<26|J>>>6)^B)>>>0>(H=x+f|0)>>>0?I+1|0:I,E[G+184>>2]=H,E[G+188>>2]=I,I=KI(K,t,63),B=w,I=((127&t)<<25|K>>>7)^KI(K,t,56)^I,B=(w^B^t>>>7)+c|0,I=y+(I>>>0>(b=I+S|0)>>>0?B+1|0:B)|0,I=(B=d+b|0)>>>0>>0?I+1|0:I,y=KI(U,_,45),d=w,y=KI(U,_,3)^y,b=w^d,d=(y^=(63&_)<<26|U>>>6)+B|0,B=(_>>>6^b)+I|0,y=B=y>>>0>d>>>0?B+1|0:B,E[G+208>>2]=d,E[G+212>>2]=B,I=KI(S,c,63),B=w,b=KI(S,c,56)^I,B=((I=c>>>7|0)^w^B)+e|0,I=r+((c=(S=b^((127&c)<<25|S>>>7))+v|0)>>>0>>0?B+1|0:B)|0,I=(B=c+M|0)>>>0>>0?I+1|0:I,e=KI(H,f,45),c=w,r=(e=((63&f)<<26|H>>>6)^KI(H,f,3)^e)+B|0,B=(w^c^f>>>6)+I|0,e=B=e>>>0>r>>>0?B+1|0:B,E[G+200>>2]=r,E[G+204>>2]=B,I=KI(u,n,63),B=w,S=((127&n)<<25|u>>>7)^KI(u,n,56)^I,I=(w^B^n>>>7)+h|0,B=D+((c=S+m|0)>>>0>>0?I+1|0:I)|0,B=(I=c+J|0)>>>0>>0?B+1|0:B,c=KI(d,y,45),D=w,S=I,I=y>>>6|0,c=((63&y)<<26|d>>>6)^KI(d,y,3)^c,B=(I^w^D)+B|0,c=B=c>>>0>(y=S+c|0)>>>0?B+1|0:B,E[G+224>>2]=y,E[G+228>>2]=B,I=KI(m,h,63),B=w,I=KI(m,h,56)^I,D=w^B,S=((127&h)<<25|m>>>7)^I,I=((B=h>>>7|0)^D)+t|0,B=p+((h=S+K|0)>>>0>>0?I+1|0:I)|0,B=(I=h+l|0)>>>0>>0?B+1|0:B,t=KI(r,e,45),h=w,D=I,I=e>>>6|0,e=((63&e)<<26|r>>>6)^KI(r,e,3)^t,I=(I^w^h)+B|0,e=I=(t=D+e|0)>>>0>>0?I+1|0:I,E[G+216>>2]=t,E[G+220>>2]=I,I=KI(F,o,63),B=w,h=((127&o)<<25|F>>>7)^KI(F,o,56)^I,B=(w^B^o>>>7)+Q|0,B=f+((I=h+N|0)>>>0>>0?B+1|0:B)|0,I=(r=I+H|0)>>>0>>0?B+1|0:B,B=KI(y,c,45),h=w,D=r,r=KI(y,c,3)^B,B=c>>>6|0,c=D+(r^=(63&c)<<26|y>>>6)|0,I=(B^w^h)+I|0,E[G+240>>2]=c,E[G+244>>2]=c>>>0>>0?I+1|0:I,I=KI(N,Q,63),B=w,I=KI(N,Q,56)^I,c=w^B,B=((B=Q>>>7|0)^c)+n|0,I=s+((I^=(127&Q)<<25|N>>>7)>>>0>(Q=I+u|0)>>>0?B+1|0:B)|0,I=(B=Q+Y|0)>>>0>>0?I+1|0:I,Q=KI(t,e,45),c=w,r=B,B=e>>>6|0,Q=((63&e)<<26|t>>>6)^KI(t,e,3)^Q,B=(B^w^c)+I|0,Q=B=Q>>>0>(e=r+Q|0)>>>0?B+1|0:B,E[G+232>>2]=e,E[G+236>>2]=B,I=KI(k,i,63),B=w,r=KI(k,i,56)^I,B=((I=i>>>7|0)^w^B)+o|0,I=_+((i=(c=r^((127&i)<<25|k>>>7))+F|0)>>>0>>0?B+1|0:B)|0,I=(B=i+U|0)>>>0>>0?I+1|0:I,i=KI(e,Q,45),o=w,r=B,B=Q>>>6|0,Q=r+(i=((63&Q)<<26|e>>>6)^KI(e,Q,3)^i)|0,B=(B^w^o)+I|0,E[G+248>>2]=Q,E[G+252>>2]=Q>>>0>>0?B+1|0:B;I=I+E[A+4>>2]|0,I=(g=Q+E[A>>2]|0)>>>0>>0?I+1|0:I,E[A>>2]=g,E[A+4>>2]=I,B=E[A+12>>2]+E[C+12>>2]|0,I=(g=E[C+8>>2])+E[A+8>>2]|0,E[A+8>>2]=I,E[A+12>>2]=I>>>0>>0?B+1|0:B,B=E[A+20>>2]+E[C+20>>2]|0,I=(g=E[C+16>>2])+E[A+16>>2]|0,E[A+16>>2]=I,E[A+20>>2]=I>>>0>>0?B+1|0:B,I=E[A+28>>2]+E[C+28>>2]|0,g=(B=E[C+24>>2])+E[A+24>>2]|0,E[A+24>>2]=g,E[A+28>>2]=g>>>0>>0?I+1|0:I,B=E[A+36>>2]+E[C+36>>2]|0,I=(g=E[C+32>>2])+E[A+32>>2]|0,E[A+32>>2]=I,E[A+36>>2]=I>>>0>>0?B+1|0:B,I=E[A+44>>2]+E[C+44>>2]|0,g=(B=E[C+40>>2])+E[A+40>>2]|0,E[A+40>>2]=g,E[A+44>>2]=g>>>0>>0?I+1|0:I,B=E[A+52>>2]+E[C+52>>2]|0,I=(g=E[C+48>>2])+E[A+48>>2]|0,E[A+48>>2]=I,E[A+52>>2]=I>>>0>>0?B+1|0:B,B=E[A+60>>2]+E[C+60>>2]|0,I=(g=E[C+56>>2])+E[A+56>>2]|0,E[A+56>>2]=I,E[A+60>>2]=I>>>0>>0?B+1|0:B}function N(A){var I,g,C,B,Q,i,E,_,c,t,r=0,e=0,y=0,s=0,h=0,D=0,p=0,f=0,n=0,k=0,F=0,N=0,S=0,G=0,M=0,b=0,K=0,H=0,Y=0,d=0,J=0,U=0,l=0,m=0,u=0,x=0,R=0,v=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,V=0,Z=0,W=0;s=(N=a[A+44|0]|a[A+45|0]<<8|a[A+46|0]<<16|a[A+47|0]<<24)>>>5&2097151,y=Ig(U=(a[A+60|0]|a[A+61|0]<<8|a[A+62|0]<<16|a[A+63|0]<<24)>>>3|0,0,-683901,-1),e=(r=a[A+44|0])<<16&2031616|a[A+42|0]|a[A+43|0]<<8,r=w,f=r=e>>>0>(n=y+e|0)>>>0?r+1|0:r,b=r=r-((n>>>0<4293918720)-1|0)|0,y=r>>21,r=(e=s)+(s=(2097151&r)<<11|(D=n- -1048576|0)>>>21)|0,e=y,P=e=r>>>0>>0?e+1|0:e,q=r,Y=Ig(r,e,-683901,-1),k=w,p=Ig(I=(a[A+49|0]|a[A+50|0]<<8|a[A+51|0]<<16|a[A+52|0]<<24)>>>7&2097151,0,-997805,-1),y=(r=a[A+27|0])>>>24|0,s=r<<8|(S=a[A+23|0]|a[A+24|0]<<8|a[A+25|0]<<16|a[A+26|0]<<24)>>>24,e=(r=a[A+28|0])>>>16|0,e=2097151&((3&(e|=y))<<30|(r=s|r<<16)>>>2),r=w,r=e>>>0>(y=e+p|0)>>>0?r+1|0:r,e=Ig(R=(G=a[A+52|0]|a[A+53|0]<<8|a[A+54|0]<<16|a[A+55|0]<<24)>>>4&2097151,0,654183,0),r=w+r|0,p=y=e+y|0,y=e>>>0>y>>>0?r+1|0:r,h=(e=a[A+48|0])<<8|N>>>24,e=r=e>>>24|0,r=Ig(g=2097151&((3&(N=(r=(s=a[A+49|0])>>>16|0)|e))<<30|(e=(s<<=16)|h)>>>2),0,136657,0),y=w+y|0,y=r>>>0>(e=r+p|0)>>>0?y+1|0:y,s=(r=Ig(C=(a[A+57|0]|a[A+58|0]<<8|a[A+59|0]<<16|a[A+60|0]<<24)>>>6&2097151,0,666643,0))+e|0,e=w+y|0,p=s,y=r>>>0>s>>>0?e+1|0:e,e=(r=a[A+56|0])>>>24|0,h=r<<8|G>>>24,e=Ig(B=2097151&((1&(G=(r=(s=a[A+57|0])>>>16|0)|e))<<31|(e=(s<<=16)|h)>>>1),0,470296,0),r=w+y|0,e=(r=(y=s=e+p|0)>>>0>>0?r+1|0:r)+k|0,e=y>>>0>(s=y+Y|0)>>>0?e+1|0:e,K=y- -1048576|0,H=y=r-((y>>>0<4293918720)-1|0)|0,k=s-(r=-2097152&K)|0,Y=e-((r>>>0>s>>>0)+y|0)|0,e=Ig(I,0,654183,0),r=w,r=e>>>0>(y=e+(S>>>5&2097151)|0)>>>0?r+1|0:r,s=(e=y)+(y=Ig(R,0,470296,0))|0,e=w+r|0,e=y>>>0>s>>>0?e+1|0:e,r=Ig(g,j,-997805,-1),e=w+e|0,e=r>>>0>(y=r+s|0)>>>0?e+1|0:e,s=(r=y)+(y=Ig(B,X,666643,0))|0,r=w+e|0,h=s,s=y>>>0>s>>>0?r+1|0:r,p=(y=Ig(I,0,470296,0))+(r=(r=a[A+23|0])<<16&2031616|a[A+21|0]|a[A+22|0]<<8)|0,y=w,y=r>>>0>p>>>0?y+1|0:y,p=(e=Ig(R,0,666643,0))+p|0,r=w+y|0,y=Ig(g,j,654183,0),e=w+(e>>>0>p>>>0?r+1|0:r)|0,G=e=y>>>0>(S=y+p|0)>>>0?e+1|0:e,x=e=e-((S>>>0<4293918720)-1|0)|0,r=(r=e>>>21|0)+s|0,y=r=(e=(2097151&e)<<11|(p=S- -1048576|0)>>>21)>>>0>(h=e+h|0)>>>0?r+1|0:r,F=e=r-((h>>>0<4293918720)-1|0)|0,r=k,k=(2097151&e)<<11|(s=h- -1048576|0)>>>21,e=(e>>21)+Y|0,N=k=(e=k>>>0>(M=r+k|0)>>>0?e+1|0:e)-((M>>>0<4293918720)-1|0)|0,v=M-(r=-2097152&(Y=M- -1048576|0))|0,O=e-((r>>>0>M>>>0)+k|0)|0,r=Ig(q,P,136657,0),y=w+y|0,y=r>>>0>(e=r+h|0)>>>0?y+1|0:y,J=e-(r=-2097152&s)|0,L=y-((r>>>0>e>>>0)+F|0)|0,M=n-(r=-2097152&D)|0,b=f-((r>>>0>n>>>0)+b|0)|0,f=Ig(U,0,136657,0),e=(r=a[A+40|0])>>>24|0,s=r<<8|(D=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24)>>>24,y=(r=a[A+41|0])>>>16|0,e=(y|=e)>>>3|0,y=(7&y)<<29|(r=s|r<<16)>>>3,r=e+w|0,r=y>>>0>(s=y+f|0)>>>0?r+1|0:r,e=Ig(C,0,-683901,-1),r=w+r|0,r=e>>>0>(y=e+s|0)>>>0?r+1|0:r,h=y,e=Ig(U,0,-997805,-1),y=w,y=e>>>0>(s=e+(D>>>6&2097151)|0)>>>0?y+1|0:y,D=(e=s)+(s=Ig(C,0,136657,0))|0,e=w+y|0,y=Ig(B,X,-683901,-1),e=w+(s>>>0>D>>>0?e+1|0:e)|0,k=e=y>>>0>(l=y+D|0)>>>0?e+1|0:e,V=y=e-((l>>>0<4293918720)-1|0)|0,r=r+(e=y>>21)|0,D=r=(y=(2097151&y)<<11|(n=l- -1048576|0)>>>21)>>>0>(F=y+h|0)>>>0?r+1|0:r,m=r=r-((F>>>0<4293918720)-1|0)|0,e=(e=r>>21)+b|0,z=e=(r=(y=(2097151&r)<<11|(h=F- -1048576|0)>>>21)+M|0)>>>0>>0?e+1|0:e,u=r,e=Ig(r,e,-683901,-1),r=w+L|0,d=y=e+J|0,s=e>>>0>y>>>0?r+1|0:r,L=S-(r=-2097152&p)|0,b=G-((4095&x)+(r>>>0>S>>>0)|0)|0,S=Ig(I,0,666643,0),r=(e=a[A+19|0])>>>24|0,p=e<<8|(G=a[A+15|0]|a[A+16|0]<<8|a[A+17|0]<<16|a[A+18|0]<<24)>>>24,y=r,e=(7&(y|=e=(r=a[A+20|0])>>>16|0))<<29|(e=(r<<=16)|p)>>>3,y=w+(y>>>3|0)|0,y=e>>>0>(p=e+S|0)>>>0?y+1|0:y,r=Ig(g,j,470296,0),e=w+y|0,r=r>>>0>(p=r+p|0)>>>0?e+1|0:e,y=Ig(g,j,666643,0),e=w,S=e=y>>>0>(J=y+(G>>>6&2097151)|0)>>>0?e+1|0:e,Z=y=e-((J>>>0<4293918720)-1|0)|0,r=r+(e=y>>>21|0)|0,G=r=(y=(2097151&y)<<11|(f=J- -1048576|0)>>>21)>>>0>(M=y+p|0)>>>0?r+1|0:r,W=r=r-((M>>>0<4293918720)-1|0)|0,e=(e=r>>>21|0)+b|0,e=(r=(2097151&r)<<11|(p=M- -1048576|0)>>>21)>>>0>(y=r+L|0)>>>0?e+1|0:e,b=(r=y)+(y=Ig(q,P,-997805,-1))|0,r=w+e|0,r=y>>>0>b>>>0?r+1|0:r,x=e=F-(y=-2097152&h)|0,Q=h=D-((y>>>0>F>>>0)+m|0)|0,y=Ig(u,z,136657,0),r=w+r|0,r=y>>>0>(D=y+b|0)>>>0?r+1|0:r,y=Ig(e,h,-683901,-1),e=w+r|0,D=e=y>>>0>(b=y+D|0)>>>0?e+1|0:e,m=r=e-((b>>>0<4293918720)-1|0)|0,e=(2097151&r)<<11|(h=b- -1048576|0)>>>21,r=(r>>21)+s|0,d=e=(r=e>>>0>(F=e+d|0)>>>0?r+1|0:r)-((F>>>0<4293918720)-1|0)|0,L=(2097151&e)<<11|(s=F- -1048576|0)>>>21,e=(e>>21)+O|0,E=v=L+v|0,L=v>>>0>>0?e+1|0:e,_=F-(e=-2097152&s)|0,c=r-((e>>>0>F>>>0)+d|0)|0,v=b-(r=-2097152&h)|0,O=D-((r>>>0>b>>>0)+m|0)|0,y=(r=Ig(q,P,654183,0))+(M-(e=-2097152&p)|0)|0,e=w+(G-((2147483647&W)+(e>>>0>M>>>0)|0)|0)|0,e=r>>>0>y>>>0?e+1|0:e,r=Ig(u,z,-997805,-1),e=w+e|0,e=r>>>0>(y=r+y|0)>>>0?e+1|0:e,s=(r=y)+(y=Ig(x,Q,136657,0))|0,r=w+e|0,d=s,D=y>>>0>s>>>0?r+1|0:r,M=l-(r=-2097152&n)|0,F=k-((r>>>0>l>>>0)+V|0)|0,G=Ig(R,0,-683901,-1),r=(e=a[A+35|0])>>>24|0,s=e<<8|(p=a[A+31|0]|a[A+32|0]<<8|a[A+33|0]<<16|a[A+34|0]<<24)>>>24,y=r,e=(r=a[A+36|0])>>>16|0,e|=y,y=w,y=(r=2097151&((1&e)<<31|(r=r<<16|s)>>>1))>>>0>(e=r+G|0)>>>0?y+1|0:y,s=(r=Ig(U,0,654183,0))+e|0,e=w+y|0,e=r>>>0>s>>>0?e+1|0:e,y=Ig(C,0,-997805,-1),r=w+e|0,r=y>>>0>(s=y+s|0)>>>0?r+1|0:r,e=Ig(B,X,136657,0),r=w+r|0,h=y=e+s|0,s=e>>>0>y>>>0?r+1|0:r,r=Ig(I,0,-683901,-1),e=w,e=r>>>0>(y=r+(p>>>4&2097151)|0)>>>0?e+1|0:e,p=(r=Ig(R,0,136657,0))+y|0,y=w+e|0,y=r>>>0>p>>>0?y+1|0:y,r=Ig(U,0,470296,0),e=w+y|0,e=r>>>0>(p=r+p|0)>>>0?e+1|0:e,p=(y=Ig(C,0,654183,0))+p|0,r=w+e|0,e=Ig(B,X,-997805,-1),r=w+(y>>>0>p>>>0?r+1|0:r)|0,G=r=e>>>0>(k=e+p|0)>>>0?r+1|0:r,t=e=r-((k>>>0<4293918720)-1|0)|0,y=(r=e>>21)+s|0,b=e=(y=(e=(2097151&e)<<11|(p=k- -1048576|0)>>>21)>>>0>(n=e+h|0)>>>0?y+1|0:y)-((n>>>0<4293918720)-1|0)|0,r=(r=e>>21)+F|0,m=r=(e=(s=(2097151&e)<<11|(h=n- -1048576|0)>>>21)+M|0)>>>0>>0?r+1|0:r,s=d,d=e,r=Ig(e,r,-683901,-1),e=w+D|0,F=s=s+r|0,s=r>>>0>s>>>0?e+1|0:e,D=(r=Ig(q,P,470296,0))+(J-(e=-2097152&f)|0)|0,e=w+(S-((2047&Z)+(e>>>0>J>>>0)|0)|0)|0,e=r>>>0>D>>>0?e+1|0:e,f=(r=D)+(D=Ig(u,z,654183,0))|0,r=w+e|0,r=D>>>0>f>>>0?r+1|0:r,D=Ig(x,Q,-997805,-1),e=w+r|0,e=D>>>0>(f=D+f|0)>>>0?e+1|0:e,l=h=n-(r=-2097152&h)|0,i=D=y-((r>>>0>n>>>0)+b|0)|0,y=Ig(d,m,136657,0),r=w+e|0,r=y>>>0>(f=y+f|0)>>>0?r+1|0:r,y=Ig(h,D,-683901,-1),e=w+r|0,D=e=y>>>0>(S=y+f|0)>>>0?e+1|0:e,b=r=e-((S>>>0<4293918720)-1|0)|0,e=(2097151&r)<<11|(h=S- -1048576|0)>>>21,r=(r>>21)+s|0,F=e=(r=e>>>0>(f=e+F|0)>>>0?r+1|0:r)-((f>>>0<4293918720)-1|0)|0,n=(2097151&e)<<11|(s=f- -1048576|0)>>>21,e=(e>>21)+O|0,V=M=n+v|0,M=n>>>0>M>>>0?e+1|0:e,Z=f-(e=-2097152&s)|0,W=r-((e>>>0>f>>>0)+F|0)|0,v=S-(r=-2097152&h)|0,O=D-((r>>>0>S>>>0)+b|0)|0,D=Ig(q,P,666643,0),r=(e=a[A+14|0])>>>24|0,s=e<<8|(b=a[A+10|0]|a[A+11|0]<<8|a[A+12|0]<<16|a[A+13|0]<<24)>>>24,y=r,e=(r=a[A+15|0])>>>16|0,e|=y,y=w,y=(r=2097151&((1&e)<<31|(r=r<<16|s)>>>1))>>>0>(e=r+D|0)>>>0?y+1|0:y,s=(r=e)+(e=Ig(u,z,470296,0))|0,r=w+y|0,r=e>>>0>s>>>0?r+1|0:r,e=Ig(x,Q,654183,0),r=w+r|0,r=e>>>0>(y=e+s|0)>>>0?r+1|0:r,s=(e=y)+(y=Ig(d,m,-997805,-1))|0,e=w+r|0,e=y>>>0>s>>>0?e+1|0:e,r=Ig(l,i,136657,0),e=w+e|0,S=y=r+s|0,s=r>>>0>y>>>0?e+1|0:e,p=k-(r=-2097152&p)|0,D=G-((r>>>0>k>>>0)+t|0)|0,y=Ig(I,0,136657,0),r=w,r=(e=(a[A+28|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24)>>>7&2097151)>>>0>(y=e+y|0)>>>0?r+1|0:r,h=(e=y)+(y=Ig(R,0,-997805,-1))|0,e=w+r|0,e=y>>>0>h>>>0?e+1|0:e,r=Ig(g,j,-683901,-1),e=w+e|0,e=r>>>0>(y=r+h|0)>>>0?e+1|0:e,h=(r=Ig(U,0,666643,0))+y|0,y=w+e|0,y=r>>>0>h>>>0?y+1|0:y,e=Ig(C,0,470296,0),r=w+y|0,r=e>>>0>(h=e+h|0)>>>0?r+1|0:r,e=Ig(B,X,654183,0),r=w+r|0,e=(H>>21)+(e>>>0>(y=e+h|0)>>>0?r+1|0:r)|0,n=e=(h=(2097151&H)<<11|K>>>21)>>>0>(K=h+y|0)>>>0?e+1|0:e,F=r=e-((K>>>0<4293918720)-1|0)|0,h=(2097151&r)<<11|(f=K- -1048576|0)>>>21,r=(r>>21)+D|0,J=r=(e=h+p|0)>>>0>>0?r+1|0:r,H=e,e=Ig(e,r,-683901,-1),r=w+s|0,h=y=e+S|0,s=e>>>0>y>>>0?r+1|0:r,r=Ig(u,z,666643,0),e=w,e=r>>>0>(y=r+(b>>>4&2097151)|0)>>>0?e+1|0:e,r=Ig(x,Q,470296,0),e=w+e|0,e=r>>>0>(y=r+y|0)>>>0?e+1|0:e,D=(r=Ig(d,m,654183,0))+y|0,y=w+e|0,y=r>>>0>D>>>0?y+1|0:y,e=Ig(l,i,-997805,-1),r=w+y|0,r=e>>>0>(D=e+D|0)>>>0?r+1|0:r,e=Ig(H,J,136657,0),r=w+r|0,G=r=e>>>0>(k=e+D|0)>>>0?r+1|0:r,P=e=r-((k>>>0<4293918720)-1|0)|0,r=h,h=(2097151&e)<<11|(p=k- -1048576|0)>>>21,e=(e>>21)+s|0,u=s=(e=(y=r+h|0)>>>0>>0?e+1|0:e)-((y>>>0<4293918720)-1|0)|0,r=(r=s>>21)+O|0,q=h=(s=(2097151&s)<<11|(D=y- -1048576|0)>>>21)+v|0,S=s>>>0>h>>>0?r+1|0:r,h=y,y=e,s=(K-(e=-2097152&f)|0)+(f=(2097151&N)<<11|Y>>>21)|0,e=(n-((e>>>0>K>>>0)+F|0)|0)+(N>>21)|0,b=e=s>>>0>>0?e+1|0:e,R=e=e-((s>>>0<4293918720)-1|0)|0,Y=r=e>>21,r=Ig(U=(2097151&e)<<11|(F=s- -1048576|0)>>>21,r,-683901,-1),y=w+y|0,y=r>>>0>(e=r+h|0)>>>0?y+1|0:y,j=e-(r=-2097152&D)|0,X=y-((r>>>0>e>>>0)+u|0)|0,r=Ig(U,Y,136657,0),e=G+w|0,z=(y=r+k|0)-(r=-2097152&p)|0,u=(e=y>>>0>>0?e+1|0:e)-((r>>>0>y>>>0)+P|0)|0,e=Ig(x,Q,666643,0),y=w,y=(r=(a[A+7|0]|a[A+8|0]<<8|a[A+9|0]<<16|a[A+10|0]<<24)>>>7&2097151)>>>0>(e=r+e|0)>>>0?y+1|0:y,h=(r=Ig(d,m,470296,0))+e|0,e=w+y|0,e=r>>>0>h>>>0?e+1|0:e,r=Ig(l,i,654183,0),e=w+e|0,e=r>>>0>(y=r+h|0)>>>0?e+1|0:e,h=(r=y)+(y=Ig(H,J,-997805,-1))|0,r=w+e|0,f=h,h=y>>>0>h>>>0?r+1|0:r,G=Ig(d,m,666643,0),r=(e=a[A+6|0])>>>24|0,D=e<<8|(K=a[A+2|0]|a[A+3|0]<<8|a[A+4|0]<<16|a[A+5|0]<<24)>>>24,y=r,e=(r=a[A+7|0])>>>16|0,e=2097151&((3&(e|=y))<<30|(r=r<<16|D)>>>2),r=w,r=e>>>0>(y=e+G|0)>>>0?r+1|0:r,D=(e=Ig(l,i,470296,0))+y|0,y=w+r|0,y=e>>>0>D>>>0?y+1|0:y,e=Ig(H,J,654183,0),r=w+y|0,G=r=e>>>0>(n=e+D|0)>>>0?r+1|0:r,N=r=r-((n>>>0<4293918720)-1|0)|0,e=(y=r>>21)+h|0,k=r=(e=(r=(2097151&r)<<11|(p=n- -1048576|0)>>>21)>>>0>(D=r+f|0)>>>0?e+1|0:e)-((D>>>0<4293918720)-1|0)|0,f=(2097151&r)<<11|(h=D- -1048576|0)>>>21,r=(r>>21)+u|0,u=d=f+z|0,f=f>>>0>d>>>0?r+1|0:r,r=Ig(U,Y,-997805,-1),e=w+e|0,e=r>>>0>(y=r+D|0)>>>0?e+1|0:e,x=y-(r=-2097152&h)|0,m=e-((r>>>0>y>>>0)+k|0)|0,e=Ig(U,Y,654183,0),r=G+w|0,d=(y=e+n|0)-(e=-2097152&p)|0,N=(r=y>>>0>>0?r+1|0:r)-((e>>>0>y>>>0)+N|0)|0,r=Ig(l,i,666643,0),e=w,e=r>>>0>(y=r+(K>>>5&2097151)|0)>>>0?e+1|0:e,r=Ig(H,J,470296,0),e=w+e|0,D=y=r+y|0,y=r>>>0>y>>>0?e+1|0:e,h=Ig(H,J,666643,0),e=(r=a[A+2|0])<<16&2031616|a[0|A]|a[A+1|0]<<8,r=w,G=r=e>>>0>(k=h+e|0)>>>0?r+1|0:r,J=r=r-((k>>>0<4293918720)-1|0)|0,h=(2097151&r)<<11|(p=k- -1048576|0)>>>21,r=(r>>21)+y|0,y=r=h>>>0>(n=h+D|0)>>>0?r+1|0:r,K=r=r-((n>>>0<4293918720)-1|0)|0,h=(2097151&r)<<11|(D=n- -1048576|0)>>>21,r=(r>>21)+N|0,h=h>>>0>(N=H=h+d|0)>>>0?r+1|0:r,r=Ig(U,Y,470296,0),y=y+w|0,y=(e=r+n|0)>>>0>>0?y+1|0:y,n=e-(r=-2097152&D)|0,D=y-((r>>>0>e>>>0)+K|0)|0,e=Ig(U,Y,666643,0),r=w+(G-(((y=-2097152&p)>>>0>k>>>0)+J|0)|0)|0,e=(y=(r=e>>>0>(H=e+(k-y|0)|0)>>>0?r+1|0:r)>>21)+D|0,r=(r=(e=(r=(2097151&r)<<11|H>>>21)>>>0>(K=r+n|0)>>>0?e+1|0:e)>>21)+h|0,e=(e=(r=(e=(2097151&e)<<11|K>>>21)>>>0>(N=e+N|0)>>>0?r+1|0:r)>>21)+m|0,y=(r=(e=(r=(2097151&r)<<11|N>>>21)>>>0>(h=r+x|0)>>>0?e+1|0:e)>>21)+f|0,r=(e=(y=(e=(2097151&e)<<11|h>>>21)>>>0>(Y=e+u|0)>>>0?y+1|0:y)>>21)+X|0,e=(y=(r=(y=(2097151&y)<<11|Y>>>21)>>>0>(k=y+j|0)>>>0?r+1|0:r)>>21)+S|0,r=(r=(e=(r=(2097151&r)<<11|k>>>21)>>>0>(n=r+q|0)>>>0?e+1|0:e)>>21)+W|0,e=(e=(r=(e=(2097151&e)<<11|n>>>21)>>>0>(S=e+Z|0)>>>0?r+1|0:r)>>21)+M|0,y=(r=(e=(r=(2097151&r)<<11|S>>>21)>>>0>(f=r+V|0)>>>0?e+1|0:e)>>21)+c|0,r=(e=(y=(e=(2097151&e)<<11|f>>>21)>>>0>(G=e+_|0)>>>0?y+1|0:y)>>21)+L|0,D=(F=s-(e=-2097152&F)|0)+((2097151&(r=(y=(2097151&y)<<11|G>>>21)>>>0>(p=y+E|0)>>>0?r+1|0:r))<<11|p>>>21)|0,r=(b-((e>>>0>s>>>0)+R|0)|0)+(r>>21)|0,F=e=(r=D>>>0>>0?r+1|0:r)>>21,H=(r=Ig(M=(2097151&r)<<11|D>>>21,e,666643,0))+(e=2097151&H)|0,r=w,s=r=e>>>0>H>>>0?r+1|0:r,o[0|A]=H,o[A+1|0]=(255&r)<<24|H>>>8,r=2097151&K,e=Ig(M,F,470296,0)+r|0,y=w,r=(s>>21)+(r>>>0>e>>>0?y+1|0:y)|0,r=(b=(2097151&s)<<11|H>>>21)>>>0>(K=b+e|0)>>>0?r+1|0:r,o[A+4|0]=(2047&r)<<21|K>>>11,e=r,y=K,o[A+3|0]=(7&r)<<29|y>>>3,o[A+2|0]=31&((65535&s)<<16|H>>>16)|y<<5,s=2097151&N,N=Ig(M,F,654183,0)+s|0,r=w,K=(2097151&e)<<11|y>>>21,e=(e>>21)+(s=s>>>0>N>>>0?r+1|0:r)|0,r=e=(N=K+N|0)>>>0>>0?e+1|0:e,o[A+6|0]=(63&r)<<26|N>>>6,s=N,N=0,o[A+5|0]=N<<13|(1572864&y)>>>19|s<<2,y=2097151&h,h=Ig(M,F,-997805,-1)+y|0,e=w,e=y>>>0>h>>>0?e+1|0:e,N=(2097151&(y=r))<<11|s>>>21,y=(r>>=21)+e|0,y=(h=N+h|0)>>>0>>0?y+1|0:y,o[A+9|0]=(511&y)<<23|h>>>9,o[A+8|0]=(1&y)<<31|h>>>1,e=0,o[A+7|0]=e<<18|(2080768&s)>>>14|h<<7,e=2097151&Y,s=Ig(M,F,136657,0)+e|0,r=w,r=e>>>0>s>>>0?r+1|0:r,Y=(2097151&(e=y))<<11|h>>>21,e=r+(y=e>>21)|0,e=(s=Y+s|0)>>>0>>0?e+1|0:e,o[A+12|0]=(4095&e)<<20|s>>>12,y=s,o[A+11|0]=(15&e)<<28|y>>>4,s=0,o[A+10|0]=s<<15|(1966080&h)>>>17|y<<4,s=2097151&k,h=Ig(M,F,-683901,-1)+s|0,r=w,r=s>>>0>h>>>0?r+1|0:r,s=e,e=r+(e>>=21)|0,e=(s=(d=h)+(h=(2097151&s)<<11|y>>>21)|0)>>>0>>0?e+1|0:e,o[A+14|0]=(127&e)<<25|s>>>7,h=0,o[A+13|0]=h<<12|(1048576&y)>>>20|s<<1,r=e>>21,y=(e=(2097151&e)<<11|s>>>21)>>>0>(h=e+(2097151&n)|0)>>>0?r+1|0:r,o[A+17|0]=(1023&y)<<22|h>>>10,o[A+16|0]=(3&y)<<30|h>>>2,e=0,o[A+15|0]=e<<17|(2064384&s)>>>15|h<<6,r=y>>21,r=(e=(2097151&y)<<11|h>>>21)>>>0>(y=e+(2097151&S)|0)>>>0?r+1|0:r,o[A+20|0]=(8191&r)<<19|y>>>13,o[A+19|0]=(31&r)<<27|y>>>5,s=(e=2097151&f)+(f=(2097151&r)<<11|y>>>21)|0,e=r>>21,e=s>>>0>>0?e+1|0:e,f=s,o[A+21|0]=s,S=0,o[A+18|0]=S<<14|(1835008&h)>>>18|y<<3,o[A+22|0]=(255&e)<<24|s>>>8,y=e>>21,y=(s=(h=(2097151&e)<<11|s>>>21)+(2097151&G)|0)>>>0>>0?y+1|0:y,o[A+25|0]=(2047&y)<<21|s>>>11,o[A+24|0]=(7&y)<<29|s>>>3,o[A+23|0]=31&((65535&e)<<16|f>>>16)|s<<5,r=y>>21,r=(e=(2097151&y)<<11|s>>>21)>>>0>(y=e+(2097151&p)|0)>>>0?r+1|0:r,o[A+27|0]=(63&r)<<26|y>>>6,h=0,o[A+26|0]=h<<13|(1572864&s)>>>19|y<<2,e=r>>21,e=(r=(s=(2097151&r)<<11|y>>>21)+(2097151&D)|0)>>>0>>0?e+1|0:e,o[A+31|0]=(131071&e)<<15|r>>>17,o[A+30|0]=(511&e)<<23|r>>>9,o[A+29|0]=(1&e)<<31|r>>>1,s=0,o[A+28|0]=s<<18|(2080768&y)>>>14|r<<7}function S(A,I){var g,C=0,B=0,Q=0,i=0,o=0,_=0,t=0,r=0,e=0,y=0,s=0,f=0,n=0,k=0,F=0,N=0,S=0,M=0,b=0,K=0,H=0,Y=0,d=0,J=0,U=0,l=0,m=0,u=0,x=0,R=0,v=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,V=0,Z=0,W=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0;if(h=g=h-4096|0,A){A:{I:{if(2==(0|(_=E[A+36>>2]))){if(iA=E[A+4>>2],(T=E[I>>2])|(X=a[I+8|0])>>>0>=2)break I;T=0}else X=a[I+8|0],iA=E[A+4>>2],T=E[I>>2];if(Hg(g+3072|0,0,1024),Hg(g+2104|0,0,968),E[g+2048>>2]=T,E[g+2052>>2]=0,u=E[I+4>>2],E[g+2064>>2]=X,E[g+2068>>2]=0,E[g+2056>>2]=u,E[g+2060>>2]=0,E[g+2072>>2]=E[A+16>>2],E[g+2076>>2]=0,u=E[A+8>>2],E[g+2088>>2]=_,E[g+2092>>2]=0,E[g+2080>>2]=u,E[g+2084>>2]=0,!E[A+20>>2])break A;for(u=0;(N=127&r)||(u=(P=P+1|0)?u:u+1|0,E[g+2096>>2]=P,E[g+2100>>2]=u,_=Hg(g,0,1024),Hg(_+1024|0,0,1024),G(C=_+3072|0,_+2048|0,_),G(C,_,_+1024|0)),N=E[4+(_=(g+1024|0)+(N<<3)|0)>>2],E[(C=(r<<3)+iA|0)>>2]=E[_>>2],E[C+4>>2]=N,(N=E[A+20>>2])>>>0>(r=r+1|0)>>>0;);break A}N=E[A+20>>2],_A=1}if(!((u=(EA=!(X|T))<<1)>>>0>=N>>>0))for(_=E[A+24>>2],QA=E[I+4>>2],r=(P=(c(_,QA)+u|0)+c(N,X)|0)+((P>>>0)%(_>>>0)|0?-1:_-1|0)|0,cA=X+1|0;;){C=E[A+28>>2],oA=1==((P>>>0)%((_=E[A+24>>2])>>>0)|0)?P-1|0:r,r=_A?E[E[A>>2]+4>>2]+(oA<<10)|0:(u<<3)+iA|0,B=E[r>>2],r=E[r+4>>2],E[I+12>>2]=u,C=EA?QA:(r>>>0)%(C>>>0)|0;A:if(T)r=_+((0|C)==(0|QA)?(-1^N)+u|0:(u?0:-1)-N|0)|0,i=0,3!=(0|X)&&(i=c(N,cA));else{if(!X){r=u-1|0,i=0;break A}if(r=c(N,X),(0|C)==(0|QA)){r=(r+u|0)-1|0,i=0;break A}r=r-!u|0,i=0}if(e=(N=E[E[A>>2]+4>>2])+(c(C,_)<<10)|0,i=(o=C=r-1|0)>>>0>(C=C+i|0)>>>0,Ig(B,0,B,0),Ig(r,0,w,0),oI(C-(r=w)|0,i-(C>>>0>>0)|0,_),w=p,r=(D<<10)+e|0,_=N+(oA<<10)|0,aA=N+(P<<10)|0,T)G(_,r,aA);else{for(Sg(g+3072|0,r,1024),r=0;i=E[(B=(N=r<<3)+(C=g+3072|0)|0)>>2],s=E[(e=_+N|0)>>2],e=E[B+4>>2]^E[e+4>>2],E[B>>2]=i^s,E[B+4>>2]=e,e=E[(B=(i=8|N)+C|0)>>2],s=E[(i=_+i|0)>>2],i=E[B+4>>2]^E[i+4>>2],E[B>>2]=e^s,E[B+4>>2]=i,e=E[(B=(i=16|N)+C|0)>>2],s=E[(i=_+i|0)>>2],i=E[B+4>>2]^E[i+4>>2],E[B>>2]=e^s,E[B+4>>2]=i,i=E[(N=(B=24|N)+C|0)>>2],e=E[(B=B+_|0)>>2],B=E[N+4>>2]^E[B+4>>2],E[N>>2]=i^e,E[N+4>>2]=B,128!=(0|(r=r+4|0)););for(Sg(g+2048|0,C,1024),N=0,r=0;e=(i=E[56+(_=(g+3072|0)+(r<<7)|0)>>2])+(B=E[_+24>>2])|0,s=(o=E[_+60>>2])+(C=E[_+28>>2])|0,t=Ig(B<<1&-2,1&(C<<1|B>>>31),i,0),B=w+(B>>>0>e>>>0?s+1|0:s)|0,e=(C=t+e|0)>>>0>>0?B+1|0:B,t=(s=KI(C^E[_+120>>2],e^E[_+124>>2],32))+(B=E[_+88>>2])|0,Q=(n=w)+(U=E[_+92>>2])|0,y=i,U=Ig(s,0,B<<1&-2,1&(U<<1|B>>>31)),B=w+(B>>>0>t>>>0?Q+1|0:Q)|0,J=KI(y^(i=U+t|0),o^(R=i>>>0>>0?B+1|0:B),40),t=1+(B=e+(gA=w)|0)|0,o=B,t=(B=C+J|0)>>>0>>0?t:o,U=(C=Ig(J,0,C<<1&-2,1&(e<<1|C>>>31)))+B|0,B=w+t|0,k=KI(U^s,n^(z=C>>>0>U>>>0?B+1|0:B),48),H=y=w,e=(f=E[_+44>>2])+(C=E[_+12>>2])|0,t=(s=E[_+40>>2])+(B=E[_+8>>2])|0,Q=Ig(B<<1&-2,1&(C<<1|B>>>31),s,0),B=w+(B>>>0>t>>>0?e+1|0:e)|0,t=(C=t+Q|0)>>>0>>0?B+1|0:B,o=(Q=KI(C^E[_+104>>2],t^E[_+108>>2],32))+(e=E[_+72>>2])|0,n=(S=w)+(B=E[_+76>>2])|0,F=s,s=Ig(Q,0,e<<1&-2,1&(B<<1|e>>>31)),e=w+(e>>>0>o>>>0?n+1|0:n)|0,s=KI(F^(B=s+o|0),f^(o=B>>>0>>0?e+1|0:e),40),F=1+(e=t+(n=w)|0)|0,f=e,f=(e=C+s|0)>>>0>>0?F:f,C=Ig(s,0,C<<1&-2,1&(t<<1|C>>>31)),t=w+f|0,f=KI((e=C+e|0)^Q,S^(j=C>>>0>e>>>0?t+1|0:t),48),Q=1+(C=o+(CA=w)|0)|0,t=C,t=(C=B+f|0)>>>0>>0?Q:t,Q=s,s=C,C=Ig(f,0,B<<1&-2,1&(o<<1|B>>>31)),B=w+t|0,S=KI(Q^(s=s+C|0),n^(O=C>>>0>s>>>0?B+1|0:B),1),$=M=w,t=(d=E[_+36>>2])+(C=E[_+4>>2])|0,o=(Q=E[_+32>>2])+(B=E[_>>2])|0,n=Ig(B<<1&-2,1&(C<<1|B>>>31),Q,0),B=w+(B>>>0>o>>>0?t+1|0:t)|0,o=(C=o+n|0)>>>0>>0?B+1|0:B,n=(V=KI(C^E[_+96>>2],o^E[_+100>>2],32))+(B=E[(t=q=_- -64|0)>>2])|0,F=(BA=w)+(t=E[t+4>>2])|0,b=Q,Q=Ig(V,0,B<<1&-2,1&(t<<1|B>>>31)),B=w+(B>>>0>n>>>0?F+1|0:F)|0,F=KI(b^(t=Q+n|0),d^(L=Q>>>0>t>>>0?B+1|0:B),40),n=1+(B=o+(Z=w)|0)|0,Q=B,Q=(B=C+F|0)>>>0>>0?n:Q,n=B,B=Ig(F,0,C<<1&-2,1&(o<<1|C>>>31)),Q=w+Q|0,Q=1+(B=(x=(C=n+B|0)>>>0>>0?Q+1|0:Q)+M|0)|0,o=B,o=(B=C+S|0)>>>0>>0?Q:o,Q=B,B=Ig(S,0,C<<1&-2,1&(x<<1|C>>>31)),o=w+o|0,y=KI((Q=Q+B|0)^k,(m=B>>>0>Q>>>0?o+1|0:o)^y,32),W=w,n=(Y=E[_+52>>2])+(B=E[_+20>>2])|0,d=(M=E[_+48>>2])+(o=E[_+16>>2])|0,l=Ig(o<<1&-2,1&(B<<1|o>>>31),M,0),o=w+(o>>>0>d>>>0?n+1|0:n)|0,d=(B=d+l|0)>>>0>>0?o+1|0:o,v=(l=KI(B^E[_+112>>2],d^E[_+116>>2],32))+(n=E[_+80>>2])|0,b=(AA=w)+(o=E[_+84>>2])|0,K=M,M=Ig(l,0,n<<1&-2,1&(o<<1|n>>>31)),n=w+(n>>>0>v>>>0?b+1|0:b)|0,M=KI(K^(o=M+v|0),Y^(v=o>>>0>>0?n+1|0:n),40),K=1+(n=d+(Y=w)|0)|0,b=n,b=(n=B+M|0)>>>0>>0?K:b,B=Ig(M,0,B<<1&-2,1&(d<<1|B>>>31)),d=w+b|0,d=KI(K=(n=B+n|0)^l,AA^(l=B>>>0>n>>>0?d+1|0:d),48),K=1+(B=v+(AA=w)|0)|0,b=B,b=(B=o+d|0)>>>0>>0?K:b,o=Ig(d,0,o<<1&-2,1&(v<<1|o>>>31)),v=w+b|0,K=1+(o=(v=(B=o+B|0)>>>0>>0?v+1|0:v)+W|0)|0,b=o,b=(o=B+y|0)>>>0>>0?K:b,K=S,S=Ig(y,0,B<<1&-2,1&(v<<1|B>>>31)),b=w+b|0,S=KI(K^(o=S+o|0),$^(b=o>>>0>>0?b+1|0:b),40),tA=1+(K=m+($=w)|0)|0,IA=K,IA=(K=Q+S|0)>>>0>>0?tA:IA,Q=(m=Ig(S,0,Q<<1&-2,1&(m<<1|Q>>>31)))+K|0,E[_>>2]=Q,K=w+IA|0,m=Q>>>0>>0?K+1|0:K,E[_+4>>2]=m,Q=KI(Q^y,m^W,48),E[_+120>>2]=Q,y=w,E[_+124>>2]=y,IA=1+(y=y+b|0)|0,K=y,m=(y=Q+o|0)>>>0>>0?IA:K,Q=(o=Ig(Q,0,o<<1&-2,1&(b<<1|o>>>31)))+y|0,E[_+80>>2]=Q,y=w+m|0,o=Q>>>0>>0?y+1|0:y,E[_+84>>2]=o,rA=_,eA=KI(Q^S,o^$,1),E[rA+40>>2]=eA,E[_+44>>2]=w,Q=KI(B^M,v^Y,1),y=1+(B=j+(M=w)|0)|0,o=B,o=(B=Q+e|0)>>>0>>0?y:o,B=B+(S=Ig(Q,0,e<<1&-2,1&(j<<1|e>>>31)))|0,e=w+o|0,o=KI(C^V,x^BA,48),e=KI(o^B,(S=B>>>0>>0?e+1|0:e)^(j=w),32),V=y=w,b=1+(C=R+H|0)|0,H=C,x=(C=i+k|0)>>>0>>0?b:H,i=Ig(k,0,i<<1&-2,1&(R<<1|i>>>31)),k=w+x|0,H=1+(i=(k=(C=i+C|0)>>>0>>0?k+1|0:k)+y|0)|0,y=i,y=(i=C+e|0)>>>0>>0?H:y,H=Q,Q=Ig(e,0,C<<1&-2,1&(k<<1|C>>>31)),y=w+y|0,Q=KI(H^(i=Q+i|0),M^(y=i>>>0>>0?y+1|0:y),40),b=1+(R=S+(M=w)|0)|0,H=R,x=(R=B+Q|0)>>>0>>0?b:H,H=e,e=Ig(Q,0,B<<1&-2,1&(S<<1|B>>>31)),S=w+x|0,e=KI(H^(B=e+R|0),V^(S=B>>>0>>0?S+1|0:S),48),E[_+96>>2]=e,R=w,E[_+100>>2]=R,E[_+8>>2]=B,E[_+12>>2]=S,S=1+(B=y+R|0)|0,H=B,S=(B=i+e|0)>>>0>>0?S:H,i=Ig(e,0,i<<1&-2,1&(y<<1|i>>>31)),e=w+S|0,rA=_,eA=KI((B=i+B|0)^Q,M^(i=B>>>0>>0?e+1|0:e),1),E[rA+48>>2]=eA,E[_+52>>2]=w,E[_+88>>2]=B,E[_+92>>2]=i,i=KI(C^J,k^gA,1),e=1+(C=l+(J=w)|0)|0,B=C,e=(C=i+n|0)>>>0>>0?e:B,B=C,C=Ig(i,0,n<<1&-2,1&(l<<1|n>>>31)),e=w+e|0,e=KI((B=B+C|0)^f,CA^(Q=C>>>0>B>>>0?e+1|0:e),32),k=n=w,f=1+(C=L+j|0)|0,y=C,f=(C=o+t|0)>>>0>>0?f:y,t=Ig(o,0,t<<1&-2,1&(L<<1|t>>>31)),o=w+f|0,f=1+(t=(o=(C=t+C|0)>>>0>>0?o+1|0:o)+n|0)|0,y=t,n=(t=C+e|0)>>>0>>0?f:y,y=i,i=t,t=Ig(e,0,C<<1&-2,1&(o<<1|C>>>31)),n=w+n|0,t=KI(y^(i=i+t|0),J^(n=i>>>0>>0?n+1|0:n),40),M=1+(f=Q+(J=w)|0)|0,y=f,S=(f=B+t|0)>>>0>>0?M:y,B=(Q=Ig(t,0,B<<1&-2,1&(Q<<1|B>>>31)))+f|0,E[_+16>>2]=B,f=w+S|0,Q=B>>>0>>0?f+1|0:f,E[_+20>>2]=Q,B=KI(B^e,Q^k,48),E[_+104>>2]=B,e=w,E[_+108>>2]=e,Q=1+(e=e+n|0)|0,y=e,Q=(e=B+i|0)>>>0>>0?Q:y,i=(B=Ig(B,0,i<<1&-2,1&(n<<1|i>>>31)))+e|0,e=w+Q|0,n=B=B>>>0>i>>>0?e+1|0:e,E[q>>2]=i,E[q+4>>2]=B,e=(B=KI(C^F,o^Z,1))+U|0,Q=(k=w)+z|0,C=(o=Ig(U<<1&-2,1&(z<<1|U>>>31),B,0))+e|0,e=w+(B>>>0>e>>>0?Q+1|0:Q)|0,e=KI(C^d,AA^(Q=C>>>0>>0?e+1|0:e),32),f=1+(o=O+(U=w)|0)|0,y=o,f=(o=e+s|0)>>>0>>0?f:y,y=B,B=(s=Ig(e,0,s<<1&-2,1&(O<<1|s>>>31)))+o|0,o=w+f|0,s=KI(y^B,k^(o=B>>>0>>0?o+1|0:o),40),F=1+(f=Q+(k=w)|0)|0,y=f,S=(f=C+s|0)>>>0>>0?F:y,y=e,C=Ig(s,0,C<<1&-2,1&(Q<<1|C>>>31)),Q=w+S|0,C=KI(y^(e=C+f|0),U^(Q=C>>>0>e>>>0?Q+1|0:Q),48),F=1+(f=o+(U=w)|0)|0,y=f,S=(f=C+B|0)>>>0>>0?F:y,B=(o=Ig(C,0,B<<1&-2,1&(o<<1|B>>>31)))+f|0,E[_+72>>2]=B,f=w+S|0,o=B>>>0>>0?f+1|0:f,E[_+76>>2]=o,E[_+112>>2]=C,E[_+116>>2]=U,E[_+24>>2]=e,E[_+28>>2]=Q,rA=_,eA=KI(i^t,n^J,1),E[rA+56>>2]=eA,E[_+60>>2]=w,rA=_,eA=KI(B^s,o^k,1),E[rA+32>>2]=eA,E[_+36>>2]=w,8!=(0|(r=r+1|0)););for(;i=(B=E[392+(_=(g+3072|0)+(N<<4)|0)>>2])+(C=E[_+136>>2])|0,e=(Q=E[_+396>>2])+(r=E[_+140>>2])|0,s=Ig(C<<1&-2,1&(r<<1|C>>>31),B,0),C=w+(C>>>0>i>>>0?e+1|0:e)|0,i=(r=s+i|0)>>>0>>0?C+1|0:C,s=(e=KI(r^E[_+904>>2],i^E[_+908>>2],32))+(C=E[_+648>>2])|0,t=(o=w)+(n=E[_+652>>2])|0,y=B,n=Ig(e,0,C<<1&-2,1&(n<<1|C>>>31)),C=w+(C>>>0>s>>>0?t+1|0:t)|0,U=KI(y^(B=n+s|0),Q^(d=B>>>0>>0?C+1|0:C),40),y=1+(C=i+(v=w)|0)|0,t=C,s=(C=r+U|0)>>>0>>0?y:t,n=(r=Ig(U,0,r<<1&-2,1&(i<<1|r>>>31)))+C|0,C=w+s|0,J=KI(n^e,o^(R=r>>>0>n>>>0?C+1|0:C),48),b=F=w,i=(k=E[_+268>>2])+(r=E[_+12>>2])|0,s=(e=E[_+264>>2])+(C=E[_+8>>2])|0,t=Ig(C<<1&-2,1&(r<<1|C>>>31),e,0),C=w+(C>>>0>s>>>0?i+1|0:i)|0,s=(r=s+t|0)>>>0>>0?C+1|0:C,Q=(t=KI(r^E[_+776>>2],s^E[_+780>>2],32))+(i=E[_+520>>2])|0,o=(f=w)+(C=E[_+524>>2])|0,y=e,e=Ig(t,0,i<<1&-2,1&(C<<1|i>>>31)),i=w+(i>>>0>Q>>>0?o+1|0:o)|0,e=KI(y^(C=e+Q|0),k^(Q=C>>>0>>0?i+1|0:i),40),k=1+(i=s+(o=w)|0)|0,y=i,k=(i=r+e|0)>>>0>>0?k:y,r=Ig(e,0,r<<1&-2,1&(s<<1|r>>>31)),s=w+k|0,k=KI((i=r+i|0)^t,f^(z=i>>>0>>0?s+1|0:s),48),y=1+(r=Q+(gA=w)|0)|0,t=r,s=(r=C+k|0)>>>0>>0?y:t,t=e,e=r,r=Ig(k,0,C<<1&-2,1&(Q<<1|C>>>31)),C=w+s|0,f=KI(t^(e=e+r|0),o^(j=r>>>0>e>>>0?C+1|0:C),1),H=y=w,s=(M=E[_+260>>2])+(r=E[_+4>>2])|0,Q=(t=E[_+256>>2])+(C=E[_>>2])|0,o=Ig(C<<1&-2,1&(r<<1|C>>>31),t,0),C=w+(C>>>0>Q>>>0?s+1|0:s)|0,Q=(r=Q+o|0)>>>0>>0?C+1|0:C,o=(O=KI(r^E[_+768>>2],Q^E[_+772>>2],32))+(C=E[_+512>>2])|0,S=(CA=w)+(s=E[_+516>>2])|0,Y=t,t=Ig(O,0,C<<1&-2,1&(s<<1|C>>>31)),C=w+(C>>>0>o>>>0?S+1|0:S)|0,S=KI(Y^(s=t+o|0),M^(V=t>>>0>s>>>0?C+1|0:C),40),t=1+(C=Q+($=w)|0)|0,o=C,t=(C=r+S|0)>>>0>>0?t:o,o=C,C=Ig(S,0,r<<1&-2,1&(Q<<1|r>>>31)),t=w+t|0,t=1+(C=(q=C>>>0>(r=o+C|0)>>>0?t+1|0:t)+y|0)|0,o=C,Q=(C=r+f|0)>>>0>>0?t:o,o=C,C=Ig(f,0,r<<1&-2,1&(q<<1|r>>>31)),Q=w+Q|0,F=KI((t=o+C|0)^J,(L=C>>>0>t>>>0?Q+1|0:Q)^F,32),BA=w,o=(Z=E[_+388>>2])+(C=E[_+132>>2])|0,M=(y=E[_+384>>2])+(Q=E[_+128>>2])|0,x=Ig(Q<<1&-2,1&(C<<1|Q>>>31),y,0),Q=w+(Q>>>0>M>>>0?o+1|0:o)|0,M=(C=M+x|0)>>>0>>0?Q+1|0:Q,m=(x=KI(C^E[_+896>>2],M^E[_+900>>2],32))+(o=E[_+640>>2])|0,l=(W=w)+(Q=E[_+644>>2])|0,Y=y,y=Ig(x,0,o<<1&-2,1&(Q<<1|o>>>31)),o=w+(o>>>0>m>>>0?l+1|0:l)|0,y=KI(Y^(Q=y+m|0),Z^(m=Q>>>0>>0?o+1|0:o),40),K=1+(o=M+(Z=w)|0)|0,Y=o,l=(o=C+y|0)>>>0>>0?K:Y,C=Ig(y,0,C<<1&-2,1&(M<<1|C>>>31)),M=w+l|0,M=KI(Y=(o=C+o|0)^x,W^(x=C>>>0>o>>>0?M+1|0:M),48),K=1+(C=m+(W=w)|0)|0,Y=C,l=(C=Q+M|0)>>>0>>0?K:Y,Q=Ig(M,0,Q<<1&-2,1&(m<<1|Q>>>31)),m=w+l|0,K=1+(Q=(m=(C=Q+C|0)>>>0>>0?m+1|0:m)+BA|0)|0,Y=Q,l=(Q=C+F|0)>>>0>>0?K:Y,Y=f,f=Ig(F,0,C<<1&-2,1&(m<<1|C>>>31)),l=w+l|0,f=KI(Y^(Q=f+Q|0),H^(l=Q>>>0>>0?l+1|0:l),40),IA=1+(Y=L+(H=w)|0)|0,K=Y,AA=(Y=t+f|0)>>>0>>0?IA:K,t=(L=Ig(f,0,t<<1&-2,1&(L<<1|t>>>31)))+Y|0,E[_>>2]=t,Y=w+AA|0,L=t>>>0>>0?Y+1|0:Y,E[_+4>>2]=L,t=KI(t^F,L^BA,48),E[_+904>>2]=t,F=w,E[_+908>>2]=F,K=1+(F=F+l|0)|0,Y=F,L=(F=Q+t|0)>>>0>>0?K:Y,t=(Q=Ig(t,0,Q<<1&-2,1&(l<<1|Q>>>31)))+F|0,E[_+640>>2]=t,F=w+L|0,Q=Q>>>0>t>>>0?F+1|0:F,E[_+644>>2]=Q,rA=_,eA=KI(t^f,Q^H,1),E[rA+264>>2]=eA,E[_+268>>2]=w,t=KI(C^y,m^Z,1),f=1+(C=z+(y=w)|0)|0,Q=C,Q=(C=i+t|0)>>>0>>0?f:Q,C=C+(f=Ig(t,0,i<<1&-2,1&(z<<1|i>>>31)))|0,i=w+Q|0,Q=KI(r^O,q^CA,48),i=KI(Q^C,(f=C>>>0>>0?i+1|0:i)^(z=w),32),O=F=w,b=1+(r=d+b|0)|0,H=r,q=(r=B+J|0)>>>0>>0?b:H,B=Ig(J,0,B<<1&-2,1&(d<<1|B>>>31)),J=w+q|0,H=1+(B=(J=B>>>0>(r=B+r|0)>>>0?J+1|0:J)+F|0)|0,F=B,F=(B=i+r|0)>>>0>>0?H:F,H=t,t=Ig(i,0,r<<1&-2,1&(J<<1|r>>>31)),F=w+F|0,t=KI(H^(B=t+B|0),y^(F=B>>>0>>0?F+1|0:F),40),b=1+(d=f+(y=w)|0)|0,H=d,q=(d=C+t|0)>>>0>>0?b:H,H=i,i=Ig(t,0,C<<1&-2,1&(f<<1|C>>>31)),f=w+q|0,i=KI(H^(C=i+d|0),O^(f=C>>>0>>0?f+1|0:f),48),E[_+768>>2]=i,d=w,E[_+772>>2]=d,E[_+8>>2]=C,E[_+12>>2]=f,H=1+(C=F+d|0)|0,f=C,f=(C=B+i|0)>>>0>>0?H:f,B=Ig(i,0,B<<1&-2,1&(F<<1|B>>>31)),i=w+f|0,rA=_,eA=KI((C=B+C|0)^t,y^(B=C>>>0>>0?i+1|0:i),1),E[rA+384>>2]=eA,E[_+388>>2]=w,E[_+648>>2]=C,E[_+652>>2]=B,B=KI(r^U,J^v,1),i=1+(r=x+(U=w)|0)|0,C=r,i=(r=B+o|0)>>>0>>0?i:C,C=r,r=Ig(B,0,o<<1&-2,1&(x<<1|o>>>31)),i=w+i|0,i=KI((C=C+r|0)^k,gA^(t=C>>>0>>0?i+1|0:i),32),J=o=w,f=1+(r=z+V|0)|0,y=r,k=(r=Q+s|0)>>>0>>0?f:y,s=Ig(Q,0,s<<1&-2,1&(V<<1|s>>>31)),Q=w+k|0,y=1+(s=(Q=(r=s+r|0)>>>0>>0?Q+1|0:Q)+o|0)|0,o=s,o=(s=i+r|0)>>>0>>0?y:o,y=B,B=s,s=Ig(i,0,r<<1&-2,1&(Q<<1|r>>>31)),o=w+o|0,s=KI(y^(B=B+s|0),U^(o=B>>>0>>0?o+1|0:o),40),f=1+(k=t+(U=w)|0)|0,y=k,f=(k=C+s|0)>>>0>>0?f:y,C=(t=Ig(s,0,C<<1&-2,1&(t<<1|C>>>31)))+k|0,E[_+128>>2]=C,k=w+f|0,t=C>>>0>>0?k+1|0:k,E[_+132>>2]=t,C=KI(C^i,t^J,48),E[_+776>>2]=C,i=w,E[_+780>>2]=i,y=1+(i=i+o|0)|0,t=i,t=(i=C+B|0)>>>0>>0?y:t,B=(C=Ig(C,0,B<<1&-2,1&(o<<1|B>>>31)))+i|0,i=w+t|0,o=C=C>>>0>B>>>0?i+1|0:i,E[_+512>>2]=B,E[_+516>>2]=C,i=(C=KI(r^S,Q^$,1))+n|0,t=(J=w)+R|0,r=(Q=Ig(n<<1&-2,1&(R<<1|n>>>31),C,0))+i|0,i=w+(C>>>0>i>>>0?t+1|0:t)|0,i=KI(r^M,W^(t=Q>>>0>r>>>0?i+1|0:i),32),f=1+(Q=j+(n=w)|0)|0,y=Q,k=(Q=i+e|0)>>>0>>0?f:y,y=C,C=(e=Ig(i,0,e<<1&-2,1&(j<<1|e>>>31)))+Q|0,Q=w+k|0,e=KI(y^C,J^(Q=C>>>0>>0?Q+1|0:Q),40),f=1+(k=t+(J=w)|0)|0,y=k,f=(k=r+e|0)>>>0>>0?f:y,y=i,r=Ig(e,0,r<<1&-2,1&(t<<1|r>>>31)),t=w+f|0,r=KI(y^(i=r+k|0),n^(t=i>>>0>>0?t+1|0:t),48),f=1+(k=Q+(n=w)|0)|0,y=k,f=(k=C+r|0)>>>0>>0?f:y,C=(Q=Ig(r,0,C<<1&-2,1&(Q<<1|C>>>31)))+k|0,E[_+520>>2]=C,k=w+f|0,Q=C>>>0>>0?k+1|0:k,E[_+524>>2]=Q,E[_+896>>2]=r,E[_+900>>2]=n,E[_+136>>2]=i,E[_+140>>2]=t,rA=_,eA=KI(B^s,o^U,1),E[rA+392>>2]=eA,E[_+396>>2]=w,rA=_,eA=KI(C^e,Q^J,1),E[rA+256>>2]=eA,E[_+260>>2]=w,8!=(0|(N=N+1|0)););for(_=Sg(aA,g+2048|0,1024),r=0;i=E[(C=(N=r<<3)+_|0)>>2],s=E[(e=(B=g+3072|0)+N|0)>>2],e=E[C+4>>2]^E[e+4>>2],E[C>>2]=i^s,E[C+4>>2]=e,e=E[(C=(i=8|N)+_|0)>>2],s=E[(i=B+i|0)>>2],i=E[C+4>>2]^E[i+4>>2],E[C>>2]=e^s,E[C+4>>2]=i,e=E[(C=(i=16|N)+_|0)>>2],s=E[(i=B+i|0)>>2],i=E[C+4>>2]^E[i+4>>2],E[C>>2]=e^s,E[C+4>>2]=i,i=E[(N=(C=24|N)+_|0)>>2],B=E[(C=C+B|0)>>2],C=E[N+4>>2]^E[C+4>>2],E[N>>2]=B^i,E[N+4>>2]=C,128!=(0|(r=r+4|0)););}if(r=oA+1|0,P=P+1|0,!((N=E[A+20>>2])>>>0>(u=u+1|0)>>>0))break}}h=g+4096|0}function G(A,I,g){var C,B=0,Q=0,i=0,o=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,D=0,p=0,f=0,n=0,k=0,F=0,N=0,S=0,G=0,M=0,b=0,K=0,H=0,Y=0,d=0,J=0,U=0,l=0,m=0,u=0,x=0,R=0,v=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,V=0,Z=0;for(h=o=h-2048|0,Sg(o+1024|0,I,1024),I=0;Q=E[(_=(i=o+1024|0)+(B=I<<3)|0)>>2],a=E[(c=A+B|0)>>2],c=E[_+4>>2]^E[c+4>>2],E[_>>2]=Q^a,E[_+4>>2]=c,c=E[(_=(Q=8|B)+i|0)>>2],a=E[(Q=A+Q|0)>>2],Q=E[_+4>>2]^E[Q+4>>2],E[_>>2]=a^c,E[_+4>>2]=Q,c=E[(_=(Q=16|B)+i|0)>>2],a=E[(Q=A+Q|0)>>2],Q=E[_+4>>2]^E[Q+4>>2],E[_>>2]=a^c,E[_+4>>2]=Q,Q=E[(B=(_=24|B)+i|0)>>2],c=E[(_=A+_|0)>>2],_=E[B+4>>2]^E[_+4>>2],E[B>>2]=Q^c,E[B+4>>2]=_,128!=(0|(I=I+4|0)););for(C=Sg(o,i,1024),A=0,I=0;o=E[(B=(i=I<<3)+C|0)>>2],Q=E[(_=g+i|0)>>2],_=E[B+4>>2]^E[_+4>>2],E[B>>2]=Q^o,E[B+4>>2]=_,_=E[(B=(o=8|i)+C|0)>>2],Q=E[(o=g+o|0)>>2],o=E[B+4>>2]^E[o+4>>2],E[B>>2]=Q^_,E[B+4>>2]=o,_=E[(B=(o=16|i)+C|0)>>2],Q=E[(o=g+o|0)>>2],o=E[B+4>>2]^E[o+4>>2],E[B>>2]=Q^_,E[B+4>>2]=o,o=E[(i=(B=24|i)+C|0)>>2],_=E[(B=g+B|0)>>2],B=E[i+4>>2]^E[B+4>>2],E[i>>2]=o^_,E[i+4>>2]=B,128!=(0|(I=I+4|0)););for(;c=(Q=E[56+(i=(C+1024|0)+(A<<7)|0)>>2])+(B=E[i+24>>2])|0,I=(t=E[i+60>>2])+(o=E[i+28>>2])|0,_=B>>>0>c>>>0?I+1|0:I,o=Ig(B<<1&-2,1&(o<<1|B>>>31),Q,0),I=w+_|0,_=(B=o+c|0)>>>0>>0?I+1|0:I,e=(c=KI(E[i+120>>2]^B,_^E[i+124>>2],32))+(o=E[i+88>>2])|0,I=(y=w)+(a=E[i+92>>2])|0,r=o>>>0>e>>>0?I+1|0:I,a=Ig(o<<1&-2,1&(a<<1|o>>>31),c,0),I=w+r|0,x=KI(Q^(o=a+e|0),t^(s=o>>>0>>0?I+1|0:I),40),I=_+(z=w)|0,Q=(a=B+x|0)>>>0>>0?I+1|0:I,B=Ig(x,0,B<<1&-2,1&(_<<1|B>>>31)),I=w+Q|0,Y=KI(c^(F=B+a|0),y^(H=B>>>0>F>>>0?I+1|0:I),48),j=I=w,p=Y,e=I,a=(c=E[i+40>>2])+(B=E[i+8>>2])|0,I=(d=E[i+44>>2])+(_=E[i+12>>2])|0,Q=B>>>0>a>>>0?I+1|0:I,_=Ig(B<<1&-2,1&(_<<1|B>>>31),c,0),I=w+Q|0,Q=(B=_+a|0)>>>0<_>>>0?I+1|0:I,y=(a=KI(E[i+104>>2]^B,Q^E[i+108>>2],32))+(_=E[i+72>>2])|0,I=(f=w)+(r=E[i+76>>2])|0,t=_>>>0>y>>>0?I+1|0:I,r=Ig(_<<1&-2,1&(r<<1|_>>>31),a,0),I=w+t|0,r=KI(t=(_=r+y|0)^c,d^(c=_>>>0>>0?I+1|0:I),40),I=Q+(n=w)|0,t=(y=B+r|0)>>>0>>0?I+1|0:I,Q=Ig(r,0,B<<1&-2,1&(Q<<1|B>>>31)),I=w+t|0,R=KI((B=Q+y|0)^a,f^(y=B>>>0>>0?I+1|0:I),48),I=c+(v=w)|0,Q=(a=_+R|0)>>>0<_>>>0?I+1|0:I,c=Ig(R,0,_<<1&-2,1&(c<<1|_>>>31)),I=w+Q|0,M=KI((_=c+a|0)^r,n^(d=_>>>0>>0?I+1|0:I),1),L=I=w,k=M,t=I,f=(r=E[i+32>>2])+(Q=E[i>>2])|0,I=(J=E[i+36>>2])+(c=E[i+4>>2])|0,a=Q>>>0>f>>>0?I+1|0:I,c=Ig(Q<<1&-2,1&(c<<1|Q>>>31),r,0),I=w+a|0,a=(Q=c+f|0)>>>0>>0?I+1|0:I,D=(U=KI(E[i+96>>2]^Q,a^E[i+100>>2],32))+(c=E[(I=N=i- -64|0)>>2])|0,I=(q=w)+(f=E[I+4>>2])|0,n=c>>>0>D>>>0?I+1|0:I,f=Ig(c<<1&-2,1&(f<<1|c>>>31),U,0),I=w+n|0,J=KI((c=f+D|0)^r,J^(f=c>>>0>>0?I+1|0:I),40),I=a+(X=w)|0,r=(n=Q+J|0)>>>0>>0?I+1|0:I,a=Ig(J,0,Q<<1&-2,1&(a<<1|Q>>>31)),I=w+r|0,I=(n=(Q=a+n|0)>>>0>>0?I+1|0:I)+t|0,r=(a=Q+k|0)>>>0>>0?I+1|0:I,t=Ig(k,0,Q<<1&-2,1&(n<<1|Q>>>31)),I=w+r|0,l=KI((a=t+a|0)^p,(D=a>>>0>>0?I+1|0:I)^e,32),P=I=w,S=I,k=(p=E[i+48>>2])+(r=E[i+16>>2])|0,I=(m=E[i+52>>2])+(e=E[i+20>>2])|0,t=r>>>0>k>>>0?I+1|0:I,e=Ig(r<<1&-2,1&(e<<1|r>>>31),p,0),I=w+t|0,t=(r=e+k|0)>>>0>>0?I+1|0:I,G=(k=KI(E[i+112>>2]^r,t^E[i+116>>2],32))+(e=E[i+80>>2])|0,I=(u=w)+(b=E[i+84>>2])|0,K=e>>>0>G>>>0?I+1|0:I,b=Ig(e<<1&-2,1&(b<<1|e>>>31),k,0),I=w+K|0,b=KI(G=(e=b+G|0)^p,m^(p=e>>>0>>0?I+1|0:I),40),I=t+(m=w)|0,K=(G=r+b|0)>>>0>>0?I+1|0:I,t=Ig(b,0,r<<1&-2,1&(t<<1|r>>>31)),I=w+K|0,K=KI(G=(r=t+G|0)^k,u^(k=t>>>0>r>>>0?I+1|0:I),48),I=p+(u=w)|0,t=(G=e+K|0)>>>0>>0?I+1|0:I,p=Ig(K,0,e<<1&-2,1&(p<<1|e>>>31)),I=w+t|0,I=(p=(e=p+G|0)>>>0

>>0?I+1|0:I)+S|0,S=(t=e+l|0)>>>0>>0?I+1|0:I,G=Ig(l,0,e<<1&-2,1&(p<<1|e>>>31)),I=w+S|0,S=KI(S=(t=G+t|0)^M,L^(M=t>>>0>>0?I+1|0:I),40),I=D+(L=w)|0,G=(O=a+S|0)>>>0>>0?I+1|0:I,a=(D=Ig(S,0,a<<1&-2,1&(D<<1|a>>>31)))+O|0,I=w+G|0,E[i>>2]=a,I=a>>>0>>0?I+1|0:I,E[i+4>>2]=I,a=KI(a^l,I^P,48),E[i+120>>2]=a,I=w,E[i+124>>2]=I,I=I+M|0,D=(l=a+t|0)>>>0>>0?I+1|0:I,a=(t=Ig(a,0,t<<1&-2,1&(M<<1|t>>>31)))+l|0,I=w+D|0,E[i+80>>2]=a,I=a>>>0>>0?I+1|0:I,E[i+84>>2]=I,V=i,Z=KI(a^S,I^L,1),E[V+40>>2]=Z,E[i+44>>2]=w,I=s+j|0,a=(t=o+Y|0)>>>0>>0?I+1|0:I,o=Ig(Y,0,o<<1&-2,1&(s<<1|o>>>31)),I=w+a|0,a=I=o>>>0>(t=o+t|0)>>>0?I+1|0:I,o=I,e=KI(e^b,p^m,1),I=y+(p=w)|0,s=(D=B+e|0)>>>0>>0?I+1|0:I,B=(y=Ig(e,0,B<<1&-2,1&(y<<1|B>>>31)))+D|0,I=w+s|0,n=KI(Q^U,n^q,48),y=KI(n^B,(Q=B>>>0>>0?I+1|0:I)^(M=w),32),I=(Y=w)+o|0,s=y>>>0>(D=y+t|0)>>>0?I+1|0:I,o=(I=D)+(D=Ig(t<<1&-2,1&(o<<1|t>>>31),y,0))|0,I=w+s|0,s=KI(S=o^e,p^(e=o>>>0>>0?I+1|0:I),40),I=Q+(D=w)|0,p=(U=B+s|0)>>>0>>0?I+1|0:I,B=Ig(s,0,B<<1&-2,1&(Q<<1|B>>>31)),I=w+p|0,B=KI((Q=B+U|0)^y,Y^(I=B>>>0>Q>>>0?I+1|0:I),48),E[i+96>>2]=B,y=w,E[i+100>>2]=y,E[i+8>>2]=Q,E[i+12>>2]=I,I=e+y|0,Q=(y=B+o|0)>>>0>>0?I+1|0:I,o=Ig(B,0,o<<1&-2,1&(e<<1|o>>>31)),I=w+Q|0,V=i,Z=KI((B=o+y|0)^s,(I=B>>>0>>0?I+1|0:I)^D,1),E[V+48>>2]=Z,E[i+52>>2]=w,E[i+88>>2]=B,E[i+92>>2]=I,e=KI(t^x,a^z,1),I=k+(s=w)|0,o=(B=r+e|0)>>>0>>0?I+1|0:I,Q=Ig(e,0,r<<1&-2,1&(k<<1|r>>>31)),I=w+o|0,t=KI((B=Q+B|0)^R,v^(a=B>>>0>>0?I+1|0:I),32),y=I=w,Q=I,I=f+M|0,r=(o=c+n|0)>>>0>>0?I+1|0:I,c=Ig(n,0,c<<1&-2,1&(f<<1|c>>>31)),I=w+r|0,I=(c=(o=c+o|0)>>>0>>0?I+1|0:I)+Q|0,r=(Q=o+t|0)>>>0>>0?I+1|0:I,f=Ig(t,0,o<<1&-2,1&(c<<1|o>>>31)),I=w+r|0,e=KI((Q=f+Q|0)^e,s^(r=Q>>>0>>0?I+1|0:I),40),I=a+(f=w)|0,s=(n=B+e|0)>>>0>>0?I+1|0:I,B=(a=Ig(e,0,B<<1&-2,1&(a<<1|B>>>31)))+n|0,I=w+s|0,E[i+16>>2]=B,I=B>>>0>>0?I+1|0:I,E[i+20>>2]=I,B=KI(B^t,I^y,48),E[i+104>>2]=B,I=w,E[i+108>>2]=I,a=N,I=I+r|0,t=(s=B+Q|0)>>>0>>0?I+1|0:I,Q=Ig(B,0,Q<<1&-2,1&(r<<1|Q>>>31)),I=w+t|0,r=B=Q+s|0,t=I=B>>>0>>0?I+1|0:I,E[a>>2]=B,E[a+4>>2]=I,c=KI(o^J,c^X,1),I=(y=w)+H|0,o=(B=c+F|0)>>>0>>0?I+1|0:I,Q=Ig(F<<1&-2,1&(H<<1|F>>>31),c,0),I=w+o|0,a=KI((B=Q+B|0)^K,u^(Q=B>>>0>>0?I+1|0:I),32),I=d+(F=w)|0,s=(o=a+_|0)>>>0<_>>>0?I+1|0:I,_=Ig(a,0,_<<1&-2,1&(d<<1|_>>>31)),I=w+s|0,c=KI((o=_+o|0)^c,y^(_=o>>>0<_>>>0?I+1|0:I),40),I=Q+(H=w)|0,s=(y=B+c|0)>>>0>>0?I+1|0:I,Q=Ig(c,0,B<<1&-2,1&(Q<<1|B>>>31)),I=w+s|0,I=(B=Q+y|0)>>>0>>0?I+1|0:I,Q=B,B^=a,a=I,B=KI(B,F^I,48),I=_+(F=w)|0,s=(y=B+o|0)>>>0>>0?I+1|0:I,o=(_=Ig(B,0,o<<1&-2,1&(_<<1|o>>>31)))+y|0,I=w+s|0,E[i+72>>2]=o,I=o>>>0<_>>>0?I+1|0:I,E[i+76>>2]=I,E[i+112>>2]=B,E[i+116>>2]=F,E[i+24>>2]=Q,E[i+28>>2]=a,V=i,Z=KI(r^e,t^f,1),E[V+56>>2]=Z,E[i+60>>2]=w,V=i,Z=KI(o^c,I^H,1),E[V+32>>2]=Z,E[i+36>>2]=w,8!=(0|(A=A+1|0)););for(A=0;c=(Q=E[392+(i=(C+1024|0)+(A<<4)|0)>>2])+(B=E[i+136>>2])|0,I=(t=E[i+396>>2])+(o=E[i+140>>2])|0,_=B>>>0>c>>>0?I+1|0:I,o=Ig(B<<1&-2,1&(o<<1|B>>>31),Q,0),I=w+_|0,_=(B=o+c|0)>>>0>>0?I+1|0:I,e=(c=KI(E[i+904>>2]^B,_^E[i+908>>2],32))+(o=E[i+648>>2])|0,I=(y=w)+(a=E[i+652>>2])|0,r=o>>>0>e>>>0?I+1|0:I,a=Ig(o<<1&-2,1&(a<<1|o>>>31),c,0),I=w+r|0,x=KI(Q^(o=a+e|0),t^(s=o>>>0>>0?I+1|0:I),40),I=_+(G=w)|0,Q=(a=B+x|0)>>>0>>0?I+1|0:I,B=Ig(x,0,B<<1&-2,1&(_<<1|B>>>31)),I=w+Q|0,Y=KI(c^(F=B+a|0),y^(H=B>>>0>F>>>0?I+1|0:I),48),z=I=w,p=Y,e=I,a=(c=E[i+264>>2])+(B=E[i+8>>2])|0,I=(d=E[i+268>>2])+(_=E[i+12>>2])|0,Q=B>>>0>a>>>0?I+1|0:I,_=Ig(B<<1&-2,1&(_<<1|B>>>31),c,0),I=w+Q|0,Q=(B=_+a|0)>>>0<_>>>0?I+1|0:I,y=(a=KI(E[i+776>>2]^B,Q^E[i+780>>2],32))+(_=E[i+520>>2])|0,I=(f=w)+(r=E[i+524>>2])|0,t=_>>>0>y>>>0?I+1|0:I,r=Ig(_<<1&-2,1&(r<<1|_>>>31),a,0),I=w+t|0,r=KI(t=(_=r+y|0)^c,d^(c=_>>>0>>0?I+1|0:I),40),I=Q+(n=w)|0,t=(y=B+r|0)>>>0>>0?I+1|0:I,Q=Ig(r,0,B<<1&-2,1&(Q<<1|B>>>31)),I=w+t|0,R=KI((B=Q+y|0)^a,f^(y=B>>>0>>0?I+1|0:I),48),I=c+(j=w)|0,Q=(a=_+R|0)>>>0<_>>>0?I+1|0:I,c=Ig(R,0,_<<1&-2,1&(c<<1|_>>>31)),I=w+Q|0,M=KI((_=c+a|0)^r,n^(d=_>>>0>>0?I+1|0:I),1),v=I=w,k=M,t=I,f=(r=E[i+256>>2])+(Q=E[i>>2])|0,I=(J=E[i+260>>2])+(c=E[i+4>>2])|0,a=Q>>>0>f>>>0?I+1|0:I,c=Ig(Q<<1&-2,1&(c<<1|Q>>>31),r,0),I=w+a|0,a=(Q=c+f|0)>>>0>>0?I+1|0:I,D=(U=KI(E[i+768>>2]^Q,a^E[i+772>>2],32))+(c=E[i+512>>2])|0,I=(L=w)+(f=E[i+516>>2])|0,n=c>>>0>D>>>0?I+1|0:I,f=Ig(c<<1&-2,1&(f<<1|c>>>31),U,0),I=w+n|0,J=KI((c=f+D|0)^r,J^(f=c>>>0>>0?I+1|0:I),40),I=a+(q=w)|0,r=(n=Q+J|0)>>>0>>0?I+1|0:I,a=Ig(J,0,Q<<1&-2,1&(a<<1|Q>>>31)),I=w+r|0,I=(n=(Q=a+n|0)>>>0>>0?I+1|0:I)+t|0,r=(a=Q+k|0)>>>0>>0?I+1|0:I,t=Ig(k,0,Q<<1&-2,1&(n<<1|Q>>>31)),I=w+r|0,l=KI((a=t+a|0)^p,(D=a>>>0>>0?I+1|0:I)^e,32),X=I=w,S=I,k=(p=E[i+384>>2])+(r=E[i+128>>2])|0,I=(P=E[i+388>>2])+(e=E[i+132>>2])|0,t=r>>>0>k>>>0?I+1|0:I,e=Ig(r<<1&-2,1&(e<<1|r>>>31),p,0),I=w+t|0,t=(r=e+k|0)>>>0>>0?I+1|0:I,N=(k=KI(E[i+896>>2]^r,t^E[i+900>>2],32))+(e=E[i+640>>2])|0,I=(m=w)+(b=E[i+644>>2])|0,K=e>>>0>N>>>0?I+1|0:I,b=Ig(e<<1&-2,1&(b<<1|e>>>31),k,0),I=w+K|0,b=KI(N=(e=b+N|0)^p,P^(p=e>>>0>>0?I+1|0:I),40),I=t+(P=w)|0,K=(N=r+b|0)>>>0>>0?I+1|0:I,t=Ig(b,0,r<<1&-2,1&(t<<1|r>>>31)),I=w+K|0,K=KI(N=(r=t+N|0)^k,m^(k=t>>>0>r>>>0?I+1|0:I),48),I=p+(m=w)|0,t=(N=e+K|0)>>>0>>0?I+1|0:I,p=Ig(K,0,e<<1&-2,1&(p<<1|e>>>31)),I=w+t|0,I=(p=(e=p+N|0)>>>0

>>0?I+1|0:I)+S|0,S=(t=e+l|0)>>>0>>0?I+1|0:I,N=Ig(l,0,e<<1&-2,1&(p<<1|e>>>31)),I=w+S|0,S=KI(S=(t=N+t|0)^M,v^(M=t>>>0>>0?I+1|0:I),40),I=D+(v=w)|0,N=(u=a+S|0)>>>0>>0?I+1|0:I,a=(D=Ig(S,0,a<<1&-2,1&(D<<1|a>>>31)))+u|0,I=w+N|0,E[i>>2]=a,I=a>>>0>>0?I+1|0:I,E[i+4>>2]=I,a=KI(a^l,I^X,48),E[i+904>>2]=a,I=w,E[i+908>>2]=I,I=I+M|0,D=(l=a+t|0)>>>0>>0?I+1|0:I,a=(t=Ig(a,0,t<<1&-2,1&(M<<1|t>>>31)))+l|0,I=w+D|0,E[i+640>>2]=a,I=a>>>0>>0?I+1|0:I,E[i+644>>2]=I,V=i,Z=KI(a^S,I^v,1),E[V+264>>2]=Z,E[i+268>>2]=w,I=s+z|0,a=(t=o+Y|0)>>>0>>0?I+1|0:I,o=Ig(Y,0,o<<1&-2,1&(s<<1|o>>>31)),I=w+a|0,a=I=o>>>0>(t=o+t|0)>>>0?I+1|0:I,o=I,e=KI(e^b,p^P,1),I=y+(p=w)|0,s=(D=B+e|0)>>>0>>0?I+1|0:I,B=(y=Ig(e,0,B<<1&-2,1&(y<<1|B>>>31)))+D|0,I=w+s|0,n=KI(Q^U,n^L,48),y=KI(n^B,(Q=B>>>0>>0?I+1|0:I)^(M=w),32),I=(Y=w)+o|0,s=y>>>0>(D=y+t|0)>>>0?I+1|0:I,o=(I=D)+(D=Ig(t<<1&-2,1&(o<<1|t>>>31),y,0))|0,I=w+s|0,s=KI(N=o^e,p^(e=o>>>0>>0?I+1|0:I),40),I=Q+(D=w)|0,p=(U=B+s|0)>>>0>>0?I+1|0:I,B=Ig(s,0,B<<1&-2,1&(Q<<1|B>>>31)),I=w+p|0,B=KI((Q=B+U|0)^y,Y^(I=B>>>0>Q>>>0?I+1|0:I),48),E[i+768>>2]=B,y=w,E[i+772>>2]=y,E[i+8>>2]=Q,E[i+12>>2]=I,I=e+y|0,Q=(y=B+o|0)>>>0>>0?I+1|0:I,o=Ig(B,0,o<<1&-2,1&(e<<1|o>>>31)),I=w+Q|0,V=i,Z=KI((B=o+y|0)^s,(I=B>>>0>>0?I+1|0:I)^D,1),E[V+384>>2]=Z,E[i+388>>2]=w,E[i+648>>2]=B,E[i+652>>2]=I,e=KI(t^x,a^G,1),I=k+(s=w)|0,o=(B=r+e|0)>>>0>>0?I+1|0:I,Q=Ig(e,0,r<<1&-2,1&(k<<1|r>>>31)),I=w+o|0,t=KI((B=Q+B|0)^R,j^(a=B>>>0>>0?I+1|0:I),32),y=I=w,Q=I,I=f+M|0,r=(o=c+n|0)>>>0>>0?I+1|0:I,c=Ig(n,0,c<<1&-2,1&(f<<1|c>>>31)),I=w+r|0,I=(c=(o=c+o|0)>>>0>>0?I+1|0:I)+Q|0,r=(Q=o+t|0)>>>0>>0?I+1|0:I,f=Ig(t,0,o<<1&-2,1&(c<<1|o>>>31)),I=w+r|0,e=KI((Q=f+Q|0)^e,s^(r=Q>>>0>>0?I+1|0:I),40),I=a+(f=w)|0,s=(n=B+e|0)>>>0>>0?I+1|0:I,B=(a=Ig(e,0,B<<1&-2,1&(a<<1|B>>>31)))+n|0,I=w+s|0,E[i+128>>2]=B,I=B>>>0>>0?I+1|0:I,E[i+132>>2]=I,B=KI(B^t,I^y,48),E[i+776>>2]=B,I=w,E[i+780>>2]=I,I=I+r|0,a=(t=B+Q|0)>>>0>>0?I+1|0:I,Q=Ig(B,0,Q<<1&-2,1&(r<<1|Q>>>31)),I=w+a|0,r=B=Q+t|0,t=I=B>>>0>>0?I+1|0:I,E[i+512>>2]=B,E[i+516>>2]=I,c=KI(o^J,c^q,1),I=(y=w)+H|0,o=(B=c+F|0)>>>0>>0?I+1|0:I,Q=Ig(F<<1&-2,1&(H<<1|F>>>31),c,0),I=w+o|0,a=KI((B=Q+B|0)^K,m^(Q=B>>>0>>0?I+1|0:I),32),I=d+(F=w)|0,s=(o=a+_|0)>>>0<_>>>0?I+1|0:I,_=Ig(a,0,_<<1&-2,1&(d<<1|_>>>31)),I=w+s|0,c=KI((o=_+o|0)^c,y^(_=o>>>0<_>>>0?I+1|0:I),40),I=Q+(H=w)|0,s=(y=B+c|0)>>>0>>0?I+1|0:I,Q=Ig(c,0,B<<1&-2,1&(Q<<1|B>>>31)),I=w+s|0,I=(B=Q+y|0)>>>0>>0?I+1|0:I,Q=B,B^=a,a=I,B=KI(B,F^I,48),I=_+(F=w)|0,s=(y=B+o|0)>>>0>>0?I+1|0:I,o=(_=Ig(B,0,o<<1&-2,1&(_<<1|o>>>31)))+y|0,I=w+s|0,E[i+520>>2]=o,I=o>>>0<_>>>0?I+1|0:I,E[i+524>>2]=I,E[i+896>>2]=B,E[i+900>>2]=F,E[i+136>>2]=Q,E[i+140>>2]=a,V=i,Z=KI(r^e,t^f,1),E[V+392>>2]=Z,E[i+396>>2]=w,V=i,Z=KI(o^c,I^H,1),E[V+256>>2]=Z,E[i+260>>2]=w,8!=(0|(A=A+1|0)););for(I=Sg(g,C,1024),A=0;B=E[(i=(g=A<<3)+I|0)>>2],Q=E[(_=(o=a=C+1024|0)+g|0)>>2],_=E[i+4>>2]^E[_+4>>2],E[i>>2]=B^Q,E[i+4>>2]=_,_=E[(i=(B=8|g)+I|0)>>2],o=E[(B=B+o|0)>>2],B=E[i+4>>2]^E[B+4>>2],E[i>>2]=o^_,E[i+4>>2]=B,o=E[(i=(B=16|g)+I|0)>>2],_=E[(B=B+a|0)>>2],B=E[i+4>>2]^E[B+4>>2],E[i>>2]=o^_,E[i+4>>2]=B,B=E[(g=(i=24|g)+I|0)>>2],o=E[(i=i+a|0)>>2],i=E[g+4>>2]^E[i+4>>2],E[g>>2]=B^o,E[g+4>>2]=i,128!=(0|(A=A+4|0)););h=C+2048|0}function M(A,I,g){var C,B,Q,i,o,_,c,t,r,e,y,s,D,p,w=0,f=0,n=0,k=0,F=0,N=0,S=0,G=0,M=0,b=0,K=0;for(h=C=h-800|0,k=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,N=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,G=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,M=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,f=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,b=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,K=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,Q=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,i=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,o=a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24,_=a[A+16|0]|a[A+17|0]<<8|a[A+18|0]<<16|a[A+19|0]<<24,c=a[A+20|0]|a[A+21|0]<<8|a[A+22|0]<<16|a[A+23|0]<<24,t=a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,r=a[A+28|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24,n=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,I=g- -64|0,e=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,E[I>>2]=33620224^e,E[g+56>>2]=1496785429,E[g+60>>2]=1652156816,E[(A=g+48|0)>>2]=33620224,E[A+4>>2]=218629379,E[g+40>>2]=1110511904,E[g+44>>2]=-584534669,E[(B=g+32|0)>>2]=1427652059,E[B+4>>2]=-248528275,y=n^e,E[g>>2]=y,E[g+92>>2]=-584534669^r,E[g+88>>2]=1110511904^t,E[g+84>>2]=-248528275^c,E[(n=g+80|0)>>2]=1427652059^_,E[g+76>>2]=1652156816^o,E[g+72>>2]=1496785429^i,E[g+68>>2]=218629379^Q,K^=r,E[g+28>>2]=K,b^=t,E[g+24>>2]=b,s=f^c,E[g+20>>2]=s,M^=_,E[(f=g+16|0)>>2]=M,G^=o,E[g+12>>2]=G,D=N^i,E[g+8>>2]=D,p=k^Q,E[g+4>>2]=p,N=0;k=E[n+12>>2],E[C+792>>2]=E[n+8>>2],E[C+796>>2]=k,k=E[n+4>>2],E[C+784>>2]=E[n>>2],E[C+788>>2]=k,k=E[I+12>>2],E[C+760>>2]=E[I+8>>2],E[C+764>>2]=k,k=E[I+4>>2],E[C+752>>2]=E[I>>2],E[C+756>>2]=k,k=E[n+12>>2],E[C+744>>2]=E[n+8>>2],E[C+748>>2]=k,k=E[n+4>>2],E[C+736>>2]=E[n>>2],E[C+740>>2]=k,$A(k=C+768|0,C+752|0,C+736|0),w=E[C+780>>2],E[n+8>>2]=E[C+776>>2],E[n+12>>2]=w,w=E[C+772>>2],E[n>>2]=E[C+768>>2],E[n+4>>2]=w,w=E[A+12>>2],E[C+728>>2]=E[A+8>>2],E[C+732>>2]=w,w=E[A+4>>2],E[C+720>>2]=E[A>>2],E[C+724>>2]=w,w=E[I+12>>2],E[C+712>>2]=E[I+8>>2],E[C+716>>2]=w,w=E[I+4>>2],E[C+704>>2]=E[I>>2],E[C+708>>2]=w,$A(k,C+720|0,C+704|0),w=E[C+780>>2],E[I+8>>2]=E[C+776>>2],E[I+12>>2]=w,w=E[C+772>>2],E[I>>2]=E[C+768>>2],E[I+4>>2]=w,w=E[B+12>>2],E[C+696>>2]=E[B+8>>2],E[C+700>>2]=w,w=E[B+4>>2],E[C+688>>2]=E[B>>2],E[C+692>>2]=w,w=E[A+12>>2],E[C+680>>2]=E[A+8>>2],E[C+684>>2]=w,w=E[A+4>>2],E[C+672>>2]=E[A>>2],E[C+676>>2]=w,$A(k,C+688|0,C+672|0),w=E[C+780>>2],E[A+8>>2]=E[C+776>>2],E[A+12>>2]=w,w=E[C+772>>2],E[A>>2]=E[C+768>>2],E[A+4>>2]=w,w=E[f+12>>2],E[C+664>>2]=E[f+8>>2],E[C+668>>2]=w,w=E[f+4>>2],E[C+656>>2]=E[f>>2],E[C+660>>2]=w,w=E[B+12>>2],E[C+648>>2]=E[B+8>>2],E[C+652>>2]=w,w=E[B+4>>2],E[C+640>>2]=E[B>>2],E[C+644>>2]=w,$A(k,C+656|0,C+640|0),w=E[C+780>>2],E[B+8>>2]=E[C+776>>2],E[B+12>>2]=w,w=E[C+772>>2],E[B>>2]=E[C+768>>2],E[B+4>>2]=w,w=E[g+12>>2],E[C+632>>2]=E[g+8>>2],E[C+636>>2]=w,w=E[g+4>>2],E[C+624>>2]=E[g>>2],E[C+628>>2]=w,w=E[f+12>>2],E[C+616>>2]=E[f+8>>2],E[C+620>>2]=w,w=E[f+4>>2],E[C+608>>2]=E[f>>2],E[C+612>>2]=w,$A(k,C+624|0,C+608|0),w=E[C+780>>2],E[f+8>>2]=E[C+776>>2],E[f+12>>2]=w,w=E[C+772>>2],E[f>>2]=E[C+768>>2],E[f+4>>2]=w,w=E[C+796>>2],E[C+600>>2]=E[C+792>>2],E[C+604>>2]=w,w=E[C+788>>2],E[C+592>>2]=E[C+784>>2],E[C+596>>2]=w,w=E[g+12>>2],E[C+584>>2]=E[g+8>>2],E[C+588>>2]=w,w=E[g+4>>2],E[C+576>>2]=E[g>>2],E[C+580>>2]=w,$A(k,C+592|0,C+576|0),w=E[C+768>>2],F=E[C+772>>2],S=E[C+776>>2],E[g+12>>2]=E[C+780>>2]^o,E[g+8>>2]=S^i,E[g+4>>2]=F^Q,E[g>>2]=w^e,w=E[n+12>>2],E[C+792>>2]=E[n+8>>2],E[C+796>>2]=w,w=E[n+4>>2],E[C+784>>2]=E[n>>2],E[C+788>>2]=w,w=E[I+12>>2],E[C+568>>2]=E[I+8>>2],E[C+572>>2]=w,w=E[I+4>>2],E[C+560>>2]=E[I>>2],E[C+564>>2]=w,w=E[n+12>>2],E[C+552>>2]=E[n+8>>2],E[C+556>>2]=w,w=E[n+4>>2],E[C+544>>2]=E[n>>2],E[C+548>>2]=w,$A(k,C+560|0,C+544|0),w=E[C+780>>2],E[n+8>>2]=E[C+776>>2],E[n+12>>2]=w,w=E[C+772>>2],E[n>>2]=E[C+768>>2],E[n+4>>2]=w,w=E[A+12>>2],E[C+536>>2]=E[A+8>>2],E[C+540>>2]=w,w=E[A+4>>2],E[C+528>>2]=E[A>>2],E[C+532>>2]=w,w=E[I+12>>2],E[C+520>>2]=E[I+8>>2],E[C+524>>2]=w,w=E[I+4>>2],E[C+512>>2]=E[I>>2],E[C+516>>2]=w,$A(k,C+528|0,C+512|0),w=E[C+780>>2],E[I+8>>2]=E[C+776>>2],E[I+12>>2]=w,w=E[C+772>>2],E[I>>2]=E[C+768>>2],E[I+4>>2]=w,w=E[B+12>>2],E[C+504>>2]=E[B+8>>2],E[C+508>>2]=w,w=E[B+4>>2],E[C+496>>2]=E[B>>2],E[C+500>>2]=w,w=E[A+12>>2],E[C+488>>2]=E[A+8>>2],E[C+492>>2]=w,w=E[A+4>>2],E[C+480>>2]=E[A>>2],E[C+484>>2]=w,$A(k,C+496|0,C+480|0),w=E[C+780>>2],E[A+8>>2]=E[C+776>>2],E[A+12>>2]=w,w=E[C+772>>2],E[A>>2]=E[C+768>>2],E[A+4>>2]=w,w=E[f+12>>2],E[C+472>>2]=E[f+8>>2],E[C+476>>2]=w,w=E[f+4>>2],E[C+464>>2]=E[f>>2],E[C+468>>2]=w,w=E[B+12>>2],E[C+456>>2]=E[B+8>>2],E[C+460>>2]=w,w=E[B+4>>2],E[C+448>>2]=E[B>>2],E[C+452>>2]=w,$A(k,C+464|0,C+448|0),w=E[C+780>>2],E[B+8>>2]=E[C+776>>2],E[B+12>>2]=w,w=E[C+772>>2],E[B>>2]=E[C+768>>2],E[B+4>>2]=w,w=E[g+12>>2],E[C+440>>2]=E[g+8>>2],E[C+444>>2]=w,w=E[g+4>>2],E[C+432>>2]=E[g>>2],E[C+436>>2]=w,w=E[f+12>>2],E[C+424>>2]=E[f+8>>2],E[C+428>>2]=w,w=E[f+4>>2],E[C+416>>2]=E[f>>2],E[C+420>>2]=w,$A(k,C+432|0,C+416|0),w=E[C+780>>2],E[f+8>>2]=E[C+776>>2],E[f+12>>2]=w,w=E[C+772>>2],E[f>>2]=E[C+768>>2],E[f+4>>2]=w,w=E[C+796>>2],E[C+408>>2]=E[C+792>>2],E[C+412>>2]=w,w=E[C+788>>2],E[C+400>>2]=E[C+784>>2],E[C+404>>2]=w,w=E[g+12>>2],E[C+392>>2]=E[g+8>>2],E[C+396>>2]=w,w=E[g+4>>2],E[C+384>>2]=E[g>>2],E[C+388>>2]=w,$A(k,C+400|0,C+384|0),w=E[C+768>>2],F=E[C+772>>2],S=E[C+776>>2],E[g+12>>2]=E[C+780>>2]^r,E[g+8>>2]=S^t,E[g+4>>2]=F^c,E[g>>2]=w^_,w=E[n+12>>2],E[C+792>>2]=E[n+8>>2],E[C+796>>2]=w,w=E[n+4>>2],E[C+784>>2]=E[n>>2],E[C+788>>2]=w,w=E[I+12>>2],E[C+376>>2]=E[I+8>>2],E[C+380>>2]=w,w=E[I+4>>2],E[C+368>>2]=E[I>>2],E[C+372>>2]=w,w=E[n+12>>2],E[C+360>>2]=E[n+8>>2],E[C+364>>2]=w,w=E[n+4>>2],E[C+352>>2]=E[n>>2],E[C+356>>2]=w,$A(k,C+368|0,C+352|0),w=E[C+780>>2],E[n+8>>2]=E[C+776>>2],E[n+12>>2]=w,w=E[C+772>>2],E[n>>2]=E[C+768>>2],E[n+4>>2]=w,w=E[A+12>>2],E[C+344>>2]=E[A+8>>2],E[C+348>>2]=w,w=E[A+4>>2],E[C+336>>2]=E[A>>2],E[C+340>>2]=w,w=E[I+12>>2],E[C+328>>2]=E[I+8>>2],E[C+332>>2]=w,w=E[I+4>>2],E[C+320>>2]=E[I>>2],E[C+324>>2]=w,$A(k,C+336|0,C+320|0),w=E[C+780>>2],E[I+8>>2]=E[C+776>>2],E[I+12>>2]=w,w=E[C+772>>2],E[I>>2]=E[C+768>>2],E[I+4>>2]=w,w=E[B+12>>2],E[C+312>>2]=E[B+8>>2],E[C+316>>2]=w,w=E[B+4>>2],E[C+304>>2]=E[B>>2],E[C+308>>2]=w,w=E[A+12>>2],E[C+296>>2]=E[A+8>>2],E[C+300>>2]=w,w=E[A+4>>2],E[C+288>>2]=E[A>>2],E[C+292>>2]=w,$A(k,C+304|0,C+288|0),w=E[C+780>>2],E[A+8>>2]=E[C+776>>2],E[A+12>>2]=w,w=E[C+772>>2],E[A>>2]=E[C+768>>2],E[A+4>>2]=w,w=E[f+12>>2],E[C+280>>2]=E[f+8>>2],E[C+284>>2]=w,w=E[f+4>>2],E[C+272>>2]=E[f>>2],E[C+276>>2]=w,w=E[B+12>>2],E[C+264>>2]=E[B+8>>2],E[C+268>>2]=w,w=E[B+4>>2],E[C+256>>2]=E[B>>2],E[C+260>>2]=w,$A(k,C+272|0,C+256|0),w=E[C+780>>2],E[B+8>>2]=E[C+776>>2],E[B+12>>2]=w,w=E[C+772>>2],E[B>>2]=E[C+768>>2],E[B+4>>2]=w,w=E[g+12>>2],E[C+248>>2]=E[g+8>>2],E[C+252>>2]=w,w=E[g+4>>2],E[C+240>>2]=E[g>>2],E[C+244>>2]=w,w=E[f+12>>2],E[C+232>>2]=E[f+8>>2],E[C+236>>2]=w,w=E[f+4>>2],E[C+224>>2]=E[f>>2],E[C+228>>2]=w,$A(k,C+240|0,C+224|0),w=E[C+780>>2],E[f+8>>2]=E[C+776>>2],E[f+12>>2]=w,w=E[C+772>>2],E[f>>2]=E[C+768>>2],E[f+4>>2]=w,w=E[C+796>>2],E[C+216>>2]=E[C+792>>2],E[C+220>>2]=w,w=E[C+788>>2],E[C+208>>2]=E[C+784>>2],E[C+212>>2]=w,w=E[g+12>>2],E[C+200>>2]=E[g+8>>2],E[C+204>>2]=w,w=E[g+4>>2],E[C+192>>2]=E[g>>2],E[C+196>>2]=w,$A(k,C+208|0,C+192|0),w=E[C+768>>2],F=E[C+772>>2],S=E[C+776>>2],E[g+12>>2]=G^E[C+780>>2],E[g+8>>2]=S^D,E[g+4>>2]=F^p,E[g>>2]=w^y,w=E[n+12>>2],E[C+792>>2]=E[n+8>>2],E[C+796>>2]=w,w=E[n+4>>2],E[C+784>>2]=E[n>>2],E[C+788>>2]=w,w=E[I+12>>2],E[C+184>>2]=E[I+8>>2],E[C+188>>2]=w,w=E[I+4>>2],E[C+176>>2]=E[I>>2],E[C+180>>2]=w,w=E[n+12>>2],E[C+168>>2]=E[n+8>>2],E[C+172>>2]=w,w=E[n+4>>2],E[C+160>>2]=E[n>>2],E[C+164>>2]=w,$A(k,C+176|0,C+160|0),w=E[C+780>>2],E[n+8>>2]=E[C+776>>2],E[n+12>>2]=w,w=E[C+772>>2],E[n>>2]=E[C+768>>2],E[n+4>>2]=w,w=E[A+12>>2],E[C+152>>2]=E[A+8>>2],E[C+156>>2]=w,w=E[A+4>>2],E[C+144>>2]=E[A>>2],E[C+148>>2]=w,w=E[I+12>>2],E[C+136>>2]=E[I+8>>2],E[C+140>>2]=w,w=E[I+4>>2],E[C+128>>2]=E[I>>2],E[C+132>>2]=w,$A(k,C+144|0,C+128|0),w=E[C+780>>2],E[I+8>>2]=E[C+776>>2],E[I+12>>2]=w,w=E[C+772>>2],E[I>>2]=E[C+768>>2],E[I+4>>2]=w,w=E[B+12>>2],E[C+120>>2]=E[B+8>>2],E[C+124>>2]=w,w=E[B+4>>2],E[C+112>>2]=E[B>>2],E[C+116>>2]=w,w=E[A+12>>2],E[C+104>>2]=E[A+8>>2],E[C+108>>2]=w,w=E[A+4>>2],E[C+96>>2]=E[A>>2],E[C+100>>2]=w,$A(k,C+112|0,C+96|0),w=E[C+780>>2],E[A+8>>2]=E[C+776>>2],E[A+12>>2]=w,w=E[C+772>>2],E[A>>2]=E[C+768>>2],E[A+4>>2]=w,w=E[f+12>>2],E[C+88>>2]=E[f+8>>2],E[C+92>>2]=w,w=E[f+4>>2],E[C+80>>2]=E[f>>2],E[C+84>>2]=w,w=E[B+12>>2],E[C+72>>2]=E[B+8>>2],E[C+76>>2]=w,w=E[B+4>>2],E[C+64>>2]=E[B>>2],E[C+68>>2]=w,$A(k,C+80|0,C- -64|0),w=E[C+780>>2],E[B+8>>2]=E[C+776>>2],E[B+12>>2]=w,w=E[C+772>>2],E[B>>2]=E[C+768>>2],E[B+4>>2]=w,w=E[g+12>>2],E[C+56>>2]=E[g+8>>2],E[C+60>>2]=w,w=E[g+4>>2],E[C+48>>2]=E[g>>2],E[C+52>>2]=w,w=E[f+12>>2],E[C+40>>2]=E[f+8>>2],E[C+44>>2]=w,w=E[f+4>>2],E[C+32>>2]=E[f>>2],E[C+36>>2]=w,$A(k,C+48|0,C+32|0),w=E[C+780>>2],E[f+8>>2]=E[C+776>>2],E[f+12>>2]=w,w=E[C+772>>2],E[f>>2]=E[C+768>>2],E[f+4>>2]=w,w=E[C+796>>2],E[C+24>>2]=E[C+792>>2],E[C+28>>2]=w,w=E[C+788>>2],E[C+16>>2]=E[C+784>>2],E[C+20>>2]=w,w=E[g+12>>2],E[C+8>>2]=E[g+8>>2],E[C+12>>2]=w,w=E[g+4>>2],E[C>>2]=E[g>>2],E[C+4>>2]=w,$A(k,C+16|0,C),k=E[C+768>>2],w=E[C+772>>2],F=E[C+776>>2],E[g+12>>2]=K^E[C+780>>2],E[g+8>>2]=F^b,E[g+4>>2]=w^s,E[g>>2]=k^M,4!=(0|(N=N+1|0)););h=C+800|0}function b(A,I){var g,C,B,i,_,c,t,r,e,s,D,p,f,n,k,F,N,S,G,M,b,K,H=0,d=0,J=0,U=0,l=0,m=0,u=0,x=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,V=0,Z=0,W=0;for(h=g=h-48|0,J=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,d=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,o[A+24|0]=d,o[A+25|0]=d>>>8,o[A+26|0]=d>>>16,o[A+27|0]=d>>>24,o[A+28|0]=J,o[A+29|0]=J>>>8,o[A+30|0]=J>>>16,o[A+31|0]=J>>>24,J=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,d=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,o[0|A]=d,o[A+1|0]=d>>>8,o[A+2|0]=d>>>16,o[A+3|0]=d>>>24,o[A+4|0]=J,o[A+5|0]=J>>>8,o[A+6|0]=J>>>16,o[A+7|0]=J>>>24,J=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,d=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,o[A+16|0]=d,o[A+17|0]=d>>>8,o[A+18|0]=d>>>16,o[A+19|0]=d>>>24,o[A+20|0]=J,o[A+21|0]=J>>>8,o[A+22|0]=J>>>16,o[A+23|0]=J>>>24,d=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,I=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,o[A+8|0]=I,o[A+9|0]=I>>>8,o[A+10|0]=I>>>16,o[A+11|0]=I>>>24,o[A+12|0]=d,o[A+13|0]=d>>>8,o[A+14|0]=d>>>16,o[A+15|0]=d>>>24,I=a[A+31|0],o[A+31|0]=127&I,pA(g,A),s=128&I,h=I=h-960|0,R(d=I+304|0,g),E[I+304>>2]=E[I+304>>2]+1,vA(d,d),J=Ig(d=E[I+340>>2],d>>31,486662,0),d=w,u=(q=J+16777216|0)>>>0<16777216?d+1|0:d,L=J-(-33554432&q)|0,H=Ig(d=E[I+336>>2],d>>31,486662,0),J=w,U=Ig(d=E[I+332>>2],d>>31,486662,0),d=w,x=H,H=(H=(d=(m=U+16777216|0)>>>0<16777216?d+1|0:d)>>25)+J|0,d=(d=(33554431&d)<<7|m>>>25)>>>0>(l=x+d|0)>>>0?H+1|0:H,C=((67108863&(d=(J=l+33554432|0)>>>0<33554432?d+1|0:d))<<6|J>>>26)+L|0,E[I+292>>2]=0-C,Z=l-(-67108864&J)|0,E[I+288>>2]=0-Z,L=U-(-33554432&m)|0,J=Ig(d=E[I+328>>2],d>>31,486662,0),d=w,m=Ig(H=E[I+324>>2],H>>31,486662,0),H=w,x=J,d=d+(J=(H=(l=m+16777216|0)>>>0<16777216?H+1|0:H)>>25)|0,d=(H=x+(U=(33554431&H)<<7|l>>>25)|0)>>>0>>0?d+1|0:d,B=((67108863&(d=(J=H+33554432|0)>>>0<33554432?d+1|0:d))<<6|J>>>26)+L|0,E[I+284>>2]=0-B,i=H-(-67108864&J)|0,E[I+280>>2]=0-i,L=m-(-33554432&l)|0,H=Ig(d=E[I+320>>2],d>>31,486662,0),d=w,m=Ig(J=E[I+316>>2],J>>31,486662,0),J=w,x=H,d=(H=(J=(l=m+16777216|0)>>>0<16777216?J+1|0:J)>>25)+d|0,H=d=(J=x+(U=(33554431&J)<<7|l>>>25)|0)>>>0>>0?d+1|0:d,_=((67108863&(H=(U=J+33554432|0)>>>0<33554432?H+1|0:H))<<6|U>>>26)+L|0,E[I+276>>2]=0-_,c=J-(-67108864&U)|0,E[I+272>>2]=0-c,x=m-(-33554432&l)|0,d=Ig(d=E[I+312>>2],d>>31,486662,0),L=w,U=Ig(J=E[I+308>>2],J>>31,486662,0),H=w,J=(33554431&(H=(m=U+16777216|0)>>>0<16777216?H+1|0:H))<<7|m>>>25,H=(H>>25)+L|0,J=J>>>0>(l=J+d|0)>>>0?H+1|0:H,t=((67108863&(J=(d=l+33554432|0)>>>0<33554432?J+1|0:J))<<6|d>>>26)+x|0,E[I+268>>2]=0-t,r=l-(-67108864&d)|0,E[I+264>>2]=0-r,l=U-(-33554432&m)|0,J=Ig((33554431&u)<<7|q>>>25,u>>25,19,0),d=w,U=J,J=Ig(H=E[I+304>>2],H>>31,486662,0),d=w+d|0,J=(H=U+J|0)>>>0>>0?d+1|0:d,e=((67108863&(J=(d=H+33554432|0)>>>0<33554432?J+1|0:J))<<6|d>>>26)+l|0,E[I+260>>2]=0-e,P=H-(-67108864&d)|0,E[I+256>>2]=0-P,v(J=I+208|0,d=I+256|0),Y(I+160|0,d,J),D=E[I+196>>2],p=E[I+160>>2],z=E[I+208>>2],f=E[I+164>>2],n=E[I+168>>2],j=E[I+212>>2],X=E[I+216>>2],k=E[I+172>>2],F=E[I+176>>2],O=E[I+220>>2],V=E[I+224>>2],N=E[I+180>>2],S=E[I+184>>2],x=E[I+228>>2],L=E[I+232>>2],G=E[I+188>>2],M=E[I+192>>2],J=Ig(d=E[I+244>>2],d>>31,486662,0),d=w,u=(q=J+16777216|0)>>>0<16777216?d+1|0:d,b=J-(-33554432&q)|0,d=Ig(d=E[I+240>>2],d>>31,486662,0),K=w,U=Ig(J=E[I+236>>2],J>>31,486662,0),H=w,J=d,d=(33554431&(H=(m=U+16777216|0)>>>0<16777216?H+1|0:H))<<7|m>>>25,H=(H>>25)+K|0,d=d>>>0>(l=J+d|0)>>>0?H+1|0:H,H=((67108863&(d=(J=l+33554432|0)>>>0<33554432?d+1|0:d))<<6|J>>>26)+b|0,E[I+244>>2]=H,E[I+388>>2]=H+(D-C|0),d=l-(-67108864&J)|0,E[I+240>>2]=d,E[I+384>>2]=d+(M-Z|0),Z=U-(-33554432&m)|0,d=Ig(L,L>>31,486662,0),U=w,m=Ig(x,x>>31,486662,0),J=w,x=d,d=(d=(J=(l=m+16777216|0)>>>0<16777216?J+1|0:J)>>25)+U|0,H=d=(H=(33554431&J)<<7|l>>>25)>>>0>(J=x+H|0)>>>0?d+1|0:d,U=((67108863&(H=(U=J+33554432|0)>>>0<33554432?H+1|0:H))<<6|(d=U)>>>26)+Z|0,E[I+236>>2]=U,E[I+380>>2]=U+(G-B|0),d=J-(-67108864&d)|0,E[I+232>>2]=d,E[I+376>>2]=d+(S-i|0),L=m-(-33554432&l)|0,H=Ig(V,V>>31,486662,0),J=w,U=Ig(O,O>>31,486662,0),d=w,x=H,H=(H=(d=(m=U+16777216|0)>>>0<16777216?d+1|0:d)>>25)+J|0,J=(d=(33554431&d)<<7|m>>>25)>>>0>(l=x+d|0)>>>0?H+1|0:H,H=((67108863&(J=(d=l+33554432|0)>>>0<33554432?J+1|0:J))<<6|d>>>26)+L|0,E[I+228>>2]=H,E[I+372>>2]=H+(N-_|0),d=l-(-67108864&d)|0,E[I+224>>2]=d,E[I+368>>2]=d+(F-c|0),L=U-(-33554432&m)|0,d=Ig(X,X>>31,486662,0),J=w,m=Ig(j,j>>31,486662,0),H=w,x=d,J=(d=(H=(l=m+16777216|0)>>>0<16777216?H+1|0:H)>>25)+J|0,d=J=(H=x+(U=(33554431&H)<<7|l>>>25)|0)>>>0>>0?J+1|0:J,U=((67108863&(d=(U=H+33554432|0)>>>0<33554432?d+1|0:d))<<6|(J=U)>>>26)+L|0,E[I+220>>2]=U,E[I+364>>2]=U+(k-t|0),d=H-(-67108864&J)|0,E[I+216>>2]=d,E[I+360>>2]=d+(n-r|0),l=m-(-33554432&l)|0,J=Ig((33554431&u)<<7|q>>>25,u>>25,19,0),d=w,H=J,J=Ig(z,z>>31,486662,0),d=w+d|0,d=(H=H+J|0)>>>0>>0?d+1|0:d,u=((67108863&(d=(J=H+33554432|0)>>>0<33554432?d+1|0:d))<<6|J>>>26)+l|0,E[I+212>>2]=u,E[I+356>>2]=u+(f-e|0),d=H-(-67108864&J)|0,E[I+208>>2]=d,E[I+352>>2]=d+(p-P|0),Y(d=I+624|0,J=I+352|0,J),Y(I,J,d),v(J=I+784|0,I),v(J,J),Y(d=I+912|0,I,J),v(J=I+576|0,d),v(J,J),v(J,J),v(J,J),Y(H=I+528|0,d,J),v(H,H),v(H,H),Y(H,H,I),d=E[I+564>>2],E[I+512>>2]=E[I+560>>2],E[I+516>>2]=d,d=E[I+556>>2],E[I+504>>2]=E[I+552>>2],E[I+508>>2]=d,d=E[I+548>>2],E[I+496>>2]=E[I+544>>2],E[I+500>>2]=d,d=E[I+540>>2],E[I+488>>2]=E[I+536>>2],E[I+492>>2]=d,d=E[I+532>>2],E[I+480>>2]=E[I+528>>2],E[I+484>>2]=d,v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),Y(H,H,d=I+480|0),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),Y(H,H,d),d=E[I+564>>2],E[I+464>>2]=E[I+560>>2],E[I+468>>2]=d,d=E[I+556>>2],E[I+456>>2]=E[I+552>>2],E[I+460>>2]=d,d=E[I+548>>2],E[I+448>>2]=E[I+544>>2],E[I+452>>2]=d,d=E[I+540>>2],E[I+440>>2]=E[I+536>>2],E[I+444>>2]=d,d=E[I+532>>2],E[I+432>>2]=E[I+528>>2],E[I+436>>2]=d,v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),Y(H,H,J=I+432|0),d=E[I+564>>2],E[I+464>>2]=E[I+560>>2],E[I+468>>2]=d,d=E[I+556>>2],E[I+456>>2]=E[I+552>>2],E[I+460>>2]=d,d=E[I+548>>2],E[I+448>>2]=E[I+544>>2],E[I+452>>2]=d,d=E[I+540>>2],E[I+440>>2]=E[I+536>>2],E[I+444>>2]=d,d=E[I+532>>2],E[I+432>>2]=E[I+528>>2],E[I+436>>2]=d,v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),v(H,H),Y(H,H,J),d=E[I+564>>2],E[I+464>>2]=E[I+560>>2],E[I+468>>2]=d,d=E[I+556>>2],E[I+456>>2]=E[I+552>>2],E[I+460>>2]=d,d=E[I+548>>2],E[I+448>>2]=E[I+544>>2],E[I+452>>2]=d,d=E[I+540>>2],E[I+440>>2]=E[I+536>>2],E[I+444>>2]=d,d=E[I+532>>2],E[I+432>>2]=E[I+528>>2],E[I+436>>2]=d;v(d=I+528|0,d),120!=(0|(W=W+1|0)););Y(d,d,I+432|0),v(d,d),v(d,d),v(d,d),v(d,d),v(d,d),v(d,d),v(d,d),v(d,d),v(d,d),v(d,d),Y(d,d,I+480|0),v(d,d),v(d,d),v(d,d),Y(d,d,I),v(d,d),BI(I+400|0,d),z=E[I+256>>2],j=E[I+260>>2],X=E[I+264>>2],O=E[I+268>>2],V=E[I+272>>2],l=E[I+276>>2],u=E[I+280>>2],H=E[I+284>>2],J=E[I+288>>2],x=(P=0-(1&o[I+401|0])|0)&(0-(d=E[I+292>>2])^d)^d,E[I+660>>2]=x,L=J^P&(J^0-J),E[I+656>>2]=L,q=H^P&(H^0-H),E[I+652>>2]=q,U=u^P&(u^0-u),E[I+648>>2]=U,m=l^P&(l^0-l),E[I+644>>2]=m,l=V^P&(V^0-V),E[I+640>>2]=l,u=O^P&(O^0-O),E[I+636>>2]=u,H=X^P&(X^0-X),E[I+632>>2]=H,J=j^P&(j^0-j),E[I+628>>2]=J,d=(z^P&(z^0-z))-(486662&P)|0,E[I+624>>2]=d+1,E[I+820>>2]=x,E[I+816>>2]=L,E[I+812>>2]=q,E[I+808>>2]=U,E[I+804>>2]=m,E[I+800>>2]=l,E[I+796>>2]=u,E[I+792>>2]=H,E[I+788>>2]=J,E[I+784>>2]=d-1,vA(I,I+624|0),Y(d=I+912|0,I+784|0,I),BI(A,d),o[A+31|0]=a[A+31|0]|s,bA(I,A)&&(y(),Q()),d=E[I+36>>2],E[I+816>>2]=E[I+32>>2],E[I+820>>2]=d,d=E[I+28>>2],E[I+808>>2]=E[I+24>>2],E[I+812>>2]=d,d=E[I+20>>2],E[I+800>>2]=E[I+16>>2],E[I+804>>2]=d,d=E[I+12>>2],E[I+792>>2]=E[I+8>>2],E[I+796>>2]=d,d=E[I+52>>2],E[I+832>>2]=E[I+48>>2],E[I+836>>2]=d,d=E[I+60>>2],E[I+840>>2]=E[I+56>>2],E[I+844>>2]=d,d=E[4+(J=I- -64|0)>>2],E[I+848>>2]=E[J>>2],E[I+852>>2]=d,d=E[I+76>>2],E[I+856>>2]=E[I+72>>2],E[I+860>>2]=d,d=E[I+4>>2],E[I+784>>2]=E[I>>2],E[I+788>>2]=d,d=E[I+44>>2],E[I+824>>2]=E[I+40>>2],E[I+828>>2]=d,d=E[I+116>>2],E[I+896>>2]=E[I+112>>2],E[I+900>>2]=d,d=E[I+108>>2],E[I+888>>2]=E[I+104>>2],E[I+892>>2]=d,d=E[I+100>>2],E[I+880>>2]=E[I+96>>2],E[I+884>>2]=d,d=E[I+92>>2],E[I+872>>2]=E[I+88>>2],E[I+876>>2]=d,d=E[I+84>>2],E[I+864>>2]=E[I+80>>2],E[I+868>>2]=d,KA(U=I+624|0,m=I+784|0),Y(m,U,l=I+744|0),Y(J=I+824|0,H=I+664|0,u=I+704|0),Y(d=I+864|0,u,l),KA(U,m),Y(m,U,l),Y(J,H,u),Y(d,u,l),KA(U,m),Y(I,U,l),Y(J=I+40|0,H,u),Y(d=I+80|0,u,l),Y(I+120|0,U,H),vA(U,d),Y(m,I,U),Y(d=I+912|0,J,U),BI(A,d),BI(I+576|0,m),o[A+31|0]=a[A+31|0]^a[I+576|0]<<7,h=I+960|0,h=g+48|0}function K(A){var I,g=0,C=0,B=0,Q=0,i=0,o=0,c=0,r=0,e=0,y=0,s=0,D=0;h=I=h-16|0;A:{I:{g:{C:{B:{Q:{i:{o:{E:{a:{_:{c:{t:{r:{if((A|=0)>>>0<=244){if(3&(g=(o=E[9393])>>>(C=(c=A>>>0<11?16:A+11&-8)>>>3|0)|0)){g=37612+(A=(C=C+(1&(-1^g))|0)<<3)|0,B=E[A+37620>>2],(0|g)!=(0|(A=E[B+8>>2]))?(E[A+12>>2]=g,E[g+8>>2]=A):(s=37572,D=Lg(-2,C)&o,E[s>>2]=D),A=B+8|0,g=C<<3,E[B+4>>2]=3|g,E[4+(g=g+B|0)>>2]=1|E[g+4>>2];break A}if((y=E[9395])>>>0>=c>>>0)break r;if(g){g=37612+(A=(B=FC((0-(A=2<>2],(0|g)!=(0|(A=E[Q+8>>2]))?(E[A+12>>2]=g,E[g+8>>2]=A):(o=Lg(-2,B)&o,E[9393]=o),E[Q+4>>2]=3|c,B=(A=B<<3)-c|0,E[4+(C=Q+c|0)>>2]=1|B,E[A+Q>>2]=B,y&&(g=37612+(-8&y)|0,i=E[9398],(A=1<<(y>>>3))&o?A=E[g+8>>2]:(E[9393]=A|o,A=g),E[g+8>>2]=i,E[A+12>>2]=i,E[i+12>>2]=g,E[i+8>>2]=A),A=Q+8|0,E[9398]=C,E[9395]=B;break A}if(!(e=E[9394]))break r;for(C=E[37876+(FC(e)<<2)>>2],i=(-8&E[C+4>>2])-c|0,g=C;(A=E[g+16>>2])||(A=E[g+20>>2]);)i=(B=(g=(-8&E[A+4>>2])-c|0)>>>0>>0)?g:i,C=B?A:C,g=A;if(r=E[C+24>>2],(0|(B=E[C+12>>2]))!=(0|C)){A=E[C+8>>2],E[A+12>>2]=B,E[B+8>>2]=A;break I}if(!(A=E[(g=C+20|0)>>2])){if(!(A=E[C+16>>2]))break t;g=C+16|0}for(;Q=g,B=A,(A=E[(g=A+20|0)>>2])||(g=B+16|0,A=E[B+16>>2]););E[Q>>2]=0;break I}if(c=-1,!(A>>>0>4294967231)&&(c=-8&(A=A+11|0),e=E[9394])){i=0-c|0,o=0,c>>>0<256||(o=31,c>>>0>16777215||(o=62+((c>>>38-(A=t(A>>>8|0))&1)-(A<<1)|0)|0));e:{y:{if(g=E[37876+(o<<2)>>2])for(A=0,C=c<<(31!=(0|o)?25-(o>>>1|0)|0:0);;){if(!((Q=(-8&E[g+4>>2])-c|0)>>>0>=i>>>0||(B=g,i=Q,Q))){i=0,A=g;break y}if(Q=E[g+20>>2],g=E[16+((C>>>29&4)+g|0)>>2],A=Q?(0|Q)==(0|g)?A:Q:A,C<<=1,!g)break}else A=0;if(!(A|B)){if(B=0,!(A=(0-(A=2<>2]}if(!A)break e}for(;i=(C=(g=(-8&E[A+4>>2])-c|0)>>>0>>0)?g:i,B=C?A:B,A=(g=E[A+16>>2])||E[A+20>>2];);}if(!(!B|E[9395]-c>>>0<=i>>>0)){if(o=E[B+24>>2],(0|B)!=(0|(C=E[B+12>>2]))){A=E[B+8>>2],E[A+12>>2]=C,E[C+8>>2]=A;break g}if(!(A=E[(g=B+20|0)>>2])){if(!(A=E[B+16>>2]))break c;g=B+16|0}for(;Q=g,C=A,(A=E[(g=A+20|0)>>2])||(g=C+16|0,A=E[C+16>>2]););E[Q>>2]=0;break g}}}if((A=E[9395])>>>0>=c>>>0){B=E[9398],(g=A-c|0)>>>0>=16?(E[4+(C=B+c|0)>>2]=1|g,E[A+B>>2]=g,E[B+4>>2]=3|c):(E[B+4>>2]=3|A,E[4+(A=A+B|0)>>2]=1|E[A+4>>2],C=0,g=0),E[9395]=g,E[9398]=C,A=B+8|0;break A}if((r=E[9396])>>>0>c>>>0){g=r-c|0,E[9396]=g,A=(C=E[9399])+c|0,E[9399]=A,E[A+4>>2]=1|g,E[C+4>>2]=3|c,A=C+8|0;break A}if(A=0,e=c+47|0,E[9511]?C=E[9513]:(E[9514]=-1,E[9515]=-1,E[9512]=4096,E[9513]=4096,E[9511]=I+12&-16^1431655768,E[9516]=0,E[9504]=0,C=4096),(g=(Q=e+C|0)&(i=0-C|0))>>>0<=c>>>0)break A;if((B=E[9503])&&B>>>0<(o=(C=E[9501])+g|0)>>>0|C>>>0>=o>>>0)break A;r:{if(!(4&a[38016])){e:{y:{s:{h:{if(B=E[9399])for(A=38020;;){if((C=E[A>>2])>>>0<=B>>>0&B>>>0>2]>>>0)break h;if(!(A=E[A+8>>2]))break}if(-1==(0|(C=cg(0))))break e;if(o=g,(A=(B=E[9512])-1|0)&C&&(o=(g-C|0)+(A+C&0-B)|0),o>>>0<=c>>>0)break e;if((B=E[9503])&&B>>>0<(i=(A=E[9501])+o|0)>>>0|A>>>0>=i>>>0)break e;if((0|C)!=(0|(A=cg(o))))break s;break r}if((0|(C=cg(o=i&Q-r)))==(E[A>>2]+E[A+4>>2]|0))break y;A=C}if(-1==(0|A))break e;if(c+48>>>0<=o>>>0){C=A;break r}if(-1==(0|cg(C=(C=E[9513])+(e-o|0)&0-C)))break e;o=C+o|0,C=A;break r}if(-1!=(0|C))break r}E[9504]=4|E[9504]}if(-1==(0|(C=cg(g)))|-1==(0|(A=cg(0)))|A>>>0<=C>>>0)break E;if((o=A-C|0)>>>0<=c+40>>>0)break E}A=E[9501]+o|0,E[9501]=A,A>>>0>_[9502]&&(E[9502]=A);r:{if(Q=E[9399]){for(A=38020;;){if(((B=E[A>>2])+(g=E[A+4>>2])|0)==(0|C))break r;if(!(A=E[A+8>>2]))break}break _}for((A=E[9397])>>>0<=C>>>0&&A||(E[9397]=C),A=0,E[9506]=o,E[9505]=C,E[9401]=-1,E[9402]=E[9511],E[9508]=0;g=37612+(B=A<<3)|0,E[B+37620>>2]=g,E[B+37624>>2]=g,32!=(0|(A=A+1|0)););g=(B=o-40|0)-(A=-8-C&7)|0,E[9396]=g,A=A+C|0,E[9399]=A,E[A+4>>2]=1|g,E[4+(C+B|0)>>2]=40,E[9400]=E[9515];break a}if(8&E[A+12>>2]|C>>>0<=Q>>>0|B>>>0>Q>>>0)break _;E[A+4>>2]=g+o,C=(A=-8-Q&7)+Q|0,E[9399]=C,A=(g=E[9396]+o|0)-A|0,E[9396]=A,E[C+4>>2]=1|A,E[4+(g+Q|0)>>2]=40,E[9400]=E[9515];break a}B=0;break I}C=0;break g}_[9397]>C>>>0&&(E[9397]=C),g=C+o|0,A=38020;_:{c:{t:{for(;;){if((0|g)!=E[A>>2]){if(A=E[A+8>>2])continue;break t}break}if(!(8&a[A+12|0]))break c}for(A=38020;;){if((g=E[A>>2])>>>0<=Q>>>0&&(i=g+E[A+4>>2]|0)>>>0>Q>>>0)break _;A=E[A+8>>2]}}if(E[A>>2]=C,E[A+4>>2]=E[A+4>>2]+o,E[4+(e=(-8-C&7)+C|0)>>2]=3|c,A=(o=g+(-8-g&7)|0)-(r=c+e|0)|0,(0|Q)==(0|o)){E[9399]=r,A=E[9396]+A|0,E[9396]=A,E[r+4>>2]=1|A;break C}if(E[9398]==(0|o)){E[9398]=r,A=E[9395]+A|0,E[9395]=A,E[r+4>>2]=1|A,E[A+r>>2]=A;break C}if(1!=(3&(i=E[o+4>>2])))break B;if(Q=-8&i,i>>>0<=255){if((0|(C=E[o+12>>2]))==(0|(g=E[o+8>>2]))){s=37572,D=E[9393]&Lg(-2,i>>>3|0),E[s>>2]=D;break Q}E[g+12>>2]=C,E[C+8>>2]=g;break Q}if(c=E[o+24>>2],(0|o)!=(0|(C=E[o+12>>2]))){g=E[o+8>>2],E[g+12>>2]=C,E[C+8>>2]=g;break i}if(!(i=E[(g=o+20|0)>>2])){if(!(i=E[o+16>>2]))break o;g=o+16|0}for(;B=g,(i=E[(g=(C=i)+20|0)>>2])||(g=C+16|0,i=E[C+16>>2]););E[B>>2]=0;break i}for(g=(B=o-40|0)-(A=-8-C&7)|0,E[9396]=g,A=A+C|0,E[9399]=A,E[A+4>>2]=1|g,E[4+(C+B|0)>>2]=40,E[9400]=E[9515],E[(B=(A=(i+(39-i&7)|0)-47|0)>>>0>>0?Q:A)+4>>2]=27,A=E[9508],E[B+16>>2]=E[9507],E[B+20>>2]=A,A=E[9506],E[B+8>>2]=E[9505],E[B+12>>2]=A,E[9507]=B+8,E[9506]=o,E[9505]=C,E[9508]=0,A=B+24|0;E[A+4>>2]=7,g=A+8|0,A=A+4|0,g>>>0>>0;);if((0|B)!=(0|Q))if(E[B+4>>2]=-2&E[B+4>>2],i=B-Q|0,E[Q+4>>2]=1|i,E[B>>2]=i,i>>>0<=255)g=37612+(-8&i)|0,(C=E[9393])&(A=1<<(i>>>3))?A=E[g+8>>2]:(E[9393]=A|C,A=g),E[g+8>>2]=Q,E[A+12>>2]=Q,E[Q+12>>2]=g,E[Q+8>>2]=A;else{A=31,i>>>0<=16777215&&(A=62+((i>>>38-(A=t(i>>>8|0))&1)-(A<<1)|0)|0),E[Q+28>>2]=A,E[Q+16>>2]=0,E[Q+20>>2]=0,g=37876+(A<<2)|0;_:{if((B=E[9394])&(C=1<>>1|0)|0:0),B=E[g>>2];;){if((0|i)==(-8&E[(g=B)+4>>2]))break _;if(C=A>>>29|0,A<<=1,!(B=E[16+(C=(4&C)+g|0)>>2]))break}E[C+16>>2]=Q}else E[9394]=C|B,E[g>>2]=Q;E[Q+24>>2]=g,E[Q+12>>2]=Q,E[Q+8>>2]=Q;break a}A=E[g+8>>2],E[A+12>>2]=Q,E[g+8>>2]=Q,E[Q+24>>2]=0,E[Q+12>>2]=g,E[Q+8>>2]=A}}if(!((A=E[9396])>>>0<=c>>>0)){g=A-c|0,E[9396]=g,A=(C=E[9399])+c|0,E[9399]=A,E[A+4>>2]=1|g,E[C+4>>2]=3|c,A=C+8|0;break A}}E[9392]=48,A=0;break A}C=0}if(c){B=E[o+28>>2];i:{if(E[(g=37876+(B<<2)|0)>>2]==(0|o)){if(E[g>>2]=C,C)break i;s=37576,D=E[9394]&Lg(-2,B),E[s>>2]=D;break Q}if(E[c+(E[c+16>>2]==(0|o)?16:20)>>2]=C,!C)break Q}E[C+24>>2]=c,(g=E[o+16>>2])&&(E[C+16>>2]=g,E[g+24>>2]=C),(g=E[o+20>>2])&&(E[C+20>>2]=g,E[g+24>>2]=C)}}A=A+Q|0,i=E[4+(o=Q+o|0)>>2]}if(E[o+4>>2]=-2&i,E[r+4>>2]=1|A,E[A+r>>2]=A,A>>>0<=255)g=37612+(-8&A)|0,(C=E[9393])&(A=1<<(A>>>3))?A=E[g+8>>2]:(E[9393]=A|C,A=g),E[g+8>>2]=r,E[A+12>>2]=r,E[r+12>>2]=g,E[r+8>>2]=A;else{i=31,A>>>0<=16777215&&(i=62+((A>>>38-(g=t(A>>>8|0))&1)-(g<<1)|0)|0),E[r+28>>2]=i,E[r+16>>2]=0,E[r+20>>2]=0,g=37876+(i<<2)|0;B:{if((B=E[9394])&(C=1<>>1|0)|0:0),C=E[g>>2];;){if(g=C,(-8&E[C+4>>2])==(0|A))break B;if(B=i>>>29|0,i<<=1,!(C=E[16+(B=(4&B)+C|0)>>2]))break}E[B+16>>2]=r}else E[9394]=C|B,E[g>>2]=r;E[r+24>>2]=g,E[r+12>>2]=r,E[r+8>>2]=r;break C}A=E[g+8>>2],E[A+12>>2]=r,E[g+8>>2]=r,E[r+24>>2]=0,E[r+12>>2]=g,E[r+8>>2]=A}}A=e+8|0;break A}g:if(o){g=E[B+28>>2];C:{if(E[(A=37876+(g<<2)|0)>>2]==(0|B)){if(E[A>>2]=C,C)break C;e=Lg(-2,g)&e,E[9394]=e;break g}if(E[o+(E[o+16>>2]==(0|B)?16:20)>>2]=C,!C)break g}E[C+24>>2]=o,(A=E[B+16>>2])&&(E[C+16>>2]=A,E[A+24>>2]=C),(A=E[B+20>>2])&&(E[C+20>>2]=A,E[A+24>>2]=C)}g:if(i>>>0<=15)A=i+c|0,E[B+4>>2]=3|A,E[4+(A=A+B|0)>>2]=1|E[A+4>>2];else if(E[B+4>>2]=3|c,E[4+(Q=B+c|0)>>2]=1|i,E[Q+i>>2]=i,i>>>0<=255)g=37612+(-8&i)|0,(C=E[9393])&(A=1<<(i>>>3))?A=E[g+8>>2]:(E[9393]=A|C,A=g),E[g+8>>2]=Q,E[A+12>>2]=Q,E[Q+12>>2]=g,E[Q+8>>2]=A;else{A=31,i>>>0<=16777215&&(A=62+((i>>>38-(A=t(i>>>8|0))&1)-(A<<1)|0)|0),E[Q+28>>2]=A,E[Q+16>>2]=0,E[Q+20>>2]=0,g=37876+(A<<2)|0;C:{if((C=1<>>1|0)|0:0),c=E[g>>2];;){if((-8&E[(g=c)+4>>2])==(0|i))break C;if(C=A>>>29|0,A<<=1,!(c=E[16+(C=(4&C)+g|0)>>2]))break}E[C+16>>2]=Q}else E[9394]=C|e,E[g>>2]=Q;E[Q+24>>2]=g,E[Q+12>>2]=Q,E[Q+8>>2]=Q;break g}A=E[g+8>>2],E[A+12>>2]=Q,E[g+8>>2]=Q,E[Q+24>>2]=0,E[Q+12>>2]=g,E[Q+8>>2]=A}A=B+8|0;break A}I:if(r){g=E[C+28>>2];g:{if(E[(A=37876+(g<<2)|0)>>2]==(0|C)){if(E[A>>2]=B,B)break g;s=37576,D=Lg(-2,g)&e,E[s>>2]=D;break I}if(E[r+(E[r+16>>2]==(0|C)?16:20)>>2]=B,!B)break I}E[B+24>>2]=r,(A=E[C+16>>2])&&(E[B+16>>2]=A,E[A+24>>2]=B),(A=E[C+20>>2])&&(E[B+20>>2]=A,E[A+24>>2]=B)}i>>>0<=15?(A=i+c|0,E[C+4>>2]=3|A,E[4+(A=A+C|0)>>2]=1|E[A+4>>2]):(E[C+4>>2]=3|c,E[4+(B=C+c|0)>>2]=1|i,E[B+i>>2]=i,y&&(g=37612+(-8&y)|0,Q=E[9398],(A=1<<(y>>>3))&o?A=E[g+8>>2]:(E[9393]=A|o,A=g),E[g+8>>2]=Q,E[A+12>>2]=Q,E[Q+12>>2]=g,E[Q+8>>2]=A),E[9398]=B,E[9395]=i),A=C+8|0}return h=I+16|0,0|A}function H(A,I,g,C,B,Q){var i,_=0,t=0,r=0,e=0,y=0,s=0,D=0,p=0,w=0,f=0,n=0,k=0,F=0,S=0,G=0,M=0,b=0,K=0,H=0,d=0,J=0,U=0,l=0,m=0,u=0,x=0,R=0,v=0,L=0,P=0,q=0,j=0,X=0,O=0,V=0,Z=0,W=0,T=0;if(h=i=h-592|0,r=-1,ZI(t=A+32|0)&&!bI(A)&&GI(B)&&!bI(B)&&!qA(y=i+128|0,B)){for(SI(r=i+384|0),Q&&nA(r,35600,34,0),nA(r,A,32,0),nA(r,B,32,0),nA(r,I,g,C),z(I=r,r=i+320|0),N(r),C=i+8|0,g=t,B=0,I=0,h=_=h-2272|0;t=r+(B>>>3|0)|0,o[(Q=_+2016|0)+B|0]=a[0|t]>>>(6&B)&1,o[(e=Q)+(Q=1|B)|0]=a[0|t]>>>(7&Q)&1,256!=(0|(B=B+2|0)););for(;;){I=(Q=I)+1|0;A:if(!(Q>>>0>254)&&a[0|(D=(B=_+2016|0)+Q|0)]){I:if(B=o[0|(s=I+B|0)])if((0|(B=(r=B<<1)+(t=o[0|D])|0))<=15)o[0|D]=B,o[0|s]=0;else{if((0|(B=t-r|0))<-15)break A;for(o[0|D]=B,B=I;;){if(!a[0|(t=(_+2016|0)+B|0)]){o[0|t]=1;break I}if(o[0|t]=0,t=B>>>0<255,B=B+1|0,!t)break}}if(!(Q>>>0>253)){I:if(t=o[0|(e=(B=Q+2|0)+(_+2016|0)|0)])if((0|(t=(s=t<<2)+(r=o[0|D])|0))>=16){if((0|(t=r-s|0))<-15)break A;for(o[0|D]=t;;){if(a[0|(t=(_+2016|0)+B|0)]){if(o[0|t]=0,t=B>>>0<255,B=B+1|0,t)continue;break I}break}o[0|t]=1}else o[0|D]=t,o[0|e]=0;if(!(Q>>>0>252)){I:if(t=o[0|(e=(B=Q+3|0)+(_+2016|0)|0)])if((0|(t=(s=t<<3)+(r=o[0|D])|0))>=16){if((0|(t=r-s|0))<-15)break A;for(o[0|D]=t;;){if(a[0|(t=(_+2016|0)+B|0)]){if(o[0|t]=0,t=B>>>0<255,B=B+1|0,t)continue;break I}break}o[0|t]=1}else o[0|D]=t,o[0|e]=0;if(!(Q>>>0>251)){I:if(t=o[0|(e=(B=Q+4|0)+(_+2016|0)|0)])if((0|(t=(s=t<<4)+(r=o[0|D])|0))>=16){if((0|(t=r-s|0))<-15)break A;for(o[0|D]=t;;){if(a[0|(t=(_+2016|0)+B|0)]){if(o[0|t]=0,t=B>>>0<255,B=B+1|0,t)continue;break I}break}o[0|t]=1}else o[0|D]=t,o[0|e]=0;if(!(Q>>>0>250)){I:if(t=o[0|(e=(B=Q+5|0)+(_+2016|0)|0)])if((0|(t=(s=t<<5)+(r=o[0|D])|0))>=16){if((0|(t=r-s|0))<-15)break A;for(o[0|D]=t;;){if(a[0|(t=(_+2016|0)+B|0)]){if(o[0|t]=0,t=B>>>0<255,B=B+1|0,t)continue;break I}break}o[0|t]=1}else o[0|D]=t,o[0|e]=0;if(!(Q>>>0>249)&&(Q=o[0|(s=(B=Q+6|0)+(_+2016|0)|0)]))if((0|(Q=(r=Q<<6)+(t=o[0|D])|0))>=16){if((0|(Q=t-r|0))<-15)break A;for(o[0|D]=Q;;){if(a[0|(Q=(_+2016|0)+B|0)]){if(o[0|Q]=0,Q=B>>>0<255,B=B+1|0,Q)continue;break A}break}o[0|Q]=1}else o[0|D]=Q,o[0|s]=0}}}}}if(256==(0|I))break}for(B=0;Q=g+(B>>>3|0)|0,o[(I=_+1760|0)+B|0]=a[0|Q]>>>(6&B)&1,o[(t=I)+(I=1|B)|0]=a[0|Q]>>>(7&I)&1,256!=(0|(B=B+2|0)););for(I=0;;){g=I,I=I+1|0;A:if(!(g>>>0>254)&&a[0|(e=(B=_+1760|0)+g|0)]){I:if(B=o[0|(r=I+B|0)])if((0|(B=(t=B<<1)+(Q=o[0|e])|0))<=15)o[0|e]=B,o[0|r]=0;else{if((0|(B=Q-t|0))<-15)break A;for(o[0|e]=B,B=I;;){if(!a[0|(Q=(_+1760|0)+B|0)]){o[0|Q]=1;break I}if(o[0|Q]=0,Q=B>>>0<255,B=B+1|0,!Q)break}}if(!(g>>>0>253)){I:if(Q=o[0|(s=(B=g+2|0)+(_+1760|0)|0)])if((0|(Q=(r=Q<<2)+(t=o[0|e])|0))>=16){if((0|(Q=t-r|0))<-15)break A;for(o[0|e]=Q;;){if(a[0|(Q=(_+1760|0)+B|0)]){if(o[0|Q]=0,Q=B>>>0<255,B=B+1|0,Q)continue;break I}break}o[0|Q]=1}else o[0|e]=Q,o[0|s]=0;if(!(g>>>0>252)){I:if(Q=o[0|(s=(B=g+3|0)+(_+1760|0)|0)])if((0|(Q=(r=Q<<3)+(t=o[0|e])|0))>=16){if((0|(Q=t-r|0))<-15)break A;for(o[0|e]=Q;;){if(a[0|(Q=(_+1760|0)+B|0)]){if(o[0|Q]=0,Q=B>>>0<255,B=B+1|0,Q)continue;break I}break}o[0|Q]=1}else o[0|e]=Q,o[0|s]=0;if(!(g>>>0>251)){I:if(Q=o[0|(s=(B=g+4|0)+(_+1760|0)|0)])if((0|(Q=(r=Q<<4)+(t=o[0|e])|0))>=16){if((0|(Q=t-r|0))<-15)break A;for(o[0|e]=Q;;){if(a[0|(Q=(_+1760|0)+B|0)]){if(o[0|Q]=0,Q=B>>>0<255,B=B+1|0,Q)continue;break I}break}o[0|Q]=1}else o[0|e]=Q,o[0|s]=0;if(!(g>>>0>250)){I:if(Q=o[0|(s=(B=g+5|0)+(_+1760|0)|0)])if((0|(Q=(r=Q<<5)+(t=o[0|e])|0))>=16){if((0|(Q=t-r|0))<-15)break A;for(o[0|e]=Q;;){if(a[0|(Q=(_+1760|0)+B|0)]){if(o[0|Q]=0,Q=B>>>0<255,B=B+1|0,Q)continue;break I}break}o[0|Q]=1}else o[0|e]=Q,o[0|s]=0;if(!(g>>>0>249)&&(g=o[0|(r=(B=g+6|0)+(_+1760|0)|0)]))if((0|(g=(t=g<<6)+(Q=o[0|e])|0))>=16){if((0|(g=Q-t|0))<-15)break A;for(o[0|e]=g;;){if(a[0|(g=(_+1760|0)+B|0)]){if(o[0|g]=0,g=B>>>0<255,B=B+1|0,g)continue;break A}break}o[0|g]=1}else o[0|e]=g,o[0|r]=0}}}}}if(256==(0|I))break}for(TA(B=_+480|0,y),I=E[y+36>>2],E[_+192>>2]=E[y+32>>2],E[_+196>>2]=I,I=E[y+28>>2],E[_+184>>2]=E[y+24>>2],E[_+188>>2]=I,I=E[y+20>>2],E[_+176>>2]=E[y+16>>2],E[_+180>>2]=I,I=E[y+12>>2],E[_+168>>2]=E[y+8>>2],E[_+172>>2]=I,I=E[y+4>>2],E[_+160>>2]=E[y>>2],E[_+164>>2]=I,I=E[y+52>>2],E[_+208>>2]=E[y+48>>2],E[_+212>>2]=I,I=E[y+60>>2],E[_+216>>2]=E[y+56>>2],E[_+220>>2]=I,I=E[4+(g=y- -64|0)>>2],E[_+224>>2]=E[g>>2],E[_+228>>2]=I,I=E[y+76>>2],E[_+232>>2]=E[y+72>>2],E[_+236>>2]=I,I=E[y+44>>2],E[_+200>>2]=E[y+40>>2],E[_+204>>2]=I,I=E[y+92>>2],E[_+248>>2]=E[y+88>>2],E[_+252>>2]=I,I=E[y+100>>2],E[_+256>>2]=E[y+96>>2],E[_+260>>2]=I,I=E[y+108>>2],E[_+264>>2]=E[y+104>>2],E[_+268>>2]=I,I=E[y+116>>2],E[_+272>>2]=E[y+112>>2],E[_+276>>2]=I,I=E[y+84>>2],E[_+240>>2]=E[y+80>>2],E[_+244>>2]=I,KA(Q=_+320|0,g=_+160|0),Y(_,Q,p=_+440|0),Y(_+40|0,w=_+360|0,f=_+400|0),Y(_+80|0,f,p),Y(_+120|0,Q,w),sA(Q,_,B),Y(g,Q,p),Y(k=_+200|0,w,f),Y(F=_+240|0,f,p),Y(n=_+280|0,Q,w),TA(I=_+640|0,g),sA(Q,_,I),Y(g,Q,p),Y(k,w,f),Y(F,f,p),Y(n,Q,w),TA(I=_+800|0,g),sA(Q,_,I),Y(g,Q,p),Y(k,w,f),Y(F,f,p),Y(n,Q,w),TA(I=_+960|0,g),sA(Q,_,I),Y(g,Q,p),Y(k,w,f),Y(F,f,p),Y(n,Q,w),TA(I=_+1120|0,g),sA(Q,_,I),Y(g,Q,p),Y(k,w,f),Y(F,f,p),Y(n,Q,w),TA(I=_+1280|0,g),sA(Q,_,I),Y(g,Q,p),Y(k,w,f),Y(F,f,p),Y(n,Q,w),TA(I=_+1440|0,g),sA(Q,_,I),Y(g,Q,p),Y(k,w,f),Y(F,f,p),Y(n,Q,w),TA(_+1600|0,g),E[C+32>>2]=0,E[C+36>>2]=0,E[C+24>>2]=0,E[C+28>>2]=0,E[C+16>>2]=0,E[C+20>>2]=0,E[C+8>>2]=0,E[C+12>>2]=0,E[C>>2]=0,E[C+4>>2]=0,E[C+44>>2]=0,E[C+48>>2]=0,E[(R=C+40|0)>>2]=1,E[C+52>>2]=0,E[C+56>>2]=0,E[C+60>>2]=0,E[C+64>>2]=0,E[C+68>>2]=0,E[C+72>>2]=0,E[C+84>>2]=0,E[C+88>>2]=0,E[C+76>>2]=0,E[C+80>>2]=1,E[C+92>>2]=0,E[C+96>>2]=0,E[C+100>>2]=0,E[C+104>>2]=0,E[C+108>>2]=0,E[C+112>>2]=0,E[C+116>>2]=0,O=C+80|0,I=255;;){A:{I:{if(!a[(g=_+2016|0)+I|0]&&!a[(B=_+1760|0)+I|0]){if(!(a[(Q=g)+(g=I-1|0)|0]|a[g+B|0]))break I;I=g}if((0|I)<0)break A;for(;KA(B=_+320|0,C),g=I,(0|(Q=o[I+(_+2016|0)|0]))>0?(Y(I=_+160|0,B,p),Y(k,w,f),Y(F,f,p),Y(n,B,w),sA(B,I,(_+480|0)+c((254&Q)>>>1|0,160)|0)):(0|Q)>=0||(Y(I=_+160|0,B=_+320|0,p),Y(k,w,f),Y(F,f,p),Y(n,B,w),hA(B,I,(_+480|0)+c((0-Q&254)>>>1|0,160)|0)),(0|(u=o[g+(_+1760|0)|0]))>0?(Y(I=_+160|0,B=_+320|0,p),Y(k,w,f),Y(F,f,p),Y(n,B,w),DA(B,I,c((254&u)>>>1|0,120)+1744|0)):(0|u)>=0||(Y(_+160|0,x=_+320|0,p),Y(k,w,f),Y(F,f,p),Y(n,x,w),S=E[_+160>>2],G=E[_+200>>2],M=E[_+164>>2],b=E[_+204>>2],K=E[_+168>>2],H=E[_+208>>2],d=E[_+172>>2],J=E[_+212>>2],U=E[_+176>>2],l=E[_+216>>2],m=E[_+180>>2],D=E[_+220>>2],e=E[_+184>>2],s=E[_+224>>2],r=E[_+188>>2],y=E[_+228>>2],t=E[_+192>>2],Q=E[_+232>>2],B=E[_+236>>2],I=E[_+196>>2],E[_+396>>2]=B-I,E[_+392>>2]=Q-t,E[_+388>>2]=y-r,E[_+384>>2]=s-e,E[_+380>>2]=D-m,E[_+376>>2]=l-U,E[_+372>>2]=J-d,E[_+368>>2]=H-K,E[_+364>>2]=b-M,E[_+360>>2]=G-S,E[_+356>>2]=I+B,E[_+352>>2]=Q+t,E[_+348>>2]=r+y,E[_+344>>2]=e+s,E[_+340>>2]=D+m,E[_+336>>2]=U+l,E[_+332>>2]=d+J,E[_+328>>2]=K+H,E[_+324>>2]=M+b,E[_+320>>2]=S+G,Y(f,x,40+(I=c((0-u&254)>>>1|0,120)+1744|0)|0),Y(w,w,I),Y(p,I+80|0,n),V=E[_+276>>2],Z=E[_+272>>2],u=E[_+268>>2],x=E[_+264>>2],e=E[_+260>>2],s=E[_+256>>2],r=E[_+252>>2],y=E[_+248>>2],t=E[_+244>>2],Q=E[_+240>>2],v=E[_+360>>2],L=E[_+400>>2],P=E[_+364>>2],q=E[_+404>>2],j=E[_+368>>2],X=E[_+408>>2],S=E[_+372>>2],G=E[_+412>>2],M=E[_+376>>2],b=E[_+416>>2],K=E[_+380>>2],H=E[_+420>>2],d=E[_+384>>2],J=E[_+424>>2],U=E[_+388>>2],l=E[_+428>>2],m=E[_+392>>2],D=E[_+432>>2],B=E[_+396>>2],I=E[_+436>>2],E[_+396>>2]=B+I,E[_+392>>2]=D+m,E[_+388>>2]=U+l,E[_+384>>2]=d+J,E[_+380>>2]=K+H,E[_+376>>2]=M+b,E[_+372>>2]=S+G,E[_+368>>2]=j+X,E[_+364>>2]=P+q,E[_+360>>2]=v+L,E[_+356>>2]=I-B,E[_+352>>2]=D-m,E[_+348>>2]=l-U,E[_+344>>2]=J-d,E[_+340>>2]=H-K,E[_+336>>2]=b-M,E[_+332>>2]=G-S,E[_+328>>2]=X-j,E[_+324>>2]=q-P,E[_+320>>2]=L-v,S=Q<<1,G=E[_+440>>2],E[_+400>>2]=S-G,M=t<<1,b=E[_+444>>2],E[_+404>>2]=M-b,K=y<<1,H=E[_+448>>2],E[_+408>>2]=K-H,d=r<<1,J=E[_+452>>2],E[_+412>>2]=d-J,U=s<<1,l=E[_+456>>2],E[_+416>>2]=U-l,m=e<<1,D=E[_+460>>2],E[_+420>>2]=m-D,e=x<<1,s=E[_+464>>2],E[_+424>>2]=e-s,r=u<<1,y=E[_+468>>2],E[_+428>>2]=r-y,t=Z<<1,Q=E[_+472>>2],E[_+432>>2]=t-Q,B=V<<1,I=E[_+476>>2],E[_+436>>2]=B-I,E[_+440>>2]=S+G,E[_+444>>2]=M+b,E[_+448>>2]=K+H,E[_+452>>2]=d+J,E[_+456>>2]=U+l,E[_+460>>2]=D+m,E[_+464>>2]=e+s,E[_+468>>2]=r+y,E[_+472>>2]=Q+t,E[_+476>>2]=I+B),Y(C,_+320|0,p),Y(R,w,f),Y(O,f,p),I=g-1|0,(0|g)>0;);break A}if(I=I-2|0,g)continue}break}h=_+2272|0,tg(I=i+288|0,C),W=-1,T=SC(I,A),r=((0|A)==(0|I)?W:T)|MI(A,I,32)}return h=i+592|0,r}function Y(A,I,g){var C,B,Q,i,o,a,_,t,r,e,y,s,h,D,p,f,n,k,F,N,S,G,M,b,K,H,Y,d,J,U,l,m,u,x,R,v,L,P,q,z,j,X,O,V,Z,W,T,$,AA,IA,gA,CA,BA,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,pA=0,wA=0,fA=0,nA=0,kA=0,FA=0,NA=0,SA=0,GA=0,MA=0,bA=0;QA=Ig(C=E[g+4>>2],e=C>>31,fA=(f=E[I+20>>2])<<1,l=fA>>31),oA=w,iA=(hA=Ig(pA=E[g>>2],Q=pA>>31,B=E[I+24>>2],i=B>>31))+QA|0,QA=w+oA|0,QA=iA>>>0>>0?QA+1|0:QA,rA=Ig(o=E[g+8>>2],h=o>>31,hA=E[I+16>>2],a=hA>>31),oA=w+QA|0,oA=(iA=rA+iA|0)>>>0>>0?oA+1|0:oA,QA=(rA=Ig(y=E[g+12>>2],n=y>>31,b=(k=E[I+12>>2])<<1,m=b>>31))+iA|0,iA=w+oA|0,iA=QA>>>0>>0?iA+1|0:iA,oA=(DA=Ig(D=E[g+16>>2],K=D>>31,rA=E[I+8>>2],_=rA>>31))+QA|0,QA=w+iA|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(F=E[g+20>>2],u=F>>31,H=(N=E[I+4>>2])<<1,x=H>>31),QA=w+QA|0,QA=(iA=iA+oA|0)>>>0>>0?QA+1|0:QA,W=cA=E[g+24>>2],oA=(eA=Ig(cA,V=cA>>31,DA=E[I>>2],t=DA>>31))+iA|0,iA=w+QA|0,iA=oA>>>0>>0?iA+1|0:iA,R=E[g+28>>2],QA=(eA=Ig(sA=c(R,19),S=sA>>31,Y=(G=E[I+36>>2])<<1,v=Y>>31))+oA|0,oA=w+iA|0,oA=QA>>>0>>0?oA+1|0:oA,NA=E[g+32>>2],iA=(tA=Ig(EA=c(NA,19),p=EA>>31,eA=E[I+32>>2],r=eA>>31))+QA|0,QA=w+oA|0,QA=iA>>>0>>0?QA+1|0:QA,T=E[g+36>>2],g=Ig(tA=c(T,19),s=tA>>31,d=(M=E[I+28>>2])<<1,L=d>>31),QA=w+QA|0,aA=I=g+iA|0,g=I>>>0>>0?QA+1|0:QA,I=Ig(hA,a,C,e),QA=w,iA=Ig(pA,Q,f,P=f>>31),oA=w+QA|0,oA=(I=iA+I|0)>>>0>>0?oA+1|0:oA,QA=Ig(o,h,k,q=k>>31),iA=w+oA|0,iA=(I=QA+I|0)>>>0>>0?iA+1|0:iA,oA=Ig(rA,_,y,n),QA=w+iA|0,QA=(I=oA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(D,K,N,z=N>>31),QA=w+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(DA,t,F,u),QA=w+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(cA=c(cA,19),J=cA>>31,G,j=G>>31),oA=w+QA|0,oA=(I=iA+I|0)>>>0>>0?oA+1|0:oA,QA=Ig(eA,r,sA,S),iA=w+oA|0,iA=(I=QA+I|0)>>>0>>0?iA+1|0:iA,oA=Ig(EA,p,M,X=M>>31),QA=w+iA|0,QA=(I=oA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(tA,s,B,i),QA=w+QA|0,GA=I=iA+I|0,nA=I>>>0>>0?QA+1|0:QA,I=Ig(C,e,b,m),QA=w,iA=Ig(pA,Q,hA,a),QA=w+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(rA,_,o,h),oA=w+QA|0,oA=(I=iA+I|0)>>>0>>0?oA+1|0:oA,QA=Ig(y,n,H,x),iA=w+oA|0,iA=(I=QA+I|0)>>>0>>0?iA+1|0:iA,oA=Ig(DA,t,D,K),QA=w+iA|0,QA=(I=oA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(U=c(F,19),O=U>>31,Y,v),QA=w+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(eA,r,cA,J),QA=w+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(sA,S,d,L),oA=w+QA|0,oA=(I=iA+I|0)>>>0>>0?oA+1|0:oA,QA=Ig(EA,p,B,i),iA=w+oA|0,iA=(I=QA+I|0)>>>0>>0?iA+1|0:iA,oA=Ig(tA,s,fA,l),QA=w+iA|0,$=I=oA+I|0,AA=QA=I>>>0>>0?QA+1|0:QA,IA=I=I+33554432|0,gA=QA=I>>>0<33554432?QA+1|0:QA,oA=(67108863&QA)<<6|I>>>26,QA=(QA>>26)+nA|0,GA=I=oA+GA|0,QA=I>>>0>>0?QA+1|0:QA,CA=I=I+16777216|0,QA=g+(iA=(oA=I>>>0<16777216?QA+1|0:QA)>>25)|0,QA=(I=(oA=(33554431&oA)<<7|I>>>25)+aA|0)>>>0>>0?QA+1|0:QA,kA=g=(iA=I)+33554432|0,I=QA=g>>>0<33554432?QA+1|0:QA,E[A+24>>2]=iA-(-67108864&g),g=Ig(C,e,H,x),QA=w,iA=Ig(pA,Q,rA,_),oA=w+QA|0,oA=(g=iA+g|0)>>>0>>0?oA+1|0:oA,iA=(QA=g)+(g=Ig(DA,t,o,h))|0,QA=w+oA|0,QA=g>>>0>iA>>>0?QA+1|0:QA,oA=Ig(g=c(y,19),FA=g>>31,Y,v),QA=w+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,oA=(aA=Ig(eA,r,nA=c(D,19),Z=nA>>31))+iA|0,iA=w+QA|0,iA=oA>>>0>>0?iA+1|0:iA,aA=Ig(d,L,U,O),QA=w+iA|0,QA=(oA=aA+oA|0)>>>0>>0?QA+1|0:QA,iA=(aA=Ig(B,i,cA,J))+oA|0,oA=w+QA|0,oA=iA>>>0>>0?oA+1|0:oA,aA=Ig(sA,S,fA,l),QA=w+oA|0,QA=(iA=aA+iA|0)>>>0>>0?QA+1|0:QA,oA=Ig(EA,p,hA,a),QA=w+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,oA=(aA=Ig(tA,s,b,m))+iA|0,iA=w+QA|0,yA=oA,MA=oA>>>0>>0?iA+1|0:iA,QA=Ig(DA,t,C,e),iA=w,oA=(aA=Ig(pA,Q,N,z))+QA|0,QA=w+iA|0,QA=oA>>>0>>0?QA+1|0:QA,aA=iA=c(o,19),iA=(_A=Ig(iA,SA=iA>>31,G,j))+oA|0,oA=w+QA|0,oA=iA>>>0<_A>>>0?oA+1|0:oA,_A=Ig(eA,r,g,FA),QA=w+oA|0,QA=(iA=_A+iA|0)>>>0<_A>>>0?QA+1|0:QA,oA=Ig(nA,Z,M,X),QA=w+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,oA=(_A=Ig(B,i,U,O))+iA|0,iA=w+QA|0,iA=oA>>>0<_A>>>0?iA+1|0:iA,_A=Ig(cA,J,f,P),QA=w+iA|0,QA=(oA=_A+oA|0)>>>0<_A>>>0?QA+1|0:QA,iA=(_A=Ig(hA,a,sA,S))+oA|0,oA=w+QA|0,oA=iA>>>0<_A>>>0?oA+1|0:oA,_A=Ig(EA,p,k,q),QA=w+oA|0,QA=(iA=_A+iA|0)>>>0<_A>>>0?QA+1|0:QA,oA=Ig(tA,s,rA,_),QA=w+QA|0,bA=iA=oA+iA|0,_A=iA>>>0>>0?QA+1|0:QA,QA=Ig(QA=c(C,19),QA>>31,Y,v),iA=w,oA=Ig(pA,Q,DA,t),iA=w+iA|0,iA=(QA=oA+QA|0)>>>0>>0?iA+1|0:iA,oA=(aA=Ig(eA,r,aA,SA))+QA|0,QA=w+iA|0,g=(iA=Ig(g,FA,d,L))+oA|0,oA=w+(oA>>>0>>0?QA+1|0:QA)|0,oA=g>>>0>>0?oA+1|0:oA,iA=Ig(B,i,nA,Z),QA=w+oA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,iA=Ig(fA,l,U,O),QA=w+QA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,oA=Ig(hA,a,cA,J),iA=w+QA|0,iA=(g=oA+g|0)>>>0>>0?iA+1|0:iA,oA=Ig(sA,S,b,m),QA=w+iA|0,QA=(g=oA+g|0)>>>0>>0?QA+1|0:QA,iA=Ig(EA,p,rA,_),oA=w+QA|0,oA=(g=iA+g|0)>>>0>>0?oA+1|0:oA,iA=Ig(tA,s,H,x),QA=w+oA|0,aA=g=iA+g|0,FA=QA=g>>>0>>0?QA+1|0:QA,SA=g=g+33554432|0,BA=QA=g>>>0<33554432?QA+1|0:QA,iA=(oA=QA>>26)+_A|0,_A=g=(QA=(67108863&QA)<<6|g>>>26)+bA|0,QA=g>>>0>>0?iA+1|0:iA,bA=g=g+16777216|0,iA=(33554431&(QA=g>>>0<16777216?QA+1|0:QA))<<7|g>>>25,QA=(QA>>25)+MA|0,QA=(g=iA+yA|0)>>>0>>0?QA+1|0:QA,MA=iA=(oA=g)+33554432|0,g=QA=iA>>>0<33554432?QA+1|0:QA,E[A+8>>2]=oA-(-67108864&iA),QA=Ig(B,i,C,e),oA=w,iA=(yA=Ig(pA,Q,M,X))+QA|0,QA=w+oA|0,QA=iA>>>0>>0?QA+1|0:QA,oA=Ig(o,h,f,P),QA=w+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,oA=Ig(hA,a,y,n),QA=w+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,yA=Ig(D,K,k,q),oA=w+QA|0,oA=(iA=yA+iA|0)>>>0>>0?oA+1|0:oA,QA=(yA=Ig(rA,_,F,u))+iA|0,iA=w+oA|0,iA=QA>>>0>>0?iA+1|0:iA,oA=(yA=Ig(N,z,W,V))+QA|0,QA=w+iA|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(DA,t,R,yA=R>>31),QA=w+QA|0,QA=(iA=iA+oA|0)>>>0>>0?QA+1|0:QA,oA=Ig(EA,p,G,j),QA=w+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,wA=Ig(tA,s,eA,r),oA=w+QA|0,QA=I>>26,I=(kA=(67108863&I)<<6|kA>>>26)+(iA=wA+iA|0)|0,iA=QA+(iA>>>0>>0?oA+1|0:oA)|0,QA=(oA=I)>>>0>>0?iA+1|0:iA,kA=iA=oA+16777216|0,I=QA=iA>>>0<16777216?QA+1|0:QA,E[A+28>>2]=oA-(-33554432&iA),QA=Ig(rA,_,C,e),iA=w,wA=Ig(pA,Q,k,q),oA=w+iA|0,oA=(QA=wA+QA|0)>>>0>>0?oA+1|0:oA,wA=Ig(o,h,N,z),iA=w+oA|0,iA=(QA=wA+QA|0)>>>0>>0?iA+1|0:iA,oA=(wA=Ig(DA,t,y,n))+QA|0,QA=w+iA|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(nA,Z,G,j),QA=w+QA|0,QA=(iA=iA+oA|0)>>>0>>0?QA+1|0:QA,oA=Ig(eA,r,U,O),QA=w+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,iA=(cA=Ig(cA,J,M,X))+iA|0,oA=w+QA|0,QA=(sA=Ig(B,i,sA,S))+iA|0,iA=w+(iA>>>0>>0?oA+1|0:oA)|0,oA=(EA=Ig(EA,p,f,P))+QA|0,QA=w+(QA>>>0>>0?iA+1|0:iA)|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(tA,s,hA,a),QA=w+QA|0,EA=iA=iA+oA|0,QA=(QA=iA>>>0>>0?QA+1|0:QA)+(iA=g>>26)|0,EA=g=EA+(oA=(67108863&g)<<6|MA>>>26)|0,QA=g>>>0>>0?QA+1|0:QA,sA=iA=g+16777216|0,g=oA=iA>>>0<16777216?QA+1|0:QA,E[A+12>>2]=EA-(-33554432&iA),QA=Ig(C,e,d,L),oA=w,iA=(EA=Ig(pA,Q,eA,r))+QA|0,QA=w+oA|0,QA=iA>>>0>>0?QA+1|0:QA,oA=Ig(B,i,o,h),QA=w+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,EA=Ig(y,n,fA,l),oA=w+QA|0,oA=(iA=EA+iA|0)>>>0>>0?oA+1|0:oA,QA=(EA=Ig(hA,a,D,K))+iA|0,iA=w+oA|0,iA=QA>>>0>>0?iA+1|0:iA,oA=(EA=Ig(b,m,F,u))+QA|0,QA=w+iA|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(rA,_,W,V),QA=w+QA|0,QA=(iA=iA+oA|0)>>>0>>0?QA+1|0:QA,oA=Ig(R,yA,H,x),QA=w+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,iA=(fA=Ig(DA,t,EA=NA,cA=EA>>31))+iA|0,oA=w+QA|0,QA=(tA=Ig(tA,s,Y,v))+iA|0,iA=w+(iA>>>0>>0?oA+1|0:oA)|0,iA=QA>>>0>>0?iA+1|0:iA,NA=QA,QA=(QA=I>>25)+iA|0,QA=(I=NA+(oA=(33554431&I)<<7|kA>>>25)|0)>>>0>>0?QA+1|0:QA,tA=iA=(oA=I)+33554432|0,I=QA=iA>>>0<33554432?QA+1|0:QA,E[A+32>>2]=oA-(-67108864&iA),iA=g>>25,g=(sA=(33554431&g)<<7|sA>>>25)+($-(QA=-67108864&IA)|0)|0,QA=iA+(AA-((QA>>>0>$>>>0)+gA|0)|0)|0,QA=g>>>0>>0?QA+1|0:QA,QA=((67108863&(QA=(g=(iA=g)+33554432|0)>>>0<33554432?QA+1|0:QA))<<6|g>>>26)+(oA=GA-(-33554432&CA)|0)|0,E[A+20>>2]=QA,E[A+16>>2]=iA-(-67108864&g),g=Ig(eA,r,C,e),QA=w,iA=Ig(pA,Q,G,j),QA=w+QA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,oA=Ig(o,h,M,X),iA=w+QA|0,iA=(g=oA+g|0)>>>0>>0?iA+1|0:iA,QA=Ig(B,i,y,n),oA=w+iA|0,oA=(g=QA+g|0)>>>0>>0?oA+1|0:oA,iA=Ig(D,K,f,P),QA=w+oA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,iA=Ig(hA,a,F,u),QA=w+QA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,iA=Ig(k,q,W,V),QA=w+QA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,oA=Ig(rA,_,R,yA),iA=w+QA|0,iA=(g=oA+g|0)>>>0>>0?iA+1|0:iA,QA=Ig(EA,cA,N,z),oA=w+iA|0,oA=(g=QA+g|0)>>>0>>0?oA+1|0:oA,iA=Ig(DA,t,T,T>>31),QA=w+oA|0,QA=(QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA)+(iA=I>>26)|0,QA=(I=(oA=g)+(g=(67108863&I)<<6|tA>>>26)|0)>>>0>>0?QA+1|0:QA,QA=(I=(g=I)+16777216|0)>>>0<16777216?QA+1|0:QA,E[A+36>>2]=g-(-33554432&I),oA=_A-(-33554432&bA)|0,iA=aA-(g=-67108864&SA)|0,pA=FA-((g>>>0>aA>>>0)+BA|0)|0,I=(g=Ig((33554431&(g=QA))<<7|I>>>25,QA>>=25,19,0))+iA|0,iA=w+pA|0,QA=I>>>0>>0?iA+1|0:iA,QA=((67108863&(QA=(I=(g=I)+33554432|0)>>>0<33554432?QA+1|0:QA))<<6|I>>>26)+oA|0,E[A+4>>2]=QA,E[A>>2]=g-(-67108864&I)}function d(A,I,g,C,B){var Q,i=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,D=0,p=0,w=0,f=0,n=0,k=0,F=0,N=0,S=0,G=0,M=0,b=0;for(h=Q=h-288|0,D=(a[B+44|0]|a[B+45|0]<<8|a[B+46|0]<<16|a[B+47|0]<<24)^C>>>29,p=(a[B+40|0]|a[B+41|0]<<8|a[B+42|0]<<16|a[B+43|0]<<24)^C<<3,w=(a[B+36|0]|a[B+37|0]<<8|a[B+38|0]<<16|a[B+39|0]<<24)^g>>>29,C=(a[0|(c=B+32|0)]|a[c+1|0]<<8|a[c+2|0]<<16|a[c+3|0]<<24)^g<<3,y=B+16|0,r=B+48|0,_=B- -64|0,e=B+80|0,i=B+96|0,t=B+112|0;g=E[t+12>>2],E[Q+280>>2]=E[t+8>>2],E[Q+284>>2]=g,g=E[t+4>>2],E[Q+272>>2]=E[t>>2],E[Q+276>>2]=g,g=E[i+12>>2],E[Q+248>>2]=E[i+8>>2],E[Q+252>>2]=g,g=E[i+4>>2],E[Q+240>>2]=E[i>>2],E[Q+244>>2]=g,g=E[t+12>>2],E[Q+232>>2]=E[t+8>>2],E[Q+236>>2]=g,g=E[t+4>>2],E[Q+224>>2]=E[t>>2],E[Q+228>>2]=g,$A(s=Q+256|0,Q+240|0,Q+224|0),g=E[Q+268>>2],E[t+8>>2]=E[Q+264>>2],E[t+12>>2]=g,g=E[Q+260>>2],E[t>>2]=E[Q+256>>2],E[t+4>>2]=g,g=E[e+12>>2],E[Q+216>>2]=E[e+8>>2],E[Q+220>>2]=g,g=E[e+4>>2],E[Q+208>>2]=E[e>>2],E[Q+212>>2]=g,g=E[i+12>>2],E[Q+200>>2]=E[i+8>>2],E[Q+204>>2]=g,g=E[i+4>>2],E[Q+192>>2]=E[i>>2],E[Q+196>>2]=g,$A(s,Q+208|0,Q+192|0),g=E[Q+268>>2],E[i+8>>2]=E[Q+264>>2],E[i+12>>2]=g,g=E[Q+260>>2],E[i>>2]=E[Q+256>>2],E[i+4>>2]=g,g=E[_+12>>2],E[Q+184>>2]=E[_+8>>2],E[Q+188>>2]=g,g=E[_+4>>2],E[Q+176>>2]=E[_>>2],E[Q+180>>2]=g,g=E[e+12>>2],E[Q+168>>2]=E[e+8>>2],E[Q+172>>2]=g,g=E[e+4>>2],E[Q+160>>2]=E[e>>2],E[Q+164>>2]=g,$A(s,Q+176|0,Q+160|0),g=E[Q+268>>2],E[e+8>>2]=E[Q+264>>2],E[e+12>>2]=g,g=E[Q+260>>2],E[e>>2]=E[Q+256>>2],E[e+4>>2]=g,g=E[r+12>>2],E[Q+152>>2]=E[r+8>>2],E[Q+156>>2]=g,g=E[r+4>>2],E[Q+144>>2]=E[r>>2],E[Q+148>>2]=g,g=E[_+12>>2],E[Q+136>>2]=E[_+8>>2],E[Q+140>>2]=g,g=E[_+4>>2],E[Q+128>>2]=E[_>>2],E[Q+132>>2]=g,$A(s,Q+144|0,Q+128|0),g=E[Q+268>>2],E[_+8>>2]=E[Q+264>>2],E[_+12>>2]=g,g=E[Q+260>>2],E[_>>2]=E[Q+256>>2],E[_+4>>2]=g,g=E[c+12>>2],E[Q+120>>2]=E[c+8>>2],E[Q+124>>2]=g,g=E[c+4>>2],E[Q+112>>2]=E[c>>2],E[Q+116>>2]=g,g=E[r+12>>2],E[Q+104>>2]=E[r+8>>2],E[Q+108>>2]=g,g=E[r+4>>2],E[Q+96>>2]=E[r>>2],E[Q+100>>2]=g,$A(s,Q+112|0,Q+96|0),g=E[Q+268>>2],E[r+8>>2]=E[Q+264>>2],E[r+12>>2]=g,g=E[Q+260>>2],E[r>>2]=E[Q+256>>2],E[r+4>>2]=g,g=E[y+12>>2],E[Q+88>>2]=E[y+8>>2],E[Q+92>>2]=g,g=E[y+4>>2],E[Q+80>>2]=E[y>>2],E[Q+84>>2]=g,g=E[c+12>>2],E[Q+72>>2]=E[c+8>>2],E[Q+76>>2]=g,g=E[c+4>>2],E[Q+64>>2]=E[c>>2],E[Q+68>>2]=g,$A(s,Q+80|0,Q- -64|0),g=E[Q+268>>2],E[c+8>>2]=E[Q+264>>2],E[c+12>>2]=g,g=E[Q+260>>2],E[c>>2]=E[Q+256>>2],E[c+4>>2]=g,g=E[B+12>>2],E[Q+56>>2]=E[B+8>>2],E[Q+60>>2]=g,g=E[B+4>>2],E[Q+48>>2]=E[B>>2],E[Q+52>>2]=g,g=E[y+12>>2],E[Q+40>>2]=E[y+8>>2],E[Q+44>>2]=g,g=E[y+4>>2],E[Q+32>>2]=E[y>>2],E[Q+36>>2]=g,$A(s,Q+48|0,Q+32|0),g=E[Q+268>>2],E[y+8>>2]=E[Q+264>>2],E[y+12>>2]=g,g=E[Q+260>>2],E[y>>2]=E[Q+256>>2],E[y+4>>2]=g,g=E[Q+284>>2],E[Q+24>>2]=E[Q+280>>2],E[Q+28>>2]=g,g=E[Q+276>>2],E[Q+16>>2]=E[Q+272>>2],E[Q+20>>2]=g,g=E[B+12>>2],E[Q+8>>2]=E[B+8>>2],E[Q+12>>2]=g,g=E[B+4>>2],E[Q>>2]=E[B>>2],E[Q+4>>2]=g,$A(s,Q+16|0,Q),g=E[Q+268>>2],E[B+8>>2]=E[Q+264>>2],E[B+12>>2]=g,g=E[Q+260>>2],E[B>>2]=E[Q+256>>2],E[B+4>>2]=g,n=D^(a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24),E[B+12>>2]=n,k=p^(a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24),E[B+8>>2]=k,F=w^(a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24),E[B+4>>2]=F,N=C^(a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24),E[B>>2]=N,S=C^(a[0|_]|a[_+1|0]<<8|a[_+2|0]<<16|a[_+3|0]<<24),E[_>>2]=S,G=w^(a[B+68|0]|a[B+69|0]<<8|a[B+70|0]<<16|a[B+71|0]<<24),E[B+68>>2]=G,M=p^(a[B+72|0]|a[B+73|0]<<8|a[B+74|0]<<16|a[B+75|0]<<24),E[B+72>>2]=M,b=D^(a[B+76|0]|a[B+77|0]<<8|a[B+78|0]<<16|a[B+79|0]<<24),E[B+76>>2]=b,7!=(0|(f=f+1|0)););A:{I:{g:{if(g=I-16|0){if(16==(0|g))break g;break I}_=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,c=a[B+48|0]|a[B+49|0]<<8|a[B+50|0]<<16|a[B+51|0]<<24,y=a[B+32|0]|a[B+33|0]<<8|a[B+34|0]<<16|a[B+35|0]<<24,r=a[B+96|0]|a[B+97|0]<<8|a[B+98|0]<<16|a[B+99|0]<<24,e=a[B+80|0]|a[B+81|0]<<8|a[B+82|0]<<16|a[B+83|0]<<24,i=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,t=a[B+52|0]|a[B+53|0]<<8|a[B+54|0]<<16|a[B+55|0]<<24,s=a[B+36|0]|a[B+37|0]<<8|a[B+38|0]<<16|a[B+39|0]<<24,D=a[B+100|0]|a[B+101|0]<<8|a[B+102|0]<<16|a[B+103|0]<<24,p=a[B+84|0]|a[B+85|0]<<8|a[B+86|0]<<16|a[B+87|0]<<24,w=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,f=a[B+56|0]|a[B+57|0]<<8|a[B+58|0]<<16|a[B+59|0]<<24,C=a[B+40|0]|a[B+41|0]<<8|a[B+42|0]<<16|a[B+43|0]<<24,g=a[B+104|0]|a[B+105|0]<<8|a[B+106|0]<<16|a[B+107|0]<<24,I=a[B+88|0]|a[B+89|0]<<8|a[B+90|0]<<16|a[B+91|0]<<24,B=n^(a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24)^(a[B+60|0]|a[B+61|0]<<8|a[B+62|0]<<16|a[B+63|0]<<24)^(a[B+44|0]|a[B+45|0]<<8|a[B+46|0]<<16|a[B+47|0]<<24)^(a[B+92|0]|a[B+93|0]<<8|a[B+94|0]<<16|a[B+95|0]<<24)^(a[B+108|0]|a[B+109|0]<<8|a[B+110|0]<<16|a[B+111|0]<<24)^b,o[A+12|0]=B,o[A+13|0]=B>>>8,o[A+14|0]=B>>>16,o[A+15|0]=B>>>24,I=w^f^C^I^g^M^k,o[A+8|0]=I,o[A+9|0]=I>>>8,o[A+10|0]=I>>>16,o[A+11|0]=I>>>24,I=i^t^s^D^p^G^F,o[A+4|0]=I,o[A+5|0]=I>>>8,o[A+6|0]=I>>>16,o[A+7|0]=I>>>24,I=_^c^y^r^e^S^N,o[0|A]=I,o[A+1|0]=I>>>8,o[A+2|0]=I>>>16,o[A+3|0]=I>>>24;break A}t=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,s=a[B+48|0]|a[B+49|0]<<8|a[B+50|0]<<16|a[B+51|0]<<24,D=a[B+32|0]|a[B+33|0]<<8|a[B+34|0]<<16|a[B+35|0]<<24,p=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,w=a[B+52|0]|a[B+53|0]<<8|a[B+54|0]<<16|a[B+55|0]<<24,f=a[B+36|0]|a[B+37|0]<<8|a[B+38|0]<<16|a[B+39|0]<<24,C=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,g=a[B+56|0]|a[B+57|0]<<8|a[B+58|0]<<16|a[B+59|0]<<24,I=a[B+40|0]|a[B+41|0]<<8|a[B+42|0]<<16|a[B+43|0]<<24,i=n^(a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24)^(a[B+60|0]|a[B+61|0]<<8|a[B+62|0]<<16|a[B+63|0]<<24)^(a[B+44|0]|a[B+45|0]<<8|a[B+46|0]<<16|a[B+47|0]<<24),o[A+12|0]=i,o[A+13|0]=i>>>8,o[A+14|0]=i>>>16,o[A+15|0]=i>>>24,I=C^I^g^k,o[A+8|0]=I,o[A+9|0]=I>>>8,o[A+10|0]=I>>>16,o[A+11|0]=I>>>24,I=p^w^f^F,o[A+4|0]=I,o[A+5|0]=I>>>8,o[A+6|0]=I>>>16,o[A+7|0]=I>>>24,I=t^s^D^N,o[0|A]=I,o[A+1|0]=I>>>8,o[A+2|0]=I>>>16,o[A+3|0]=I>>>24,r=a[B+80|0]|a[B+81|0]<<8|a[B+82|0]<<16|a[B+83|0]<<24,e=a[0|(I=B- -64|0)]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,i=a[B+112|0]|a[B+113|0]<<8|a[B+114|0]<<16|a[B+115|0]<<24,t=a[B+96|0]|a[B+97|0]<<8|a[B+98|0]<<16|a[B+99|0]<<24,s=a[B+84|0]|a[B+85|0]<<8|a[B+86|0]<<16|a[B+87|0]<<24,D=a[B+68|0]|a[B+69|0]<<8|a[B+70|0]<<16|a[B+71|0]<<24,p=a[B+116|0]|a[B+117|0]<<8|a[B+118|0]<<16|a[B+119|0]<<24,w=a[B+100|0]|a[B+101|0]<<8|a[B+102|0]<<16|a[B+103|0]<<24,f=a[B+88|0]|a[B+89|0]<<8|a[B+90|0]<<16|a[B+91|0]<<24,C=a[B+72|0]|a[B+73|0]<<8|a[B+74|0]<<16|a[B+75|0]<<24,g=a[B+120|0]|a[B+121|0]<<8|a[B+122|0]<<16|a[B+123|0]<<24,I=a[B+104|0]|a[B+105|0]<<8|a[B+106|0]<<16|a[B+107|0]<<24,B=(a[B+92|0]|a[B+93|0]<<8|a[B+94|0]<<16|a[B+95|0]<<24)^(a[B+76|0]|a[B+77|0]<<8|a[B+78|0]<<16|a[B+79|0]<<24)^(a[B+124|0]|a[B+125|0]<<8|a[B+126|0]<<16|a[B+127|0]<<24)^(a[B+108|0]|a[B+109|0]<<8|a[B+110|0]<<16|a[B+111|0]<<24),o[A+28|0]=B,o[A+29|0]=B>>>8,o[A+30|0]=B>>>16,o[A+31|0]=B>>>24,I=f^C^I^g,o[A+24|0]=I,o[A+25|0]=I>>>8,o[A+26|0]=I>>>16,o[A+27|0]=I>>>24,I=s^D^p^w,o[A+20|0]=I,o[A+21|0]=I>>>8,o[A+22|0]=I>>>16,o[A+23|0]=I>>>24,I=r^e^i^t,o[A+16|0]=I,o[A+17|0]=I>>>8,o[A+18|0]=I>>>16,o[A+19|0]=I>>>24;break A}Hg(A,0,I)}h=Q+288|0}function J(A,I,g,C){var B=0,Q=0,i=0,o=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,f=0,n=0,k=0,F=0,N=0,S=0,G=0,M=0,b=0,K=0,H=0,Y=0;for(B=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,E[g>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,E[g+4>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,E[g+8>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,E[g+12>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,E[g+16>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,E[g+20>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,E[g+24>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,E[g+28>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=a[I+32|0]|a[I+33|0]<<8|a[I+34|0]<<16|a[I+35|0]<<24,E[g+32>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=a[I+36|0]|a[I+37|0]<<8|a[I+38|0]<<16|a[I+39|0]<<24,E[g+36>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=a[I+40|0]|a[I+41|0]<<8|a[I+42|0]<<16|a[I+43|0]<<24,E[g+40>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=a[I+44|0]|a[I+45|0]<<8|a[I+46|0]<<16|a[I+47|0]<<24,E[g+44>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=a[I+48|0]|a[I+49|0]<<8|a[I+50|0]<<16|a[I+51|0]<<24,E[g+48>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=a[I+52|0]|a[I+53|0]<<8|a[I+54|0]<<16|a[I+55|0]<<24,E[g+52>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=a[I+56|0]|a[I+57|0]<<8|a[I+58|0]<<16|a[I+59|0]<<24,E[g+56>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,I=a[I+60|0]|a[I+61|0]<<8|a[I+62|0]<<16|a[I+63|0]<<24,E[g+60>>2]=I<<24|(65280&I)<<8|I>>>8&65280|I>>>24,I=E[A+28>>2],E[C+24>>2]=E[A+24>>2],E[C+28>>2]=I,I=E[A+20>>2],E[C+16>>2]=E[A+16>>2],E[C+20>>2]=I,I=E[A+12>>2],E[C+8>>2]=E[A+8>>2],E[C+12>>2]=I,I=E[A+4>>2],E[C>>2]=E[A>>2],E[C+4>>2]=I;_=E[C+28>>2],B=(I=n<<2)+g|0,i=E[C+16>>2],c=E[B>>2]+(Lg(i,26)^Lg(i,21)^Lg(i,7))|0,r=(_=((Q=E[I+34432>>2]+c|0)+(i&((c=E[C+24>>2])^(e=E[C+20>>2]))^c)|0)+_|0)+E[C+12>>2]|0,E[C+12>>2]=r,_=(s=_+(Lg(t=E[C>>2],30)^Lg(t,19)^Lg(t,10))|0)+(t&((Q=E[C+8>>2])|(o=E[C+4>>2]))|Q&o)|0,E[C+28>>2]=_,Q=(s=Q)+(c=(E[(D=(Q=4|I)+g|0)>>2]+((c+(e^r&(i^e))|0)+(Lg(r,26)^Lg(r,21)^Lg(r,7))|0)|0)+E[Q+34432>>2]|0)|0,E[C+8>>2]=Q,c=(c+(_&(o|t)|o&t)|0)+(Lg(_,30)^Lg(_,19)^Lg(_,10))|0,E[C+24>>2]=c,e=(s=o)+(o=(((e+E[(f=(o=8|I)+g|0)>>2]|0)+E[o+34432>>2]|0)+(i^Q&(i^r))|0)+(Lg(Q,26)^Lg(Q,21)^Lg(Q,7))|0)|0,E[C+4>>2]=e,o=o+((c&(_|t)|_&t)+(Lg(c,30)^Lg(c,19)^Lg(c,10))|0)|0,E[C+20>>2]=o,i=(s=t)+(t=(((i+E[(k=(t=12|I)+g|0)>>2]|0)+E[t+34432>>2]|0)+(r^e&(Q^r))|0)+(Lg(e,26)^Lg(e,21)^Lg(e,7))|0)|0,E[C>>2]=i,t=t+((o&(_|c)|_&c)+(Lg(o,30)^Lg(o,19)^Lg(o,10))|0)|0,E[C+16>>2]=t,r=(y=((((s=r)+E[(F=(r=16|I)+g|0)>>2]|0)+E[r+34432>>2]|0)+(Q^i&(Q^e))|0)+(Lg(i,26)^Lg(i,21)^Lg(i,7))|0)+((t&(o|c)|o&c)+(Lg(t,30)^Lg(t,19)^Lg(t,10))|0)|0,E[C+12>>2]=r,y=_+y|0,E[C+28>>2]=y,_=(Q=(((Q+E[(N=(_=20|I)+g|0)>>2]|0)+E[_+34432>>2]|0)+(e^y&(i^e))|0)+(Lg(y,26)^Lg(y,21)^Lg(y,7))|0)+((r&(o|t)|o&t)+(Lg(r,30)^Lg(r,19)^Lg(r,10))|0)|0,E[C+8>>2]=_,Q=Q+c|0,E[C+24>>2]=Q,c=(e=(((e+E[(S=(c=24|I)+g|0)>>2]|0)+E[c+34432>>2]|0)+(i^Q&(i^y))|0)+(Lg(Q,26)^Lg(Q,21)^Lg(Q,7))|0)+((_&(t|r)|t&r)+(Lg(_,30)^Lg(_,19)^Lg(_,10))|0)|0,E[C+4>>2]=c,e=o+e|0,E[C+20>>2]=e,o=(i=(((i+E[(G=(o=28|I)+g|0)>>2]|0)+E[o+34432>>2]|0)+(y^e&(Q^y))|0)+(Lg(e,26)^Lg(e,21)^Lg(e,7))|0)+((c&(_|r)|_&r)+(Lg(c,30)^Lg(c,19)^Lg(c,10))|0)|0,E[C>>2]=o,i=i+t|0,E[C+16>>2]=i,t=(y=(((y+E[(M=(t=32|I)+g|0)>>2]|0)+E[t+34432>>2]|0)+(Q^i&(Q^e))|0)+(Lg(i,26)^Lg(i,21)^Lg(i,7))|0)+((o&(_|c)|_&c)+(Lg(o,30)^Lg(o,19)^Lg(o,10))|0)|0,E[C+28>>2]=t,y=r+y|0,E[C+12>>2]=y,r=(Q=(((Q+E[(b=(r=36|I)+g|0)>>2]|0)+E[r+34432>>2]|0)+(e^y&(i^e))|0)+(Lg(y,26)^Lg(y,21)^Lg(y,7))|0)+((t&(o|c)|o&c)+(Lg(t,30)^Lg(t,19)^Lg(t,10))|0)|0,E[C+24>>2]=r,Q=Q+_|0,E[C+8>>2]=Q,_=(e=(((e+E[(K=(_=40|I)+g|0)>>2]|0)+E[_+34432>>2]|0)+(i^Q&(i^y))|0)+(Lg(Q,26)^Lg(Q,21)^Lg(Q,7))|0)+((r&(o|t)|o&t)+(Lg(r,30)^Lg(r,19)^Lg(r,10))|0)|0,E[C+20>>2]=_,e=c+e|0,E[C+4>>2]=e,s=(c=44|I)+g|0,c=(i=((i+(E[c+34432>>2]+E[s>>2]|0)|0)+(y^e&(Q^y))|0)+(Lg(e,26)^Lg(e,21)^Lg(e,7))|0)+((_&(t|r)|t&r)+(Lg(_,30)^Lg(_,19)^Lg(_,10))|0)|0,E[C+16>>2]=c,o=o+i|0,E[C>>2]=o,w=(i=48|I)+g|0,i=(y=((y+(E[i+34432>>2]+E[w>>2]|0)|0)+(Q^o&(Q^e))|0)+(Lg(o,26)^Lg(o,21)^Lg(o,7))|0)+((c&(_|r)|_&r)+(Lg(c,30)^Lg(c,19)^Lg(c,10))|0)|0,E[C+12>>2]=i,t=t+y|0,E[C+28>>2]=t,p=(y=52|I)+g|0,Q=(y=(((E[y+34432>>2]+E[p>>2]|0)+Q|0)+(e^t&(o^e))|0)+(Lg(t,26)^Lg(t,21)^Lg(t,7))|0)+((i&(_|c)|_&c)+(Lg(i,30)^Lg(i,19)^Lg(i,10))|0)|0,E[C+8>>2]=Q,r=r+y|0,E[C+24>>2]=r,y=(h=56|I)+g|0,e=(h=(((E[h+34432>>2]+E[y>>2]|0)+e|0)+(o^r&(o^t))|0)+(Lg(r,26)^Lg(r,21)^Lg(r,7))|0)+((Q&(c|i)|c&i)+(Lg(Q,30)^Lg(Q,19)^Lg(Q,10))|0)|0,E[C+4>>2]=e,_=_+h|0,E[C+20>>2]=_,h=(I|=60)+g|0,_=(I=((o+(E[I+34432>>2]+E[h>>2]|0)|0)+(t^_&(t^r))|0)+(Lg(_,26)^Lg(_,21)^Lg(_,7))|0)+((e&(Q|i)|Q&i)+(Lg(e,30)^Lg(e,19)^Lg(e,10))|0)|0,E[C>>2]=_,E[C+16>>2]=I+c,48!=(0|n);)o=E[b>>2],n=n+16|0,I=E[y>>2],_=(Q=E[B>>2]+(o+(Lg(I,15)^Lg(I,13)^I>>>10)|0)|0)+(Lg(c=E[D>>2],25)^Lg(c,14)^c>>>3)|0,E[(n<<2)+g>>2]=_,r=(i=(Q=(t=E[K>>2])+c|0)+(Lg(c=E[h>>2],15)^Lg(c,13)^c>>>10)|0)+(Lg(Q=E[f>>2],25)^Lg(Q,14)^Q>>>3)|0,E[B+68>>2]=r,e=(s=((i=Q)+(Q=E[s>>2])|0)+(Lg(_,15)^Lg(_,13)^_>>>10)|0)+(Lg(i=E[k>>2],25)^Lg(i,14)^i>>>3)|0,E[B+72>>2]=e,y=(h=((s=i)+(i=E[w>>2])|0)+(Lg(r,15)^Lg(r,13)^r>>>10)|0)+(Lg(s=E[F>>2],25)^Lg(s,14)^s>>>3)|0,E[B+76>>2]=y,w=(h=((h=s)+(s=E[p>>2])|0)+(Lg(e,15)^Lg(e,13)^e>>>10)|0)+(Lg(p=E[N>>2],25)^Lg(p,14)^p>>>3)|0,E[B+80>>2]=w,p=(D=(I+p|0)+(Lg(y,15)^Lg(y,13)^y>>>10)|0)+(Lg(h=E[S>>2],25)^Lg(h,14)^h>>>3)|0,E[B+84>>2]=p,h=((c+h|0)+(Lg(f=E[G>>2],25)^Lg(f,14)^f>>>3)|0)+(Lg(w,15)^Lg(w,13)^w>>>10)|0,E[B+88>>2]=h,r=((D=E[M>>2])+(r+(Lg(o,25)^Lg(o,14)^o>>>3)|0)|0)+(Lg(h,15)^Lg(h,13)^h>>>10)|0,E[B+96>>2]=r,D=((_+f|0)+(Lg(D,25)^Lg(D,14)^D>>>3)|0)+(Lg(p,15)^Lg(p,13)^p>>>10)|0,E[B+92>>2]=D,y=(y+(t+(Lg(Q,25)^Lg(Q,14)^Q>>>3)|0)|0)+(Lg(r,15)^Lg(r,13)^r>>>10)|0,E[B+104>>2]=y,o=(e+(o+(Lg(t,25)^Lg(t,14)^t>>>3)|0)|0)+(Lg(D,15)^Lg(D,13)^D>>>10)|0,E[B+100>>2]=o,t=(p+(i+(Lg(s,25)^Lg(s,14)^s>>>3)|0)|0)+(Lg(y,15)^Lg(y,13)^y>>>10)|0,E[B+112>>2]=t,o=(w+(Q+(Lg(i,25)^Lg(i,14)^i>>>3)|0)|0)+(Lg(o,15)^Lg(o,13)^o>>>10)|0,E[B+108>>2]=o,H=B,Y=(D+(I+(Lg(c,25)^Lg(c,14)^c>>>3)|0)|0)+(Lg(t,15)^Lg(t,13)^t>>>10)|0,E[H+120>>2]=Y,I=(h+(s+(Lg(I,25)^Lg(I,14)^I>>>3)|0)|0)+(Lg(o,15)^Lg(o,13)^o>>>10)|0,E[B+116>>2]=I,H=B,Y=(r+(c+(Lg(_,25)^Lg(_,14)^_>>>3)|0)|0)+(Lg(I,15)^Lg(I,13)^I>>>10)|0,E[H+124>>2]=Y;E[A>>2]=_+E[A>>2],E[A+4>>2]=E[A+4>>2]+E[C+4>>2],E[A+8>>2]=E[A+8>>2]+E[C+8>>2],E[A+12>>2]=E[A+12>>2]+E[C+12>>2],E[A+16>>2]=E[A+16>>2]+E[C+16>>2],E[A+20>>2]=E[A+20>>2]+E[C+20>>2],E[A+24>>2]=E[A+24>>2]+E[C+24>>2],E[A+28>>2]=E[A+28>>2]+E[C+28>>2]}function U(A,I,g){var C,B,Q,i,_,c,t,r,e,y,s,D,p,w,f,n,k,F,N,S,G,M,b,K=0,H=0,Y=0,d=0,J=0,U=0,l=0,m=0;h=C=h-288|0,t=a[g+16|0]|a[g+17|0]<<8|a[g+18|0]<<16|a[g+19|0]<<24,r=a[g+48|0]|a[g+49|0]<<8|a[g+50|0]<<16|a[g+51|0]<<24,e=a[g+20|0]|a[g+21|0]<<8|a[g+22|0]<<16|a[g+23|0]<<24,y=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,s=a[g+52|0]|a[g+53|0]<<8|a[g+54|0]<<16|a[g+55|0]<<24,D=a[g+24|0]|a[g+25|0]<<8|a[g+26|0]<<16|a[g+27|0]<<24,p=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,w=a[g+56|0]|a[g+57|0]<<8|a[g+58|0]<<16|a[g+59|0]<<24,J=a[g+28|0]|a[g+29|0]<<8|a[g+30|0]<<16|a[g+31|0]<<24,f=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,n=a[g+60|0]|a[g+61|0]<<8|a[g+62|0]<<16|a[g+63|0]<<24,H=a[g+32|0]|a[g+33|0]<<8|a[g+34|0]<<16|a[g+35|0]<<24,U=a[g+80|0]|a[g+81|0]<<8|a[g+82|0]<<16|a[g+83|0]<<24,k=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,F=a[g+112|0]|a[g+113|0]<<8|a[g+114|0]<<16|a[g+115|0]<<24,K=a[g+96|0]|a[g+97|0]<<8|a[g+98|0]<<16|a[g+99|0]<<24,Y=a[g+36|0]|a[g+37|0]<<8|a[g+38|0]<<16|a[g+39|0]<<24,l=a[g+84|0]|a[g+85|0]<<8|a[g+86|0]<<16|a[g+87|0]<<24,N=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,S=a[g+116|0]|a[g+117|0]<<8|a[g+118|0]<<16|a[g+119|0]<<24,Q=a[g+100|0]|a[g+101|0]<<8|a[g+102|0]<<16|a[g+103|0]<<24,d=a[g+40|0]|a[g+41|0]<<8|a[g+42|0]<<16|a[g+43|0]<<24,m=a[g+88|0]|a[g+89|0]<<8|a[g+90|0]<<16|a[g+91|0]<<24,G=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,M=a[g+120|0]|a[g+121|0]<<8|a[g+122|0]<<16|a[g+123|0]<<24,i=a[g+104|0]|a[g+105|0]<<8|a[g+106|0]<<16|a[g+107|0]<<24,b=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,B=(_=a[g+44|0]|a[g+45|0]<<8|a[g+46|0]<<16|a[g+47|0]<<24)^(c=a[g+108|0]|a[g+109|0]<<8|a[g+110|0]<<16|a[g+111|0]<<24)&(a[g+124|0]|a[g+125|0]<<8|a[g+126|0]<<16|a[g+127|0]<<24)^(a[g+92|0]|a[g+93|0]<<8|a[g+94|0]<<16|a[g+95|0]<<24)^(a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24),o[A+28|0]=B,o[A+29|0]=B>>>8,o[A+30|0]=B>>>16,o[A+31|0]=B>>>24,m=d^i&M^m^G,o[A+24|0]=m,o[A+25|0]=m>>>8,o[A+26|0]=m>>>16,o[A+27|0]=m>>>24,l=Y^Q&S^l^N,o[A+20|0]=l,o[A+21|0]=l>>>8,o[A+22|0]=l>>>16,o[A+23|0]=l>>>24,U=H^K&F^U^k,o[A+16|0]=U,o[A+17|0]=U>>>8,o[A+18|0]=U>>>16,o[A+19|0]=U>>>24,J=n&_^J^f^c,o[A+12|0]=J,o[A+13|0]=J>>>8,o[A+14|0]=J>>>16,o[A+15|0]=J>>>24,d=d&w^D^p^i,o[A+8|0]=d,o[A+9|0]=d>>>8,o[A+10|0]=d>>>16,o[A+11|0]=d>>>24,Y=Y&s^e^y^Q,o[A+4|0]=Y,o[A+5|0]=Y>>>8,o[A+6|0]=Y>>>16,o[A+7|0]=Y>>>24,H=K^H&r^t^b,o[0|A]=H,o[A+1|0]=H>>>8,o[A+2|0]=H>>>16,o[A+3|0]=H>>>24,A=E[g+124>>2],E[C+280>>2]=E[g+120>>2],E[C+284>>2]=A,A=E[g+116>>2],E[C+272>>2]=E[g+112>>2],E[C+276>>2]=A,A=E[g+108>>2],E[C+248>>2]=E[g+104>>2],E[C+252>>2]=A,A=E[g+100>>2],E[C+240>>2]=E[g+96>>2],E[C+244>>2]=A,A=E[g+124>>2],E[C+232>>2]=E[g+120>>2],E[C+236>>2]=A,A=E[g+116>>2],E[C+224>>2]=E[g+112>>2],E[C+228>>2]=A,$A(I=C+256|0,C+240|0,C+224|0),A=E[C+268>>2],E[g+120>>2]=E[C+264>>2],E[g+124>>2]=A,A=E[C+260>>2],E[g+112>>2]=E[C+256>>2],E[g+116>>2]=A,A=E[g+92>>2],E[C+216>>2]=E[g+88>>2],E[C+220>>2]=A,A=E[g+84>>2],E[C+208>>2]=E[g+80>>2],E[C+212>>2]=A,A=E[g+108>>2],E[C+200>>2]=E[g+104>>2],E[C+204>>2]=A,A=E[g+100>>2],E[C+192>>2]=E[g+96>>2],E[C+196>>2]=A,$A(I,C+208|0,C+192|0),A=E[C+268>>2],E[g+104>>2]=E[C+264>>2],E[g+108>>2]=A,A=E[C+260>>2],E[g+96>>2]=E[C+256>>2],E[g+100>>2]=A,A=E[g+76>>2],E[C+184>>2]=E[g+72>>2],E[C+188>>2]=A,K=E[4+(A=g- -64|0)>>2],E[C+176>>2]=E[A>>2],E[C+180>>2]=K,K=E[g+92>>2],E[C+168>>2]=E[g+88>>2],E[C+172>>2]=K,K=E[g+84>>2],E[C+160>>2]=E[g+80>>2],E[C+164>>2]=K,$A(I,C+176|0,C+160|0),K=E[C+268>>2],E[g+88>>2]=E[C+264>>2],E[g+92>>2]=K,K=E[C+260>>2],E[g+80>>2]=E[C+256>>2],E[g+84>>2]=K,K=E[g+60>>2],E[C+152>>2]=E[g+56>>2],E[C+156>>2]=K,K=E[g+52>>2],E[C+144>>2]=E[g+48>>2],E[C+148>>2]=K,K=E[g+76>>2],E[C+136>>2]=E[g+72>>2],E[C+140>>2]=K,K=E[A+4>>2],E[C+128>>2]=E[A>>2],E[C+132>>2]=K,$A(I,C+144|0,C+128|0),K=E[C+268>>2],E[g+72>>2]=E[C+264>>2],E[g+76>>2]=K,K=E[C+260>>2],E[A>>2]=E[C+256>>2],E[A+4>>2]=K,K=E[g+44>>2],E[C+120>>2]=E[g+40>>2],E[C+124>>2]=K,K=E[g+36>>2],E[C+112>>2]=E[g+32>>2],E[C+116>>2]=K,K=E[g+60>>2],E[C+104>>2]=E[g+56>>2],E[C+108>>2]=K,K=E[g+52>>2],E[C+96>>2]=E[g+48>>2],E[C+100>>2]=K,$A(I,C+112|0,C+96|0),K=E[C+268>>2],E[g+56>>2]=E[C+264>>2],E[g+60>>2]=K,K=E[C+260>>2],E[g+48>>2]=E[C+256>>2],E[g+52>>2]=K,K=E[g+28>>2],E[C+88>>2]=E[g+24>>2],E[C+92>>2]=K,K=E[g+20>>2],E[C+80>>2]=E[g+16>>2],E[C+84>>2]=K,K=E[g+44>>2],E[C+72>>2]=E[g+40>>2],E[C+76>>2]=K,K=E[g+36>>2],E[C+64>>2]=E[g+32>>2],E[C+68>>2]=K,$A(I,C+80|0,C- -64|0),K=E[C+268>>2],E[g+40>>2]=E[C+264>>2],E[g+44>>2]=K,K=E[C+260>>2],E[g+32>>2]=E[C+256>>2],E[g+36>>2]=K,K=E[g+12>>2],E[C+56>>2]=E[g+8>>2],E[C+60>>2]=K,K=E[g+4>>2],E[C+48>>2]=E[g>>2],E[C+52>>2]=K,K=E[g+28>>2],E[C+40>>2]=E[g+24>>2],E[C+44>>2]=K,K=E[g+20>>2],E[C+32>>2]=E[g+16>>2],E[C+36>>2]=K,$A(I,C+48|0,C+32|0),K=E[C+268>>2],E[g+24>>2]=E[C+264>>2],E[g+28>>2]=K,K=E[C+260>>2],E[g+16>>2]=E[C+256>>2],E[g+20>>2]=K,K=E[C+284>>2],E[C+24>>2]=E[C+280>>2],E[C+28>>2]=K,K=E[C+276>>2],E[C+16>>2]=E[C+272>>2],E[C+20>>2]=K,K=E[g+12>>2],E[C+8>>2]=E[g+8>>2],E[C+12>>2]=K,K=E[g+4>>2],E[C>>2]=E[g>>2],E[C+4>>2]=K,$A(I,C+16|0,C),I=E[C+268>>2],E[g+8>>2]=E[C+264>>2],E[g+12>>2]=I,I=E[C+260>>2],E[g>>2]=E[C+256>>2],E[g+4>>2]=I,E[g+12>>2]=J^(a[g+12|0]|a[g+13|0]<<8|a[g+14|0]<<16|a[g+15|0]<<24),E[g+8>>2]=d^(a[g+8|0]|a[g+9|0]<<8|a[g+10|0]<<16|a[g+11|0]<<24),E[g+4>>2]=Y^(a[g+4|0]|a[g+5|0]<<8|a[g+6|0]<<16|a[g+7|0]<<24),E[g>>2]=H^(a[0|g]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24),E[A>>2]=U^(a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24),E[g+68>>2]=l^(a[g+68|0]|a[g+69|0]<<8|a[g+70|0]<<16|a[g+71|0]<<24),E[g+72>>2]=m^(a[g+72|0]|a[g+73|0]<<8|a[g+74|0]<<16|a[g+75|0]<<24),E[g+76>>2]=B^(a[g+76|0]|a[g+77|0]<<8|a[g+78|0]<<16|a[g+79|0]<<24),h=C+288|0}function l(A,I,g){var C,B,Q,i,_,c,t,r,e,y,s,D,p,w,f,n,k,F,N,S,G,M,b,K,H,Y,d,J,U,l,m=0;h=C=h-288|0,k=a[g+16|0]|a[g+17|0]<<8|a[g+18|0]<<16|a[g+19|0]<<24,F=a[g+48|0]|a[g+49|0]<<8|a[g+50|0]<<16|a[g+51|0]<<24,B=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,N=a[g+20|0]|a[g+21|0]<<8|a[g+22|0]<<16|a[g+23|0]<<24,S=a[g+52|0]|a[g+53|0]<<8|a[g+54|0]<<16|a[g+55|0]<<24,Q=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,G=a[g+24|0]|a[g+25|0]<<8|a[g+26|0]<<16|a[g+27|0]<<24,M=a[g+56|0]|a[g+57|0]<<8|a[g+58|0]<<16|a[g+59|0]<<24,i=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,b=a[g+28|0]|a[g+29|0]<<8|a[g+30|0]<<16|a[g+31|0]<<24,K=a[g+60|0]|a[g+61|0]<<8|a[g+62|0]<<16|a[g+63|0]<<24,m=a[g+32|0]|a[g+33|0]<<8|a[g+34|0]<<16|a[g+35|0]<<24,_=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,H=a[g+80|0]|a[g+81|0]<<8|a[g+82|0]<<16|a[g+83|0]<<24,Y=a[g+112|0]|a[g+113|0]<<8|a[g+114|0]<<16|a[g+115|0]<<24,c=a[g+96|0]|a[g+97|0]<<8|a[g+98|0]<<16|a[g+99|0]<<24,t=a[g+36|0]|a[g+37|0]<<8|a[g+38|0]<<16|a[g+39|0]<<24,r=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,d=a[g+84|0]|a[g+85|0]<<8|a[g+86|0]<<16|a[g+87|0]<<24,J=a[g+116|0]|a[g+117|0]<<8|a[g+118|0]<<16|a[g+119|0]<<24,e=a[g+100|0]|a[g+101|0]<<8|a[g+102|0]<<16|a[g+103|0]<<24,y=a[g+40|0]|a[g+41|0]<<8|a[g+42|0]<<16|a[g+43|0]<<24,s=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,U=a[g+88|0]|a[g+89|0]<<8|a[g+90|0]<<16|a[g+91|0]<<24,l=a[g+120|0]|a[g+121|0]<<8|a[g+122|0]<<16|a[g+123|0]<<24,D=a[g+104|0]|a[g+105|0]<<8|a[g+106|0]<<16|a[g+107|0]<<24,p=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,I=(w=a[g+44|0]|a[g+45|0]<<8|a[g+46|0]<<16|a[g+47|0]<<24)^(f=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24)^(n=a[g+108|0]|a[g+109|0]<<8|a[g+110|0]<<16|a[g+111|0]<<24)&(a[g+124|0]|a[g+125|0]<<8|a[g+126|0]<<16|a[g+127|0]<<24)^(a[g+92|0]|a[g+93|0]<<8|a[g+94|0]<<16|a[g+95|0]<<24),o[A+28|0]=I,o[A+29|0]=I>>>8,o[A+30|0]=I>>>16,o[A+31|0]=I>>>24,I=D&l^U^s^y,o[A+24|0]=I,o[A+25|0]=I>>>8,o[A+26|0]=I>>>16,o[A+27|0]=I>>>24,I=e&J^d^r^t,o[A+20|0]=I,o[A+21|0]=I>>>8,o[A+22|0]=I>>>16,o[A+23|0]=I>>>24,I=m^c&Y^H^_,o[A+16|0]=I,o[A+17|0]=I>>>8,o[A+18|0]=I>>>16,o[A+19|0]=I>>>24,I=K&w^b^i^n,o[A+12|0]=I,o[A+13|0]=I>>>8,o[A+14|0]=I>>>16,o[A+15|0]=I>>>24,I=y&M^G^Q^D,o[A+8|0]=I,o[A+9|0]=I>>>8,o[A+10|0]=I>>>16,o[A+11|0]=I>>>24,I=t&S^N^B^e,o[A+4|0]=I,o[A+5|0]=I>>>8,o[A+6|0]=I>>>16,o[A+7|0]=I>>>24,I=m&F^k^p^c,o[0|A]=I,o[A+1|0]=I>>>8,o[A+2|0]=I>>>16,o[A+3|0]=I>>>24,A=E[g+124>>2],E[C+280>>2]=E[g+120>>2],E[C+284>>2]=A,A=E[g+116>>2],E[C+272>>2]=E[g+112>>2],E[C+276>>2]=A,A=E[g+108>>2],E[C+248>>2]=E[g+104>>2],E[C+252>>2]=A,A=E[g+100>>2],E[C+240>>2]=E[g+96>>2],E[C+244>>2]=A,A=E[g+124>>2],E[C+232>>2]=E[g+120>>2],E[C+236>>2]=A,A=E[g+116>>2],E[C+224>>2]=E[g+112>>2],E[C+228>>2]=A,$A(I=C+256|0,C+240|0,C+224|0),A=E[C+268>>2],E[g+120>>2]=E[C+264>>2],E[g+124>>2]=A,A=E[C+260>>2],E[g+112>>2]=E[C+256>>2],E[g+116>>2]=A,A=E[g+92>>2],E[C+216>>2]=E[g+88>>2],E[C+220>>2]=A,A=E[g+84>>2],E[C+208>>2]=E[g+80>>2],E[C+212>>2]=A,A=E[g+108>>2],E[C+200>>2]=E[g+104>>2],E[C+204>>2]=A,A=E[g+100>>2],E[C+192>>2]=E[g+96>>2],E[C+196>>2]=A,$A(I,C+208|0,C+192|0),A=E[C+268>>2],E[g+104>>2]=E[C+264>>2],E[g+108>>2]=A,A=E[C+260>>2],E[g+96>>2]=E[C+256>>2],E[g+100>>2]=A,A=E[g+76>>2],E[C+184>>2]=E[g+72>>2],E[C+188>>2]=A,m=E[4+(A=g- -64|0)>>2],E[C+176>>2]=E[A>>2],E[C+180>>2]=m,m=E[g+92>>2],E[C+168>>2]=E[g+88>>2],E[C+172>>2]=m,m=E[g+84>>2],E[C+160>>2]=E[g+80>>2],E[C+164>>2]=m,$A(I,C+176|0,C+160|0),m=E[C+268>>2],E[g+88>>2]=E[C+264>>2],E[g+92>>2]=m,m=E[C+260>>2],E[g+80>>2]=E[C+256>>2],E[g+84>>2]=m,m=E[g+60>>2],E[C+152>>2]=E[g+56>>2],E[C+156>>2]=m,m=E[g+52>>2],E[C+144>>2]=E[g+48>>2],E[C+148>>2]=m,m=E[g+76>>2],E[C+136>>2]=E[g+72>>2],E[C+140>>2]=m,m=E[A+4>>2],E[C+128>>2]=E[A>>2],E[C+132>>2]=m,$A(I,C+144|0,C+128|0),m=E[C+268>>2],E[g+72>>2]=E[C+264>>2],E[g+76>>2]=m,m=E[C+260>>2],E[A>>2]=E[C+256>>2],E[A+4>>2]=m,m=E[g+44>>2],E[C+120>>2]=E[g+40>>2],E[C+124>>2]=m,m=E[g+36>>2],E[C+112>>2]=E[g+32>>2],E[C+116>>2]=m,m=E[g+60>>2],E[C+104>>2]=E[g+56>>2],E[C+108>>2]=m,m=E[g+52>>2],E[C+96>>2]=E[g+48>>2],E[C+100>>2]=m,$A(I,C+112|0,C+96|0),m=E[C+268>>2],E[g+56>>2]=E[C+264>>2],E[g+60>>2]=m,m=E[C+260>>2],E[g+48>>2]=E[C+256>>2],E[g+52>>2]=m,m=E[g+28>>2],E[C+88>>2]=E[g+24>>2],E[C+92>>2]=m,m=E[g+20>>2],E[C+80>>2]=E[g+16>>2],E[C+84>>2]=m,m=E[g+44>>2],E[C+72>>2]=E[g+40>>2],E[C+76>>2]=m,m=E[g+36>>2],E[C+64>>2]=E[g+32>>2],E[C+68>>2]=m,$A(I,C+80|0,C- -64|0),m=E[C+268>>2],E[g+40>>2]=E[C+264>>2],E[g+44>>2]=m,m=E[C+260>>2],E[g+32>>2]=E[C+256>>2],E[g+36>>2]=m,m=E[g+12>>2],E[C+56>>2]=E[g+8>>2],E[C+60>>2]=m,m=E[g+4>>2],E[C+48>>2]=E[g>>2],E[C+52>>2]=m,m=E[g+28>>2],E[C+40>>2]=E[g+24>>2],E[C+44>>2]=m,m=E[g+20>>2],E[C+32>>2]=E[g+16>>2],E[C+36>>2]=m,$A(I,C+48|0,C+32|0),m=E[C+268>>2],E[g+24>>2]=E[C+264>>2],E[g+28>>2]=m,m=E[C+260>>2],E[g+16>>2]=E[C+256>>2],E[g+20>>2]=m,m=E[C+284>>2],E[C+24>>2]=E[C+280>>2],E[C+28>>2]=m,m=E[C+276>>2],E[C+16>>2]=E[C+272>>2],E[C+20>>2]=m,m=E[g+12>>2],E[C+8>>2]=E[g+8>>2],E[C+12>>2]=m,m=E[g+4>>2],E[C>>2]=E[g>>2],E[C+4>>2]=m,$A(I,C+16|0,C),I=E[C+268>>2],E[g+8>>2]=E[C+264>>2],E[g+12>>2]=I,I=E[C+260>>2],E[g>>2]=E[C+256>>2],E[g+4>>2]=I,E[g+12>>2]=(a[g+12|0]|a[g+13|0]<<8|a[g+14|0]<<16|a[g+15|0]<<24)^i,E[g+8>>2]=(a[g+8|0]|a[g+9|0]<<8|a[g+10|0]<<16|a[g+11|0]<<24)^Q,E[g+4>>2]=(a[g+4|0]|a[g+5|0]<<8|a[g+6|0]<<16|a[g+7|0]<<24)^B,E[g>>2]=(a[0|g]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24)^p,E[A>>2]=(a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24)^_,E[g+68>>2]=(a[g+68|0]|a[g+69|0]<<8|a[g+70|0]<<16|a[g+71|0]<<24)^r,E[g+72>>2]=(a[g+72|0]|a[g+73|0]<<8|a[g+74|0]<<16|a[g+75|0]<<24)^s,E[g+76>>2]=f^(a[g+76|0]|a[g+77|0]<<8|a[g+78|0]<<16|a[g+79|0]<<24),h=C+288|0}function m(A,I,g,C,B){var Q,i=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,D=0,p=0,w=0,f=0,n=0,k=0,F=0,N=0;for(h=Q=h-224|0,p=(a[B+60|0]|a[B+61|0]<<8|a[B+62|0]<<16|a[B+63|0]<<24)^C>>>29,w=(a[B+56|0]|a[B+57|0]<<8|a[B+58|0]<<16|a[B+59|0]<<24)^C<<3,e=(a[B+52|0]|a[B+53|0]<<8|a[B+54|0]<<16|a[B+55|0]<<24)^g>>>29,s=(a[0|(i=B+48|0)]|a[i+1|0]<<8|a[i+2|0]<<16|a[i+3|0]<<24)^g<<3,_=B+16|0,c=B+32|0,t=B- -64|0,r=B+80|0;g=E[r+12>>2],E[Q+216>>2]=E[r+8>>2],E[Q+220>>2]=g,g=E[r+4>>2],E[Q+208>>2]=E[r>>2],E[Q+212>>2]=g,g=E[t+12>>2],E[Q+184>>2]=E[t+8>>2],E[Q+188>>2]=g,g=E[t+4>>2],E[Q+176>>2]=E[t>>2],E[Q+180>>2]=g,g=E[r+12>>2],E[Q+168>>2]=E[r+8>>2],E[Q+172>>2]=g,g=E[r+4>>2],E[Q+160>>2]=E[r>>2],E[Q+164>>2]=g,$A(C=Q+192|0,Q+176|0,Q+160|0),g=E[Q+204>>2],E[r+8>>2]=E[Q+200>>2],E[r+12>>2]=g,g=E[Q+196>>2],E[r>>2]=E[Q+192>>2],E[r+4>>2]=g,g=E[i+12>>2],E[Q+152>>2]=E[i+8>>2],E[Q+156>>2]=g,g=E[i+4>>2],E[Q+144>>2]=E[i>>2],E[Q+148>>2]=g,g=E[t+12>>2],E[Q+136>>2]=E[t+8>>2],E[Q+140>>2]=g,g=E[t+4>>2],E[Q+128>>2]=E[t>>2],E[Q+132>>2]=g,$A(C,Q+144|0,Q+128|0),g=E[Q+204>>2],E[t+8>>2]=E[Q+200>>2],E[t+12>>2]=g,g=E[Q+196>>2],E[t>>2]=E[Q+192>>2],E[t+4>>2]=g,g=E[c+12>>2],E[Q+120>>2]=E[c+8>>2],E[Q+124>>2]=g,g=E[c+4>>2],E[Q+112>>2]=E[c>>2],E[Q+116>>2]=g,g=E[i+12>>2],E[Q+104>>2]=E[i+8>>2],E[Q+108>>2]=g,g=E[i+4>>2],E[Q+96>>2]=E[i>>2],E[Q+100>>2]=g,$A(C,Q+112|0,Q+96|0),g=E[Q+204>>2],E[i+8>>2]=E[Q+200>>2],E[i+12>>2]=g,g=E[Q+196>>2],E[i>>2]=E[Q+192>>2],E[i+4>>2]=g,g=E[_+12>>2],E[Q+88>>2]=E[_+8>>2],E[Q+92>>2]=g,g=E[_+4>>2],E[Q+80>>2]=E[_>>2],E[Q+84>>2]=g,g=E[c+12>>2],E[Q+72>>2]=E[c+8>>2],E[Q+76>>2]=g,g=E[c+4>>2],E[Q+64>>2]=E[c>>2],E[Q+68>>2]=g,$A(C,Q+80|0,Q- -64|0),g=E[Q+204>>2],E[c+8>>2]=E[Q+200>>2],E[c+12>>2]=g,g=E[Q+196>>2],E[c>>2]=E[Q+192>>2],E[c+4>>2]=g,g=E[B+12>>2],E[Q+56>>2]=E[B+8>>2],E[Q+60>>2]=g,g=E[B+4>>2],E[Q+48>>2]=E[B>>2],E[Q+52>>2]=g,g=E[_+12>>2],E[Q+40>>2]=E[_+8>>2],E[Q+44>>2]=g,g=E[_+4>>2],E[Q+32>>2]=E[_>>2],E[Q+36>>2]=g,$A(C,Q+48|0,Q+32|0),g=E[Q+204>>2],E[_+8>>2]=E[Q+200>>2],E[_+12>>2]=g,g=E[Q+196>>2],E[_>>2]=E[Q+192>>2],E[_+4>>2]=g,g=E[Q+220>>2],E[Q+24>>2]=E[Q+216>>2],E[Q+28>>2]=g,g=E[Q+212>>2],E[Q+16>>2]=E[Q+208>>2],E[Q+20>>2]=g,g=E[B+12>>2],E[Q+8>>2]=E[B+8>>2],E[Q+12>>2]=g,g=E[B+4>>2],E[Q>>2]=E[B>>2],E[Q+4>>2]=g,$A(C,Q+16|0,Q),D=E[Q+192>>2],C=E[Q+196>>2],g=E[Q+200>>2],f=p^E[Q+204>>2],E[B+12>>2]=f,n=g^w,E[B+8>>2]=n,k=C^e,E[B+4>>2]=k,F=s^D,E[B>>2]=F,7!=(0|(y=y+1|0)););A:{I:{g:{if(g=I-16|0){if(16==(0|g))break g;break I}N=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,i=a[B+48|0]|a[B+49|0]<<8|a[B+50|0]<<16|a[B+51|0]<<24,_=a[B+32|0]|a[B+33|0]<<8|a[B+34|0]<<16|a[B+35|0]<<24,c=a[B+80|0]|a[B+81|0]<<8|a[B+82|0]<<16|a[B+83|0]<<24,t=a[0|(I=B- -64|0)]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,r=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,p=a[B+52|0]|a[B+53|0]<<8|a[B+54|0]<<16|a[B+55|0]<<24,w=a[B+36|0]|a[B+37|0]<<8|a[B+38|0]<<16|a[B+39|0]<<24,e=a[B+84|0]|a[B+85|0]<<8|a[B+86|0]<<16|a[B+87|0]<<24,s=a[B+68|0]|a[B+69|0]<<8|a[B+70|0]<<16|a[B+71|0]<<24,D=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,y=a[B+56|0]|a[B+57|0]<<8|a[B+58|0]<<16|a[B+59|0]<<24,C=a[B+40|0]|a[B+41|0]<<8|a[B+42|0]<<16|a[B+43|0]<<24,g=a[B+88|0]|a[B+89|0]<<8|a[B+90|0]<<16|a[B+91|0]<<24,I=a[B+72|0]|a[B+73|0]<<8|a[B+74|0]<<16|a[B+75|0]<<24,B=f^(a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24)^(a[B+60|0]|a[B+61|0]<<8|a[B+62|0]<<16|a[B+63|0]<<24)^(a[B+44|0]|a[B+45|0]<<8|a[B+46|0]<<16|a[B+47|0]<<24)^(a[B+92|0]|a[B+93|0]<<8|a[B+94|0]<<16|a[B+95|0]<<24)^(a[B+76|0]|a[B+77|0]<<8|a[B+78|0]<<16|a[B+79|0]<<24),o[A+12|0]=B,o[A+13|0]=B>>>8,o[A+14|0]=B>>>16,o[A+15|0]=B>>>24,I=n^D^I^g^C^y,o[A+8|0]=I,o[A+9|0]=I>>>8,o[A+10|0]=I>>>16,o[A+11|0]=I>>>24,I=k^r^p^w^e^s,o[A+4|0]=I,o[A+5|0]=I>>>8,o[A+6|0]=I>>>16,o[A+7|0]=I>>>24,I=F^N^i^_^c^t,o[0|A]=I,o[A+1|0]=I>>>8,o[A+2|0]=I>>>16,o[A+3|0]=I>>>24;break A}s=a[B+32|0]|a[B+33|0]<<8|a[B+34|0]<<16|a[B+35|0]<<24,D=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,y=a[B+36|0]|a[B+37|0]<<8|a[B+38|0]<<16|a[B+39|0]<<24,C=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,g=a[B+40|0]|a[B+41|0]<<8|a[B+42|0]<<16|a[B+43|0]<<24,I=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,e=f^(a[B+44|0]|a[B+45|0]<<8|a[B+46|0]<<16|a[B+47|0]<<24)^(a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24),o[A+12|0]=e,o[A+13|0]=e>>>8,o[A+14|0]=e>>>16,o[A+15|0]=e>>>24,I=n^I^g,o[A+8|0]=I,o[A+9|0]=I>>>8,o[A+10|0]=I>>>16,o[A+11|0]=I>>>24,I=k^C^y,o[A+4|0]=I,o[A+5|0]=I>>>8,o[A+6|0]=I>>>16,o[A+7|0]=I>>>24,I=F^s^D,o[0|A]=I,o[A+1|0]=I>>>8,o[A+2|0]=I>>>16,o[A+3|0]=I>>>24,p=a[B+48|0]|a[B+49|0]<<8|a[B+50|0]<<16|a[B+51|0]<<24,w=a[B+80|0]|a[B+81|0]<<8|a[B+82|0]<<16|a[B+83|0]<<24,e=a[0|(I=B- -64|0)]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,s=a[B+52|0]|a[B+53|0]<<8|a[B+54|0]<<16|a[B+55|0]<<24,D=a[B+84|0]|a[B+85|0]<<8|a[B+86|0]<<16|a[B+87|0]<<24,y=a[B+68|0]|a[B+69|0]<<8|a[B+70|0]<<16|a[B+71|0]<<24,C=a[B+56|0]|a[B+57|0]<<8|a[B+58|0]<<16|a[B+59|0]<<24,g=a[B+88|0]|a[B+89|0]<<8|a[B+90|0]<<16|a[B+91|0]<<24,I=a[B+72|0]|a[B+73|0]<<8|a[B+74|0]<<16|a[B+75|0]<<24,B=(a[B+60|0]|a[B+61|0]<<8|a[B+62|0]<<16|a[B+63|0]<<24)^(a[B+92|0]|a[B+93|0]<<8|a[B+94|0]<<16|a[B+95|0]<<24)^(a[B+76|0]|a[B+77|0]<<8|a[B+78|0]<<16|a[B+79|0]<<24),o[A+28|0]=B,o[A+29|0]=B>>>8,o[A+30|0]=B>>>16,o[A+31|0]=B>>>24,I=C^I^g,o[A+24|0]=I,o[A+25|0]=I>>>8,o[A+26|0]=I>>>16,o[A+27|0]=I>>>24,I=s^D^y,o[A+20|0]=I,o[A+21|0]=I>>>8,o[A+22|0]=I>>>16,o[A+23|0]=I>>>24,I=p^e^w,o[A+16|0]=I,o[A+17|0]=I>>>8,o[A+18|0]=I>>>16,o[A+19|0]=I>>>24;break A}Hg(A,0,I)}h=Q+224|0}function u(A,I,g){var C,B=0,Q=0,i=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,D=0,p=0,w=0,f=0,n=0,k=0,F=0,N=0;for(h=C=h-4032|0,TA(C+160|0,g),_=E[g+36>>2],E[(i=C+3840|0)>>2]=E[g+32>>2],E[i+4>>2]=_,c=E[g+28>>2],E[(_=C+3832|0)>>2]=E[g+24>>2],E[_+4>>2]=c,r=E[g+20>>2],E[(c=C+3824|0)>>2]=E[g+16>>2],E[c+4>>2]=r,e=E[g+12>>2],E[(r=C+3816|0)>>2]=E[g+8>>2],E[r+4>>2]=e,e=E[g+4>>2],E[C+3808>>2]=E[g>>2],E[C+3812>>2]=e,D=E[g+52>>2],E[(e=C+3856|0)>>2]=E[g+48>>2],E[e+4>>2]=D,p=E[g+60>>2],E[(D=C+3864|0)>>2]=E[g+56>>2],E[D+4>>2]=p,y=E[4+(w=g- -64|0)>>2],E[(p=C+3872|0)>>2]=E[w>>2],E[p+4>>2]=y,y=E[g+76>>2],E[(w=C+3880|0)>>2]=E[g+72>>2],E[w+4>>2]=y,y=E[g+44>>2],E[C+3848>>2]=E[g+40>>2],E[C+3852>>2]=y,n=E[g+92>>2],E[(y=C+3896|0)>>2]=E[g+88>>2],E[y+4>>2]=n,k=E[g+100>>2],E[(n=C+3904|0)>>2]=E[g+96>>2],E[n+4>>2]=k,F=E[g+108>>2],E[(k=C+3912|0)>>2]=E[g+104>>2],E[k+4>>2]=F,N=E[g+116>>2],E[(F=C+3920|0)>>2]=E[g+112>>2],E[F+4>>2]=N,N=E[g+84>>2],E[C+3888>>2]=E[g+80>>2],E[C+3892>>2]=N,KA(B=C+3528|0,N=C+3808|0),Y(Q=C+2408|0,B,t=C+3648|0),Y(C+2448|0,s=C+3568|0,f=C+3608|0),Y(C+2488|0,f,t),Y(C+2528|0,B,s),TA(t=C+320|0,Q),sA(B=C+3368|0,g,t),Y(Q=C+2248|0,B,t=C+3488|0),Y(C+2288|0,s=C+3408|0,f=C+3448|0),Y(C+2328|0,f,t),Y(C+2368|0,B,s),TA(C+480|0,Q),Q=E[4+(B=C+2440|0)>>2],E[i>>2]=E[B>>2],E[i+4>>2]=Q,Q=E[4+(B=C+2432|0)>>2],E[_>>2]=E[B>>2],E[_+4>>2]=Q,Q=E[4+(B=C+2424|0)>>2],E[c>>2]=E[B>>2],E[c+4>>2]=Q,Q=E[4+(B=C+2416|0)>>2],E[r>>2]=E[B>>2],E[r+4>>2]=Q,Q=E[4+(B=C+2456|0)>>2],E[e>>2]=E[B>>2],E[e+4>>2]=Q,Q=E[4+(B=C+2464|0)>>2],E[D>>2]=E[B>>2],E[D+4>>2]=Q,Q=E[4+(B=C+2472|0)>>2],E[p>>2]=E[B>>2],E[p+4>>2]=Q,Q=E[4+(B=C+2480|0)>>2],E[w>>2]=E[B>>2],E[w+4>>2]=Q,B=E[C+2412>>2],E[C+3808>>2]=E[C+2408>>2],E[C+3812>>2]=B,B=E[C+2452>>2],E[C+3848>>2]=E[C+2448>>2],E[C+3852>>2]=B,Q=E[4+(B=C+2520|0)>>2],E[F>>2]=E[B>>2],E[F+4>>2]=Q,Q=E[4+(B=C+2512|0)>>2],E[k>>2]=E[B>>2],E[k+4>>2]=Q,Q=E[4+(B=C+2504|0)>>2],E[n>>2]=E[B>>2],E[n+4>>2]=Q,Q=E[4+(B=C+2496|0)>>2],E[y>>2]=E[B>>2],E[y+4>>2]=Q,B=E[C+2492>>2],E[C+3888>>2]=E[C+2488>>2],E[C+3892>>2]=B,KA(B=C+3208|0,N),Y(Q=C+2088|0,B,t=C+3328|0),Y(C+2128|0,s=C+3248|0,f=C+3288|0),Y(C+2168|0,f,t),Y(C+2208|0,B,s),TA(t=C+640|0,Q),sA(B=C+3048|0,g,t),Y(Q=C+1928|0,B,t=C+3168|0),Y(C+1968|0,s=C+3088|0,f=C+3128|0),Y(C+2008|0,f,t),Y(C+2048|0,B,s),TA(C+800|0,Q),Q=E[4+(B=C+2280|0)>>2],E[i>>2]=E[B>>2],E[i+4>>2]=Q,Q=E[4+(B=C+2272|0)>>2],E[_>>2]=E[B>>2],E[_+4>>2]=Q,Q=E[4+(B=C+2264|0)>>2],E[c>>2]=E[B>>2],E[c+4>>2]=Q,Q=E[4+(B=C+2256|0)>>2],E[r>>2]=E[B>>2],E[r+4>>2]=Q,Q=E[4+(B=C+2296|0)>>2],E[e>>2]=E[B>>2],E[e+4>>2]=Q,Q=E[4+(B=C+2304|0)>>2],E[D>>2]=E[B>>2],E[D+4>>2]=Q,Q=E[4+(B=C+2312|0)>>2],E[p>>2]=E[B>>2],E[p+4>>2]=Q,Q=E[4+(B=C+2320|0)>>2],E[w>>2]=E[B>>2],E[w+4>>2]=Q,B=E[C+2252>>2],E[C+3808>>2]=E[C+2248>>2],E[C+3812>>2]=B,B=E[C+2292>>2],E[C+3848>>2]=E[C+2288>>2],E[C+3852>>2]=B,Q=E[4+(B=C+2360|0)>>2],E[F>>2]=E[B>>2],E[F+4>>2]=Q,Q=E[4+(B=C+2352|0)>>2],E[k>>2]=E[B>>2],E[k+4>>2]=Q,Q=E[4+(B=C+2344|0)>>2],E[n>>2]=E[B>>2],E[n+4>>2]=Q,Q=E[4+(B=C+2336|0)>>2],E[y>>2]=E[B>>2],E[y+4>>2]=Q,B=E[C+2332>>2],E[C+3888>>2]=E[C+2328>>2],E[C+3892>>2]=B,KA(B=C+2888|0,N),Y(Q=C+1768|0,B,t=C+3008|0),Y(C+1808|0,s=C+2928|0,f=C+2968|0),Y(C+1848|0,f,t),Y(C+1888|0,B,s),TA(t=C+960|0,Q),sA(B=C+2728|0,g,t),Y(g=C+1608|0,B,Q=C+2848|0),Y(C+1648|0,t=C+2768|0,s=C+2808|0),Y(C+1688|0,s,Q),Y(C+1728|0,B,t),TA(C+1120|0,g),B=E[4+(g=C+2120|0)>>2],E[i>>2]=E[g>>2],E[i+4>>2]=B,i=E[4+(g=C+2112|0)>>2],E[_>>2]=E[g>>2],E[_+4>>2]=i,i=E[4+(g=C+2104|0)>>2],E[c>>2]=E[g>>2],E[c+4>>2]=i,i=E[4+(g=C+2096|0)>>2],E[r>>2]=E[g>>2],E[r+4>>2]=i,i=E[4+(g=C+2136|0)>>2],E[e>>2]=E[g>>2],E[e+4>>2]=i,i=E[4+(g=C+2144|0)>>2],E[D>>2]=E[g>>2],E[D+4>>2]=i,i=E[4+(g=C+2152|0)>>2],E[p>>2]=E[g>>2],E[p+4>>2]=i,i=E[4+(g=C+2160|0)>>2],E[w>>2]=E[g>>2],E[w+4>>2]=i,g=E[C+2092>>2],E[C+3808>>2]=E[C+2088>>2],E[C+3812>>2]=g,g=E[C+2132>>2],E[C+3848>>2]=E[C+2128>>2],E[C+3852>>2]=g,i=E[4+(g=C+2200|0)>>2],E[F>>2]=E[g>>2],E[F+4>>2]=i,i=E[4+(g=C+2192|0)>>2],E[k>>2]=E[g>>2],E[k+4>>2]=i,i=E[4+(g=C+2184|0)>>2],E[n>>2]=E[g>>2],E[n+4>>2]=i,i=E[4+(g=C+2176|0)>>2],E[y>>2]=E[g>>2],E[y+4>>2]=i,g=E[C+2172>>2],E[C+3888>>2]=E[C+2168>>2],E[C+3892>>2]=g,KA(g=C+2568|0,N),Y(i=C+1448|0,g,_=C+2688|0),Y(C+1488|0,c=C+2608|0,r=C+2648|0),Y(C+1528|0,r,_),Y(C+1568|0,g,c),TA(C+1280|0,i),i=0,g=0;c=(_=C+3968|0)+(g<<1)|0,r=a[I+g|0],o[c+1|0]=r>>>4,o[0|c]=15&r,_=_+((c=1|g)<<1)|0,c=a[I+c|0],o[_+1|0]=c>>>4,o[0|_]=15&c,32!=(0|(g=g+2|0)););for(I=0;g=8+(_=(g=I)+a[0|(I=(C+3968|0)+i|0)]|0)|0,o[0|I]=_-(240&g),g=8+(_=a[I+1|0]+(g<<24>>24>>4)|0)|0,o[I+1|0]=_-(240&g),g=8+(_=a[I+2|0]+(g<<24>>24>>4)|0)|0,o[I+2|0]=_-(240&g),I=g<<24>>24>>4,63!=(0|(i=i+3|0)););for(o[C+4031|0]=a[C+4031|0]+I,E[A+32>>2]=0,E[A+36>>2]=0,E[A+24>>2]=0,E[A+28>>2]=0,E[A+16>>2]=0,E[A+20>>2]=0,E[A+8>>2]=0,E[A+12>>2]=0,E[A>>2]=0,E[A+4>>2]=0,E[A+44>>2]=0,E[A+48>>2]=0,E[(p=A+40|0)>>2]=1,E[A+52>>2]=0,E[A+56>>2]=0,E[A+60>>2]=0,E[A+64>>2]=0,E[A+68>>2]=0,E[A+72>>2]=0,E[A+76>>2]=0,E[A+80>>2]=1,Hg(A+84|0,0,76),w=A+120|0,y=A+80|0,r=C+3768|0,g=C+3888|0,_=C+3848|0,e=C+3728|0,i=C+3928|0,D=63;HA(C,n=C+160|0,o[(C+3968|0)+D|0]),sA(I=C+3808|0,A,C),Y(c=C+3688|0,I,i),Y(e,_,g),Y(r,g,i),KA(I,c),Y(c,I,i),Y(e,_,g),Y(r,g,i),KA(I,c),Y(c,I,i),Y(e,_,g),Y(r,g,i),KA(I,c),Y(c,I,i),Y(e,_,g),Y(r,g,i),KA(I,c),Y(A,I,i),Y(p,_,g),Y(y,g,i),Y(w,I,_),D=D-1|0;);HA(C,n,o[C+3968|0]),sA(I,A,C),Y(A,I,i),Y(p,_,g),Y(y,g,i),Y(w,I,_),h=C+4032|0}function x(A,I,g,C){var B,Q,i,o,_,c,t,r,e,y,s,D,p,w,f,n,k,F,N,S,G,M,b,K,H=0,Y=0,d=0,J=0,U=0,l=0,m=0,u=0;h=B=h-320|0,d=32-g|0,H=Hg((Y=B+256|0)+g|0,0,g>>>0<=31?d:0),Sg(Y,I,g),o=a[C+16|0]|a[C+17|0]<<8|a[C+18|0]<<16|a[C+19|0]<<24,_=a[C+48|0]|a[C+49|0]<<8|a[C+50|0]<<16|a[C+51|0]<<24,c=a[C+20|0]|a[C+21|0]<<8|a[C+22|0]<<16|a[C+23|0]<<24,t=a[C+52|0]|a[C+53|0]<<8|a[C+54|0]<<16|a[C+55|0]<<24,r=a[C+24|0]|a[C+25|0]<<8|a[C+26|0]<<16|a[C+27|0]<<24,e=a[C+56|0]|a[C+57|0]<<8|a[C+58|0]<<16|a[C+59|0]<<24,y=a[C+28|0]|a[C+29|0]<<8|a[C+30|0]<<16|a[C+31|0]<<24,s=a[C+60|0]|a[C+61|0]<<8|a[C+62|0]<<16|a[C+63|0]<<24,I=a[C+32|0]|a[C+33|0]<<8|a[C+34|0]<<16|a[C+35|0]<<24,D=a[C+80|0]|a[C+81|0]<<8|a[C+82|0]<<16|a[C+83|0]<<24,p=a[C+112|0]|a[C+113|0]<<8|a[C+114|0]<<16|a[C+115|0]<<24,J=a[C+96|0]|a[C+97|0]<<8|a[C+98|0]<<16|a[C+99|0]<<24,U=a[C+36|0]|a[C+37|0]<<8|a[C+38|0]<<16|a[C+39|0]<<24,w=a[C+84|0]|a[C+85|0]<<8|a[C+86|0]<<16|a[C+87|0]<<24,f=a[C+116|0]|a[C+117|0]<<8|a[C+118|0]<<16|a[C+119|0]<<24,l=a[C+100|0]|a[C+101|0]<<8|a[C+102|0]<<16|a[C+103|0]<<24,m=a[C+40|0]|a[C+41|0]<<8|a[C+42|0]<<16|a[C+43|0]<<24,n=a[C+88|0]|a[C+89|0]<<8|a[C+90|0]<<16|a[C+91|0]<<24,k=a[C+120|0]|a[C+121|0]<<8|a[C+122|0]<<16|a[C+123|0]<<24,u=a[C+104|0]|a[C+105|0]<<8|a[C+106|0]<<16|a[C+107|0]<<24,F=E[B+256>>2],N=E[B+260>>2],S=E[B+264>>2],G=E[B+268>>2],M=E[B+272>>2],b=E[B+276>>2],K=E[B+280>>2],Q=a[C+44|0]|a[C+45|0]<<8|a[C+46|0]<<16|a[C+47|0]<<24,i=a[C+108|0]|a[C+109|0]<<8|a[C+110|0]<<16|a[C+111|0]<<24,E[B+284>>2]=Q^i&(a[C+124|0]|a[C+125|0]<<8|a[C+126|0]<<16|a[C+127|0]<<24)^E[B+284>>2]^(a[C+92|0]|a[C+93|0]<<8|a[C+94|0]<<16|a[C+95|0]<<24),E[B+280>>2]=m^u&k^n^K,E[B+276>>2]=U^l&f^w^b,E[B+272>>2]=I^J&p^D^M,E[B+268>>2]=s&Q^y^G^i,E[B+264>>2]=u^m&e^r^S,E[B+260>>2]=l^U&t^c^N,E[B+256>>2]=J^I&_^o^F,Hg(H,0,d),Sg(A,Y,g),g=E[B+284>>2],Y=E[B+280>>2],J=E[B+276>>2],U=E[B+272>>2],l=E[B+256>>2],m=E[B+260>>2],u=E[B+264>>2],d=E[B+268>>2],A=E[C+124>>2],E[B+312>>2]=E[C+120>>2],E[B+316>>2]=A,A=E[C+116>>2],E[B+304>>2]=E[C+112>>2],E[B+308>>2]=A,A=E[C+108>>2],E[B+248>>2]=E[C+104>>2],E[B+252>>2]=A,A=E[C+100>>2],E[B+240>>2]=E[C+96>>2],E[B+244>>2]=A,A=E[C+124>>2],E[B+232>>2]=E[C+120>>2],E[B+236>>2]=A,A=E[C+116>>2],E[B+224>>2]=E[C+112>>2],E[B+228>>2]=A,$A(I=B+288|0,B+240|0,B+224|0),A=E[B+300>>2],E[C+120>>2]=E[B+296>>2],E[C+124>>2]=A,A=E[B+292>>2],E[C+112>>2]=E[B+288>>2],E[C+116>>2]=A,A=E[C+92>>2],E[B+216>>2]=E[C+88>>2],E[B+220>>2]=A,A=E[C+84>>2],E[B+208>>2]=E[C+80>>2],E[B+212>>2]=A,A=E[C+108>>2],E[B+200>>2]=E[C+104>>2],E[B+204>>2]=A,A=E[C+100>>2],E[B+192>>2]=E[C+96>>2],E[B+196>>2]=A,$A(I,B+208|0,B+192|0),A=E[B+300>>2],E[C+104>>2]=E[B+296>>2],E[C+108>>2]=A,A=E[B+292>>2],E[C+96>>2]=E[B+288>>2],E[C+100>>2]=A,A=E[C+76>>2],E[B+184>>2]=E[C+72>>2],E[B+188>>2]=A,H=E[4+(A=C- -64|0)>>2],E[B+176>>2]=E[A>>2],E[B+180>>2]=H,H=E[C+92>>2],E[B+168>>2]=E[C+88>>2],E[B+172>>2]=H,H=E[C+84>>2],E[B+160>>2]=E[C+80>>2],E[B+164>>2]=H,$A(I,B+176|0,B+160|0),H=E[B+300>>2],E[C+88>>2]=E[B+296>>2],E[C+92>>2]=H,H=E[B+292>>2],E[C+80>>2]=E[B+288>>2],E[C+84>>2]=H,H=E[C+60>>2],E[B+152>>2]=E[C+56>>2],E[B+156>>2]=H,H=E[C+52>>2],E[B+144>>2]=E[C+48>>2],E[B+148>>2]=H,H=E[C+76>>2],E[B+136>>2]=E[C+72>>2],E[B+140>>2]=H,H=E[A+4>>2],E[B+128>>2]=E[A>>2],E[B+132>>2]=H,$A(I,B+144|0,B+128|0),H=E[B+300>>2],E[C+72>>2]=E[B+296>>2],E[C+76>>2]=H,H=E[B+292>>2],E[A>>2]=E[B+288>>2],E[A+4>>2]=H,H=E[C+44>>2],E[B+120>>2]=E[C+40>>2],E[B+124>>2]=H,H=E[C+36>>2],E[B+112>>2]=E[C+32>>2],E[B+116>>2]=H,H=E[C+60>>2],E[B+104>>2]=E[C+56>>2],E[B+108>>2]=H,H=E[C+52>>2],E[B+96>>2]=E[C+48>>2],E[B+100>>2]=H,$A(I,B+112|0,B+96|0),H=E[B+300>>2],E[C+56>>2]=E[B+296>>2],E[C+60>>2]=H,H=E[B+292>>2],E[C+48>>2]=E[B+288>>2],E[C+52>>2]=H,H=E[C+28>>2],E[B+88>>2]=E[C+24>>2],E[B+92>>2]=H,H=E[C+20>>2],E[B+80>>2]=E[C+16>>2],E[B+84>>2]=H,H=E[C+44>>2],E[B+72>>2]=E[C+40>>2],E[B+76>>2]=H,H=E[C+36>>2],E[B+64>>2]=E[C+32>>2],E[B+68>>2]=H,$A(I,B+80|0,B- -64|0),H=E[B+300>>2],E[C+40>>2]=E[B+296>>2],E[C+44>>2]=H,H=E[B+292>>2],E[C+32>>2]=E[B+288>>2],E[C+36>>2]=H,H=E[C+12>>2],E[B+56>>2]=E[C+8>>2],E[B+60>>2]=H,H=E[C+4>>2],E[B+48>>2]=E[C>>2],E[B+52>>2]=H,H=E[C+28>>2],E[B+40>>2]=E[C+24>>2],E[B+44>>2]=H,H=E[C+20>>2],E[B+32>>2]=E[C+16>>2],E[B+36>>2]=H,$A(I,B+48|0,B+32|0),H=E[B+300>>2],E[C+24>>2]=E[B+296>>2],E[C+28>>2]=H,H=E[B+292>>2],E[C+16>>2]=E[B+288>>2],E[C+20>>2]=H,H=E[B+316>>2],E[B+24>>2]=E[B+312>>2],E[B+28>>2]=H,H=E[B+308>>2],E[B+16>>2]=E[B+304>>2],E[B+20>>2]=H,H=E[C+12>>2],E[B+8>>2]=E[C+8>>2],E[B+12>>2]=H,H=E[C+4>>2],E[B>>2]=E[C>>2],E[B+4>>2]=H,$A(I,B+16|0,B),I=E[B+300>>2],E[C+8>>2]=E[B+296>>2],E[C+12>>2]=I,I=E[B+292>>2],E[C>>2]=E[B+288>>2],E[C+4>>2]=I,E[C+12>>2]=d^(a[C+12|0]|a[C+13|0]<<8|a[C+14|0]<<16|a[C+15|0]<<24),E[C+8>>2]=u^(a[C+8|0]|a[C+9|0]<<8|a[C+10|0]<<16|a[C+11|0]<<24),E[C+4>>2]=m^(a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24),E[C>>2]=l^(a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24),E[A>>2]=U^(a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24),E[C+68>>2]=J^(a[C+68|0]|a[C+69|0]<<8|a[C+70|0]<<16|a[C+71|0]<<24),E[C+72>>2]=Y^(a[C+72|0]|a[C+73|0]<<8|a[C+74|0]<<16|a[C+75|0]<<24),E[C+76>>2]=g^(a[C+76|0]|a[C+77|0]<<8|a[C+78|0]<<16|a[C+79|0]<<24),h=B+320|0}function R(A,I){var g,C,B,Q,i,o,a,_,t,r,e,y,s,h,D,p,f,n,k,F,N,S,G,M,b,K,H,Y,d,J,U,l,m,u,x,R,v=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,V=0,Z=0,W=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0;v=Ig(C=(D=E[I+12>>2])<<1,o=C>>31,$=(q=E[I+4>>2])<<1,B=$>>31),P=w,F=Z=E[I+8>>2],L=(W=Ig(Z,p=Z>>31,Z,p))+v|0,v=w+P|0,v=L>>>0>>0?v+1|0:v,P=Ig(j=E[I+16>>2],a=j>>31,W=(z=E[I>>2])<<1,Q=W>>31),v=w+v|0,v=(L=P+L|0)>>>0

>>0?v+1|0:v,e=E[I+28>>2],P=Ig(BA=c(e,38),f=BA>>31,e,N=e>>31),v=w+v|0,v=(L=P+L|0)>>>0

>>0?v+1|0:v,P=L,y=E[I+32>>2],X=Ig(O=c(y,19),_=O>>31,L=(g=E[I+24>>2])<<1,L>>31),L=w+v|0,L=(P=P+X|0)>>>0>>0?L+1|0:L,Y=E[I+36>>2],v=Ig(X=c(Y,38),i=X>>31,AA=(t=E[I+20>>2])<<1,s=AA>>31),I=w+L|0,J=v=(v>>>0>(P=v+P|0)>>>0?I+1|0:I)<<1|P>>>31,U=L=33554432+(S=P<<1)|0,l=v=L>>>0<33554432?v+1|0:v,I=v>>26,T=(67108863&v)<<6|L>>>26,v=Ig($,B,j,a),P=w,L=(IA=Ig(Z<<=1,h=Z>>31,D,G=D>>31))+v|0,v=w+P|0,v=L>>>0>>0?v+1|0:v,P=(IA=Ig(t,n=t>>31,W,Q))+L|0,L=w+v|0,L=P>>>0>>0?L+1|0:L,iA=Ig(O,_,IA=e<<1,M=IA>>31),v=w+L|0,v=(P=iA+P|0)>>>0>>0?v+1|0:v,L=Ig(X,i,g,r=g>>31),v=w+v|0,I=I+(L=(L>>>0>(P=L+P|0)>>>0?v+1|0:v)<<1|P>>>31)|0,iA=P=(v=P<<1)+T|0,v=I=v>>>0>P>>>0?I+1|0:I,m=P=P+16777216|0,T=(33554431&(v=P>>>0<16777216?v+1|0:v))<<7|P>>>25,P=v>>25,I=Ig(C,o,D,G),v=w,L=Ig(j,a,Z,h),v=w+v|0,v=(I=L+I|0)>>>0>>0?v+1|0:v,L=Ig($,B,AA,s),v=w+v|0,v=(I=L+I|0)>>>0>>0?v+1|0:v,L=(gA=Ig(W,Q,g,r))+I|0,I=w+v|0,I=L>>>0>>0?I+1|0:I,gA=Ig(O,_,y,k=y>>31),v=w+I|0,v=(L=gA+L|0)>>>0>>0?v+1|0:v,I=(gA=Ig(X,i,IA,M))+L|0,L=w+v|0,I=((v=I)>>>0>>0?L+1|0:L)<<1|v>>>31,L=T,T=v<<1,v=I+P|0,v=(L=L+T|0)>>>0>>0?v+1|0:v,gA=I=L+33554432|0,P=v=I>>>0<33554432?v+1|0:v,E[A+24>>2]=L-(-67108864&I),L=Ig(I=c(t,38),I>>31,t,n),T=w,I=(v=Ig(I=z,v=I>>31,I,v))+L|0,L=w+T|0,L=I>>>0>>0?L+1|0:L,CA=Ig(z=c(g,19),b=z>>31,T=j<<1,K=T>>31),v=w+L|0,v=(I=CA+I|0)>>>0>>0?v+1|0:v,L=Ig(C,o,BA,f),v=w+v|0,v=(I=L+I|0)>>>0>>0?v+1|0:v,L=(CA=Ig(O,_,Z,h))+I|0,I=w+v|0,I=L>>>0>>0?I+1|0:I,CA=Ig($,B,X,i),v=w+I|0,CA=v=((L=CA+L|0)>>>0>>0?v+1|0:v)<<1|L>>>31,u=I=33554432+(H=L<<1)|0,x=L=I>>>0<33554432?v+1|0:v,QA=(67108863&L)<<6|I>>>26,oA=L>>26,I=Ig(z,b,AA,s),v=w,L=Ig(W,Q,q,d=q>>31),v=w+v|0,v=(I=L+I|0)>>>0>>0?v+1|0:v,L=(V=Ig(j,a,BA,f))+I|0,I=w+v|0,I=L>>>0>>0?I+1|0:I,V=Ig(O,_,C,o),v=w+I|0,v=(L=V+L|0)>>>0>>0?v+1|0:v,V=(I=Ig(X,i,F,p))+L|0,L=w+v|0,v=(I=(I>>>0>V>>>0?L+1|0:L)<<1|V>>>31)+oA|0,v=(L=(V<<=1)+QA|0)>>>0>>0?v+1|0:v,oA=L,V=L=L+16777216|0,R=(33554431&(v=L>>>0<16777216?v+1|0:v))<<7|L>>>25,QA=v>>25,I=Ig(W,Q,F,p),v=w,L=Ig($,B,q,d),v=w+v|0,v=(I=L+I|0)>>>0>>0?v+1|0:v,q=Ig(z,b,g,r),L=w+v|0,L=(I=q+I|0)>>>0>>0?L+1|0:L,q=Ig(AA,s,BA,f),v=w+L|0,v=(I=q+I|0)>>>0>>0?v+1|0:v,L=Ig(O,_,T,K),v=w+v|0,v=(I=L+I|0)>>>0>>0?v+1|0:v,L=(q=Ig(X,i,C,o))+I|0,I=w+v|0,v=(v=(L>>>0>>0?I+1|0:I)<<1|L>>>31)+QA|0,z=I=(L<<=1)+R|0,v=I>>>0>>0?v+1|0:v,QA=I=I+33554432|0,q=L=I>>>0<33554432?v+1|0:v,E[A+8>>2]=z-(-67108864&I),I=Ig(Z,h,t,n),L=w,v=(z=Ig(j,a,C,o))+I|0,I=w+L|0,I=v>>>0>>0?I+1|0:I,L=(z=Ig($,B,g,r))+v|0,v=w+I|0,v=L>>>0>>0?v+1|0:v,I=(z=Ig(W,Q,e,N))+L|0,L=w+v|0,L=I>>>0>>0?L+1|0:L,z=Ig(X,i,y,k),v=w+L|0,v=(v=((I=z+I|0)>>>0>>0?v+1|0:v)<<1|I>>>31)+(L=P>>26)|0,I=(L=P=(z=I<<1)+(I=(67108863&P)<<6|gA>>>26)|0)>>>0>>0?v+1|0:v,z=v=L+16777216|0,P=I=v>>>0<16777216?I+1|0:I,E[A+28>>2]=L-(-33554432&v),I=Ig(W,Q,D,G),v=w,L=Ig($,B,F,p),v=w+v|0,v=(I=L+I|0)>>>0>>0?v+1|0:v,L=Ig(g,r,BA,f),v=w+v|0,v=(I=L+I|0)>>>0>>0?v+1|0:v,L=(O=Ig(O,_,AA,s))+I|0,I=w+v|0,I=L>>>0>>0?I+1|0:I,v=(O=Ig(X,i,j,a))+L|0,L=w+I|0,I=v,v=(v>>>0>>0?L+1|0:L)<<1|v>>>31,L=I<<1,v=(I=q>>26)+v|0,v=(L=L+(q=(67108863&q)<<6|QA>>>26)|0)>>>0>>0?v+1|0:v,O=I=L+16777216|0,q=v=I>>>0<16777216?v+1|0:v,E[A+12>>2]=L-(-33554432&I),I=Ig(g,r,Z,h),v=w,L=Ig(j,a,j,a),v=w+v|0,v=(I=L+I|0)>>>0>>0?v+1|0:v,L=Ig(C,o,AA,s),v=w+v|0,v=(I=L+I|0)>>>0>>0?v+1|0:v,L=Ig($,B,IA,M),v=w+v|0,v=(I=L+I|0)>>>0>>0?v+1|0:v,L=(j=Ig(W,Q,y,k))+I|0,I=w+v|0,I=L>>>0>>0?I+1|0:I,v=(j=Ig(v=X,i,X=Y,AA=X>>31))+L|0,L=w+I|0,I=v,v=(v>>>0>>0?L+1|0:L)<<1|v>>>31,L=I<<1,v=(I=P>>25)+v|0,v=(L=L+(P=(33554431&P)<<7|z>>>25)|0)>>>0

>>0?v+1|0:v,j=I=L+33554432|0,P=v=I>>>0<33554432?v+1|0:v,E[A+32>>2]=L-(-67108864&I),v=q>>25,L=(q=(33554431&q)<<7|O>>>25)+(S-(I=-67108864&U)|0)|0,I=v+(J-((I>>>0>S>>>0)+l|0)|0)|0,I=L>>>0>>0?I+1|0:I,q=L,v=I,I=((67108863&(v=(L=L+33554432|0)>>>0<33554432?v+1|0:v))<<6|L>>>26)+(BA=iA-(-33554432&m)|0)|0,E[A+20>>2]=I,E[A+16>>2]=q-(-67108864&L),I=Ig(C,o,g,r),L=w,v=(q=Ig(t,n,T,K))+I|0,I=w+L|0,I=v>>>0>>0?I+1|0:I,L=(q=Ig(Z,h,e,N))+v|0,v=w+I|0,v=L>>>0>>0?v+1|0:v,I=(q=Ig($,B,y,k))+L|0,L=w+v|0,L=I>>>0>>0?L+1|0:L,q=Ig(W,Q,X,AA),v=w+L|0,v=((I=q+I|0)>>>0>>0?v+1|0:v)<<1|I>>>31,q=I<<1,v=v+(L=P>>26)|0,I=(I=(67108863&P)<<6|j>>>26)>>>0>(P=q+I|0)>>>0?v+1|0:v,I=(v=P+16777216|0)>>>0<16777216?I+1|0:I,E[A+36>>2]=P-(-33554432&v),q=oA-(-33554432&V)|0,P=H-(L=-67108864&u)|0,$=CA-((L>>>0>H>>>0)+x|0)|0,I=Ig((33554431&I)<<7|v>>>25,I>>25,19,0),L=w+$|0,P=v=I+P|0,I=I>>>0>v>>>0?L+1|0:L,I=((67108863&(I=(v=v+33554432|0)>>>0<33554432?I+1|0:I))<<6|v>>>26)+q|0,E[A+4>>2]=I,E[A>>2]=P-(-67108864&v)}function v(A,I){var g,C,B,Q,i,o,a,_,t,r,e,y,s,h,D,p,f,n,k,F,N,S,G,M,b,K,H,Y,d,J,U,l,m=0,u=0,x=0,R=0,v=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,V=0,Z=0,W=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0;m=Ig(C=(p=E[I+12>>2])<<1,o=C>>31,p,N=p>>31),x=w,u=(z=Ig(v=E[I+16>>2],a=v>>31,_=(R=E[I+8>>2])<<1,y=_>>31))+m|0,m=w+x|0,m=u>>>0>>0?m+1|0:m,x=(j=Ig(V=(t=E[I+20>>2])<<1,s=V>>31,z=(L=E[I+4>>2])<<1,B=z>>31))+u|0,u=w+m|0,u=x>>>0>>0?u+1|0:u,P=Ig(g=E[I+24>>2],r=g>>31,j=(T=E[I>>2])<<1,Q=j>>31),m=w+u|0,m=(x=P+x|0)>>>0

>>0?m+1|0:m,u=x,h=E[I+32>>2],x=Ig(X=c(h,19),e=X>>31,h,n=h>>31),m=w+m|0,m=(u=u+x|0)>>>0>>0?m+1|0:m,K=E[I+36>>2],x=Ig(P=c(K,38),i=P>>31,k=(D=E[I+28>>2])<<1,S=k>>31),I=w+m|0,W=u=x+u|0,x=u>>>0>>0?I+1|0:I,I=Ig(z,B,v,a),m=w,u=Ig(_,y,p,N),m=w+m|0,m=(I=u+I|0)>>>0>>0?m+1|0:m,q=Ig(t,F=t>>31,j,Q),u=w+m|0,u=(I=q+I|0)>>>0>>0?u+1|0:u,q=Ig(X,e,k,S),m=w+u|0,m=(I=q+I|0)>>>0>>0?m+1|0:m,u=Ig(P,i,g,r),m=w+m|0,CA=I=u+I|0,O=I>>>0>>0?m+1|0:m,m=Ig(z,B,C,o),u=w,G=I=R,R=Ig(I,Z=I>>31,I,Z),I=w+u|0,I=(m=R+m|0)>>>0>>0?I+1|0:I,u=(R=Ig(j,Q,v,a))+m|0,m=w+I|0,m=u>>>0>>0?m+1|0:m,I=(R=Ig(q=c(D,38),f=q>>31,D,M=D>>31))+u|0,u=w+m|0,u=I>>>0>>0?u+1|0:u,I=(m=I)+(R=Ig(X,e,I=g<<1,I>>31))|0,m=w+u|0,m=I>>>0>>0?m+1|0:m,u=I,I=Ig(P,i,V,s),m=w+m|0,H=u=u+I|0,Y=m=I>>>0>u>>>0?m+1|0:m,I=m,d=u=u+33554432|0,J=I=u>>>0<33554432?I+1|0:I,m=(m=I>>26)+O|0,CA=I=(u=(67108863&I)<<6|u>>>26)+CA|0,m=I>>>0>>0?m+1|0:m,U=I=I+16777216|0,m=(m=(u=I>>>0<16777216?m+1|0:m)>>25)+x|0,I=(I=(33554431&u)<<7|I>>>25)>>>0>(u=I+W|0)>>>0?m+1|0:m,W=m=u+33554432|0,R=I=m>>>0<33554432?I+1|0:I,E[A+24>>2]=u-(-67108864&m),I=Ig(j,Q,G,Z),m=w,x=Ig(z,B,L,$=L>>31),u=w+m|0,u=(I=x+I|0)>>>0>>0?u+1|0:u,O=Ig(x=c(g,19),gA=x>>31,g,r),m=w+u|0,m=(I=O+I|0)>>>0>>0?m+1|0:m,u=(O=Ig(V,s,q,f))+I|0,I=w+m|0,I=u>>>0>>0?I+1|0:I,AA=Ig(X,e,O=v<<1,b=O>>31),m=w+I|0,m=(u=AA+u|0)>>>0>>0?m+1|0:m,I=u,u=Ig(P,i,C,o),m=w+m|0,IA=I=I+u|0,AA=I>>>0>>0?m+1|0:m,I=Ig(V,s,x,gA),m=w,L=Ig(j,Q,L,$),u=w+m|0,u=(I=L+I|0)>>>0>>0?u+1|0:u,L=Ig(v,a,q,f),m=w+u|0,m=(I=L+I|0)>>>0>>0?m+1|0:m,u=(L=Ig(X,e,C,o))+I|0,I=w+m|0,I=u>>>0>>0?I+1|0:I,L=Ig(P,i,G,Z),m=w+I|0,BA=u=L+u|0,$=u>>>0>>0?m+1|0:m,u=Ig(I=c(t,38),I>>31,t,F),L=w,I=T,T=u,u=Ig(I,m=I>>31,I,m),m=w+L|0,m=(I=T+u|0)>>>0>>0?m+1|0:m,x=Ig(x,gA,O,b),u=w+m|0,u=(I=x+I|0)>>>0>>0?u+1|0:u,x=Ig(C,o,q,f),m=w+u|0,m=(I=x+I|0)>>>0>>0?m+1|0:m,u=(x=Ig(X,e,_,y))+I|0,I=w+m|0,I=u>>>0>>0?I+1|0:I,x=Ig(z,B,P,i),m=w+I|0,L=u=x+u|0,T=m=u>>>0>>0?m+1|0:m,gA=u=u+33554432|0,l=m=u>>>0<33554432?m+1|0:m,I=m>>26,m=(67108863&m)<<6|u>>>26,u=I+$|0,$=x=m+BA|0,m=m>>>0>x>>>0?u+1|0:u,BA=u=x+16777216|0,x=(33554431&(m=u>>>0<16777216?m+1|0:m))<<7|u>>>25,m=(m>>25)+AA|0,m=(u=x+IA|0)>>>0>>0?m+1|0:m,AA=I=u+33554432|0,x=m=I>>>0<33554432?m+1|0:m,E[A+8>>2]=u-(-67108864&I),I=Ig(_,y,t,F),m=w,u=Ig(v,a,C,o),m=w+m|0,m=(I=u+I|0)>>>0>>0?m+1|0:m,u=Ig(z,B,g,r),m=w+m|0,m=(I=u+I|0)>>>0>>0?m+1|0:m,u=Ig(j,Q,D,M),m=w+m|0,m=(I=u+I|0)>>>0>>0?m+1|0:m,IA=(u=Ig(P,i,h,n))+I|0,I=w+m|0,u=(m=R>>26)+(u=u>>>0>IA>>>0?I+1|0:I)|0,W=I=(R=(67108863&R)<<6|W>>>26)+IA|0,m=I>>>0>>0?u+1|0:u,IA=I=I+16777216|0,R=m=I>>>0<16777216?m+1|0:m,E[A+28>>2]=W-(-33554432&I),I=Ig(j,Q,p,N),u=w,m=(Z=Ig(z,B,G,Z))+I|0,I=w+u|0,I=m>>>0>>0?I+1|0:I,m=(q=Ig(g,r,q,f))+m|0,u=w+I|0,I=(X=Ig(X,e,V,s))+m|0,m=w+(m>>>0>>0?u+1|0:u)|0,m=I>>>0>>0?m+1|0:m,u=Ig(P,i,v,a),m=w+m|0,m=(m=(I=u+I|0)>>>0>>0?m+1|0:m)+(u=x>>26)|0,I=(u=x=(W=I)+(I=(67108863&x)<<6|AA>>>26)|0)>>>0>>0?m+1|0:m,X=m=u+16777216|0,x=I=m>>>0<16777216?I+1|0:I,E[A+12>>2]=u-(-33554432&m),I=Ig(g,r,_,y),m=w,u=Ig(v,a,v,a),m=w+m|0,m=(I=u+I|0)>>>0>>0?m+1|0:m,u=Ig(C,o,V,s),m=w+m|0,m=(I=u+I|0)>>>0>>0?m+1|0:m,u=(v=Ig(z,B,k,S))+I|0,I=w+m|0,I=u>>>0>>0?I+1|0:I,m=(v=Ig(j,Q,h,n))+u|0,u=w+I|0,u=m>>>0>>0?u+1|0:u,I=(v=Ig(I=P,i,P=K,V=P>>31))+m|0,m=w+u|0,m=I>>>0>>0?m+1|0:m,u=I,m=(I=R>>25)+m|0,m=(u=u+(R=(33554431&R)<<7|IA>>>25)|0)>>>0>>0?m+1|0:m,v=I=u+33554432|0,R=m=I>>>0<33554432?m+1|0:m,E[A+32>>2]=u-(-67108864&I),m=x>>25,u=(x=(33554431&x)<<7|X>>>25)+(H-(I=-67108864&d)|0)|0,I=m+(Y-((I>>>0>H>>>0)+J|0)|0)|0,I=u>>>0>>0?I+1|0:I,x=u,I=((67108863&(m=(u=u+33554432|0)>>>0<33554432?I+1|0:I))<<6|u>>>26)+(q=CA-(-33554432&U)|0)|0,E[A+20>>2]=I,E[A+16>>2]=x-(-67108864&u),I=Ig(C,o,g,r),u=w,m=(x=Ig(t,F,O,b))+I|0,I=w+u|0,I=m>>>0>>0?I+1|0:I,u=(x=Ig(_,y,D,M))+m|0,m=w+I|0,m=u>>>0>>0?m+1|0:m,I=(x=Ig(z,B,h,n))+u|0,u=w+m|0,u=I>>>0>>0?u+1|0:u,x=(m=I)+(I=Ig(j,Q,P,V))|0,m=w+u|0,m=(I=I>>>0>x>>>0?m+1|0:m)+(m=R>>26)|0,I=(u=(R=(67108863&R)<<6|v>>>26)+x|0)>>>0>>0?m+1|0:m,I=(m=u+16777216|0)>>>0<16777216?I+1|0:I,E[A+36>>2]=u-(-33554432&m),R=$-(-33554432&BA)|0,x=L-(u=-67108864&gA)|0,z=T-((u>>>0>L>>>0)+l|0)|0,I=Ig((33554431&I)<<7|m>>>25,I>>25,19,0),m=w+z|0,I=I>>>0>(u=I+x|0)>>>0?m+1|0:m,I=((67108863&(I=(m=u+33554432|0)>>>0<33554432?I+1|0:I))<<6|m>>>26)+R|0,E[A+4>>2]=I,E[A>>2]=u-(-67108864&m)}function L(A,I){var g,C=0,B=0,Q=0,i=0,t=0,r=0,e=0,y=0,s=0,D=0,p=0,w=0,f=0,n=0;if(h=g=h-48|0,!((C=pI(A))||(C=-26,I-3>>>0<4294967294))){Q=E[A+44>>2],C=E[A+48>>2],E[g+4>>2]=0,B=E[A+40>>2],E[g+32>>2]=C,E[g+16>>2]=-1,E[g+12>>2]=B,C=((r=(B=C<<3)>>>0>>0?Q:B)>>>0)/((Q=C<<2)>>>0)|0,E[g+24>>2]=C,E[g+28>>2]=C<<2,E[g+20>>2]=c(C,Q),C=E[A+52>>2],E[g+40>>2]=I,E[g+36>>2]=C,f=I=h,h=C=I-1152&-64,I=-25;A:{if(!(!(Q=g+4|0)|!A)&&(B=K(E[Q+20>>2]<<3),E[Q+4>>2]=B,I=-22,B)){I:{if((I=E[Q+16>>2])&&1024==(((B=I<<10)>>>0)/(I>>>0)|0)&&(I=K(12),E[Q>>2]=I,I)){if(E[I>>2]=0,E[I+4>>2]=0,I=_I(C+128|0,B),E[9392]=I,I)E[C+128>>2]=0;else if(I=E[C+128>>2])break I;gA(E[Q>>2]),E[Q>>2]=0}VI(Q,E[A+56>>2]),h=f,I=-22;break A}if(E[E[Q>>2]>>2]=I,E[E[Q>>2]+4>>2]=I,E[E[Q>>2]+8>>2]=B,D=E[Q+36>>2],eA(I=C+128|0,0,0,64),E[C+124>>2]=E[A+48>>2],XA(I,B=C+124|0,4,0),E[C+124>>2]=E[A+4>>2],XA(I,B,4,0),E[C+124>>2]=E[A+44>>2],XA(I,B,4,0),E[C+124>>2]=E[A+40>>2],XA(I,B,4,0),E[C+124>>2]=19,XA(C+128|0,C+124|0,4,0),E[C+124>>2]=D,XA(C+128|0,C+124|0,4,0),E[C+124>>2]=E[A+12>>2],XA(C+128|0,C+124|0,4,0),(B=E[A+8>>2])&&(XA(I,B,E[A+12>>2],0),1&o[A+56|0]&&(XC(E[A+8>>2],E[A+12>>2]),E[A+12>>2]=0)),E[C+124>>2]=E[A+20>>2],XA(I=C+128|0,C+124|0,4,0),(B=E[A+16>>2])&&XA(I,B,E[A+20>>2],0),E[C+124>>2]=E[A+28>>2],XA(I=C+128|0,C+124|0,4,0),(B=E[A+24>>2])&&(XA(I,B,E[A+28>>2],0),2&a[A+56|0]&&(XC(E[A+24>>2],E[A+28>>2]),E[A+28>>2]=0)),E[C+124>>2]=E[A+36>>2],XA(I=C+128|0,C+124|0,4,0),(B=E[A+32>>2])&&XA(I,B,E[A+36>>2],0),Yg(C+128|0,C+48|0,64),XC(C+112|0,8),E[Q+28>>2])for(B=0;;){for(E[C+112>>2]=0,E[C+116>>2]=B,aA(C+128|0,1024,C+48|0,72),D=E[E[Q>>2]+4>>2]+(c(E[Q+24>>2],B)<<10)|0,I=0;i=(t=I<<3)+D|0,p=E[4+(e=(r=C+128|0)+t|0)>>2],E[i>>2]=E[e>>2],E[i+4>>2]=p,e=(i=8|t)+D|0,p=E[4+(i=i+r|0)>>2],E[e>>2]=E[i>>2],E[e+4>>2]=p,e=(i=16|t)+D|0,p=E[4+(i=i+r|0)>>2],E[e>>2]=E[i>>2],E[e+4>>2]=p,i=(t|=24)+D|0,e=E[4+(t=t+r|0)>>2],E[i>>2]=E[t>>2],E[i+4>>2]=e,128!=(0|(I=I+4|0)););for(E[C+112>>2]=1,aA(r,1024,C+48|0,72),D=1024+(E[E[Q>>2]+4>>2]+(c(E[Q+24>>2],B)<<10)|0)|0,I=0;i=(t=I<<3)+D|0,p=E[4+(e=(r=C+128|0)+t|0)>>2],E[i>>2]=E[e>>2],E[i+4>>2]=p,e=(i=8|t)+D|0,p=E[4+(i=i+r|0)>>2],E[e>>2]=E[i>>2],E[e+4>>2]=p,e=(i=16|t)+D|0,p=E[4+(i=i+r|0)>>2],E[e>>2]=E[i>>2],E[e+4>>2]=p,i=(t|=24)+D|0,r=E[4+(t=t+r|0)>>2],E[i>>2]=E[t>>2],E[i+4>>2]=r,128!=(0|(I=I+4|0)););if(!((B=B+1|0)>>>0<_[Q+28>>2]))break}XC(C+128|0,1024),XC(C+48|0,72),I=0}h=f}if(C=I,!I){if(E[g+12>>2])for(;;){if(h=I=h-80|0,!(!(Q=g+4|0)|!E[Q+28>>2])){for(o[I+72|0]=0,E[I+64>>2]=y,C=0;E[I+76>>2]=0,B=E[I+76>>2],E[I+56>>2]=E[I+72>>2],E[I+60>>2]=B,E[I+68>>2]=C,B=E[I+68>>2],E[I+48>>2]=E[I+64>>2],E[I+52>>2]=B,S(Q,I+48|0),(C=C+1|0)>>>0<(B=E[Q+28>>2])>>>0;);if(o[I+72|0]=1,B){for(C=0;E[I+76>>2]=0,B=E[I+76>>2],E[I+40>>2]=E[I+72>>2],E[I+44>>2]=B,E[I+68>>2]=C,B=E[I+68>>2],E[I+32>>2]=E[I+64>>2],E[I+36>>2]=B,S(Q,I+32|0),(C=C+1|0)>>>0<(B=E[Q+28>>2])>>>0;);if(o[I+72|0]=2,B){for(C=0;E[I+76>>2]=0,B=E[I+76>>2],E[I+24>>2]=E[I+72>>2],E[I+28>>2]=B,E[I+68>>2]=C,B=E[I+68>>2],E[I+16>>2]=E[I+64>>2],E[I+20>>2]=B,S(Q,I+16|0),(C=C+1|0)>>>0<(B=E[Q+28>>2])>>>0;);if(o[I+72|0]=3,B)for(C=0;E[I+76>>2]=0,B=E[I+76>>2],E[I+8>>2]=E[I+72>>2],E[I+12>>2]=B,E[I+68>>2]=C,B=E[I+68>>2],E[I>>2]=E[I+64>>2],E[I+4>>2]=B,S(Q,I),(C=C+1|0)>>>0<_[Q+28>>2];);}}}if(h=I+80|0,!((y=y+1|0)>>>0<_[g+12>>2]))break}if(h=I=h-2048|0,!(!A|!(C=g+4|0))){if(i=E[C>>2],f=E[C+24>>2],Sg(I+1024|0,(E[i+4>>2]+(f<<10)|0)-1024|0,1024),(e=E[C+28>>2])>>>0>=2)for(p=f-1|0,D=1;;){for(Q=E[i+4>>2]+(c(D,f)+p<<10)|0,t=0;s=E[(y=(B=t<<3)+(r=I+1024|0)|0)>>2],n=E[(w=B+Q|0)>>2],w=E[y+4>>2]^E[w+4>>2],E[y>>2]=s^n,E[y+4>>2]=w,w=E[(y=(s=8|B)+r|0)>>2],n=E[(s=Q+s|0)>>2],s=E[y+4>>2]^E[s+4>>2],E[y>>2]=w^n,E[y+4>>2]=s,w=E[(y=(s=16|B)+r|0)>>2],n=E[(s=Q+s|0)>>2],s=E[y+4>>2]^E[s+4>>2],E[y>>2]=w^n,E[y+4>>2]=s,y=E[(B=(y=r)+(r=24|B)|0)>>2],s=E[(r=Q+r|0)>>2],r=E[B+4>>2]^E[r+4>>2],E[B>>2]=y^s,E[B+4>>2]=r,128!=(0|(t=t+4|0)););if((0|e)==(0|(D=D+1|0)))break}Q=Sg(I,I+1024|0,1024),aA(E[A>>2],E[A+4>>2],Q,1024),XC(Q+1024|0,1024),XC(Q,1024),VI(C,E[A+56>>2])}h=I+2048|0,C=0}}return h=g+48|0,C}function P(A,I,g){var C,B,Q,i,o,_,c,t,r,e,y,s,D,p,w=0,f=0,n=0;for(h=C=h-288|0,y=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,s=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,D=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,c=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,t=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,r=a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24,p=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,I=g+112|0,A=33620224^(e=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24),E[I>>2]=A,E[(o=g+96|0)>>2]=1427652059^e,E[(_=g+80|0)>>2]=A,f=e^p,E[(A=g- -64|0)>>2]=f,E[g+56>>2]=1110511904,E[g+60>>2]=-584534669,E[(B=g+48|0)>>2]=1427652059,E[B+4>>2]=-248528275,E[g+40>>2]=1496785429,E[g+44>>2]=1652156816,E[(Q=g+32|0)>>2]=33620224,E[Q+4>>2]=218629379,E[g+24>>2]=1110511904,E[g+28>>2]=-584534669,E[(i=g+16|0)>>2]=1427652059,E[i+4>>2]=-248528275,E[g>>2]=f,f=1652156816^r,E[g+124>>2]=f,n=1496785429^t,E[g+120>>2]=n,w=218629379^c,E[g+116>>2]=w,E[g+108>>2]=-584534669^r,E[g+104>>2]=1110511904^t,E[g+100>>2]=-248528275^c,E[g+92>>2]=f,E[g+88>>2]=n,E[g+84>>2]=w,f=r^D,E[g+76>>2]=f,n=t^s,E[g+72>>2]=n,w=c^y,E[g+68>>2]=w,E[g+12>>2]=f,E[g+8>>2]=n,E[g+4>>2]=w,n=0;f=E[I+12>>2],E[C+280>>2]=E[I+8>>2],E[C+284>>2]=f,f=E[I+4>>2],E[C+272>>2]=E[I>>2],E[C+276>>2]=f,f=E[o+12>>2],E[C+248>>2]=E[o+8>>2],E[C+252>>2]=f,f=E[o+4>>2],E[C+240>>2]=E[o>>2],E[C+244>>2]=f,f=E[I+12>>2],E[C+232>>2]=E[I+8>>2],E[C+236>>2]=f,f=E[I+4>>2],E[C+224>>2]=E[I>>2],E[C+228>>2]=f,$A(f=C+256|0,C+240|0,C+224|0),w=E[C+268>>2],E[I+8>>2]=E[C+264>>2],E[I+12>>2]=w,w=E[C+260>>2],E[I>>2]=E[C+256>>2],E[I+4>>2]=w,w=E[_+12>>2],E[C+216>>2]=E[_+8>>2],E[C+220>>2]=w,w=E[_+4>>2],E[C+208>>2]=E[_>>2],E[C+212>>2]=w,w=E[o+12>>2],E[C+200>>2]=E[o+8>>2],E[C+204>>2]=w,w=E[o+4>>2],E[C+192>>2]=E[o>>2],E[C+196>>2]=w,$A(f,C+208|0,C+192|0),w=E[C+268>>2],E[o+8>>2]=E[C+264>>2],E[o+12>>2]=w,w=E[C+260>>2],E[o>>2]=E[C+256>>2],E[o+4>>2]=w,w=E[A+12>>2],E[C+184>>2]=E[A+8>>2],E[C+188>>2]=w,w=E[A+4>>2],E[C+176>>2]=E[A>>2],E[C+180>>2]=w,w=E[_+12>>2],E[C+168>>2]=E[_+8>>2],E[C+172>>2]=w,w=E[_+4>>2],E[C+160>>2]=E[_>>2],E[C+164>>2]=w,$A(f,C+176|0,C+160|0),w=E[C+268>>2],E[_+8>>2]=E[C+264>>2],E[_+12>>2]=w,w=E[C+260>>2],E[_>>2]=E[C+256>>2],E[_+4>>2]=w,w=E[B+12>>2],E[C+152>>2]=E[B+8>>2],E[C+156>>2]=w,w=E[B+4>>2],E[C+144>>2]=E[B>>2],E[C+148>>2]=w,w=E[A+12>>2],E[C+136>>2]=E[A+8>>2],E[C+140>>2]=w,w=E[A+4>>2],E[C+128>>2]=E[A>>2],E[C+132>>2]=w,$A(f,C+144|0,C+128|0),w=E[C+268>>2],E[A+8>>2]=E[C+264>>2],E[A+12>>2]=w,w=E[C+260>>2],E[A>>2]=E[C+256>>2],E[A+4>>2]=w,w=E[Q+12>>2],E[C+120>>2]=E[Q+8>>2],E[C+124>>2]=w,w=E[Q+4>>2],E[C+112>>2]=E[Q>>2],E[C+116>>2]=w,w=E[B+12>>2],E[C+104>>2]=E[B+8>>2],E[C+108>>2]=w,w=E[B+4>>2],E[C+96>>2]=E[B>>2],E[C+100>>2]=w,$A(f,C+112|0,C+96|0),w=E[C+268>>2],E[B+8>>2]=E[C+264>>2],E[B+12>>2]=w,w=E[C+260>>2],E[B>>2]=E[C+256>>2],E[B+4>>2]=w,w=E[i+12>>2],E[C+88>>2]=E[i+8>>2],E[C+92>>2]=w,w=E[i+4>>2],E[C+80>>2]=E[i>>2],E[C+84>>2]=w,w=E[Q+12>>2],E[C+72>>2]=E[Q+8>>2],E[C+76>>2]=w,w=E[Q+4>>2],E[C+64>>2]=E[Q>>2],E[C+68>>2]=w,$A(f,C+80|0,C- -64|0),w=E[C+268>>2],E[Q+8>>2]=E[C+264>>2],E[Q+12>>2]=w,w=E[C+260>>2],E[Q>>2]=E[C+256>>2],E[Q+4>>2]=w,w=E[g+12>>2],E[C+56>>2]=E[g+8>>2],E[C+60>>2]=w,w=E[g+4>>2],E[C+48>>2]=E[g>>2],E[C+52>>2]=w,w=E[i+12>>2],E[C+40>>2]=E[i+8>>2],E[C+44>>2]=w,w=E[i+4>>2],E[C+32>>2]=E[i>>2],E[C+36>>2]=w,$A(f,C+48|0,C+32|0),w=E[C+268>>2],E[i+8>>2]=E[C+264>>2],E[i+12>>2]=w,w=E[C+260>>2],E[i>>2]=E[C+256>>2],E[i+4>>2]=w,w=E[C+284>>2],E[C+24>>2]=E[C+280>>2],E[C+28>>2]=w,w=E[C+276>>2],E[C+16>>2]=E[C+272>>2],E[C+20>>2]=w,w=E[g+12>>2],E[C+8>>2]=E[g+8>>2],E[C+12>>2]=w,w=E[g+4>>2],E[C>>2]=E[g>>2],E[C+4>>2]=w,$A(f,C+16|0,C),f=E[C+268>>2],E[g+8>>2]=E[C+264>>2],E[g+12>>2]=f,f=E[C+260>>2],E[g>>2]=E[C+256>>2],E[g+4>>2]=f,E[g+12>>2]=(a[g+12|0]|a[g+13|0]<<8|a[g+14|0]<<16|a[g+15|0]<<24)^D,E[g+8>>2]=(a[g+8|0]|a[g+9|0]<<8|a[g+10|0]<<16|a[g+11|0]<<24)^s,E[g+4>>2]=(a[g+4|0]|a[g+5|0]<<8|a[g+6|0]<<16|a[g+7|0]<<24)^y,E[g>>2]=(a[0|g]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24)^p,E[A>>2]=(a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24)^e,E[g+68>>2]=(a[g+68|0]|a[g+69|0]<<8|a[g+70|0]<<16|a[g+71|0]<<24)^c,E[g+72>>2]=(a[g+72|0]|a[g+73|0]<<8|a[g+74|0]<<16|a[g+75|0]<<24)^t,E[g+76>>2]=(a[g+76|0]|a[g+77|0]<<8|a[g+78|0]<<16|a[g+79|0]<<24)^r,10!=(0|(n=n+1|0)););h=C+288|0}function q(A,I,g,C,B){var Q,i,_,c,t,r,e,y,s,D,p,w,f,n,k,F=0,N=0,S=0,G=0,M=0,b=0,K=0,H=0,Y=0,d=0,J=0,U=0,l=0,m=0,u=0,x=0,R=0,v=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,V=0,Z=0,W=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0;for(Q=h+-64|0,i=E[A+60>>2],_=E[A+56>>2],P=E[A+52>>2],L=E[A+48>>2],c=E[A+44>>2],t=E[A+40>>2],r=E[A+36>>2],e=E[A+32>>2],y=E[A+28>>2],s=E[A+24>>2],D=E[A+20>>2],p=E[A+16>>2],w=E[A+12>>2],f=E[A+8>>2],n=E[A+4>>2],k=E[A>>2];;){if(!B&C>>>0>63|B)F=g;else{if(E[Q+56>>2]=0,E[Q+60>>2]=0,E[Q+48>>2]=0,E[Q+52>>2]=0,E[Q+40>>2]=0,E[Q+44>>2]=0,E[Q+32>>2]=0,E[Q+36>>2]=0,E[Q+24>>2]=0,E[Q+28>>2]=0,E[Q+16>>2]=0,E[Q+20>>2]=0,E[Q+8>>2]=0,E[Q+12>>2]=0,E[Q>>2]=0,E[Q+4>>2]=0,S=0,C|B)for(;o[S+Q|0]=a[I+S|0],!B&(S=S+1|0)>>>0>>0|B;);I=F=Q,O=g}for(q=20,N=k,d=n,J=f,m=w,S=p,g=D,M=s,b=y,K=e,x=r,U=t,G=i,R=_,u=P,l=L,H=c;Y=S,N=Lg((S=N+S|0)^l,16),Y=l=Lg(Y^(K=N+K|0),12),l=Lg((v=S+l|0)^N,8),S=Lg(Y^(K=l+K|0),7),G=Lg((N=b+m|0)^G,16),b=Lg((H=G+H|0)^b,12),m=Lg((J=M+J|0)^R,16),M=Lg((U=m+U|0)^M,12),R=(z=N+b|0)+S|0,j=Lg((J=M+J|0)^m,8),N=Lg(R^j,16),m=Lg((d=g+d|0)^u,16),g=Lg((x=m+x|0)^g,12),Y=S,u=Lg((d=g+d|0)^m,8),Y=Lg(Y^(S=(X=u+x|0)+N|0),12),R=Lg(N^(m=Y+R|0),8),S=Lg((x=R+S|0)^Y,7),Y=K,K=J,N=Lg(G^z,8),J=Lg((G=N+H|0)^b,7),u=Lg((K=K+J|0)^u,16),H=Lg((b=Y+u|0)^J,12),u=Lg(u^(J=H+K|0),8),b=Lg((K=b+u|0)^H,7),H=G,G=d,d=Lg((U=U+j|0)^M,7),M=H+(l=Lg((G=G+d|0)^l,16))|0,H=G,G=Lg(M^d,12),l=Lg(l^(d=H+G|0),8),M=Lg((H=M+l|0)^G,7),Y=U,G=N,N=Lg(g^X,7),G=Lg(G^(U=N+v|0),16),v=Lg((g=Y+G|0)^N,12),G=Lg(G^(N=v+U|0),8),g=Lg((U=g+G|0)^v,7),q=q-2|0;);if(q=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,v=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,z=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,j=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,X=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,Y=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,V=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,Z=a[I+32|0]|a[I+33|0]<<8|a[I+34|0]<<16|a[I+35|0]<<24,W=a[I+36|0]|a[I+37|0]<<8|a[I+38|0]<<16|a[I+39|0]<<24,T=a[I+40|0]|a[I+41|0]<<8|a[I+42|0]<<16|a[I+43|0]<<24,$=a[I+44|0]|a[I+45|0]<<8|a[I+46|0]<<16|a[I+47|0]<<24,AA=a[I+48|0]|a[I+49|0]<<8|a[I+50|0]<<16|a[I+51|0]<<24,IA=a[I+52|0]|a[I+53|0]<<8|a[I+54|0]<<16|a[I+55|0]<<24,gA=a[I+56|0]|a[I+57|0]<<8|a[I+58|0]<<16|a[I+59|0]<<24,CA=a[I+60|0]|a[I+61|0]<<8|a[I+62|0]<<16|a[I+63|0]<<24,N=N+k^(a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24),o[0|F]=N,o[F+1|0]=N>>>8,o[F+2|0]=N>>>16,o[F+3|0]=N>>>24,N=G+i^CA,o[F+60|0]=N,o[F+61|0]=N>>>8,o[F+62|0]=N>>>16,o[F+63|0]=N>>>24,N=R+_^gA,o[F+56|0]=N,o[F+57|0]=N>>>8,o[F+58|0]=N>>>16,o[F+59|0]=N>>>24,N=u+P^IA,o[F+52|0]=N,o[F+53|0]=N>>>8,o[F+54|0]=N>>>16,o[F+55|0]=N>>>24,N=l+L^AA,o[F+48|0]=N,o[F+49|0]=N>>>8,o[F+50|0]=N>>>16,o[F+51|0]=N>>>24,N=H+c^$,o[F+44|0]=N,o[F+45|0]=N>>>8,o[F+46|0]=N>>>16,o[F+47|0]=N>>>24,N=U+t^T,o[F+40|0]=N,o[F+41|0]=N>>>8,o[F+42|0]=N>>>16,o[F+43|0]=N>>>24,N=x+r^W,o[F+36|0]=N,o[F+37|0]=N>>>8,o[F+38|0]=N>>>16,o[F+39|0]=N>>>24,N=K+e^Z,o[F+32|0]=N,o[F+33|0]=N>>>8,o[F+34|0]=N>>>16,o[F+35|0]=N>>>24,b=b+y^V,o[F+28|0]=b,o[F+29|0]=b>>>8,o[F+30|0]=b>>>16,o[F+31|0]=b>>>24,M=Y^M+s,o[F+24|0]=M,o[F+25|0]=M>>>8,o[F+26|0]=M>>>16,o[F+27|0]=M>>>24,g=X^g+D,o[F+20|0]=g,o[F+21|0]=g>>>8,o[F+22|0]=g>>>16,o[F+23|0]=g>>>24,g=j^S+p,o[F+16|0]=g,o[F+17|0]=g>>>8,o[F+18|0]=g>>>16,o[F+19|0]=g>>>24,g=z^m+w,o[F+12|0]=g,o[F+13|0]=g>>>8,o[F+14|0]=g>>>16,o[F+15|0]=g>>>24,g=v^J+f,o[F+8|0]=g,o[F+9|0]=g>>>8,o[F+10|0]=g>>>16,o[F+11|0]=g>>>24,g=q^d+n,o[F+4|0]=g,o[F+5|0]=g>>>8,o[F+6|0]=g>>>16,o[F+7|0]=g>>>24,P=!(L=L+1|0)+P|0,!B&C>>>0<=64){if(!(!C|!B&C>>>0>63|0!=(0|B)))for(S=0;o[S+O|0]=a[F+S|0],C>>>0>(S=S+1|0)>>>0;);E[A+52>>2]=P,E[A+48>>2]=L;break}I=I- -64|0,g=F- -64|0,B=B-1|0,B=(C=C+-64|0)>>>0<4294967232?B+1|0:B}}function z(A,I){I|=0;var g,C=0,B=0,Q=0,i=0,a=0,_=0,c=0;return h=g=h-704|0,C=80+((B=E[72+(A|=0)>>2]>>>3&127)+A|0)|0,B>>>0>=112?(Sg(C,35456,128-B|0),F(A,B=A+80|0,g,g+640|0),Hg(B,0,112)):Sg(C,35456,112-B|0),_=(Q=E[A+64>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,c=i<<24,i=(a=-16777216&Q)>>>24|0,C=c|a<<8|-16777216&((255&(C=E[A+68>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,o[A+192|0]=C,o[A+193|0]=C>>>8,o[A+194|0]=C>>>16,o[A+195|0]=C>>>24,B=(C=B|i|_)|(B=0)|B|0,o[A+196|0]=B,o[A+197|0]=B>>>8,o[A+198|0]=B>>>16,o[A+199|0]=B>>>24,_=(Q=E[A+72>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,c=i<<24,i=(a=-16777216&Q)>>>24|0,C=c|a<<8|-16777216&((255&(C=E[A+76>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,o[A+200|0]=C,o[A+201|0]=C>>>8,o[A+202|0]=C>>>16,o[A+203|0]=C>>>24,B=(C=B|i|_)|(B=0)|B|0,o[A+204|0]=B,o[A+205|0]=B>>>8,o[A+206|0]=B>>>16,o[A+207|0]=B>>>24,F(A,A+80|0,g,g+640|0),_=(Q=E[A>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,c=i<<24,i=(a=-16777216&Q)>>>24|0,C=c|a<<8|-16777216&((255&(C=E[A+4>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,o[0|I]=C,o[I+1|0]=C>>>8,o[I+2|0]=C>>>16,o[I+3|0]=C>>>24,B=(C=B|i|_)|(B=0)|B|0,o[I+4|0]=B,o[I+5|0]=B>>>8,o[I+6|0]=B>>>16,o[I+7|0]=B>>>24,_=(Q=E[A+8>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,c=i<<24,i=(a=-16777216&Q)>>>24|0,C=c|a<<8|-16777216&((255&(C=E[A+12>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,o[I+8|0]=C,o[I+9|0]=C>>>8,o[I+10|0]=C>>>16,o[I+11|0]=C>>>24,B=(C=B|i|_)|(B=0)|B|0,o[I+12|0]=B,o[I+13|0]=B>>>8,o[I+14|0]=B>>>16,o[I+15|0]=B>>>24,_=(Q=E[A+16>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,c=i<<24,i=(a=-16777216&Q)>>>24|0,C=c|a<<8|-16777216&((255&(C=E[A+20>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,o[I+16|0]=C,o[I+17|0]=C>>>8,o[I+18|0]=C>>>16,o[I+19|0]=C>>>24,B=(C=B|i|_)|(B=0)|B|0,o[I+20|0]=B,o[I+21|0]=B>>>8,o[I+22|0]=B>>>16,o[I+23|0]=B>>>24,_=(Q=E[A+24>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,c=i<<24,i=(a=-16777216&Q)>>>24|0,C=c|a<<8|-16777216&((255&(C=E[A+28>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,o[I+24|0]=C,o[I+25|0]=C>>>8,o[I+26|0]=C>>>16,o[I+27|0]=C>>>24,B=(C=B|i|_)|(B=0)|B|0,o[I+28|0]=B,o[I+29|0]=B>>>8,o[I+30|0]=B>>>16,o[I+31|0]=B>>>24,_=(Q=E[A+32>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,c=i<<24,i=(a=-16777216&Q)>>>24|0,C=c|a<<8|-16777216&((255&(C=E[A+36>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,o[I+32|0]=C,o[I+33|0]=C>>>8,o[I+34|0]=C>>>16,o[I+35|0]=C>>>24,B=(C=B|i|_)|(B=0)|B|0,o[I+36|0]=B,o[I+37|0]=B>>>8,o[I+38|0]=B>>>16,o[I+39|0]=B>>>24,_=(Q=E[A+40>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,c=i<<24,i=(a=-16777216&Q)>>>24|0,C=c|a<<8|-16777216&((255&(C=E[A+44>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,o[I+40|0]=C,o[I+41|0]=C>>>8,o[I+42|0]=C>>>16,o[I+43|0]=C>>>24,B=(C=B|i|_)|(B=0)|B|0,o[I+44|0]=B,o[I+45|0]=B>>>8,o[I+46|0]=B>>>16,o[I+47|0]=B>>>24,_=(Q=E[A+48>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,c=i<<24,i=(a=-16777216&Q)>>>24|0,C=c|a<<8|-16777216&((255&(C=E[A+52>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,o[I+48|0]=C,o[I+49|0]=C>>>8,o[I+50|0]=C>>>16,o[I+51|0]=C>>>24,B=(C=B|i|_)|(B=0)|B|0,o[I+52|0]=B,o[I+53|0]=B>>>8,o[I+54|0]=B>>>16,o[I+55|0]=B>>>24,_=(Q=E[A+56>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,C=I,c=i<<24,i=(a=-16777216&Q)>>>24|0,I=c|a<<8|-16777216&((255&(I=E[A+60>>2]))<<24|Q>>>8)|16711680&((16777215&I)<<8|Q>>>24)|I>>>8&65280|I>>>24,o[C+56|0]=I,o[C+57|0]=I>>>8,o[C+58|0]=I>>>16,o[C+59|0]=I>>>24,I=(I=B|i|_)|(B=0)|B|0,o[C+60|0]=I,o[C+61|0]=I>>>8,o[C+62|0]=I>>>16,o[C+63|0]=I>>>24,XC(g,704),XC(A,208),h=g+704|0,0}function j(A,I,g){var C,B,Q,i,_,c,t,r,e,y,s,D,p,w,f,n,k,F,N,S,G=0;h=C=h-224|0,c=a[g+16|0]|a[g+17|0]<<8|a[g+18|0]<<16|a[g+19|0]<<24,t=a[0|(G=g- -64|0)]|a[G+1|0]<<8|a[G+2|0]<<16|a[G+3|0]<<24,r=a[g+80|0]|a[g+81|0]<<8|a[g+82|0]<<16|a[g+83|0]<<24,e=a[g+32|0]|a[g+33|0]<<8|a[g+34|0]<<16|a[g+35|0]<<24,y=a[g+48|0]|a[g+49|0]<<8|a[g+50|0]<<16|a[g+51|0]<<24,B=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,s=a[g+20|0]|a[g+21|0]<<8|a[g+22|0]<<16|a[g+23|0]<<24,D=a[g+68|0]|a[g+69|0]<<8|a[g+70|0]<<16|a[g+71|0]<<24,p=a[g+84|0]|a[g+85|0]<<8|a[g+86|0]<<16|a[g+87|0]<<24,w=a[g+36|0]|a[g+37|0]<<8|a[g+38|0]<<16|a[g+39|0]<<24,f=a[g+52|0]|a[g+53|0]<<8|a[g+54|0]<<16|a[g+55|0]<<24,Q=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,n=a[g+24|0]|a[g+25|0]<<8|a[g+26|0]<<16|a[g+27|0]<<24,k=a[g+72|0]|a[g+73|0]<<8|a[g+74|0]<<16|a[g+75|0]<<24,F=a[g+88|0]|a[g+89|0]<<8|a[g+90|0]<<16|a[g+91|0]<<24,N=a[g+40|0]|a[g+41|0]<<8|a[g+42|0]<<16|a[g+43|0]<<24,S=a[g+56|0]|a[g+57|0]<<8|a[g+58|0]<<16|a[g+59|0]<<24,i=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,I=(_=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24)^(a[g+44|0]|a[g+45|0]<<8|a[g+46|0]<<16|a[g+47|0]<<24)&(a[g+60|0]|a[g+61|0]<<8|a[g+62|0]<<16|a[g+63|0]<<24)^(a[g+28|0]|a[g+29|0]<<8|a[g+30|0]<<16|a[g+31|0]<<24)^(a[g+92|0]|a[g+93|0]<<8|a[g+94|0]<<16|a[g+95|0]<<24)^(a[g+76|0]|a[g+77|0]<<8|a[g+78|0]<<16|a[g+79|0]<<24),o[A+12|0]=I,o[A+13|0]=I>>>8,o[A+14|0]=I>>>16,o[A+15|0]=I>>>24,I=N&S^k^F^n^Q,o[A+8|0]=I,o[A+9|0]=I>>>8,o[A+10|0]=I>>>16,o[A+11|0]=I>>>24,I=w&f^D^p^s^B,o[A+4|0]=I,o[A+5|0]=I>>>8,o[A+6|0]=I>>>16,o[A+7|0]=I>>>24,I=e&y^c^t^r^i,o[0|A]=I,o[A+1|0]=I>>>8,o[A+2|0]=I>>>16,o[A+3|0]=I>>>24,A=E[g+92>>2],E[C+216>>2]=E[g+88>>2],E[C+220>>2]=A,A=E[g+84>>2],E[C+208>>2]=E[g+80>>2],E[C+212>>2]=A,A=E[g+76>>2],E[C+184>>2]=E[g+72>>2],E[C+188>>2]=A,A=E[G+4>>2],E[C+176>>2]=E[G>>2],E[C+180>>2]=A,A=E[g+92>>2],E[C+168>>2]=E[g+88>>2],E[C+172>>2]=A,A=E[g+84>>2],E[C+160>>2]=E[g+80>>2],E[C+164>>2]=A,$A(A=C+192|0,C+176|0,C+160|0),I=E[C+204>>2],E[g+88>>2]=E[C+200>>2],E[g+92>>2]=I,I=E[C+196>>2],E[g+80>>2]=E[C+192>>2],E[g+84>>2]=I,I=E[g+60>>2],E[C+152>>2]=E[g+56>>2],E[C+156>>2]=I,I=E[g+52>>2],E[C+144>>2]=E[g+48>>2],E[C+148>>2]=I,I=E[g+76>>2],E[C+136>>2]=E[g+72>>2],E[C+140>>2]=I,I=E[G+4>>2],E[C+128>>2]=E[G>>2],E[C+132>>2]=I,$A(A,C+144|0,C+128|0),I=E[C+204>>2],E[g+72>>2]=E[C+200>>2],E[g+76>>2]=I,I=E[C+196>>2],E[G>>2]=E[C+192>>2],E[G+4>>2]=I,I=E[g+44>>2],E[C+120>>2]=E[g+40>>2],E[C+124>>2]=I,I=E[g+36>>2],E[C+112>>2]=E[g+32>>2],E[C+116>>2]=I,I=E[g+60>>2],E[C+104>>2]=E[g+56>>2],E[C+108>>2]=I,I=E[g+52>>2],E[C+96>>2]=E[g+48>>2],E[C+100>>2]=I,$A(A,C+112|0,C+96|0),I=E[C+204>>2],E[g+56>>2]=E[C+200>>2],E[g+60>>2]=I,I=E[C+196>>2],E[g+48>>2]=E[C+192>>2],E[g+52>>2]=I,I=E[g+28>>2],E[C+88>>2]=E[g+24>>2],E[C+92>>2]=I,I=E[g+20>>2],E[C+80>>2]=E[g+16>>2],E[C+84>>2]=I,I=E[g+44>>2],E[C+72>>2]=E[g+40>>2],E[C+76>>2]=I,I=E[g+36>>2],E[C+64>>2]=E[g+32>>2],E[C+68>>2]=I,$A(A,C+80|0,C- -64|0),I=E[C+204>>2],E[g+40>>2]=E[C+200>>2],E[g+44>>2]=I,I=E[C+196>>2],E[g+32>>2]=E[C+192>>2],E[g+36>>2]=I,I=E[g+12>>2],E[C+56>>2]=E[g+8>>2],E[C+60>>2]=I,I=E[g+4>>2],E[C+48>>2]=E[g>>2],E[C+52>>2]=I,I=E[g+28>>2],E[C+40>>2]=E[g+24>>2],E[C+44>>2]=I,I=E[g+20>>2],E[C+32>>2]=E[g+16>>2],E[C+36>>2]=I,$A(A,C+48|0,C+32|0),I=E[C+204>>2],E[g+24>>2]=E[C+200>>2],E[g+28>>2]=I,I=E[C+196>>2],E[g+16>>2]=E[C+192>>2],E[g+20>>2]=I,I=E[C+220>>2],E[C+24>>2]=E[C+216>>2],E[C+28>>2]=I,I=E[C+212>>2],E[C+16>>2]=E[C+208>>2],E[C+20>>2]=I,I=E[g+12>>2],E[C+8>>2]=E[g+8>>2],E[C+12>>2]=I,I=E[g+4>>2],E[C>>2]=E[g>>2],E[C+4>>2]=I,$A(A,C+16|0,C),A=E[C+192>>2],I=E[C+196>>2],G=E[C+200>>2],E[g+12>>2]=_^E[C+204>>2],E[g+8>>2]=G^Q,E[g+4>>2]=I^B,E[g>>2]=A^i,h=C+224|0}function X(A,I,g){var C,B,Q,i,_,c,t,r,e,y,s,D,p,w,f,n=0,k=0,F=0,N=0,S=0;h=C=h-224|0,F=a[g+16|0]|a[g+17|0]<<8|a[g+18|0]<<16|a[g+19|0]<<24,k=a[0|(n=g- -64|0)]|a[n+1|0]<<8|a[n+2|0]<<16|a[n+3|0]<<24,B=a[g+80|0]|a[g+81|0]<<8|a[g+82|0]<<16|a[g+83|0]<<24,Q=a[g+32|0]|a[g+33|0]<<8|a[g+34|0]<<16|a[g+35|0]<<24,i=a[g+48|0]|a[g+49|0]<<8|a[g+50|0]<<16|a[g+51|0]<<24,N=a[g+20|0]|a[g+21|0]<<8|a[g+22|0]<<16|a[g+23|0]<<24,_=a[g+68|0]|a[g+69|0]<<8|a[g+70|0]<<16|a[g+71|0]<<24,c=a[g+84|0]|a[g+85|0]<<8|a[g+86|0]<<16|a[g+87|0]<<24,t=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,r=a[g+36|0]|a[g+37|0]<<8|a[g+38|0]<<16|a[g+39|0]<<24,e=a[g+52|0]|a[g+53|0]<<8|a[g+54|0]<<16|a[g+55|0]<<24,S=a[g+24|0]|a[g+25|0]<<8|a[g+26|0]<<16|a[g+27|0]<<24,y=a[g+72|0]|a[g+73|0]<<8|a[g+74|0]<<16|a[g+75|0]<<24,s=a[g+88|0]|a[g+89|0]<<8|a[g+90|0]<<16|a[g+91|0]<<24,D=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,p=a[g+40|0]|a[g+41|0]<<8|a[g+42|0]<<16|a[g+43|0]<<24,w=a[g+56|0]|a[g+57|0]<<8|a[g+58|0]<<16|a[g+59|0]<<24,f=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,I=(a[g+44|0]|a[g+45|0]<<8|a[g+46|0]<<16|a[g+47|0]<<24)&(a[g+60|0]|a[g+61|0]<<8|a[g+62|0]<<16|a[g+63|0]<<24)^(a[g+28|0]|a[g+29|0]<<8|a[g+30|0]<<16|a[g+31|0]<<24)^(a[g+76|0]|a[g+77|0]<<8|a[g+78|0]<<16|a[g+79|0]<<24)^(a[g+92|0]|a[g+93|0]<<8|a[g+94|0]<<16|a[g+95|0]<<24)^(a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24),o[A+12|0]=I,o[A+13|0]=I>>>8,o[A+14|0]=I>>>16,o[A+15|0]=I>>>24,S=p&w^S^s^D^y,o[A+8|0]=S,o[A+9|0]=S>>>8,o[A+10|0]=S>>>16,o[A+11|0]=S>>>24,N=r&e^N^c^t^_,o[A+4|0]=N,o[A+5|0]=N>>>8,o[A+6|0]=N>>>16,o[A+7|0]=N>>>24,F=Q&i^F^k^B^f,o[0|A]=F,o[A+1|0]=F>>>8,o[A+2|0]=F>>>16,o[A+3|0]=F>>>24,A=E[g+92>>2],E[C+216>>2]=E[g+88>>2],E[C+220>>2]=A,A=E[g+84>>2],E[C+208>>2]=E[g+80>>2],E[C+212>>2]=A,A=E[g+76>>2],E[C+184>>2]=E[g+72>>2],E[C+188>>2]=A,A=E[n+4>>2],E[C+176>>2]=E[n>>2],E[C+180>>2]=A,A=E[g+92>>2],E[C+168>>2]=E[g+88>>2],E[C+172>>2]=A,A=E[g+84>>2],E[C+160>>2]=E[g+80>>2],E[C+164>>2]=A,$A(A=C+192|0,C+176|0,C+160|0),k=E[C+204>>2],E[g+88>>2]=E[C+200>>2],E[g+92>>2]=k,k=E[C+196>>2],E[g+80>>2]=E[C+192>>2],E[g+84>>2]=k,k=E[g+60>>2],E[C+152>>2]=E[g+56>>2],E[C+156>>2]=k,k=E[g+52>>2],E[C+144>>2]=E[g+48>>2],E[C+148>>2]=k,k=E[g+76>>2],E[C+136>>2]=E[g+72>>2],E[C+140>>2]=k,k=E[n+4>>2],E[C+128>>2]=E[n>>2],E[C+132>>2]=k,$A(A,C+144|0,C+128|0),k=E[C+204>>2],E[g+72>>2]=E[C+200>>2],E[g+76>>2]=k,k=E[C+196>>2],E[n>>2]=E[C+192>>2],E[n+4>>2]=k,n=E[g+44>>2],E[C+120>>2]=E[g+40>>2],E[C+124>>2]=n,n=E[g+36>>2],E[C+112>>2]=E[g+32>>2],E[C+116>>2]=n,n=E[g+60>>2],E[C+104>>2]=E[g+56>>2],E[C+108>>2]=n,n=E[g+52>>2],E[C+96>>2]=E[g+48>>2],E[C+100>>2]=n,$A(A,C+112|0,C+96|0),n=E[C+204>>2],E[g+56>>2]=E[C+200>>2],E[g+60>>2]=n,n=E[C+196>>2],E[g+48>>2]=E[C+192>>2],E[g+52>>2]=n,n=E[g+28>>2],E[C+88>>2]=E[g+24>>2],E[C+92>>2]=n,n=E[g+20>>2],E[C+80>>2]=E[g+16>>2],E[C+84>>2]=n,n=E[g+44>>2],E[C+72>>2]=E[g+40>>2],E[C+76>>2]=n,n=E[g+36>>2],E[C+64>>2]=E[g+32>>2],E[C+68>>2]=n,$A(A,C+80|0,C- -64|0),n=E[C+204>>2],E[g+40>>2]=E[C+200>>2],E[g+44>>2]=n,n=E[C+196>>2],E[g+32>>2]=E[C+192>>2],E[g+36>>2]=n,n=E[g+12>>2],E[C+56>>2]=E[g+8>>2],E[C+60>>2]=n,n=E[g+4>>2],E[C+48>>2]=E[g>>2],E[C+52>>2]=n,n=E[g+28>>2],E[C+40>>2]=E[g+24>>2],E[C+44>>2]=n,n=E[g+20>>2],E[C+32>>2]=E[g+16>>2],E[C+36>>2]=n,$A(A,C+48|0,C+32|0),n=E[C+204>>2],E[g+24>>2]=E[C+200>>2],E[g+28>>2]=n,n=E[C+196>>2],E[g+16>>2]=E[C+192>>2],E[g+20>>2]=n,n=E[C+220>>2],E[C+24>>2]=E[C+216>>2],E[C+28>>2]=n,n=E[C+212>>2],E[C+16>>2]=E[C+208>>2],E[C+20>>2]=n,n=E[g+12>>2],E[C+8>>2]=E[g+8>>2],E[C+12>>2]=n,n=E[g+4>>2],E[C>>2]=E[g>>2],E[C+4>>2]=n,$A(A,C+16|0,C),A=E[C+192>>2],n=E[C+196>>2],k=E[C+200>>2],E[g+12>>2]=I^E[C+204>>2],E[g+8>>2]=k^S,E[g+4>>2]=n^N,E[g>>2]=A^F,h=C+224|0}function O(A,I){var g,C,B,Q,i,_,c,t,r,e,y=0,s=0,D=0,p=0,w=0,f=0,n=0,k=0,F=0,N=0,S=0,G=0,M=0,b=0,K=0,H=0,d=0,J=0,U=0,l=0,m=0,u=0,x=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,V=0,Z=0,W=0;h=g=h-800|0,y=E[(s=I+40|0)>>2],D=E[I+80>>2],p=E[I+44>>2],w=E[I+84>>2],f=E[I+48>>2],S=E[I+88>>2],n=E[I+52>>2],b=E[I+92>>2],G=E[I+56>>2],K=E[I+96>>2],H=E[I+60>>2],d=E[I+100>>2],J=E[(k=I- -64|0)>>2],U=E[I+104>>2],l=E[I+68>>2],m=E[I+108>>2],u=E[I+72>>2],x=E[I+112>>2],F=E[I+76>>2],N=E[I+116>>2],E[g+324>>2]=F+N,E[g+320>>2]=u+x,E[g+316>>2]=l+m,E[g+312>>2]=J+U,E[g+308>>2]=H+d,E[g+304>>2]=G+K,E[g+300>>2]=n+b,E[g+296>>2]=f+S,E[g+292>>2]=p+w,E[g+288>>2]=y+D,E[g+36>>2]=N-F,E[g+32>>2]=x-u,E[g+28>>2]=m-l,E[g+24>>2]=U-J,E[g+20>>2]=d-H,E[g+16>>2]=K-G,E[g+12>>2]=b-n,E[g+8>>2]=S-f,E[g+4>>2]=w-p,E[g>>2]=D-y,Y(y=g+288|0,y,g),Y(p=g+240|0,I,s),v(D=g+192|0,p),Y(D,y,D),E[g+452>>2]=0,E[g+456>>2]=0,E[g+460>>2]=0,E[g+464>>2]=0,E[g+468>>2]=0,E[g+436>>2]=0,E[g+440>>2]=0,E[g+444>>2]=0,E[g+448>>2]=0,E[g+432>>2]=1,GA(w=g+576|0,g+432|0,D),Y(D=g+720|0,w,y),Y(b=g+672|0,w,p),Y(n=g+48|0,D,b),Y(n,n,y=I+120|0),Y(g+528|0,I,1648),Y(g+480|0,s,1648),Y(g+624|0,D,2960),Y(D=g+336|0,y,n),BI(S=g+384|0,D),P=a[g+384|0],D=E[I+36>>2],y=E[I+32>>2],E[g+176>>2]=y,E[g+180>>2]=D,p=E[I+28>>2],D=E[I+24>>2],E[g+168>>2]=D,E[g+172>>2]=p,w=E[I+20>>2],p=E[I+16>>2],E[g+160>>2]=p,E[g+164>>2]=w,f=E[I+12>>2],w=E[I+8>>2],E[g+152>>2]=w,E[g+156>>2]=f,G=E[I+4>>2],f=E[I>>2],E[g+144>>2]=f,E[g+148>>2]=G,G=E[s>>2],K=E[I+44>>2],H=E[I+48>>2],d=E[I+52>>2],J=E[I+56>>2],U=E[I+60>>2],l=E[k>>2],m=E[I+68>>2],u=E[I+72>>2],x=E[I+76>>2],q=E[g+484>>2],k=E[g+148>>2],z=E[g+492>>2],F=E[g+156>>2],j=E[g+500>>2],N=E[g+164>>2],X=E[g+508>>2],M=E[g+172>>2],O=E[g+516>>2],L=E[g+180>>2],V=E[g+480>>2],Z=E[g+488>>2],W=E[g+496>>2],R=E[g+504>>2],s=0-(1&P)|0,E[g+176>>2]=y^s&(y^E[g+512>>2]),E[g+168>>2]=D^s&(D^R),E[g+160>>2]=p^s&(p^W),E[g+152>>2]=w^s&(w^Z),E[g+144>>2]=f^s&(f^V),E[g+180>>2]=L^s&(L^O),E[g+172>>2]=M^s&(M^X),E[g+164>>2]=N^s&(N^j),E[g+156>>2]=F^s&(F^z),E[g+148>>2]=k^s&(k^q),L=E[g+528>>2],P=E[g+532>>2],q=E[g+536>>2],z=E[g+540>>2],j=E[g+544>>2],X=E[g+548>>2],O=E[g+552>>2],V=E[g+556>>2],Z=E[g+560>>2],W=E[g+564>>2],y=E[g+672>>2],R=E[g+624>>2],D=E[g+676>>2],B=E[g+628>>2],p=E[g+680>>2],Q=E[g+632>>2],w=E[g+684>>2],i=E[g+636>>2],f=E[g+688>>2],_=E[g+640>>2],k=E[g+692>>2],c=E[g+644>>2],F=E[g+696>>2],t=E[g+648>>2],N=E[g+700>>2],r=E[g+652>>2],M=E[g+704>>2],e=E[g+656>>2],C=E[g+708>>2],E[g+708>>2]=C^s&(E[g+660>>2]^C),E[g+704>>2]=M^s&(M^e),E[g+700>>2]=N^s&(N^r),E[g+696>>2]=F^s&(F^t),E[g+692>>2]=k^s&(k^c),E[g+688>>2]=f^s&(f^_),E[g+684>>2]=w^s&(w^i),E[g+680>>2]=p^s&(p^Q),E[g+676>>2]=D^s&(D^B),E[g+672>>2]=y^s&(y^R),Y(y=g+96|0,g+144|0,n),BI(S,y),D=E[I+80>>2],p=E[I+84>>2],w=E[I+88>>2],f=E[I+92>>2],n=E[I+96>>2],k=E[I+100>>2],F=E[I+104>>2],N=E[I+108>>2],M=E[I+112>>2],R=E[I+116>>2],I=0-(1&o[g+384|0])|0,y=x^s&(x^W),E[g+420>>2]=R-(I&(0-y^y)^y),y=u^s&(u^Z),E[g+416>>2]=M-(I&(0-y^y)^y),y=m^s&(m^V),E[g+412>>2]=N-(I&(0-y^y)^y),y=l^s&(l^O),E[g+408>>2]=F-(I&(0-y^y)^y),y=U^s&(U^X),E[g+404>>2]=k-(I&(0-y^y)^y),y=J^s&(J^j),E[g+400>>2]=n-(I&(0-y^y)^y),y=d^s&(d^z),E[g+396>>2]=f-(I&(0-y^y)^y),y=H^s&(H^q),E[g+392>>2]=w-(I&(0-y^y)^y),y=K^s&(K^P),E[g+388>>2]=p-(I&(0-y^y)^y),y=I,I=G^s&(G^L),E[g+384>>2]=D-(y&(0-I^I)^I),Y(S,b,S),BI(g+768|0,S),I=0-(1&o[g+768|0])|0,y=E[g+384>>2],E[g+384>>2]=I&(0-y^y)^y,y=E[g+388>>2],E[g+388>>2]=I&(0-y^y)^y,y=E[g+392>>2],E[g+392>>2]=I&(0-y^y)^y,y=E[g+396>>2],E[g+396>>2]=I&(0-y^y)^y,y=E[g+400>>2],E[g+400>>2]=I&(0-y^y)^y,y=E[g+404>>2],E[g+404>>2]=I&(0-y^y)^y,y=E[g+408>>2],E[g+408>>2]=I&(0-y^y)^y,y=E[g+412>>2],E[g+412>>2]=I&(0-y^y)^y,y=E[g+416>>2],E[g+416>>2]=I&(0-y^y)^y,y=I,I=E[g+420>>2],E[g+420>>2]=y&(0-I^I)^I,BI(A,S),h=g+800|0}function V(A,I){var g,C,B,Q,i,o,_,c,t,r=0,e=0;h=g=h-288|0,C=a[A+28|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24,B=a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,Q=a[A+20|0]|a[A+21|0]<<8|a[A+22|0]<<16|a[A+23|0]<<24,i=a[A+16|0]|a[A+17|0]<<8|a[A+18|0]<<16|a[A+19|0]<<24,o=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,_=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,c=a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24,t=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,A=E[I+124>>2],E[g+280>>2]=E[I+120>>2],E[g+284>>2]=A,A=E[I+116>>2],E[g+272>>2]=E[I+112>>2],E[g+276>>2]=A,A=E[I+108>>2],E[g+248>>2]=E[I+104>>2],E[g+252>>2]=A,A=E[I+100>>2],E[g+240>>2]=E[I+96>>2],E[g+244>>2]=A,A=E[I+124>>2],E[g+232>>2]=E[I+120>>2],E[g+236>>2]=A,A=E[I+116>>2],E[g+224>>2]=E[I+112>>2],E[g+228>>2]=A,$A(e=g+256|0,g+240|0,g+224|0),A=E[g+268>>2],E[I+120>>2]=E[g+264>>2],E[I+124>>2]=A,A=E[g+260>>2],E[I+112>>2]=E[g+256>>2],E[I+116>>2]=A,A=E[I+92>>2],E[g+216>>2]=E[I+88>>2],E[g+220>>2]=A,A=E[I+84>>2],E[g+208>>2]=E[I+80>>2],E[g+212>>2]=A,A=E[I+108>>2],E[g+200>>2]=E[I+104>>2],E[g+204>>2]=A,A=E[I+100>>2],E[g+192>>2]=E[I+96>>2],E[g+196>>2]=A,$A(e,g+208|0,g+192|0),A=E[g+268>>2],E[I+104>>2]=E[g+264>>2],E[I+108>>2]=A,A=E[g+260>>2],E[I+96>>2]=E[g+256>>2],E[I+100>>2]=A,A=E[I+76>>2],E[g+184>>2]=E[I+72>>2],E[g+188>>2]=A,r=E[4+(A=I- -64|0)>>2],E[g+176>>2]=E[A>>2],E[g+180>>2]=r,r=E[I+92>>2],E[g+168>>2]=E[I+88>>2],E[g+172>>2]=r,r=E[I+84>>2],E[g+160>>2]=E[I+80>>2],E[g+164>>2]=r,$A(e,g+176|0,g+160|0),r=E[g+268>>2],E[I+88>>2]=E[g+264>>2],E[I+92>>2]=r,r=E[g+260>>2],E[I+80>>2]=E[g+256>>2],E[I+84>>2]=r,r=E[I+60>>2],E[g+152>>2]=E[I+56>>2],E[g+156>>2]=r,r=E[I+52>>2],E[g+144>>2]=E[I+48>>2],E[g+148>>2]=r,r=E[I+76>>2],E[g+136>>2]=E[I+72>>2],E[g+140>>2]=r,r=E[A+4>>2],E[g+128>>2]=E[A>>2],E[g+132>>2]=r,$A(e,g+144|0,g+128|0),r=E[g+268>>2],E[I+72>>2]=E[g+264>>2],E[I+76>>2]=r,r=E[g+260>>2],E[A>>2]=E[g+256>>2],E[A+4>>2]=r,r=E[I+44>>2],E[g+120>>2]=E[I+40>>2],E[g+124>>2]=r,r=E[I+36>>2],E[g+112>>2]=E[I+32>>2],E[g+116>>2]=r,r=E[I+60>>2],E[g+104>>2]=E[I+56>>2],E[g+108>>2]=r,r=E[I+52>>2],E[g+96>>2]=E[I+48>>2],E[g+100>>2]=r,$A(e,g+112|0,g+96|0),r=E[g+268>>2],E[I+56>>2]=E[g+264>>2],E[I+60>>2]=r,r=E[g+260>>2],E[I+48>>2]=E[g+256>>2],E[I+52>>2]=r,r=E[I+28>>2],E[g+88>>2]=E[I+24>>2],E[g+92>>2]=r,r=E[I+20>>2],E[g+80>>2]=E[I+16>>2],E[g+84>>2]=r,r=E[I+44>>2],E[g+72>>2]=E[I+40>>2],E[g+76>>2]=r,r=E[I+36>>2],E[g+64>>2]=E[I+32>>2],E[g+68>>2]=r,$A(e,g+80|0,g- -64|0),r=E[g+268>>2],E[I+40>>2]=E[g+264>>2],E[I+44>>2]=r,r=E[g+260>>2],E[I+32>>2]=E[g+256>>2],E[I+36>>2]=r,r=E[I+12>>2],E[g+56>>2]=E[I+8>>2],E[g+60>>2]=r,r=E[I+4>>2],E[g+48>>2]=E[I>>2],E[g+52>>2]=r,r=E[I+28>>2],E[g+40>>2]=E[I+24>>2],E[g+44>>2]=r,r=E[I+20>>2],E[g+32>>2]=E[I+16>>2],E[g+36>>2]=r,$A(e,g+48|0,g+32|0),r=E[g+268>>2],E[I+24>>2]=E[g+264>>2],E[I+28>>2]=r,r=E[g+260>>2],E[I+16>>2]=E[g+256>>2],E[I+20>>2]=r,r=E[g+284>>2],E[g+24>>2]=E[g+280>>2],E[g+28>>2]=r,r=E[g+276>>2],E[g+16>>2]=E[g+272>>2],E[g+20>>2]=r,r=E[I+12>>2],E[g+8>>2]=E[I+8>>2],E[g+12>>2]=r,r=E[I+4>>2],E[g>>2]=E[I>>2],E[g+4>>2]=r,$A(e,g+16|0,g),e=E[g+268>>2],E[I+8>>2]=E[g+264>>2],E[I+12>>2]=e,e=E[g+260>>2],E[I>>2]=E[g+256>>2],E[I+4>>2]=e,E[I+12>>2]=(a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24)^c,E[I+8>>2]=(a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24)^_,E[I+4>>2]=(a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24)^o,E[I>>2]=(a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24)^t,E[A>>2]=(a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24)^i,E[I+68>>2]=(a[I+68|0]|a[I+69|0]<<8|a[I+70|0]<<16|a[I+71|0]<<24)^Q,E[I+72>>2]=(a[I+72|0]|a[I+73|0]<<8|a[I+74|0]<<16|a[I+75|0]<<24)^B,E[I+76>>2]=(a[I+76|0]|a[I+77|0]<<8|a[I+78|0]<<16|a[I+79|0]<<24)^C,h=g+288|0}function Z(A,I,g,C){var B,Q,i,o,_,c,t,r,e,y,s,D,p,w,f,n,k,F,N=0,S=0,G=0,M=0;h=B=h-240|0,G=16-g|0,M=Hg((S=B+192|0)+g|0,0,g>>>0<=15?G:0),Sg(S,I,g),N=a[C+16|0]|a[C+17|0]<<8|a[C+18|0]<<16|a[C+19|0]<<24,Q=a[0|(I=C- -64|0)]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,i=a[C+80|0]|a[C+81|0]<<8|a[C+82|0]<<16|a[C+83|0]<<24,o=a[C+32|0]|a[C+33|0]<<8|a[C+34|0]<<16|a[C+35|0]<<24,_=a[C+48|0]|a[C+49|0]<<8|a[C+50|0]<<16|a[C+51|0]<<24,c=a[C+20|0]|a[C+21|0]<<8|a[C+22|0]<<16|a[C+23|0]<<24,t=a[C+68|0]|a[C+69|0]<<8|a[C+70|0]<<16|a[C+71|0]<<24,r=a[C+84|0]|a[C+85|0]<<8|a[C+86|0]<<16|a[C+87|0]<<24,e=a[C+36|0]|a[C+37|0]<<8|a[C+38|0]<<16|a[C+39|0]<<24,y=a[C+52|0]|a[C+53|0]<<8|a[C+54|0]<<16|a[C+55|0]<<24,s=a[C+24|0]|a[C+25|0]<<8|a[C+26|0]<<16|a[C+27|0]<<24,D=a[C+72|0]|a[C+73|0]<<8|a[C+74|0]<<16|a[C+75|0]<<24,p=a[C+88|0]|a[C+89|0]<<8|a[C+90|0]<<16|a[C+91|0]<<24,w=a[C+40|0]|a[C+41|0]<<8|a[C+42|0]<<16|a[C+43|0]<<24,f=a[C+56|0]|a[C+57|0]<<8|a[C+58|0]<<16|a[C+59|0]<<24,n=E[B+192>>2],k=E[B+196>>2],F=E[B+200>>2],E[B+204>>2]=(a[C+44|0]|a[C+45|0]<<8|a[C+46|0]<<16|a[C+47|0]<<24)&(a[C+60|0]|a[C+61|0]<<8|a[C+62|0]<<16|a[C+63|0]<<24)^(a[C+28|0]|a[C+29|0]<<8|a[C+30|0]<<16|a[C+31|0]<<24)^(a[C+76|0]|a[C+77|0]<<8|a[C+78|0]<<16|a[C+79|0]<<24)^E[B+204>>2]^(a[C+92|0]|a[C+93|0]<<8|a[C+94|0]<<16|a[C+95|0]<<24),E[B+200>>2]=w&f^p^F^D^s,E[B+196>>2]=e&y^r^k^t^c,E[B+192>>2]=o&_^N^Q^i^n,Hg(M,0,G),Sg(A,S,g),g=E[B+192>>2],S=E[B+196>>2],G=E[B+200>>2],M=E[B+204>>2],A=E[C+92>>2],E[B+232>>2]=E[C+88>>2],E[B+236>>2]=A,A=E[C+84>>2],E[B+224>>2]=E[C+80>>2],E[B+228>>2]=A,A=E[C+76>>2],E[B+184>>2]=E[C+72>>2],E[B+188>>2]=A,A=E[I+4>>2],E[B+176>>2]=E[I>>2],E[B+180>>2]=A,A=E[C+92>>2],E[B+168>>2]=E[C+88>>2],E[B+172>>2]=A,A=E[C+84>>2],E[B+160>>2]=E[C+80>>2],E[B+164>>2]=A,$A(A=B+208|0,B+176|0,B+160|0),N=E[B+220>>2],E[C+88>>2]=E[B+216>>2],E[C+92>>2]=N,N=E[B+212>>2],E[C+80>>2]=E[B+208>>2],E[C+84>>2]=N,N=E[C+60>>2],E[B+152>>2]=E[C+56>>2],E[B+156>>2]=N,N=E[C+52>>2],E[B+144>>2]=E[C+48>>2],E[B+148>>2]=N,N=E[C+76>>2],E[B+136>>2]=E[C+72>>2],E[B+140>>2]=N,N=E[I+4>>2],E[B+128>>2]=E[I>>2],E[B+132>>2]=N,$A(A,B+144|0,B+128|0),N=E[B+220>>2],E[C+72>>2]=E[B+216>>2],E[C+76>>2]=N,N=E[B+212>>2],E[I>>2]=E[B+208>>2],E[I+4>>2]=N,I=E[C+44>>2],E[B+120>>2]=E[C+40>>2],E[B+124>>2]=I,I=E[C+36>>2],E[B+112>>2]=E[C+32>>2],E[B+116>>2]=I,I=E[C+60>>2],E[B+104>>2]=E[C+56>>2],E[B+108>>2]=I,I=E[C+52>>2],E[B+96>>2]=E[C+48>>2],E[B+100>>2]=I,$A(A,B+112|0,B+96|0),I=E[B+220>>2],E[C+56>>2]=E[B+216>>2],E[C+60>>2]=I,I=E[B+212>>2],E[C+48>>2]=E[B+208>>2],E[C+52>>2]=I,I=E[C+28>>2],E[B+88>>2]=E[C+24>>2],E[B+92>>2]=I,I=E[C+20>>2],E[B+80>>2]=E[C+16>>2],E[B+84>>2]=I,I=E[C+44>>2],E[B+72>>2]=E[C+40>>2],E[B+76>>2]=I,I=E[C+36>>2],E[B+64>>2]=E[C+32>>2],E[B+68>>2]=I,$A(A,B+80|0,B- -64|0),I=E[B+220>>2],E[C+40>>2]=E[B+216>>2],E[C+44>>2]=I,I=E[B+212>>2],E[C+32>>2]=E[B+208>>2],E[C+36>>2]=I,I=E[C+12>>2],E[B+56>>2]=E[C+8>>2],E[B+60>>2]=I,I=E[C+4>>2],E[B+48>>2]=E[C>>2],E[B+52>>2]=I,I=E[C+28>>2],E[B+40>>2]=E[C+24>>2],E[B+44>>2]=I,I=E[C+20>>2],E[B+32>>2]=E[C+16>>2],E[B+36>>2]=I,$A(A,B+48|0,B+32|0),I=E[B+220>>2],E[C+24>>2]=E[B+216>>2],E[C+28>>2]=I,I=E[B+212>>2],E[C+16>>2]=E[B+208>>2],E[C+20>>2]=I,I=E[B+236>>2],E[B+24>>2]=E[B+232>>2],E[B+28>>2]=I,I=E[B+228>>2],E[B+16>>2]=E[B+224>>2],E[B+20>>2]=I,I=E[C+12>>2],E[B+8>>2]=E[C+8>>2],E[B+12>>2]=I,I=E[C+4>>2],E[B>>2]=E[C>>2],E[B+4>>2]=I,$A(A,B+16|0,B),A=E[B+208>>2],I=E[B+212>>2],N=E[B+216>>2],E[C+12>>2]=E[B+220>>2]^M,E[C+8>>2]=N^G,E[C+4>>2]=I^S,E[C>>2]=A^g,h=B+240|0}function W(A,I,g,C,B){A|=0,I|=0,g|=0,C|=0;var Q=0,i=0,E=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,f=0,n=0,k=0;if(_=1886610805^(C=a[0|(B|=0)]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24),i=1936682341^(Q=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24),c=1852142177^C,E=1819895653^Q,Q=1852075885^(C=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24),B=1685025377^(r=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24),t=2037671283^C,r^=1952801890,(0|(C=(I+g|0)-(s=7&g)|0))!=(0|I)){for(;c=c+(t^=n=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24)|0,E=E+(e=r^(k=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24))|0,E=c>>>0>>0?E+1|0:E,y=1+(i=B+i|0)|0,r=i,r=_>>>0>(i=Q+_|0)>>>0?y:r,_=c+(B=KI(Q,B,13)^i)|0,Q=E+(y=w^r)|0,y=KI(B,y,17)^_,f=KI(y,p=(D=B>>>0>_>>>0?Q+1|0:Q)^w,13),h=w,B=KI(t,e,16),Q=E^w,E=B^c,c=KI(i,r,32),i=w+Q|0,r=1+(c=p+(t=(B=E+c|0)>>>0>>0?i+1|0:i)|0)|0,i=c,i=(c=B+y|0)>>>0>>0?r:i,p=KI(r=c^f,e=i^h,17),f=w,Q=KI(E,Q,21),E=t^w,t=B^Q,B=KI(_,D,32),Q=w+E|0,B=(D=B>>>0>(_=t+B|0)>>>0?Q+1|0:Q)+e|0,Q=(e=_+r|0)^p,B=(y=e>>>0<_>>>0?B+1|0:B)^f,E=KI(t,E,16),r=t=D^w,E=KI(_^=E,t,21),D=w,t=(_=(c=KI(c,i,32))+_|0)^E,i=w+r|0,r=(i=_>>>0>>0?i+1|0:i)^D,c=KI(e,y,32),E=w,_^=n,i^=k,(0|C)!=(0|(I=I+8|0)););I=C}switch(g<<=24,C=0,s-1|0){case 6:g|=a[I+6|0]<<16;case 5:g|=a[I+5|0]<<8;case 4:g|=a[I+4|0];case 3:e=(C=a[I+3|0])>>>8|0,C<<=24,g|=e;case 2:C|=(e=a[I+2|0])<<16,g|=y=e>>>16|0;case 1:C|=(e=a[I+1|0])<<8,g|=y=e>>>24|0;case 0:C=a[0|I]|C}return r=KI(I=C^t,t=g^r,16),E=E+t|0,c=(I=I+c|0)>>>0>>0?E+1|0:E,r=KI(E=I^r,t=c^w,21),e=w,h=1+(i=B+i|0)|0,y=i,y=_=_>>>0>(i=Q+_|0)>>>0?h:y,s=KI(i,_,32),t=w+t|0,e=KI(E=r^(_=E+s|0),r=e^(t=_>>>0>>0?t+1|0:t),16),s=w,B=KI(Q,B,13)^i,Q=(i=c)+(c=w^y)|0,y=KI(I=I+B|0,i=I>>>0>>0?Q+1|0:Q,32),r=w+r|0,y=KI(E=e^(Q=E+y|0),e=(r=Q>>>0>>0?r+1|0:r)^s,21),s=w,I=_+(B=c=KI(B,c,17)^I)|0,_=(i^=w)+t|0,t=B=I>>>0>>0?_+1|0:_,h=y,_=E+(y=KI(I,B,32))|0,E=w+e|0,y=KI(B=h^_,e=(E=_>>>0>>0?E+1|0:E)^s,16),s=w,h=Q,i=KI(c,i,13)^I,c=(t^=w)+r|0,r=Q=(I=h+(Q=i)|0)>>>0>>0?c+1|0:c,Q=KI(I,Q,32),c=e+w|0,e=(h=B)>>>0>(B=B+(255^Q)|0)>>>0?c+1|0:c,y=KI(c=B^y,Q=s^e,21),s=w,i=KI(i,t,17)^I,g=(t=r^w)+(g^E)|0,g=KI(I=i+(C^=_)|0,E=g=I>>>0>>0?g+1|0:g,32),C=Q+w|0,c=KI(_=(g=g+c|0)^y,C=(Q=g>>>0>>0?C+1|0:C)^s,16),r=w,i=KI(i,t,13)^I,t=e+(E^=w)|0,t=B=(I=B+i|0)>>>0>>0?t+1|0:t,B=KI(I,B,32),y=r,h=1+(C=C+w|0)|0,r=C,r=(C=B+_|0)>>>0<_>>>0?h:r,c=KI(_=C^c,B=y^r,21),e=w,i=KI(i,E,17),h=1+(Q=Q+(E=t^w)|0)|0,y=Q,i=I=(t=g)>>>0>(g=g+(Q=I^i)|0)>>>0?h:y,I=KI(g,I,32),B=B+w|0,t=(I=I+_|0)>>>0<_>>>0?B+1|0:B,c=KI(_=I^c,B=t^e,16),e=w,Q=KI(Q,E,13),E=r+(i^=w)|0,r=C,g=KI(C=C+(Q^=g)|0,E=g=r>>>0>C>>>0?E+1|0:E,32),B=B+w|0,r=(g=g+_|0)>>>0<_>>>0?B+1|0:B,c=KI(_=g^c,B=r^e,21),e=w,Q=KI(Q,i,17),y=1+(E=t+(i=E^w)|0)|0,t=E,I=KI(C=I+(E=C^Q)|0,Q=C>>>0>>0?y:t,32),B=B+w|0,t=(I=I+_|0)>>>0<_>>>0?B+1|0:B,c=KI(_=I^c,B=t^e,16),e=w,i=KI(E,i,13),E=r+(Q^=w)|0,g=KI(C=g+(i^=C)|0,E=g=C>>>0>>0?E+1|0:E,32),B=B+w|0,_=KI((g=g+_|0)^c,(B=g>>>0<_>>>0?B+1|0:B)^e,21),c=w,C=KI(i,Q,17)^C,i=KI(C,Q=E^w,13),Q=Q+t|0,I=w^(I>>>0>(C=I+C|0)>>>0?Q+1|0:Q),_=KI(C^=i,I,17)^_,Q=w^c,i=1+(I=I+B|0)|0,B=I,I=KI(I=g+C|0,g=g>>>0>I>>>0?i:B,32)^_^I,o[0|A]=I,o[A+1|0]=I>>>8,o[A+2|0]=I>>>16,o[A+3|0]=I>>>24,I=g^w^Q,o[A+4|0]=I,o[A+5|0]=I>>>8,o[A+6|0]=I>>>16,o[A+7|0]=I>>>24,0}function T(A,I){var g,C,B,Q,i,o=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,D=0,p=0,w=0,f=0,n=0,k=0,F=0,N=0,S=0,G=0,M=0,b=0,K=0,H=0,d=0,J=0,U=0,l=0,m=0,u=0,x=0,R=0,L=0;h=g=h-624|0,v(o=g+480|0,I),Y(o,1648,o),c=E[g+516>>2],E[g+276>>2]=c,t=E[g+512>>2],E[g+272>>2]=t,r=E[g+508>>2],E[g+268>>2]=r,e=E[g+504>>2],E[g+264>>2]=e,y=E[g+500>>2],E[g+260>>2]=y,s=E[g+496>>2],E[g+256>>2]=s,D=E[g+492>>2],E[g+252>>2]=D,p=E[g+488>>2],E[g+248>>2]=p,w=E[g+484>>2],E[g+244>>2]=w,n=E[g+480>>2],E[g+240>>2]=n+1,Y(_=g+240|0,_,33984),E[g+468>>2]=c-12055116,E[g+464>>2]=t-18696448,E[g+460>>2]=r-3247719,E[g+456>>2]=e-6275908,E[g+452>>2]=y-8787816,E[g+448>>2]=s+114729,E[g+444>>2]=D+6949391,E[g+440>>2]=p-15372611,E[g+436>>2]=w+13857413,E[g+432>>2]=n-10913610,Y(f=g+192|0,o,1600),E[g+228>>2]=0-E[g+228>>2],E[g+224>>2]=0-E[g+224>>2],E[g+220>>2]=0-E[g+220>>2],E[g+216>>2]=0-E[g+216>>2],E[g+212>>2]=0-E[g+212>>2],E[g+208>>2]=0-E[g+208>>2],E[g+204>>2]=0-E[g+204>>2],E[g+200>>2]=0-E[g+200>>2],E[g+196>>2]=0-E[g+196>>2],E[g+192>>2]=-1^E[g+192>>2],Y(f,f,g+432|0),o=GA(C=g+384|0,_,f),Y(_=g+336|0,C,I),BI(B=g+576|0,_),i=a[g+576|0],d=E[g+420>>2],_=E[g+372>>2],J=E[g+416>>2],k=E[g+368>>2],U=E[g+412>>2],F=E[g+364>>2],l=E[g+408>>2],N=E[g+360>>2],m=E[g+404>>2],S=E[g+356>>2],u=E[g+400>>2],G=E[g+352>>2],x=E[g+396>>2],M=E[g+348>>2],R=E[g+392>>2],b=E[g+344>>2],L=E[g+388>>2],K=E[g+340>>2],Q=E[g+384>>2],H=E[g+336>>2],I=o-1|0,E[g+612>>2]=I&c,E[g+608>>2]=I&t,E[g+604>>2]=I&r,E[g+600>>2]=I&e,E[g+596>>2]=I&y,E[g+592>>2]=I&s,E[g+588>>2]=I&D,E[g+584>>2]=I&p,E[g+580>>2]=I&w,E[g+576>>2]=n|0-o,H=I&(0-(H^(o=0-(1&i)|0)&(H^0-H))^Q)^Q,E[g+384>>2]=H,K=L^I&(L^0-(K^o&(K^0-K))),E[g+388>>2]=K,b=R^I&(R^0-(b^o&(b^0-b))),E[g+392>>2]=b,M=x^I&(x^0-(M^o&(M^0-M))),E[g+396>>2]=M,G=u^I&(u^0-(G^o&(G^0-G))),E[g+400>>2]=G,S=m^I&(m^0-(S^o&(S^0-S))),E[g+404>>2]=S,N=l^I&(l^0-(N^o&(N^0-N))),E[g+408>>2]=N,F=U^I&(U^0-(F^o&(F^0-F))),E[g+412>>2]=F,k=J^I&(J^0-(k^o&(k^0-k))),E[g+416>>2]=k,o=d^I&(d^0-(_^o&(_^0-_))),E[g+420>>2]=o,E[g+564>>2]=c,E[g+560>>2]=t,E[g+556>>2]=r,E[g+552>>2]=e,E[g+548>>2]=y,E[g+544>>2]=s,E[g+540>>2]=D,E[g+536>>2]=p,E[g+532>>2]=w,E[g+528>>2]=n-1,Y(I=g+528|0,I,B),Y(I,I,34032),c=E[g+192>>2],t=E[g+528>>2],r=E[g+196>>2],e=E[g+532>>2],y=E[g+200>>2],s=E[g+536>>2],D=E[g+204>>2],p=E[g+540>>2],w=E[g+208>>2],n=E[g+544>>2],_=E[g+212>>2],d=E[g+548>>2],J=E[g+216>>2],U=E[g+552>>2],l=E[g+220>>2],m=E[g+556>>2],u=E[g+224>>2],x=E[g+560>>2],R=E[g+228>>2],L=E[g+564>>2],E[g+180>>2]=o<<1,E[g+176>>2]=k<<1,E[g+172>>2]=F<<1,E[g+168>>2]=N<<1,E[g+164>>2]=S<<1,E[g+160>>2]=G<<1,E[g+156>>2]=M<<1,E[g+152>>2]=b<<1,E[g+148>>2]=K<<1,E[g+144>>2]=H<<1,E[g+564>>2]=L-R,E[g+560>>2]=x-u,E[g+556>>2]=m-l,E[g+552>>2]=U-J,E[g+548>>2]=d-_,E[g+544>>2]=n-w,E[g+540>>2]=p-D,E[g+536>>2]=s-y,E[g+532>>2]=e-r,E[g+528>>2]=t-c,Y(o=g+144|0,o,f),Y(f=g+96|0,I,34080),v(g+288|0,C),I=E[g+324>>2],E[g+84>>2]=0-I,c=E[g+320>>2],E[g+80>>2]=0-c,t=E[g+316>>2],E[g+76>>2]=0-t,r=E[g+312>>2],E[g+72>>2]=0-r,e=E[g+308>>2],E[g+68>>2]=0-e,y=E[g+304>>2],E[g+64>>2]=0-y,s=E[g+300>>2],E[g+60>>2]=0-s,D=E[g+296>>2],E[g+56>>2]=0-D,p=E[g+292>>2],E[g+52>>2]=0-p,w=E[g+288>>2],E[g+48>>2]=1-w,E[g+36>>2]=I,E[g+32>>2]=c,E[g+28>>2]=t,E[g+24>>2]=r,E[g+20>>2]=e,E[g+16>>2]=y,E[g+12>>2]=s,E[g+8>>2]=D,E[g+4>>2]=p,E[g>>2]=w+1,Y(A,o,g),Y(A+40|0,I=g+48|0,f),Y(A+80|0,f,g),Y(A+120|0,o,I),h=g+624|0}function $(A,I,g){var C,B=0,i=0,_=0,c=0,t=0,r=0;h=C=h+-64|0;A:{if((g-65&255)>>>0>191){if(B=-1,!(a[A+80|0]|a[A+81|0]<<8|a[A+82|0]<<16|a[A+83|0]<<24|a[A+84|0]|a[A+85|0]<<8|a[A+86|0]<<16|a[A+87|0]<<24)){if((c=a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)>>>0>=129){if(_=a[0|(B=A- -64|0)]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,t=i=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,i=(c=_+128|0)>>>0<128?i+1|0:i,o[0|B]=c,o[B+1|0]=c>>>8,o[B+2|0]=c>>>16,o[B+3|0]=c>>>24,o[B+4|0]=i,o[B+5|0]=i>>>8,o[B+6|0]=i>>>16,o[B+7|0]=i>>>24,i=a[A+76|0]|a[A+77|0]<<8|a[A+78|0]<<16|a[A+79|0]<<24,i=(B=-1==(0|t)&_>>>0>4294967167)>>>0>(_=B+(a[A+72|0]|a[A+73|0]<<8|a[A+74|0]<<16|a[A+75|0]<<24)|0)>>>0?i+1|0:i,o[A+72|0]=_,o[A+73|0]=_>>>8,o[A+74|0]=_>>>16,o[A+75|0]=_>>>24,o[A+76|0]=i,o[A+77|0]=i>>>8,o[A+78|0]=i>>>16,o[A+79|0]=i>>>24,f(A,i=A+96|0),B=(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)-128|0,o[A+352|0]=B,o[A+353|0]=B>>>8,o[A+354|0]=B>>>16,o[A+355|0]=B>>>24,B>>>0>=129)break A;Sg(i,A+224|0,B),c=a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24}i=a[0|(B=A- -64|0)]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,_=r=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,_=(t=i+c|0)>>>0>>0?_+1|0:_,o[0|B]=t,o[B+1|0]=t>>>8,o[B+2|0]=t>>>16,o[B+3|0]=t>>>24,o[B+4|0]=_,o[B+5|0]=_>>>8,o[B+6|0]=_>>>16,o[B+7|0]=_>>>24,B=(0|_)==(0|r)&i>>>0>t>>>0|_>>>0>>0,i=a[A+76|0]|a[A+77|0]<<8|a[A+78|0]<<16|a[A+79|0]<<24,i=(_=B+(a[A+72|0]|a[A+73|0]<<8|a[A+74|0]<<16|a[A+75|0]<<24)|0)>>>0>>0?i+1|0:i,o[A+72|0]=_,o[A+73|0]=_>>>8,o[A+74|0]=_>>>16,o[A+75|0]=_>>>24,o[A+76|0]=i,o[A+77|0]=i>>>8,o[A+78|0]=i>>>16,o[A+79|0]=i>>>24,a[A+356|0]&&(o[A+88|0]=255,o[A+89|0]=255,o[A+90|0]=255,o[A+91|0]=255,o[A+92|0]=255,o[A+93|0]=255,o[A+94|0]=255,o[A+95|0]=255),o[A+80|0]=255,o[A+81|0]=255,o[A+82|0]=255,o[A+83|0]=255,o[A+84|0]=255,o[A+85|0]=255,o[A+86|0]=255,o[A+87|0]=255,Hg((B=A+96|0)+c|0,0,256-c|0),f(A,B),i=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,E[C>>2]=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,E[C+4>>2]=i,i=a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24,E[C+8>>2]=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,E[C+12>>2]=i,i=a[A+20|0]|a[A+21|0]<<8|a[A+22|0]<<16|a[A+23|0]<<24,E[C+16>>2]=a[A+16|0]|a[A+17|0]<<8|a[A+18|0]<<16|a[A+19|0]<<24,E[C+20>>2]=i,i=a[A+28|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24,E[C+24>>2]=a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,E[C+28>>2]=i,i=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24,E[C+32>>2]=a[A+32|0]|a[A+33|0]<<8|a[A+34|0]<<16|a[A+35|0]<<24,E[C+36>>2]=i,i=a[A+44|0]|a[A+45|0]<<8|a[A+46|0]<<16|a[A+47|0]<<24,E[C+40>>2]=a[A+40|0]|a[A+41|0]<<8|a[A+42|0]<<16|a[A+43|0]<<24,E[C+44>>2]=i,i=a[A+52|0]|a[A+53|0]<<8|a[A+54|0]<<16|a[A+55|0]<<24,E[C+48>>2]=a[A+48|0]|a[A+49|0]<<8|a[A+50|0]<<16|a[A+51|0]<<24,E[C+52>>2]=i,i=a[A+60|0]|a[A+61|0]<<8|a[A+62|0]<<16|a[A+63|0]<<24,E[C+56>>2]=a[A+56|0]|a[A+57|0]<<8|a[A+58|0]<<16|a[A+59|0]<<24,E[C+60>>2]=i,Sg(I,C,g),XC(A,64),XC(B,256),B=0}return h=C- -64|0,B}yC(),Q()}e(1369,1217,306,1142),Q()}function AA(A,I,g){A|=0,I|=0,g|=0;var C,B,Q,i=0,_=0;h=C=h-192|0,E[C+144>>2]=0,E[C+148>>2]=0,E[C+152>>2]=0,E[C+156>>2]=0,E[C+104>>2]=0,E[C+108>>2]=0,E[C+112>>2]=0,E[C+116>>2]=0,E[C+120>>2]=0,E[C+124>>2]=0,i=E[8591],E[C+168>>2]=E[8590],E[C+172>>2]=i,i=E[8593],E[C+176>>2]=E[8592],E[C+180>>2]=i,i=E[8595],E[C+184>>2]=E[8594],E[C+188>>2]=i,E[C+128>>2]=0,E[C+132>>2]=0,E[C+136>>2]=0,E[C+140>>2]=0,E[C+96>>2]=0,E[C+100>>2]=0,i=E[8589],E[C+160>>2]=E[8588],E[C+164>>2]=i,i=a[g+20|0]|a[g+21|0]<<8|a[g+22|0]<<16|a[g+23|0]<<24,E[C+80>>2]=a[g+16|0]|a[g+17|0]<<8|a[g+18|0]<<16|a[g+19|0]<<24,E[C+84>>2]=i,i=a[g+28|0]|a[g+29|0]<<8|a[g+30|0]<<16|a[g+31|0]<<24,E[C+88>>2]=a[g+24|0]|a[g+25|0]<<8|a[g+26|0]<<16|a[g+27|0]<<24,E[C+92>>2]=i,i=a[g+4|0]|a[g+5|0]<<8|a[g+6|0]<<16|a[g+7|0]<<24,E[C+64>>2]=a[0|g]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24,E[C+68>>2]=i,i=a[g+12|0]|a[g+13|0]<<8|a[g+14|0]<<16|a[g+15|0]<<24,E[C+72>>2]=a[g+8|0]|a[g+9|0]<<8|a[g+10|0]<<16|a[g+11|0]<<24,E[C+76>>2]=i,Eg(g=C+128|0,i=C- -64|0),N(g),_=E[C+156>>2],E[C+24>>2]=E[C+152>>2],E[C+28>>2]=_,_=E[C+148>>2],E[C+16>>2]=E[C+144>>2],E[C+20>>2]=_,_=E[C+140>>2],E[C+8>>2]=E[C+136>>2],E[C+12>>2]=_,_=E[C+132>>2],E[C>>2]=E[C+128>>2],E[C+4>>2]=_,E[C+120>>2]=0,E[C+124>>2]=0,E[C+112>>2]=0,E[C+116>>2]=0,E[C+104>>2]=0,E[C+108>>2]=0,E[C+96>>2]=0,E[C+100>>2]=0,_=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,E[C+80>>2]=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,E[C+84>>2]=_,_=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,E[C+88>>2]=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,E[C+92>>2]=_,_=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,B=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,Q=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,I=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,E[C+56>>2]=0,E[C+60>>2]=0,E[C+48>>2]=0,E[C+52>>2]=0,E[C+40>>2]=0,E[C+44>>2]=0,E[C+64>>2]=Q,E[C+68>>2]=I,E[C+72>>2]=_,E[C+76>>2]=B,E[C+32>>2]=0,E[C+36>>2]=0,og(i,C),I=E[C+124>>2],E[C+184>>2]=E[C+120>>2],E[C+188>>2]=I,I=E[C+116>>2],E[C+176>>2]=E[C+112>>2],E[C+180>>2]=I,I=E[C+108>>2],E[C+168>>2]=E[C+104>>2],E[C+172>>2]=I,I=E[C+100>>2],E[C+160>>2]=E[C+96>>2],E[C+164>>2]=I,I=E[C+92>>2],E[C+152>>2]=E[C+88>>2],E[C+156>>2]=I,I=E[C+84>>2],E[C+144>>2]=E[C+80>>2],E[C+148>>2]=I,I=E[C+76>>2],E[C+136>>2]=E[C+72>>2],E[C+140>>2]=I,I=E[C+68>>2],E[C+128>>2]=E[C+64>>2],E[C+132>>2]=I,N(g),I=E[C+156>>2],i=E[C+152>>2],o[A+24|0]=i,o[A+25|0]=i>>>8,o[A+26|0]=i>>>16,o[A+27|0]=i>>>24,o[A+28|0]=I,o[A+29|0]=I>>>8,o[A+30|0]=I>>>16,o[A+31|0]=I>>>24,I=E[C+148>>2],i=E[C+144>>2],o[A+16|0]=i,o[A+17|0]=i>>>8,o[A+18|0]=i>>>16,o[A+19|0]=i>>>24,o[A+20|0]=I,o[A+21|0]=I>>>8,o[A+22|0]=I>>>16,o[A+23|0]=I>>>24,I=E[C+140>>2],i=E[C+136>>2],o[A+8|0]=i,o[A+9|0]=i>>>8,o[A+10|0]=i>>>16,o[A+11|0]=i>>>24,o[A+12|0]=I,o[A+13|0]=I>>>8,o[A+14|0]=I>>>16,o[A+15|0]=I>>>24,I=E[C+132>>2],i=E[C+128>>2],o[0|A]=i,o[A+1|0]=i>>>8,o[A+2|0]=i>>>16,o[A+3|0]=i>>>24,o[A+4|0]=I,o[A+5|0]=I>>>8,o[A+6|0]=I>>>16,o[A+7|0]=I>>>24,XC(g,64),h=C+192|0}function IA(A){var I,g,C,B,Q,i,a,_,t,r,e=0,y=0,s=0,D=0,p=0;for(h=I=h-2048|0,TA(D=I+640|0,A),e=E[A+36>>2],E[I+352>>2]=E[A+32>>2],E[I+356>>2]=e,e=E[A+28>>2],E[I+344>>2]=E[A+24>>2],E[I+348>>2]=e,e=E[A+20>>2],E[I+336>>2]=E[A+16>>2],E[I+340>>2]=e,e=E[A+12>>2],E[I+328>>2]=E[A+8>>2],E[I+332>>2]=e,e=E[A+4>>2],E[I+320>>2]=E[A>>2],E[I+324>>2]=e,e=E[A+52>>2],E[I+368>>2]=E[A+48>>2],E[I+372>>2]=e,e=E[A+60>>2],E[I+376>>2]=E[A+56>>2],E[I+380>>2]=e,e=E[4+(s=A- -64|0)>>2],E[I+384>>2]=E[s>>2],E[I+388>>2]=e,e=E[A+76>>2],E[I+392>>2]=E[A+72>>2],E[I+396>>2]=e,e=E[A+44>>2],E[I+360>>2]=E[A+40>>2],E[I+364>>2]=e,e=E[A+92>>2],E[I+408>>2]=E[A+88>>2],E[I+412>>2]=e,e=E[A+100>>2],E[I+416>>2]=E[A+96>>2],E[I+420>>2]=e,e=E[A+108>>2],E[I+424>>2]=E[A+104>>2],E[I+428>>2]=e,e=E[A+116>>2],E[I+432>>2]=E[A+112>>2],E[I+436>>2]=e,e=E[A+84>>2],E[I+400>>2]=E[A+80>>2],E[I+404>>2]=e,KA(y=I+480|0,s=I+320|0),Y(e=I+160|0,y,g=I+600|0),Y(I+200|0,C=I+520|0,B=I+560|0),Y(I+240|0,B,g),Y(I+280|0,y,C),sA(y,e,D),Y(s,y,g),Y(a=I+360|0,C,B),Y(_=I+400|0,B,g),Y(t=I+440|0,y,C),TA(A=I+800|0,s),sA(y,e,A),Y(s,y,g),Y(a,C,B),Y(_,B,g),Y(t,y,C),TA(A=I+960|0,s),sA(y,e,A),Y(s,y,g),Y(a,C,B),Y(_,B,g),Y(t,y,C),TA(A=I+1120|0,s),sA(y,e,A),Y(s,y,g),Y(a,C,B),Y(_,B,g),Y(t,y,C),TA(A=I+1280|0,s),sA(y,e,A),Y(s,y,g),Y(a,C,B),Y(_,B,g),Y(t,y,C),TA(A=I+1440|0,s),sA(y,e,A),Y(s,y,g),Y(a,C,B),Y(_,B,g),Y(t,y,C),TA(A=I+1600|0,s),sA(y,e,A),Y(s,y,g),Y(a,C,B),Y(_,B,g),Y(t,y,C),TA(I+1760|0,s),E[I+32>>2]=0,E[I+36>>2]=0,E[I+24>>2]=0,E[I+28>>2]=0,E[I+16>>2]=0,E[I+20>>2]=0,E[I+8>>2]=0,E[I+12>>2]=0,E[I+44>>2]=0,E[I+48>>2]=0,E[I+52>>2]=0,E[I+56>>2]=0,E[I+60>>2]=0,E[I+64>>2]=0,E[I+68>>2]=0,E[I+72>>2]=0,E[I+76>>2]=0,E[I+80>>2]=1,E[I>>2]=0,E[I+4>>2]=0,E[I+40>>2]=1,Hg(I+84|0,0,76),r=I+120|0,Q=I+2008|0,i=I+1968|0,D=I+80|0,s=I+40|0,A=252;e=E[I+36>>2],E[(y=I+1960|0)>>2]=E[I+32>>2],E[y+4>>2]=e,e=E[I+28>>2],E[(y=I+1952|0)>>2]=E[I+24>>2],E[y+4>>2]=e,e=E[I+20>>2],E[(y=I+1944|0)>>2]=E[I+16>>2],E[y+4>>2]=e,e=E[I+12>>2],E[(y=I+1936|0)>>2]=E[I+8>>2],E[y+4>>2]=e,e=E[I+4>>2],E[I+1928>>2]=E[I>>2],E[I+1932>>2]=e,e=E[s+36>>2],E[i+32>>2]=E[s+32>>2],E[i+36>>2]=e,e=E[s+28>>2],E[i+24>>2]=E[s+24>>2],E[i+28>>2]=e,e=E[s+20>>2],E[i+16>>2]=E[s+16>>2],E[i+20>>2]=e,e=E[s+12>>2],E[i+8>>2]=E[s+8>>2],E[i+12>>2]=e,e=E[s+4>>2],E[i>>2]=E[s>>2],E[i+4>>2]=e,e=E[D+36>>2],E[Q+32>>2]=E[D+32>>2],E[Q+36>>2]=e,e=E[D+28>>2],E[Q+24>>2]=E[D+24>>2],E[Q+28>>2]=e,e=E[D+20>>2],E[Q+16>>2]=E[D+16>>2],E[Q+20>>2]=e,e=E[D+12>>2],E[Q+8>>2]=E[D+8>>2],E[Q+12>>2]=e,e=E[D+4>>2],E[Q>>2]=E[D>>2],E[Q+4>>2]=e,e=A,p=o[A+33728|0],KA(y=I+480|0,I+1928|0),(0|p)>0?(Y(A=I+320|0,y,g),Y(a,C,B),Y(_,B,g),Y(t,y,C),sA(y,A,(I+640|0)+c((254&p)>>>1|0,160)|0)):(0|p)>=0||(Y(A=I+320|0,y=I+480|0,g),Y(a,C,B),Y(_,B,g),Y(t,y,C),hA(y,A,(I+640|0)+c((0-p&254)>>>1|0,160)|0)),Y(I,A=I+480|0,g),Y(s,C,B),Y(D,B,g),Y(r,A,C),A=e-1|0,e;);return BI(A=I+640|0,I),A=NI(A,32),h=I+2048|0,A}function gA(A){var I=0,g=0,C=0,B=0,Q=0,i=0,o=0,a=0,c=0;A:if(A|=0){Q=(C=A-8|0)+(A=-8&(I=E[A-4>>2]))|0;I:if(!(1&I)){if(!(3&I))break A;if((C=C-(I=E[C>>2])|0)>>>0<_[9397])break A;A=A+I|0;g:{C:{if(E[9398]!=(0|C)){if(I>>>0<=255){if(B=I>>>3|0,(0|(I=E[C+12>>2]))==(0|(g=E[C+8>>2]))){a=37572,c=E[9393]&Lg(-2,B),E[a>>2]=c;break I}E[g+12>>2]=I,E[I+8>>2]=g;break I}if(o=E[C+24>>2],(0|C)!=(0|(I=E[C+12>>2]))){g=E[C+8>>2],E[g+12>>2]=I,E[I+8>>2]=g;break g}if(!(g=E[(B=C+20|0)>>2])){if(!(g=E[C+16>>2]))break C;B=C+16|0}for(;i=B,(g=E[(B=(I=g)+20|0)>>2])||(B=I+16|0,g=E[I+16>>2]););E[i>>2]=0;break g}if(3!=(3&(I=E[Q+4>>2])))break I;return E[9395]=A,E[Q+4>>2]=-2&I,E[C+4>>2]=1|A,void(E[Q>>2]=A)}I=0}if(o){g=E[C+28>>2];g:{if(E[(B=37876+(g<<2)|0)>>2]==(0|C)){if(E[B>>2]=I,I)break g;a=37576,c=E[9394]&Lg(-2,g),E[a>>2]=c;break I}if(E[o+(E[o+16>>2]==(0|C)?16:20)>>2]=I,!I)break I}E[I+24>>2]=o,(g=E[C+16>>2])&&(E[I+16>>2]=g,E[g+24>>2]=I),(g=E[C+20>>2])&&(E[I+20>>2]=g,E[g+24>>2]=I)}}if(!(C>>>0>=Q>>>0)&&1&(I=E[Q+4>>2])){I:{g:{C:{B:{if(!(2&I)){if(E[9399]==(0|Q)){if(E[9399]=C,A=E[9396]+A|0,E[9396]=A,E[C+4>>2]=1|A,E[9398]!=(0|C))break A;return E[9395]=0,void(E[9398]=0)}if(E[9398]==(0|Q))return E[9398]=C,A=E[9395]+A|0,E[9395]=A,E[C+4>>2]=1|A,void(E[A+C>>2]=A);if(A=(-8&I)+A|0,I>>>0<=255){if(B=I>>>3|0,(0|(I=E[Q+12>>2]))==(0|(g=E[Q+8>>2]))){a=37572,c=E[9393]&Lg(-2,B),E[a>>2]=c;break g}E[g+12>>2]=I,E[I+8>>2]=g;break g}if(o=E[Q+24>>2],(0|Q)!=(0|(I=E[Q+12>>2]))){g=E[Q+8>>2],E[g+12>>2]=I,E[I+8>>2]=g;break C}if(!(g=E[(B=Q+20|0)>>2])){if(!(g=E[Q+16>>2]))break B;B=Q+16|0}for(;i=B,(g=E[(B=(I=g)+20|0)>>2])||(B=I+16|0,g=E[I+16>>2]););E[i>>2]=0;break C}E[Q+4>>2]=-2&I,E[C+4>>2]=1|A,E[A+C>>2]=A;break I}I=0}if(o){g=E[Q+28>>2];C:{if(E[(B=37876+(g<<2)|0)>>2]==(0|Q)){if(E[B>>2]=I,I)break C;a=37576,c=E[9394]&Lg(-2,g),E[a>>2]=c;break g}if(E[o+(E[o+16>>2]==(0|Q)?16:20)>>2]=I,!I)break g}E[I+24>>2]=o,(g=E[Q+16>>2])&&(E[I+16>>2]=g,E[g+24>>2]=I),(g=E[Q+20>>2])&&(E[I+20>>2]=g,E[g+24>>2]=I)}}if(E[C+4>>2]=1|A,E[A+C>>2]=A,E[9398]==(0|C))return void(E[9395]=A)}if(A>>>0<=255)return I=37612+(-8&A)|0,(g=E[9393])&(A=1<<(A>>>3))?A=E[I+8>>2]:(E[9393]=A|g,A=I),E[I+8>>2]=C,E[A+12>>2]=C,E[C+12>>2]=I,void(E[C+8>>2]=A);g=31,A>>>0<=16777215&&(g=62+((A>>>38-(I=t(A>>>8|0))&1)-(I<<1)|0)|0),E[C+28>>2]=g,E[C+16>>2]=0,E[C+20>>2]=0,I=37876+(g<<2)|0;I:{g:{if((B=E[9394])&(i=1<>>1|0)|0:0),I=E[I>>2];;){if(B=I,(-8&E[I+4>>2])==(0|A))break g;if(i=g>>>29|0,g<<=1,!(I=E[16+(i=I+(4&i)|0)>>2]))break}E[i+16>>2]=C,E[C+24>>2]=B}else E[9394]=B|i,E[I>>2]=C,E[C+24>>2]=I;E[C+12>>2]=C,E[C+8>>2]=C;break I}A=E[B+8>>2],E[A+12>>2]=C,E[B+8>>2]=C,E[C+24>>2]=0,E[C+12>>2]=B,E[C+8>>2]=A}A=E[9401]-1|0,E[9401]=A||-1}}}function CA(A,I,g,C,B){var Q,i,E,_,c,t,r,e,y,s,h,D,p=0,w=0,f=0,n=0,k=0,F=0,N=0,S=0,G=0,M=0,b=0,K=0,H=0,Y=0,d=0,J=0,U=0,l=0,m=0,u=0,x=0,R=0,v=0,L=0;if(C?(U=a[C+12|0]|a[C+13|0]<<8|a[C+14|0]<<16|a[C+15|0]<<24,m=a[C+8|0]|a[C+9|0]<<8|a[C+10|0]<<16|a[C+11|0]<<24,l=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24,u=a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24):(U=1797285236,l=1634760805,m=2036477234,u=857760878),C=Q=a[g+20|0]|a[g+21|0]<<8|a[g+22|0]<<16|a[g+23|0]<<24,S=i=a[g+24|0]|a[g+25|0]<<8|a[g+26|0]<<16|a[g+27|0]<<24,K=E=a[g+28|0]|a[g+29|0]<<8|a[g+30|0]<<16|a[g+31|0]<<24,f=U,N=_=a[g+16|0]|a[g+17|0]<<8|a[g+18|0]<<16|a[g+19|0]<<24,G=m,H=c=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,M=t=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,n=r=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,I=e=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,b=u,p=y=a[g+12|0]|a[g+13|0]<<8|a[g+14|0]<<16|a[g+15|0]<<24,w=s=a[g+8|0]|a[g+9|0]<<8|a[g+10|0]<<16|a[g+11|0]<<24,k=h=a[g+4|0]|a[g+5|0]<<8|a[g+6|0]<<16|a[g+7|0]<<24,g=D=a[0|g]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24,F=l,(0|B)>0)for(;Y=Lg(g+b|0,7)^H,x=Lg(Y+b|0,9)^S,d=Lg(C+F|0,7)^p,R=Lg(d+F|0,9)^M,v=Lg(d+R|0,13)^C,J=Lg(f+N|0,7)^w,n=Lg(J+f|0,9)^n,w=Lg(n+J|0,13)^N,f=Lg(n+w|0,18)^f,p=Lg(I+G|0,7)^K,C=v^Lg(f+p|0,7),S=Lg(C+f|0,9)^x,K=Lg(C+S|0,13)^p,f=Lg(S+K|0,18)^f,k=Lg(p+G|0,9)^k,p=Lg(k+p|0,13)^I,I=Lg(p+k|0,18)^G,N=Lg(I+Y|0,7)^w,M=Lg(N+I|0,9)^R,H=Lg(N+M|0,13)^Y,G=Lg(M+H|0,18)^I,g=Lg(Y+x|0,13)^g,w=Lg(g+x|0,18)^b,I=Lg(w+d|0,7)^p,n=Lg(I+w|0,9)^n,p=Lg(I+n|0,13)^d,b=Lg(n+p|0,18)^w,F=Lg(R+v|0,18)^F,g=Lg(F+J|0,7)^g,k=Lg(g+F|0,9)^k,w=Lg(g+k|0,13)^J,F=Lg(k+w|0,18)^F,(0|(L=L+2|0))<(0|B););B=f+U|0,o[A+60|0]=B,o[A+61|0]=B>>>8,o[A+62|0]=B>>>16,o[A+63|0]=B>>>24,B=K+E|0,o[A+56|0]=B,o[A+57|0]=B>>>8,o[A+58|0]=B>>>16,o[A+59|0]=B>>>24,B=S+i|0,o[A+52|0]=B,o[A+53|0]=B>>>8,o[A+54|0]=B>>>16,o[A+55|0]=B>>>24,C=C+Q|0,o[A+48|0]=C,o[A+49|0]=C>>>8,o[A+50|0]=C>>>16,o[A+51|0]=C>>>24,C=N+_|0,o[A+44|0]=C,o[A+45|0]=C>>>8,o[A+46|0]=C>>>16,o[A+47|0]=C>>>24,C=G+m|0,o[A+40|0]=C,o[A+41|0]=C>>>8,o[A+42|0]=C>>>16,o[A+43|0]=C>>>24,C=H+c|0,o[A+36|0]=C,o[A+37|0]=C>>>8,o[A+38|0]=C>>>16,o[A+39|0]=C>>>24,C=M+t|0,o[A+32|0]=C,o[A+33|0]=C>>>8,o[A+34|0]=C>>>16,o[A+35|0]=C>>>24,C=n+r|0,o[A+28|0]=C,o[A+29|0]=C>>>8,o[A+30|0]=C>>>16,o[A+31|0]=C>>>24,I=I+e|0,o[A+24|0]=I,o[A+25|0]=I>>>8,o[A+26|0]=I>>>16,o[A+27|0]=I>>>24,I=b+u|0,o[A+20|0]=I,o[A+21|0]=I>>>8,o[A+22|0]=I>>>16,o[A+23|0]=I>>>24,I=p+y|0,o[A+16|0]=I,o[A+17|0]=I>>>8,o[A+18|0]=I>>>16,o[A+19|0]=I>>>24,I=w+s|0,o[A+12|0]=I,o[A+13|0]=I>>>8,o[A+14|0]=I>>>16,o[A+15|0]=I>>>24,I=k+h|0,o[A+8|0]=I,o[A+9|0]=I>>>8,o[A+10|0]=I>>>16,o[A+11|0]=I>>>24,I=g+D|0,o[A+4|0]=I,o[A+5|0]=I>>>8,o[A+6|0]=I>>>16,o[A+7|0]=I>>>24,I=F+l|0,o[0|A]=I,o[A+1|0]=I>>>8,o[A+2|0]=I>>>16,o[A+3|0]=I>>>24}function BA(A,I,g,C,B,Q){var i=0;if(E[Q>>2]=8,!(I=(i=!I&A>>>0<=32768)?0:I)&g>>>5>>>0<=(A=i?32768:A)>>>0|I)return i=1,g>>>0<4096||(i=2,g>>>0<8192||(i=3,g>>>0<16384||(i=4,g>>>0<32768||(i=5,g>>>0<65536||(i=6,g>>>0<131072||(i=7,g>>>0<262144||(i=8,g>>>0<524288||(i=9,g>>>0<1048576||(i=10,g>>>0<2097152||(i=11,g>>>0<4194304||(i=12,g>>>0<8388608||(i=13,g>>>0<16777216||(i=14,g>>>0<33554432||(i=15,g>>>0<67108864||(i=16,g>>>0<134217728||(i=17,g>>>0<268435456||(i=18,g>>>0<536870912||(i=19,g>>>0<1073741824||(i=(0|g)>=0?20:21))))))))))))))))))),g=i,E[C>>2]=g,C=I>>>2|0,I=(3&I)<<30|A>>>2,A=31&g,(63&g)>>>0>=32?(g=0,A=C>>>A|0):(g=C>>>A|0,A=((1<>>A),void(E[B>>2]=((!g&A>>>0>=1073741823|g?1073741823:A)>>>0)/_[Q>>2]);E[B>>2]=1,I=oI(A,I,E[Q>>2]<<2),g=1,!(A=w)&I>>>0<4||(g=2,!A&I>>>0<8||(g=3,!A&I>>>0<16||(g=4,!A&I>>>0<32||(g=5,!A&I>>>0<64||(g=6,!A&I>>>0<128||(g=7,!A&I>>>0<256||(g=8,!A&I>>>0<512||(g=9,!A&I>>>0<1024||(g=10,!A&I>>>0<2048||(g=11,!A&I>>>0<4096||(g=12,!A&I>>>0<8192||(g=13,!A&I>>>0<16384||(g=14,!A&I>>>0<32768||(g=15,!A&I>>>0<65536||(g=16,!A&I>>>0<131072||(g=17,!A&I>>>0<262144||(g=18,!A&I>>>0<524288||(g=19,!A&I>>>0<1048576||(g=20,!A&I>>>0<2097152||(g=21,!A&I>>>0<4194304||(g=22,!A&I>>>0<8388608||(g=23,!A&I>>>0<16777216||(g=24,!A&I>>>0<33554432||(g=25,!A&I>>>0<67108864||(g=26,!A&I>>>0<134217728||(g=27,!A&I>>>0<268435456||(g=28,!A&I>>>0<536870912||(g=29,!A&I>>>0<1073741824||(g=30,!A&I>>>0<2147483648||(g=31,A&&(g=32,A>>>0<2||(g=33,A>>>0<4||(g=34,A>>>0<8||(g=35,A>>>0<16||(g=36,A>>>0<32||(g=37,A>>>0<64||(g=38,A>>>0<128||(g=39,A>>>0<256||(g=40,A>>>0<512||(g=41,A>>>0<1024||(g=42,A>>>0<2048||(g=43,A>>>0<4096||(g=44,A>>>0<8192||(g=45,A>>>0<16384||(g=46,A>>>0<32768||(g=47,A>>>0<65536||(g=48,A>>>0<131072||(g=49,A>>>0<262144||(g=50,A>>>0<524288||(g=51,A>>>0<1048576||(g=52,A>>>0<2097152||(g=53,A>>>0<4194304||(g=54,A>>>0<8388608||(g=55,A>>>0<16777216||(g=56,A>>>0<33554432||(g=57,A>>>0<67108864||(g=58,A>>>0<134217728||(g=59,A>>>0<268435456||(g=60,A>>>0<536870912||(g=61,A>>>0<1073741824||(g=(0|A)>0|(0|A)>=0?62:63))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))),E[C>>2]=g}function QA(A,I,g,C,B,i,o,_,c){var t=0,r=0,e=0,y=0,s=0,D=0,p=0,w=0;if(I-65>>>0<4294967232|o>>>0>64)A=-1;else{w=t=h,h=t=t-512&-64;A:{I:if(!(!(!(C|B)|g)|!A|((D=255&I)-65&255)>>>0<=191|!(!(I=255&o)||i)|I>>>0>=65)){if(I){if(!i)break I;_?(r=725511199^(a[_+8|0]|a[_+9|0]<<8|a[_+10|0]<<16|a[_+11|0]<<24),e=-1694144372^(a[_+12|0]|a[_+13|0]<<8|a[_+14|0]<<16|a[_+15|0]<<24),o=-1377402159^(a[0|_]|a[_+1|0]<<8|a[_+2|0]<<16|a[_+3|0]<<24),_=1359893119^(a[_+4|0]|a[_+5|0]<<8|a[_+6|0]<<16|a[_+7|0]<<24)):(r=725511199,e=-1694144372,o=-1377402159,_=1359893119),c?(y=327033209^(a[c+8|0]|a[c+9|0]<<8|a[c+10|0]<<16|a[c+11|0]<<24),s=1541459225^(a[c+12|0]|a[c+13|0]<<8|a[c+14|0]<<16|a[c+15|0]<<24),p=-79577749^(a[0|c]|a[c+1|0]<<8|a[c+2|0]<<16|a[c+3|0]<<24),c=528734635^(a[c+4|0]|a[c+5|0]<<8|a[c+6|0]<<16|a[c+7|0]<<24)):(y=327033209,s=1541459225,p=-79577749,c=528734635),Hg(t- -64|0,0,293),E[t+56>>2]=y,E[t+60>>2]=s,E[t+48>>2]=p,E[t+52>>2]=c,E[t+40>>2]=r,E[t+44>>2]=e,E[t+32>>2]=o,E[t+36>>2]=_,E[t+24>>2]=1595750129,E[t+28>>2]=-1521486534,E[t+16>>2]=-23791573,E[t+20>>2]=1013904242,E[t+8>>2]=-2067093701,E[t+12>>2]=-1150833019,E[t>>2]=-222443256^(I<<8|D),E[t+4>>2]=I>>>24^1779033703,Hg((o=t+384|0)+I|0,0,128-I|0),Sg(o,i,I),Sg(t+96|0,o,128),E[t+352>>2]=128,XC(o,128),I=128}else _?(r=725511199^(a[_+8|0]|a[_+9|0]<<8|a[_+10|0]<<16|a[_+11|0]<<24),e=-1694144372^(a[_+12|0]|a[_+13|0]<<8|a[_+14|0]<<16|a[_+15|0]<<24),i=1359893119^(a[_+4|0]|a[_+5|0]<<8|a[_+6|0]<<16|a[_+7|0]<<24),I=-1377402159^(a[0|_]|a[_+1|0]<<8|a[_+2|0]<<16|a[_+3|0]<<24)):(r=725511199,e=-1694144372,i=1359893119,I=-1377402159),c?(y=327033209^(a[c+8|0]|a[c+9|0]<<8|a[c+10|0]<<16|a[c+11|0]<<24),s=1541459225^(a[c+12|0]|a[c+13|0]<<8|a[c+14|0]<<16|a[c+15|0]<<24),_=528734635^(a[c+4|0]|a[c+5|0]<<8|a[c+6|0]<<16|a[c+7|0]<<24),o=-79577749^(a[0|c]|a[c+1|0]<<8|a[c+2|0]<<16|a[c+3|0]<<24)):(y=327033209,s=1541459225,_=528734635,o=-79577749),Hg(t- -64|0,0,293),E[t+56>>2]=y,E[t+60>>2]=s,E[t+48>>2]=o,E[t+52>>2]=_,E[t+40>>2]=r,E[t+44>>2]=e,E[t+32>>2]=I,E[t+36>>2]=i,E[t+24>>2]=1595750129,E[t+28>>2]=-1521486534,E[t+16>>2]=-23791573,E[t+20>>2]=1013904242,E[t+8>>2]=-2067093701,E[t+12>>2]=-1150833019,E[t>>2]=-222443256^D,E[t+4>>2]=1779033703,I=0;g:if(C|B)for(c=t+224|0,_=t+96|0;;){if(o=I+_|0,!B&C>>>0<=(i=256-I|0)>>>0){Sg(o,g,C),E[t+352>>2]=C+E[t+352>>2];break g}if(Sg(o,g,i),E[t+352>>2]=i+E[t+352>>2],r=I=E[t+68>>2],I=(e=(o=E[t+64>>2])+128|0)>>>0<128?I+1|0:I,E[t+64>>2]=e,E[t+68>>2]=I,I=E[t+76>>2],I=(r=o=-1==(0|r)&o>>>0>4294967167)>>>0>(o=o+E[t+72>>2]|0)>>>0?I+1|0:I,E[t+72>>2]=o,E[t+76>>2]=I,f(t,_),Sg(_,c,128),I=E[t+352>>2]-128|0,E[t+352>>2]=I,g=g+i|0,!((B=B-(C>>>0>>0)|0)|(C=C-i|0)))break}$(t,A,D),h=w;break A}yC(),Q()}A=0}return A}function iA(A,I){var g,C=0,B=0,Q=0,i=0,o=0,a=0,_=0;g=A+I|0;A:{I:if(!(1&(C=E[A+4>>2]))){if(!(3&C))break A;I=(C=E[A>>2])+I|0;g:{C:{B:{if((0|(A=A-C|0))!=E[9398]){if(C>>>0<=255){if((0|(B=E[A+8>>2]))!=(0|(Q=E[A+12>>2])))break B;a=37572,_=E[9393]&Lg(-2,C>>>3|0),E[a>>2]=_;break I}if(o=E[A+24>>2],(0|(C=E[A+12>>2]))!=(0|A)){B=E[A+8>>2],E[B+12>>2]=C,E[C+8>>2]=B;break g}if(!(B=E[(Q=A+20|0)>>2])){if(!(B=E[A+16>>2]))break C;Q=A+16|0}for(;i=Q,(B=E[(Q=(C=B)+20|0)>>2])||(Q=C+16|0,B=E[C+16>>2]););E[i>>2]=0;break g}if(3!=(3&(C=E[g+4>>2])))break I;return E[9395]=I,E[g+4>>2]=-2&C,E[A+4>>2]=1|I,void(E[g>>2]=I)}E[B+12>>2]=Q,E[Q+8>>2]=B;break I}C=0}if(o){B=E[A+28>>2];g:{if(E[(Q=37876+(B<<2)|0)>>2]==(0|A)){if(E[Q>>2]=C,C)break g;a=37576,_=E[9394]&Lg(-2,B),E[a>>2]=_;break I}if(E[o+(E[o+16>>2]==(0|A)?16:20)>>2]=C,!C)break I}E[C+24>>2]=o,(B=E[A+16>>2])&&(E[C+16>>2]=B,E[B+24>>2]=C),(B=E[A+20>>2])&&(E[C+20>>2]=B,E[B+24>>2]=C)}}I:{g:{C:{B:{if(!(2&(C=E[g+4>>2]))){if(E[9399]==(0|g)){if(E[9399]=A,I=E[9396]+I|0,E[9396]=I,E[A+4>>2]=1|I,E[9398]!=(0|A))break A;return E[9395]=0,void(E[9398]=0)}if(E[9398]==(0|g))return E[9398]=A,I=E[9395]+I|0,E[9395]=I,E[A+4>>2]=1|I,void(E[A+I>>2]=I);if(I=(-8&C)+I|0,C>>>0<=255){if(Q=C>>>3|0,(0|(C=E[g+12>>2]))==(0|(B=E[g+8>>2]))){a=37572,_=E[9393]&Lg(-2,Q),E[a>>2]=_;break g}E[B+12>>2]=C,E[C+8>>2]=B;break g}if(o=E[g+24>>2],(0|g)!=(0|(C=E[g+12>>2]))){B=E[g+8>>2],E[B+12>>2]=C,E[C+8>>2]=B;break C}if(!(B=E[(Q=g+20|0)>>2])){if(!(B=E[g+16>>2]))break B;Q=g+16|0}for(;i=Q,(B=E[(Q=(C=B)+20|0)>>2])||(Q=C+16|0,B=E[C+16>>2]););E[i>>2]=0;break C}E[g+4>>2]=-2&C,E[A+4>>2]=1|I,E[A+I>>2]=I;break I}C=0}if(o){B=E[g+28>>2];C:{if(E[(Q=37876+(B<<2)|0)>>2]==(0|g)){if(E[Q>>2]=C,C)break C;a=37576,_=E[9394]&Lg(-2,B),E[a>>2]=_;break g}if(E[o+(E[o+16>>2]==(0|g)?16:20)>>2]=C,!C)break g}E[C+24>>2]=o,(B=E[g+16>>2])&&(E[C+16>>2]=B,E[B+24>>2]=C),(B=E[g+20>>2])&&(E[C+20>>2]=B,E[B+24>>2]=C)}}if(E[A+4>>2]=1|I,E[A+I>>2]=I,E[9398]==(0|A))return void(E[9395]=I)}if(I>>>0<=255)return C=37612+(-8&I)|0,(B=E[9393])&(I=1<<(I>>>3))?I=E[C+8>>2]:(E[9393]=I|B,I=C),E[C+8>>2]=A,E[I+12>>2]=A,E[A+12>>2]=C,void(E[A+8>>2]=I);B=31,I>>>0<=16777215&&(B=62+((I>>>38-(C=t(I>>>8|0))&1)-(C<<1)|0)|0),E[A+28>>2]=B,E[A+16>>2]=0,E[A+20>>2]=0,C=37876+(B<<2)|0;I:{if((Q=E[9394])&(i=1<>>1|0)|0:0),C=E[C>>2];;){if(Q=C,(-8&E[C+4>>2])==(0|I))break I;if(i=B>>>29|0,B<<=1,!(C=E[16+(i=C+(4&i)|0)>>2]))break}E[i+16>>2]=A,E[A+24>>2]=Q}else E[9394]=Q|i,E[C>>2]=A,E[A+24>>2]=C;return E[A+12>>2]=A,void(E[A+8>>2]=A)}I=E[Q+8>>2],E[I+12>>2]=A,E[Q+8>>2]=A,E[A+24>>2]=0,E[A+12>>2]=Q,E[A+8>>2]=I}}function oA(A,I,g,C,B,Q,i){var _,t,r=0,e=0,y=0;if(h=_=h+-64|0,t=K(32)){E[_+36>>2]=0,E[_+40>>2]=0,E[_+28>>2]=0,E[_+32>>2]=0,E[_+24>>2]=16,E[_+20>>2]=B,E[_+16>>2]=C,E[_+12>>2]=g,E[_+8>>2]=32,E[_+4>>2]=t,E[_+60>>2]=0,E[_+56>>2]=1,E[_+52>>2]=1,E[_+48>>2]=I,E[_+44>>2]=A;A:if(A=L(_+4|0,i))XC(t,32);else{if(Q){r=_+4|0,h=B=h-32|0,A=-31;I:{g:{C:switch(i-1|0){case 1:A=a[1417]|a[1418]<<8|a[1419]<<16|a[1420]<<24,I=a[1413]|a[1414]<<8|a[1415]<<16|a[1416]<<24,o[0|Q]=I,o[Q+1|0]=I>>>8,o[Q+2|0]=I>>>16,o[Q+3|0]=I>>>24,o[Q+4|0]=A,o[Q+5|0]=A>>>8,o[Q+6|0]=A>>>16,o[Q+7|0]=A>>>24,A=a[1422]|a[1423]<<8|a[1424]<<16|a[1425]<<24,I=a[1418]|a[1419]<<8|a[1420]<<16|a[1421]<<24,o[Q+5|0]=I,o[Q+6|0]=I>>>8,o[Q+7|0]=I>>>16,o[Q+8|0]=I>>>24,o[Q+9|0]=A,o[Q+10|0]=A>>>8,o[Q+11|0]=A>>>16,o[Q+12|0]=A>>>24,g=-12,I=12;break g;case 0:break C;default:break I}A=a[1405]|a[1406]<<8|a[1407]<<16|a[1408]<<24,I=a[1401]|a[1402]<<8|a[1403]<<16|a[1404]<<24,o[0|Q]=I,o[Q+1|0]=I>>>8,o[Q+2|0]=I>>>16,o[Q+3|0]=I>>>24,o[Q+4|0]=A,o[Q+5|0]=A>>>8,o[Q+6|0]=A>>>16,o[Q+7|0]=A>>>24,A=a[1409]|a[1410]<<8|a[1411]<<16|a[1412]<<24,o[Q+8|0]=A,o[Q+9|0]=A>>>8,o[Q+10|0]=A>>>16,o[Q+11|0]=A>>>24,g=-11,I=11}if(!(A=pI(r)))if(o[B+13|0]=0,o[B+11|0]=49,o[B+12|0]=57,(g=g+128|0)>>>0<=(A=LI(B+11|0))>>>0)A=-31;else if(I=Sg(I+Q|0,B+11|0,A+1|0),(e=g-A|0)>>>0<4)A=-31;else{for(o[0|(i=A+I|0)]=36,o[i+1|0]=109,o[i+2|0]=61,o[i+3|0]=0,A=E[r+44>>2],I=10;g=I,C=(A>>>0)/10|0,o[0|(y=(I=I-1|0)+(B+22|0)|0)]=A-c(C,10)|48,!(A>>>0<10)&&(A=C,I););if(Sg(A=B+11|0,y,I=11-g|0),o[A+I|0]=0,(I=e-3|0)>>>0<=(A=LI(A))>>>0)A=-31;else if(g=Sg(i+3|0,B+11|0,A+1|0),(e=I-A|0)>>>0<4)A=-31;else{for(o[0|(i=A+g|0)]=44,o[i+1|0]=116,o[i+2|0]=61,o[i+3|0]=0,A=E[r+40>>2],I=10;g=I,C=(A>>>0)/10|0,o[0|(y=(I=I-1|0)+(B+22|0)|0)]=A-c(C,10)|48,!(A>>>0<10)&&(A=C,I););if(Sg(A=B+11|0,y,I=11-g|0),o[A+I|0]=0,(I=e-3|0)>>>0<=(A=LI(A))>>>0)A=-31;else if(g=Sg(i+3|0,B+11|0,A+1|0),(e=I-A|0)>>>0<4)A=-31;else{for(o[0|(i=A+g|0)]=44,o[i+1|0]=112,o[i+2|0]=61,o[i+3|0]=0,A=E[r+48>>2],I=10;g=I,C=(A>>>0)/10|0,o[0|(y=(I=I-1|0)+(B+22|0)|0)]=A-c(C,10)|48,!(A>>>0<10)&&(A=C,I););Sg(A=B+11|0,y,I=11-g|0),o[A+I|0]=0,(I=e-3|0)>>>0<=(A=LI(A))>>>0?A=-31:(g=Sg(i+3|0,B+11|0,A+1|0),(C=I-A|0)>>>0<2?A=-31:(o[0|(A=A+g|0)]=36,o[A+1|0]=0,LA(I=A+1|0,g=C-1|0,E[r+16>>2],E[r+20>>2],3)?(A=-31,(C=(C=g)-(g=LI(I))|0)>>>0<2||(o[0|(A=I+g|0)]=36,o[A+1|0]=0,A=LA(A+1|0,C-1|0,E[r>>2],E[r+4>>2],3)?0:-31)):A=-31))}}}}if(h=B+32|0,A){XC(t,32),XC(Q,128),A=-31;break A}}XC(t,32),A=0}gA(t)}else A=-22;return h=_- -64|0,A}function EA(A,I){var g,C=0,B=0,Q=0,i=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,D=0,p=0,w=0,f=0,n=0,k=0,F=0,N=0,S=0,G=0,M=0;return h=g=h-512|0,C=-1,Q=a[I+31|0],B=a[0|I],1&(((255&(127&(-1^Q)|a[I+1|0]&a[I+2|0]&a[I+3|0]&a[I+4|0]&a[I+5|0]&a[I+6|0]&a[I+7|0]&a[I+8|0]&a[I+9|0]&a[I+10|0]&a[I+11|0]&a[I+12|0]&a[I+13|0]&a[I+14|0]&a[I+15|0]&a[I+16|0]&a[I+17|0]&a[I+18|0]&a[I+19|0]&a[I+20|0]&a[I+21|0]&a[I+22|0]&a[I+23|0]&a[I+24|0]&a[I+25|0]&a[I+26|0]&a[I+27|0]&a[I+28|0]&a[I+29|0]&a[I+30|0]^-1))-1&236-B)>>>8|B|Q>>>7)||(pA(Q=g+336|0,I),v(g+288|0,Q),I=E[g+324>>2],E[g+276>>2]=0-I,C=E[g+320>>2],E[g+272>>2]=0-C,B=E[g+316>>2],E[g+268>>2]=0-B,i=E[g+312>>2],E[g+264>>2]=0-i,_=E[g+308>>2],E[g+260>>2]=0-_,c=E[g+304>>2],E[g+256>>2]=0-c,t=E[g+300>>2],E[g+252>>2]=0-t,r=E[g+296>>2],E[g+248>>2]=0-r,e=E[g+292>>2],E[g+244>>2]=0-e,y=E[g+288>>2],E[g+240>>2]=1-y,v(s=g+144|0,w=g+240|0),E[g+228>>2]=I,E[g+224>>2]=C,E[g+220>>2]=B,E[g+216>>2]=i,E[g+212>>2]=_,E[g+208>>2]=c,E[g+204>>2]=t,E[g+200>>2]=r,E[g+196>>2]=e,E[g+192>>2]=y+1,v(C=g+96|0,i=g+192|0),Y(I=g+48|0,1600,s),B=E[g+96>>2],_=E[g+48>>2],c=E[g+100>>2],t=E[g+52>>2],r=E[g+104>>2],e=E[g+56>>2],y=E[g+108>>2],s=E[g+60>>2],D=E[g+112>>2],p=E[g+64>>2],f=E[g+116>>2],n=E[g+68>>2],k=E[g+120>>2],F=E[g+72>>2],N=E[g+124>>2],S=E[g+76>>2],G=E[g+128>>2],M=E[g+80>>2],E[g+84>>2]=0-(E[g+84>>2]+E[g+132>>2]|0),E[g+80>>2]=0-(G+M|0),E[g+76>>2]=0-(N+S|0),E[g+72>>2]=0-(k+F|0),E[g+68>>2]=0-(f+n|0),E[g+64>>2]=0-(D+p|0),E[g+60>>2]=0-(y+s|0),E[g+56>>2]=0-(r+e|0),E[g+52>>2]=0-(c+t|0),E[g+48>>2]=0-(B+_|0),Y(g,I,C),E[g+404>>2]=0,E[g+408>>2]=0,E[g+412>>2]=0,E[g+416>>2]=0,E[g+420>>2]=0,E[g+388>>2]=0,E[g+392>>2]=0,E[g+384>>2]=1,E[g+396>>2]=0,E[g+400>>2]=0,p=GA(B=g+432|0,g+384|0,g),Y(A,B,i),Y(C=A+40|0,B,A),Y(C,C,I),Y(A,A,Q),Q=E[A+36>>2]<<1,E[A+36>>2]=Q,B=E[A+32>>2]<<1,E[A+32>>2]=B,i=E[A+28>>2]<<1,E[A+28>>2]=i,_=E[A+24>>2]<<1,E[A+24>>2]=_,c=E[A+20>>2]<<1,E[A+20>>2]=c,t=E[A+16>>2]<<1,E[A+16>>2]=t,r=E[A+12>>2]<<1,E[A+12>>2]=r,e=E[A+8>>2]<<1,E[A+8>>2]=e,y=E[A+4>>2]<<1,E[A+4>>2]=y,s=E[A>>2]<<1,E[A>>2]=s,BI(D=g+480|0,A),I=0-(1&o[g+480|0])|0,E[A+36>>2]=Q^I&(Q^0-Q),E[A+32>>2]=B^I&(B^0-B),E[A+28>>2]=i^I&(i^0-i),E[A+24>>2]=_^I&(_^0-_),E[A+20>>2]=c^I&(c^0-c),E[A+16>>2]=t^I&(t^0-t),E[A+12>>2]=r^I&(r^0-r),E[A+8>>2]=e^I&(e^0-e),E[A+4>>2]=y^I&(y^0-y),E[A>>2]=s^I&(s^0-s),Y(C,w,C),E[A+84>>2]=0,E[A+88>>2]=0,E[A+80>>2]=1,E[A+92>>2]=0,E[A+96>>2]=0,E[A+100>>2]=0,E[A+104>>2]=0,E[A+108>>2]=0,E[A+112>>2]=0,E[A+116>>2]=0,Y(I=A+120|0,A,C),BI(D,I),A=a[g+480|0],BI(D,C),C=0-(NI(D,32)|1-p|1&A)|0),h=g+512|0,C}function aA(A,I,g,C){var B,Q=0,i=0;B=Q=h,h=Q=Q-576&-64,E[Q+188>>2]=I;A:if(I>>>0<=64){if((0|eA(i=Q+192|0,0,0,I))<0)break A;if((0|XA(i,Q+188|0,4,0))<0)break A;if((0|XA(i,g,C,0))<0)break A;Yg(i,A,I)}else if(!((0|eA(i=Q+192|0,0,0,64))<0||(0|XA(i,Q+188|0,4,0))<0||(0|XA(i,g,C,0))<0||(0|Yg(i,Q+112|0,64))<0)){if(g=E[Q+116>>2],C=E[Q+112>>2],o[0|A]=C,o[A+1|0]=C>>>8,o[A+2|0]=C>>>16,o[A+3|0]=C>>>24,o[A+4|0]=g,o[A+5|0]=g>>>8,o[A+6|0]=g>>>16,o[A+7|0]=g>>>24,g=E[Q+124>>2],C=E[Q+120>>2],o[A+8|0]=C,o[A+9|0]=C>>>8,o[A+10|0]=C>>>16,o[A+11|0]=C>>>24,o[A+12|0]=g,o[A+13|0]=g>>>8,o[A+14|0]=g>>>16,o[A+15|0]=g>>>24,g=E[Q+140>>2],C=E[Q+136>>2],o[A+24|0]=C,o[A+25|0]=C>>>8,o[A+26|0]=C>>>16,o[A+27|0]=C>>>24,o[A+28|0]=g,o[A+29|0]=g>>>8,o[A+30|0]=g>>>16,o[A+31|0]=g>>>24,g=E[Q+132>>2],C=E[Q+128>>2],o[A+16|0]=C,o[A+17|0]=C>>>8,o[A+18|0]=C>>>16,o[A+19|0]=C>>>24,o[A+20|0]=g,o[A+21|0]=g>>>8,o[A+22|0]=g>>>16,o[A+23|0]=g>>>24,A=A+32|0,(I=I-32|0)>>>0>=65)for(;;){if(g=E[Q+172>>2],E[Q+104>>2]=E[Q+168>>2],E[Q+108>>2]=g,g=E[Q+164>>2],E[Q+96>>2]=E[Q+160>>2],E[Q+100>>2]=g,g=E[Q+156>>2],E[Q+88>>2]=E[Q+152>>2],E[Q+92>>2]=g,g=E[Q+148>>2],E[Q+80>>2]=E[Q+144>>2],E[Q+84>>2]=g,g=E[Q+140>>2],E[Q+72>>2]=E[Q+136>>2],E[Q+76>>2]=g,C=E[Q+132>>2],E[(g=Q- -64|0)>>2]=E[Q+128>>2],E[g+4>>2]=C,g=E[Q+124>>2],E[Q+56>>2]=E[Q+120>>2],E[Q+60>>2]=g,g=E[Q+116>>2],E[Q+48>>2]=E[Q+112>>2],E[Q+52>>2]=g,(0|lA(Q+112|0,64,Q+48|0,64,0,0,0))<0)break A;if(g=E[Q+116>>2],C=E[Q+112>>2],o[0|A]=C,o[A+1|0]=C>>>8,o[A+2|0]=C>>>16,o[A+3|0]=C>>>24,o[A+4|0]=g,o[A+5|0]=g>>>8,o[A+6|0]=g>>>16,o[A+7|0]=g>>>24,g=E[Q+124>>2],C=E[Q+120>>2],o[A+8|0]=C,o[A+9|0]=C>>>8,o[A+10|0]=C>>>16,o[A+11|0]=C>>>24,o[A+12|0]=g,o[A+13|0]=g>>>8,o[A+14|0]=g>>>16,o[A+15|0]=g>>>24,g=E[Q+140>>2],C=E[Q+136>>2],o[A+24|0]=C,o[A+25|0]=C>>>8,o[A+26|0]=C>>>16,o[A+27|0]=C>>>24,o[A+28|0]=g,o[A+29|0]=g>>>8,o[A+30|0]=g>>>16,o[A+31|0]=g>>>24,g=E[Q+132>>2],C=E[Q+128>>2],o[A+16|0]=C,o[A+17|0]=C>>>8,o[A+18|0]=C>>>16,o[A+19|0]=C>>>24,o[A+20|0]=g,o[A+21|0]=g>>>8,o[A+22|0]=g>>>16,o[A+23|0]=g>>>24,A=A+32|0,!((I=I-32|0)>>>0>64))break}g=E[Q+172>>2],E[Q+104>>2]=E[Q+168>>2],E[Q+108>>2]=g,g=E[Q+164>>2],E[Q+96>>2]=E[Q+160>>2],E[Q+100>>2]=g,g=E[Q+156>>2],E[Q+88>>2]=E[Q+152>>2],E[Q+92>>2]=g,g=E[Q+148>>2],E[Q+80>>2]=E[Q+144>>2],E[Q+84>>2]=g,g=E[Q+140>>2],E[Q+72>>2]=E[Q+136>>2],E[Q+76>>2]=g,C=E[Q+132>>2],E[(g=Q- -64|0)>>2]=E[Q+128>>2],E[g+4>>2]=C,g=E[Q+124>>2],E[Q+56>>2]=E[Q+120>>2],E[Q+60>>2]=g,g=E[Q+116>>2],E[Q+48>>2]=E[Q+112>>2],E[Q+52>>2]=g,(0|lA(g=Q+112|0,I,Q+48|0,64,0,0,0))<0||Sg(A,g,I)}XC(Q+192|0,384),h=B}function _A(A,I,g,C,B,Q,i,t,r,e,y){var s=0,D=0,p=0,f=0,n=0,k=0,F=0,N=0,S=0,G=0,M=0,b=0,K=0,H=0,Y=0,d=0,J=0;if(s=Ig(r,0,t,0),!(D=w)&s>>>0>=1073741824|D)return E[9392]=22,-1;if(1==(0|i)|i>>>0>1)return E[9392]=22,-1;for(s=Q,f=i;s|f;)D=s,s&=s-1,f&=f-!D,n=(k=k+1|0)?n:n+1|0;if(!(!(w=n)&k>>>0<2&(!i&Q>>>0>=2|0!=(0|i))))return E[9392]=28,-1;if(!r||!t)return E[9392]=28,-1;if(!(33554431/(r>>>0)>>>0>>0|t>>>0>16777215)&!i&Q>>>0<=33554431/(t>>>0)>>>0&&!((S=c(N=t<<7,r))>>>0>(D=(k=c(Q,N))+S|0)>>>0||D>>>0>(s=(D+(t<<8)|0)- -64|0)>>>0)){A:{if(s>>>0>_[A+8>>2]){if(D=-1,vg(A))break A;if(h=f=h-16|0,n=_I(f+12|0,s),E[9392]=n,n=n?0:E[f+12>>2],E[A+4>>2]=n,E[A>>2]=n,E[A+8>>2]=n?s:0,h=f+16|0,!n)break A}for(DI(I,g,C,B,M=E[A+4>>2],S),d=(s=(G=S+M|0)+k|0)+(C=(A=t<<7)-64|0)|0,b=s+(t<<8)|0,J=(f=A+s|0)+C|0,Y=Q-1|0,n=t<<5;;){for(k=c(N,H)+M|0,D=0;C=(A=D<<2)+k|0,E[A+s>>2]=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24,B=(C=4|A)+s|0,C=C+k|0,E[B>>2]=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24,B=(C=8|A)+s|0,C=C+k|0,E[B>>2]=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24,C=(A|=12)+s|0,A=A+k|0,E[C>>2]=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,K=0,C=0,(0|n)!=(0|(D=D+4|0)););for(B=0,A=0;Sg(G+(c(B,n)<<2)|0,s,N),tA(s,f,b,t),Sg(G+(c(n,1|B)<<2)|0,f,N),tA(f,s,b,t),(0|i)==(0|(A=(B=B+2|0)>>>0<2?A+1|0:A))&B>>>0>>0|A>>>0>>0;);for(;;){for(A=G+(c(n,Y&E[d>>2])<<2)|0,D=0;E[(p=(B=D<<2)+s|0)>>2]=E[p>>2]^E[A+B>>2],E[(F=(p=4|B)+s|0)>>2]=E[F>>2]^E[A+p>>2],E[(F=(p=8|B)+s|0)>>2]=E[F>>2]^E[A+p>>2],E[(p=(B|=12)+s|0)>>2]=E[p>>2]^E[A+B>>2],(0|n)!=(0|(D=D+4|0)););for(tA(s,f,b,t),A=G+(c(n,Y&E[J>>2])<<2)|0,D=0;E[(p=(B=D<<2)+f|0)>>2]=E[p>>2]^E[A+B>>2],E[(F=(p=4|B)+f|0)>>2]=E[F>>2]^E[A+p>>2],E[(F=(p=8|B)+f|0)>>2]=E[F>>2]^E[A+p>>2],E[(p=(B|=12)+f|0)>>2]=E[p>>2]^E[A+B>>2],(0|n)!=(0|(D=D+4|0)););if(tA(f,s,b,t),D=0,C=A=(K=K+2|0)>>>0<2?C+1|0:C,!((0|i)==(0|A)&Q>>>0>K>>>0|A>>>0>>0))break}for(;C=(A=D<<2)+k|0,B=E[A+s>>2],o[0|C]=B,o[C+1|0]=B>>>8,o[C+2|0]=B>>>16,o[C+3|0]=B>>>24,C=(B=4|A)+k|0,B=E[B+s>>2],o[0|C]=B,o[C+1|0]=B>>>8,o[C+2|0]=B>>>16,o[C+3|0]=B>>>24,C=(B=8|A)+k|0,B=E[B+s>>2],o[0|C]=B,o[C+1|0]=B>>>8,o[C+2|0]=B>>>16,o[C+3|0]=B>>>24,A=(C=12|A)+k|0,C=E[C+s>>2],o[0|A]=C,o[A+1|0]=C>>>8,o[A+2|0]=C>>>16,o[A+3|0]=C>>>24,(0|n)!=(0|(D=D+4|0)););if((0|(H=H+1|0))==(0|r))break}DI(I,g,M,S,e,y),D=0}return D}return E[9392]=48,-1}function cA(A,I,g){A|=0,I|=0,g|=0;var C,B,Q,i=0;h=C=h-192|0,E[C+96>>2]=0,E[C+100>>2]=0,E[C+104>>2]=0,E[C+108>>2]=0,E[C+112>>2]=0,E[C+116>>2]=0,E[C+120>>2]=0,E[C+124>>2]=0,i=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,E[C+80>>2]=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,E[C+84>>2]=i,i=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,E[C+88>>2]=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,E[C+92>>2]=i,B=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,Q=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,i=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,I=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,E[C+40>>2]=0,E[C+44>>2]=0,E[C+48>>2]=0,E[C+52>>2]=0,E[C+56>>2]=0,E[C+60>>2]=0,E[C+64>>2]=i,E[C+68>>2]=I,E[C+72>>2]=B,E[C+76>>2]=Q,E[C+32>>2]=0,E[C+36>>2]=0,I=a[g+20|0]|a[g+21|0]<<8|a[g+22|0]<<16|a[g+23|0]<<24,E[C+16>>2]=a[g+16|0]|a[g+17|0]<<8|a[g+18|0]<<16|a[g+19|0]<<24,E[C+20>>2]=I,I=a[g+28|0]|a[g+29|0]<<8|a[g+30|0]<<16|a[g+31|0]<<24,E[C+24>>2]=a[g+24|0]|a[g+25|0]<<8|a[g+26|0]<<16|a[g+27|0]<<24,E[C+28>>2]=I,I=a[g+4|0]|a[g+5|0]<<8|a[g+6|0]<<16|a[g+7|0]<<24,E[C>>2]=a[0|g]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24,E[C+4>>2]=I,I=a[g+12|0]|a[g+13|0]<<8|a[g+14|0]<<16|a[g+15|0]<<24,E[C+8>>2]=a[g+8|0]|a[g+9|0]<<8|a[g+10|0]<<16|a[g+11|0]<<24,E[C+12>>2]=I,og(C- -64|0,C),g=E[C+124>>2],E[C+184>>2]=E[C+120>>2],E[C+188>>2]=g,I=E[C+116>>2],E[C+176>>2]=E[C+112>>2],E[C+180>>2]=I,I=E[C+108>>2],E[C+168>>2]=E[C+104>>2],E[C+172>>2]=I,I=E[C+100>>2],E[C+160>>2]=E[C+96>>2],E[C+164>>2]=I,I=E[C+92>>2],E[C+152>>2]=E[C+88>>2],E[C+156>>2]=I,I=E[C+84>>2],E[C+144>>2]=E[C+80>>2],E[C+148>>2]=I,I=E[C+76>>2],E[C+136>>2]=E[C+72>>2],E[C+140>>2]=I,I=E[C+68>>2],E[C+128>>2]=E[C+64>>2],E[C+132>>2]=I,N(I=C+128|0),i=E[C+156>>2],g=E[C+152>>2],o[A+24|0]=g,o[A+25|0]=g>>>8,o[A+26|0]=g>>>16,o[A+27|0]=g>>>24,o[A+28|0]=i,o[A+29|0]=i>>>8,o[A+30|0]=i>>>16,o[A+31|0]=i>>>24,i=E[C+148>>2],g=E[C+144>>2],o[A+16|0]=g,o[A+17|0]=g>>>8,o[A+18|0]=g>>>16,o[A+19|0]=g>>>24,o[A+20|0]=i,o[A+21|0]=i>>>8,o[A+22|0]=i>>>16,o[A+23|0]=i>>>24,i=E[C+140>>2],g=E[C+136>>2],o[A+8|0]=g,o[A+9|0]=g>>>8,o[A+10|0]=g>>>16,o[A+11|0]=g>>>24,o[A+12|0]=i,o[A+13|0]=i>>>8,o[A+14|0]=i>>>16,o[A+15|0]=i>>>24,i=E[C+132>>2],g=E[C+128>>2],o[0|A]=g,o[A+1|0]=g>>>8,o[A+2|0]=g>>>16,o[A+3|0]=g>>>24,o[A+4|0]=i,o[A+5|0]=i>>>8,o[A+6|0]=i>>>16,o[A+7|0]=i>>>24,XC(I,64),h=C+192|0}function tA(A,I,g,C){var B=0,Q=0,i=0,o=0,a=0;if(i=E[4+(B=((C<<7)+A|0)-64|0)>>2],E[g>>2]=E[B>>2],E[g+4>>2]=i,i=E[B+60>>2],E[g+56>>2]=E[B+56>>2],E[g+60>>2]=i,i=E[B+52>>2],E[g+48>>2]=E[B+48>>2],E[g+52>>2]=i,i=E[B+44>>2],E[g+40>>2]=E[B+40>>2],E[g+44>>2]=i,i=E[B+36>>2],E[g+32>>2]=E[B+32>>2],E[g+36>>2]=i,i=E[B+28>>2],E[g+24>>2]=E[B+24>>2],E[g+28>>2]=i,i=E[B+20>>2],E[g+16>>2]=E[B+16>>2],E[g+20>>2]=i,i=E[B+12>>2],E[g+8>>2]=E[B+8>>2],E[g+12>>2]=i,C)for(i=C<<1,a=C<<4,C=0;B=(Q=C<<6)+A|0,E[g>>2]=E[g>>2]^E[B>>2],E[g+4>>2]=E[g+4>>2]^E[B+4>>2],E[g+8>>2]=E[g+8>>2]^E[B+8>>2],E[g+12>>2]=E[g+12>>2]^E[B+12>>2],E[g+16>>2]=E[g+16>>2]^E[B+16>>2],E[g+20>>2]=E[g+20>>2]^E[B+20>>2],E[g+24>>2]=E[g+24>>2]^E[B+24>>2],E[g+28>>2]=E[g+28>>2]^E[B+28>>2],E[g+32>>2]=E[g+32>>2]^E[B+32>>2],E[g+36>>2]=E[g+36>>2]^E[B+36>>2],E[g+40>>2]=E[g+40>>2]^E[B+40>>2],E[g+44>>2]=E[g+44>>2]^E[B+44>>2],E[g+48>>2]=E[g+48>>2]^E[B+48>>2],E[g+52>>2]=E[g+52>>2]^E[B+52>>2],E[g+56>>2]=E[g+56>>2]^E[B+56>>2],E[g+60>>2]=E[g+60>>2]^E[B+60>>2],OA(g),o=E[g+60>>2],E[56+(B=(C<<5)+I|0)>>2]=E[g+56>>2],E[B+60>>2]=o,o=E[g+52>>2],E[B+48>>2]=E[g+48>>2],E[B+52>>2]=o,o=E[g+44>>2],E[B+40>>2]=E[g+40>>2],E[B+44>>2]=o,o=E[g+36>>2],E[B+32>>2]=E[g+32>>2],E[B+36>>2]=o,o=E[g+28>>2],E[B+24>>2]=E[g+24>>2],E[B+28>>2]=o,o=E[g+20>>2],E[B+16>>2]=E[g+16>>2],E[B+20>>2]=o,o=E[g+12>>2],E[B+8>>2]=E[g+8>>2],E[B+12>>2]=o,o=E[g+4>>2],E[B>>2]=E[g>>2],E[B+4>>2]=o,B=(64|Q)+A|0,E[g>>2]=E[g>>2]^E[B>>2],E[g+4>>2]=E[g+4>>2]^E[B+4>>2],E[g+8>>2]=E[g+8>>2]^E[B+8>>2],E[g+12>>2]=E[g+12>>2]^E[B+12>>2],E[g+16>>2]=E[g+16>>2]^E[B+16>>2],E[g+20>>2]=E[g+20>>2]^E[B+20>>2],E[g+24>>2]=E[g+24>>2]^E[B+24>>2],E[g+28>>2]=E[g+28>>2]^E[B+28>>2],E[g+32>>2]=E[g+32>>2]^E[B+32>>2],E[g+36>>2]=E[g+36>>2]^E[B+36>>2],E[g+40>>2]=E[g+40>>2]^E[B+40>>2],E[g+44>>2]=E[g+44>>2]^E[B+44>>2],E[g+48>>2]=E[g+48>>2]^E[B+48>>2],E[g+52>>2]=E[g+52>>2]^E[B+52>>2],E[g+56>>2]=E[g+56>>2]^E[B+56>>2],E[g+60>>2]=E[g+60>>2]^E[B+60>>2],OA(g),Q=E[g+60>>2],E[56+(B=((C<<3)+a<<2)+I|0)>>2]=E[g+56>>2],E[B+60>>2]=Q,Q=E[g+52>>2],E[B+48>>2]=E[g+48>>2],E[B+52>>2]=Q,Q=E[g+44>>2],E[B+40>>2]=E[g+40>>2],E[B+44>>2]=Q,Q=E[g+36>>2],E[B+32>>2]=E[g+32>>2],E[B+36>>2]=Q,Q=E[g+28>>2],E[B+24>>2]=E[g+24>>2],E[B+28>>2]=Q,Q=E[g+20>>2],E[B+16>>2]=E[g+16>>2],E[B+20>>2]=Q,Q=E[g+12>>2],E[B+8>>2]=E[g+8>>2],E[B+12>>2]=Q,Q=E[g+4>>2],E[B>>2]=E[g>>2],E[B+4>>2]=Q,i>>>0>(C=C+2|0)>>>0;);}function rA(A,I,g,C){var B=0,Q=0,i=0,o=0,_=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,f=0,n=0,k=0,F=0,N=0,S=0,G=0,M=0,b=0,K=0,H=0,Y=0;if(h=E[A+36>>2],y=E[A+32>>2],s=E[A+28>>2],r=E[A+24>>2],e=E[A+20>>2],!C&g>>>0>=16|C)for(M=!a[A+80|0]<<24,p=E[A+4>>2],b=c(p,5),n=E[A+8>>2],S=c(n,5),F=E[A+12>>2],N=c(F,5),G=E[A+16>>2],k=c(G,5),f=E[A>>2];B=Ig(i=((a[I+3|0]|a[I+4|0]<<8|a[I+5|0]<<16|a[I+6|0]<<24)>>>2&67108863)+r|0,0,F,0),_=w,e=(o=Ig(r=(67108863&(a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24))+e|0,0,G,0))+B|0,B=w+_|0,B=o>>>0>e>>>0?B+1|0:B,_=Ig(s=((a[I+6|0]|a[I+7|0]<<8|a[I+8|0]<<16|a[I+9|0]<<24)>>>4&67108863)+s|0,0,n,0),B=w+B|0,B=_>>>0>(e=_+e|0)>>>0?B+1|0:B,_=Ig(y=((a[I+9|0]|a[I+10|0]<<8|a[I+11|0]<<16|a[I+12|0]<<24)>>>6|0)+y|0,0,p,0),B=w+B|0,B=_>>>0>(e=_+e|0)>>>0?B+1|0:B,_=Ig(h=h+M+((a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24)>>>8)|0,0,f,0),B=w+B|0,K=e=_+e|0,e=_>>>0>e>>>0?B+1|0:B,B=Ig(i,0,n,0),_=w,o=Ig(r,0,F,0),Q=w+_|0,Q=(B=o+B|0)>>>0>>0?Q+1|0:Q,_=(o=Ig(s,0,p,0))+B|0,B=w+Q|0,B=o>>>0>_>>>0?B+1|0:B,o=Ig(y,0,f,0),B=w+B|0,B=o>>>0>(_=o+_|0)>>>0?B+1|0:B,o=Ig(h,0,k,0),B=w+B|0,H=_=o+_|0,_=o>>>0>_>>>0?B+1|0:B,B=Ig(i,0,p,0),t=w,o=(Q=Ig(r,0,n,0))+B|0,B=w+t|0,B=Q>>>0>o>>>0?B+1|0:B,t=Ig(s,0,f,0),Q=w+B|0,Q=(o=t+o|0)>>>0>>0?Q+1|0:Q,t=Ig(y,0,k,0),B=w+Q|0,B=(o=t+o|0)>>>0>>0?B+1|0:B,t=Ig(h,0,N,0),B=w+B|0,Y=o=t+o|0,o=o>>>0>>0?B+1|0:B,B=Ig(i,0,f,0),Q=w,t=(D=Ig(r,0,p,0))+B|0,B=w+Q|0,B=t>>>0>>0?B+1|0:B,Q=Ig(s,0,k,0),B=w+B|0,B=Q>>>0>(t=Q+t|0)>>>0?B+1|0:B,D=Ig(y,0,N,0),Q=w+B|0,Q=(t=D+t|0)>>>0>>0?Q+1|0:Q,D=Ig(h,0,S,0),B=w+Q|0,B=(t=D+t|0)>>>0>>0?B+1|0:B,D=t,t=B,B=Ig(i,0,k,0),Q=w,i=(r=Ig(r,0,f,0))+B|0,B=w+Q|0,B=i>>>0>>0?B+1|0:B,r=Ig(s,0,N,0),B=w+B|0,B=(i=r+i|0)>>>0>>0?B+1|0:B,r=Ig(y,0,S,0),B=w+B|0,B=(i=r+i|0)>>>0>>0?B+1|0:B,r=Ig(h,0,b,0),Q=w+B|0,Q=(i=r+i|0)>>>0>>0?Q+1|0:Q,r=i,B=t,B=(i=(s=(67108863&Q)<<6|i>>>26)+D|0)>>>0>>0?B+1|0:B,s=i,y=(67108863&B)<<6|i>>>26,B=o,B=(i=y+Y|0)>>>0>>0?B+1|0:B,y=i,Q=_,h=B=(i=(67108863&B)<<6|i>>>26)+H|0,_=(67108863&(Q=B>>>0>>0?Q+1|0:Q))<<6|B>>>26,B=e,r=(67108863&s)+((B=c((67108863&((i=_+K|0)>>>0<_>>>0?B+1|0:B))<<6|i>>>26,5)+(67108863&r)|0)>>>26|0)|0,s=67108863&y,y=67108863&h,h=67108863&i,e=67108863&B,I=I+16|0,!(C=C-(g>>>0<16)|0)&(g=g-16|0)>>>0>15|C;);E[A+20>>2]=e,E[A+36>>2]=h,E[A+32>>2]=y,E[A+28>>2]=s,E[A+24>>2]=r}function eA(A,I,g,C){A|=0,I|=0;var B=0;return B=-1,(C|=0)-65>>>0<4294967232|(g|=0)>>>0>64||(g&&I?(h=B=h-128|0,!I|((C&=255)-65&255)>>>0<=191|((g&=255)-65&255)>>>0<=191?(yC(),Q()):(Hg(A- -64|0,0,293),o[A+56|0]=121,o[A+57|0]=33,o[A+58|0]=126,o[A+59|0]=19,o[A+60|0]=25,o[A+61|0]=205,o[A+62|0]=224,o[A+63|0]=91,o[A+48|0]=107,o[A+49|0]=189,o[A+50|0]=65,o[A+51|0]=251,o[A+52|0]=171,o[A+53|0]=217,o[A+54|0]=131,o[A+55|0]=31,o[A+40|0]=31,o[A+41|0]=108,o[A+42|0]=62,o[A+43|0]=43,o[A+44|0]=140,o[A+45|0]=104,o[A+46|0]=5,o[A+47|0]=155,o[A+32|0]=209,o[A+33|0]=130,o[A+34|0]=230,o[A+35|0]=173,o[A+36|0]=127,o[A+37|0]=82,o[A+38|0]=14,o[A+39|0]=81,o[A+24|0]=241,o[A+25|0]=54,o[A+26|0]=29,o[A+27|0]=95,o[A+28|0]=58,o[A+29|0]=245,o[A+30|0]=79,o[A+31|0]=165,o[A+16|0]=43,o[A+17|0]=248,o[A+18|0]=148,o[A+19|0]=254,o[A+20|0]=114,o[A+21|0]=243,o[A+22|0]=110,o[A+23|0]=60,o[A+8|0]=59,o[A+9|0]=167,o[A+10|0]=202,o[A+11|0]=132,o[A+12|0]=133,o[A+13|0]=174,o[A+14|0]=103,o[A+15|0]=187,C=-222443256^(g<<8|C),o[0|A]=C,o[A+1|0]=C>>>8,o[A+2|0]=C>>>16,o[A+3|0]=C>>>24,C=g>>>24^1779033703,o[A+4|0]=C,o[A+5|0]=C>>>8,o[A+6|0]=C>>>16,o[A+7|0]=C>>>24,Hg(g+B|0,0,g<<24>>24>=0?128-g|0:0),g=Sg(B,I,g),Sg(A+96|0,g,128),I=128+(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)|0,o[A+352|0]=I,o[A+353|0]=I>>>8,o[A+354|0]=I>>>16,o[A+355|0]=I>>>24,XC(g,128),h=g+128|0)):(((I=255&C)-65&255)>>>0<=191&&(yC(),Q()),Hg(A- -64|0,0,293),o[A+56|0]=121,o[A+57|0]=33,o[A+58|0]=126,o[A+59|0]=19,o[A+60|0]=25,o[A+61|0]=205,o[A+62|0]=224,o[A+63|0]=91,o[A+48|0]=107,o[A+49|0]=189,o[A+50|0]=65,o[A+51|0]=251,o[A+52|0]=171,o[A+53|0]=217,o[A+54|0]=131,o[A+55|0]=31,o[A+40|0]=31,o[A+41|0]=108,o[A+42|0]=62,o[A+43|0]=43,o[A+44|0]=140,o[A+45|0]=104,o[A+46|0]=5,o[A+47|0]=155,o[A+32|0]=209,o[A+33|0]=130,o[A+34|0]=230,o[A+35|0]=173,o[A+36|0]=127,o[A+37|0]=82,o[A+38|0]=14,o[A+39|0]=81,o[A+24|0]=241,o[A+25|0]=54,o[A+26|0]=29,o[A+27|0]=95,o[A+28|0]=58,o[A+29|0]=245,o[A+30|0]=79,o[A+31|0]=165,o[A+16|0]=43,o[A+17|0]=248,o[A+18|0]=148,o[A+19|0]=254,o[A+20|0]=114,o[A+21|0]=243,o[A+22|0]=110,o[A+23|0]=60,o[A+8|0]=59,o[A+9|0]=167,o[A+10|0]=202,o[A+11|0]=132,o[A+12|0]=133,o[A+13|0]=174,o[A+14|0]=103,o[A+15|0]=187,I^=-222443256,o[0|A]=I,o[A+1|0]=I>>>8,o[A+2|0]=I>>>16,o[A+3|0]=I>>>24,o[A+4|0]=103,o[A+5|0]=230,o[A+6|0]=9,o[A+7|0]=106),B=0),0|B}function yA(A,I,g,C){A|=0,I|=0,g|=0;var B=0,Q=0,i=0,E=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,f=0,n=0,k=0,F=0;for((C|=0)?(Q=a[C+8|0]|a[C+9|0]<<8|a[C+10|0]<<16|a[C+11|0]<<24,i=a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24,B=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24,t=a[C+12|0]|a[C+13|0]<<8|a[C+14|0]<<16|a[C+15|0]<<24):(Q=2036477234,i=857760878,B=1634760805,t=1797285236),E=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,e=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,_=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,y=a[g+28|0]|a[g+29|0]<<8|a[g+30|0]<<16|a[g+31|0]<<24,c=a[g+24|0]|a[g+25|0]<<8|a[g+26|0]<<16|a[g+27|0]<<24,f=a[g+20|0]|a[g+21|0]<<8|a[g+22|0]<<16|a[g+23|0]<<24,s=a[g+16|0]|a[g+17|0]<<8|a[g+18|0]<<16|a[g+19|0]<<24,C=a[g+12|0]|a[g+13|0]<<8|a[g+14|0]<<16|a[g+15|0]<<24,h=a[g+8|0]|a[g+9|0]<<8|a[g+10|0]<<16|a[g+11|0]<<24,D=a[g+4|0]|a[g+5|0]<<8|a[g+6|0]<<16|a[g+7|0]<<24,I=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,g=a[0|g]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24;r=g,g=Lg((p=I)^(I=g+B|0),16),r=s=Lg(r^(B=g+s|0),12),w=Lg((p=I+s|0)^g,8),I=Lg(r^(s=w+B|0),7),E=Lg((g=C+t|0)^E,16),C=Lg((y=E+y|0)^C,12),r=h,Q=Lg((t=Q+h|0)^e,16),B=Lg(r^(h=Q+c|0),12),c=Lg((c=Q)^(Q=B+t|0),8),g=Lg(c^(t=(n=g+C|0)+I|0),16),e=Lg((i=i+D|0)^_,16),D=Lg((_=e+f|0)^D,12),r=I,I=Lg((i=D+i|0)^e,8),r=Lg(r^(_=(k=I+_|0)+g|0),12),e=Lg(g^(t=r+t|0),8),g=Lg((f=e+_|0)^r,7),E=Lg(E^n,8),C=Lg((y=E+y|0)^C,7),_=Lg((Q=C+Q|0)^I,16),C=Lg((I=_+s|0)^C,12),_=Lg(_^(Q=C+Q|0),8),C=Lg((s=I+_|0)^C,7),I=Lg((c=c+h|0)^B,7),h=Lg((i=I+i|0)^w,16),w=Lg(I^(B=h+y|0),12),I=Lg(h^(i=w+i|0),8),h=Lg((y=B+I|0)^w,7),r=c,c=E,B=Lg(D^k,7),c=Lg(c^(E=B+p|0),16),p=Lg(B^(D=r+c|0),12),E=Lg(c^(B=p+E|0),8),D=Lg((c=D+E|0)^p,7),10!=(0|(F=F+1|0)););return o[0|A]=B,o[A+1|0]=B>>>8,o[A+2|0]=B>>>16,o[A+3|0]=B>>>24,o[A+28|0]=E,o[A+29|0]=E>>>8,o[A+30|0]=E>>>16,o[A+31|0]=E>>>24,o[A+24|0]=e,o[A+25|0]=e>>>8,o[A+26|0]=e>>>16,o[A+27|0]=e>>>24,o[A+20|0]=_,o[A+21|0]=_>>>8,o[A+22|0]=_>>>16,o[A+23|0]=_>>>24,o[A+16|0]=I,o[A+17|0]=I>>>8,o[A+18|0]=I>>>16,o[A+19|0]=I>>>24,o[A+12|0]=t,o[A+13|0]=t>>>8,o[A+14|0]=t>>>16,o[A+15|0]=t>>>24,o[A+8|0]=Q,o[A+9|0]=Q>>>8,o[A+10|0]=Q>>>16,o[A+11|0]=Q>>>24,o[A+4|0]=i,o[A+5|0]=i>>>8,o[A+6|0]=i>>>16,o[A+7|0]=i>>>24,0}function sA(A,I,g){var C,B,Q,i,o,a,_,c,t,r,e,y=0,s=0,h=0,D=0,p=0,w=0,f=0,n=0,k=0,F=0,N=0,S=0,G=0,M=0,b=0,K=0,H=0,d=0,J=0;y=E[I+40>>2],s=E[I+4>>2],D=E[I+44>>2],p=E[I+8>>2],w=E[I+48>>2],f=E[I+12>>2],n=E[I+52>>2],k=E[I+16>>2],F=E[I+56>>2],N=E[I+20>>2],S=E[I+60>>2],G=E[I+24>>2],M=E[(h=I- -64|0)>>2],b=E[I+28>>2],K=E[I+68>>2],H=E[I+32>>2],d=E[I+72>>2],J=E[I>>2],E[A+36>>2]=E[I+36>>2]+E[I+76>>2],E[A+32>>2]=H+d,E[A+28>>2]=b+K,E[A+24>>2]=G+M,E[A+20>>2]=N+S,E[A+16>>2]=k+F,E[A+12>>2]=f+n,E[A+8>>2]=p+w,E[A+4>>2]=s+D,E[A>>2]=y+J,D=E[I+40>>2],y=E[I+4>>2],p=E[I+44>>2],w=E[I+8>>2],f=E[I+48>>2],n=E[I+12>>2],k=E[I+52>>2],F=E[I+16>>2],N=E[I+56>>2],S=E[I+20>>2],G=E[I+60>>2],M=E[I+24>>2],h=E[h>>2],s=E[I+28>>2],b=E[I+68>>2],K=E[I+32>>2],H=E[I+72>>2],d=E[I>>2],E[A+76>>2]=E[I+76>>2]-E[I+36>>2],E[A+72>>2]=H-K,E[A+68>>2]=b-s,E[(s=A- -64|0)>>2]=h-M,E[A+60>>2]=G-S,E[A+56>>2]=N-F,E[A+52>>2]=k-n,E[A+48>>2]=f-w,E[A+44>>2]=p-y,E[(y=A+40|0)>>2]=D-d,Y(A+80|0,A,g),Y(y,y,g+40|0),Y(A+120|0,g+120|0,I+120|0),Y(A,I+80|0,g+80|0),J=E[A+4>>2],Q=E[A+8>>2],i=E[A+12>>2],o=E[A+16>>2],a=E[A+20>>2],_=E[A+24>>2],c=E[A+28>>2],t=E[A+32>>2],r=E[A+36>>2],I=E[y>>2],g=E[A+80>>2],D=E[A+44>>2],p=E[A+84>>2],w=E[A+48>>2],f=E[A+88>>2],n=E[A+52>>2],k=E[A+92>>2],F=E[A+56>>2],N=E[A+96>>2],S=E[A+60>>2],G=E[A+100>>2],h=E[s>>2],M=E[A+104>>2],b=E[A+68>>2],K=E[A+108>>2],H=E[A+72>>2],d=E[A+112>>2],e=E[A>>2],C=E[A+76>>2],B=E[A+116>>2],E[A+76>>2]=C+B,E[A+72>>2]=H+d,E[A+68>>2]=b+K,E[s>>2]=h+M,E[A+60>>2]=S+G,E[A+56>>2]=F+N,E[A+52>>2]=n+k,E[A+48>>2]=w+f,E[A+44>>2]=D+p,E[y>>2]=I+g,E[A+36>>2]=B-C,E[A+32>>2]=d-H,E[A+28>>2]=K-b,E[A+24>>2]=M-h,E[A+20>>2]=G-S,E[A+16>>2]=N-F,E[A+12>>2]=k-n,E[A+8>>2]=f-w,E[A+4>>2]=p-D,E[A>>2]=g-I,I=r<<1,g=E[A+156>>2],E[A+156>>2]=I-g,y=t<<1,s=E[A+152>>2],E[A+152>>2]=y-s,D=c<<1,p=E[A+148>>2],E[A+148>>2]=D-p,w=_<<1,f=E[A+144>>2],E[A+144>>2]=w-f,n=a<<1,k=E[A+140>>2],E[A+140>>2]=n-k,F=o<<1,N=E[A+136>>2],E[A+136>>2]=F-N,S=i<<1,G=E[A+132>>2],E[A+132>>2]=S-G,h=Q<<1,M=E[A+128>>2],E[A+128>>2]=h-M,b=J<<1,K=E[A+124>>2],E[A+124>>2]=b-K,H=e<<1,d=E[A+120>>2],E[A+120>>2]=H-d,E[A+112>>2]=y+s,E[A+108>>2]=D+p,E[A+104>>2]=w+f,E[A+100>>2]=n+k,E[A+96>>2]=F+N,E[A+92>>2]=S+G,E[A+88>>2]=h+M,E[A+84>>2]=b+K,E[A+80>>2]=H+d,E[A+116>>2]=I+g}function hA(A,I,g){var C,B,Q,i,o,a,_,c,t,r,e,y=0,s=0,h=0,D=0,p=0,w=0,f=0,n=0,k=0,F=0,N=0,S=0,G=0,M=0,b=0,K=0,H=0,d=0,J=0;y=E[I+40>>2],s=E[I+4>>2],D=E[I+44>>2],p=E[I+8>>2],w=E[I+48>>2],f=E[I+12>>2],n=E[I+52>>2],k=E[I+16>>2],F=E[I+56>>2],N=E[I+20>>2],S=E[I+60>>2],G=E[I+24>>2],M=E[(h=I- -64|0)>>2],b=E[I+28>>2],K=E[I+68>>2],H=E[I+32>>2],d=E[I+72>>2],J=E[I>>2],E[A+36>>2]=E[I+36>>2]+E[I+76>>2],E[A+32>>2]=H+d,E[A+28>>2]=b+K,E[A+24>>2]=G+M,E[A+20>>2]=N+S,E[A+16>>2]=k+F,E[A+12>>2]=f+n,E[A+8>>2]=p+w,E[A+4>>2]=s+D,E[A>>2]=y+J,D=E[I+40>>2],y=E[I+4>>2],p=E[I+44>>2],w=E[I+8>>2],f=E[I+48>>2],n=E[I+12>>2],k=E[I+52>>2],F=E[I+16>>2],N=E[I+56>>2],S=E[I+20>>2],G=E[I+60>>2],M=E[I+24>>2],h=E[h>>2],s=E[I+28>>2],b=E[I+68>>2],K=E[I+32>>2],H=E[I+72>>2],d=E[I>>2],E[A+76>>2]=E[I+76>>2]-E[I+36>>2],E[A+72>>2]=H-K,E[A+68>>2]=b-s,E[(s=A- -64|0)>>2]=h-M,E[A+60>>2]=G-S,E[A+56>>2]=N-F,E[A+52>>2]=k-n,E[A+48>>2]=f-w,E[A+44>>2]=p-y,E[(y=A+40|0)>>2]=D-d,Y(A+80|0,A,g+40|0),Y(y,y,g),Y(A+120|0,g+120|0,I+120|0),Y(A,I+80|0,g+80|0),J=E[A+4>>2],Q=E[A+8>>2],i=E[A+12>>2],o=E[A+16>>2],a=E[A+20>>2],_=E[A+24>>2],c=E[A+28>>2],t=E[A+32>>2],r=E[A+36>>2],I=E[y>>2],g=E[A+80>>2],D=E[A+44>>2],p=E[A+84>>2],w=E[A+48>>2],f=E[A+88>>2],n=E[A+52>>2],k=E[A+92>>2],F=E[A+56>>2],N=E[A+96>>2],S=E[A+60>>2],G=E[A+100>>2],h=E[s>>2],M=E[A+104>>2],b=E[A+68>>2],K=E[A+108>>2],H=E[A+72>>2],d=E[A+112>>2],e=E[A>>2],C=E[A+76>>2],B=E[A+116>>2],E[A+76>>2]=C+B,E[A+72>>2]=H+d,E[A+68>>2]=b+K,E[s>>2]=h+M,E[A+60>>2]=S+G,E[A+56>>2]=F+N,E[A+52>>2]=n+k,E[A+48>>2]=w+f,E[A+44>>2]=D+p,E[y>>2]=I+g,E[A+36>>2]=B-C,E[A+32>>2]=d-H,E[A+28>>2]=K-b,E[A+24>>2]=M-h,E[A+20>>2]=G-S,E[A+16>>2]=N-F,E[A+12>>2]=k-n,E[A+8>>2]=f-w,E[A+4>>2]=p-D,E[A>>2]=g-I,I=E[A+156>>2],g=r<<1,E[A+156>>2]=I+g,y=E[A+152>>2],s=t<<1,E[A+152>>2]=y+s,D=E[A+148>>2],p=c<<1,E[A+148>>2]=D+p,w=E[A+144>>2],f=_<<1,E[A+144>>2]=w+f,n=E[A+140>>2],k=a<<1,E[A+140>>2]=n+k,F=E[A+136>>2],N=o<<1,E[A+136>>2]=F+N,S=E[A+132>>2],G=i<<1,E[A+132>>2]=S+G,h=E[A+128>>2],M=Q<<1,E[A+128>>2]=h+M,b=E[A+124>>2],K=J<<1,E[A+124>>2]=b+K,H=E[A+120>>2],d=e<<1,E[A+120>>2]=H+d,E[A+112>>2]=s-y,E[A+108>>2]=p-D,E[A+104>>2]=f-w,E[A+100>>2]=k-n,E[A+96>>2]=N-F,E[A+92>>2]=G-S,E[A+88>>2]=M-h,E[A+84>>2]=K-b,E[A+80>>2]=d-H,E[A+116>>2]=g-I}function DA(A,I,g){var C,B,Q,i,o,a,_,c,t,r,e,y=0,s=0,h=0,D=0,p=0,w=0,f=0,n=0,k=0,F=0,N=0,S=0,G=0,M=0,b=0,K=0,H=0,d=0,J=0;y=E[I+40>>2],s=E[I+4>>2],D=E[I+44>>2],p=E[I+8>>2],w=E[I+48>>2],f=E[I+12>>2],n=E[I+52>>2],k=E[I+16>>2],F=E[I+56>>2],N=E[I+20>>2],S=E[I+60>>2],G=E[I+24>>2],M=E[(h=I- -64|0)>>2],b=E[I+28>>2],K=E[I+68>>2],H=E[I+32>>2],d=E[I+72>>2],J=E[I>>2],E[A+36>>2]=E[I+36>>2]+E[I+76>>2],E[A+32>>2]=H+d,E[A+28>>2]=b+K,E[A+24>>2]=G+M,E[A+20>>2]=N+S,E[A+16>>2]=k+F,E[A+12>>2]=f+n,E[A+8>>2]=p+w,E[A+4>>2]=s+D,E[A>>2]=y+J,D=E[I+40>>2],y=E[I+4>>2],p=E[I+44>>2],w=E[I+8>>2],f=E[I+48>>2],n=E[I+12>>2],k=E[I+52>>2],F=E[I+16>>2],N=E[I+56>>2],S=E[I+20>>2],G=E[I+60>>2],M=E[I+24>>2],h=E[h>>2],s=E[I+28>>2],b=E[I+68>>2],K=E[I+32>>2],H=E[I+72>>2],d=E[I>>2],E[A+76>>2]=E[I+76>>2]-E[I+36>>2],E[A+72>>2]=H-K,E[A+68>>2]=b-s,E[(s=A- -64|0)>>2]=h-M,E[A+60>>2]=G-S,E[A+56>>2]=N-F,E[A+52>>2]=k-n,E[A+48>>2]=f-w,E[A+44>>2]=p-y,E[(y=A+40|0)>>2]=D-d,Y(A+80|0,A,g),Y(y,y,g+40|0),Y(A+120|0,g+80|0,I+120|0),J=E[I+80>>2],Q=E[I+84>>2],i=E[I+88>>2],o=E[I+92>>2],a=E[I+96>>2],_=E[I+100>>2],c=E[I+104>>2],t=E[I+108>>2],r=E[I+112>>2],e=E[I+116>>2],I=E[y>>2],g=E[A+80>>2],D=E[A+44>>2],p=E[A+84>>2],w=E[A+48>>2],f=E[A+88>>2],n=E[A+52>>2],k=E[A+92>>2],F=E[A+56>>2],N=E[A+96>>2],S=E[A+60>>2],G=E[A+100>>2],h=E[s>>2],M=E[A+104>>2],b=E[A+68>>2],K=E[A+108>>2],H=E[A+72>>2],d=E[A+112>>2],C=E[A+76>>2],B=E[A+116>>2],E[A+76>>2]=C+B,E[A+72>>2]=H+d,E[A+68>>2]=b+K,E[s>>2]=h+M,E[A+60>>2]=S+G,E[A+56>>2]=F+N,E[A+52>>2]=n+k,E[A+48>>2]=w+f,E[A+44>>2]=D+p,E[y>>2]=I+g,E[A+36>>2]=B-C,E[A+32>>2]=d-H,E[A+28>>2]=K-b,E[A+24>>2]=M-h,E[A+20>>2]=G-S,E[A+16>>2]=N-F,E[A+12>>2]=k-n,E[A+8>>2]=f-w,E[A+4>>2]=p-D,E[A>>2]=g-I,I=e<<1,g=E[A+156>>2],E[A+156>>2]=I-g,y=r<<1,s=E[A+152>>2],E[A+152>>2]=y-s,D=t<<1,p=E[A+148>>2],E[A+148>>2]=D-p,w=c<<1,f=E[A+144>>2],E[A+144>>2]=w-f,n=_<<1,k=E[A+140>>2],E[A+140>>2]=n-k,F=a<<1,N=E[A+136>>2],E[A+136>>2]=F-N,S=o<<1,G=E[A+132>>2],E[A+132>>2]=S-G,h=i<<1,M=E[A+128>>2],E[A+128>>2]=h-M,b=Q<<1,K=E[A+124>>2],E[A+124>>2]=b-K,H=J<<1,d=E[A+120>>2],E[A+120>>2]=H-d,E[A+112>>2]=y+s,E[A+108>>2]=D+p,E[A+104>>2]=w+f,E[A+100>>2]=n+k,E[A+96>>2]=F+N,E[A+92>>2]=S+G,E[A+88>>2]=h+M,E[A+84>>2]=b+K,E[A+80>>2]=H+d,E[A+116>>2]=I+g}function pA(A,I){var g,C,B,Q,i,o,_,c,t,r,e,y,s,h,D=0,p=0,f=0,n=0,k=0,F=0,N=0,S=0,G=0,M=0,b=0,K=0,H=0;s=a[I+31|0],g=a[I+30|0],C=a[I+29|0],B=a[I+6|0],Q=a[I+5|0],i=a[I+4|0],o=a[I+9|0],_=a[I+8|0],c=a[I+7|0],t=a[I+12|0],b=a[I+11|0],K=a[I+10|0],r=a[I+15|0],H=a[I+14|0],e=a[I+13|0],N=a[I+28|0],M=a[I+27|0],S=a[I+26|0],F=a[I+25|0],n=a[I+24|0],f=a[I+23|0],h=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,k=(p=a[I+21|0])<<15,p=D=p>>>17|0,G=k,G|=(k=a[I+20|0])<<7,k=(D=k>>>25|0)|p,p=(D=a[I+22|0])>>>9|0,D=D<<23|G,p|=k,y=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,I=0,k=D,D=(33554431&(I=(G=y+16777216|0)>>>0<16777216?1:I))<<7|G>>>25,I=(I>>>25|0)+p|0,D=(p=k=k+D|0)>>>0>>0?I+1|0:I,I=(k=p+33554432|0)>>>0<33554432?D+1|0:D,E[A+24>>2]=p-(-67108864&k),D=(p=f>>>27|0)|n>>>19|F>>>11,p=f=(n=F<<21|(f=n<<13|f<<5))+(p=(67108863&(p=I))<<6|k>>>26)|0,I=D,D=(f=n+16777216|0)>>>0<16777216?I+1|0:I,E[A+28>>2]=p-(1040187392&f),p=(D=(I=D)>>>25|0)+(p=M>>>20|S>>>28|N>>>12)|0,I=p=(D=f=(I=(33554431&I)<<7|f>>>25)+(M<<12|S<<4|N<<20)|0)>>>0>>0?p+1|0:p,f=(N=D+33554432|0)>>>0<33554432?I+1|0:I,E[A+32>>2]=D-(-67108864&N),p=t>>>13|(D=b>>>21|K>>>29),I=(p=(M=16777216+(b=b<<11|K<<3|t<<19)|0)>>>0<16777216?p+1|0:p)>>>25|0,p=(D=n=H<<10|e<<2|r<<18)+(n=(33554431&p)<<7|M>>>25)|0,D=I+(F=H>>>22|e>>>30|r>>>14)|0,I=D=p>>>0>>0?D+1|0:D,n=((67108863&(I=(n=p+33554432|0)>>>0<33554432?I+1|0:I))<<6|(D=n)>>>26)+(S=y-(-33554432&G)|0)|0,E[A+20>>2]=n,E[A+16>>2]=p-(-67108864&D),D=Q>>>18|i>>>26|B>>>10,p=(D=(S=16777216+(K=Q<<14|i<<6|B<<22)|0)>>>0<16777216?D+1|0:D)>>>25|0,D=(I=n=_<<13|c<<5|o<<21)+(n=(33554431&D)<<7|S>>>25)|0,I=p+(F=_>>>19|c>>>27|o>>>11)|0,I=D>>>0>>0?I+1|0:I,p=(F=D+33554432|0)>>>0<33554432?I+1|0:I,E[A+8>>2]=D-(-67108864&F),N=(f=(67108863&f)<<6|N>>>26)+(H=s<<18&33292288|g<<10|C<<2)|0,I=D=g>>>22|C>>>30,D=(f=H+16777216|0)>>>0<16777216?I+1|0:I,E[A+36>>2]=N-(33554432&f),p=b+((67108863&p)<<6|F>>>26)|0,E[A+12>>2]=p-(234881024&M),n=K-(2113929216&S)|0,p=Ig((33554431&(I=D))<<7|f>>>25,D=I>>>25|0,19,0),I=w,p=(D=p+h|0)>>>0

>>0?I+1|0:I,f=((67108863&(p=(I=D+33554432|0)>>>0<33554432?p+1|0:p))<<6|I>>>26)+n|0,E[A+4>>2]=f,E[A>>2]=D-(-67108864&I)}function wA(A,I,g,C,B,i,_,c){A|=0,I|=0,g|=0,C|=0,B|=0,i|=0,_|=0;var t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0;A:{I:{g:{C:{B:{Q:{i:{o:{E:{a:{_:{if(1==(-7&(c|=0))){if(e=0,!C)break o;if(4&c)break _;for(;;){e=r;c:{t:{r:{e:{for(;;){if(t=(t=(y=o[g+e|0])-65|0)&((90-y^-1)&(-1^t))>>>8&255|y+4&((y+65488^-1)&(57-y^-1))>>>8&255|y+185&((y+65439^-1)&(122-y^-1))>>>8&255|(1+(16336^y)^-1)>>>8&63|(1+(16340^y)^-1)>>>8&62,255!=(0|(t|=(t-1&1+(65470^y))>>>8&255)))break e;if(t=0,!B)break E;if(!FI(B,y))break;if((e=e+1|0)>>>0>=C>>>0)break r}r=e;break E}if(D=t+(D<<6)|0,s>>>0>1)break t;s=s+6|0;break c}r=(A=r+1|0)>>>0>>0?C:A;break E}if(s=s-2|0,I>>>0<=h>>>0)break a;o[A+h|0]=D>>>s,h=h+1|0}if(t=0,!((r=e+1|0)>>>0>>0))break}break E}yC(),Q()}_:for(;;){for(e=r;;){c:{if(t=(t=(y=o[g+e|0])-65|0)&((90-y^-1)&(-1^t))>>>8&255|y+4&((y+65488^-1)&(57-y^-1))>>>8&255|y+185&((y+65439^-1)&(122-y^-1))>>>8&255|(1+(16288^y)^-1)>>>8&63|(1+(16338^y)^-1)>>>8&62,255==(0|(t|=(t-1&1+(65470^y))>>>8&255))){if(t=0,!B)break E;if(FI(B,y))break c;r=e;break E}if(D=t+(D<<6)|0,s>>>0<2)s=s+6|0;else{if(s=s-2|0,I>>>0<=h>>>0)break a;o[A+h|0]=D>>>s,h=h+1|0}if(t=0,(r=e+1|0)>>>0>>0)continue _;break E}if(!((e=e+1|0)>>>0>>0))break}break}r=(A=r+1|0)>>>0>>0?C:A;break E}r=e,E[9392]=68,t=1}if(s>>>0>4)break i;e=r}if(A=e,I=-1,t){r=A;break A}if((-1<>>0<2){c=A;break B}if(r=A>>>0>C>>>0?A:C,e=s>>>1|0,!B)break Q;for(c=A;;){if((0|c)==(0|r)){t=68;break C}if(61!=(0|(A=o[g+c|0]))){if(!FI(B,A)){t=28,r=c;break C}}else e=e-1|0;if(c=c+1|0,!e)break}break B}I=-1;break A}if(t=68,A>>>0>=C>>>0)break C;if(61!=a[A+g|0]){r=A,t=28;break C}if(c=A+e|0,1!=(0|e)){if((0|(s=A+1|0))==(0|r))break C;if(61!=a[g+s|0]){r=s,t=28;break C}if(2!=(0|e)){if((0|(A=A+2|0))==(0|r))break C;if(t=28,r=A,61!=a[A+g|0])break C}}}if(I=0,B)break g;break I}E[9392]=t;break A}if(!(C>>>0<=c>>>0)){for(;;){if(!FI(B,o[g+c|0]))break I;if((0|(c=c+1|0))==(0|C))break}c=C}}r=c,p=h}return _?E[_>>2]=g+r:(0|C)!=(0|r)&&(E[9392]=28,I=-1),i&&(E[i>>2]=p),0|I}function fA(A,I,g,C){A|=0,I|=0,g|=0;var B=0,Q=0,i=0,E=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,f=0,n=0,k=0,F=0;for((C|=0)?(B=a[C+12|0]|a[C+13|0]<<8|a[C+14|0]<<16|a[C+15|0]<<24,_=a[C+8|0]|a[C+9|0]<<8|a[C+10|0]<<16|a[C+11|0]<<24,c=a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24,C=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24):(B=1797285236,_=2036477234,c=857760878,C=1634760805),Q=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,E=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,i=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,p=a[g+28|0]|a[g+29|0]<<8|a[g+30|0]<<16|a[g+31|0]<<24,D=a[g+24|0]|a[g+25|0]<<8|a[g+26|0]<<16|a[g+27|0]<<24,w=20,s=a[g+20|0]|a[g+21|0]<<8|a[g+22|0]<<16|a[g+23|0]<<24,h=a[g+16|0]|a[g+17|0]<<8|a[g+18|0]<<16|a[g+19|0]<<24,r=a[g+12|0]|a[g+13|0]<<8|a[g+14|0]<<16|a[g+15|0]<<24,e=a[g+8|0]|a[g+9|0]<<8|a[g+10|0]<<16|a[g+11|0]<<24,y=a[g+4|0]|a[g+5|0]<<8|a[g+6|0]<<16|a[g+7|0]<<24,I=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,g=a[0|g]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24;t=Lg(g+c|0,7)^Q,f=Lg(t+c|0,9)^D,r=Lg(C+s|0,7)^r,n=Lg(r+C|0,9)^E,k=Lg(n+r|0,13)^s,e=Lg(B+h|0,7)^e,i=Lg(e+B|0,9)^i,E=Lg(i+e|0,13)^h,B=Lg(i+E|0,18)^B,Q=Lg(I+_|0,7)^p,s=k^Lg(B+Q|0,7),D=f^Lg(s+B|0,9),p=Lg(s+D|0,13)^Q,B=Lg(D+p|0,18)^B,y=Lg(Q+_|0,9)^y,F=Lg(y+Q|0,13)^I,I=Lg(F+y|0,18)^_,h=Lg(I+t|0,7)^E,E=Lg(h+I|0,9)^n,Q=Lg(E+h|0,13)^t,_=Lg(Q+E|0,18)^I,t=Lg(t+f|0,13)^g,g=Lg(t+f|0,18)^c,I=Lg(g+r|0,7)^F,i=Lg(I+g|0,9)^i,r=Lg(I+i|0,13)^r,c=Lg(i+r|0,18)^g,C=Lg(n+k|0,18)^C,g=Lg(C+e|0,7)^t,y=Lg(g+C|0,9)^y,e=Lg(g+y|0,13)^e,C=Lg(y+e|0,18)^C,t=w>>>0>2,w=w-2|0,t;);return o[0|A]=C,o[A+1|0]=C>>>8,o[A+2|0]=C>>>16,o[A+3|0]=C>>>24,o[A+28|0]=Q,o[A+29|0]=Q>>>8,o[A+30|0]=Q>>>16,o[A+31|0]=Q>>>24,o[A+24|0]=E,o[A+25|0]=E>>>8,o[A+26|0]=E>>>16,o[A+27|0]=E>>>24,o[A+20|0]=i,o[A+21|0]=i>>>8,o[A+22|0]=i>>>16,o[A+23|0]=i>>>24,o[A+16|0]=I,o[A+17|0]=I>>>8,o[A+18|0]=I>>>16,o[A+19|0]=I>>>24,o[A+12|0]=B,o[A+13|0]=B>>>8,o[A+14|0]=B>>>16,o[A+15|0]=B>>>24,o[A+8|0]=_,o[A+9|0]=_>>>8,o[A+10|0]=_>>>16,o[A+11|0]=_>>>24,o[A+4|0]=c,o[A+5|0]=c>>>8,o[A+6|0]=c>>>16,o[A+7|0]=c>>>24,0}function nA(A,I,g,C){var B,Q=0,i=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,D=0,p=0,w=0;if(h=B=h-704|0,g|C)if(Q=(C<<3|g>>>29)+(i=_=E[A+76>>2])|0,t=(r=E[A+72>>2])+(c=g<<3)|0,E[A+72>>2]=t,Q=c>>>0>t>>>0?Q+1|0:Q,E[A+76>>2]=Q,_=E[4+(c=A- -64|0)>>2],_=(e=Q=(0|Q)==(0|i)&t>>>0>>0|Q>>>0>>0)>>>0>(Q=Q+E[c>>2]|0)>>>0?_+1|0:_,t=(e=C>>>29|0)+Q|0,Q=_,E[c>>2]=t,E[c+4>>2]=t>>>0>>0?Q+1|0:Q,(0|C)==(0|(_=e=0-((Q=0)+((c=127&((7&i)<<29|r>>>3))>>>0>128)|0)|0))&g>>>0>=(t=128-c|0)>>>0|C>>>0>_>>>0){if(i=0,_=0,!Q&(127^c)>>>0>=3|Q)for(w=252&t,r=A+80|0;o[(Q=i+c|0)+r|0]=a[I+i|0],o[r+(c+(Q=1|i)|0)|0]=a[I+Q|0],o[r+(c+(Q=2|i)|0)|0]=a[I+Q|0],o[r+(c+(Q=3|i)|0)|0]=a[I+Q|0],Q=_,_=(i=i+4|0)>>>0<4?Q+1|0:Q,Q=s,s=Q=(D=D+4|0)>>>0<4?Q+1|0:Q,(0|D)!=(0|w)|(0|p)!=(0|Q););if(r=Q=0,Q|(s=3&t))for(;o[80+(A+(Q=i+c|0)|0)|0]=a[I+i|0],Q=_,_=(i=i+1|0)?Q:Q+1|0,Q=p,p=Q=(y=y+1|0)?Q:Q+1|0,(0|s)!=(0|y)|(0|r)!=(0|Q););if(F(A,A+80|0,B,i=B+640|0),I=I+t|0,!(C=C-((g>>>0>>0)+e|0)|0)&(g=g-t|0)>>>0>127|C)for(;F(A,I,B,i),I=I+128|0,!(C=C-(g>>>0<128)|0)&(g=g-128|0)>>>0>127|C;);if(g|C){if(D=3&g,t=0,y=0,p=0,i=0,_=0,!C&g>>>0>=4|C)for(c=-4&g,r=C,s=A+80|0,g=0,C=0;o[i+s|0]=a[I+i|0],o[(Q=1|i)+s|0]=a[I+Q|0],o[(Q=2|i)+s|0]=a[I+Q|0],o[(Q=3|i)+s|0]=a[I+Q|0],Q=_,_=(i=i+4|0)>>>0<4?Q+1|0:Q,Q=C,C=Q=(g=g+4|0)>>>0<4?Q+1|0:Q,(0|g)!=(0|c)|(0|r)!=(0|Q););if(t|D)for(;o[80+(A+i|0)|0]=a[I+i|0],_=(i=i+1|0)?_:_+1|0,Q=p,p=Q=(y=y+1|0)?Q:Q+1|0,(0|y)!=(0|D)|(0|t)!=(0|Q););}XC(B,704)}else{if(i=0,_=0,!C&g>>>0>=4|C)for(t=-4&g,r=C,C=A+80|0;o[C+(Q=i+c|0)|0]=a[I+i|0],o[C+(e=c+(Q=1|i)|0)|0]=a[I+Q|0],o[C+(e=c+(Q=2|i)|0)|0]=a[I+Q|0],o[C+(e=c+(Q=3|i)|0)|0]=a[I+Q|0],Q=_,_=(i=i+4|0)>>>0<4?Q+1|0:Q,Q=s,s=Q=(D=D+4|0)>>>0<4?Q+1|0:Q,(0|t)!=(0|D)|(0|r)!=(0|Q););if((g&=3)|(C=0))for(;o[80+(A+(Q=i+c|0)|0)|0]=a[I+i|0],_=(i=i+1|0)?_:_+1|0,Q=p,p=Q=(y=y+1|0)?Q:Q+1|0,(0|g)!=(0|y)|(0|C)!=(0|Q););}return h=B+704|0,0}function kA(A,I){var g,C,B,Q,i=0,_=0,c=0,t=0,r=0,e=0;for(h=g=h-480|0;c=(_=g+288|0)+(i<<1)|0,t=a[I+i|0],o[c+1|0]=t>>>4,o[0|c]=15&t,_=_+((c=1|i)<<1)|0,c=a[I+c|0],o[_+1|0]=c>>>4,o[0|_]=15&c,32!=(0|(i=i+2|0)););for(I=0;i=8+(_=(i=I)+a[0|(I=(g+288|0)+r|0)]|0)|0,o[0|I]=_-(240&i),i=8+(_=a[I+1|0]+(i<<24>>24>>4)|0)|0,o[I+1|0]=_-(240&i),i=8+(_=a[I+2|0]+(i<<24>>24>>4)|0)|0,o[I+2|0]=_-(240&i),I=i<<24>>24>>4,63!=(0|(r=r+3|0)););for(o[g+351|0]=a[g+351|0]+I,E[A+32>>2]=0,E[A+36>>2]=0,E[A+24>>2]=0,E[A+28>>2]=0,E[A+16>>2]=0,E[A+20>>2]=0,E[A+8>>2]=0,E[A+12>>2]=0,E[A>>2]=0,E[A+4>>2]=0,E[A+44>>2]=0,E[A+48>>2]=0,E[(I=A+40|0)>>2]=1,E[A+52>>2]=0,E[A+56>>2]=0,E[A+60>>2]=0,E[A+64>>2]=0,E[A+68>>2]=0,E[A+72>>2]=0,E[A+76>>2]=0,E[A+80>>2]=1,Hg(A+84|0,0,76),B=A+120|0,r=A+80|0,_=g+208|0,C=g+168|0,c=g+248|0,i=1;zA(e=g+8|0,i>>>1|0,o[(g+288|0)+i|0]),DA(t=g+128|0,A,e),Y(A,t,c),Y(I,C,_),Y(r,_,c),Y(B,t,C),e=i>>>0<62,i=i+2|0,e;);for(i=E[A+36>>2],E[g+392>>2]=E[A+32>>2],E[g+396>>2]=i,i=E[A+28>>2],E[g+384>>2]=E[A+24>>2],E[g+388>>2]=i,i=E[A+20>>2],E[g+376>>2]=E[A+16>>2],E[g+380>>2]=i,i=E[A+12>>2],E[g+368>>2]=E[A+8>>2],E[g+372>>2]=i,i=E[A+4>>2],E[g+360>>2]=E[A>>2],E[g+364>>2]=i,i=E[I+12>>2],E[g+408>>2]=E[I+8>>2],E[g+412>>2]=i,i=E[I+20>>2],E[g+416>>2]=E[I+16>>2],E[g+420>>2]=i,i=E[I+28>>2],E[g+424>>2]=E[I+24>>2],E[g+428>>2]=i,i=E[I+36>>2],E[g+432>>2]=E[I+32>>2],E[g+436>>2]=i,i=E[I+4>>2],E[g+400>>2]=E[I>>2],E[g+404>>2]=i,i=E[r+12>>2],E[g+448>>2]=E[r+8>>2],E[g+452>>2]=i,i=E[r+20>>2],E[g+456>>2]=E[r+16>>2],E[g+460>>2]=i,i=E[r+28>>2],E[g+464>>2]=E[r+24>>2],E[g+468>>2]=i,i=E[r+36>>2],E[g+472>>2]=E[r+32>>2],E[g+476>>2]=i,i=E[r+4>>2],E[g+440>>2]=E[r>>2],E[g+444>>2]=i,KA(t,i=g+360|0),Y(i,t,c),Y(e=g+400|0,C,_),Y(Q=g+440|0,_,c),KA(t,i),Y(i,t,c),Y(e,C,_),Y(Q,_,c),KA(t,i),Y(i,t,c),Y(e,C,_),Y(Q,_,c),KA(t,i),Y(A,t,c),Y(I,C,_),Y(r,_,c),Y(B,t,C),i=0;zA(e=g+8|0,i>>>1|0,o[(g+288|0)+i|0]),DA(t=g+128|0,A,e),Y(A,t,c),Y(I,C,_),Y(r,_,c),Y(B,t,C),t=i>>>0<62,i=i+2|0,t;);h=g+480|0}function FA(A,I){A|=0;var g,C,B,Q,i,o=0,E=0,a=0,_=0,c=0,t=0;for(h=g=h-736|0,k(c=g+704|0,I|=0,I),k(E=g+224|0,I,c),k(_=g+672|0,I,E),k(a=g+640|0,_,_),k(C=g+416|0,c,a),k(c=g+320|0,I,C),k(o=g+608|0,a,a),k(a=g+288|0,c,c),k(t=g+576|0,C,a),k(i=g+448|0,o,a),k(B=g+544|0,t,t),k(t=g+384|0,o,B),k(Q=g+352|0,E,t),k(E=g+192|0,o,Q),k(o=g+160|0,_,E),k(g+96|0,_,o),k(E=g+512|0,B,Q),k(o=g+480|0,_,E),k(E=g+256|0,i,o),k(g+128|0,a,E),k(a=g- -64|0,t,o),k(o=g+32|0,_,a),k(g,C,o),k(A,c,g),_=0;k(A,A,A),126!=(0|(_=_+1|0)););return k(A,A,g+352|0),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,g+704|0),k(A,A,g),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,g+160|0),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,g),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,g+256|0),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,g- -64|0),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,g+96|0),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,g+320|0),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,g+512|0),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,g+192|0),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,g+480|0),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,g),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,g+128|0),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,A),k(A,A,g+32|0),h=g+736|0,0-NI(I,32)|0}function NA(A,I,g){A|=0;var C,B,Q,i,E=0,_=0,c=0,t=0,r=0;return h=Q=h-160|0,kI(I|=0,g|=0,32,0),o[0|I]=248&a[0|I],o[I+31|0]=63&a[I+31|0]|64,kA(Q,I),tg(A,Q),_=a[(B=g)+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,E=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,c=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,t=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,r=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,g=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,i=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,C=I,I=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,o[C+24|0]=I,o[C+25|0]=I>>>8,o[C+26|0]=I>>>16,o[C+27|0]=I>>>24,o[C+28|0]=i,o[C+29|0]=i>>>8,o[C+30|0]=i>>>16,o[C+31|0]=i>>>24,o[C+16|0]=c,o[C+17|0]=c>>>8,o[C+18|0]=c>>>16,o[C+19|0]=c>>>24,o[C+20|0]=t,o[C+21|0]=t>>>8,o[C+22|0]=t>>>16,o[C+23|0]=t>>>24,o[C+8|0]=_,o[C+9|0]=_>>>8,o[C+10|0]=_>>>16,o[C+11|0]=_>>>24,o[C+12|0]=E,o[C+13|0]=E>>>8,o[C+14|0]=E>>>16,o[C+15|0]=E>>>24,o[0|C]=r,o[C+1|0]=r>>>8,o[C+2|0]=r>>>16,o[C+3|0]=r>>>24,o[C+4|0]=g,o[C+5|0]=g>>>8,o[C+6|0]=g>>>16,o[C+7|0]=g>>>24,c=a[(E=A)+8|0]|a[E+9|0]<<8|a[E+10|0]<<16|a[E+11|0]<<24,t=a[E+12|0]|a[E+13|0]<<8|a[E+14|0]<<16|a[E+15|0]<<24,r=a[E+16|0]|a[E+17|0]<<8|a[E+18|0]<<16|a[E+19|0]<<24,g=a[E+20|0]|a[E+21|0]<<8|a[E+22|0]<<16|a[E+23|0]<<24,I=a[0|E]|a[E+1|0]<<8|a[E+2|0]<<16|a[E+3|0]<<24,A=a[E+4|0]|a[E+5|0]<<8|a[E+6|0]<<16|a[E+7|0]<<24,_=a[E+28|0]|a[E+29|0]<<8|a[E+30|0]<<16|a[E+31|0]<<24,E=a[E+24|0]|a[E+25|0]<<8|a[E+26|0]<<16|a[E+27|0]<<24,o[C+56|0]=E,o[C+57|0]=E>>>8,o[C+58|0]=E>>>16,o[C+59|0]=E>>>24,o[C+60|0]=_,o[C+61|0]=_>>>8,o[C+62|0]=_>>>16,o[C+63|0]=_>>>24,o[C+48|0]=r,o[C+49|0]=r>>>8,o[C+50|0]=r>>>16,o[C+51|0]=r>>>24,o[C+52|0]=g,o[C+53|0]=g>>>8,o[C+54|0]=g>>>16,o[C+55|0]=g>>>24,o[C+40|0]=c,o[C+41|0]=c>>>8,o[C+42|0]=c>>>16,o[C+43|0]=c>>>24,o[C+44|0]=t,o[C+45|0]=t>>>8,o[C+46|0]=t>>>16,o[C+47|0]=t>>>24,o[C+32|0]=I,o[C+33|0]=I>>>8,o[C+34|0]=I>>>16,o[C+35|0]=I>>>24,o[C+36|0]=A,o[C+37|0]=A>>>8,o[C+38|0]=A>>>16,o[C+39|0]=A>>>24,h=Q+160|0,0}function SA(A,I,g){var C,B=0,Q=0,i=0,o=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,f=0,n=0,k=0;s=E[I+4>>2],B=E[A+4>>2],h=E[I+8>>2],Q=E[A+8>>2],D=E[I+12>>2],i=E[A+12>>2],p=E[I+16>>2],o=E[A+16>>2],w=E[I+20>>2],a=E[A+20>>2],f=E[I+24>>2],_=E[A+24>>2],y=E[I+28>>2],c=E[A+28>>2],n=E[I+32>>2],t=E[A+32>>2],k=E[I+36>>2],r=E[A+36>>2],g=0-g|0,e=E[A>>2],E[A>>2]=g&(e^E[I>>2])^e,E[A+36>>2]=r^g&(r^k),E[A+32>>2]=t^g&(t^n),E[A+28>>2]=c^g&(c^y),E[A+24>>2]=_^g&(_^f),E[A+20>>2]=a^g&(a^w),E[A+16>>2]=o^g&(o^p),E[A+12>>2]=i^g&(i^D),E[A+8>>2]=Q^g&(Q^h),E[A+4>>2]=B^g&(B^s),B=E[A+40>>2],s=E[I+40>>2],Q=E[A+44>>2],h=E[I+44>>2],i=E[A+48>>2],D=E[I+48>>2],o=E[A+52>>2],p=E[I+52>>2],a=E[A+56>>2],w=E[I+56>>2],_=E[A+60>>2],f=E[I+60>>2],c=E[(y=A- -64|0)>>2],n=E[I- -64>>2],t=E[A+68>>2],k=E[I+68>>2],r=E[A+72>>2],e=E[I+72>>2],C=E[A+76>>2],E[A+76>>2]=C^g&(E[I+76>>2]^C),E[A+72>>2]=r^g&(r^e),E[A+68>>2]=t^g&(t^k),E[y>>2]=c^g&(c^n),E[A+60>>2]=_^g&(_^f),E[A+56>>2]=a^g&(a^w),E[A+52>>2]=o^g&(o^p),E[A+48>>2]=i^g&(i^D),E[A+44>>2]=Q^g&(Q^h),E[A+40>>2]=B^g&(B^s),B=E[A+80>>2],s=E[I+80>>2],Q=E[A+84>>2],h=E[I+84>>2],i=E[A+88>>2],D=E[I+88>>2],o=E[A+92>>2],p=E[I+92>>2],a=E[A+96>>2],w=E[I+96>>2],_=E[A+100>>2],f=E[I+100>>2],c=E[A+104>>2],y=E[I+104>>2],t=E[A+108>>2],n=E[I+108>>2],r=E[A+112>>2],k=E[I+112>>2],e=E[A+116>>2],E[A+116>>2]=g&(e^E[I+116>>2])^e,E[A+112>>2]=r^g&(r^k),E[A+108>>2]=t^g&(t^n),E[A+104>>2]=c^g&(c^y),E[A+100>>2]=_^g&(_^f),E[A+96>>2]=a^g&(a^w),E[A+92>>2]=o^g&(o^p),E[A+88>>2]=i^g&(i^D),E[A+84>>2]=Q^g&(Q^h),E[A+80>>2]=B^g&(B^s),B=E[A+120>>2],s=E[I+120>>2],Q=E[A+124>>2],h=E[I+124>>2],i=E[A+128>>2],D=E[I+128>>2],o=E[A+132>>2],p=E[I+132>>2],a=E[A+136>>2],w=E[I+136>>2],_=E[A+140>>2],f=E[I+140>>2],c=E[A+144>>2],y=E[I+144>>2],t=E[A+148>>2],n=E[I+148>>2],r=E[A+152>>2],k=E[I+152>>2],e=E[I+156>>2],I=E[A+156>>2],E[A+156>>2]=g&(e^I)^I,E[A+152>>2]=r^g&(r^k),E[A+148>>2]=t^g&(t^n),E[A+144>>2]=c^g&(c^y),E[A+140>>2]=_^g&(_^f),E[A+136>>2]=a^g&(a^w),E[A+132>>2]=o^g&(o^p),E[A+128>>2]=i^g&(i^D),E[A+124>>2]=Q^g&(Q^h),E[A+120>>2]=B^g&(B^s)}function GA(A,I,g){var C,B,Q=0,i=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,D=0,p=0,w=0,f=0,n=0,k=0,F=0,N=0,S=0;return h=C=h-320|0,v(Q=C+240|0,g),Y(Q,Q,g),v(A,Q),Y(A,A,g),Y(A,A,I),PA(A,A),Y(A,A,Q),Y(A,A,I),v(Q=C+192|0,A),Y(Q,Q,g),i=E[I+4>>2],s=E[I+8>>2],p=E[I+12>>2],w=E[I+16>>2],f=E[I+20>>2],n=E[I+24>>2],k=E[I+28>>2],F=E[I+32>>2],N=E[I>>2],g=E[C+192>>2],Q=E[C+196>>2],a=E[C+200>>2],_=E[C+204>>2],c=E[C+208>>2],t=E[C+212>>2],r=E[C+216>>2],e=E[C+220>>2],y=E[C+224>>2],D=E[C+228>>2],S=E[I+36>>2],E[C+180>>2]=D-S,E[C+176>>2]=y-F,E[C+172>>2]=e-k,E[C+168>>2]=r-n,E[C+164>>2]=t-f,E[C+160>>2]=c-w,E[C+156>>2]=_-p,E[C+152>>2]=a-s,E[C+148>>2]=Q-i,E[C+144>>2]=g-N,E[C+132>>2]=D+S,E[C+128>>2]=y+F,E[C+124>>2]=e+k,E[C+120>>2]=r+n,E[C+116>>2]=t+f,E[C+112>>2]=c+w,E[C+108>>2]=_+p,E[C+104>>2]=a+s,E[C+100>>2]=Q+i,E[C+96>>2]=g+N,Y(i=C+48|0,I,1648),E[C+84>>2]=D+E[C+84>>2],E[C+80>>2]=y+E[C+80>>2],E[C+76>>2]=e+E[C+76>>2],E[C+72>>2]=r+E[C+72>>2],E[C+68>>2]=t+E[C+68>>2],E[C+64>>2]=c+E[C+64>>2],E[C+60>>2]=_+E[C+60>>2],E[C+56>>2]=a+E[C+56>>2],E[C+52>>2]=Q+E[C+52>>2],E[C+48>>2]=g+E[C+48>>2],BI(C,C+144|0),p=NI(C,32),BI(C,C+96|0),s=NI(C,32),BI(C,i),I=NI(C,32),Y(C,A,1648),y=E[A+4>>2],e=E[A+8>>2],r=E[A+12>>2],t=E[A+16>>2],c=E[A+20>>2],_=E[A+24>>2],a=E[A+28>>2],Q=E[A+32>>2],i=E[A>>2],w=E[C>>2],f=E[C+4>>2],n=E[C+8>>2],k=E[C+12>>2],F=E[C+16>>2],N=E[C+20>>2],D=E[C+24>>2],S=E[C+28>>2],B=E[C+32>>2],g=(I=0-(I|s)|0)&((g=E[A+36>>2])^E[C+36>>2])^g,E[A+36>>2]=g,Q^=I&(Q^B),E[A+32>>2]=Q,a^=I&(a^S),E[A+28>>2]=a,_^=I&(_^D),E[A+24>>2]=_,c^=I&(c^N),E[A+20>>2]=c,t^=I&(t^F),E[A+16>>2]=t,r^=I&(r^k),E[A+12>>2]=r,e^=I&(e^n),E[A+8>>2]=e,y^=I&(y^f),E[A+4>>2]=y,i^=I&(i^w),E[A>>2]=i,BI(C+288|0,A),I=0-(1&o[C+288|0])|0,E[A+36>>2]=g^I&(g^0-g),E[A+32>>2]=Q^I&(Q^0-Q),E[A+28>>2]=a^I&(a^0-a),E[A+24>>2]=_^I&(_^0-_),E[A+20>>2]=c^I&(c^0-c),E[A+16>>2]=t^I&(t^0-t),E[A+12>>2]=r^I&(r^0-r),E[A+8>>2]=e^I&(e^0-e),E[A+4>>2]=y^I&(y^0-y),E[A>>2]=i^I&(i^0-i),h=C+320|0,s|p}function MA(A,I,g,C){var B,Q=0,i=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,D=0,p=0,w=0;if(h=B=h-288|0,g|C)if(Q=(i=E[A+36>>2])+(C<<3|g>>>29)|0,_=(r=E[A+32>>2])+(c=g<<3)|0,E[A+32>>2]=_,E[A+36>>2]=_>>>0>>0?Q+1|0:Q,c=64-(_=t=63&((7&i)<<29|r>>>3))|0,(0|C)==(0|(_=D=0-((Q=0)+(_>>>0>64)|0)|0))&g>>>0>=c>>>0|C>>>0>_>>>0){if(i=0,_=0,!Q&(63^t)>>>0>=3|Q)for(w=124&c,r=A+40|0;o[(Q=i+t|0)+r|0]=a[I+i|0],o[r+(t+(Q=1|i)|0)|0]=a[I+Q|0],o[r+(t+(Q=2|i)|0)|0]=a[I+Q|0],o[r+(t+(Q=3|i)|0)|0]=a[I+Q|0],Q=_,_=(i=i+4|0)>>>0<4?Q+1|0:Q,Q=y,y=Q=(s=s+4|0)>>>0<4?Q+1|0:Q,(0|s)!=(0|w)|(0|p)!=(0|Q););if(r=Q=0,Q|(y=3&c))for(;o[40+(A+(Q=i+t|0)|0)|0]=a[I+i|0],Q=_,_=(i=i+1|0)?Q:Q+1|0,Q=p,p=Q=(e=e+1|0)?Q:Q+1|0,(0|y)!=(0|e)|(0|r)!=(0|Q););if(J(A,A+40|0,B,i=B+256|0),I=I+c|0,!(C=C-((g>>>0>>0)+D|0)|0)&(g=g-c|0)>>>0>63|C)for(;J(A,I,B,i),I=I- -64|0,Q=C-1|0,!(C=(g=g+-64|0)>>>0<4294967232?Q+1|0:Q)&g>>>0>63|C;);if(g|C){if(s=3&g,c=0,e=0,p=0,i=0,_=0,!C&g>>>0>=4|C)for(t=-4&g,r=C,y=A+40|0,g=0,C=0;o[i+y|0]=a[I+i|0],o[(Q=1|i)+y|0]=a[I+Q|0],o[(Q=2|i)+y|0]=a[I+Q|0],o[(Q=3|i)+y|0]=a[I+Q|0],Q=_,_=(i=i+4|0)>>>0<4?Q+1|0:Q,Q=C,C=Q=(g=g+4|0)>>>0<4?Q+1|0:Q,(0|g)!=(0|t)|(0|r)!=(0|Q););if(c|s)for(;o[40+(A+i|0)|0]=a[I+i|0],_=(i=i+1|0)?_:_+1|0,Q=p,p=Q=(e=e+1|0)?Q:Q+1|0,(0|e)!=(0|s)|(0|c)!=(0|Q););}XC(B,288)}else{if(i=0,_=0,!C&g>>>0>=4|C)for(c=-4&g,r=C,C=A+40|0;o[C+(Q=i+t|0)|0]=a[I+i|0],o[C+(D=t+(Q=1|i)|0)|0]=a[I+Q|0],o[C+(D=t+(Q=2|i)|0)|0]=a[I+Q|0],o[C+(D=t+(Q=3|i)|0)|0]=a[I+Q|0],Q=_,_=(i=i+4|0)>>>0<4?Q+1|0:Q,Q=y,y=Q=(s=s+4|0)>>>0<4?Q+1|0:Q,(0|c)!=(0|s)|(0|r)!=(0|Q););if((g&=3)|(C=0))for(;o[40+(A+(Q=i+t|0)|0)|0]=a[I+i|0],_=(i=i+1|0)?_:_+1|0,Q=p,p=Q=(e=e+1|0)?Q:Q+1|0,(0|g)!=(0|e)|(0|C)!=(0|Q););}return h=B+288|0,0}function bA(A,I){var g,C,B,Q,i=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,D=0,p=0,w=0,f=0,n=0,k=0,F=0,N=0,S=0,G=0,M=0,b=0;return h=g=h-320|0,pA(C=A+40|0,I),E[A+84>>2]=0,E[A+88>>2]=0,E[A+80>>2]=1,E[A+92>>2]=0,E[A+96>>2]=0,E[A+100>>2]=0,E[A+104>>2]=0,E[A+108>>2]=0,E[A+112>>2]=0,E[A+116>>2]=0,v(i=g+240|0,C),Y(_=g+192|0,i,1600),E[g+192>>2]=E[g+192>>2]+1,c=E[g+240>>2]-1|0,E[g+240>>2]=c,t=E[g+244>>2],r=E[g+248>>2],e=E[g+252>>2],y=E[g+256>>2],s=E[g+260>>2],D=E[g+264>>2],p=E[g+268>>2],w=E[g+272>>2],f=E[g+276>>2],Y(A,i,_),PA(A,A),Y(A,i,A),v(i=g+144|0,A),Y(i,i,_),i=E[g+180>>2],E[g+132>>2]=i-f,_=E[g+176>>2],E[g+128>>2]=_-w,n=E[g+172>>2],E[g+124>>2]=n-p,k=E[g+168>>2],E[g+120>>2]=k-D,F=E[g+164>>2],E[g+116>>2]=F-s,N=E[g+160>>2],E[g+112>>2]=N-y,S=E[g+156>>2],E[g+108>>2]=S-e,G=E[g+152>>2],E[g+104>>2]=G-r,M=E[g+148>>2],E[g+100>>2]=M-t,b=E[g+144>>2],E[g+96>>2]=b-c,E[g+84>>2]=i+f,E[g+80>>2]=_+w,E[g+76>>2]=p+n,E[g+72>>2]=D+k,E[g+68>>2]=s+F,E[g+64>>2]=y+N,E[g+60>>2]=e+S,E[g+56>>2]=r+G,E[g+52>>2]=t+M,E[g+48>>2]=c+b,BI(g,g+96|0),w=NI(g,32),BI(g,g+48|0),n=NI(g,32),Y(g,A,1648),p=E[A+4>>2],D=E[A+8>>2],s=E[A+12>>2],y=E[A+16>>2],e=E[A+20>>2],r=E[A+24>>2],t=E[A+28>>2],c=E[A+32>>2],f=E[A>>2],k=E[g>>2],F=E[g+4>>2],N=E[g+8>>2],S=E[g+12>>2],G=E[g+16>>2],M=E[g+20>>2],b=E[g+24>>2],B=E[g+28>>2],Q=E[g+32>>2],_=(i=w-1|0)&((_=E[A+36>>2])^E[g+36>>2])^_,E[A+36>>2]=_,c^=i&(c^Q),E[A+32>>2]=c,t^=i&(t^B),E[A+28>>2]=t,r^=i&(r^b),E[A+24>>2]=r,e^=i&(e^M),E[A+20>>2]=e,y^=i&(y^G),E[A+16>>2]=y,s^=i&(s^S),E[A+12>>2]=s,D^=i&(D^N),E[A+8>>2]=D,p^=i&(p^F),E[A+4>>2]=p,i=f^i&(f^k),E[A>>2]=i,BI(g+288|0,A),I=0-(1&o[g+288|0]^a[I+31|0]>>>7)|0,E[A+36>>2]=_^I&(_^0-_),E[A+32>>2]=c^I&(c^0-c),E[A+28>>2]=t^I&(t^0-t),E[A+24>>2]=r^I&(r^0-r),E[A+20>>2]=e^I&(e^0-e),E[A+16>>2]=y^I&(y^0-y),E[A+12>>2]=s^I&(s^0-s),E[A+8>>2]=D^I&(D^0-D),E[A+4>>2]=p^I&(p^0-p),E[A>>2]=i^I&(i^0-i),Y(A+120|0,A,C),h=g+320|0,(w|n)-1|0}function KA(A,I){var g,C,B,Q,i,o,a,_,c,t,r,e,y,s=0,D=0,p=0,w=0,f=0,n=0,k=0,F=0,N=0,S=0,G=0,M=0,b=0,K=0,H=0,Y=0,d=0,J=0,U=0;h=g=h-48|0,v(A,I),v(A+80|0,I+40|0),R(A+120|0,I+80|0),n=E[I+40>>2],D=E[I+44>>2],s=E[I+4>>2],p=E[I+48>>2],k=E[I+8>>2],w=E[I+52>>2],F=E[I+12>>2],f=E[I+56>>2],b=E[I+16>>2],N=E[I+60>>2],K=E[I+20>>2],S=E[I- -64>>2],H=E[I+24>>2],G=E[I+68>>2],Y=E[I+28>>2],M=E[I+72>>2],d=E[I+32>>2],U=E[I>>2],E[A+76>>2]=E[I+76>>2]+E[I+36>>2],E[A+72>>2]=M+d,E[A+68>>2]=G+Y,E[(C=A- -64|0)>>2]=S+H,E[A+60>>2]=N+K,E[A+56>>2]=f+b,E[A+52>>2]=w+F,E[A+48>>2]=p+k,E[A+44>>2]=D+s,E[(I=A+40|0)>>2]=n+U,v(g,I),n=E[A+80>>2],D=E[A+4>>2],s=E[A+84>>2],p=E[A+8>>2],k=E[A+88>>2],w=E[A+12>>2],F=E[A+92>>2],f=E[A+16>>2],b=E[A+96>>2],N=E[A+20>>2],K=E[A+100>>2],S=E[A+24>>2],H=E[A+104>>2],G=E[A+28>>2],Y=E[A+108>>2],M=E[A+32>>2],d=E[A+112>>2],U=E[A>>2],Q=(J=E[A+116>>2])-(B=E[A+36>>2])|0,E[A+116>>2]=Q,i=d-M|0,E[A+112>>2]=i,o=Y-G|0,E[A+108>>2]=o,a=H-S|0,E[A+104>>2]=a,_=K-N|0,E[A+100>>2]=_,c=b-f|0,E[A+96>>2]=c,t=F-w|0,E[A+92>>2]=t,r=k-p|0,E[A+88>>2]=r,e=s-D|0,E[A+84>>2]=e,y=n-U|0,E[A+80>>2]=y,J=J+B|0,E[A+76>>2]=J,M=M+d|0,E[A+72>>2]=M,G=G+Y|0,E[A+68>>2]=G,S=S+H|0,E[C>>2]=S,N=N+K|0,E[A+60>>2]=N,f=f+b|0,E[A+56>>2]=f,w=w+F|0,E[A+52>>2]=w,p=p+k|0,E[A+48>>2]=p,D=D+s|0,E[A+44>>2]=D,s=I,I=n+U|0,E[s>>2]=I,n=E[g>>2],s=E[g+4>>2],k=E[g+8>>2],F=E[g+12>>2],b=E[g+16>>2],K=E[g+20>>2],H=E[g+24>>2],Y=E[g+28>>2],d=E[g+32>>2],E[A+36>>2]=E[g+36>>2]-J,E[A+32>>2]=d-M,E[A+28>>2]=Y-G,E[A+24>>2]=H-S,E[A+20>>2]=K-N,E[A+16>>2]=b-f,E[A+12>>2]=F-w,E[A+8>>2]=k-p,E[A+4>>2]=s-D,E[A>>2]=n-I,I=E[A+120>>2],n=E[A+124>>2],D=E[A+128>>2],s=E[A+132>>2],p=E[A+136>>2],k=E[A+140>>2],w=E[A+144>>2],F=E[A+148>>2],f=E[A+152>>2],E[A+156>>2]=E[A+156>>2]-Q,E[A+152>>2]=f-i,E[A+148>>2]=F-o,E[A+144>>2]=w-a,E[A+140>>2]=k-_,E[A+136>>2]=p-c,E[A+132>>2]=s-t,E[A+128>>2]=D-r,E[A+124>>2]=n-e,E[A+120>>2]=I-y,h=g+48|0}function HA(A,I,g){var C,B,Q,i,o,a,_,c,t=0;h=C=h-160|0,E[A>>2]=1,E[A+4>>2]=0,E[A+8>>2]=0,E[A+12>>2]=0,E[A+16>>2]=0,E[A+20>>2]=0,E[A+24>>2]=0,E[A+28>>2]=0,E[A+32>>2]=0,E[A+44>>2]=0,E[A+48>>2]=0,E[A+36>>2]=0,E[A+40>>2]=1,E[A+52>>2]=0,E[A+56>>2]=0,E[A+60>>2]=0,E[A+64>>2]=0,E[A+68>>2]=0,E[A+72>>2]=0,E[A+76>>2]=0,E[A+80>>2]=1,Hg(A+84|0,0,76),SA(A,I,(255&(1^(t=g-((g>>31&g)<<1)|0)))-1>>>31|0),SA(A,I+160|0,(255&(2^t))-1>>>31|0),SA(A,I+320|0,(255&(3^t))-1>>>31|0),SA(A,I+480|0,(255&(4^t))-1>>>31|0),SA(A,I+640|0,(255&(5^t))-1>>>31|0),SA(A,I+800|0,(255&(6^t))-1>>>31|0),SA(A,I+960|0,(255&(7^t))-1>>>31|0),SA(A,I+1120|0,(255&(8^t))-1>>>31|0),I=E[A+76>>2],E[C+32>>2]=E[A+72>>2],E[C+36>>2]=I,t=E[4+(I=A- -64|0)>>2],E[C+24>>2]=E[I>>2],E[C+28>>2]=t,I=E[A+60>>2],E[C+16>>2]=E[A+56>>2],E[C+20>>2]=I,I=E[A+52>>2],E[C+8>>2]=E[A+48>>2],E[C+12>>2]=I,I=E[A+44>>2],E[C>>2]=E[A+40>>2],E[C+4>>2]=I,I=E[A+36>>2],E[C+72>>2]=E[A+32>>2],E[C+76>>2]=I,t=E[A+28>>2],E[(I=C- -64|0)>>2]=E[A+24>>2],E[I+4>>2]=t,I=E[A+20>>2],E[C+56>>2]=E[A+16>>2],E[C+60>>2]=I,I=E[A+12>>2],E[C+48>>2]=E[A+8>>2],E[C+52>>2]=I,I=E[A+4>>2],E[C+40>>2]=E[A>>2],E[C+44>>2]=I,I=E[A+92>>2],E[C+88>>2]=E[A+88>>2],E[C+92>>2]=I,I=E[A+100>>2],E[C+96>>2]=E[A+96>>2],E[C+100>>2]=I,I=E[A+108>>2],E[C+104>>2]=E[A+104>>2],E[C+108>>2]=I,I=E[A+116>>2],E[C+112>>2]=E[A+112>>2],E[C+116>>2]=I,I=E[A+84>>2],E[C+80>>2]=E[A+80>>2],E[C+84>>2]=I,I=E[A+120>>2],t=E[A+124>>2],B=E[A+128>>2],Q=E[A+132>>2],i=E[A+136>>2],o=E[A+140>>2],a=E[A+144>>2],_=E[A+148>>2],c=E[A+152>>2],E[C+156>>2]=0-E[A+156>>2],E[C+152>>2]=0-c,E[C+148>>2]=0-_,E[C+144>>2]=0-a,E[C+140>>2]=0-o,E[C+136>>2]=0-i,E[C+132>>2]=0-Q,E[C+128>>2]=0-B,E[C+124>>2]=0-t,E[C+120>>2]=0-I,SA(A,C,(128&g)>>>7|0),h=C+160|0}function YA(A,I){A|=0,I|=0;var g,C,B,Q,i,_=0,c=0,t=0;return h=c=h-192|0,ag(c,32),kI(I,c,32,0),o[0|I]=248&a[0|I],o[I+31|0]=63&a[I+31|0]|64,kA(t=c+32|0,I),tg(A,t),g=c,t=E[c+28>>2],c=E[c+24>>2],o[I+24|0]=c,o[I+25|0]=c>>>8,o[I+26|0]=c>>>16,o[I+27|0]=c>>>24,o[I+28|0]=t,o[I+29|0]=t>>>8,o[I+30|0]=t>>>16,o[I+31|0]=t>>>24,t=E[g+20>>2],c=E[g+16>>2],o[I+16|0]=c,o[I+17|0]=c>>>8,o[I+18|0]=c>>>16,o[I+19|0]=c>>>24,o[I+20|0]=t,o[I+21|0]=t>>>8,o[I+22|0]=t>>>16,o[I+23|0]=t>>>24,t=E[g+12>>2],c=E[g+8>>2],o[I+8|0]=c,o[I+9|0]=c>>>8,o[I+10|0]=c>>>16,o[I+11|0]=c>>>24,o[I+12|0]=t,o[I+13|0]=t>>>8,o[I+14|0]=t>>>16,o[I+15|0]=t>>>24,t=E[g+4>>2],c=E[g>>2],o[0|I]=c,o[I+1|0]=c>>>8,o[I+2|0]=c>>>16,o[I+3|0]=c>>>24,o[I+4|0]=t,o[I+5|0]=t>>>8,o[I+6|0]=t>>>16,o[I+7|0]=t>>>24,C=a[(_=A)+8|0]|a[_+9|0]<<8|a[_+10|0]<<16|a[_+11|0]<<24,B=a[_+12|0]|a[_+13|0]<<8|a[_+14|0]<<16|a[_+15|0]<<24,Q=a[_+16|0]|a[_+17|0]<<8|a[_+18|0]<<16|a[_+19|0]<<24,t=a[_+20|0]|a[_+21|0]<<8|a[_+22|0]<<16|a[_+23|0]<<24,c=a[0|_]|a[_+1|0]<<8|a[_+2|0]<<16|a[_+3|0]<<24,A=a[_+4|0]|a[_+5|0]<<8|a[_+6|0]<<16|a[_+7|0]<<24,i=a[_+28|0]|a[_+29|0]<<8|a[_+30|0]<<16|a[_+31|0]<<24,_=a[_+24|0]|a[_+25|0]<<8|a[_+26|0]<<16|a[_+27|0]<<24,o[I+56|0]=_,o[I+57|0]=_>>>8,o[I+58|0]=_>>>16,o[I+59|0]=_>>>24,o[I+60|0]=i,o[I+61|0]=i>>>8,o[I+62|0]=i>>>16,o[I+63|0]=i>>>24,o[I+48|0]=Q,o[I+49|0]=Q>>>8,o[I+50|0]=Q>>>16,o[I+51|0]=Q>>>24,o[I+52|0]=t,o[I+53|0]=t>>>8,o[I+54|0]=t>>>16,o[I+55|0]=t>>>24,o[I+40|0]=C,o[I+41|0]=C>>>8,o[I+42|0]=C>>>16,o[I+43|0]=C>>>24,o[I+44|0]=B,o[I+45|0]=B>>>8,o[I+46|0]=B>>>16,o[I+47|0]=B>>>24,o[I+32|0]=c,o[I+33|0]=c>>>8,o[I+34|0]=c>>>16,o[I+35|0]=c>>>24,o[I+36|0]=A,o[I+37|0]=A>>>8,o[I+38|0]=A>>>16,o[I+39|0]=A>>>24,XC(g,32),h=g+192|0,0}function dA(A,I){I|=0;var g,C,B=0,Q=0,i=0,a=0;return h=g=h-288|0,Q=40+((B=E[32+(A|=0)>>2]>>>3&63)+A|0)|0,B>>>0>=56?(Sg(Q,34688,64-B|0),J(A,A+40|0,g,g+256|0),E[A+88>>2]=0,E[A+92>>2]=0,E[A+80>>2]=0,E[A+84>>2]=0,E[A+72>>2]=0,E[A+76>>2]=0,E[(B=A- -64|0)>>2]=0,E[B+4>>2]=0,E[A+56>>2]=0,E[A+60>>2]=0,E[A+48>>2]=0,E[A+52>>2]=0,E[A+40>>2]=0,E[A+44>>2]=0):Sg(Q,34688,56-B|0),i=(B=16711680&(Q=E[A+32>>2]))>>>8|0,a=B<<24,C=(B=-16777216&Q)>>>24|0,B=(a|=B<<8)|-16777216&((255&(B=E[A+36>>2]))<<24|Q>>>8)|16711680&((16777215&B)<<8|Q>>>24)|B>>>8&65280|B>>>24,o[A+96|0]=B,o[A+97|0]=B>>>8,o[A+98|0]=B>>>16,o[A+99|0]=B>>>24,B=(B=i|C|Q<<24|(65280&Q)<<8)|(i=0)|i,o[A+100|0]=B,o[A+101|0]=B>>>8,o[A+102|0]=B>>>16,o[A+103|0]=B>>>24,J(A,A+40|0,g,g+256|0),B=(B=E[A>>2])<<24|(65280&B)<<8|B>>>8&65280|B>>>24,o[0|I]=B,o[I+1|0]=B>>>8,o[I+2|0]=B>>>16,o[I+3|0]=B>>>24,B=(B=E[A+4>>2])<<24|(65280&B)<<8|B>>>8&65280|B>>>24,o[I+4|0]=B,o[I+5|0]=B>>>8,o[I+6|0]=B>>>16,o[I+7|0]=B>>>24,B=(B=E[A+8>>2])<<24|(65280&B)<<8|B>>>8&65280|B>>>24,o[I+8|0]=B,o[I+9|0]=B>>>8,o[I+10|0]=B>>>16,o[I+11|0]=B>>>24,B=(B=E[A+12>>2])<<24|(65280&B)<<8|B>>>8&65280|B>>>24,o[I+12|0]=B,o[I+13|0]=B>>>8,o[I+14|0]=B>>>16,o[I+15|0]=B>>>24,B=(B=E[A+16>>2])<<24|(65280&B)<<8|B>>>8&65280|B>>>24,o[I+16|0]=B,o[I+17|0]=B>>>8,o[I+18|0]=B>>>16,o[I+19|0]=B>>>24,B=(B=E[A+20>>2])<<24|(65280&B)<<8|B>>>8&65280|B>>>24,o[I+20|0]=B,o[I+21|0]=B>>>8,o[I+22|0]=B>>>16,o[I+23|0]=B>>>24,B=(B=E[A+24>>2])<<24|(65280&B)<<8|B>>>8&65280|B>>>24,o[I+24|0]=B,o[I+25|0]=B>>>8,o[I+26|0]=B>>>16,o[I+27|0]=B>>>24,B=(B=E[A+28>>2])<<24|(65280&B)<<8|B>>>8&65280|B>>>24,o[I+28|0]=B,o[I+29|0]=B>>>8,o[I+30|0]=B>>>16,o[I+31|0]=B>>>24,XC(g,288),XC(A,104),h=g+288|0,0}function JA(A,I){A|=0;var g,C=0;h=g=h+-64|0,C=a[60+(I|=0)|0]|a[I+61|0]<<8|a[I+62|0]<<16|a[I+63|0]<<24,E[g+56>>2]=a[I+56|0]|a[I+57|0]<<8|a[I+58|0]<<16|a[I+59|0]<<24,E[g+60>>2]=C,C=a[I+52|0]|a[I+53|0]<<8|a[I+54|0]<<16|a[I+55|0]<<24,E[g+48>>2]=a[I+48|0]|a[I+49|0]<<8|a[I+50|0]<<16|a[I+51|0]<<24,E[g+52>>2]=C,C=a[I+44|0]|a[I+45|0]<<8|a[I+46|0]<<16|a[I+47|0]<<24,E[g+40>>2]=a[I+40|0]|a[I+41|0]<<8|a[I+42|0]<<16|a[I+43|0]<<24,E[g+44>>2]=C,C=a[I+36|0]|a[I+37|0]<<8|a[I+38|0]<<16|a[I+39|0]<<24,E[g+32>>2]=a[I+32|0]|a[I+33|0]<<8|a[I+34|0]<<16|a[I+35|0]<<24,E[g+36>>2]=C,C=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,E[g+24>>2]=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,E[g+28>>2]=C,C=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,E[g+16>>2]=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,E[g+20>>2]=C,C=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,E[g>>2]=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,E[g+4>>2]=C,C=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,E[g+8>>2]=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,E[g+12>>2]=C,N(g),I=E[g+28>>2],C=E[g+24>>2],o[A+24|0]=C,o[A+25|0]=C>>>8,o[A+26|0]=C>>>16,o[A+27|0]=C>>>24,o[A+28|0]=I,o[A+29|0]=I>>>8,o[A+30|0]=I>>>16,o[A+31|0]=I>>>24,I=E[g+20>>2],C=E[g+16>>2],o[A+16|0]=C,o[A+17|0]=C>>>8,o[A+18|0]=C>>>16,o[A+19|0]=C>>>24,o[A+20|0]=I,o[A+21|0]=I>>>8,o[A+22|0]=I>>>16,o[A+23|0]=I>>>24,I=E[g+12>>2],C=E[g+8>>2],o[A+8|0]=C,o[A+9|0]=C>>>8,o[A+10|0]=C>>>16,o[A+11|0]=C>>>24,o[A+12|0]=I,o[A+13|0]=I>>>8,o[A+14|0]=I>>>16,o[A+15|0]=I>>>24,I=E[g+4>>2],C=E[g>>2],o[0|A]=C,o[A+1|0]=C>>>8,o[A+2|0]=C>>>16,o[A+3|0]=C>>>24,o[A+4|0]=I,o[A+5|0]=I>>>8,o[A+6|0]=I>>>16,o[A+7|0]=I>>>24,XC(g,64),h=g- -64|0}function UA(A,I,g){A|=0,I|=0;var C,B=0,Q=0,i=0,_=0,c=0,t=0,r=0,e=0;if(h=C=h-96|0,(g|=0)>>>0>=65&&($I(A),MA(A,I,g,0),dA(A,C),g=32,I=C),$I(A),E[C+88>>2]=909522486,E[C+92>>2]=909522486,E[C+80>>2]=909522486,E[C+84>>2]=909522486,E[C+72>>2]=909522486,E[C+76>>2]=909522486,E[(i=r=C- -64|0)>>2]=909522486,E[i+4>>2]=909522486,E[C+56>>2]=909522486,E[C+60>>2]=909522486,E[C+48>>2]=909522486,E[C+52>>2]=909522486,E[C+40>>2]=909522486,E[C+44>>2]=909522486,E[C+32>>2]=909522486,E[C+36>>2]=909522486,g){if(g>>>0>=4)for(_=124&g;o[0|(Q=(i=C+32|0)+B|0)]=a[0|Q]^a[I+B|0],o[0|(e=(Q=1|B)+i|0)]=a[0|e]^a[I+Q|0],o[0|(e=(Q=2|B)+i|0)]=a[0|e]^a[I+Q|0],o[0|(Q=(Q=i)+(i=3|B)|0)]=a[0|Q]^a[I+i|0],B=B+4|0,(0|_)!=(0|(c=c+4|0)););if(c=3&g)for(;o[0|(i=(C+32|0)+B|0)]=a[0|i]^a[I+B|0],B=B+1|0,(0|c)!=(0|(t=t+1|0)););}if(MA(A,C+32|0,64,0),$I(i=A+104|0),E[C+88>>2]=1549556828,E[C+92>>2]=1549556828,E[C+80>>2]=1549556828,E[C+84>>2]=1549556828,E[C+72>>2]=1549556828,E[C+76>>2]=1549556828,E[r>>2]=1549556828,E[r+4>>2]=1549556828,E[C+56>>2]=1549556828,E[C+60>>2]=1549556828,E[C+48>>2]=1549556828,E[C+52>>2]=1549556828,E[C+40>>2]=1549556828,E[C+44>>2]=1549556828,E[C+32>>2]=1549556828,E[C+36>>2]=1549556828,g){if(t=0,B=0,g>>>0>=4)for(r=124&g,c=0;o[0|(_=(A=C+32|0)+B|0)]=a[0|_]^a[I+B|0],o[0|(Q=(_=1|B)+A|0)]=a[0|Q]^a[I+_|0],o[0|(Q=(_=2|B)+A|0)]=a[0|Q]^a[I+_|0],o[0|(_=(Q=A)+(A=3|B)|0)]=a[0|_]^a[A+I|0],B=B+4|0,(0|r)!=(0|(c=c+4|0)););if(A=3&g)for(;o[0|(g=(C+32|0)+B|0)]=a[0|g]^a[I+B|0],B=B+1|0,(0|A)!=(0|(t=t+1|0)););}return MA(i,A=C+32|0,64,0),XC(A,64),XC(C,32),h=C+96|0,0}function lA(A,I,g,C,B,i,o){var a=0,_=0,c=0,t=0,r=0,e=0,y=0;if(I-65>>>0<4294967232|o>>>0>64)A=-1;else{e=a=h,h=a=a-512&-64;A:{I:if(!(!(!(C|B)|g)|!A|((_=255&I)-65&255)>>>0<=191|!(!(I=255&o)||i)|I>>>0>=65)){if(I){if(!i)break I;Hg(a- -64|0,0,293),E[a+56>>2]=327033209,E[a+60>>2]=1541459225,E[a+48>>2]=-79577749,E[a+52>>2]=528734635,E[a+40>>2]=725511199,E[a+44>>2]=-1694144372,E[a+32>>2]=-1377402159,E[a+36>>2]=1359893119,E[a+24>>2]=1595750129,E[a+28>>2]=-1521486534,E[a+16>>2]=-23791573,E[a+20>>2]=1013904242,E[a+8>>2]=-2067093701,E[a+12>>2]=-1150833019,E[a>>2]=-222443256^(I<<8|_),E[a+4>>2]=I>>>24^1779033703,Hg((o=a+384|0)+I|0,0,128-I|0),Sg(o,i,I),Sg(a+96|0,o,128),E[a+352>>2]=128,XC(o,128),I=128}else Hg(a- -64|0,0,293),E[a+56>>2]=327033209,E[a+60>>2]=1541459225,E[a+48>>2]=-79577749,E[a+52>>2]=528734635,E[a+40>>2]=725511199,E[a+44>>2]=-1694144372,E[a+32>>2]=-1377402159,E[a+36>>2]=1359893119,E[a+24>>2]=1595750129,E[a+28>>2]=-1521486534,E[a+16>>2]=-23791573,E[a+20>>2]=1013904242,E[a+8>>2]=-2067093701,E[a+12>>2]=-1150833019,E[a>>2]=-222443256^_,E[a+4>>2]=1779033703,I=0;g:if(C|B)for(y=a+224|0,c=a+96|0;;){if(o=I+c|0,!B&C>>>0<=(i=256-I|0)>>>0){Sg(o,g,C),E[a+352>>2]=C+E[a+352>>2];break g}if(Sg(o,g,i),E[a+352>>2]=i+E[a+352>>2],t=I=E[a+68>>2],I=(r=(o=E[a+64>>2])+128|0)>>>0<128?I+1|0:I,E[a+64>>2]=r,E[a+68>>2]=I,I=E[a+76>>2],I=(t=o=-1==(0|t)&o>>>0>4294967167)>>>0>(o=o+E[a+72>>2]|0)>>>0?I+1|0:I,E[a+72>>2]=o,E[a+76>>2]=I,f(a,c),Sg(c,y,128),I=E[a+352>>2]-128|0,E[a+352>>2]=I,g=g+i|0,!((B=B-(C>>>0>>0)|0)|(C=C-i|0)))break}$(a,A,_),h=e;break A}yC(),Q()}A=0}return A}function mA(A,I){A|=0,I|=0;var g,C=0;h=g=h-128|0,E[g+80>>2]=0,E[g+84>>2]=0,E[g+88>>2]=0,E[g+92>>2]=0,E[g+40>>2]=0,E[g+44>>2]=0,E[g+48>>2]=0,E[g+52>>2]=0,E[g+56>>2]=0,E[g+60>>2]=0,C=E[8591],E[g+104>>2]=E[8590],E[g+108>>2]=C,C=E[8593],E[g+112>>2]=E[8592],E[g+116>>2]=C,C=E[8595],E[g+120>>2]=E[8594],E[g+124>>2]=C,E[g+64>>2]=0,E[g+68>>2]=0,E[g+72>>2]=0,E[g+76>>2]=0,o[g+64|0]=1,E[g+32>>2]=0,E[g+36>>2]=0,C=E[8589],E[g+96>>2]=E[8588],E[g+100>>2]=C,C=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,E[g+24>>2]=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,E[g+28>>2]=C,C=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,E[g+16>>2]=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,E[g+20>>2]=C,C=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,E[g+8>>2]=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,E[g+12>>2]=C,C=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,E[g>>2]=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,E[g+4>>2]=C,Eg(I=g- -64|0,g),N(I),I=E[g+92>>2],C=E[g+88>>2],o[A+24|0]=C,o[A+25|0]=C>>>8,o[A+26|0]=C>>>16,o[A+27|0]=C>>>24,o[A+28|0]=I,o[A+29|0]=I>>>8,o[A+30|0]=I>>>16,o[A+31|0]=I>>>24,I=E[g+84>>2],C=E[g+80>>2],o[A+16|0]=C,o[A+17|0]=C>>>8,o[A+18|0]=C>>>16,o[A+19|0]=C>>>24,o[A+20|0]=I,o[A+21|0]=I>>>8,o[A+22|0]=I>>>16,o[A+23|0]=I>>>24,I=E[g+76>>2],C=E[g+72>>2],o[A+8|0]=C,o[A+9|0]=C>>>8,o[A+10|0]=C>>>16,o[A+11|0]=C>>>24,o[A+12|0]=I,o[A+13|0]=I>>>8,o[A+14|0]=I>>>16,o[A+15|0]=I>>>24,I=E[g+68>>2],C=E[g+64>>2],o[0|A]=C,o[A+1|0]=C>>>8,o[A+2|0]=C>>>16,o[A+3|0]=C>>>24,o[A+4|0]=I,o[A+5|0]=I>>>8,o[A+6|0]=I>>>16,o[A+7|0]=I>>>24,h=g+128|0}function uA(A,I,g,C){var B=0,Q=0,i=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0;A:{if((i=E[A+56>>2])|(B=E[A+60>>2])){if(y=Q=16-i|0,c=(Q=(0|(_=0-((i>>>0>16)+B|0)|0))==(0|C)&g>>>0>Q>>>0|C>>>0>_>>>0)?y:g,y=Q=Q?_:C,Q|c){if(Q=0,i=0,!y&c>>>0>=4|y)for(t=-4&c,_=A- -64|0;B=Q+E[A+56>>2]|0,o[B+_|0]=a[I+Q|0],B=(s=1|Q)+E[A+56>>2]|0,o[B+_|0]=a[I+s|0],B=(s=2|Q)+E[A+56>>2]|0,o[B+_|0]=a[I+s|0],B=(s=3|Q)+E[A+56>>2]|0,o[B+_|0]=a[I+s|0],B=i,i=(Q=Q+4|0)>>>0<4?B+1|0:B,B=r,r=B=(e=e+4|0)>>>0<4?B+1|0:B,(0|e)!=(0|t)|(0|y)!=(0|B););if(_=B=0,B|(r=3&c))for(;e=Q+E[A+56>>2]|0,o[(A+e|0)- -64|0]=a[I+Q|0],i=(Q=Q+1|0)?i:i+1|0,B=D,D=B=(h=h+1|0)?B:B+1|0,(0|r)!=(0|h)|(0|_)!=(0|B););i=E[A+56>>2],B=E[A+60>>2]}if(B=B+y|0,B=(i=i+c|0)>>>0>>0?B+1|0:B,E[A+56>>2]=i,E[A+60>>2]=B,!B&i>>>0<16)break A;rA(A,A- -64|0,16,0),E[A+56>>2]=0,E[A+60>>2]=0,g=(i=g)-c|0,C=C-((i>>>0>>0)+y|0)|0,I=I+c|0}if(!C&g>>>0>=16|C&&(rA(A,I,i=-16&g,C),g&=15,C=0,I=I+i|0),g|C){if(h=0,D=0,Q=0,i=0,!C&g>>>0>=4|C)for(c=12&g,y=0,_=A- -64|0,e=0,r=0;B=Q+E[A+56>>2]|0,o[B+_|0]=a[I+Q|0],B=(t=1|Q)+E[A+56>>2]|0,o[B+_|0]=a[I+t|0],B=(t=2|Q)+E[A+56>>2]|0,o[B+_|0]=a[I+t|0],B=(t=3|Q)+E[A+56>>2]|0,o[B+_|0]=a[I+t|0],i=(Q=Q+4|0)>>>0<4?i+1|0:i,B=r,r=B=(e=e+4|0)>>>0<4?B+1|0:B,(0|c)!=(0|e)|(0|y)!=(0|B););if(_=B=0,B|(r=3&g))for(;B=Q+E[A+56>>2]|0,o[(A+B|0)- -64|0]=a[I+Q|0],i=(Q=Q+1|0)?i:i+1|0,B=D,D=B=(h=h+1|0)?B:B+1|0,(0|r)!=(0|h)|(0|_)!=(0|B););i=C+E[A+60>>2]|0,i=(I=g+E[A+56>>2]|0)>>>0>>0?i+1|0:i,E[A+56>>2]=I,E[A+60>>2]=i}}}function xA(A,I){A|=0,I|=0;var g,C=0;h=g=h-128|0,E[g+80>>2]=0,E[g+84>>2]=0,E[g+88>>2]=0,E[g+92>>2]=0,E[g+40>>2]=0,E[g+44>>2]=0,E[g+48>>2]=0,E[g+52>>2]=0,E[g+56>>2]=0,E[g+60>>2]=0,C=E[8591],E[g+104>>2]=E[8590],E[g+108>>2]=C,C=E[8593],E[g+112>>2]=E[8592],E[g+116>>2]=C,C=E[8595],E[g+120>>2]=E[8594],E[g+124>>2]=C,E[g+64>>2]=0,E[g+68>>2]=0,E[g+72>>2]=0,E[g+76>>2]=0,E[g+32>>2]=0,E[g+36>>2]=0,C=E[8589],E[g+96>>2]=E[8588],E[g+100>>2]=C,C=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,E[g+16>>2]=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,E[g+20>>2]=C,C=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,E[g+24>>2]=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,E[g+28>>2]=C,C=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,E[g>>2]=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,E[g+4>>2]=C,C=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,E[g+8>>2]=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,E[g+12>>2]=C,Eg(I=g- -64|0,g),N(I),I=E[g+92>>2],C=E[g+88>>2],o[A+24|0]=C,o[A+25|0]=C>>>8,o[A+26|0]=C>>>16,o[A+27|0]=C>>>24,o[A+28|0]=I,o[A+29|0]=I>>>8,o[A+30|0]=I>>>16,o[A+31|0]=I>>>24,I=E[g+84>>2],C=E[g+80>>2],o[A+16|0]=C,o[A+17|0]=C>>>8,o[A+18|0]=C>>>16,o[A+19|0]=C>>>24,o[A+20|0]=I,o[A+21|0]=I>>>8,o[A+22|0]=I>>>16,o[A+23|0]=I>>>24,I=E[g+76>>2],C=E[g+72>>2],o[A+8|0]=C,o[A+9|0]=C>>>8,o[A+10|0]=C>>>16,o[A+11|0]=C>>>24,o[A+12|0]=I,o[A+13|0]=I>>>8,o[A+14|0]=I>>>16,o[A+15|0]=I>>>24,I=E[g+68>>2],C=E[g+64>>2],o[0|A]=C,o[A+1|0]=C>>>8,o[A+2|0]=C>>>16,o[A+3|0]=C>>>24,o[A+4|0]=I,o[A+5|0]=I>>>8,o[A+6|0]=I>>>16,o[A+7|0]=I>>>24,h=g+128|0}function RA(A,I,g){var C,B=0,Q=0,i=0,o=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,f=0,n=0,k=0;s=E[I+4>>2],B=E[A+4>>2],h=E[I+8>>2],Q=E[A+8>>2],D=E[I+12>>2],i=E[A+12>>2],p=E[I+16>>2],o=E[A+16>>2],w=E[I+20>>2],a=E[A+20>>2],f=E[I+24>>2],_=E[A+24>>2],e=E[I+28>>2],c=E[A+28>>2],n=E[I+32>>2],t=E[A+32>>2],k=E[I+36>>2],r=E[A+36>>2],g=0-g|0,y=E[A>>2],E[A>>2]=g&(y^E[I>>2])^y,E[A+36>>2]=r^g&(r^k),E[A+32>>2]=t^g&(t^n),E[A+28>>2]=c^g&(c^e),E[A+24>>2]=_^g&(_^f),E[A+20>>2]=a^g&(a^w),E[A+16>>2]=o^g&(o^p),E[A+12>>2]=i^g&(i^D),E[A+8>>2]=Q^g&(Q^h),E[A+4>>2]=B^g&(B^s),B=E[A+40>>2],s=E[I+40>>2],Q=E[A+44>>2],h=E[I+44>>2],i=E[A+48>>2],D=E[I+48>>2],o=E[A+52>>2],p=E[I+52>>2],a=E[A+56>>2],w=E[I+56>>2],_=E[A+60>>2],f=E[I+60>>2],c=E[(e=A- -64|0)>>2],n=E[I- -64>>2],t=E[A+68>>2],k=E[I+68>>2],r=E[A+72>>2],y=E[I+72>>2],C=E[A+76>>2],E[A+76>>2]=C^g&(E[I+76>>2]^C),E[A+72>>2]=r^g&(r^y),E[A+68>>2]=t^g&(t^k),E[e>>2]=c^g&(c^n),E[A+60>>2]=_^g&(_^f),E[A+56>>2]=a^g&(a^w),E[A+52>>2]=o^g&(o^p),E[A+48>>2]=i^g&(i^D),E[A+44>>2]=Q^g&(Q^h),E[A+40>>2]=B^g&(B^s),B=E[A+80>>2],s=E[I+80>>2],Q=E[A+84>>2],h=E[I+84>>2],i=E[A+88>>2],D=E[I+88>>2],o=E[A+92>>2],p=E[I+92>>2],a=E[A+96>>2],w=E[I+96>>2],_=E[A+100>>2],f=E[I+100>>2],c=E[A+104>>2],e=E[I+104>>2],t=E[A+108>>2],n=E[I+108>>2],r=E[A+112>>2],k=E[I+112>>2],y=E[I+116>>2],I=E[A+116>>2],E[A+116>>2]=g&(y^I)^I,E[A+112>>2]=r^g&(r^k),E[A+108>>2]=t^g&(t^n),E[A+104>>2]=c^g&(c^e),E[A+100>>2]=_^g&(_^f),E[A+96>>2]=a^g&(a^w),E[A+92>>2]=o^g&(o^p),E[A+88>>2]=i^g&(i^D),E[A+84>>2]=Q^g&(Q^h),E[A+80>>2]=B^g&(B^s)}function vA(A,I){var g,C,B=0;for(h=g=h-192|0,v(C=g+144|0,I),v(B=g+96|0,C),v(B,B),Y(B,I,B),Y(C,C,B),v(I=g+48|0,C),Y(B,B,I),v(I,B),v(I,I),v(I,I),v(I,I),v(I,I),Y(B,I,B),v(I,B),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),Y(I,I,B),v(g,I),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),Y(I,g,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),Y(B,I,B),v(I,B),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),Y(I,I,B),v(g,I),I=1;v(g,g),100!=(0|(I=I+1|0)););Y(I=g+48|0,g,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),v(I,I),Y(B=g+96|0,I,B),v(B,B),v(B,B),v(B,B),v(B,B),v(B,B),Y(A,B,g+144|0),h=g+192|0}function LA(A,I,g,C,B){A|=0,I|=0,g|=0,C|=0;var i=0,E=0,_=0,t=0,r=0,y=0,s=0,h=0,D=0,p=0;A:{I:{g:{C:{B:{Q:{i:{if(1==(-7&(B|=0))&&(r=(E=(C>>>0)/3|0)<<2,(E=c(E,-3)+C|0)&&(r=2&B?(2|r)+(E>>>1|0)|0:r+4|0),!(I>>>0<=r>>>0))){if(!(4&B)){if(!C){B=0;break C}B=0;break i}if(!C){B=0;break C}for(B=0;;){for(s=(h=a[g+y|0])|s<<8,E=B,B=1+((((t|=8)-6>>>0)/6|0)+B|0)|0;D=65510+(_=s>>>(t=(i=t)-6|0)&63)>>>8|0,p=_+65484>>>8|0,o[A+E|0]=(1+(16321^_)^-1)>>>8&45|_+252&_+65474>>>8&(-1^p)|(_+32705^-1)>>>8&95|D&_+65|p&_+71&(-1^D),(0|(E=E+1|0))!=(0|B););if((0|(y=y+1|0))==(0|C))break}if(!t)break B;E=(C=65510+(i=h<<12-i&63)>>>8|0)&i+65,t=i+252&i+65474>>>8&(-1^(g=i+65484>>>8|0)),C=g&i+71&(-1^C),y=i+32705|0,s=95,g=(1+(16321^i)^-1)>>>8&45;break Q}yC(),Q()}for(;;){for(s=(h=a[g+y|0])|s<<8,E=B,B=1+((((t|=8)-6>>>0)/6|0)+B|0)|0;D=65510+(_=s>>>(t=(i=t)-6|0)&63)>>>8|0,p=_+65484>>>8|0,o[A+E|0]=(1+(16321^_)^-1)>>>8&43|_+252&_+65474>>>8&(-1^p)|(_+16321^-1)>>>8&47|D&_+65|p&_+71&(-1^D),(0|(E=E+1|0))!=(0|B););if((0|(y=y+1|0))==(0|C))break}if(!t)break B;E=(C=65510+(i=h<<12-i&63)>>>8|0)&i+65,t=i+252&i+65474>>>8&(-1^(g=i+65484>>>8|0)),C=g&i+71&(-1^C),y=i+16321|0,s=47,g=(1+(16321^i)^-1)>>>8&43}o[A+B|0]=g|(-1^y)>>>8&s|E|t|C,B=B+1|0}if(B>>>0>r>>>0)break g}if(B>>>0>>0)break I;r=B;break A}e(1104,1201,231,1505),Q()}Hg(A+B|0,61,r-B|0)}return Hg(A+r|0,0,(I>>>0>(g=r+1|0)>>>0?I:g)-r|0),0|A}function PA(A,I){var g,C=0,B=0;for(h=g=h-144|0,v(B=g+96|0,I),v(C=g+48|0,B),v(C,C),Y(C,I,C),Y(B,B,C),v(B,B),Y(B,C,B),v(C,B),v(C,C),v(C,C),v(C,C),v(C,C),Y(B,C,B),v(C,B),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),Y(C,C,B),v(g,C),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),v(g,g),Y(C,g,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),Y(B,C,B),v(C,B),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),Y(C,C,B),v(g,C),C=1;v(g,g),100!=(0|(C=C+1|0)););Y(C=g+48|0,g,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),v(C,C),Y(B=g+96|0,C,B),v(B,B),v(B,B),Y(A,B,I),h=g+144|0}function qA(A,I){var g,C,B,Q,i,_,c,t,r,e,y,s,D,p,w,f,n,k,F,N=0,S=0,G=0,M=0;h=g=h-320|0,pA(C=A+40|0,I),E[A+84>>2]=0,E[A+88>>2]=0,E[A+80>>2]=1,E[A+92>>2]=0,E[A+96>>2]=0,E[A+100>>2]=0,E[A+104>>2]=0,E[A+108>>2]=0,E[A+112>>2]=0,E[A+116>>2]=0,v(G=g+240|0,C),Y(S=g+192|0,G,1600),M=-1,B=E[g+240>>2]-1|0,E[g+240>>2]=B,E[g+192>>2]=E[g+192>>2]+1,Q=E[g+244>>2],i=E[g+248>>2],_=E[g+252>>2],c=E[g+256>>2],t=E[g+260>>2],r=E[g+264>>2],e=E[g+268>>2],y=E[g+272>>2],s=E[g+276>>2],v(N=g+144|0,S),Y(N,N,S),v(A,N),Y(A,A,S),Y(A,A,G),PA(A,A),Y(A,A,N),Y(A,A,G),v(N=g+96|0,A),Y(N,N,S),S=E[g+132>>2],E[g+84>>2]=S-s,N=E[g+128>>2],E[g+80>>2]=N-y,G=E[g+124>>2],E[g+76>>2]=G-e,D=E[g+120>>2],E[g+72>>2]=D-r,p=E[g+116>>2],E[g+68>>2]=p-t,w=E[g+112>>2],E[g+64>>2]=w-c,f=E[g+108>>2],E[g+60>>2]=f-_,n=E[g+104>>2],E[g+56>>2]=n-i,k=E[g+100>>2],E[g+52>>2]=k-Q,F=E[g+96>>2],E[g+48>>2]=F-B,BI(g,g+48|0);A:{if(!NI(g,32)){if(E[g+36>>2]=S+s,E[g+32>>2]=N+y,E[g+28>>2]=G+e,E[g+24>>2]=r+D,E[g+20>>2]=t+p,E[g+16>>2]=c+w,E[g+12>>2]=_+f,E[g+8>>2]=i+n,E[g+4>>2]=Q+k,E[g>>2]=B+F,BI(S=g+288|0,g),!NI(S,32))break A;Y(A,A,1648)}BI(g+288|0,A),(1&o[g+288|0])==(a[I+31|0]>>>7|0)&&(E[A>>2]=0-E[A>>2],E[A+36>>2]=0-E[A+36>>2],E[A+32>>2]=0-E[A+32>>2],E[A+28>>2]=0-E[A+28>>2],E[A+24>>2]=0-E[A+24>>2],E[A+20>>2]=0-E[A+20>>2],E[A+16>>2]=0-E[A+16>>2],E[A+12>>2]=0-E[A+12>>2],E[A+8>>2]=0-E[A+8>>2],E[A+4>>2]=0-E[A+4>>2]),Y(A+120|0,A,C),M=0}return h=g+320|0,M}function zA(A,I,g){var C,B,Q,i,o,a,_,t,r=0;h=C=h-128|0,E[A>>2]=1,E[A+4>>2]=0,E[A+8>>2]=0,E[A+12>>2]=0,E[A+16>>2]=0,E[A+20>>2]=0,E[A+24>>2]=0,E[A+28>>2]=0,E[A+32>>2]=0,E[A+36>>2]=0,E[A+40>>2]=1,Hg(A+44|0,0,76),RA(A,I=c(I,960)+3008|0,(255&(1^(r=g-((g>>31&g)<<1)|0)))-1>>>31|0),RA(A,I+120|0,(255&(2^r))-1>>>31|0),RA(A,I+240|0,(255&(3^r))-1>>>31|0),RA(A,I+360|0,(255&(4^r))-1>>>31|0),RA(A,I+480|0,(255&(5^r))-1>>>31|0),RA(A,I+600|0,(255&(6^r))-1>>>31|0),RA(A,I+720|0,(255&(7^r))-1>>>31|0),RA(A,I+840|0,(255&(8^r))-1>>>31|0),I=E[A+76>>2],E[C+40>>2]=E[A+72>>2],E[C+44>>2]=I,r=E[4+(I=A- -64|0)>>2],E[C+32>>2]=E[I>>2],E[C+36>>2]=r,I=E[A+60>>2],E[C+24>>2]=E[A+56>>2],E[C+28>>2]=I,I=E[A+52>>2],E[C+16>>2]=E[A+48>>2],E[C+20>>2]=I,I=E[A+44>>2],E[C+8>>2]=E[A+40>>2],E[C+12>>2]=I,I=E[A+12>>2],E[C+56>>2]=E[A+8>>2],E[C+60>>2]=I,r=E[A+20>>2],E[(I=C- -64|0)>>2]=E[A+16>>2],E[I+4>>2]=r,I=E[A+28>>2],E[C+72>>2]=E[A+24>>2],E[C+76>>2]=I,I=E[A+36>>2],E[C+80>>2]=E[A+32>>2],E[C+84>>2]=I,I=E[A+4>>2],E[C+48>>2]=E[A>>2],E[C+52>>2]=I,I=E[A+80>>2],r=E[A+84>>2],B=E[A+88>>2],Q=E[A+92>>2],i=E[A+96>>2],o=E[A+100>>2],a=E[A+104>>2],_=E[A+108>>2],t=E[A+112>>2],E[C+124>>2]=0-E[A+116>>2],E[C+120>>2]=0-t,E[C+116>>2]=0-_,E[C+112>>2]=0-a,E[C+108>>2]=0-o,E[C+104>>2]=0-i,E[C+100>>2]=0-Q,E[C+96>>2]=0-B,E[C+92>>2]=0-r,E[C+88>>2]=0-I,RA(A,C+8|0,(128&g)>>>7|0),h=C+128|0}function jA(A){var I,g,C,B,Q,i,o,a,_=0,c=0,t=0,r=0,e=0,y=0,s=0,D=0,p=0,w=0,f=0,n=0,k=0,F=0,N=0,S=0,G=0,M=0,b=0,K=0;return h=I=h-320|0,v(c=I+240|0,A),v(t=I+192|0,A+40|0),v(_=I+144|0,A+80|0),A=E[I+240>>2],r=E[I+192>>2],e=E[I+244>>2],y=E[I+196>>2],s=E[I+248>>2],D=E[I+200>>2],p=E[I+252>>2],w=E[I+204>>2],f=E[I+256>>2],n=E[I+208>>2],k=E[I+260>>2],F=E[I+212>>2],N=E[I+264>>2],S=E[I+216>>2],G=E[I+268>>2],M=E[I+220>>2],b=E[I+272>>2],K=E[I+224>>2],E[I+84>>2]=E[I+228>>2]-E[I+276>>2],E[I+80>>2]=K-b,E[I+76>>2]=M-G,E[I+72>>2]=S-N,E[I+68>>2]=F-k,E[I+64>>2]=n-f,E[I+60>>2]=w-p,E[I+56>>2]=D-s,E[I+52>>2]=y-e,E[I+48>>2]=r-A,Y(A=I+48|0,A,_),Y(I,c,t),Y(I,I,1600),v(I+96|0,_),_=E[I+48>>2],c=E[I+96>>2],t=E[I>>2],r=E[I+52>>2],e=E[I+100>>2],y=E[I+4>>2],s=E[I+56>>2],D=E[I+104>>2],p=E[I+8>>2],w=E[I+60>>2],f=E[I+108>>2],n=E[I+12>>2],k=E[I+64>>2],F=E[I+112>>2],N=E[I+16>>2],S=E[I+68>>2],G=E[I+116>>2],M=E[I+20>>2],b=E[I+72>>2],K=E[I+120>>2],g=E[I+24>>2],C=E[I+76>>2],B=E[I+124>>2],Q=E[I+28>>2],i=E[I+80>>2],o=E[I+128>>2],a=E[I+32>>2],E[I+84>>2]=E[I+84>>2]-(E[I+132>>2]+E[I+36>>2]|0),E[I+80>>2]=i-(o+a|0),E[I+76>>2]=C-(B+Q|0),E[I+72>>2]=b-(K+g|0),E[I+68>>2]=S-(G+M|0),E[I+64>>2]=k-(F+N|0),E[I+60>>2]=w-(f+n|0),E[I+56>>2]=s-(D+p|0),E[I+52>>2]=r-(e+y|0),E[I+48>>2]=_-(c+t|0),BI(_=I+288|0,A),A=NI(_,32),h=I+320|0,A}function XA(A,I,g,C){var B=0,Q=0,i=0,E=0,_=0,c=0,t=0;if(g|C)A:for(t=A+224|0,_=A+96|0,Q=a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24;;){if(B=Q+_|0,!C&g>>>0<=(i=256-Q|0)>>>0){Sg(B,I,g),I=g+(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)|0,o[A+352|0]=I,o[A+353|0]=I>>>8,o[A+354|0]=I>>>16,o[A+355|0]=I>>>24;break A}if(Sg(B,I,i),B=(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)+i|0,o[A+352|0]=B,o[A+353|0]=B>>>8,o[A+354|0]=B>>>16,o[A+355|0]=B>>>24,c=Q=a[A+68|0]|a[A+69|0]<<8|a[A+70|0]<<16|a[A+71|0]<<24,Q=(E=128+(B=a[A+64|0]|a[A+65|0]<<8|a[A+66|0]<<16|a[A+67|0]<<24)|0)>>>0<128?Q+1|0:Q,o[A+64|0]=E,o[A+65|0]=E>>>8,o[A+66|0]=E>>>16,o[A+67|0]=E>>>24,o[A+68|0]=Q,o[A+69|0]=Q>>>8,o[A+70|0]=Q>>>16,o[A+71|0]=Q>>>24,Q=a[A+76|0]|a[A+77|0]<<8|a[A+78|0]<<16|a[A+79|0]<<24,Q=(c=B=-1==(0|c)&B>>>0>4294967167)>>>0>(B=B+(a[A+72|0]|a[A+73|0]<<8|a[A+74|0]<<16|a[A+75|0]<<24)|0)>>>0?Q+1|0:Q,o[A+72|0]=B,o[A+73|0]=B>>>8,o[A+74|0]=B>>>16,o[A+75|0]=B>>>24,o[A+76|0]=Q,o[A+77|0]=Q>>>8,o[A+78|0]=Q>>>16,o[A+79|0]=Q>>>24,f(A,_),Sg(_,t,128),B=Q=(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)-128|0,o[A+352|0]=B,o[A+353|0]=B>>>8,o[A+354|0]=B>>>16,o[A+355|0]=B>>>24,I=I+i|0,!((C=C-(g>>>0>>0)|0)|(g=g-i|0)))break}return 0}function OA(A){var I=0,g=0,C=0,B=0,Q=0,i=0,o=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,f=0,n=0;for(g=E[A+60>>2],h=E[A+56>>2],s=E[A+52>>2],e=E[A+48>>2],I=E[A+44>>2],C=E[A+40>>2],D=E[A+36>>2],r=E[A+32>>2],B=E[A+28>>2],Q=E[A+24>>2],i=E[A+20>>2],o=E[A+16>>2],a=E[A+12>>2],_=E[A+8>>2],c=E[A+4>>2],t=E[A>>2];y=Lg(i+c|0,7)^D,p=Lg(y+i|0,9)^s,o=Lg(t+e|0,7)^o,w=Lg(o+t|0,9)^r,f=Lg(w+o|0,13)^e,a=Lg(I+g|0,7)^a,B=Lg(a+g|0,9)^B,r=Lg(B+a|0,13)^I,g=Lg(B+r|0,18)^g,I=Lg(C+Q|0,7)^h,e=f^Lg(g+I|0,7),s=p^Lg(e+g|0,9),h=Lg(e+s|0,13)^I,g=Lg(s+h|0,18)^g,_=Lg(I+C|0,9)^_,Q=Lg(_+I|0,13)^Q,C=Lg(Q+_|0,18)^C,I=Lg(C+y|0,7)^r,r=Lg(I+C|0,9)^w,D=Lg(I+r|0,13)^y,C=Lg(r+D|0,18)^C,c=Lg(y+p|0,13)^c,i=Lg(c+p|0,18)^i,Q=Lg(i+o|0,7)^Q,B=Lg(Q+i|0,9)^B,o=Lg(B+Q|0,13)^o,i=Lg(o+B|0,18)^i,t=Lg(w+f|0,18)^t,c=Lg(t+a|0,7)^c,_=Lg(c+t|0,9)^_,a=Lg(_+c|0,13)^a,t=Lg(a+_|0,18)^t,y=n>>>0<6,n=n+2|0,y;);E[A>>2]=E[A>>2]+t,E[A+4>>2]=E[A+4>>2]+c,E[A+8>>2]=E[A+8>>2]+_,E[A+12>>2]=E[A+12>>2]+a,E[A+16>>2]=E[A+16>>2]+o,E[A+20>>2]=E[A+20>>2]+i,E[A+24>>2]=E[A+24>>2]+Q,E[A+28>>2]=E[A+28>>2]+B,E[A+32>>2]=E[A+32>>2]+r,E[A+36>>2]=E[A+36>>2]+D,E[A+40>>2]=E[A+40>>2]+C,E[A+44>>2]=E[A+44>>2]+I,E[A+48>>2]=E[A+48>>2]+e,E[A+52>>2]=E[A+52>>2]+s,E[A+56>>2]=E[A+56>>2]+h,E[A+60>>2]=E[A+60>>2]+g}function VA(A,I,g,C){var B,Q=0;return h=B=h-320|0,Q=-1,GI(g)&&(bI(g)||bA(B,g)||IA(B)&&(o[0|A]=a[0|I],o[A+1|0]=a[I+1|0],o[A+2|0]=a[I+2|0],o[A+3|0]=a[I+3|0],o[A+4|0]=a[I+4|0],o[A+5|0]=a[I+5|0],o[A+6|0]=a[I+6|0],o[A+7|0]=a[I+7|0],o[A+8|0]=a[I+8|0],o[A+9|0]=a[I+9|0],o[A+10|0]=a[I+10|0],o[A+11|0]=a[I+11|0],o[A+12|0]=a[I+12|0],o[A+13|0]=a[I+13|0],o[A+14|0]=a[I+14|0],o[A+15|0]=a[I+15|0],o[A+16|0]=a[I+16|0],o[A+17|0]=a[I+17|0],o[A+18|0]=a[I+18|0],o[A+19|0]=a[I+19|0],o[A+20|0]=a[I+20|0],o[A+21|0]=a[I+21|0],o[A+22|0]=a[I+22|0],o[A+23|0]=a[I+23|0],o[A+24|0]=a[I+24|0],o[A+25|0]=a[I+25|0],o[A+26|0]=a[I+26|0],o[A+27|0]=a[I+27|0],o[A+28|0]=a[I+28|0],o[A+29|0]=a[I+29|0],o[A+30|0]=a[I+30|0],g=a[I+31|0],C&&(o[0|A]=248&a[0|A],g|=64),o[A+31|0]=127&g,u(g=B+160|0,A,B),tg(A,g),(127&a[A+31|0]|a[A+30|0]|a[A+29|0]|a[A+28|0]|a[A+27|0]|a[A+26|0]|a[A+25|0]|a[A+24|0]|a[A+23|0]|a[A+22|0]|a[A+21|0]|a[A+20|0]|a[A+19|0]|a[A+18|0]|a[A+17|0]|a[A+16|0]|a[A+15|0]|a[A+14|0]|a[A+13|0]|a[A+12|0]|a[A+11|0]|a[A+10|0]|a[A+9|0]|a[A+8|0]|a[A+7|0]|a[A+6|0]|a[A+5|0]|a[A+4|0]|a[A+3|0]|a[A+2|0]|a[A+1|0]|1^a[0|A])-1&256||(Q=NI(I,32)?-1:0))),h=B+320|0,Q}function ZA(A,I,g,C,B){var Q,i=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0;if(h=Q=h-48|0,B&&ag(B,102),!(36!=a[0|C]|55!=a[C+1|0]|36!=a[C+2|0])&&(r=uI(a[C+3|0]))&&(i=PI(Q+12|0,C+4|0))&&(t=PI(Q+8|0,i))){for(_=LI(t)+1|0;i=0,_&&36!=a[0|(i=t+(_=_-1|0)|0)];);if(c=i-t|0,i||(c=LI(t)),!((c=45+(_=(i=c)+(t-C|0)|0)|0)>>>0>102|i>>>0>c>>>0||(c=A,y=I,s=g,A=31&(r=r-1024|0),(63&r)>>>0>=32?(I=1<>>32-A,_A(c,y,s,t,i,g,I,E[Q+12>>2],E[Q+8>>2],Q+16|0,32)))){for(i=Sg(B,C,_),o[0|(A=i+_|0)]=36,e=(c=i+102|0)-(B=A+1|0)|0,g=0;;){A:if((I=g)>>>0>31)C=B;else if(A=B,g=(_=I+1|0)+(y=(g=31-I|0)>>>0>=2?2:g)|0,C=0,t=0,B=a[(r=Q+16|0)+I|0],y&&(B=a[_+r|0]<<8|B,(0|(I=I+2|0))!=(0|g)&&(t=1,B=a[I+r|0]<<16|B)),e&&(o[0|A]=a[1024+(63&B)|0],1!=(0|e))){if(o[A+1|0]=a[1024+(B>>>6&63)|0],y=A+e|0,I=A+2|0,(0|g)!=(0|_)){if(2==(0|e))break A;if(o[A+2|0]=a[1024+(B>>>12&63)|0],I=A+3|0,t){if(3==(0|e))break A;o[A+3|0]=a[1024+(B>>>18|0)|0],I=A+4|0}}if(e=y-(B=I)|0,B)continue}break}XC(Q+16|0,32),e=0,!C|C>>>0>=c>>>0||(o[0|C]=0,e=i)}}return h=Q+48|0,e}function WA(A,I,g){var C,B,Q,i=0,o=0,_=0,t=0;h=C=h-16|0,B=E[A+20>>2],E[A+20>>2]=0,Q=E[A+4>>2],E[A+4>>2]=0,i=-26;A:{I:{g:{C:switch(g-1|0){case 1:if(i=-32,Cg(I,1165,9))break A;I=I+9|0;break g;case 0:break C;default:break A}if(i=-32,Cg(I,1156,8))break A;I=I+8|0}if(!((i=Cg(I,1422,3))||((o=a[0|(g=I+3|0)])-58&255)>>>0<246)){for(t=i?I:g,I=0,i=o;;){if(_=g,I>>>0>429496729)break I;if((i=(255&i)-48|0)>>>0>(-1^(I=c(I,10)))>>>0)break I;if(I=I+i|0,!(((i=a[0|(g=g+1|0)])-58&255)>>>0>245))break}if(!(48==(0|o)&(0|t)!=(0|_)|(0|g)==(0|t))){if(i=-26,19!=(0|I))break A;if(!Cg(g,1434,3)&&(g=mI(_+4|0,I=C+12|0))&&(E[A+44>>2]=E[C+12>>2],!Cg(g,1426,3)&&(g=mI(g+3|0,I))&&(E[A+40>>2]=E[C+12>>2],!Cg(g,1430,3)&&(g=mI(g+3|0,I))&&(i=E[C+12>>2],E[A+48>>2]=i,E[A+52>>2]=i,36==a[0|g]&&(E[C+12>>2]=B,!wA(i=E[A+16>>2],B,_=g=g+1|0,o=LI(g),0,I,g=C+8|0,3)&&(E[A+20>>2]=E[C+12>>2],i=E[C+8>>2],36==a[0|i]&&(E[C+12>>2]=Q,i=i+1|0,!wA(E[A>>2],Q,i,LI(i),0,I,g,3)))))))){if(E[A+4>>2]=E[C+12>>2],I=E[C+8>>2],i=pI(A))break A;i=a[0|I]?-32:0;break A}}}}i=-32}return h=C+16|0,i}function TA(A,I){var g,C=0,B=0,Q=0,i=0,o=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,f=0;C=E[I+40>>2],Q=E[I+4>>2],i=E[I+44>>2],o=E[I+8>>2],a=E[I+48>>2],_=E[I+12>>2],c=E[I+52>>2],t=E[I+16>>2],r=E[I+56>>2],e=E[I+20>>2],y=E[I+60>>2],s=E[I+24>>2],h=E[(B=I- -64|0)>>2],D=E[I+28>>2],p=E[I+68>>2],w=E[I+32>>2],f=E[I+72>>2],g=E[I>>2],E[A+36>>2]=E[I+36>>2]+E[I+76>>2],E[A+32>>2]=w+f,E[A+28>>2]=D+p,E[A+24>>2]=s+h,E[A+20>>2]=e+y,E[A+16>>2]=t+r,E[A+12>>2]=_+c,E[A+8>>2]=o+a,E[A+4>>2]=Q+i,E[A>>2]=C+g,C=E[I+40>>2],Q=E[I+4>>2],i=E[I+44>>2],o=E[I+8>>2],a=E[I+48>>2],_=E[I+12>>2],c=E[I+52>>2],t=E[I+16>>2],r=E[I+56>>2],e=E[I+20>>2],y=E[I+60>>2],s=E[I+24>>2],B=E[B>>2],h=E[I+28>>2],D=E[I+68>>2],p=E[I+32>>2],w=E[I+72>>2],f=E[I>>2],E[A+76>>2]=E[I+76>>2]-E[I+36>>2],E[A+72>>2]=w-p,E[A+68>>2]=D-h,E[A- -64>>2]=B-s,E[A+60>>2]=y-e,E[A+56>>2]=r-t,E[A+52>>2]=c-_,E[A+48>>2]=a-o,E[A+44>>2]=i-Q,E[A+40>>2]=C-f,C=E[I+84>>2],E[A+80>>2]=E[I+80>>2],E[A+84>>2]=C,C=E[I+92>>2],E[A+88>>2]=E[I+88>>2],E[A+92>>2]=C,C=E[I+100>>2],E[A+96>>2]=E[I+96>>2],E[A+100>>2]=C,C=E[I+108>>2],E[A+104>>2]=E[I+104>>2],E[A+108>>2]=C,C=E[I+116>>2],E[A+112>>2]=E[I+112>>2],E[A+116>>2]=C,Y(A+120|0,I+120|0,1696)}function $A(A,I,g){var C,B,Q,i,o,a,_,c,t,r,e,y,s=0,D=0,p=0,w=0,f=0;s=E[I+12>>2],D=E[I+8>>2],p=E[I+4>>2],C=h+-64&-64,I=E[I>>2],E[C>>2]=E[35760+((255&I)<<2)>>2],E[C+4>>2]=E[35760+(p>>>6&1020)>>2],E[C+8>>2]=E[35760+(D>>>14&1020)>>2],E[C+12>>2]=E[35760+(s>>>22&1020)>>2],E[C+16>>2]=E[35760+((255&p)<<2)>>2],E[C+20>>2]=E[35760+(D>>>6&1020)>>2],E[C+24>>2]=E[35760+(s>>>14&1020)>>2],E[C+28>>2]=E[35760+(I>>>22&1020)>>2],E[C+32>>2]=E[35760+((255&D)<<2)>>2],E[C+36>>2]=E[35760+(s>>>6&1020)>>2],E[C+40>>2]=E[35760+(I>>>14&1020)>>2],E[C+44>>2]=E[35760+(p>>>22&1020)>>2],E[C+48>>2]=E[35760+((255&s)<<2)>>2],E[C+52>>2]=E[35760+(I>>>6&1020)>>2],E[C+56>>2]=E[35760+(p>>>14&1020)>>2],E[C+60>>2]=E[35760+(D>>>22&1020)>>2],I=E[C+12>>2],s=E[C>>2],D=E[C+4>>2],p=E[C+8>>2],B=E[C+28>>2],Q=E[C+16>>2],i=E[C+20>>2],o=E[C+24>>2],a=E[C+44>>2],_=E[C+32>>2],c=E[C+36>>2],t=E[C+40>>2],r=E[g>>2],e=E[g+4>>2],y=E[g+8>>2],w=A,f=E[g+12>>2]^E[C+48>>2]^Lg(E[C+52>>2],8)^Lg(E[C+56>>2],16)^Lg(E[C+60>>2],24),E[w+12>>2]=f,w=A,f=Lg(c,8)^_^Lg(t,16)^Lg(a,24)^y,E[w+8>>2]=f,w=A,f=Lg(i,8)^Q^Lg(o,16)^Lg(B,24)^e,E[w+4>>2]=f,w=A,f=Lg(D,8)^s^Lg(p,16)^Lg(I,24)^r,E[w>>2]=f}function AI(A,I,g){var C,B=0;return h=C=h-160|0,o[0|A]=a[0|I],o[A+1|0]=a[I+1|0],o[A+2|0]=a[I+2|0],o[A+3|0]=a[I+3|0],o[A+4|0]=a[I+4|0],o[A+5|0]=a[I+5|0],o[A+6|0]=a[I+6|0],o[A+7|0]=a[I+7|0],o[A+8|0]=a[I+8|0],o[A+9|0]=a[I+9|0],o[A+10|0]=a[I+10|0],o[A+11|0]=a[I+11|0],o[A+12|0]=a[I+12|0],o[A+13|0]=a[I+13|0],o[A+14|0]=a[I+14|0],o[A+15|0]=a[I+15|0],o[A+16|0]=a[I+16|0],o[A+17|0]=a[I+17|0],o[A+18|0]=a[I+18|0],o[A+19|0]=a[I+19|0],o[A+20|0]=a[I+20|0],o[A+21|0]=a[I+21|0],o[A+22|0]=a[I+22|0],o[A+23|0]=a[I+23|0],o[A+24|0]=a[I+24|0],o[A+25|0]=a[I+25|0],o[A+26|0]=a[I+26|0],o[A+27|0]=a[I+27|0],o[A+28|0]=a[I+28|0],o[A+29|0]=a[I+29|0],o[A+30|0]=a[I+30|0],B=a[I+31|0],g&&(o[0|A]=248&a[0|A],B|=64),o[A+31|0]=127&B,kA(C,A),tg(A,C),g=-1,(127&a[A+31|0]|a[A+30|0]|a[A+29|0]|a[A+28|0]|a[A+27|0]|a[A+26|0]|a[A+25|0]|a[A+24|0]|a[A+23|0]|a[A+22|0]|a[A+21|0]|a[A+20|0]|a[A+19|0]|a[A+18|0]|a[A+17|0]|a[A+16|0]|a[A+15|0]|a[A+14|0]|a[A+13|0]|a[A+12|0]|a[A+11|0]|a[A+10|0]|a[A+9|0]|a[A+8|0]|a[A+7|0]|a[A+6|0]|a[A+5|0]|a[A+4|0]|a[A+3|0]|a[A+2|0]|a[A+1|0]|1^a[0|A])-1&256||(g=NI(I,32)?-1:0),h=C+160|0,g}function II(A,I){var g,C,B,Q,i,a=0,_=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0;(a=E[A+56>>2])|(_=E[A+60>>2])&&(o[(r=A- -64|0)+a|0]=1,!((p=a+1|0)?_:_+1|0)&p>>>0<=15&&Hg(65+(A+a|0)|0,0,15-a|0),o[A+80|0]=1,rA(A,r,16,0)),p=E[A+52>>2],h=E[A+48>>2],r=E[A+44>>2],a=E[A+24>>2],e=E[A+28>>2]+(a>>>26|0)|0,t=E[A+32>>2]+(e>>>26|0)|0,g=E[A+36>>2]+(t>>>26|0)|0,_=(s=(a=(a=(67108863&a)+((y=E[A+20>>2]+c(g>>>26|0,5)|0)>>>26|0)|0)&(e=(t=(i=(67108863&g)+((Q=(C=67108863&t)+((B=(D=67108863&e)+((y=a+((_=5+(s=67108863&y)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)-67108864|0)>>31)|y&(t=67108863&(y=(t>>>31|0)-1|0)))<<26|_&t|e&s)+E[A+40>>2]|0,o[0|I]=_,o[I+1|0]=_>>>8,o[I+2|0]=_>>>16,o[I+3|0]=_>>>24,s=_>>>0>>0,_=0,_=(a=(D=e&D|t&B)<<20|a>>>6)>>>0>(a=a+r|0)>>>0?1:_,_=(r=a)>>>0>(a=a+s|0)>>>0?_+1|0:_,o[I+4|0]=a,o[I+5|0]=a>>>8,o[I+6|0]=a>>>16,o[I+7|0]=a>>>24,a=0,r=(r=(t=e&C|t&Q)<<14|D>>>12)>>>0>(h=r+h|0)>>>0?1:a,a=h,h=_,a=a+_|0,_=r,_=a>>>0>>0?_+1|0:_,o[I+8|0]=a,o[I+9|0]=a>>>8,o[I+10|0]=a>>>16,o[I+11|0]=a>>>24,_=(a=(a=(y&i|e&g)<<8|t>>>18)+p|0)+_|0,o[I+12|0]=_,o[I+13|0]=_>>>8,o[I+14|0]=_>>>16,o[I+15|0]=_>>>24,XC(A,88)}function gI(A,I,g){A|=0,I|=0,g|=0;var C,B=0;return h=C=h-16|0,o[C+15|0]=0,B=-1,0|pB[E[8934]](A,I,g)||(o[C+15|0]=a[0|A]|a[C+15|0],o[C+15|0]=a[A+1|0]|a[C+15|0],o[C+15|0]=a[A+2|0]|a[C+15|0],o[C+15|0]=a[A+3|0]|a[C+15|0],o[C+15|0]=a[A+4|0]|a[C+15|0],o[C+15|0]=a[A+5|0]|a[C+15|0],o[C+15|0]=a[A+6|0]|a[C+15|0],o[C+15|0]=a[A+7|0]|a[C+15|0],o[C+15|0]=a[A+8|0]|a[C+15|0],o[C+15|0]=a[A+9|0]|a[C+15|0],o[C+15|0]=a[A+10|0]|a[C+15|0],o[C+15|0]=a[A+11|0]|a[C+15|0],o[C+15|0]=a[A+12|0]|a[C+15|0],o[C+15|0]=a[A+13|0]|a[C+15|0],o[C+15|0]=a[A+14|0]|a[C+15|0],o[C+15|0]=a[A+15|0]|a[C+15|0],o[C+15|0]=a[A+16|0]|a[C+15|0],o[C+15|0]=a[A+17|0]|a[C+15|0],o[C+15|0]=a[A+18|0]|a[C+15|0],o[C+15|0]=a[A+19|0]|a[C+15|0],o[C+15|0]=a[A+20|0]|a[C+15|0],o[C+15|0]=a[A+21|0]|a[C+15|0],o[C+15|0]=a[A+22|0]|a[C+15|0],o[C+15|0]=a[A+23|0]|a[C+15|0],o[C+15|0]=a[A+24|0]|a[C+15|0],o[C+15|0]=a[A+25|0]|a[C+15|0],o[C+15|0]=a[A+26|0]|a[C+15|0],o[C+15|0]=a[A+27|0]|a[C+15|0],o[C+15|0]=a[A+28|0]|a[C+15|0],o[C+15|0]=a[A+29|0]|a[C+15|0],o[C+15|0]=a[A+30|0]|a[C+15|0],o[C+15|0]=a[A+31|0]|a[C+15|0],B=(a[C+15|0]<<23)-8388608>>31),h=C+16|0,0|B}function CI(A,I,g,C,B){var Q=0,i=0,o=0,a=0,_=0,c=0,t=0;A:{if(1==(0|C)|C>>>0>1)E[9392]=22;else{h=C=h-128|0,E[C- -64>>2]=0,E[C+56>>2]=0,E[C+60>>2]=0,E[C+48>>2]=0,E[C+52>>2]=0,E[C+40>>2]=0,E[C+44>>2]=0,E[C+32>>2]=0,E[C+36>>2]=0,E[C+24>>2]=0,E[C+28>>2]=0,E[C+16>>2]=0,E[C+20>>2]=0,Q=LI(A),E[C+28>>2]=Q,E[C+44>>2]=Q,E[C+12>>2]=Q,i=K(Q),E[C+40>>2]=i,o=K(Q),E[C+24>>2]=o,a=K(Q),E[C+8>>2]=a;I:if(!a|!i|!o||!(Q=K(Q)))gA(i),gA(o),gA(a),A=-22;else{if(A=WA(C+8|0,A,B)){gA(E[C+40>>2]),gA(E[C+24>>2]),gA(E[C+8>>2]),gA(Q);break I}a=E[C+28>>2],_=E[C+24>>2],A=E[C+60>>2],c=E[C+52>>2],t=E[C+48>>2],ag(Q,i=E[C+12>>2]),(o=K(i))?(E[C+100>>2]=0,E[C+104>>2]=0,E[C+92>>2]=0,E[C+96>>2]=0,E[C+88>>2]=a,E[C+84>>2]=_,E[C+80>>2]=g,E[C+76>>2]=I,E[C+72>>2]=i,E[C+68>>2]=o,E[C+124>>2]=0,E[C+120>>2]=A,E[C+116>>2]=A,E[C+112>>2]=c,E[C+108>>2]=t,(A=L(C+68|0,B))||Sg(Q,o,i),XC(o,i),gA(o)):A=-22,gA(E[C+40>>2]),gA(E[C+24>>2]),A||(A=MI(Q,E[C+8>>2],E[C+12>>2])?-35:0),gA(Q),gA(E[C+8>>2])}if(h=C+128|0,I=A,!A)break A;-35==(0|A)&&(E[9392]=28)}I=-1}return I}function BI(A,I){var g,C,B,Q,i,a,_,t=0,r=0;C=E[I+32>>2],B=E[I+28>>2],Q=E[I+24>>2],i=E[I+20>>2],a=E[I+16>>2],_=E[I+12>>2],t=E[I+4>>2],r=E[I>>2],g=E[I+36>>2],I=E[I+8>>2],r=c((C+(B+(Q+(i+(a+(_+((t+(r+(c(g,19)+16777216>>>25|0)>>26)>>25)+I>>26)>>25)>>26)>>25)>>26)>>25)>>26)+g>>25,19)+r|0,o[0|A]=r,o[A+2|0]=r>>>16,o[A+1|0]=r>>>8,t=t+(r>>26)|0,o[A+5|0]=t>>>14,o[A+4|0]=t>>>6,o[A+3|0]=r>>>24&3|t<<2,I=I+(t>>25)|0,o[A+8|0]=I>>>13,o[A+7|0]=I>>>5,o[A+6|0]=I<<3|(29360128&t)>>>22,r=(I>>26)+_|0,o[A+11|0]=r>>>11,o[A+10|0]=r>>>3,o[A+9|0]=r<<5|(65011712&I)>>>21,t=(r>>25)+a|0,o[A+15|0]=t>>>18,o[A+14|0]=t>>>10,o[A+13|0]=t>>>2,I=(t>>26)+i|0,o[A+16|0]=I,o[A+12|0]=t<<6|(33030144&r)>>>19,o[A+18|0]=I>>>16,o[A+17|0]=I>>>8,t=(I>>25)+Q|0,o[A+21|0]=t>>>15,o[A+20|0]=t>>>7,o[A+19|0]=I>>>24&1|t<<1,I=(t>>26)+B|0,o[A+24|0]=I>>>13,o[A+23|0]=I>>>5,o[A+22|0]=I<<3|(58720256&t)>>>23,t=(I>>25)+C|0,o[A+27|0]=t>>>12,o[A+26|0]=t>>>4,o[A+25|0]=t<<4|(31457280&I)>>>21,I=g+(t>>26)|0,o[A+30|0]=I>>>10,o[A+29|0]=I>>>2,o[A+31|0]=(33292288&I)>>>18,o[A+28|0]=I<<6|(66060288&t)>>>20}function QI(A,I,g){A|=0,I|=0;var C,B=0,Q=0,i=0,E=0,_=0,c=0,t=0;if(h=C=h-192|0,(g|=0)>>>0>=129&&(SI(A),nA(A,I,g,0),z(A,C),g=64,I=C),SI(A),Hg(C- -64|0,54,128),g){if(g>>>0>=4)for(t=252&g;o[0|(B=(i=C- -64|0)+Q|0)]=a[0|B]^a[I+Q|0],o[0|(E=(B=1|Q)+i|0)]=a[0|E]^a[I+B|0],o[0|(E=(B=2|Q)+i|0)]=a[0|E]^a[I+B|0],o[0|(B=(B=i)+(i=3|Q)|0)]=a[0|B]^a[I+i|0],Q=Q+4|0,(0|t)!=(0|(_=_+4|0)););if(_=3&g)for(;o[0|(i=(C- -64|0)+Q|0)]=a[0|i]^a[I+Q|0],Q=Q+1|0,(0|_)!=(0|(c=c+1|0)););}if(nA(A,Q=C- -64|0,128,0),SI(i=A+208|0),Hg(Q,92,128),g){if(c=0,Q=0,g>>>0>=4)for(t=252&g,_=0;o[0|(B=(A=C- -64|0)+Q|0)]=a[0|B]^a[I+Q|0],o[0|(E=(B=1|Q)+A|0)]=a[0|E]^a[I+B|0],o[0|(E=(B=2|Q)+A|0)]=a[0|E]^a[I+B|0],o[0|(B=(B=A)+(A=3|Q)|0)]=a[0|B]^a[A+I|0],Q=Q+4|0,(0|t)!=(0|(_=_+4|0)););if(A=3&g)for(;o[0|(g=(C- -64|0)+Q|0)]=a[0|g]^a[I+Q|0],Q=Q+1|0,(0|A)!=(0|(c=c+1|0)););}return nA(i,A=C- -64|0,128,0),XC(A,128),XC(C,64),h=C+192|0,0}function iI(A,I){var g;return A|=0,I|=0,E[12+(g=h-16|0)>>2]=A,E[g+8>>2]=I,E[g+4>>2]=0,E[g+4>>2]=E[g+4>>2]|a[E[g+12>>2]]^a[E[g+8>>2]],E[g+4>>2]=E[g+4>>2]|a[E[g+12>>2]+1|0]^a[E[g+8>>2]+1|0],E[g+4>>2]=E[g+4>>2]|a[E[g+12>>2]+2|0]^a[E[g+8>>2]+2|0],E[g+4>>2]=E[g+4>>2]|a[E[g+12>>2]+3|0]^a[E[g+8>>2]+3|0],E[g+4>>2]=E[g+4>>2]|a[E[g+12>>2]+4|0]^a[E[g+8>>2]+4|0],E[g+4>>2]=E[g+4>>2]|a[E[g+12>>2]+5|0]^a[E[g+8>>2]+5|0],E[g+4>>2]=E[g+4>>2]|a[E[g+12>>2]+6|0]^a[E[g+8>>2]+6|0],E[g+4>>2]=E[g+4>>2]|a[E[g+12>>2]+7|0]^a[E[g+8>>2]+7|0],E[g+4>>2]=E[g+4>>2]|a[E[g+12>>2]+8|0]^a[E[g+8>>2]+8|0],E[g+4>>2]=E[g+4>>2]|a[E[g+12>>2]+9|0]^a[E[g+8>>2]+9|0],E[g+4>>2]=E[g+4>>2]|a[E[g+12>>2]+10|0]^a[E[g+8>>2]+10|0],E[g+4>>2]=E[g+4>>2]|a[E[g+12>>2]+11|0]^a[E[g+8>>2]+11|0],E[g+4>>2]=E[g+4>>2]|a[E[g+12>>2]+12|0]^a[E[g+8>>2]+12|0],E[g+4>>2]=E[g+4>>2]|a[E[g+12>>2]+13|0]^a[E[g+8>>2]+13|0],E[g+4>>2]=E[g+4>>2]|a[E[g+12>>2]+14|0]^a[E[g+8>>2]+14|0],E[g+4>>2]=E[g+4>>2]|a[E[g+12>>2]+15|0]^a[E[g+8>>2]+15|0],(E[g+4>>2]-1>>>8&1)-1|0}function oI(A,I,g){var C=0,B=0,Q=0,i=0,o=0,E=0,a=0,_=0,r=0;A:{I:{g:{C:{B:{Q:{i:{o:{E:{if(I){if(!g)break E;break o}return D=(I=A)-c(A=(A>>>0)/(g>>>0)|0,g)|0,p=0,w=0,A}if(!A)break i;break Q}if(!((C=g-1|0)&g))break B;Q=0-(i=(t(g)+33|0)-t(I)|0)|0;break g}return D=0,p=I-c(A=(I>>>0)/0|0,0)|0,w=0,A}if((C=32-t(I)|0)>>>0<31)break C;break I}if(D=A&C,p=0,1==(0|g))break A;return g=31&(C=FC(g)),(63&C)>>>0>=32?A=I>>>g|0:(B=I>>>g|0,A=((1<>>g),w=B,A}i=C+1|0,Q=63-C|0}if(C=31&(B=63&i),B>>>0>=32?(B=0,o=I>>>C|0):(B=I>>>C|0,o=((1<>>C),C=31&(Q&=63),Q>>>0>=32?(I=A<>>32-C|I<>>31,o=(B=o<<1|I>>>31)-(a=g&(Q=_-(E+(B>>>0>C>>>0)|0)>>31))|0,B=E-(B>>>0>>0)|0,I=I<<1|A>>>31,A=r|A<<1,r=E=1&Q,i=i-1|0;);return D=o,p=B,w=I<<1|A>>>31,E|A<<1}D=A,p=I,A=0,I=0}return w=I,A}function EI(A,I,g,C,B){var Q;return A|=0,I|=0,g|=0,C|=0,h=Q=h-480|0,QI(Q,B|=0,32),dC(Q,I,g,C),fg(Q,Q+416|0),I=E[Q+444>>2],g=E[Q+440>>2],o[A+24|0]=g,o[A+25|0]=g>>>8,o[A+26|0]=g>>>16,o[A+27|0]=g>>>24,o[A+28|0]=I,o[A+29|0]=I>>>8,o[A+30|0]=I>>>16,o[A+31|0]=I>>>24,I=E[Q+436>>2],g=E[Q+432>>2],o[A+16|0]=g,o[A+17|0]=g>>>8,o[A+18|0]=g>>>16,o[A+19|0]=g>>>24,o[A+20|0]=I,o[A+21|0]=I>>>8,o[A+22|0]=I>>>16,o[A+23|0]=I>>>24,I=E[Q+428>>2],g=E[Q+424>>2],o[A+8|0]=g,o[A+9|0]=g>>>8,o[A+10|0]=g>>>16,o[A+11|0]=g>>>24,o[A+12|0]=I,o[A+13|0]=I>>>8,o[A+14|0]=I>>>16,o[A+15|0]=I>>>24,I=E[Q+420>>2],g=E[Q+416>>2],o[0|A]=g,o[A+1|0]=g>>>8,o[A+2|0]=g>>>16,o[A+3|0]=g>>>24,o[A+4|0]=I,o[A+5|0]=I>>>8,o[A+6|0]=I>>>16,o[A+7|0]=I>>>24,h=Q+480|0,0}function aI(A,I,g){A|=0,I|=0;var C,B=0;return h=C=h+-64|0,kI(C,g|=0,32,0),g=E[C+28>>2],B=E[C+24>>2],o[I+24|0]=B,o[I+25|0]=B>>>8,o[I+26|0]=B>>>16,o[I+27|0]=B>>>24,o[I+28|0]=g,o[I+29|0]=g>>>8,o[I+30|0]=g>>>16,o[I+31|0]=g>>>24,g=E[C+20>>2],B=E[C+16>>2],o[I+16|0]=B,o[I+17|0]=B>>>8,o[I+18|0]=B>>>16,o[I+19|0]=B>>>24,o[I+20|0]=g,o[I+21|0]=g>>>8,o[I+22|0]=g>>>16,o[I+23|0]=g>>>24,g=E[C+12>>2],B=E[C+8>>2],o[I+8|0]=B,o[I+9|0]=B>>>8,o[I+10|0]=B>>>16,o[I+11|0]=B>>>24,o[I+12|0]=g,o[I+13|0]=g>>>8,o[I+14|0]=g>>>16,o[I+15|0]=g>>>24,g=E[C+4>>2],B=E[C>>2],o[0|I]=B,o[I+1|0]=B>>>8,o[I+2|0]=B>>>16,o[I+3|0]=B>>>24,o[I+4|0]=g,o[I+5|0]=g>>>8,o[I+6|0]=g>>>16,o[I+7|0]=g>>>24,XC(C,64),A=wC(A,I),h=C- -64|0,0|A}function _I(A,I){var g=0,C=0,B=0,Q=0,i=0,o=0;if(I>>>0>4294967168)A=48;else{if(I>>>0>=4294967168?(E[9392]=48,g=0):(g=0,(I=K(76+(Q=I>>>0<11?16:I+11&-8)|0))&&(g=I-8|0,63&I?(B=(-8&(o=E[(i=I-4|0)>>2]))-(C=(I=((I=(I+63&-64)-8|0)-g>>>0<=15?64:0)+I|0)-g|0)|0,3&o?(E[I+4>>2]=B|1&E[I+4>>2]|2,E[4+(B=I+B|0)>>2]=1|E[B+4>>2],E[i>>2]=C|1&E[i>>2]|2,E[4+(B=g+C|0)>>2]=1|E[B+4>>2],iA(g,C)):(g=E[g>>2],E[I+4>>2]=B,E[I>>2]=g+C)):I=g,3&(g=E[I+4>>2])&&((C=-8&g)>>>0<=Q+16>>>0||(E[I+4>>2]=Q|1&g|2,g=I+Q|0,Q=C-Q|0,E[g+4>>2]=3|Q,E[4+(C=I+C|0)>>2]=1|E[C+4>>2],iA(g,Q))),g=I+8|0)),!g)return 48;E[A>>2]=g,A=0}return A}function cI(A,I,g,C,B,Q,i,o,a,_,c){var t;if(t=Hg(A,0,I),1==(0|g)|g>>>0>1)return E[9392]=22,-1;if(!(!g&I>>>0<=15)){if(!(!(Q|a)&_>>>0<2147483649))return E[9392]=22,-1;if(!(!((!a&o>>>0>=3|0!=(0|a))&_>>>0>8191)|(0|C)==(0|t)))return 1==(0|c)?(Q=_>>>10|0,h=A=h+-64|0,t&&ag(t,I),(g=K(I))?(E[A+36>>2]=0,E[A+40>>2]=0,E[A+28>>2]=0,E[A+32>>2]=0,E[A+24>>2]=16,E[A+20>>2]=i,E[A+16>>2]=B,E[A+12>>2]=C,E[A+8>>2]=I,E[A+4>>2]=g,E[A+60>>2]=0,E[A+56>>2]=1,E[A+52>>2]=1,E[A+48>>2]=Q,E[A+44>>2]=o,(C=L(A+4|0,1))|!t||Sg(t,g,I),XC(g,I),gA(g)):C=-22,h=A- -64|0,C?-1:0):(E[9392]=28,-1)}return E[9392]=28,-1}function tI(A,I,g,C,B,Q,i,o,a,_,c){var t;if(t=Hg(A,0,I),1==(0|g)|g>>>0>1)return E[9392]=22,-1;if(!(!g&I>>>0<=15)){if(!(!(Q|a)&_>>>0<2147483649))return E[9392]=22,-1;if(!(!(!!(o|a)&_>>>0>8191)|(0|C)==(0|t)))return 2==(0|c)?(Q=_>>>10|0,h=A=h+-64|0,t&&ag(t,I),(g=K(I))?(E[A+36>>2]=0,E[A+40>>2]=0,E[A+28>>2]=0,E[A+32>>2]=0,E[A+24>>2]=16,E[A+20>>2]=i,E[A+16>>2]=B,E[A+12>>2]=C,E[A+8>>2]=I,E[A+4>>2]=g,E[A+60>>2]=0,E[A+56>>2]=1,E[A+52>>2]=1,E[A+48>>2]=Q,E[A+44>>2]=o,(C=L(A+4|0,2))|!t||Sg(t,g,I),XC(g,I),gA(g)):C=-22,h=A- -64|0,C?-1:0):(E[9392]=28,-1)}return E[9392]=28,-1}function rI(A,I,g,C,B,Q,i){var o,a,_,c,t=0;return h=o=h-352|0,yA(o,Q,i,0),!((!B&C>>>0>A-g>>>0|0!=(0|B))&A>>>0>g>>>0)&(!B&C>>>0<=g-A>>>0|A>>>0>=g>>>0)||(g=yg(A,g,C)),E[o+56>>2]=0,E[o+60>>2]=0,E[o+48>>2]=0,E[o+52>>2]=0,E[o+40>>2]=0,E[o+44>>2]=0,E[o+32>>2]=0,E[o+36>>2]=0,(_=!((i=(t=!B&C>>>0>=32|0!=(0|B))?32:C)|(t=t?0:B)))||Sg(o- -64|0,g,i),ug(a=o+32|0,a,c=i+32|0,c>>>0<32?t+1|0:t,Q=Q+16|0,o),fC(o+96|0,a),_||Sg(A,o- -64|0,i),XC(o+32|0,64),!B&C>>>0>=33|B&&Ug(A+i|0,g+i|0,C-i|0,B-(t+(C>>>0>>0)|0)|0,Q,1,0,o),XC(o,32),NC(g=o+96|0,A,C,B),nC(g,I),XC(g,256),h=o+352|0,0}function eI(A,I,g,C,B,Q,i){var o,a,_,c,t=0;return h=o=h-352|0,fA(o,Q,i,0),!((!B&C>>>0>A-g>>>0|0!=(0|B))&A>>>0>g>>>0)&(!B&C>>>0<=g-A>>>0|A>>>0>=g>>>0)||(g=yg(A,g,C)),E[o+56>>2]=0,E[o+60>>2]=0,E[o+48>>2]=0,E[o+52>>2]=0,E[o+40>>2]=0,E[o+44>>2]=0,E[o+32>>2]=0,E[o+36>>2]=0,(_=!((i=(t=!B&C>>>0>=32|0!=(0|B))?32:C)|(t=t?0:B)))||Sg(o- -64|0,g,i),aC(a=o+32|0,a,c=i+32|0,c>>>0<32?t+1|0:t,Q=Q+16|0,o),fC(o+96|0,a),_||Sg(A,o- -64|0,i),XC(o+32|0,64),!B&C>>>0>=33|B&&oC(A+i|0,g+i|0,C-i|0,B-(t+(C>>>0>>0)|0)|0,Q,1,0,o),XC(o,32),NC(g=o+96|0,A,C,B),nC(g,I),XC(g,256),h=o+352|0,0}function yI(A,I,g,C,B,Q,i){var o,E,a=0,_=0,c=0;h=o=h-96|0,fA(o,Q,i,0),pC(i=o+32|0,32,0,E=Q+16|0,o),Q=-1;A:{if(!DC(g,I,C,B,i)){if(Q=0,!A)break A;!((!B&C>>>0>I-A>>>0|0!=(0|B))&A>>>0>>0)&(!B&C>>>0<=A-I>>>0|A>>>0<=I>>>0)||(I=yg(A,I,C)),_=i=(Q=!B&C>>>0>=32|0!=(0|B))?0:B,(g=Q?32:C)|i?(c=Sg(o- -64|0,I,g),aC(Q=o+32|0,Q,a=g+32|0,i=a>>>0<32?i+1|0:i,E,o),Sg(A,c,g)):aC(Q=o+32|0,Q,a=g+32|0,i=a>>>0<32?i+1|0:i,E,o),XC(o+32|0,64),Q=0,!B&C>>>0<33||oC(A+g|0,I+g|0,C-g|0,B-(_+(g>>>0>C>>>0)|0)|0,E,1,0,o)}XC(o,32)}return h=o+96|0,Q}function sI(A,I,g,C,B,Q,i,o,_,c){var t,r;return h=t=h-400|0,E[t+4>>2]=0,yA(r=t+16|0,_,c,0),c=a[_+20|0]|a[_+21|0]<<8|a[_+22|0]<<16|a[_+23|0]<<24,E[t+8>>2]=a[_+16|0]|a[_+17|0]<<8|a[_+18|0]<<16|a[_+19|0]<<24,E[t+12>>2]=c,Xg(c=t+80|0,64,0,t+4|0,r),fC(_=t+144|0,c),XC(c,64),NC(_,Q,i,o),NC(_,35680,0-i&15,0),NC(_,I,g,C),NC(_,35680,0-g&15,0),E[t+72>>2]=i,E[t+76>>2]=o,NC(_,Q=t+72|0,8,0),E[t+72>>2]=g,E[t+76>>2]=C,NC(_,Q,8,0),nC(_,Q=t+48|0),XC(_,256),_=iI(Q,B),XC(Q,16),A&&(_?(Hg(A,0,g),_=-1):(Og(A,I,g,C,t+4|0,t+16|0),_=0)),XC(t+16|0,32),h=t+400|0,_}function hI(A,I,g,C,B,Q,i){var o,E,a=0,_=0,c=0;h=o=h-96|0,yA(o,Q,i,0),jg(i=o+32|0,32,0,E=Q+16|0,o),Q=-1;A:{if(!DC(g,I,C,B,i)){if(Q=0,!A)break A;!((!B&C>>>0>I-A>>>0|0!=(0|B))&A>>>0>>0)&(!B&C>>>0<=A-I>>>0|A>>>0<=I>>>0)||(I=yg(A,I,C)),_=i=(Q=!B&C>>>0>=32|0!=(0|B))?0:B,(g=Q?32:C)|i?(c=Sg(o- -64|0,I,g),ug(Q=o+32|0,Q,a=g+32|0,i=a>>>0<32?i+1|0:i,E,o),Sg(A,c,g)):ug(Q=o+32|0,Q,a=g+32|0,i=a>>>0<32?i+1|0:i,E,o),Q=0,!B&C>>>0<33||Ug(A+g|0,I+g|0,C-g|0,B-(_+(g>>>0>C>>>0)|0)|0,E,1,0,o)}XC(o,32)}return h=o+96|0,Q}function DI(A,I,g,C,B,Q){var i,a;if(h=i=h-496|0,UA(a=i+288|0,A,I),YC(a,g,C,0),Q)for(A=0,I=0;g=(I=I+1|0)<<24|(65280&I)<<8|I>>>8&65280|I>>>24,o[i+76|0]=g,o[i+77|0]=g>>>8,o[i+78|0]=g>>>16,o[i+79|0]=g>>>24,Sg(g=i+80|0,i+288|0,208),YC(g,i+76|0,4,0),Fg(g,i+32|0),g=E[i+60>>2],E[i+24>>2]=E[i+56>>2],E[i+28>>2]=g,g=E[i+52>>2],E[i+16>>2]=E[i+48>>2],E[i+20>>2]=g,g=E[i+44>>2],E[i+8>>2]=E[i+40>>2],E[i+12>>2]=g,g=E[i+36>>2],E[i>>2]=E[i+32>>2],E[i+4>>2]=g,Sg(g=A+B|0,i,(A=Q-A|0)>>>0>=32?32:A),Q>>>0>(A=I<<5)>>>0;);XC(i+288|0,208),h=i+496|0}function pI(A){var I=0,g=0,C=0;if(!A)return-25;if(!E[A>>2])return-1;if(I=-2,!(_[A+4>>2]<16)&&(E[A+8>>2]||(I=-18,!E[A+12>>2]))){if(g=E[A+20>>2],!E[A+16>>2])return g?-19:-6;if(I=-6,!(g>>>0<8)&&(E[A+24>>2]||(I=-20,!E[A+28>>2]))&&(E[A+32>>2]||(I=-21,!E[A+36>>2]))){if(!(g=E[A+48>>2]))return-16;if(I=-17,!(g>>>0>16777215||(I=-14,(C=E[A+44>>2])>>>0<8||(I=-15,C>>>0>2097152||(I=-14,g<<3>>>0>C>>>0))))){if(!E[A+40>>2])return-12;if(!(A=E[A+52>>2]))return-28;I=A>>>0>16777215?-29:0}}}return I}function wI(A,I,g,C,B,Q){var i,E,a=0;return h=i=h-32|0,a=-1,(E=g>>>0<32)&!C||(Kg(i,32,0,B,Q),DC(I+16|0,I+32|0,g-32|0,C-E|0,i)||(Gg(A,I,g,C,B,Q),o[A+24|0]=0,o[A+25|0]=0,o[A+26|0]=0,o[A+27|0]=0,o[A+28|0]=0,o[A+29|0]=0,o[A+30|0]=0,o[A+31|0]=0,o[A+16|0]=0,o[A+17|0]=0,o[A+18|0]=0,o[A+19|0]=0,o[A+20|0]=0,o[A+21|0]=0,o[A+22|0]=0,o[A+23|0]=0,o[A+8|0]=0,o[A+9|0]=0,o[A+10|0]=0,o[A+11|0]=0,o[A+12|0]=0,o[A+13|0]=0,o[A+14|0]=0,o[A+15|0]=0,o[0|A]=0,o[A+1|0]=0,o[A+2|0]=0,o[A+3|0]=0,o[A+4|0]=0,o[A+5|0]=0,o[A+6|0]=0,o[A+7|0]=0,a=0)),h=i+32|0,a}function fI(A,I,g,C,B,Q,i,o,_,c,t){var r,e,y;return h=r=h-384|0,E[r+4>>2]=0,yA(e=r+16|0,c,t,0),t=a[c+20|0]|a[c+21|0]<<8|a[c+22|0]<<16|a[c+23|0]<<24,E[r+8>>2]=a[c+16|0]|a[c+17|0]<<8|a[c+18|0]<<16|a[c+19|0]<<24,E[r+12>>2]=t,Xg(t=r- -64|0,64,0,y=r+4|0,e),fC(c=r+128|0,t),XC(t,64),NC(c,i,o,_),NC(c,35680,0-o&15,0),Og(A,C,B,Q,y,e),NC(c,A,B,Q),NC(c,35680,0-B&15,0),E[r+56>>2]=o,E[r+60>>2]=_,NC(c,A=r+56|0,8,0),E[r+56>>2]=B,E[r+60>>2]=Q,NC(c,A,8,0),nC(c,I),XC(c,256),g&&(E[g>>2]=16,E[g+4>>2]=0),XC(r+16|0,32),h=r+384|0,0}function nI(A,I,g,C,B){var Q,i,o=0;return h=Q=h+-64|0,!g&(i=LI(A))>>>0<128?(E[Q+60>>2]=0,E[Q+52>>2]=0,E[Q+56>>2]=0,E[Q+44>>2]=0,E[Q+48>>2]=0,g=0,i&&(g=i,(1|i)>>>0<65536||(g=i)),!(o=K(g))|!(3&a[o-4|0])||Hg(o,0,g),o?(E[Q+36>>2]=0,E[Q+40>>2]=0,E[Q+12>>2]=o,E[Q+20>>2]=o,E[Q+24>>2]=i,E[Q+4>>2]=o,E[Q+16>>2]=i,E[Q+28>>2]=0,E[Q+32>>2]=0,E[Q+8>>2]=i,WA(Q+4|0,A,B)?(E[9392]=28,A=-1):A=E[Q+44>>2]!=(0|I)|E[Q+48>>2]!=(C>>>10|0),gA(o)):A=-1):(E[9392]=28,A=-1),h=Q- -64|0,A}function kI(A,I,g,C){var B,Q=0;return h=B=h-208|0,E[B+72>>2]=0,E[B+76>>2]=0,Q=E[8691],E[B+8>>2]=E[8690],E[B+12>>2]=Q,Q=E[8693],E[B+16>>2]=E[8692],E[B+20>>2]=Q,Q=E[8695],E[B+24>>2]=E[8694],E[B+28>>2]=Q,Q=E[8697],E[B+32>>2]=E[8696],E[B+36>>2]=Q,Q=E[8699],E[B+40>>2]=E[8698],E[B+44>>2]=Q,Q=E[8701],E[B+48>>2]=E[8700],E[B+52>>2]=Q,Q=E[8703],E[B+56>>2]=E[8702],E[B+60>>2]=Q,E[B+64>>2]=0,E[B+68>>2]=0,Q=E[8689],E[B>>2]=E[8688],E[B+4>>2]=Q,nA(B,I,g,C),z(B,A),h=B+208|0,0}function FI(A,I){var g=0,C=0;A:if(C=255&I){if(3&A)for(;;){if(!(g=a[0|A])|(0|g)==(255&I))break A;if(!(3&(A=A+1|0)))break}I:if(!((-1^(g=E[A>>2]))&g-16843009&-2139062144))for(C=c(C,16843009);;){if((-1^(g^=C))&g-16843009&-2139062144)break I;if(g=E[A+4>>2],A=A+4|0,g-16843009&(-1^g)&-2139062144)break}for(;g=A,(C=a[0|A])&&(A=A+1|0,(0|C)!=(255&I)););A=g}else A=LI(A)+A|0;return a[0|A]==(255&I)?A:0}function NI(A,I){var g,C=0,B=0,Q=0;if(o[15+(g=h-16|0)|0]=0,I){if(B=3&I,I>>>0>=4)for(Q=-4&I,I=0;o[g+15|0]=a[A+C|0]|a[g+15|0],o[g+15|0]=a[(1|C)+A|0]|a[g+15|0],o[g+15|0]=a[(2|C)+A|0]|a[g+15|0],o[g+15|0]=a[(3|C)+A|0]|a[g+15|0],C=C+4|0,(0|Q)!=(0|(I=I+4|0)););if(B)for(I=0;o[g+15|0]=a[A+C|0]|a[g+15|0],C=C+1|0,(0|B)!=(0|(I=I+1|0)););}return a[g+15|0]-1>>>8&1}function SI(A){var I=0;return E[64+(A|=0)>>2]=0,E[A+68>>2]=0,E[A+72>>2]=0,E[A+76>>2]=0,I=E[8689],E[A>>2]=E[8688],E[A+4>>2]=I,I=E[8691],E[A+8>>2]=E[8690],E[A+12>>2]=I,I=E[8693],E[A+16>>2]=E[8692],E[A+20>>2]=I,I=E[8695],E[A+24>>2]=E[8694],E[A+28>>2]=I,I=E[8697],E[A+32>>2]=E[8696],E[A+36>>2]=I,I=E[8699],E[A+40>>2]=E[8698],E[A+44>>2]=I,I=E[8701],E[A+48>>2]=E[8700],E[A+52>>2]=I,I=E[8703],E[A+56>>2]=E[8702],E[A+60>>2]=I,0}function GI(A){return((127&(-1^a[A+31|0])|a[A+1|0]&a[A+2|0]&a[A+3|0]&a[A+4|0]&a[A+5|0]&a[A+6|0]&a[A+7|0]&a[A+8|0]&a[A+9|0]&a[A+10|0]&a[A+11|0]&a[A+12|0]&a[A+13|0]&a[A+14|0]&a[A+15|0]&a[A+16|0]&a[A+17|0]&a[A+18|0]&a[A+19|0]&a[A+20|0]&a[A+21|0]&a[A+22|0]&a[A+23|0]&a[A+24|0]&a[A+25|0]&a[A+26|0]&a[A+27|0]&a[A+28|0]&a[A+30|0]&a[A+29|0]^255)-1&236-a[0|A]^-1)>>>8&1}function MI(A,I,g){var C,B=0,Q=0;if(E[12+(C=h-16|0)>>2]=A,E[C+8>>2]=I,A=0,o[C+7|0]=0,g){if(I=1&g,1!=(0|g))for(Q=-2&g,g=0;o[C+7|0]=a[C+7|0]|a[E[C+12>>2]+A|0]^a[E[C+8>>2]+A|0],B=1|A,o[C+7|0]=a[C+7|0]|a[B+E[C+12>>2]|0]^a[E[C+8>>2]+B|0],A=A+2|0,(0|Q)!=(0|(g=g+2|0)););I&&(o[C+7|0]=a[C+7|0]|a[E[C+12>>2]+A|0]^a[E[C+8>>2]+A|0])}return(a[C+7|0]-1>>>8&1)-1|0}function bI(A){for(var I=0,g=0,C=0,B=0,Q=0,i=0,o=0,E=0,_=0,c=0;B=(g=a[A+C|0])^a[0|(I=C+2704|0)]|B,Q=g^a[I+192|0]|Q,i=g^a[I+160|0]|i,o=g^a[I+128|0]|o,E=g^a[I+96|0]|E,_=g^a[I- -64|0]|_,c=g^a[I+32|0]|c,31!=(0|(C=C+1|0)););return((255&((I=127^(A=127&a[A+31|0]))|Q))-1|(255&(I|i))-1|(255&(I|o))-1|(255&(122^A|E))-1|(255&(5^A|_))-1|(255&(A|c))-1|(255&(A|B))-1)>>>8&1}function KI(A,I,g){var C=0,B=0,Q=0,i=0;return B=31&(Q=i=63&g),Q=Q>>>0>=32?-1>>>B|0:(C=-1>>>B|0)|(1<>>0>=32?(C=Q<>>32-B|C<>>0>=32?(C=-1<>>32-C,A&=g,I&=C,C=31&B,B>>>0>=32?(g=0,A=I>>>C|0):(g=I>>>C|0,A=((1<>>C),w=g|Q,A|i}function HI(A,I,g,C,B,Q){A|=0,I|=0,g|=0;var i=0,o=0;A:I:{g:{if(!(!(B|=0)&(C|=0)>>>0<64||(o=1+(B=B-1|0)|0,i=B,!(C=(B=C+-64|0)>>>0<4294967232?o:i)&B>>>0>4294967231|C))){if(!H(i=g,g=g- -64|0,B,C,Q|=0,0))break g;A&&Hg(A,0,B)}if(C=-1,!I)break I;E[I>>2]=0,E[I+4>>2]=0,C=-1;break A}I&&(E[I>>2]=B,E[I+4>>2]=C),C=0,A&&yg(A,g,B)}return 0|C}function YI(A,I,g,C,B,Q,i,o,a,_){var c,t,r;return h=c=h-352|0,Xg(r=c+32|0,64,0,a,_),fC(t=c+96|0,r),XC(r,64),NC(t,Q,i,o),NC(t,35648,0-i&15,0),NC(t,I,g,C),NC(t,35648,0-g&15,0),E[c+24>>2]=i,E[c+28>>2]=o,NC(t,Q=c+24|0,8,0),E[c+24>>2]=g,E[c+28>>2]=C,NC(t,Q,8,0),nC(t,c),XC(t,256),Q=iI(c,B),XC(c,16),A&&(Q?(Hg(A,0,g),Q=-1):(gg(A,I,g,C,a,1,_),Q=0)),h=c+352|0,Q}function dI(A,I,g,C,B,Q){var i,o;return A|=0,I|=0,g|=0,C|=0,Q|=0,h=i=h-32|0,o=a[0|(B|=0)]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,B=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,E[i+24>>2]=0,E[i+28>>2]=0,E[i+16>>2]=o,E[i+20>>2]=B,E[i+8>>2]=0,E[i+12>>2]=0,E[i>>2]=g,E[i+4>>2]=C,I-65>>>0<=4294967246?(E[9392]=28,A=-1):A=QA(A,I,0,0,0,Q,32,i,i+16|0),h=i+32|0,0|A}function JI(A,I,g,C,B){var Q,i;return A|=0,I|=0,g|=0,C|=0,h=Q=h-512|0,QI(i=Q+32|0,B|=0,32),dC(i,I,g,C),fg(i,Q+448|0),I=E[Q+476>>2],E[Q+24>>2]=E[Q+472>>2],E[Q+28>>2]=I,I=E[Q+468>>2],E[Q+16>>2]=E[Q+464>>2],E[Q+20>>2]=I,I=E[Q+460>>2],E[Q+8>>2]=E[Q+456>>2],E[Q+12>>2]=I,I=E[Q+452>>2],E[Q>>2]=E[Q+448>>2],E[Q+4>>2]=I,I=SC(A,Q),g=MI(Q,A,32),h=Q+512|0,((0|A)==(0|Q)?-1:I)|g}function UI(A,I,g,C,B,Q,i,o,a,_){var c,t,r;return h=c=h-352|0,jg(r=c+32|0,64,0,a,_),fC(t=c+96|0,r),XC(r,64),NC(t,Q,i,o),E[c+24>>2]=i,E[c+28>>2]=o,NC(t,Q=c+24|0,8,0),NC(t,I,g,C),E[c+24>>2]=g,E[c+28>>2]=C,NC(t,Q,8,0),nC(t,c),XC(t,256),Q=iI(c,B),XC(c,16),A&&(Q?(Hg(A,0,g),Q=-1):(Ug(A,I,g,C,a,1,0,_),Q=0)),h=c+352|0,Q}function lI(A,I,g,C,B,Q,i,o,a,_,c){var t,r,e;return h=t=h-336|0,Xg(e=t+16|0,64,0,_,c),fC(r=t+80|0,e),XC(e,64),NC(r,i,o,a),NC(r,35648,0-o&15,0),gg(A,C,B,Q,_,1,c),NC(r,A,B,Q),NC(r,35648,0-B&15,0),E[t+8>>2]=o,E[t+12>>2]=a,NC(r,A=t+8|0,8,0),E[t+8>>2]=B,E[t+12>>2]=Q,NC(r,A,8,0),nC(r,I),XC(r,256),g&&(E[g>>2]=16,E[g+4>>2]=0),h=t+336|0,0}function mI(A,I){var g,C=0,B=0,Q=0,i=0,o=0;A:if(!(((g=a[0|A])-58&255)>>>0<246)){for(C=g,B=A;;){if(i=B,Q>>>0>429496729)break A;if((C=(255&C)-48|0)>>>0>(-1^(Q=c(Q,10)))>>>0)break A;if(Q=Q+C|0,!(((C=a[0|(B=B+1|0)])-58&255)>>>0>245))break}48==(0|g)&(0|A)!=(0|i)|(0|A)==(0|B)||(E[I>>2]=Q,o=B)}return o}function uI(A){var I=0,g=0,C=0,B=0;I=65,g=1024;A:{I:{if((0|(C=255&A))!=a[1024])for(C=c(C,16843009);;){if((-1^(B=C^E[g>>2]))&B-16843009&-2139062144)break I;if(g=g+4|0,!((I=I-4|0)>>>0>3))break}if(!I)break A}for(A&=255;;){if((0|A)==a[0|g])return g;if(g=g+1|0,!(I=I-1|0))break}}return 0}function xI(A,I,g,C,B,Q,i,o,a,_,c){var t,r,e;return h=t=h-336|0,jg(e=t+16|0,64,0,_,c),fC(r=t+80|0,e),XC(e,64),NC(r,i,o,a),E[t+8>>2]=o,E[t+12>>2]=a,NC(r,i=t+8|0,8,0),Ug(A,C,B,Q,_,1,0,c),NC(r,A,B,Q),E[t+8>>2]=B,E[t+12>>2]=Q,NC(r,i,8,0),nC(r,I),XC(r,256),g&&(E[g>>2]=16,E[g+4>>2]=0),h=t+336|0,0}function RI(A,I,g,C,B,Q){return!C&g>>>0>=32|C?(Gg(A,I,g,C,B,Q),hC(A+16|0,A+32|0,g-32|0,C-(g>>>0<32)|0,A),o[A+8|0]=0,o[A+9|0]=0,o[A+10|0]=0,o[A+11|0]=0,o[A+12|0]=0,o[A+13|0]=0,o[A+14|0]=0,o[A+15|0]=0,o[0|A]=0,o[A+1|0]=0,o[A+2|0]=0,o[A+3|0]=0,o[A+4|0]=0,o[A+5|0]=0,o[A+6|0]=0,o[A+7|0]=0,A=0):A=-1,A}function vI(A,I,g,C,B,Q){I|=0,B|=0,Q|=0;var i,o=0;return h=i=h-16|0,n(A|=0,i+8|0,yg(A- -64|0,g|=0,C|=0),C,B,Q,0),E[i+12>>2]|64!=E[i+8>>2]?(I&&(E[I>>2]=0,E[I+4>>2]=0),Hg(A,0,C- -64|0),o=-1):I&&(E[I>>2]=C- -64,E[I+4>>2]=B-((C>>>0<4294967232)-1|0)),h=i+16|0,0|o}function LI(A){var I=0,g=0,C=0;A:{I:if(3&(I=A)){if(!a[0|I])return 0;for(;;){if(!(3&(I=I+1|0)))break I;if(!a[0|I])break}break A}for(;g=I,I=I+4|0,!((-1^(C=E[g>>2]))&C-16843009&-2139062144););for(;g=(I=g)+1|0,a[0|I];);}return I-A|0}function PI(A,I){var g,C=0,B=0,Q=0,i=0;return(g=uI(a[0|I]))&&(C=uI(a[I+1|0]))&&(B=uI(a[I+2|0]))&&(Q=uI(a[I+3|0]))&&(i=uI(a[I+4|0]))?(E[A>>2]=g-1024|C-1024<<6|B-1024<<12|Q-1024<<18|i-1024<<24,I+5|0):(E[A>>2]=0,0)}function qI(A,I,g){var C;for(E[12+(C=h-16|0)>>2]=A,E[C+8>>2]=I,A=0,E[C+4>>2]=0;E[C+4>>2]=E[C+4>>2]|a[E[C+12>>2]+A|0]^a[E[C+8>>2]+A|0],I=1|A,E[C+4>>2]=E[C+4>>2]|a[I+E[C+12>>2]|0]^a[I+E[C+8>>2]|0],(0|g)!=(0|(A=A+2|0)););return(E[C+4>>2]-1>>>8&1)-1|0}function zI(A,I,g,C,B,Q,i,o,a,_,c){var t=0,r=0,e=0;return r=-1,(t=C>>>0<32)&!B||!(t=B-t|0)&(e=C-32|0)>>>0>4294967263|t|!o&i>>>0>4294967263|o||(r=0|pB[E[c>>2]](A,g,e,(g+C|0)-32|0,32,Q,i,a,_)),I&&(E[I>>2]=r?0:C-32|0,E[I+4>>2]=r?0:B-(C>>>0<32)|0),r}function jI(A,I){var g,C=0,B=0,Q=0;h=g=h-896|0,pA(C=g+848|0,I),pA(B=g+800|0,I+32|0),T(Q=g+320|0,C),T(I=g+160|0,B),TA(C=g+640|0,I),sA(I=g+480|0,Q,C),Y(g,I,C=g+600|0),Y(g+40|0,B=g+520|0,Q=g+560|0),Y(g+80|0,Q,C),Y(g+120|0,I,B),O(A,g),h=g+896|0}function XI(A){var I=0,g=0,C=0,B=0;for(I=1;I=a[0|(g=A+C|0)]+I|0,o[0|g]=I,I=a[0|(g=(1|C)+A|0)]+(I>>>8|0)|0,o[0|g]=I,I=a[0|(g=(2|C)+A|0)]+(I>>>8|0)|0,o[0|g]=I,I=a[0|(g=(3|C)+A|0)]+(I>>>8|0)|0,o[0|g]=I,I=I>>>8|0,C=C+4|0,4!=(0|(B=B+4|0)););}function OI(A,I,g,C,B,Q,i){var o;return h=o=h-16|0,A=Hg(A,0,128),!(C|Q)&i>>>0<2147483649?(!Q&B>>>0>=3|0!=(0|Q))&i>>>0>8191?(ag(o,16),A=oA(B,i>>>10|0,I,g,o,A,1)?-1:0):(E[9392]=28,A=-1):(E[9392]=22,A=-1),h=o+16|0,A}function VI(A,I){var g=0;4&I&&((I=E[A>>2])&&XC(E[I+4>>2],E[A+16>>2]<<10),(I=E[A+4>>2])&&XC(I,E[A+20>>2]<<3)),gA(E[A+4>>2]),E[A+4>>2]=0,(I=E[A>>2])&&(g=E[I>>2])&&gA(g),gA(I),E[A>>2]=0}function ZI(A){var I=0,g=0,C=0,B=0,Q=0,i=0,o=0,E=0;for(I=32,g=1;E=(B=a[(C=I-2|0)+A|0])-(Q=a[C+2928|0])>>8&(I=((i=a[2928+(I=I-1|0)|0])^(o=a[A+I|0]))-1>>8&g)|255&(o-i>>>8&g|E),g=I&(B^Q)-1>>8,I=C;);return 0!=(255&E)}function WI(A,I,g,C,B,i,o,a,_,c,t){return!B&C>>>0>4294967263|0!=(0|B)|!a&o>>>0>=4294967264|0!=(0|a)?(yC(),Q()):(A=0|pB[E[t>>2]](A,A+C|0,32,g,C,i,o,_,c),I&&(C=(g=C+32|0)>>>0<32?B+1|0:B,E[I>>2]=A?0:g,E[I+4>>2]=A?0:C)),A}function TI(A,I,g,C,B,Q,i){var o;return h=o=h-16|0,A=Hg(A,0,128),!(C|Q)&i>>>0<2147483649?!!(B|Q)&i>>>0>8191?(ag(o,16),A=oA(B,i>>>10|0,I,g,o,A,2)?-1:0):(E[9392]=28,A=-1):(E[9392]=22,A=-1),h=o+16|0,A}function $I(A){var I=0;return E[32+(A|=0)>>2]=0,E[A+36>>2]=0,I=E[8601],E[A>>2]=E[8600],E[A+4>>2]=I,I=E[8603],E[A+8>>2]=E[8602],E[A+12>>2]=I,I=E[8605],E[A+16>>2]=E[8604],E[A+20>>2]=I,I=E[8607],E[A+24>>2]=E[8606],E[A+28>>2]=I,0}function Ag(A,I,g,C,B,Q,i){var o,E,a=0,_=0;return h=o=h+-64|0,a=-1,(E=g>>>0<16)&!C||gI(_=o+32|0,i,Q)||yA(o,35584,_,0)||(a=hI(A,I+16|0,I,g-16|0,C-E|0,B,o),XC(o,32)),h=o- -64|0,a}function Ig(A,I,g,C){var B,Q,i,o,E=0,a=0;return o=c(E=g>>>16|0,a=A>>>16|0),E=(65535&(a=((i=c(B=65535&g,Q=65535&A))>>>16|0)+c(a,B)|0))+c(E,Q)|0,w=(c(I,g)+o|0)+c(A,C)+(a>>>16)+(E>>>16)|0,65535&i|E<<16}function gg(A,I,g,C,B,i,o){var a=0,_=0;if(a=C,!(1==(((a=(_=g+63|0)>>>0<63?a+1|0:a)>>>6|0)+(0!=(0|(a=(63&a)<<26|_>>>6)))|0)&i>>>0>(_=0-a|0)>>>0|1==(0|C)|C>>>0>1))return 0|pB[E[8928]](A,I,g,C,B,i,o);yC(),Q()}function Cg(A,I,g){var C=0,B=0;if(!g)return 0;if(C=a[0|A])A:{for(;;){if((0|(B=a[0|I]))!=(0|C)|!B)break A;if(!(g=g-1|0))break A;if(I=I+1|0,C=a[A+1|0],A=A+1|0,!C)break}C=0}else C=0;return C-a[0|I]|0}function Bg(A,I,g,C,B,Q,i){var o;return A|=0,I|=0,g|=0,C|=0,B|=0,h=o=h+-64|0,gI(o+32|0,i|=0,Q|=0)?Q=-1:(Q=-1,fA(o,35664,o+32|0,0)||(Q=wI(A,I,g,C,B,o),XC(o,32))),h=o- -64|0,0|Q}function Qg(A,I,g,C,B,Q,i){var o;return A|=0,I|=0,g|=0,C|=0,B|=0,h=o=h+-64|0,gI(o+32|0,i|=0,Q|=0)?Q=-1:(Q=-1,fA(o,35664,o+32|0,0)||(Q=RI(A,I,g,C,B,o),XC(o,32))),h=o- -64|0,0|Q}function ig(A,I,g,C,B,i,o){var E;if(h=E=h+-64|0,!C&g>>>0<4294967280)return gI(E+32|0,o,i)?o=-1:(o=-1,yA(E,35584,E+32|0,0)||(o=rI(A+16|0,A,I,g,C,B,E),XC(E,32))),h=E- -64|0,o;yC(),Q()}function og(A,I){for(var g=0,C=0,B=0,Q=0,i=0;C=A+B|0,g=a[I+B|0]+(a[0|C]+g|0)|0,o[0|C]=g,Q=(C=1|B)+A|0,g=a[I+C|0]+(a[0|Q]+(g>>>8|0)|0)|0,o[0|Q]=g,g=g>>>8|0,B=B+2|0,32!=(0|(i=i+2|0)););}function Eg(A,I){for(var g=0,C=0,B=0,Q=0,i=0;g=(a[0|(C=A+B|0)]-a[I+B|0]|0)+g|0,o[0|C]=g,g=(a[0|(Q=(C=1|B)+A|0)]-a[I+C|0]|0)+(g>>8)|0,o[0|Q]=g,g>>=8,B=B+2|0,64!=(0|(i=i+2|0)););}function ag(A,I){A|=0;var g,C=0,B=0,Q=0;if(h=g=h-16|0,I|=0)for(;o[g+15|0]=0,B=A+C|0,Q=0|r(36800,g+15|0,0),o[0|B]=Q,(0|(C=C+1|0))!=(0|I););h=g+16|0}function _g(A,I,g,C,B,Q,i){var o,E,a=0;return h=o=h-32|0,a=-1,(E=g>>>0<16)&!C||cC(o,Q,i)||(a=yI(A,I+16|0,I,g-16|0,C-E|0,B,o),XC(o,32)),h=o+32|0,a}function cg(A){var I,g;return(A=(I=E[8924])+(g=A+7&-8)|0)>>>0<=I>>>0&&g||A>>>0>wB()<<16>>>0&&!(0|s(0|A))?(E[9392]=48,-1):(E[8924]=A,I)}function tg(A,I){var g,C,B;h=g=h-176|0,vA(C=g+96|0,I+80|0),Y(B=g+48|0,I,C),Y(g,I+40|0,C),BI(A,g),BI(g+144|0,B),o[A+31|0]=a[A+31|0]^a[g+144|0]<<7,h=g+176|0}function rg(A,I,g,C,B,Q,i,o,E,a){var _,c,t=0,r=0,e=0;return h=_=h-16|0,t=-1,_C(c=_+4|0)||(r=-1,e=_A(c,A,I,g,C,B,Q,i,o,E,a),t=vg(c)?r:e),h=_+16|0,t}function eg(A,I,g,C,B,i,o,a,_,c,t,r){return g&&(E[g>>2]=32,E[g+4>>2]=0),!_&a>>>0<4294967264&!i&B>>>0<=4294967263||(yC(),Q()),0|pB[E[r>>2]](A,I,32,C,B,o,a,c,t)}function yg(A,I,g){var C=0;if(A>>>0>>0)return Sg(A,I,g);if(g)for(C=A+g|0,I=I+g|0;I=I-1|0,o[0|(C=C-1|0)]=a[0|I],g=g-1|0;);return A}function sg(A,I,g,C,B,i,o){var E,a=0;if(h=E=h-32|0,!C&g>>>0<4294967280)return a=-1,cC(E,i,o)||(a=eI(A+16|0,A,I,g,C,B,E),XC(E,32)),h=E+32|0,a;yC(),Q()}function hg(A,I,g,C,B,Q){return I|=0,0|(!(C|=0)&(g|=0)>>>0>=16|C?yI(A|=0,I+16|0,I,g-16|0,C-(g>>>0<16)|0,B|=0,Q|=0):-1)}function Dg(A,I,g,C,B,Q){return I|=0,0|(!(C|=0)&(g|=0)>>>0>=16|C?hI(A|=0,I+16|0,I,g-16|0,C-(g>>>0<16)|0,B|=0,Q|=0):-1)}function pg(A,I,g,C,B,Q,i,o,a,_,c){return!C&g>>>0>4294967263|C|!o&i>>>0>4294967263|o?-1:0|pB[E[c>>2]](A,I,g,B,32,Q,i,a,_)}function wg(A,I,g){A|=0;var C,B=0;return h=C=h-32|0,B=-1,gI(C,g|=0,I|=0)||(B=fA(A,35664,C,0)),h=C+32|0,0|B}function fg(A,I){var g;return I|=0,h=g=h+-64|0,z(A|=0,g),nA(A=A+208|0,g,64,0),z(A,I),XC(g,64),h=g- -64|0,0}function ng(A,I,g,C){var B;return I|=0,g|=0,C|=0,h=B=h+-64|0,z(A|=0,B),A=n(I,g,B,64,0,C,1),h=B- -64|0,0|A}function kg(A,I){var g,C,B;Y(A,I,g=I+120|0),Y(A+40|0,C=I+40|0,B=I+80|0),Y(A+80|0,B,g),Y(A+120|0,I,C)}function Fg(A,I){var g;return I|=0,h=g=h-32|0,dA(A|=0,g),MA(A=A+104|0,g,32,0),dA(A,I),XC(g,32),h=g+32|0,0}function Ng(A,I,g,C,B,Q,i){return 0|TI(A|=0,I|=0,(A=0)|(g|=0),C|=0,A|(B|=0),Q|=0,i|=0)}function Sg(A,I,g){var C=0;if(g)for(C=A;o[0|C]=a[0|I],C=C+1|0,I=I+1|0,g=g-1|0;);return A}function Gg(A,I,g,C,B,Q){var i;return h=i=h-32|0,fA(i,B,Q,0),A=oC(A,I,g,C,B+16|0,0,0,i),XC(i,32),h=i+32|0,A}function Mg(A){for(A|=0;ag(A,32),o[A+31|0]=31&a[A+31|0],!ZI(A)||NI(A,32););}function bg(A,I,g){var C;return I|=0,g|=0,h=C=h+-64|0,z(A|=0,C),A=H(I,C,64,0,g,1),h=C- -64|0,0|A}function Kg(A,I,g,C,B){var Q;return h=Q=h-32|0,fA(Q,C,B,0),A=pC(A,I,g,C+16|0,Q),XC(Q,32),h=Q+32|0,A}function Hg(A,I,g){var C=0;if(g)for(C=A;o[0|C]=I,C=C+1|0,g=g-1|0;);return A}function Yg(A,I,g){return A|=0,I|=0,(g|=0)>>>0>=256&&(e(1349,1262,107,1123),Q()),0|$(A,I,255&g)}function dg(A,I,g,C,B,Q,i){return 0|eI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function Jg(A,I,g,C,B,Q,i){return 0|yI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function Ug(A,I,g,C,B,i,o,a){return 1==(0|C)|C>>>0>1&&(yC(),Q()),0|pB[E[8927]](A,I,g,C,B,i,o,a)}function lg(A,I,g,C,B,Q,i){return 0|rI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function mg(A,I,g,C,B,Q,i){return 0|hI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function ug(A,I,g,C,B,i){return 1==(0|C)|C>>>0>1&&(yC(),Q()),0|pB[E[8927]](A,I,g,C,B,0,0,i)}function xg(A,I,g,C,B,i){return 1==(0|C)|C>>>0>1&&(yC(),Q()),0|pB[E[8928]](A,I,g,C,B,0,i)}function Rg(A,I,g,C,B,Q){return n(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,0),0}function vg(A){var I;return(I=E[A>>2])&&gA(I),E[A+8>>2]=0,E[A>>2]=0,E[A+4>>2]=0,0}function Lg(A,I){var g=0;return(-1>>>(g=31&I)&A)<>>A}function Pg(A,I,g,C,B,Q){return 0|RI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)}function qg(A,I,g,C,B,Q){return 0|wI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)}function zg(A,I,g,C,B,Q){return 0|Gg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)}function jg(A,I,g,C,B){return 1==(0|g)|g>>>0>1&&(yC(),Q()),0|pB[E[8925]](A,I,g,C,B)}function Xg(A,I,g,C,B){return 1==(0|g)|g>>>0>1&&(yC(),Q()),0|pB[E[8926]](A,I,g,C,B)}function Og(A,I,g,C,B,i){1==(0|C)|C>>>0>1&&(yC(),Q()),pB[E[8928]](A,I,g,C,B,1,i)}function Vg(A,I,g,C,B){return 0|H(A|=0,I|=0,g|=0,C|=0,B|=0,0)}function Zg(A,I,g,C,B){return 0|hC(A|=0,I|=0,g|=0,C|=0,B|=0)}function Wg(A,I,g,C,B){return 0|DC(A|=0,I|=0,g|=0,C|=0,B|=0)}function Tg(A,I,g,C,B){return 0|Kg(A|=0,I|=0,g|=0,C|=0,B|=0)}function $g(){var A;h=A=h-16|0,o[A+15|0]=0,r(36836,A+15|0,0),h=A+16|0}function AC(A,I,g,C){return CA(A|=0,I|=0,g|=0,C|=0,20),0}function IC(A,I,g,C){return CA(A|=0,I|=0,g|=0,C|=0,12),0}function gC(A,I,g,C){return CA(A|=0,I|=0,g|=0,C|=0,8),0}function CC(A,I,g,C){return 0|kI(A|=0,I|=0,g|=0,C|=0)}function BC(A,I,g,C){return 0|NC(A|=0,I|=0,g|=0,C|=0)}function QC(A,I,g,C){return 0|nA(A|=0,I|=0,g|=0,C|=0)}function iC(A,I,g,C){return 0|eA(A|=0,I|=0,g|=0,C|=0)}function oC(A,I,g,C,B,Q,i,o){return 0|pB[E[8937]](A,I,g,C,B,Q,i,o)}function EC(A,I,g,C){return 0|dC(A|=0,I|=0,g|=0,C|=0)}function aC(A,I,g,C,B,Q){return 0|pB[E[8937]](A,I,g,C,B,0,0,Q)}function _C(A){return E[A+8>>2]=0,E[A>>2]=0,E[A+4>>2]=0,0}function cC(A,I,g){return 0|wg(A|=0,I|=0,g|=0)}function tC(A,I,g){return 0|gI(A|=0,I|=0,g|=0)}function rC(A,I,g){return 0|Yg(A|=0,I|=0,g|=0)}function eC(A,I,g){return 0|QI(A|=0,I|=0,g|=0)}function yC(){var A;(A=E[9526])&&pB[0|A](),y(),Q()}function sC(A,I){return A|=0,ag(I|=0,32),0|wC(A,I)}function hC(A,I,g,C,B){return 0|pB[E[8929]](A,I,g,C,B)}function DC(A,I,g,C,B){return 0|pB[E[8930]](A,I,g,C,B)}function pC(A,I,g,C,B){return 0|pB[E[8936]](A,I,g,C,B)}function wC(A,I){return A|=0,I|=0,0|pB[E[8935]](A,I)}function fC(A,I){return A|=0,I|=0,0|pB[E[8931]](A,I)}function nC(A,I){return A|=0,I|=0,0|pB[E[8933]](A,I)}function kC(A,I,g,C,B,Q,i){return lA(A,I,g,C,B,Q,i)}function FC(A){return A?31-t(A-1^A)|0:32}function NC(A,I,g,C){return 0|pB[E[8932]](A,I,g,C)}function SC(A,I){return 0|qI(A|=0,I|=0,32)}function GC(A,I){return 0|qI(A|=0,I|=0,64)}function MC(A,I,g){k(A|=0,I|=0,g|=0)}function bC(A,I){return 0|wC(A|=0,I|=0)}function KC(A,I){return 0|sC(A|=0,I|=0)}function HC(A,I,g,C){return CI(A,I,g,C,2)}function YC(A,I,g,C){return MA(A,I,g,C),0}function dC(A,I,g,C){return nA(A,I,g,C),0}function JC(A,I,g,C){return CI(A,I,g,C,1)}function UC(A,I,g,C){return nI(A,I,g,C,1)}function lC(A,I,g,C){return nI(A,I,g,C,2)}function mC(A,I,g,C){return XA(A,I,g,C)}function uC(A){return SI(A|=0),0}function xC(){return 1073741824}function RC(){return-2147483648}function vC(){return 268435456}function LC(A){ag(A|=0,32)}function PC(){return 67108864}function qC(A){ag(A|=0,16)}function zC(){return 16777216}function jC(){return 33554432}function XC(A,I){Hg(A,0,I)}function OC(){return 1559}function VC(){return 1321}function ZC(){return 8192}function WC(){return 384}function TC(){return 416}function $C(){return 256}function AB(){return 128}function IB(){return 208}function gB(){return 64}function CB(){return 16}function BB(){return 32}function QB(){return 12}function iB(){return-65}function oB(){return-17}function EB(){return 48}function aB(){return-33}function _B(){return 24}function cB(){return 4}function tB(){return-1}function rB(){return 1}function eB(){return 2}function yB(){return 3}function sB(){return 8}function hB(){return 0}B(I=a,1024,"Li8wMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5egBqcwByYW5kb21ieXRlcwBiNjRfcG9zIDw9IGI2NF9sZW4AY3J5cHRvX2dlbmVyaWNoYXNoX2JsYWtlMmJfZmluYWwAJGFyZ29uMmkAJGFyZ29uMmlkAHJhbmRvbWJ5dGVzL3JhbmRvbWJ5dGVzLmMAc29kaXVtL2NvZGVjcy5jAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9ibGFrZTJiLXJlZi5jAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9nZW5lcmljaGFzaF9ibGFrZTJiLmMAeDI1NTE5Ymxha2UyYgBidWZfbGVuIDw9IFNJWkVfTUFYAG91dGxlbiA8PSBVSU5UOF9NQVgAUy0+YnVmbGVuIDw9IEJMQUtFMkJfQkxPQ0tCWVRFUwAkYXJnb24yaSR2PQAkYXJnb24yaWQkdj0ALHQ9ACxwPQAkbT0AY3VydmUyNTUxOQBlZDI1NTE5ADEuMC4xOQBobWFjc2hhNTEyMjU2AGN1cnZlMjU1MTl4c2Fsc2EyMHBvbHkxMzA1AHNvZGl1bV9iaW4yYmFzZTY0AHNpcGhhc2gyNABzaGE1MTIAeHNhbHNhMjAAJGFyZ29uMmkkACRhcmdvbjJpZCQAJDckAExpYnNvZGl1bURSRw=="),B(I,1600,"tnhZ/4Vy0wC9bhX/DwpqACnAAQCY6Hn/vDyg/5lxzv8At+L+tA1I/wAAAAAAAAAAsKAO/tPJhv+eGI8Af2k1AGAMvQCn1/v/n0yA/mpl4f8e/AQAkgyu"),B(I,1696,"WfGy/grlpv973Sr+HhTUAFKAAwAw0fMAd3lA/zLjnP8AbsUBZxuQ"),B(I,1744,"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/"),B(I,2736,"AQ=="),B(I,2768,"JuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQ="),B(I,2959,"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"),B(I,33980,"AQAAAHbBXwBlcAL/UPyh/vJqxv+FBrIA5N9wAN/uVf4z8xoAPiuL/stBCg=="),B(I,34032,"M03tAJGqVv82JjP/8YBl/yl5Sv/sTpsAqZdp/pwpSADCZq//zqJl/wAAAAAAAAAAGy57ARKo/f/Tr5f+w9tgADh2vv7+0fX/mWR+/uiBFf81uPL/x6Td"),B(I,34160,"AQ=="),B(I,34192,"4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQ="),B(I,34383,"EA=="),B(I,34400,"Z+YJaoWuZ7ty8248OvVPpX9SDlGMaAWbq9mDHxnN4FuYL4pCkUQ3cc/7wLWl27XpW8JWOfER8Vmkgj+S1V4cq5iqB9gBW4MSvoUxJMN9DFV0Xb5y/rHegKcG3Jt08ZvBwWmb5IZHvu/GncEPzKEMJG8s6S2qhHRK3KmwXNqI+XZSUT6YbcYxqMgnA7DHf1m/8wvgxkeRp9VRY8oGZykpFIUKtyc4IRsu/G0sTRMNOFNUcwpluwpqdi7JwoGFLHKSoei/oktmGqhwi0vCo1FsxxnoktEkBpnWhTUO9HCgahAWwaQZCGw3Hkx3SCe1vLA0swwcOUqq2E5Pypxb828uaO6Cj3RvY6V4FHjIhAgCx4z6/76Q62xQpPej+b7yeHHGgA=="),B(I,34752,"CMm882fmCWo7p8qEha5nuyv4lP5y82488TYdXzr1T6XRguatf1IOUR9sPiuMaAWba71B+6vZgx95IX4TGc3gWyKuKNeYL4pCzWXvI5FEN3EvO03sz/vAtbzbiYGl27XpOLVI81vCVjkZ0AW28RHxWZtPGa+kgj+SGIFt2tVeHKtCAgOjmKoH2L5vcEUBW4MSjLLkTr6FMSTitP/Vw30MVW+Je/J0Xb5ysZYWO/6x3oA1Esclpwbcm5Qmac908ZvB0krxnsFpm+TjJU84hke+77XVjIvGncEPZZysd8yhDCR1AitZbyzpLYPkpm6qhHRK1PtBvdypsFy1UxGD2oj5dqvfZu5SUT6YEDK0LW3GMag/IfuYyCcDsOQO777Hf1m/wo+oPfML4MYlpwqTR5Gn1W+CA+BRY8oGcG4OCmcpKRT8L9JGhQq3JybJJlw4IRsu7SrEWvxtLE3fs5WdEw04U95jr4tUcwplqLJ3PLsKanbmru1HLsnCgTs1ghSFLHKSZAPxTKHov6IBMEK8S2YaqJGX+NBwi0vCML5UBqNRbMcYUu/WGeiS0RCpZVUkBpnWKiBxV4U1DvS40bsycKBqEMjQ0rgWwaQZU6tBUQhsNx6Z647fTHdIJ6hIm+G1vLA0Y1rJxbMMHDnLikHjSqrYTnPjY3dPypxbo7iy1vNvLmj8su9d7oKPdGAvF0NvY6V4cqvwoRR4yITsOWQaCALHjCgeYyP6/76Q6b2C3utsUKQVecay96P5vitTcuPyeHHGnGEm6s4+J8oHwsAhx7iG0R7r4M3WfdrqeNFu7n9PffW6bxdyqmfwBqaYyKLFfWMKrg35vgSYPxEbRxwTNQtxG4R9BCP1d9sokyTHQHuryjK8vskVCr6ePEwNEJzEZx1DtkI+y77UxUwqfmX8nCl/Wez61jqrb8tfF1hHSowZRGyA"),B(I,35600,"U2lnRWQyNTUxOSBubyBFZDI1NTE5IGNvbGxpc2lvbnMB"),B(I,35696,"4JQBAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0="),B(I,35760,"xmNjpfh8fITud3eZ9nt7jf/y8g3Wa2u93m9vsZHFxVRgMDBQAgEBA85nZ6lWKyt95/7+GbXX12JNq6vm7HZ2mo/KykUfgoKdicnJQPp9fYfv+voVsllZ645HR8n78PALQa2t7LPU1GdfoqL9Ra+v6iOcnL9TpKT35HJylpvAwFt1t7fC4f39HD2Tk65MJiZqbDY2Wn4/P0H19/cCg8zMT2g0NFxRpaX00eXlNPnx8QjicXGTq9jYc2IxMVMqFRU/CAQEDJXHx1JGIyNlncPDXjAYGCg3lpahCgUFDy+amrUOBwcJJBISNhuAgJvf4uI9zevrJk4nJ2l/srLN6nV1nxIJCRsdg4OeWCwsdDQaGi42Gxst3G5usrRaWu5boKD7pFJS9nY7O0231tZhfbOzzlIpKXvd4+M+Xi8vcROEhJemU1P1udHRaAAAAADB7e0sQCAgYOP8/B95sbHItltb7dRqar6Ny8tGZ76+2XI5OUuUSkremExM1LBYWOiFz89Ku9DQa8Xv7ypPqqrl7fv7FoZDQ8WaTU3XZjMzVRGFhZSKRUXP6fn5EAQCAgb+f3+BoFBQ8Hg8PEQln5+6S6io46JRUfNdo6P+gEBAwAWPj4o/kpKtIZ2dvHA4OEjx9fUEY7y833e2tsGv2tp1QiEhYyAQEDDl//8a/fPzDr/S0m2Bzc1MGAwMFCYTEzXD7Owvvl9f4TWXl6KIRETMLhcXOZPExFdVp6fy/H5+gno9PUfIZGSsul1d5zIZGSvmc3OVwGBgoBmBgZieT0/Ro9zcf0QiImZUKip+O5CQqwuIiIOMRkbKx+7uKWu4uNMoFBQ8p97eebxeXuIWCwsdrdvbdtvg4DtkMjJWdDo6ThQKCh6SSUnbDAYGCkgkJGy4XFzkn8LCXb3T025DrKzvxGJipjmRkagxlZWk0+TkN/J5eYvV5+cyi8jIQ243N1nabW23AY2NjLHV1WScTk7SSamp4NhsbLSsVlb68/T0B8/q6iXKZWWv9Hp6jkeurukQCAgYb7q61fB4eIhKJSVvXC4ucjgcHCRXpqbxc7S0x5fGxlHL6Ogjod3dfOh0dJw+Hx8hlktL3WG9vdwNi4uGD4qKheBwcJB8Pj5CcbW1xMxmZqqQSEjYBgMDBff29gEcDg4SwmFho2o1NV+uV1f5abm50BeGhpGZwcFYOh0dJyeenrnZ4eE46/j4EyuYmLMiEREz0mlpu6nZ2XAHjo6JM5SUpy2bm7Y8Hh4iFYeHksnp6SCHzs5JqlVV/1AoKHil3996A4yMj1mhofgJiYmAGg0NF2W/v9rX5uYxhEJCxtBoaLiCQUHDKZmZsFotLXceDw8Re7Cwy6hUVPxtu7vWLBYWOg4AAAAPAAAAEAAAABE=");var DB,pB=(DB=[null,function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,h=Q=h+-64|0,(I|=0)|(g|=0)&&(E[Q+8>>2]=2036477234,E[Q+12>>2]=1797285236,E[Q>>2]=1634760805,E[Q+4>>2]=857760878,E[Q+16>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,E[Q+20>>2]=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,E[Q+24>>2]=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,E[Q+28>>2]=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,E[Q+32>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,E[Q+36>>2]=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,E[Q+40>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,B=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,E[Q+48>>2]=0,E[Q+52>>2]=0,E[Q+44>>2]=B,E[Q+56>>2]=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24,E[Q+60>>2]=a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24,q(Q,A=Hg(A,0,I),A,I,g),XC(Q,64)),h=Q- -64|0,0},function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,h=Q=h+-64|0,(I|=0)|(g|=0)&&(E[Q+8>>2]=2036477234,E[Q+12>>2]=1797285236,E[Q>>2]=1634760805,E[Q+4>>2]=857760878,E[Q+16>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,E[Q+20>>2]=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,E[Q+24>>2]=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,E[Q+28>>2]=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,E[Q+32>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,E[Q+36>>2]=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,E[Q+40>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,B=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,E[Q+48>>2]=0,E[Q+44>>2]=B,E[Q+52>>2]=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24,E[Q+56>>2]=a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24,E[Q+60>>2]=a[C+8|0]|a[C+9|0]<<8|a[C+10|0]<<16|a[C+11|0]<<24,q(Q,A=Hg(A,0,I),A,I,g),XC(Q,64)),h=Q- -64|0,0},function(A,I,g,C,B,Q,i,o){var _;return A|=0,I|=0,B|=0,Q|=0,i|=0,o|=0,h=_=h+-64|0,(g|=0)|(C|=0)&&(E[_+8>>2]=2036477234,E[_+12>>2]=1797285236,E[_>>2]=1634760805,E[_+4>>2]=857760878,E[_+16>>2]=a[0|o]|a[o+1|0]<<8|a[o+2|0]<<16|a[o+3|0]<<24,E[_+20>>2]=a[o+4|0]|a[o+5|0]<<8|a[o+6|0]<<16|a[o+7|0]<<24,E[_+24>>2]=a[o+8|0]|a[o+9|0]<<8|a[o+10|0]<<16|a[o+11|0]<<24,E[_+28>>2]=a[o+12|0]|a[o+13|0]<<8|a[o+14|0]<<16|a[o+15|0]<<24,E[_+32>>2]=a[o+16|0]|a[o+17|0]<<8|a[o+18|0]<<16|a[o+19|0]<<24,E[_+36>>2]=a[o+20|0]|a[o+21|0]<<8|a[o+22|0]<<16|a[o+23|0]<<24,E[_+40>>2]=a[o+24|0]|a[o+25|0]<<8|a[o+26|0]<<16|a[o+27|0]<<24,E[_+44>>2]=a[o+28|0]|a[o+29|0]<<8|a[o+30|0]<<16|a[o+31|0]<<24,E[_+48>>2]=Q,E[_+52>>2]=i,E[_+56>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,E[_+60>>2]=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,q(_,I,A,g,C),XC(_,64)),h=_- -64|0,0},function(A,I,g,C,B,Q,i){var o;return A|=0,I|=0,B|=0,Q|=0,i|=0,h=o=h+-64|0,(g|=0)|(C|=0)&&(E[o+8>>2]=2036477234,E[o+12>>2]=1797285236,E[o>>2]=1634760805,E[o+4>>2]=857760878,E[o+16>>2]=a[0|i]|a[i+1|0]<<8|a[i+2|0]<<16|a[i+3|0]<<24,E[o+20>>2]=a[i+4|0]|a[i+5|0]<<8|a[i+6|0]<<16|a[i+7|0]<<24,E[o+24>>2]=a[i+8|0]|a[i+9|0]<<8|a[i+10|0]<<16|a[i+11|0]<<24,E[o+28>>2]=a[i+12|0]|a[i+13|0]<<8|a[i+14|0]<<16|a[i+15|0]<<24,E[o+32>>2]=a[i+16|0]|a[i+17|0]<<8|a[i+18|0]<<16|a[i+19|0]<<24,E[o+36>>2]=a[i+20|0]|a[i+21|0]<<8|a[i+22|0]<<16|a[i+23|0]<<24,E[o+40>>2]=a[i+24|0]|a[i+25|0]<<8|a[i+26|0]<<16|a[i+27|0]<<24,i=a[i+28|0]|a[i+29|0]<<8|a[i+30|0]<<16|a[i+31|0]<<24,E[o+48>>2]=Q,E[o+44>>2]=i,E[o+52>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,E[o+56>>2]=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,E[o+60>>2]=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,q(o,I,A,g,C),XC(o,64)),h=o- -64|0,0},function(A,I,g,C,B){var Q,i,_;return A|=0,I|=0,g|=0,C|=0,B|=0,h=Q=(i=h)-128&-64,E[Q>>2]=67108863&(a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24),E[Q+4>>2]=(a[B+3|0]|a[B+4|0]<<8|a[B+5|0]<<16|a[B+6|0]<<24)>>>2&67108611,E[Q+8>>2]=(a[B+6|0]|a[B+7|0]<<8|a[B+8|0]<<16|a[B+9|0]<<24)>>>4&67092735,E[Q+12>>2]=(a[B+9|0]|a[B+10|0]<<8|a[B+11|0]<<16|a[B+12|0]<<24)>>>6&66076671,_=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,E[Q+20>>2]=0,E[Q+24>>2]=0,E[Q+28>>2]=0,E[Q+32>>2]=0,E[Q+36>>2]=0,E[Q+16>>2]=_>>>8&1048575,E[Q+40>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,E[Q+44>>2]=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,E[Q+48>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,B=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,o[Q+80|0]=0,E[Q+56>>2]=0,E[Q+60>>2]=0,E[Q+52>>2]=B,uA(Q,I,g,C),II(Q,A),h=i,0},function(A,I,g,C,B){var Q,i,_;return A|=0,I|=0,g|=0,C|=0,B|=0,h=Q=(i=h)-192&-64,E[Q+64>>2]=67108863&(a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24),E[Q+68>>2]=(a[B+3|0]|a[B+4|0]<<8|a[B+5|0]<<16|a[B+6|0]<<24)>>>2&67108611,E[Q+72>>2]=(a[B+6|0]|a[B+7|0]<<8|a[B+8|0]<<16|a[B+9|0]<<24)>>>4&67092735,E[Q+76>>2]=(a[B+9|0]|a[B+10|0]<<8|a[B+11|0]<<16|a[B+12|0]<<24)>>>6&66076671,_=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,E[Q+84>>2]=0,E[Q+88>>2]=0,E[Q+92>>2]=0,E[Q+96>>2]=0,E[Q+100>>2]=0,E[Q+80>>2]=_>>>8&1048575,E[Q+104>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,E[Q+108>>2]=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,E[Q+112>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,B=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,o[Q+144|0]=0,E[Q+120>>2]=0,E[Q+124>>2]=0,E[Q+116>>2]=B,uA(B=Q- -64|0,I,g,C),II(B,I=Q+48|0),A=iI(A,I),h=i,0|A},function(A,I){var g;return I|=0,E[(A|=0)>>2]=67108863&(a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24),E[A+4>>2]=(a[I+3|0]|a[I+4|0]<<8|a[I+5|0]<<16|a[I+6|0]<<24)>>>2&67108611,E[A+8>>2]=(a[I+6|0]|a[I+7|0]<<8|a[I+8|0]<<16|a[I+9|0]<<24)>>>4&67092735,E[A+12>>2]=(a[I+9|0]|a[I+10|0]<<8|a[I+11|0]<<16|a[I+12|0]<<24)>>>6&66076671,g=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,E[A+20>>2]=0,E[A+24>>2]=0,E[A+28>>2]=0,E[A+32>>2]=0,E[A+36>>2]=0,E[A+16>>2]=g>>>8&1048575,E[A+40>>2]=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,E[A+44>>2]=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,E[A+48>>2]=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,I=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,o[A+80|0]=0,E[A+56>>2]=0,E[A+60>>2]=0,E[A+52>>2]=I,0},function(A,I,g,C){return uA(A|=0,I|=0,g|=0,C|=0),0},function(A,I){return II(A|=0,I|=0),0},function(A,I,g){A|=0,I|=0,g|=0;var C,B=0,Q=0,i=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,D=0,p=0,f=0,n=0,k=0,F=0,N=0,S=0,G=0,M=0,b=0,K=0,H=0,d=0,J=0,U=0,l=0,m=0,u=0,x=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,V=0,Z=0,W=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,wA=0,fA=0,nA=0,kA=0;for(h=C=h-368|0;D=(i=a[g+B|0])^a[0|(c=B+34128|0)]|D,s=i^a[c+192|0]|s,y=i^a[c+160|0]|y,e=i^a[c+128|0]|e,_=i^a[c+96|0]|_,t=i^a[c- -64|0]|t,Q=i^a[c+32|0]|Q,31!=(0|(B=B+1|0)););if(B=-1,!(256&((255&((i=127^(c=127&a[g+31|0]))|s))-1|(255&(i|y))-1|(255&(i|e))-1|(255&(87^c|_))-1|(255&(t|c))-1|(255&(Q|c))-1|(255&(c|D))-1))){for(B=I,I=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,E[C+360>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,E[C+364>>2]=I,I=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,E[C+352>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,E[C+356>>2]=I,Q=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,I=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,E[C+336>>2]=I,E[C+340>>2]=Q,Q=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,E[C+344>>2]=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,E[C+348>>2]=Q,o[C+336|0]=248&I,o[C+367|0]=63&a[C+367|0]|64,pA(C+288|0,g),E[C+260>>2]=0,E[C+264>>2]=0,E[C+268>>2]=0,E[C+272>>2]=0,E[C+276>>2]=0,E[C+208>>2]=0,E[C+212>>2]=0,E[C+216>>2]=0,E[C+220>>2]=0,E[C+224>>2]=0,E[C+228>>2]=0,I=E[C+308>>2],E[C+160>>2]=E[C+304>>2],E[C+164>>2]=I,I=E[C+316>>2],E[C+168>>2]=E[C+312>>2],E[C+172>>2]=I,I=E[C+324>>2],E[C+176>>2]=E[C+320>>2],E[C+180>>2]=I,E[C+244>>2]=0,E[C+248>>2]=0,E[C+240>>2]=1,E[C+252>>2]=0,E[C+256>>2]=0,E[C+192>>2]=0,E[C+196>>2]=0,E[C+200>>2]=0,E[C+204>>2]=0,I=E[C+292>>2],E[C+144>>2]=E[C+288>>2],E[C+148>>2]=I,I=E[C+300>>2],E[C+152>>2]=E[C+296>>2],E[C+156>>2]=I,E[C+116>>2]=0,E[C+120>>2]=0,E[C+124>>2]=0,E[C+128>>2]=0,E[C+132>>2]=0,E[C+100>>2]=0,E[C+104>>2]=0,E[C+96>>2]=1,E[C+108>>2]=0,E[C+112>>2]=0,g=254;W=E[C+276>>2],i=E[C+180>>2],T=E[C+96>>2],$=E[C+192>>2],AA=E[C+144>>2],IA=E[C+240>>2],gA=E[C+100>>2],CA=E[C+196>>2],BA=E[C+148>>2],QA=E[C+244>>2],K=E[C+104>>2],iA=E[C+200>>2],H=E[C+152>>2],oA=E[C+248>>2],U=E[C+108>>2],EA=E[C+204>>2],l=E[C+156>>2],aA=E[C+252>>2],d=E[C+112>>2],_A=E[C+208>>2],M=E[C+160>>2],cA=E[C+256>>2],D=E[C+116>>2],tA=E[C+212>>2],r=E[C+164>>2],rA=E[C+260>>2],s=E[C+120>>2],eA=E[C+216>>2],y=E[C+168>>2],yA=E[C+264>>2],e=E[C+124>>2],sA=E[C+220>>2],_=E[C+172>>2],hA=E[C+268>>2],t=E[C+128>>2],DA=E[C+224>>2],Q=E[C+176>>2],G=E[C+272>>2],wA=g,b=(F=(I=0-((I=Z)^(Z=a[(fA=C+336|0)+(g>>>3|0)|0]>>>(7&g)&1))|0)&((B=E[C+132>>2])^(j=E[C+228>>2])))^B,E[C+132>>2]=b,X=i^(N=I&(i^W)),E[C+84>>2]=X-b,J=t^(f=I&(t^DA)),E[C+128>>2]=J,O=(S=I&(Q^G))^Q,E[C+80>>2]=O-J,u=e^(n=I&(e^sA)),E[C+124>>2]=u,nA=_^(k=I&(_^hA)),E[C+76>>2]=nA-u,x=s^(p=I&(s^eA)),E[C+120>>2]=x,kA=y^(c=I&(y^yA)),E[C+72>>2]=kA-x,R=D^(i=I&(D^tA)),E[C+116>>2]=R,L=r^(D=I&(r^rA)),E[C+68>>2]=L-R,P=d^(s=I&(d^_A)),E[C+112>>2]=P,m=M^(y=I&(M^cA)),E[C+64>>2]=m-P,q=U^(e=I&(U^EA)),E[C+108>>2]=q,V=l^(_=I&(l^aA)),E[C+60>>2]=V-q,z=K^(t=I&(K^iA)),E[C+104>>2]=z,U=H^(Q=I&(H^oA)),E[C+56>>2]=U-z,K=gA^(B=I&(gA^CA)),E[C+100>>2]=K,l=BA^(g=I&(BA^QA)),E[C+52>>2]=l-K,H=T^(d=I&(T^$)),E[C+96>>2]=H,M=(I&=AA^IA)^AA,E[C+48>>2]=M-H,r=N^W,F^=j,E[C+36>>2]=r-F,N=S^G,f^=DA,E[C+32>>2]=N-f,S=k^hA,n^=sA,E[C+28>>2]=S-n,k=c^yA,p^=eA,E[C+24>>2]=k-p,c=D^rA,i^=tA,E[C+20>>2]=c-i,D=y^cA,s^=_A,E[C+16>>2]=D-s,y=_^aA,e^=EA,E[C+12>>2]=y-e,_=Q^oA,t^=iA,E[C+8>>2]=_-t,Q=g^QA,B^=CA,E[C+4>>2]=Q-B,g=I^IA,I=d^$,E[C>>2]=g-I,E[C+276>>2]=r+F,E[C+272>>2]=N+f,E[C+268>>2]=n+S,E[C+264>>2]=p+k,E[C+260>>2]=i+c,E[C+256>>2]=s+D,E[C+248>>2]=_+t,E[C+244>>2]=B+Q,E[C+240>>2]=I+g,E[C+252>>2]=e+y,E[C+228>>2]=b+X,E[C+224>>2]=J+O,E[C+220>>2]=u+nA,E[C+216>>2]=x+kA,E[C+212>>2]=R+L,E[C+208>>2]=m+P,E[C+204>>2]=q+V,E[C+200>>2]=U+z,E[C+196>>2]=K+l,E[C+192>>2]=M+H,Y(X=C+96|0,J=C+48|0,b=C+240|0),Y(G=C+192|0,G,C),v(J,C),v(C,b),r=E[C+192>>2],F=E[C+96>>2],N=E[C+196>>2],f=E[C+100>>2],S=E[C+200>>2],n=E[C+104>>2],k=E[C+204>>2],p=E[C+108>>2],c=E[C+208>>2],i=E[C+112>>2],D=E[C+212>>2],s=E[C+116>>2],y=E[C+216>>2],e=E[C+120>>2],_=E[C+220>>2],t=E[C+124>>2],Q=E[C+224>>2],B=E[C+128>>2],g=E[C+228>>2],I=E[C+132>>2],E[C+180>>2]=g+I,E[C+176>>2]=B+Q,E[C+172>>2]=_+t,E[C+168>>2]=e+y,E[C+164>>2]=s+D,E[C+160>>2]=i+c,E[C+156>>2]=p+k,E[C+152>>2]=n+S,E[C+148>>2]=N+f,E[C+144>>2]=r+F,E[C+228>>2]=I-g,E[C+224>>2]=B-Q,E[C+220>>2]=t-_,E[C+216>>2]=e-y,E[C+212>>2]=s-D,E[C+208>>2]=i-c,E[C+204>>2]=p-k,E[C+200>>2]=n-S,E[C+196>>2]=f-N,E[C+192>>2]=F-r,Y(b,C,J),u=E[C+52>>2],p=E[C+4>>2],x=E[C+56>>2],c=E[C+8>>2],R=E[C+64>>2],y=E[C+16>>2],P=E[C+60>>2],e=E[C+12>>2],q=E[C+72>>2],_=E[C+24>>2],z=E[C+68>>2],t=E[C+20>>2],K=E[C+80>>2],Q=E[C+32>>2],H=E[C+76>>2],B=E[C+28>>2],j=E[C+84>>2],I=E[C+36>>2],O=E[C+48>>2],g=E[C>>2]-O|0,E[C>>2]=g,I=I-j|0,E[C+36>>2]=I,d=B-H|0,E[C+28>>2]=d,M=Q-K|0,E[C+32>>2]=M,i=t-z|0,E[C+20>>2]=i,D=_-q|0,E[C+24>>2]=D,s=e-P|0,E[C+12>>2]=s,y=y-R|0,E[C+16>>2]=y,e=c-x|0,E[C+8>>2]=e,Q=p-u|0,E[C+4>>2]=Q,v(G,G),I=Ig(I,I>>31,121666,0),B=w,V=I,I=Ig((33554431&(B=(r=I+16777216|0)>>>0<16777216?B+1|0:B))<<7|r>>>25,B>>25,19,0),t=w,B=I,I=Ig(g,g>>31,121666,0),m=w+t|0,I=I>>>0>(B=B+I|0)>>>0?m+1|0:m,g=(_=B+33554432|0)>>>0<33554432?I+1|0:I,F=B-(-67108864&_)|0,E[C+96>>2]=F,t=Ig(Q,Q>>31,121666,0),B=w,B=(Q=t+16777216|0)>>>0<16777216?B+1|0:B,N=(t-(-33554432&Q)|0)+((67108863&g)<<6|_>>>26)|0,E[C+100>>2]=N,m=(I=B)>>25,B=(33554431&I)<<7|Q>>>25,g=Ig(e,e>>31,121666,0)+B|0,I=m+w|0,I=g>>>0>>0?I+1|0:I,t=(f=g+33554432|0)>>>0<33554432?I+1|0:I,S=g-(-67108864&f)|0,E[C+104>>2]=S,B=Ig(y,y>>31,121666,0),Q=w,g=Ig(s,s>>31,121666,0),I=w,L=B,U=g,B=(33554431&(I=(n=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|n>>>25,I=(I>>25)+Q|0,I=(g=L+B|0)>>>0>>0?I+1|0:I,Q=(k=g+33554432|0)>>>0<33554432?I+1|0:I,p=g-(-67108864&k)|0,E[C+112>>2]=p,B=Ig(D,D>>31,121666,0),_=w,g=Ig(i,i>>31,121666,0),I=w,L=B,l=g,B=(33554431&(I=(c=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|c>>>25,I=(I>>25)+_|0,I=(g=L+B|0)>>>0>>0?I+1|0:I,B=(i=g+33554432|0)>>>0<33554432?I+1|0:I,D=g-(-67108864&i)|0,E[C+120>>2]=D,_=Ig(M,M>>31,121666,0),e=w,g=Ig(d,d>>31,121666,0),I=w,M=g,g=(33554431&(I=(s=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|s>>>25,I=(I>>25)+e|0,I=g>>>0>(_=g+_|0)>>>0?I+1|0:I,g=(y=_+33554432|0)>>>0<33554432?I+1|0:I,e=_-(-67108864&y)|0,E[C+128>>2]=e,_=(t=U+((67108863&t)<<6|f>>>26)|0)-(-33554432&n)|0,E[C+108>>2]=_,t=(Q=l+((67108863&Q)<<6|k>>>26)|0)-(-33554432&c)|0,E[C+116>>2]=t,Q=(I=M+((67108863&B)<<6|i>>>26)|0)-(-33554432&s)|0,E[C+124>>2]=Q,g=(g=V+((67108863&g)<<6|y>>>26)|0)-(-33554432&r)|0,E[C+132>>2]=g,v(I=C+144|0,I),E[C+84>>2]=g+j,E[C+80>>2]=e+K,E[C+76>>2]=Q+H,E[C+72>>2]=D+q,E[C+68>>2]=t+z,E[C+64>>2]=p+R,E[C+60>>2]=_+P,E[C+56>>2]=S+x,E[C+52>>2]=N+u,E[C+48>>2]=F+O,g=wA-1|0,Y(X,C+288|0,G),Y(G,C,J),wA;);D=E[C+144>>2],F=E[C+240>>2],s=E[C+148>>2],N=E[C+244>>2],y=E[C+152>>2],f=E[C+248>>2],e=E[C+156>>2],S=E[C+252>>2],_=E[C+160>>2],n=E[C+256>>2],t=E[C+164>>2],k=E[C+260>>2],Q=E[C+168>>2],p=E[C+264>>2],B=E[C+172>>2],c=E[C+268>>2],g=E[C+176>>2],i=E[C+272>>2],r=0-Z|0,I=E[C+276>>2],E[C+276>>2]=r&(I^E[C+180>>2])^I,E[C+272>>2]=i^r&(g^i),E[C+268>>2]=c^r&(B^c),E[C+264>>2]=p^r&(Q^p),E[C+260>>2]=k^r&(t^k),E[C+256>>2]=n^r&(_^n),E[C+252>>2]=S^r&(e^S),E[C+248>>2]=f^r&(y^f),E[C+244>>2]=N^r&(s^N),E[C+240>>2]=F^r&(D^F),F=E[C+192>>2],D=E[C+96>>2],N=E[C+196>>2],s=E[C+100>>2],f=E[C+200>>2],y=E[C+104>>2],S=E[C+204>>2],e=E[C+108>>2],n=E[C+208>>2],_=E[C+112>>2],k=E[C+212>>2],t=E[C+116>>2],p=E[C+216>>2],Q=E[C+120>>2],c=E[C+220>>2],B=E[C+124>>2],i=E[C+224>>2],g=E[C+128>>2],I=E[C+228>>2],E[C+228>>2]=r&(I^E[C+132>>2])^I,E[C+224>>2]=i^r&(g^i),E[C+220>>2]=c^r&(B^c),E[C+216>>2]=p^r&(Q^p),E[C+212>>2]=k^r&(t^k),E[C+208>>2]=n^r&(_^n),E[C+204>>2]=S^r&(e^S),E[C+200>>2]=f^r&(y^f),E[C+196>>2]=N^r&(s^N),E[C+192>>2]=F^r&(D^F),vA(G,G),Y(b,b,G),BI(A,b),XC(fA,32),B=0}return h=C+368|0,0|B},function(A,I){var g,C,B,Q,i,_,c,t,r,e,y,s,D,p,w,f,n,k,F,N;return I|=0,h=g=h-304|0,o[0|(A|=0)]=a[0|I],o[A+1|0]=a[I+1|0],o[A+2|0]=a[I+2|0],o[A+3|0]=a[I+3|0],o[A+4|0]=a[I+4|0],o[A+5|0]=a[I+5|0],o[A+6|0]=a[I+6|0],o[A+7|0]=a[I+7|0],o[A+8|0]=a[I+8|0],o[A+9|0]=a[I+9|0],o[A+10|0]=a[I+10|0],o[A+11|0]=a[I+11|0],o[A+12|0]=a[I+12|0],o[A+13|0]=a[I+13|0],o[A+14|0]=a[I+14|0],o[A+15|0]=a[I+15|0],o[A+16|0]=a[I+16|0],o[A+17|0]=a[I+17|0],o[A+18|0]=a[I+18|0],o[A+19|0]=a[I+19|0],o[A+20|0]=a[I+20|0],o[A+21|0]=a[I+21|0],o[A+22|0]=a[I+22|0],o[A+23|0]=a[I+23|0],o[A+24|0]=a[I+24|0],o[A+25|0]=a[I+25|0],o[A+26|0]=a[I+26|0],o[A+27|0]=a[I+27|0],o[A+28|0]=a[I+28|0],o[A+29|0]=a[I+29|0],o[A+30|0]=a[I+30|0],I=a[I+31|0],o[0|A]=248&a[0|A],o[A+31|0]=63&I|64,kA(g+48|0,A),I=E[g+132>>2],C=E[g+92>>2],B=E[g+136>>2],Q=E[g+96>>2],i=E[g+140>>2],_=E[g+100>>2],c=E[g+144>>2],t=E[g+104>>2],r=E[g+148>>2],e=E[g+108>>2],y=E[g+152>>2],s=E[g+112>>2],D=E[g+156>>2],p=E[g+116>>2],w=E[g+160>>2],f=E[g+120>>2],n=E[g+128>>2],k=E[g+88>>2],F=E[g+124>>2],N=E[g+164>>2],E[g+292>>2]=F+N,E[g+288>>2]=w+f,E[g+284>>2]=D+p,E[g+280>>2]=y+s,E[g+276>>2]=r+e,E[g+272>>2]=c+t,E[g+268>>2]=i+_,E[g+264>>2]=B+Q,E[g+260>>2]=I+C,E[g+256>>2]=n+k,E[g+244>>2]=N-F,E[g+240>>2]=w-f,E[g+236>>2]=D-p,E[g+232>>2]=y-s,E[g+228>>2]=r-e,E[g+224>>2]=c-t,E[g+220>>2]=i-_,E[g+216>>2]=B-Q,E[g+212>>2]=I-C,E[g+208>>2]=n-k,vA(I=g+208|0,I),Y(g,g+256|0,I),BI(A,g),h=g+304|0,0},function(A,I,g,C,B){A|=0,C|=0,B|=0;var Q,i=0,_=0,c=0,t=0;if(h=Q=h-112|0,(I|=0)|(g|=0)){i=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,E[Q+24>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,E[Q+28>>2]=i,i=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,E[Q+16>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,E[Q+20>>2]=i,i=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,E[Q>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,E[Q+4>>2]=i,i=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,E[Q+8>>2]=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,E[Q+12>>2]=i,B=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24,C=a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24,E[Q+104>>2]=0,E[Q+108>>2]=0,E[Q+96>>2]=B,E[Q+100>>2]=C;A:{if(!g&I>>>0>=64|g){for(;AC(A,Q+96|0,Q,0),C=a[Q+104|0]+1|0,o[Q+104|0]=C,C=a[Q+105|0]+(C>>>8|0)|0,o[Q+105|0]=C,C=a[Q+106|0]+(C>>>8|0)|0,o[Q+106|0]=C,C=a[Q+107|0]+(C>>>8|0)|0,o[Q+107|0]=C,C=a[Q+108|0]+(C>>>8|0)|0,o[Q+108|0]=C,C=a[Q+109|0]+(C>>>8|0)|0,o[Q+109|0]=C,C=a[Q+110|0]+(C>>>8|0)|0,o[Q+110|0]=C,o[Q+111|0]=a[Q+111|0]+(C>>>8|0),A=A- -64|0,g=g-1|0,!(g=(I=I+-64|0)>>>0<4294967232?g+1|0:g)&I>>>0>63|g;);if(!(I|g))break A}if(C=0,AC(Q+32|0,Q+96|0,Q,0),g=3&I,B=0,I-1>>>0>=3)for(i=-4&I,I=0;_=c=Q+32|0,o[A+B|0]=a[_+B|0],o[(t=1|B)+A|0]=a[_+t|0],o[(_=2|B)+A|0]=a[_+c|0],o[(_=3|B)+A|0]=a[_+(Q+32|0)|0],B=B+4|0,(0|i)!=(0|(I=I+4|0)););if(g)for(;o[A+B|0]=a[(Q+32|0)+B|0],B=B+1|0,(0|g)!=(0|(C=C+1|0)););}XC(Q+32|0,64),XC(Q,32)}return h=Q+112|0,0},function(A,I,g,C,B,Q,i,_){A|=0,I|=0,B|=0,Q|=0,i|=0,_|=0;var c,t=0;if(h=c=h-112|0,(g|=0)|(C|=0)){t=a[_+28|0]|a[_+29|0]<<8|a[_+30|0]<<16|a[_+31|0]<<24,E[c+24>>2]=a[_+24|0]|a[_+25|0]<<8|a[_+26|0]<<16|a[_+27|0]<<24,E[c+28>>2]=t,t=a[_+20|0]|a[_+21|0]<<8|a[_+22|0]<<16|a[_+23|0]<<24,E[c+16>>2]=a[_+16|0]|a[_+17|0]<<8|a[_+18|0]<<16|a[_+19|0]<<24,E[c+20>>2]=t,t=a[_+4|0]|a[_+5|0]<<8|a[_+6|0]<<16|a[_+7|0]<<24,E[c>>2]=a[0|_]|a[_+1|0]<<8|a[_+2|0]<<16|a[_+3|0]<<24,E[c+4>>2]=t,t=a[_+12|0]|a[_+13|0]<<8|a[_+14|0]<<16|a[_+15|0]<<24,E[c+8>>2]=a[_+8|0]|a[_+9|0]<<8|a[_+10|0]<<16|a[_+11|0]<<24,E[c+12>>2]=t,_=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,E[c+96>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,E[c+100>>2]=_,o[c+104|0]=Q,o[c+111|0]=i>>>24,o[c+110|0]=i>>>16,o[c+109|0]=i>>>8,o[c+108|0]=i,o[c+107|0]=(16777215&i)<<8|Q>>>24,o[c+106|0]=(65535&i)<<16|Q>>>16,o[c+105|0]=(255&i)<<24|Q>>>8;A:{if(!C&g>>>0>=64|C){for(;;){for(_=0,AC(c+32|0,c+96|0,c,0);Q=c+32|0,o[A+_|0]=a[Q+_|0]^a[I+_|0],o[(B=1|_)+A|0]=a[B+Q|0]^a[I+B|0],64!=(0|(_=_+2|0)););if(B=a[c+104|0]+1|0,o[c+104|0]=B,B=a[c+105|0]+(B>>>8|0)|0,o[c+105|0]=B,B=a[c+106|0]+(B>>>8|0)|0,o[c+106|0]=B,B=a[c+107|0]+(B>>>8|0)|0,o[c+107|0]=B,B=a[c+108|0]+(B>>>8|0)|0,o[c+108|0]=B,B=a[c+109|0]+(B>>>8|0)|0,o[c+109|0]=B,B=a[c+110|0]+(B>>>8|0)|0,o[c+110|0]=B,o[c+111|0]=a[c+111|0]+(B>>>8|0),I=I- -64|0,A=A- -64|0,C=C-1|0,!(!(C=(g=g+-64|0)>>>0<4294967232?C+1|0:C)&g>>>0>63|C))break}if(!(g|C))break A}if(_=0,AC(c+32|0,c+96|0,c,0),C=1&g,1!=(0|g))for(Q=-2&g,B=0;i=c+32|0,o[A+_|0]=a[i+_|0]^a[I+_|0],o[(g=1|_)+A|0]=a[g+i|0]^a[I+g|0],_=_+2|0,(0|Q)!=(0|(B=B+2|0)););C&&(o[A+_|0]=a[(c+32|0)+_|0]^a[I+_|0])}XC(c+32|0,64),XC(c,32)}return h=c+112|0,0},function(A,I,g,C,B,Q,i,o,E){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0;var a,_,c=0;if(_=c=h,h=a=c-192&-32,P(E|=0,o|=0,a- -64|0),E=32,c=0,i>>>0<32)o=0;else for(;V(Q+c|0,a- -64|0),o=E,c=E,(E=E+32|0)>>>0<=i>>>0;);if((E=31&i)&&(Hg((c=a+32|0)|E,0,32-E|0),Sg(c,Q+o|0,E),V(c,a- -64|0)),c=32,o=0,B>>>0<32)E=0;else for(;l(A+o|0,C+o|0,a- -64|0),o=E=c,(c=E+32|0)>>>0<=B>>>0;);return(Q=31&B)&&(Hg((o=a+32|0)|Q,0,32-Q|0),Sg(o,C+E|0,Q),l(a,o,a- -64|0),Sg(A+E|0,a,Q)),d(I,g,i,B,a- -64|0),h=_,0},function(A,I,g,C,B,Q,i,o,E){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0;var a,_,c=0;if(_=c=h,h=a=c-224&-32,P(E|=0,o|=0,a+96|0),E=32,c=0,i>>>0<32)o=0;else for(;V(Q+c|0,a+96|0),o=E,c=E,(E=E+32|0)>>>0<=i>>>0;);(E=31&i)&&(Hg((c=a- -64|0)|E,0,32-E|0),Sg(c,Q+o|0,E),V(c,a+96|0));A:{I:{g:{C:{B:{if(A){if(c=32,g>>>0<32)break B;for(E=0;U(A+E|0,I+E|0,a+96|0),o=c,(c=(E=c)+32|0)>>>0<=g>>>0;);}else{if(E=32,g>>>0<32)break g;for(c=0;U(a+32|0,I+c|0,a+96|0),o=E,c=E,(E=E+32|0)>>>0<=g>>>0;);}if(!(E=31&g))break A;if(A)break C;break I}if(o=0,!(E=g))break A}x(A+o|0,I+o|0,E,a+96|0);break A}if(o=0,!(E=g))break A}x(a+32|0,I+o|0,E,a+96|0)}d(a,B,i,g,a+96|0),o=-1;A:{I:{if(I=B-16|0){if(16==(0|I))break I;break A}o=iI(a,C);break A}o=SC(a,C)}return!A|!o||Hg(A,0,g),h=_,0|o},function(A,I,g,C,B,Q,i,o,_){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0;var c,t=0,r=0,e=0,y=0,s=0,D=0,p=0,w=0,f=0,n=0;if(h=c=h-528|0,M(_|=0,o|=0,c+400|0),o=0,i>>>0>=16)for(r=c+416|0,y=c+432|0,s=c+448|0,e=c+464|0,D=c+480|0,_=16;p=a[0|(o=Q+o|0)]|a[o+1|0]<<8|a[o+2|0]<<16|a[o+3|0]<<24,w=a[o+4|0]|a[o+5|0]<<8|a[o+6|0]<<16|a[o+7|0]<<24,f=a[o+8|0]|a[o+9|0]<<8|a[o+10|0]<<16|a[o+11|0]<<24,n=a[o+12|0]|a[o+13|0]<<8|a[o+14|0]<<16|a[o+15|0]<<24,o=E[D+12>>2],E[c+520>>2]=E[D+8>>2],E[c+524>>2]=o,o=E[D+4>>2],E[c+512>>2]=E[D>>2],E[c+516>>2]=o,o=E[e+12>>2],E[c+376>>2]=E[e+8>>2],E[c+380>>2]=o,o=E[e+4>>2],E[c+368>>2]=E[e>>2],E[c+372>>2]=o,o=E[D+12>>2],E[c+360>>2]=E[D+8>>2],E[c+364>>2]=o,o=E[D+4>>2],E[c+352>>2]=E[D>>2],E[c+356>>2]=o,$A(o=c+496|0,c+368|0,c+352|0),t=E[c+508>>2],E[D+8>>2]=E[c+504>>2],E[D+12>>2]=t,t=E[c+500>>2],E[D>>2]=E[c+496>>2],E[D+4>>2]=t,t=E[s+12>>2],E[c+344>>2]=E[s+8>>2],E[c+348>>2]=t,t=E[s+4>>2],E[c+336>>2]=E[s>>2],E[c+340>>2]=t,t=E[e+12>>2],E[c+328>>2]=E[e+8>>2],E[c+332>>2]=t,t=E[e+4>>2],E[c+320>>2]=E[e>>2],E[c+324>>2]=t,$A(o,c+336|0,c+320|0),t=E[c+508>>2],E[e+8>>2]=E[c+504>>2],E[e+12>>2]=t,t=E[c+500>>2],E[e>>2]=E[c+496>>2],E[e+4>>2]=t,t=E[y+12>>2],E[c+312>>2]=E[y+8>>2],E[c+316>>2]=t,t=E[y+4>>2],E[c+304>>2]=E[y>>2],E[c+308>>2]=t,t=E[s+12>>2],E[c+296>>2]=E[s+8>>2],E[c+300>>2]=t,t=E[s+4>>2],E[c+288>>2]=E[s>>2],E[c+292>>2]=t,$A(o,c+304|0,c+288|0),t=E[c+508>>2],E[s+8>>2]=E[c+504>>2],E[s+12>>2]=t,t=E[c+500>>2],E[s>>2]=E[c+496>>2],E[s+4>>2]=t,t=E[r+12>>2],E[c+280>>2]=E[r+8>>2],E[c+284>>2]=t,t=E[r+4>>2],E[c+272>>2]=E[r>>2],E[c+276>>2]=t,t=E[y+12>>2],E[c+264>>2]=E[y+8>>2],E[c+268>>2]=t,t=E[y+4>>2],E[c+256>>2]=E[y>>2],E[c+260>>2]=t,$A(o,c+272|0,c+256|0),t=E[c+508>>2],E[y+8>>2]=E[c+504>>2],E[y+12>>2]=t,t=E[c+500>>2],E[y>>2]=E[c+496>>2],E[y+4>>2]=t,t=E[c+412>>2],E[c+248>>2]=E[c+408>>2],E[c+252>>2]=t,t=E[c+404>>2],E[c+240>>2]=E[c+400>>2],E[c+244>>2]=t,t=E[r+12>>2],E[c+232>>2]=E[r+8>>2],E[c+236>>2]=t,t=E[r+4>>2],E[c+224>>2]=E[r>>2],E[c+228>>2]=t,$A(o,c+240|0,c+224|0),t=E[c+508>>2],E[r+8>>2]=E[c+504>>2],E[r+12>>2]=t,t=E[c+500>>2],E[r>>2]=E[c+496>>2],E[r+4>>2]=t,t=E[c+524>>2],E[c+216>>2]=E[c+520>>2],E[c+220>>2]=t,t=E[c+412>>2],E[c+200>>2]=E[c+408>>2],E[c+204>>2]=t,t=E[c+516>>2],E[c+208>>2]=E[c+512>>2],E[c+212>>2]=t,t=E[c+404>>2],E[c+192>>2]=E[c+400>>2],E[c+196>>2]=t,$A(o,c+208|0,c+192|0),E[c+412>>2]=n^E[c+508>>2],E[c+408>>2]=E[c+504>>2]^f,E[c+404>>2]=E[c+500>>2]^w,E[c+400>>2]=E[c+496>>2]^p,(_=(o=_)+16|0)>>>0<=i>>>0;);if((_=15&i)&&(Hg((r=c+384|0)|_,0,16-_|0),Sg(r,Q+o|0,_),_=E[c+384>>2],r=E[c+388>>2],y=E[c+392>>2],s=E[c+396>>2],o=E[c+492>>2],Q=E[c+488>>2],E[c+520>>2]=Q,E[c+524>>2]=o,e=E[c+476>>2],E[c+184>>2]=E[c+472>>2],E[c+188>>2]=e,E[c+168>>2]=Q,E[c+172>>2]=o,o=E[c+484>>2],Q=E[c+480>>2],E[c+512>>2]=Q,E[c+516>>2]=o,e=E[c+468>>2],E[c+176>>2]=E[c+464>>2],E[c+180>>2]=e,E[c+160>>2]=Q,E[c+164>>2]=o,$A(Q=c+496|0,c+176|0,c+160|0),o=E[c+508>>2],E[c+488>>2]=E[c+504>>2],E[c+492>>2]=o,o=E[c+460>>2],E[c+152>>2]=E[c+456>>2],E[c+156>>2]=o,o=E[c+476>>2],E[c+136>>2]=E[c+472>>2],E[c+140>>2]=o,o=E[c+500>>2],E[c+480>>2]=E[c+496>>2],E[c+484>>2]=o,o=E[c+452>>2],E[c+144>>2]=E[c+448>>2],E[c+148>>2]=o,o=E[c+468>>2],E[c+128>>2]=E[c+464>>2],E[c+132>>2]=o,$A(Q,c+144|0,c+128|0),o=E[c+508>>2],E[c+472>>2]=E[c+504>>2],E[c+476>>2]=o,o=E[c+444>>2],E[c+120>>2]=E[c+440>>2],E[c+124>>2]=o,o=E[c+460>>2],E[c+104>>2]=E[c+456>>2],E[c+108>>2]=o,o=E[c+500>>2],E[c+464>>2]=E[c+496>>2],E[c+468>>2]=o,o=E[c+436>>2],E[c+112>>2]=E[c+432>>2],E[c+116>>2]=o,o=E[c+452>>2],E[c+96>>2]=E[c+448>>2],E[c+100>>2]=o,$A(Q,c+112|0,c+96|0),o=E[c+508>>2],E[c+456>>2]=E[c+504>>2],E[c+460>>2]=o,o=E[c+428>>2],E[c+88>>2]=E[c+424>>2],E[c+92>>2]=o,o=E[c+444>>2],E[c+72>>2]=E[c+440>>2],E[c+76>>2]=o,o=E[c+500>>2],E[c+448>>2]=E[c+496>>2],E[c+452>>2]=o,o=E[c+420>>2],E[c+80>>2]=E[c+416>>2],E[c+84>>2]=o,o=E[c+436>>2],E[c+64>>2]=E[c+432>>2],E[c+68>>2]=o,$A(Q,c+80|0,c- -64|0),o=E[c+508>>2],E[c+440>>2]=E[c+504>>2],E[c+444>>2]=o,o=E[c+412>>2],E[c+56>>2]=E[c+408>>2],E[c+60>>2]=o,o=E[c+428>>2],E[c+40>>2]=E[c+424>>2],E[c+44>>2]=o,o=E[c+500>>2],E[c+432>>2]=E[c+496>>2],E[c+436>>2]=o,o=E[c+404>>2],E[c+48>>2]=E[c+400>>2],E[c+52>>2]=o,o=E[c+420>>2],E[c+32>>2]=E[c+416>>2],E[c+36>>2]=o,$A(Q,c+48|0,c+32|0),o=E[c+508>>2],E[c+424>>2]=E[c+504>>2],E[c+428>>2]=o,o=E[c+524>>2],E[c+24>>2]=E[c+520>>2],E[c+28>>2]=o,o=E[c+412>>2],E[c+8>>2]=E[c+408>>2],E[c+12>>2]=o,o=E[c+500>>2],E[c+416>>2]=E[c+496>>2],E[c+420>>2]=o,o=E[c+516>>2],E[c+16>>2]=E[c+512>>2],E[c+20>>2]=o,o=E[c+404>>2],E[c>>2]=E[c+400>>2],E[c+4>>2]=o,$A(Q,c+16|0,c),E[c+412>>2]=s^E[c+508>>2],E[c+408>>2]=y^E[c+504>>2],E[c+404>>2]=r^E[c+500>>2],E[c+400>>2]=_^E[c+496>>2]),Q=16,o=0,B>>>0<16)_=0;else for(;j(A+o|0,C+o|0,c+400|0),_=Q,(Q=(o=Q)+16|0)>>>0<=B>>>0;);return(Q=15&B)&&(Hg((o=c+384|0)|Q,0,16-Q|0),Sg(o,C+_|0,Q),j(C=c+512|0,o,c+400|0),Sg(A+_|0,C,Q)),m(I,g,i,B,c+400|0),h=c+528|0,0},function(A,I,g,C,B,Q,i,o,_){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0;var c,t=0,r=0,e=0,y=0,s=0,D=0,p=0,w=0,f=0,n=0;if(h=c=h-544|0,M(_|=0,o|=0,c+432|0),o=0,i>>>0>=16)for(r=c+448|0,y=c+464|0,s=c+480|0,e=c+496|0,D=c+512|0,_=16;p=a[0|(o=Q+o|0)]|a[o+1|0]<<8|a[o+2|0]<<16|a[o+3|0]<<24,w=a[o+4|0]|a[o+5|0]<<8|a[o+6|0]<<16|a[o+7|0]<<24,f=a[o+8|0]|a[o+9|0]<<8|a[o+10|0]<<16|a[o+11|0]<<24,n=a[o+12|0]|a[o+13|0]<<8|a[o+14|0]<<16|a[o+15|0]<<24,o=E[D+12>>2],E[c+392>>2]=E[D+8>>2],E[c+396>>2]=o,o=E[D+4>>2],E[c+384>>2]=E[D>>2],E[c+388>>2]=o,o=E[e+12>>2],E[c+376>>2]=E[e+8>>2],E[c+380>>2]=o,o=E[e+4>>2],E[c+368>>2]=E[e>>2],E[c+372>>2]=o,o=E[D+12>>2],E[c+360>>2]=E[D+8>>2],E[c+364>>2]=o,o=E[D+4>>2],E[c+352>>2]=E[D>>2],E[c+356>>2]=o,$A(o=c+528|0,c+368|0,c+352|0),t=E[c+540>>2],E[D+8>>2]=E[c+536>>2],E[D+12>>2]=t,t=E[c+532>>2],E[D>>2]=E[c+528>>2],E[D+4>>2]=t,t=E[s+12>>2],E[c+344>>2]=E[s+8>>2],E[c+348>>2]=t,t=E[s+4>>2],E[c+336>>2]=E[s>>2],E[c+340>>2]=t,t=E[e+12>>2],E[c+328>>2]=E[e+8>>2],E[c+332>>2]=t,t=E[e+4>>2],E[c+320>>2]=E[e>>2],E[c+324>>2]=t,$A(o,c+336|0,c+320|0),t=E[c+540>>2],E[e+8>>2]=E[c+536>>2],E[e+12>>2]=t,t=E[c+532>>2],E[e>>2]=E[c+528>>2],E[e+4>>2]=t,t=E[y+12>>2],E[c+312>>2]=E[y+8>>2],E[c+316>>2]=t,t=E[y+4>>2],E[c+304>>2]=E[y>>2],E[c+308>>2]=t,t=E[s+12>>2],E[c+296>>2]=E[s+8>>2],E[c+300>>2]=t,t=E[s+4>>2],E[c+288>>2]=E[s>>2],E[c+292>>2]=t,$A(o,c+304|0,c+288|0),t=E[c+540>>2],E[s+8>>2]=E[c+536>>2],E[s+12>>2]=t,t=E[c+532>>2],E[s>>2]=E[c+528>>2],E[s+4>>2]=t,t=E[r+12>>2],E[c+280>>2]=E[r+8>>2],E[c+284>>2]=t,t=E[r+4>>2],E[c+272>>2]=E[r>>2],E[c+276>>2]=t,t=E[y+12>>2],E[c+264>>2]=E[y+8>>2],E[c+268>>2]=t,t=E[y+4>>2],E[c+256>>2]=E[y>>2],E[c+260>>2]=t,$A(o,c+272|0,c+256|0),t=E[c+540>>2],E[y+8>>2]=E[c+536>>2],E[y+12>>2]=t,t=E[c+532>>2],E[y>>2]=E[c+528>>2],E[y+4>>2]=t,t=E[c+444>>2],E[c+248>>2]=E[c+440>>2],E[c+252>>2]=t,t=E[c+436>>2],E[c+240>>2]=E[c+432>>2],E[c+244>>2]=t,t=E[r+12>>2],E[c+232>>2]=E[r+8>>2],E[c+236>>2]=t,t=E[r+4>>2],E[c+224>>2]=E[r>>2],E[c+228>>2]=t,$A(o,c+240|0,c+224|0),t=E[c+540>>2],E[r+8>>2]=E[c+536>>2],E[r+12>>2]=t,t=E[c+532>>2],E[r>>2]=E[c+528>>2],E[r+4>>2]=t,t=E[c+396>>2],E[c+216>>2]=E[c+392>>2],E[c+220>>2]=t,t=E[c+444>>2],E[c+200>>2]=E[c+440>>2],E[c+204>>2]=t,t=E[c+388>>2],E[c+208>>2]=E[c+384>>2],E[c+212>>2]=t,t=E[c+436>>2],E[c+192>>2]=E[c+432>>2],E[c+196>>2]=t,$A(o,c+208|0,c+192|0),E[c+444>>2]=n^E[c+540>>2],E[c+440>>2]=E[c+536>>2]^f,E[c+436>>2]=E[c+532>>2]^w,E[c+432>>2]=E[c+528>>2]^p,(_=(o=_)+16|0)>>>0<=i>>>0;);(_=15&i)&&(Hg((r=c+416|0)|_,0,16-_|0),Sg(r,Q+o|0,_),_=E[c+416>>2],r=E[c+420>>2],y=E[c+424>>2],s=E[c+428>>2],o=E[c+524>>2],Q=E[c+520>>2],E[c+392>>2]=Q,E[c+396>>2]=o,e=E[c+508>>2],E[c+184>>2]=E[c+504>>2],E[c+188>>2]=e,E[c+168>>2]=Q,E[c+172>>2]=o,o=E[c+516>>2],Q=E[c+512>>2],E[c+384>>2]=Q,E[c+388>>2]=o,e=E[c+500>>2],E[c+176>>2]=E[c+496>>2],E[c+180>>2]=e,E[c+160>>2]=Q,E[c+164>>2]=o,$A(Q=c+528|0,c+176|0,c+160|0),o=E[c+540>>2],E[c+520>>2]=E[c+536>>2],E[c+524>>2]=o,o=E[c+492>>2],E[c+152>>2]=E[c+488>>2],E[c+156>>2]=o,o=E[c+508>>2],E[c+136>>2]=E[c+504>>2],E[c+140>>2]=o,o=E[c+532>>2],E[c+512>>2]=E[c+528>>2],E[c+516>>2]=o,o=E[c+484>>2],E[c+144>>2]=E[c+480>>2],E[c+148>>2]=o,o=E[c+500>>2],E[c+128>>2]=E[c+496>>2],E[c+132>>2]=o,$A(Q,c+144|0,c+128|0),o=E[c+540>>2],E[c+504>>2]=E[c+536>>2],E[c+508>>2]=o,o=E[c+476>>2],E[c+120>>2]=E[c+472>>2],E[c+124>>2]=o,o=E[c+492>>2],E[c+104>>2]=E[c+488>>2],E[c+108>>2]=o,o=E[c+532>>2],E[c+496>>2]=E[c+528>>2],E[c+500>>2]=o,o=E[c+468>>2],E[c+112>>2]=E[c+464>>2],E[c+116>>2]=o,o=E[c+484>>2],E[c+96>>2]=E[c+480>>2],E[c+100>>2]=o,$A(Q,c+112|0,c+96|0),o=E[c+540>>2],E[c+488>>2]=E[c+536>>2],E[c+492>>2]=o,o=E[c+460>>2],E[c+88>>2]=E[c+456>>2],E[c+92>>2]=o,o=E[c+476>>2],E[c+72>>2]=E[c+472>>2],E[c+76>>2]=o,o=E[c+532>>2],E[c+480>>2]=E[c+528>>2],E[c+484>>2]=o,o=E[c+452>>2],E[c+80>>2]=E[c+448>>2],E[c+84>>2]=o,o=E[c+468>>2],E[c+64>>2]=E[c+464>>2],E[c+68>>2]=o,$A(Q,c+80|0,c- -64|0),o=E[c+540>>2],E[c+472>>2]=E[c+536>>2],E[c+476>>2]=o,o=E[c+444>>2],E[c+56>>2]=E[c+440>>2],E[c+60>>2]=o,o=E[c+460>>2],E[c+40>>2]=E[c+456>>2],E[c+44>>2]=o,o=E[c+532>>2],E[c+464>>2]=E[c+528>>2],E[c+468>>2]=o,o=E[c+436>>2],E[c+48>>2]=E[c+432>>2],E[c+52>>2]=o,o=E[c+452>>2],E[c+32>>2]=E[c+448>>2],E[c+36>>2]=o,$A(Q,c+48|0,c+32|0),o=E[c+540>>2],E[c+456>>2]=E[c+536>>2],E[c+460>>2]=o,o=E[c+396>>2],E[c+24>>2]=E[c+392>>2],E[c+28>>2]=o,o=E[c+444>>2],E[c+8>>2]=E[c+440>>2],E[c+12>>2]=o,o=E[c+532>>2],E[c+448>>2]=E[c+528>>2],E[c+452>>2]=o,o=E[c+388>>2],E[c+16>>2]=E[c+384>>2],E[c+20>>2]=o,o=E[c+436>>2],E[c>>2]=E[c+432>>2],E[c+4>>2]=o,$A(Q,c+16|0,c),E[c+444>>2]=s^E[c+540>>2],E[c+440>>2]=y^E[c+536>>2],E[c+436>>2]=r^E[c+532>>2],E[c+432>>2]=_^E[c+528>>2]);A:{I:{g:{C:{B:{if(A){if(Q=16,g>>>0<16)break B;for(_=0;X(A+_|0,I+_|0,c+432|0),_=o=Q,(Q=o+16|0)>>>0<=g>>>0;);}else{if(_=16,g>>>0<16)break g;for(Q=0;X(c+528|0,I+Q|0,c+432|0),Q=o=_,(_=o+16|0)>>>0<=g>>>0;);}if(!(_=15&g))break A;if(A)break C;break I}if(o=0,!(_=g))break A}Z(A+o|0,I+o|0,_,c+432|0);break A}if(o=0,!(_=g))break A}Z(c+528|0,I+o|0,_,c+432|0)}m(c+384|0,B,i,g,c+432|0),o=-1;A:{I:{if(I=B-16|0){if(16==(0|I))break I;break A}o=iI(c+384|0,C);break A}o=SC(c+384|0,C)}return!A|!o||Hg(A,0,g),h=c+544|0,0|o}],DB.grow=function(A){var I=this.length;return this.length=this.length+A,I},DB.set=function(A,I){this[A]=I},DB.get=function(A){return this[A]},DB);function wB(){return i.byteLength/65536|0}return{f:function(){},g:CB,h:hB,i:CB,j:BB,k:aB,l:qC,m:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|WI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,a|=0,_|=0,36784)},n:function(A,I,g,C,B,Q,i,o,E,a,_,c){return 0|eg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0,_|=0,c|=0,36784)},o:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|zI(A|=0,I|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0,a|=0,_|=0,36788)},p:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|pg(A|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0,a|=0,_|=0,36788)},q:BB,r:hB,s:BB,t:BB,u:aB,v:LC,w:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|WI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,a|=0,_|=0,36792)},x:function(A,I,g,C,B,Q,i,o,E,a,_,c){return 0|eg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0,_|=0,c|=0,36792)},y:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|zI(A|=0,I|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0,a|=0,_|=0,36796)},z:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|pg(A|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0,a|=0,_|=0,36796)},A:function(A,I,g,C,B,Q,i,o,E,a,_,c){return 0|xI(A|=0,I|=0,g|=0,C|=0,(A=0)|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,_|=0,c|=0)},B:function(A,I,g,C,B,i,o,a,_,c,t){return A|=0,I|=0,C|=0,o|=0,_|=0,o|=_=0,!(B|=0)&(C|=_)>>>0<4294967280?(xI(A,A+C|0,0,g|=0,C,B,i|=0,o,a|=0,c|=0,t|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,E[I>>2]=A,E[I+4>>2]=B)):(yC(),Q()),0},C:function(A,I,g,C,B,Q,i,o,E,a,_,c){return 0|lI(A|=0,I|=0,g|=0,C|=0,(A=0)|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,_|=0,c|=0)},D:function(A,I,g,C,B,i,o,a,_,c,t){return A|=0,I|=0,C|=0,o|=0,_|=0,o|=_=0,!(B|=0)&(C|=_)>>>0<4294967280?(lI(A,A+C|0,0,g|=0,C,B,i|=0,o,a|=0,c|=0,t|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,E[I>>2]=A,E[I+4>>2]=B)):(yC(),Q()),0},E:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|UI(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},F:function(A,I,g,C,B,Q,i,o,a,_,c){return I|=0,g|=0,C|=0,B|=0,o|=0,o|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=UI(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,i|=0,o,a|=0,_|=0,c|=0)),I&&(E[I>>2]=g?0:B-16|0,E[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},G:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|YI(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},H:function(A,I,g,C,B,Q,i,o,a,_,c){return I|=0,g|=0,C|=0,B|=0,o|=0,o|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=YI(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,i|=0,o,a|=0,_|=0,c|=0)),I&&(E[I>>2]=g?0:B-16|0,E[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},I:BB,J:QB,K:hB,L:CB,M:oB,N:LC,O:BB,P:sB,Q:hB,R:CB,S:oB,T:LC,U:function(A,I,g,C,B,Q,i,o,E,a,_,c){return 0|fI(A|=0,I|=0,g|=0,C|=0,(A=0)|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,_|=0,c|=0)},V:function(A,I,g,C,B,i,o,a,_,c,t){return A|=0,I|=0,C|=0,o|=0,_|=0,o|=_=0,!(B|=0)&(C|=_)>>>0<4294967280?(fI(A,A+C|0,0,g|=0,C,B,i|=0,o,a|=0,c|=0,t|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,E[I>>2]=A,E[I+4>>2]=B)):(yC(),Q()),0},W:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|sI(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},X:function(A,I,g,C,B,Q,i,o,a,_,c){return I|=0,g|=0,C|=0,B|=0,o|=0,o|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=sI(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,i|=0,o,a|=0,_|=0,c|=0)),I&&(E[I>>2]=g?0:B-16|0,E[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},Y:BB,Z:_B,_:hB,$:CB,aa:oB,ba:LC,ca:BB,da:BB,ea:function(){return 1464},fa:EI,ga:JI,ha:LC,ia:BB,ja:BB,ka:IB,la:LC,ma:UA,na:function(A,I,g,C){return 0|YC(A|=0,I|=0,g|=0,C|=0)},oa:Fg,pa:function(A,I,g,C,B){var Q;return A|=0,I|=0,g|=0,C|=0,h=Q=h-240|0,UA(Q,B|=0,32),MA(Q,I,g,C),dA(Q,I=Q+208|0),MA(g=Q+104|0,I,32,0),dA(g,A),XC(I,32),h=Q+240|0,0},qa:function(A,I,g,C,B){var Q,i;return A|=0,I|=0,g|=0,C|=0,h=Q=h-272|0,UA(i=Q+32|0,B|=0,32),MA(i,I,g,C),dA(i,I=Q+240|0),MA(g=Q+136|0,I,32,0),dA(g,Q),XC(I,32),I=SC(A,Q),g=MI(Q,A,32),h=Q+272|0,((0|A)==(0|Q)?-1:I)|g},ra:gB,sa:BB,ta:TC,ua:LC,va:QI,wa:EC,xa:fg,ya:function(A,I,g,C,B){var Q;return A|=0,I|=0,g|=0,C|=0,h=Q=h-480|0,QI(Q,B|=0,32),nA(Q,I,g,C),z(Q,I=Q+416|0),nA(g=Q+208|0,I,64,0),z(g,A),XC(I,64),h=Q+480|0,0},za:function(A,I,g,C,B){var Q,i;return A|=0,I|=0,g|=0,C|=0,h=Q=h-544|0,QI(i=Q- -64|0,B|=0,32),nA(i,I,g,C),z(i,I=Q+480|0),nA(g=Q+272|0,I,64,0),z(g,Q),XC(I,64),I=GC(A,Q),g=MI(Q,A,64),h=Q+544|0,((0|A)==(0|Q)?-1:I)|g},Aa:BB,Ba:BB,Ca:TC,Da:LC,Ea:eC,Fa:EC,Ga:function(A,I){I|=0;var g,C=0;return h=g=h+-64|0,fg(A|=0,g),C=E[g+28>>2],A=E[g+24>>2],o[I+24|0]=A,o[I+25|0]=A>>>8,o[I+26|0]=A>>>16,o[I+27|0]=A>>>24,o[I+28|0]=C,o[I+29|0]=C>>>8,o[I+30|0]=C>>>16,o[I+31|0]=C>>>24,C=E[g+20>>2],A=E[g+16>>2],o[I+16|0]=A,o[I+17|0]=A>>>8,o[I+18|0]=A>>>16,o[I+19|0]=A>>>24,o[I+20|0]=C,o[I+21|0]=C>>>8,o[I+22|0]=C>>>16,o[I+23|0]=C>>>24,C=E[g+12>>2],A=E[g+8>>2],o[I+8|0]=A,o[I+9|0]=A>>>8,o[I+10|0]=A>>>16,o[I+11|0]=A>>>24,o[I+12|0]=C,o[I+13|0]=C>>>8,o[I+14|0]=C>>>16,o[I+15|0]=C>>>24,C=E[g+4>>2],A=E[g>>2],o[0|I]=A,o[I+1|0]=A>>>8,o[I+2|0]=A>>>16,o[I+3|0]=A>>>24,o[I+4|0]=C,o[I+5|0]=C>>>8,o[I+6|0]=C>>>16,o[I+7|0]=C>>>24,h=g- -64|0,0},Ha:EI,Ia:JI,Ja:BB,Ka:BB,La:BB,Ma:BB,Na:_B,Oa:BB,Pa:CB,Qa:CB,Ra:oB,Sa:function(){return 1478},Ta:function(A,I,g){return 0|aI(A|=0,I|=0,g|=0)},Ua:KC,Va:cC,Wa:Pg,Xa:qg,Ya:Qg,Za:Bg,_a:dg,$a:function(A,I,g,C,B,Q,i,o){A|=0,I|=0,g|=0,Q|=0;var E,a=0;return a=C|=0,C=B|=0,E=0|a,h=a=h-32|0,B=-1,cC(a,i|=0,o|=0)||(B=eI(A,I,g,E,C,Q,a),XC(a,32)),h=a+32|0,0|B},ab:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(yC(),Q()),0|eI(A+16|0,A,I,g,C,B,i)},bb:function(A,I,g,C,B,Q,i){return 0|sg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},cb:Jg,db:function(A,I,g,C,B,Q,i,o){A|=0,I|=0,g|=0,Q|=0;var E,a=0;return a=C|=0,C=B|=0,E=0|a,h=a=h-32|0,B=-1,cC(a,i|=0,o|=0)||(B=yI(A,I,g,E,C,Q,a),XC(a,32)),h=a+32|0,0|B},eb:hg,fb:function(A,I,g,C,B,Q,i){return 0|_g(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},gb:function(A,I,g,C,B){A|=0,I|=0,B|=0;var Q,i,a,_,c=0,t=0;return c=g|=0,g=C|=0,_=0|c,c=C=h,h=Q=C-512&-64,C=-1,KC(i=Q- -64|0,a=Q+32|0)||(iC(C=Q+128|0,0,0,24),mC(C,i,32,0),mC(C,B,32,0),rC(C,t=Q+96|0,24),C=sg(A+32|0,I,_,g,t,B,a),I=E[Q+92>>2],g=E[Q+88>>2],o[A+24|0]=g,o[A+25|0]=g>>>8,o[A+26|0]=g>>>16,o[A+27|0]=g>>>24,o[A+28|0]=I,o[A+29|0]=I>>>8,o[A+30|0]=I>>>16,o[A+31|0]=I>>>24,I=E[Q+84>>2],g=E[Q+80>>2],o[A+16|0]=g,o[A+17|0]=g>>>8,o[A+18|0]=g>>>16,o[A+19|0]=g>>>24,o[A+20|0]=I,o[A+21|0]=I>>>8,o[A+22|0]=I>>>16,o[A+23|0]=I>>>24,I=E[Q+76>>2],g=E[Q+72>>2],o[A+8|0]=g,o[A+9|0]=g>>>8,o[A+10|0]=g>>>16,o[A+11|0]=g>>>24,o[A+12|0]=I,o[A+13|0]=I>>>8,o[A+14|0]=I>>>16,o[A+15|0]=I>>>24,I=E[Q+68>>2],g=E[Q+64>>2],o[0|A]=g,o[A+1|0]=g>>>8,o[A+2|0]=g>>>16,o[A+3|0]=g>>>24,o[A+4|0]=I,o[A+5|0]=I>>>8,o[A+6|0]=I>>>16,o[A+7|0]=I>>>24,XC(a,32),XC(i,32),XC(t,24)),h=c,0|C},hb:function(A,I,g,C,B,Q){A|=0,I|=0,B|=0,Q|=0;var i,o,E=0;return o=E=h,h=i=E-448&-64,E=-1,!(C|=0)&(g|=0)>>>0>=48|C&&(iC(E=i- -64|0,0,0,24),mC(E,I,32,0),mC(E,B,32,0),rC(E,B=i+32|0,24),E=_g(A,I+32|0,g-32|0,C-(g>>>0<32)|0,B,I,Q)),h=o,0|E},ib:EB,jb:aI,kb:sC,lb:wg,mb:Pg,nb:qg,ob:Qg,pb:Bg,qb:BB,rb:BB,sb:BB,tb:BB,ub:_B,vb:BB,wb:CB,xb:CB,yb:oB,zb:yA,Ab:BB,Bb:CB,Cb:BB,Db:CB,Eb:fA,Fb:BB,Gb:CB,Hb:BB,Ib:CB,Jb:AC,Kb:gB,Lb:CB,Mb:BB,Nb:CB,Ob:IC,Pb:gB,Qb:CB,Rb:BB,Sb:CB,Tb:gC,Ub:gB,Vb:CB,Wb:BB,Xb:CB,Yb:CB,Zb:gB,_b:BB,$b:CB,ac:gB,bc:BB,cc:VC,dc:WC,ec:function(A,I,g,C,B,Q,i){return 0|kC(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},fc:iC,gc:function(A,I,g,C){return 0|mC(A|=0,I|=0,g|=0,C|=0)},hc:rC,ic:LC,jc:CB,kc:gB,lc:BB,mc:CB,nc:gB,oc:BB,pc:CB,qc:CB,rc:WC,sc:LC,tc:kC,uc:function(A,I,g,C,B,Q,i,o,E){return 0|QA(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0)},vc:eA,wc:function(A,I,g,C,B,i){A|=0,I|=0,B|=0,i|=0;var E=0,_=0,c=0,t=0,r=0,e=0,y=0;if(E=-1,!((C|=0)-65>>>0<4294967232|(g|=0)>>>0>64)){A:{if(!g||!I){if(((t=255&C)-65&255)>>>0>191){B?(_=725511199^(a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24),g=-1694144372^(a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24),I=-1377402159^(a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24),B=1359893119^(a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24)):(_=725511199,g=-1694144372,I=-1377402159,B=1359893119),i?(c=327033209^(a[i+8|0]|a[i+9|0]<<8|a[i+10|0]<<16|a[i+11|0]<<24),C=1541459225^(a[i+12|0]|a[i+13|0]<<8|a[i+14|0]<<16|a[i+15|0]<<24),E=-79577749^(a[0|i]|a[i+1|0]<<8|a[i+2|0]<<16|a[i+3|0]<<24),i=528734635^(a[i+4|0]|a[i+5|0]<<8|a[i+6|0]<<16|a[i+7|0]<<24)):(c=327033209,C=1541459225,E=-79577749,i=528734635),Hg(A- -64|0,0,293),o[A+56|0]=c,o[A+57|0]=c>>>8,o[A+58|0]=c>>>16,o[A+59|0]=c>>>24,o[A+60|0]=C,o[A+61|0]=C>>>8,o[A+62|0]=C>>>16,o[A+63|0]=C>>>24,o[A+48|0]=E,o[A+49|0]=E>>>8,o[A+50|0]=E>>>16,o[A+51|0]=E>>>24,o[A+52|0]=i,o[A+53|0]=i>>>8,o[A+54|0]=i>>>16,o[A+55|0]=i>>>24,o[A+40|0]=_,o[A+41|0]=_>>>8,o[A+42|0]=_>>>16,o[A+43|0]=_>>>24,o[A+44|0]=g,o[A+45|0]=g>>>8,o[A+46|0]=g>>>16,o[A+47|0]=g>>>24,o[A+32|0]=I,o[A+33|0]=I>>>8,o[A+34|0]=I>>>16,o[A+35|0]=I>>>24,o[A+36|0]=B,o[A+37|0]=B>>>8,o[A+38|0]=B>>>16,o[A+39|0]=B>>>24,o[A+24|0]=241,o[A+25|0]=54,o[A+26|0]=29,o[A+27|0]=95,o[A+28|0]=58,o[A+29|0]=245,o[A+30|0]=79,o[A+31|0]=165,o[A+16|0]=43,o[A+17|0]=248,o[A+18|0]=148,o[A+19|0]=254,o[A+20|0]=114,o[A+21|0]=243,o[A+22|0]=110,o[A+23|0]=60,o[A+8|0]=59,o[A+9|0]=167,o[A+10|0]=202,o[A+11|0]=132,o[A+12|0]=133,o[A+13|0]=174,o[A+14|0]=103,o[A+15|0]=187,I=-222443256^t,o[0|A]=I,o[A+1|0]=I>>>8,o[A+2|0]=I>>>16,o[A+3|0]=I>>>24,o[A+4|0]=103,o[A+5|0]=230,o[A+6|0]=9,o[A+7|0]=106;break A}yC(),Q()}h=e=h-128|0,!I|((y=255&C)-65&255)>>>0<=191|((E=255&g)-65&255)>>>0<=191?(yC(),Q()):(B?(_=725511199^(a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24),g=-1694144372^(a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24),t=-1377402159^(a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24),B=1359893119^(a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24)):(_=725511199,g=-1694144372,t=-1377402159,B=1359893119),i?(c=327033209^(a[i+8|0]|a[i+9|0]<<8|a[i+10|0]<<16|a[i+11|0]<<24),C=1541459225^(a[i+12|0]|a[i+13|0]<<8|a[i+14|0]<<16|a[i+15|0]<<24),r=-79577749^(a[0|i]|a[i+1|0]<<8|a[i+2|0]<<16|a[i+3|0]<<24),i=528734635^(a[i+4|0]|a[i+5|0]<<8|a[i+6|0]<<16|a[i+7|0]<<24)):(c=327033209,C=1541459225,r=-79577749,i=528734635),Hg(A- -64|0,0,293),o[A+56|0]=c,o[A+57|0]=c>>>8,o[A+58|0]=c>>>16,o[A+59|0]=c>>>24,o[A+60|0]=C,o[A+61|0]=C>>>8,o[A+62|0]=C>>>16,o[A+63|0]=C>>>24,o[A+48|0]=r,o[A+49|0]=r>>>8,o[A+50|0]=r>>>16,o[A+51|0]=r>>>24,o[A+52|0]=i,o[A+53|0]=i>>>8,o[A+54|0]=i>>>16,o[A+55|0]=i>>>24,o[A+40|0]=_,o[A+41|0]=_>>>8,o[A+42|0]=_>>>16,o[A+43|0]=_>>>24,o[A+44|0]=g,o[A+45|0]=g>>>8,o[A+46|0]=g>>>16,o[A+47|0]=g>>>24,o[A+32|0]=t,o[A+33|0]=t>>>8,o[A+34|0]=t>>>16,o[A+35|0]=t>>>24,o[A+36|0]=B,o[A+37|0]=B>>>8,o[A+38|0]=B>>>16,o[A+39|0]=B>>>24,o[A+24|0]=241,o[A+25|0]=54,o[A+26|0]=29,o[A+27|0]=95,o[A+28|0]=58,o[A+29|0]=245,o[A+30|0]=79,o[A+31|0]=165,o[A+16|0]=43,o[A+17|0]=248,o[A+18|0]=148,o[A+19|0]=254,o[A+20|0]=114,o[A+21|0]=243,o[A+22|0]=110,o[A+23|0]=60,o[A+8|0]=59,o[A+9|0]=167,o[A+10|0]=202,o[A+11|0]=132,o[A+12|0]=133,o[A+13|0]=174,o[A+14|0]=103,o[A+15|0]=187,g=-222443256^(E<<8|y),o[0|A]=g,o[A+1|0]=g>>>8,o[A+2|0]=g>>>16,o[A+3|0]=g>>>24,g=E>>>24^1779033703,o[A+4|0]=g,o[A+5|0]=g>>>8,o[A+6|0]=g>>>16,o[A+7|0]=g>>>24,Hg(E+e|0,0,E<<24>>24>=0?128-E|0:0),g=Sg(e,I,E),Sg(A+96|0,g,128),I=128+(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)|0,o[A+352|0]=I,o[A+353|0]=I>>>8,o[A+354|0]=I>>>16,o[A+355|0]=I>>>24,XC(g,128),h=g+128|0)}E=0}return 0|E},xc:mC,yc:Yg,zc:gB,Ac:CC,Bc:function(){return 1533},Cc:BB,Dc:function(){return 104},Ec:$I,Fc:function(A,I,g,C){return 0|MA(A|=0,I|=0,g|=0,C|=0)},Gc:dA,Hc:function(A,I,g,C){A|=0,I|=0,g|=0,C|=0;var B,Q=0;return h=B=h-112|0,Q=E[8603],E[B+16>>2]=E[8602],E[B+20>>2]=Q,Q=E[8605],E[B+24>>2]=E[8604],E[B+28>>2]=Q,Q=E[8607],E[B+32>>2]=E[8606],E[B+36>>2]=Q,E[B+40>>2]=0,E[B+44>>2]=0,Q=E[8601],E[B+8>>2]=E[8600],E[B+12>>2]=Q,MA(Q=B+8|0,I,g,C),dA(Q,A),h=B+112|0,0},Ic:gB,Jc:IB,Kc:SI,Lc:QC,Mc:z,Nc:CC,Oc:CB,Pc:gB,Qc:sB,Rc:BB,Sc:dI,Tc:VC,Uc:CB,Vc:gB,Wc:sB,Xc:BB,Yc:dI,Zc:LC,_c:function(A,I,g){return 0|UA(A|=0,I|=0,g|=0)},$c:function(A,I,g){return 0|YC(A|=0,I|=0,g|=0,0)},ad:function(A,I){return Fg(A|=0,I|=0),XC(A,4),0},bd:function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,h=Q=h-208|0,UA(Q,I|=0,g|=0),YC(Q,C,B,0),Fg(Q,A),XC(Q,4),h=Q+208|0,0},cd:LC,dd:function(A,I,g,C,B){A|=0,I|=0,g|=0,C|=0,B|=0;var Q,i=0,_=0,c=0;if(h=Q=h-256|0,o[Q+15|0]=1,I>>>0<=8160){if(I>>>0>=32)for(i=32;c=i,UA(i=Q+48|0,B,32),_&&YC(i,(A+_|0)-32|0,32,0),YC(i=Q+48|0,g,C,0),YC(i,Q+15|0,1,0),Fg(i,A+_|0),o[Q+15|0]=a[Q+15|0]+1,(i=(_=c)+32|0)>>>0<=I>>>0;);(_=31&I)&&(UA(I=Q+48|0,B,32),c&&YC(I,(A+c|0)-32|0,32,0),YC(I=Q+48|0,g,C,0),YC(I,Q+15|0,1,0),Fg(g=I,I=Q+16|0),Sg(A+c|0,I,_),XC(I,32)),XC(Q+48|0,208),A=0}else E[9392]=28,A=-1;return h=Q+256|0,0|A},ed:BB,fd:hB,gd:function(){return 8160},hd:IB,id:eC,jd:function(A,I,g){return 0|dC(A|=0,I|=0,g|=0,0)},kd:function(A,I){return fg(A|=0,I|=0),XC(A,4),0},ld:function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,h=Q=h-416|0,QI(Q,I|=0,g|=0),dC(Q,C,B,0),fg(Q,A),XC(Q,4),h=Q+416|0,0},md:function(A){ag(A|=0,64)},nd:function(A,I,g,C,B){A|=0,I|=0,g|=0,C|=0,B|=0;var Q,i=0,_=0,c=0;if(h=Q=h-496|0,o[Q+15|0]=1,I>>>0<=16320){if(I>>>0>=64)for(i=64;c=i,QI(i=Q+80|0,B,64),_&&dC(i,(A+_|0)-64|0,64,0),dC(i=Q+80|0,g,C,0),dC(i,Q+15|0,1,0),fg(i,A+_|0),o[Q+15|0]=a[Q+15|0]+1,(i=(_=c)- -64|0)>>>0<=I>>>0;);(_=63&I)&&(QI(I=Q+80|0,B,64),c&&dC(I,(A+c|0)-64|0,64,0),dC(I=Q+80|0,g,C,0),dC(I,Q+15|0,1,0),fg(g=I,I=Q+16|0),Sg(A+c|0,I,_),XC(I,64)),XC(Q+80|0,416),A=0}else E[9392]=28,A=-1;return h=Q+496|0,0|A},od:gB,pd:hB,qd:function(){return 16320},rd:function(A,I,g){return A|=0,kC(I|=0,32,g|=0,32,0,0,0),0|bC(A,I)},sd:function(A,I){return A|=0,ag(I|=0,32),0|bC(A,I)},td:function(A,I,g,C,B){I|=0,g|=0,C|=0,B|=0;var i,E,_=0,c=0,t=0;if(E=_=h,h=_=_-512&-64,i=(A|=0)||I){if(t=-1,!tC(c=_+96|0,C,B)){for(C=I||A,A=0,iC(I=_+128|0,0,0,64),mC(I,c,32,0),XC(c,32),mC(I,g,32,0),mC(I,B,32,0),rC(I,_+32|0,64),XC(I,384);g=(I=_+32|0)+A|0,o[A+i|0]=a[0|g],o[A+C|0]=a[g+32|0],o[(B=1|A)+i|0]=a[I+B|0],o[C+B|0]=a[g+33|0],32!=(0|(A=A+2|0)););XC(I,64),t=0}return h=E,0|t}yC(),Q()},ud:function(A,I,g,C,B){I|=0,g|=0,C|=0,B|=0;var i,E,_=0,c=0,t=0;if(E=_=h,h=_=_-512&-64,i=(A|=0)||I){if(t=-1,!tC(c=_+96|0,C,B)){for(C=I||A,A=0,iC(I=_+128|0,0,0,64),mC(I,c,32,0),XC(c,32),mC(I,B,32,0),mC(I,g,32,0),rC(I,_+32|0,64),XC(I,384);g=(I=_+32|0)+A|0,o[A+C|0]=a[0|g],o[A+i|0]=a[g+32|0],o[(B=1|A)+C|0]=a[I+B|0],o[B+i|0]=a[g+33|0],32!=(0|(A=A+2|0)););XC(I,64),t=0}return h=E,0|t}yC(),Q()},vd:BB,wd:BB,xd:BB,yd:BB,zd:function(){return 1315},Ad:$C,Bd:CB,Cd:BB,Dd:Zg,Ed:Wg,Fd:function(A,I){return 0|fC(A|=0,I|=0)},Gd:BC,Hd:function(A,I){return 0|nC(A|=0,I|=0)},Id:function(){return 1496},Jd:LC,Kd:Zg,Ld:Wg,Md:fC,Nd:BC,Od:nC,Pd:CB,Qd:BB,Rd:$C,Sd:LC,Td:rB,Ud:CB,Vd:tB,Wd:hB,Xd:tB,Yd:CB,Zd:AB,_d:function(){return 1549},$d:yB,ae:tB,be:ZC,ce:RC,de:cB,ee:jC,fe:function(){return 6},ge:function(){return 134217728},he:sB,ie:function(){return 536870912},je:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|cI(A|=0,(A=0)|(I|=0),g|=0,C|=0,A|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},ke:function(A,I,g,C,B,Q,i){return 0|OI(A|=0,I|=0,(A=0)|(g|=0),C|=0,A|(B|=0),Q|=0,i|=0)},le:function(A,I,g,C){return 0|JC(A|=0,I|=0,g|=0,C|=0)},me:function(A,I,g,C){return 0|UC(A|=0,I|=0,g|=0,C|=0)},ne:function(A,I,g,C){return 0|lC(A|=0,I|=0,g|=0,C|=0)},oe:eB,pe:CB,qe:tB,re:hB,se:tB,te:CB,ue:AB,ve:OC,we:rB,xe:tB,ye:ZC,ze:RC,Ae:eB,Be:PC,Ce:yB,De:vC,Ee:cB,Fe:xC,Ge:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|tI(A|=0,(A=0)|(I|=0),g|=0,C|=0,A|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},He:Ng,Ie:function(A,I,g,C){return 0|HC(A|=0,I|=0,g|=0,C|=0)},Je:rB,Ke:eB,Le:eB,Me:CB,Ne:tB,Oe:hB,Pe:tB,Qe:CB,Re:AB,Se:OC,Te:rB,Ue:tB,Ve:ZC,We:RC,Xe:eB,Ye:PC,Ze:yB,_e:vC,$e:cB,af:xC,bf:function(A,I,g,C,B,Q,i,o,a,_,c){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,a|=0,_|=0,I|=0,B|=0,o|=0;A:{switch((c|=0)-1|0){case 0:A=cI(A,I,g,C,B,Q,i,o,a,_,1);break A;case 1:A=tI(A,I,g,C,B,Q,i,o,a,_,2);break A}E[9392]=28,A=-1}return 0|A},cf:Ng,df:function(A,I,g,C,B,i,o,E){A|=0,I|=0,g|=0,C|=0,B|=0,i|=0,o|=0,g|=0,B|=0;A:{switch((E|=0)-1|0){case 1:A=TI(A,I,g,C,B,i,o);break A;default:yC(),Q();case 0:}A=OI(A,I,g,C,B,i,o)}return 0|A},ef:function(A,I,g,C){return I|=0,g|=0,C|=0,Cg(A|=0,1559,10)?Cg(A,1549,9)?(E[9392]=28,A=-1):A=JC(A,I,g,C):A=HC(A,I,g,C),0|A},ff:function(A,I,g,C){return I|=0,g|=0,C|=0,Cg(A|=0,1559,10)?Cg(A,1549,9)?(E[9392]=28,A=-1):A=UC(A,I,g,C):A=lC(A,I,g,C),0|A},gf:function(){return 1157},hf:function(){return 1438},jf:bC,kf:tC,lf:BB,mf:BB,nf:gI,of:wC,pf:BB,qf:BB,rf:BB,sf:_B,tf:BB,uf:CB,vf:CB,wf:oB,xf:function(){return 1488},yf:Pg,zf:qg,Af:LC,Bf:dg,Cf:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(yC(),Q()),eI(A+16|0,A,I,g,C,B,i),0},Df:Jg,Ef:hg,Ff:Pg,Gf:qg,Hf:BB,If:_B,Jf:BB,Kf:CB,Lf:CB,Mf:oB,Nf:LC,Of:LC,Pf:function(A,I,g){return A|=0,g|=0,ag(I|=0,24),yA(A,I,g,0),o[A+32|0]=1,o[A+33|0]=0,o[A+34|0]=0,o[A+35|0]=0,g=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,I=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,o[A+44|0]=0,o[A+45|0]=0,o[A+46|0]=0,o[A+47|0]=0,o[A+48|0]=0,o[A+49|0]=0,o[A+50|0]=0,o[A+51|0]=0,o[A+36|0]=g,o[A+37|0]=g>>>8,o[A+38|0]=g>>>16,o[A+39|0]=g>>>24,o[A+40|0]=I,o[A+41|0]=I>>>8,o[A+42|0]=I>>>16,o[A+43|0]=I>>>24,0},Qf:function(A,I,g){return yA(A|=0,I|=0,g|=0,0),o[A+32|0]=1,o[A+33|0]=0,o[A+34|0]=0,o[A+35|0]=0,g=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,I=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,o[A+44|0]=0,o[A+45|0]=0,o[A+46|0]=0,o[A+47|0]=0,o[A+48|0]=0,o[A+49|0]=0,o[A+50|0]=0,o[A+51|0]=0,o[A+36|0]=g,o[A+37|0]=g>>>8,o[A+38|0]=g>>>16,o[A+39|0]=g>>>24,o[A+40|0]=I,o[A+41|0]=I>>>8,o[A+42|0]=I>>>16,o[A+43|0]=I>>>24,0},Rf:function(A){var I,g=0,C=0;h=I=h-48|0,g=a[28+(A|=0)|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24,E[I+24>>2]=a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,E[I+28>>2]=g,g=a[A+20|0]|a[A+21|0]<<8|a[A+22|0]<<16|a[A+23|0]<<24,E[I+16>>2]=a[A+16|0]|a[A+17|0]<<8|a[A+18|0]<<16|a[A+19|0]<<24,E[I+20>>2]=g,g=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,E[I>>2]=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,E[I+4>>2]=g,g=a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24,E[I+8>>2]=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,E[I+12>>2]=g,g=a[A+40|0]|a[A+41|0]<<8|a[A+42|0]<<16|a[A+43|0]<<24,E[I+32>>2]=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24,E[I+36>>2]=g,xg(I,I,40,0,A+32|0,A),g=E[I+28>>2],C=E[I+24>>2],o[A+24|0]=C,o[A+25|0]=C>>>8,o[A+26|0]=C>>>16,o[A+27|0]=C>>>24,o[A+28|0]=g,o[A+29|0]=g>>>8,o[A+30|0]=g>>>16,o[A+31|0]=g>>>24,g=E[I+20>>2],C=E[I+16>>2],o[A+16|0]=C,o[A+17|0]=C>>>8,o[A+18|0]=C>>>16,o[A+19|0]=C>>>24,o[A+20|0]=g,o[A+21|0]=g>>>8,o[A+22|0]=g>>>16,o[A+23|0]=g>>>24,g=E[I+12>>2],C=E[I+8>>2],o[A+8|0]=C,o[A+9|0]=C>>>8,o[A+10|0]=C>>>16,o[A+11|0]=C>>>24,o[A+12|0]=g,o[A+13|0]=g>>>8,o[A+14|0]=g>>>16,o[A+15|0]=g>>>24,g=E[I+4>>2],C=E[I>>2],o[0|A]=C,o[A+1|0]=C>>>8,o[A+2|0]=C>>>16,o[A+3|0]=C>>>24,o[A+4|0]=g,o[A+5|0]=g>>>8,o[A+6|0]=g>>>16,o[A+7|0]=g>>>24,C=E[I+36>>2],g=E[I+32>>2],o[A+32|0]=1,o[A+33|0]=0,o[A+34|0]=0,o[A+35|0]=0,o[A+36|0]=g,o[A+37|0]=g>>>8,o[A+38|0]=g>>>16,o[A+39|0]=g>>>24,o[A+40|0]=C,o[A+41|0]=C>>>8,o[A+42|0]=C>>>16,o[A+43|0]=C>>>24,h=I+48|0},Sf:function(A,I,g,C,B,i,_,c,t,r){A|=0,I|=0,C|=0,i|=0,_|=0,t|=0,r|=0;var e,y=0,s=0,D=0;return y=B|=0,y|=B=0,e=B|(c|=0),h=B=h-384|0,(g|=0)&&(E[g>>2]=0,E[g+4>>2]=0),!i&y>>>0<4294967279?(Xg(s=B+16|0,64,0,D=A+32|0,A),fC(c=B+80|0,s),XC(s,64),NC(c,_,e,t),NC(c,34384,0-e&15,0),E[B+72>>2]=0,E[B+76>>2]=0,E[(_=B- -64|0)>>2]=0,E[_+4>>2]=0,E[B+56>>2]=0,E[B+60>>2]=0,E[B+48>>2]=0,E[B+52>>2]=0,E[B+40>>2]=0,E[B+44>>2]=0,E[B+32>>2]=0,E[B+36>>2]=0,E[B+16>>2]=0,E[B+20>>2]=0,E[B+24>>2]=0,E[B+28>>2]=0,o[B+16|0]=r,gg(s,s,64,0,D,1,A),NC(c,s,64,0),o[0|I]=a[B+16|0],gg(I=I+1|0,C,y,i,D,2,A),NC(c,I,y,i),NC(c,34384,15&y,0),E[B+8>>2]=e,E[B+12>>2]=t,NC(c,C=B+8|0,8,0),E[B+8>>2]=y- -64,E[B+12>>2]=i-((y>>>0<4294967232)-1|0),NC(c,C,8,0),nC(c,I=I+y|0),XC(c,256),o[A+36|0]=a[A+36|0]^a[0|I],o[A+37|0]=a[A+37|0]^a[I+1|0],o[A+38|0]=a[A+38|0]^a[I+2|0],o[A+39|0]=a[A+39|0]^a[I+3|0],o[A+40|0]=a[A+40|0]^a[I+4|0],o[A+41|0]=a[A+41|0]^a[I+5|0],o[A+42|0]=a[A+42|0]^a[I+6|0],o[A+43|0]=a[A+43|0]^a[I+7|0],XI(D),(2&r||NI(D,4))&&(I=a[A+28|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24,E[B+360>>2]=a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,E[B+364>>2]=I,I=a[A+20|0]|a[A+21|0]<<8|a[A+22|0]<<16|a[A+23|0]<<24,E[B+352>>2]=a[A+16|0]|a[A+17|0]<<8|a[A+18|0]<<16|a[A+19|0]<<24,E[B+356>>2]=I,I=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,E[B+336>>2]=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,E[B+340>>2]=I,I=a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24,E[B+344>>2]=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,E[B+348>>2]=I,I=a[A+40|0]|a[A+41|0]<<8|a[A+42|0]<<16|a[A+43|0]<<24,E[B+368>>2]=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24,E[B+372>>2]=I,xg(I=B+336|0,I,40,0,D,A),I=E[B+364>>2],C=E[B+360>>2],o[A+24|0]=C,o[A+25|0]=C>>>8,o[A+26|0]=C>>>16,o[A+27|0]=C>>>24,o[A+28|0]=I,o[A+29|0]=I>>>8,o[A+30|0]=I>>>16,o[A+31|0]=I>>>24,I=E[B+356>>2],C=E[B+352>>2],o[A+16|0]=C,o[A+17|0]=C>>>8,o[A+18|0]=C>>>16,o[A+19|0]=C>>>24,o[A+20|0]=I,o[A+21|0]=I>>>8,o[A+22|0]=I>>>16,o[A+23|0]=I>>>24,I=E[B+348>>2],C=E[B+344>>2],o[A+8|0]=C,o[A+9|0]=C>>>8,o[A+10|0]=C>>>16,o[A+11|0]=C>>>24,o[A+12|0]=I,o[A+13|0]=I>>>8,o[A+14|0]=I>>>16,o[A+15|0]=I>>>24,I=E[B+340>>2],C=E[B+336>>2],o[0|A]=C,o[A+1|0]=C>>>8,o[A+2|0]=C>>>16,o[A+3|0]=C>>>24,o[A+4|0]=I,o[A+5|0]=I>>>8,o[A+6|0]=I>>>16,o[A+7|0]=I>>>24,I=E[B+368>>2],C=E[B+372>>2],o[A+32|0]=1,o[A+33|0]=0,o[A+34|0]=0,o[A+35|0]=0,o[A+36|0]=I,o[A+37|0]=I>>>8,o[A+38|0]=I>>>16,o[A+39|0]=I>>>24,o[A+40|0]=C,o[A+41|0]=C>>>8,o[A+42|0]=C>>>16,o[A+43|0]=C>>>24),g&&(i=(A=y+17|0)>>>0<17?i+1|0:i,E[g>>2]=A,E[g+4>>2]=i),h=B+384|0):(yC(),Q()),0},Tf:function(A,I,g,C,B,i,_,c,t,r){A|=0,I|=0,C|=0,B|=0,c|=0,r|=0;var e,y=0,s=0,D=0,p=0,w=0,f=0;y=i|=0,i=_|=0,s=0|y,e=t|=0,h=_=h-400|0,(g|=0)&&(E[g>>2]=0,E[g+4>>2]=0),C&&(o[0|C]=255),f=-1;A:{I:{if(!((t=s>>>0<17)&!i)){if(w=y=i-t|0,!y&(t=s-17|0)>>>0>=4294967279|y)break I;Xg(D=_+32|0,64,0,p=A+32|0,A),fC(y=_+96|0,D),XC(D,64),NC(y,c,e,r),NC(y,34384,0-e&15,0),E[_+88>>2]=0,E[_+92>>2]=0,E[_+80>>2]=0,E[_+84>>2]=0,E[_+72>>2]=0,E[_+76>>2]=0,E[(c=_- -64|0)>>2]=0,E[c+4>>2]=0,E[_+56>>2]=0,E[_+60>>2]=0,E[_+48>>2]=0,E[_+52>>2]=0,E[_+40>>2]=0,E[_+44>>2]=0,E[_+32>>2]=0,E[_+36>>2]=0,o[_+32|0]=a[0|B],gg(D,D,64,0,p,1,A),c=a[_+32|0],o[_+32|0]=a[0|B],NC(y,D,64,0),NC(y,B=B+1|0,t,w),NC(y,34384,s-1&15,0),E[_+24>>2]=e,E[_+28>>2]=r,NC(y,r=_+24|0,8,0),i=(s=s+47|0)>>>0<47?i+1|0:i,E[_+24>>2]=s,E[_+28>>2]=i,NC(y,r,8,0),nC(y,_),XC(y,256),MI(_,B+t|0,16)?XC(_,16):(gg(I,B,t,w,p,2,A),o[A+36|0]=a[A+36|0]^a[0|_],o[A+37|0]=a[A+37|0]^a[_+1|0],o[A+38|0]=a[A+38|0]^a[_+2|0],o[A+39|0]=a[A+39|0]^a[_+3|0],o[A+40|0]=a[A+40|0]^a[_+4|0],o[A+41|0]=a[A+41|0]^a[_+5|0],o[A+42|0]=a[A+42|0]^a[_+6|0],o[A+43|0]=a[A+43|0]^a[_+7|0],XI(p),(2&c||NI(p,4))&&(I=a[A+28|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24,E[_+376>>2]=a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,E[_+380>>2]=I,I=a[A+20|0]|a[A+21|0]<<8|a[A+22|0]<<16|a[A+23|0]<<24,E[_+368>>2]=a[A+16|0]|a[A+17|0]<<8|a[A+18|0]<<16|a[A+19|0]<<24,E[_+372>>2]=I,I=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,E[_+352>>2]=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,E[_+356>>2]=I,I=a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24,E[_+360>>2]=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,E[_+364>>2]=I,I=a[A+40|0]|a[A+41|0]<<8|a[A+42|0]<<16|a[A+43|0]<<24,E[_+384>>2]=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24,E[_+388>>2]=I,xg(I=_+352|0,I,40,0,p,A),I=E[_+380>>2],B=E[_+376>>2],o[A+24|0]=B,o[A+25|0]=B>>>8,o[A+26|0]=B>>>16,o[A+27|0]=B>>>24,o[A+28|0]=I,o[A+29|0]=I>>>8,o[A+30|0]=I>>>16,o[A+31|0]=I>>>24,I=E[_+372>>2],B=E[_+368>>2],o[A+16|0]=B,o[A+17|0]=B>>>8,o[A+18|0]=B>>>16,o[A+19|0]=B>>>24,o[A+20|0]=I,o[A+21|0]=I>>>8,o[A+22|0]=I>>>16,o[A+23|0]=I>>>24,I=E[_+364>>2],B=E[_+360>>2],o[A+8|0]=B,o[A+9|0]=B>>>8,o[A+10|0]=B>>>16,o[A+11|0]=B>>>24,o[A+12|0]=I,o[A+13|0]=I>>>8,o[A+14|0]=I>>>16,o[A+15|0]=I>>>24,I=E[_+356>>2],B=E[_+352>>2],o[0|A]=B,o[A+1|0]=B>>>8,o[A+2|0]=B>>>16,o[A+3|0]=B>>>24,o[A+4|0]=I,o[A+5|0]=I>>>8,o[A+6|0]=I>>>16,o[A+7|0]=I>>>24,I=E[_+384>>2],B=E[_+388>>2],o[A+32|0]=1,o[A+33|0]=0,o[A+34|0]=0,o[A+35|0]=0,o[A+36|0]=I,o[A+37|0]=I>>>8,o[A+38|0]=I>>>16,o[A+39|0]=I>>>24,o[A+40|0]=B,o[A+41|0]=B>>>8,o[A+42|0]=B>>>16,o[A+43|0]=B>>>24),g&&(E[g>>2]=t,E[g+4>>2]=w),f=0,C&&(o[0|C]=c))}h=_+400|0;break A}yC(),Q()}return 0|f},Uf:function(){return 52},Vf:function(){return 17},Wf:_B,Xf:BB,Yf:function(){return-18},Zf:hB,_f:rB,$f:eB,ag:yB,bg:sB,cg:CB,dg:function(){return 1523},eg:W,fg:qC,gg:sB,hg:CB,ig:W,jg:IB,kg:gB,lg:BB,mg:BB,ng:gB,og:iB,pg:function(){return 1449},qg:function(A,I,g){return 0|NA(A|=0,I|=0,g|=0)},rg:function(A,I){return 0|YA(A|=0,I|=0)},sg:vI,tg:HI,ug:Rg,vg:Vg,wg:function(A){return 0|uC(A|=0)},xg:QC,yg:function(A,I,g,C){return 0|ng(A|=0,I|=0,g|=0,C|=0)},zg:function(A,I,g){return 0|bg(A|=0,I|=0,g|=0)},Ag:IB,Bg:gB,Cg:BB,Dg:BB,Eg:gB,Fg:iB,Gg:function(A,I){A|=0;var g,C,B,Q,i,E,_=0;return g=a[8+(_=I|=0)|0]|a[_+9|0]<<8|a[_+10|0]<<16|a[_+11|0]<<24,C=a[_+12|0]|a[_+13|0]<<8|a[_+14|0]<<16|a[_+15|0]<<24,B=a[_+16|0]|a[_+17|0]<<8|a[_+18|0]<<16|a[_+19|0]<<24,Q=a[_+20|0]|a[_+21|0]<<8|a[_+22|0]<<16|a[_+23|0]<<24,i=a[0|_]|a[_+1|0]<<8|a[_+2|0]<<16|a[_+3|0]<<24,I=a[_+4|0]|a[_+5|0]<<8|a[_+6|0]<<16|a[_+7|0]<<24,E=a[_+28|0]|a[_+29|0]<<8|a[_+30|0]<<16|a[_+31|0]<<24,_=a[_+24|0]|a[_+25|0]<<8|a[_+26|0]<<16|a[_+27|0]<<24,o[A+24|0]=_,o[A+25|0]=_>>>8,o[A+26|0]=_>>>16,o[A+27|0]=_>>>24,o[A+28|0]=E,o[A+29|0]=E>>>8,o[A+30|0]=E>>>16,o[A+31|0]=E>>>24,o[A+16|0]=B,o[A+17|0]=B>>>8,o[A+18|0]=B>>>16,o[A+19|0]=B>>>24,o[A+20|0]=Q,o[A+21|0]=Q>>>8,o[A+22|0]=Q>>>16,o[A+23|0]=Q>>>24,o[A+8|0]=g,o[A+9|0]=g>>>8,o[A+10|0]=g>>>16,o[A+11|0]=g>>>24,o[A+12|0]=C,o[A+13|0]=C>>>8,o[A+14|0]=C>>>16,o[A+15|0]=C>>>24,o[0|A]=i,o[A+1|0]=i>>>8,o[A+2|0]=i>>>16,o[A+3|0]=i>>>24,o[A+4|0]=I,o[A+5|0]=I>>>8,o[A+6|0]=I>>>16,o[A+7|0]=I>>>24,0},Hg:function(A,I){A|=0;var g,C,B,Q,i,E,_=0;return g=a[32+(_=I|=0)|0]|a[_+33|0]<<8|a[_+34|0]<<16|a[_+35|0]<<24,C=a[_+36|0]|a[_+37|0]<<8|a[_+38|0]<<16|a[_+39|0]<<24,B=a[_+40|0]|a[_+41|0]<<8|a[_+42|0]<<16|a[_+43|0]<<24,Q=a[_+44|0]|a[_+45|0]<<8|a[_+46|0]<<16|a[_+47|0]<<24,i=a[_+48|0]|a[_+49|0]<<8|a[_+50|0]<<16|a[_+51|0]<<24,I=a[_+52|0]|a[_+53|0]<<8|a[_+54|0]<<16|a[_+55|0]<<24,E=a[_+60|0]|a[_+61|0]<<8|a[_+62|0]<<16|a[_+63|0]<<24,_=a[_+56|0]|a[_+57|0]<<8|a[_+58|0]<<16|a[_+59|0]<<24,o[A+24|0]=_,o[A+25|0]=_>>>8,o[A+26|0]=_>>>16,o[A+27|0]=_>>>24,o[A+28|0]=E,o[A+29|0]=E>>>8,o[A+30|0]=E>>>16,o[A+31|0]=E>>>24,o[A+16|0]=i,o[A+17|0]=i>>>8,o[A+18|0]=i>>>16,o[A+19|0]=i>>>24,o[A+20|0]=I,o[A+21|0]=I>>>8,o[A+22|0]=I>>>16,o[A+23|0]=I>>>24,o[A+8|0]=B,o[A+9|0]=B>>>8,o[A+10|0]=B>>>16,o[A+11|0]=B>>>24,o[A+12|0]=Q,o[A+13|0]=Q>>>8,o[A+14|0]=Q>>>16,o[A+15|0]=Q>>>24,o[0|A]=g,o[A+1|0]=g>>>8,o[A+2|0]=g>>>16,o[A+3|0]=g>>>24,o[A+4|0]=C,o[A+5|0]=C>>>8,o[A+6|0]=C>>>16,o[A+7|0]=C>>>24,0},Ig:uC,Jg:QC,Kg:ng,Lg:bg,Mg:NA,Ng:YA,Og:function(A,I){A|=0;var g,C=0,B=0,Q=0,i=0,o=0,a=0,_=0,t=0,r=0,e=0,y=0,s=0,D=0,p=0,f=0,n=0,k=0,F=0,N=0,S=0,G=0,M=0,b=0,K=0,H=0,Y=0,d=0,J=0,U=0,l=0,m=0,u=0,x=0,R=0,v=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,V=0,Z=0,W=0,T=0,$=0,AA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,pA=0,wA=0,fA=0,nA=0,kA=0,FA=0,NA=0,SA=0,GA=0,MA=0,bA=0,KA=0,HA=0,YA=0,dA=0;return h=g=h-256|0,NA=-1,bI(I|=0)||qA(C=g+96|0,I)||IA(C)&&(Q=E[g+136>>2],E[g>>2]=1-Q,NA=0,u=E[g+172>>2],E[g+36>>2]=0-u,n=E[g+168>>2],E[g+32>>2]=0-n,x=E[g+164>>2],E[g+28>>2]=0-x,k=E[g+160>>2],E[g+24>>2]=0-k,R=E[g+156>>2],E[g+20>>2]=0-R,F=E[g+152>>2],E[g+16>>2]=0-F,v=E[g+148>>2],E[g+12>>2]=0-v,N=E[g+144>>2],E[g+8>>2]=0-N,L=E[g+140>>2],E[g+4>>2]=0-L,vA(g,g),I=Ig(S=E[g+4>>2],U=S>>31,G=R<<1,gA=G>>31),C=w,B=Ig(p=E[g>>2],M=p>>31,k,b=k>>31),C=w+C|0,C=(I=B+I|0)>>>0>>0?C+1|0:C,B=(i=Ig(K=E[g+8>>2],P=K>>31,F,H=F>>31))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(l=E[g+12>>2],j=l>>31,V=v<<1,CA=V>>31),I=w+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(q=E[g+16>>2],Z=q>>31,N,Y=N>>31),I=w+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,pA=i=E[g+20>>2],s=Ig(i,BA=i>>31,W=L<<1,QA=W>>31),B=w+I|0,B=(C=s+C|0)>>>0>>0?B+1|0:B,wA=r=E[g+24>>2],I=(Q=Ig(r,sA=r>>31,s=Q+1|0,d=s>>31))+C|0,C=w+B|0,C=I>>>0>>0?C+1|0:C,iA=E[g+28>>2],B=(Q=Ig(f=c(iA,19),X=f>>31,T=u<<1,oA=T>>31))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,C=B,SA=E[g+32>>2],B=Ig(a=c(SA,19),z=a>>31,n,J=n>>31),I=w+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,GA=E[g+36>>2],B=Ig(y=c(GA,19),m=y>>31,$=x<<1,EA=$>>31),I=w+I|0,_=C=B+C|0,Q=C>>>0>>0?I+1|0:I,I=Ig(F,H,S,U),C=w,o=Ig(p,M,R,aA=R>>31),B=w+C|0,B=(I=o+I|0)>>>0>>0?B+1|0:B,o=Ig(K,P,v,_A=v>>31),C=w+B|0,C=(I=o+I|0)>>>0>>0?C+1|0:C,B=(o=Ig(N,Y,l,j))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(q,Z,L,cA=L>>31),I=w+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(s,d,i,BA),I=w+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,o=Ig(r=c(r,19),AA=r>>31,u,tA=u>>31),B=w+I|0,B=(C=o+C|0)>>>0>>0?B+1|0:B,I=(o=Ig(n,J,f,X))+C|0,C=w+B|0,C=I>>>0>>0?C+1|0:C,B=(o=Ig(a,z,x,rA=x>>31))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(y,m,k,b),I=w+I|0,fA=C=C+B|0,O=C>>>0>>0?I+1|0:I,I=Ig(S,U,V,CA),B=w,C=(o=Ig(p,M,F,H))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,o=Ig(N,Y,K,P),B=w+I|0,B=(C=o+C|0)>>>0>>0?B+1|0:B,I=(o=Ig(l,j,W,QA))+C|0,C=w+B|0,C=I>>>0>>0?C+1|0:C,B=(o=Ig(s,d,q,Z))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(o=c(i,19),eA=o>>31,T,oA),I=w+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(n,J,r,AA),I=w+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,i=Ig(f,X,$,EA),B=w+I|0,B=(C=i+C|0)>>>0>>0?B+1|0:B,I=(i=Ig(a,z,k,b))+C|0,C=w+B|0,C=I>>>0>>0?C+1|0:C,B=(i=Ig(y,m,G,gA))+I|0,I=w+C|0,MA=B,bA=I=B>>>0>>0?I+1|0:I,KA=B=B+33554432|0,HA=I=B>>>0<33554432?I+1|0:I,B=(67108863&I)<<6|B>>>26,I=(I>>26)+O|0,fA=i=B+fA|0,I=B>>>0>i>>>0?I+1|0:I,YA=i=i+16777216|0,I=(C=(B=i>>>0<16777216?I+1|0:I)>>25)+Q|0,I=(B=(i=(33554431&B)<<7|i>>>25)+_|0)>>>0>>0?I+1|0:I,D=C=B+33554432|0,i=I=C>>>0<33554432?I+1|0:I,E[g+72>>2]=B-(-67108864&C),I=Ig(S,U,W,QA),C=w,Q=Ig(p,M,N,Y),B=w+C|0,B=(I=Q+I|0)>>>0>>0?B+1|0:B,C=(Q=Ig(s,d,K,P))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=Ig(Q=c(l,19),yA=Q>>31,T,oA),I=w+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(_=Ig(O=c(q,19),hA=O>>31,n,J))+C|0,C=w+I|0,C=B>>>0<_>>>0?C+1|0:C,_=Ig($,EA,o,eA),I=w+C|0,I=(B=_+B|0)>>>0<_>>>0?I+1|0:I,C=(_=Ig(k,b,r,AA))+B|0,B=w+I|0,B=C>>>0<_>>>0?B+1|0:B,_=Ig(f,X,G,gA),I=w+B|0,I=(C=_+C|0)>>>0<_>>>0?I+1|0:I,B=Ig(a,z,F,H),I=w+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(_=Ig(y,m,V,CA))+C|0,C=w+I|0,e=B,nA=B>>>0<_>>>0?C+1|0:C,I=Ig(s,d,S,U),C=w,B=(_=Ig(p,M,L,cA))+I|0,I=w+C|0,I=B>>>0<_>>>0?I+1|0:I,_=C=c(K,19),C=(t=Ig(C,DA=C>>31,u,tA))+B|0,B=w+I|0,B=C>>>0>>0?B+1|0:B,t=Ig(n,J,Q,yA),I=w+B|0,I=(C=t+C|0)>>>0>>0?I+1|0:I,B=Ig(O,hA,x,rA),I=w+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(t=Ig(k,b,o,eA))+C|0,C=w+I|0,C=B>>>0>>0?C+1|0:C,t=Ig(r,AA,R,aA),I=w+C|0,I=(B=t+B|0)>>>0>>0?I+1|0:I,C=(t=Ig(F,H,f,X))+B|0,B=w+I|0,B=C>>>0>>0?B+1|0:B,t=Ig(a,z,v,_A),I=w+B|0,I=(C=t+C|0)>>>0>>0?I+1|0:I,B=Ig(y,m,N,Y),I=w+I|0,kA=C=B+C|0,t=C>>>0>>0?I+1|0:I,I=Ig(I=c(S,19),I>>31,T,oA),C=w,B=Ig(p,M,s,d),C=w+C|0,C=(I=B+I|0)>>>0>>0?C+1|0:C,B=(_=Ig(n,J,_,DA))+I|0,I=w+C|0,C=(Q=Ig(Q,yA,$,EA))+B|0,B=w+(B>>>0<_>>>0?I+1|0:I)|0,B=C>>>0>>0?B+1|0:B,Q=Ig(k,b,O,hA),I=w+B|0,I=(C=Q+C|0)>>>0>>0?I+1|0:I,B=Ig(G,gA,o,eA),I=w+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(Q=Ig(F,H,r,AA))+C|0,C=w+I|0,C=B>>>0>>0?C+1|0:C,Q=Ig(f,X,V,CA),I=w+C|0,I=(B=Q+B|0)>>>0>>0?I+1|0:I,C=(Q=Ig(a,z,N,Y))+B|0,B=w+I|0,B=C>>>0>>0?B+1|0:B,Q=Ig(y,m,W,QA),I=w+B|0,_=C=Q+C|0,yA=I=C>>>0>>0?I+1|0:I,DA=C=C+33554432|0,dA=I=C>>>0<33554432?I+1|0:I,B=I>>26,I=(67108863&I)<<6|C>>>26,C=B+t|0,t=Q=I+kA|0,I=C=I>>>0>Q>>>0?C+1|0:C,kA=Q=Q+16777216|0,Q=(33554431&(I=Q>>>0<16777216?I+1|0:I))<<7|Q>>>25,I=(I>>25)+nA|0,I=(C=Q+e|0)>>>0>>0?I+1|0:I,B=C,nA=C=C+33554432|0,Q=I=C>>>0<33554432?I+1|0:I,E[g+56>>2]=B-(-67108864&C),I=Ig(k,b,S,U),B=w,C=(e=Ig(p,M,x,rA))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=Ig(K,P,R,aA),I=w+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=Ig(F,H,l,j),I=w+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,e=Ig(q,Z,v,_A),B=w+I|0,B=(C=e+C|0)>>>0>>0?B+1|0:B,I=(e=Ig(N,Y,pA,BA))+C|0,C=w+B|0,C=I>>>0>>0?C+1|0:C,B=(e=Ig(L,cA,wA,sA))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(iA,FA=iA>>31,s,d),I=w+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(a,z,u,tA),I=w+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,e=(B=C)+(C=Ig(y,m,n,J))|0,B=w+I|0,C=(I=i>>26)+(C=C>>>0>e>>>0?B+1|0:B)|0,D=B=(i=(67108863&i)<<6|D>>>26)+e|0,I=C=B>>>0>>0?C+1|0:C,e=B=B+16777216|0,i=I=B>>>0<16777216?I+1|0:I,E[g+76>>2]=D-(-33554432&B),I=Ig(N,Y,S,U),C=w,D=Ig(p,M,v,_A),B=w+C|0,B=(I=D+I|0)>>>0>>0?B+1|0:B,D=Ig(K,P,L,cA),C=w+B|0,C=(I=D+I|0)>>>0>>0?C+1|0:C,B=(D=Ig(s,d,l,j))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(O,hA,u,tA),I=w+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(n,J,o,eA),I=w+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,C=(r=Ig(r,AA,x,rA))+C|0,B=w+I|0,I=(f=Ig(k,b,f,X))+C|0,C=w+(C>>>0>>0?B+1|0:B)|0,B=(a=Ig(a,z,R,aA))+I|0,I=w+(I>>>0>>0?C+1|0:C)|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(y,m,F,H),I=w+I|0,D=C=C+B|0,I=(I=C>>>0>>0?I+1|0:I)+(C=Q>>26)|0,a=Q=D+(B=(67108863&Q)<<6|nA>>>26)|0,I=B>>>0>Q>>>0?I+1|0:I,f=C=Q+16777216|0,Q=B=C>>>0<16777216?I+1|0:I,E[g+60>>2]=a-(-33554432&C),I=Ig(S,U,$,EA),B=w,C=(a=Ig(p,M,n,J))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=Ig(k,b,K,P),I=w+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,a=Ig(l,j,G,gA),B=w+I|0,B=(C=a+C|0)>>>0>>0?B+1|0:B,I=(a=Ig(F,H,q,Z))+C|0,C=w+B|0,C=I>>>0>>0?C+1|0:C,B=(a=Ig(V,CA,pA,BA))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(N,Y,wA,sA),I=w+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=C,C=Ig(iA,FA,W,QA),I=w+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,a=C=SA,C=(G=Ig(C,r=C>>31,s,d))+B|0,B=w+I|0,I=(y=Ig(y,m,T,oA))+C|0,C=w+(C>>>0>>0?B+1|0:B)|0,B=I>>>0>>0?C+1|0:C,C=I,I=(I=i>>25)+B|0,I=(C=C+(i=(33554431&i)<<7|e>>>25)|0)>>>0>>0?I+1|0:I,B=C,y=C=C+33554432|0,i=I=C>>>0<33554432?I+1|0:I,E[g+80>>2]=B-(-67108864&C),C=Q>>25,B=(Q=(33554431&Q)<<7|f>>>25)+(MA-(I=-67108864&KA)|0)|0,I=C+(bA-((I>>>0>MA>>>0)+HA|0)|0)|0,I=B>>>0>>0?I+1|0:I,I=((67108863&(I=(C=B+33554432|0)>>>0<33554432?I+1|0:I))<<6|C>>>26)+(G=fA-(-33554432&YA)|0)|0,E[g+68>>2]=I,E[g+64>>2]=B-(-67108864&C),I=Ig(n,J,S,U),B=w,C=(Q=Ig(p,M,u,tA))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=(Q=Ig(K,P,x,rA))+C|0,C=w+I|0,C=B>>>0>>0?C+1|0:C,I=(Q=Ig(k,b,l,j))+B|0,B=w+C|0,B=I>>>0>>0?B+1|0:B,C=(Q=Ig(q,Z,R,aA))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=Ig(F,H,pA,BA),I=w+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=Ig(v,_A,wA,sA),I=w+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(Q=Ig(N,Y,iA,FA))+C|0,C=w+I|0,C=B>>>0>>0?C+1|0:C,Q=(I=Ig(a,r,L,cA))+B|0,B=w+C|0,B=I>>>0>Q>>>0?B+1|0:B,C=Q,Q=Ig(I=GA,I>>31,s,d),I=w+B|0,B=C=C+Q|0,I=(I=C>>>0>>0?I+1|0:I)+(C=i>>26)|0,I=(B=B+(i=(67108863&i)<<6|y>>>26)|0)>>>0>>0?I+1|0:I,I=(C=B+16777216|0)>>>0<16777216?I+1|0:I,E[g+84>>2]=B-(-33554432&C),i=t-(-33554432&kA)|0,Q=_-(B=-67108864&DA)|0,p=yA-((B>>>0>_>>>0)+dA|0)|0,I=Ig((33554431&(B=I))<<7|C>>>25,I>>=25,19,0),C=w+p|0,I=I>>>0>(B=I+Q|0)>>>0?C+1|0:C,I=((67108863&(I=(C=B+33554432|0)>>>0<33554432?I+1|0:I))<<6|C>>>26)+i|0,E[g+52>>2]=I,E[g+48>>2]=B-(-67108864&C),BI(A,g+48|0)),h=g+256|0,0|NA},Pg:function(A,I){A|=0;var g,C=0;return h=g=h+-64|0,kI(g,I|=0,32,0),o[0|g]=248&a[0|g],o[g+31|0]=63&a[g+31|0]|64,I=E[g+20>>2],C=E[g+16>>2],o[A+16|0]=C,o[A+17|0]=C>>>8,o[A+18|0]=C>>>16,o[A+19|0]=C>>>24,o[A+20|0]=I,o[A+21|0]=I>>>8,o[A+22|0]=I>>>16,o[A+23|0]=I>>>24,I=E[g+12>>2],C=E[g+8>>2],o[A+8|0]=C,o[A+9|0]=C>>>8,o[A+10|0]=C>>>16,o[A+11|0]=C>>>24,o[A+12|0]=I,o[A+13|0]=I>>>8,o[A+14|0]=I>>>16,o[A+15|0]=I>>>24,I=E[g+4>>2],C=E[g>>2],o[0|A]=C,o[A+1|0]=C>>>8,o[A+2|0]=C>>>16,o[A+3|0]=C>>>24,o[A+4|0]=I,o[A+5|0]=I>>>8,o[A+6|0]=I>>>16,o[A+7|0]=I>>>24,I=E[g+28>>2],C=E[g+24>>2],o[A+24|0]=C,o[A+25|0]=C>>>8,o[A+26|0]=C>>>16,o[A+27|0]=C>>>24,o[A+28|0]=I,o[A+29|0]=I>>>8,o[A+30|0]=I>>>16,o[A+31|0]=I>>>24,XC(g,64),h=g- -64|0,0},Qg:Vg,Rg:HI,Sg:Rg,Tg:vI,Ug:BB,Vg:sB,Wg:tB,Xg:BB,Yg:QB,Zg:tB,_g:function(A,I,g,C,B){return 0|jg(A|=0,I|=0,g|=0,C|=0,B|=0)},$g:function(A,I,g,C,B,Q,i,o){return 0|Ug(A|=0,I|=0,(A=0)|(g|=0),C|=0,B|=0,A|(Q|=0),i|=0,o|=0)},ah:function(A,I,g,C,B,Q){return 0|ug(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)},bh:function(A,I,g,C,B){return 0|Xg(A|=0,I|=0,g|=0,C|=0,B|=0)},ch:function(A,I,g,C,B,Q,i){return 0|gg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},dh:function(A,I,g,C,B,Q){return 0|xg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)},eh:LC,fh:LC,gh:BB,hh:_B,ih:tB,jh:function(){return 1540},kh:Tg,lh:zg,mh:LC,nh:BB,oh:sB,ph:tB,qh:function(A,I,g,C,B){return 0|pC(A|=0,I|=0,g|=0,C|=0,B|=0)},rh:function(A,I,g,C,B,Q,i,o){return 0|oC(A|=0,I|=0,(A=0)|(g|=0),C|=0,B|=0,A|(Q|=0),i|=0,o|=0)},sh:function(A,I,g,C,B,Q){return 0|aC(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)},th:LC,uh:Tg,vh:function(A,I,g,C,B,Q,i,o){var E;return A|=0,I|=0,g|=0,C|=0,Q|=0,i|=0,h=E=h-32|0,fA(E,B|=0,o|=0,0),A=oC(o=A,I,(A=0)|g,C,B+16|0,A|Q,i,E),XC(E,32),h=E+32|0,0|A},wh:zg,xh:BB,yh:_B,zh:tB,Ah:LC,Bh:CB,Ch:BB,Dh:gB,Eh:iI,Fh:SC,Gh:GC,Hh:function(){return 1089},Ih:function(){var A,I;return h=A=h-16|0,o[A+15|0]=0,I=0|r(36800,A+15|0,0),h=A+16|0,0|I},Jh:$g,Kh:function(A){var I,g=0,C=0;if(h=I=h-16|0,(A|=0)>>>0>=2){for(g=(0-A>>>0)%(A>>>0)|0;o[I+15|0]=0,g>>>0>(C=0|r(36800,I+15|0,0))>>>0;);g=(C>>>0)%(A>>>0)|0}return h=I+16|0,0|g},Lh:ag,Mh:function(A,I,g){Xg(A|=0,I|=0,0,1574,g|=0)},Nh:BB,Oh:function(){var A=0,I=0;return(A=E[9524])&&(A=E[A+20>>2])&&(I=0|pB[0|A]()),0|I},Ph:function(A,I,g){A|=0,I|=0;var C,B=0,i=0,E=0;if(h=C=h-16|0,g|=0)e(1329,1175,197,1092),Q();else{if(I)for(;o[C+15|0]=0,i=A+B|0,E=0|r(36800,C+15|0,0),o[0|i]=E,(0|I)!=(0|(B=B+1|0)););h=C+16|0}},Qh:function(A,I,g,C){A|=0,g|=0;var B=0,i=0,E=0;if(!((C|=0)>>>0>2147483646|C<<1>>>0>=(I|=0)>>>0)){if(I=0,C){for(;B=(I<<1)+A|0,i=15&(E=a[I+g|0]),o[B+1|0]=22272+((i<<8)+(i+65526&55552)|0)>>>8,i=B,B=E>>>4|0,o[0|i]=87+((B+65526>>>8&217)+B|0),(0|C)!=(0|(I=I+1|0)););I=C<<1}else I=0;return o[I+A|0]=0,0|A}yC(),Q()},Rh:function(A,I,g,C,B,Q,i){A|=0,I|=0,g|=0,B|=0,Q|=0,i|=0;var _=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0;A:if(C|=0){I:{g:{C:{B:{if(!B){for(c=1,B=0;;){if(!(255&((s=(65526+(t=(223&(e=a[g+_|0]))-55&255)^t+65520)>>>8|0)|(h=65526+(e^=48)>>>8|0))))break C;if(I>>>0<=y>>>0)break B;if(t=t&s|e&h,255&r?(o[A+y|0]=B|t,y=y+1|0):B=t<<4,r^=-1,(0|(_=_+1|0))==(0|C))break}_=C;break C}for(;;){Q:{i:{o:{E:{a:{if(!(255&((e=(65526+(t=(223&(c=a[g+_|0]))-55&255)^t+65520)>>>8|0)|(h=65526+(s=48^c)>>>8|0)))){if(255&r)break g;if(!FI(B,c))break A;if((_=r=_+1|0)>>>0>>0)break a;break A}if(I>>>0<=y>>>0)break B;if(c=t&e|s&h,!(255&r))break E;o[A+y|0]=c|p,y=y+1|0;break Q}for(;;){if(!(255&((e=(65526+(t=(223&(c=a[g+_|0]))-55&255)^t+65520)>>>8|0)|(h=65526+(s=48^c)>>>8|0)))){if(!FI(B,c))break A;if((_=_+1|0)>>>0>>0)continue;break o}break}if(I>>>0<=y>>>0)break i;c=t&e|s&h}p=c<<4,r=0;break Q}_=C>>>0>r>>>0?C:r;break A}r=0;break B}if(r^=-1,c=1,!((_=_+1|0)>>>0>>0))break}break C}E[9392]=68,c=0}if(!(255&r))break I}E[9392]=28,D=-1,_=_-1|0,y=0;break A}c||(y=0,D=-1)}return i?E[i>>2]=g+_:(0|C)!=(0|_)&&(E[9392]=28,D=-1),Q&&(E[Q>>2]=y),0|D},Sh:function(A,I){A|=0;var g=0;return 1!=(-7&(I|=0))&&(yC(),Q()),1+((3&(g=(g=A)+c(A=(A>>>0)/3|0,-3)|0)?2&I?g+1|0:4:0)+(A<<2)|0)|0},Th:LA,Uh:wA,Vh:function(){var A=0;return E[9525]?A=1:($g(),ag(38080,16),E[9525]=1,A=0),0|A},Wh:function(A,I,g,C,B){A|=0,I|=0,g|=0,B|=0;var i,_=0,c=0,t=0;h=i=h-16|0;A:{if(C|=0){if((_=C-1|0)&C?(c=-1^g,_=_-((g>>>0)%(C>>>0)|0)|0):_&=c=-1^g,c>>>0<=_>>>0)break A;if(c=-1,!((g=g+_|0)>>>0>=B>>>0))for(A&&(E[A>>2]=g+1),A=I+g|0,c=0,o[i+15|0]=0,g=0;B=I=A-g|0,t=a[0|I]&a[i+15|0],I=(g^_)-1>>>24|0,o[0|B]=t|128&I,o[i+15|0]=I|a[i+15|0],(0|C)!=(0|(g=g+1|0)););}else c=-1;return h=i+16|0,0|c}yC(),Q()},Xh:function(A,I,g,C){A|=0,I|=0,g|=0,C|=0;var B,Q=0,i=0,o=0,_=0,c=0;if(E[12+(B=h-16|0)>>2]=0,C-1>>>0>>0){for(c=(Q=g-1|0)+I|0,g=0,I=0;_=((128^(i=a[c-g|0]))-1&E[B+12>>2]-1&o-1)>>>8&1,E[B+12>>2]=E[B+12>>2]|0-_&g,I|=_,o|=i,(0|C)!=(0|(g=g+1|0)););E[A>>2]=Q-E[B+12>>2],A=(255&I)-1|0}else A=-1;return 0|A},Yh:function(){return 1457},Zh:function(){return 26},_h:rB,$h:hB,ai:aI,bi:sC,ci:function(A,I,g){A|=0;var C,B=0;return h=C=h-32|0,B=-1,gI(C,g|=0,I|=0)||(B=yA(A,35584,C,0)),h=C+32|0,0|B},di:lg,ei:function(A,I,g,C,B,Q,i,o){var E,a;return A|=0,I|=0,g|=0,Q|=0,a=C|=0,C=B|=0,h=E=h+-64|0,gI(E+32|0,o|=0,i|=0)?B=-1:(B=-1,yA(E,35584,E+32|0,0)||(B=rI(A,I,g,a,C,Q,E),XC(E,32))),h=E- -64|0,0|B},fi:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(yC(),Q()),0|rI(A+16|0,A,I,g,C,B,i)},gi:function(A,I,g,C,B,Q,i){return 0|ig(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},hi:mg,ii:function(A,I,g,C,B,Q,i,o){var E,a;return A|=0,I|=0,g|=0,Q|=0,a=C|=0,C=B|=0,h=E=h+-64|0,gI(E+32|0,o|=0,i|=0)?B=-1:(B=-1,yA(E,35584,E+32|0,0)||(B=hI(A,I,g,a,C,Q,E),XC(E,32))),h=E- -64|0,0|B},ji:Dg,ki:function(A,I,g,C,B,Q,i){return 0|Ag(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},li:BB,mi:BB,ni:BB,oi:BB,pi:_B,qi:CB,ri:oB,si:function(A,I,g,C,B){A|=0,I|=0,B|=0;var Q,i,a,_,c=0,t=0;return c=g|=0,g=C|=0,_=0|c,c=C=h,h=Q=C-512&-64,C=-1,sC(i=Q- -64|0,a=Q+32|0)||(iC(C=Q+128|0,0,0,24),mC(C,i,32,0),mC(C,B,32,0),rC(C,t=Q+96|0,24),C=ig(A+32|0,I,_,g,t,B,a),I=E[Q+92>>2],g=E[Q+88>>2],o[A+24|0]=g,o[A+25|0]=g>>>8,o[A+26|0]=g>>>16,o[A+27|0]=g>>>24,o[A+28|0]=I,o[A+29|0]=I>>>8,o[A+30|0]=I>>>16,o[A+31|0]=I>>>24,I=E[Q+84>>2],g=E[Q+80>>2],o[A+16|0]=g,o[A+17|0]=g>>>8,o[A+18|0]=g>>>16,o[A+19|0]=g>>>24,o[A+20|0]=I,o[A+21|0]=I>>>8,o[A+22|0]=I>>>16,o[A+23|0]=I>>>24,I=E[Q+76>>2],g=E[Q+72>>2],o[A+8|0]=g,o[A+9|0]=g>>>8,o[A+10|0]=g>>>16,o[A+11|0]=g>>>24,o[A+12|0]=I,o[A+13|0]=I>>>8,o[A+14|0]=I>>>16,o[A+15|0]=I>>>24,I=E[Q+68>>2],g=E[Q+64>>2],o[0|A]=g,o[A+1|0]=g>>>8,o[A+2|0]=g>>>16,o[A+3|0]=g>>>24,o[A+4|0]=I,o[A+5|0]=I>>>8,o[A+6|0]=I>>>16,o[A+7|0]=I>>>24,XC(a,32),XC(i,32),XC(t,24)),h=c,0|C},ti:function(A,I,g,C,B,Q){A|=0,I|=0,B|=0,Q|=0;var i,o,E=0;return o=E=h,h=i=E-448&-64,E=-1,!(C|=0)&(g|=0)>>>0>=48|C&&(iC(E=i- -64|0,0,0,24),mC(E,I,32,0),mC(E,B,32,0),rC(E,B=i+32|0,24),E=Ag(A,I+32|0,g-32|0,C-(g>>>0<32)|0,B,I,Q)),h=o,0|E},ui:EB,vi:function(A){var I,g=0;return h=I=h-160|0,GI(A|=0)&&(bI(A)||bA(I,A)||jA(I)&&(g=0!=(0|IA(I)))),h=I+160|0,0|g},wi:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return h=C=h-800|0,Q=-1,bA(B=C+640|0,I|=0)||jA(B)&&(bA(I=C+480|0,g)||jA(I)&&(TA(C,I),sA(I=C+160|0,B,C),kg(g=C+320|0,I),tg(A,g),Q=0)),h=C+800|0,0|Q},xi:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return h=C=h-800|0,Q=-1,bA(B=C+640|0,I|=0)||jA(B)&&(bA(I=C+480|0,g)||jA(I)&&(TA(C,I),hA(I=C+160|0,B,C),kg(g=C+320|0,I),tg(A,g),Q=0)),h=C+800|0,0|Q},yi:function(A,I){return b(A|=0,I|=0),0},zi:function(A){var I;A|=0,h=I=h-32|0,ag(I,32),b(A,I),h=I+32|0},Ai:Mg,Bi:FA,Ci:xA,Di:mA,Ei:cA,Fi:JA,Gi:AA,Hi:MC,Ii:BB,Ji:gB,Ki:BB,Li:gB,Mi:BB,Ni:function(A){var I;return h=I=h-160|0,A=EA(I,A|=0),h=I+160|0,0|!A},Oi:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return h=C=h-800|0,Q=-1,EA(B=C+640|0,I|=0)||EA(I=C+480|0,g)||(TA(C,I),sA(I=C+160|0,B,C),kg(g=C+320|0,I),O(A,g),Q=0),h=C+800|0,0|Q},Pi:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return h=C=h-800|0,Q=-1,EA(B=C+640|0,I|=0)||EA(I=C+480|0,g)||(TA(C,I),hA(I=C+160|0,B,C),kg(g=C+320|0,I),O(A,g),Q=0),h=C+800|0,0|Q},Qi:function(A,I){return jI(A|=0,I|=0),0},Ri:function(A){var I;A|=0,h=I=h+-64|0,ag(I,64),jI(A,I),h=I- -64|0},Si:function(A){Mg(A|=0)},Ti:function(A,I){return 0|FA(A|=0,I|=0)},Ui:function(A,I){xA(A|=0,I|=0)},Vi:function(A,I){mA(A|=0,I|=0)},Wi:function(A,I,g){cA(A|=0,I|=0,g|=0)},Xi:function(A,I,g){AA(A|=0,I|=0,g|=0)},Yi:MC,Zi:function(A,I){JA(A|=0,I|=0)},_i:BB,$i:gB,aj:gB,bj:BB,cj:function(A,I,g,C,B,Q,i,o,E,a){return 0|rg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0,a|=0)},dj:CB,ej:tB,fj:hB,gj:tB,hj:BB,ij:function(){return 102},jj:function(){return 1570},kj:function(){return 32768},lj:tB,mj:zC,nj:tB,oj:function(){return 524288},pj:zC,qj:jC,rj:xC,sj:function(A,I,g,C,B,Q,i,o,a,_){var c,t,r;I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,a|=0,_|=0,t=0|(o|=0),h=o=h-16|0,r=I|=0,c=Hg(A|=0,0,I),A=0|B;A:if(1==(0|(B=g|Q))|B>>>0>1)E[9392]=22,A=-1;else if(!g&I>>>0>=16|g){if(BA(t,a,_,o+12|0,o+8|0,o+4|0),(0|C)==(0|c)){E[9392]=28,A=-1;break A}B=A,A=31&(I=E[o+12>>2]),(63&I)>>>0>=32?(I=1<>>32-A,A=rg(C,B,i,32,g,I,E[o+4>>2],E[o+8>>2],c,r)}else E[9392]=28,A=-1;return h=o+16|0,0|A},tj:function(A,I,g,C,B,Q,i){I|=0,g|=0,C|=0,Q|=0,i|=0;var _,c,t,r=0,e=0,y=0,s=0,D=0,p=0,f=0;r=B|=0,r|=B=0,h=_=h-128|0,c=Hg(A|=0,0,102),D=22,t=g|B;A:{if(!C){BA(r,Q,i,_+16|0,_+12|0,_+8|0),ag(e=_+96|0,32),D=28,g=_+32|0,Q=E[_+16>>2],i=Ig(A=E[_+12>>2],0,C=E[_+8>>2],0);I:if(!(!(r=w)&i>>>0>1073741823|r|Q>>>0>63)&&(o[0|g]=36,o[g+1|0]=55,o[g+2|0]=36,o[g+3|0]=a[Q+1024|0],o[g+4|0]=a[1024+(63&C)|0],o[g+5|0]=a[1024+(C>>>6&63)|0],o[g+6|0]=a[1024+(C>>>12&63)|0],o[g+7|0]=a[1024+(C>>>18&63)|0],o[g+8|0]=a[1024+(C>>>24&63)|0],(C=g+9|0)&&(0|C)!=(0|(y=g+58|0))&&(o[0|C]=a[1024+(63&A)|0],1!=(0|(C=y-C|0))&&(o[g+10|0]=a[1024+(A>>>6&63)|0],2!=(0|C)&&(o[g+11|0]=a[1024+(A>>>12&63)|0],3!=(0|C)&&(o[g+12|0]=a[1024+(A>>>18&63)|0],4!=(0|C)&&(o[g+13|0]=a[1024+(A>>>24&63)|0],Q=g+14|0))))))){for(r=y-Q|0,A=0;;){if(C=Q,!(A>>>0>=32)){if(Q=a[A+e|0],(p=(i=A+1|0)>>>0>=32)?s=0:(Q=a[i+e|0]<<8|Q,(i=A+2|0)>>>0>=32?s=0:(Q=a[i+e|0]<<16|Q,s=1,i=A+3|0)),A=i,!r)break I;if(o[0|C]=a[1024+(63&Q)|0],1==(0|r))break I;if(o[C+1|0]=a[1024+(Q>>>6&63)|0],f=C+r|0,i=C+2|0,!p){if(2==(0|r))break I;if(o[C+2|0]=a[1024+(Q>>>12&63)|0],i=C+3|0,s){if(3==(0|r))break I;o[C+3|0]=a[1024+(Q>>>18|0)|0],i=C+4|0}}if(r=f-(Q=i)|0,Q)continue;break I}break}C>>>0>=y>>>0||(o[0|C]=0,B=g)}if(B){if(A=-1,_C(C=_+20|0))break A;if(I=ZA(C,I,t,g,c),vg(C),A=0,I)break A}}E[9392]=D,A=-1}return h=_+128|0,0|A},uj:function(A,I,g,C){I|=0,C|=0;var B,Q,i=0;B=A|=0,Q=g|=0,g=0,h=C=h-128|0;A:{I:{for(;;){if(!a[g+B|0]){A=g;break I}if(!a[B+(A=g+1|0)|0])break I;if(!a[B+(A=g+2|0)|0])break I;if(102==(0|(g=g+3|0)))break}g=-1;break A}g=-1,101==(0|A)&&(_C(i=C+4|0)||(Hg(A=C+16|0,0,102),I=ZA(i,I,Q,B,A),vg(i),I&&(g=MI(A,B,102),XC(A,102))))}return h=C+128|0,0|g},vj:function(A,I,g,C){var B,Q;Q=A|=0,h=B=h-32|0,BA(I|=0,g|=0,C|=0,B+28|0,B+20|0,B+12|0),A=0;A:{I:{g:{for(;;){if(a[A+Q|0]){if(a[Q+(I=A+1|0)|0]&&a[Q+(I=A+2|0)|0]){if(102!=(0|(A=A+3|0)))continue;break g}}else I=A;break}if(101==(0|I)){if(g=B+8|0,C=B+16|0,A=0,36!=a[0|Q]|55!=a[Q+1|0]|36!=a[Q+2|0]||(I=uI(a[Q+3|0]),E[B+24>>2]=I?I-1024|0:0,I&&(I=PI(g,Q+4|0))&&(A=PI(C,I))),A)break I;E[9392]=28,A=-1;break A}}E[9392]=28,A=-1;break A}A=1,E[B+28>>2]!=E[B+24>>2]|E[B+12>>2]!=E[B+8>>2]||(A=E[B+20>>2]!=E[B+16>>2])}return h=B+32|0,0|A},wj:function(A,I,g){return 0|VA(A|=0,I|=0,g|=0,1)},xj:function(A,I,g){return 0|VA(A|=0,I|=0,g|=0,0)},yj:function(A,I){return 0|AI(A|=0,I|=0,1)},zj:function(A,I){return 0|AI(A|=0,I|=0,0)},Aj:BB,Bj:BB,Cj:function(A,I,g){A|=0,I|=0;var C,B=0;return h=C=h-320|0,B=-1,EA(C,g|=0)||(o[0|A]=a[0|I],o[A+1|0]=a[I+1|0],o[A+2|0]=a[I+2|0],o[A+3|0]=a[I+3|0],o[A+4|0]=a[I+4|0],o[A+5|0]=a[I+5|0],o[A+6|0]=a[I+6|0],o[A+7|0]=a[I+7|0],o[A+8|0]=a[I+8|0],o[A+9|0]=a[I+9|0],o[A+10|0]=a[I+10|0],o[A+11|0]=a[I+11|0],o[A+12|0]=a[I+12|0],o[A+13|0]=a[I+13|0],o[A+14|0]=a[I+14|0],o[A+15|0]=a[I+15|0],o[A+16|0]=a[I+16|0],o[A+17|0]=a[I+17|0],o[A+18|0]=a[I+18|0],o[A+19|0]=a[I+19|0],o[A+20|0]=a[I+20|0],o[A+21|0]=a[I+21|0],o[A+22|0]=a[I+22|0],o[A+23|0]=a[I+23|0],o[A+24|0]=a[I+24|0],o[A+25|0]=a[I+25|0],o[A+26|0]=a[I+26|0],o[A+27|0]=a[I+27|0],o[A+28|0]=a[I+28|0],o[A+29|0]=a[I+29|0],o[A+30|0]=a[I+30|0],o[A+31|0]=127&a[I+31|0],u(I=C+160|0,A,C),O(A,I),B=NI(A,32)?-1:0),h=C+320|0,0|B},Dj:function(A,I){var g;return I|=0,h=g=h-160|0,o[0|(A|=0)]=a[0|I],o[A+1|0]=a[I+1|0],o[A+2|0]=a[I+2|0],o[A+3|0]=a[I+3|0],o[A+4|0]=a[I+4|0],o[A+5|0]=a[I+5|0],o[A+6|0]=a[I+6|0],o[A+7|0]=a[I+7|0],o[A+8|0]=a[I+8|0],o[A+9|0]=a[I+9|0],o[A+10|0]=a[I+10|0],o[A+11|0]=a[I+11|0],o[A+12|0]=a[I+12|0],o[A+13|0]=a[I+13|0],o[A+14|0]=a[I+14|0],o[A+15|0]=a[I+15|0],o[A+16|0]=a[I+16|0],o[A+17|0]=a[I+17|0],o[A+18|0]=a[I+18|0],o[A+19|0]=a[I+19|0],o[A+20|0]=a[I+20|0],o[A+21|0]=a[I+21|0],o[A+22|0]=a[I+22|0],o[A+23|0]=a[I+23|0],o[A+24|0]=a[I+24|0],o[A+25|0]=a[I+25|0],o[A+26|0]=a[I+26|0],o[A+27|0]=a[I+27|0],o[A+28|0]=a[I+28|0],o[A+29|0]=a[I+29|0],o[A+30|0]=a[I+30|0],o[A+31|0]=127&a[I+31|0],kA(g,A),O(A,g),A=NI(A,32),h=g+160|0,0|(A?-1:0)},Ej:BB,Fj:BB,Gj:lg,Hj:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(yC(),Q()),rI(A+16|0,A,I,g,C,B,i),0},Ij:mg,Jj:Dg,Kj:BB,Lj:_B,Mj:CB,Nj:oB,Oj:CB,Pj:CB,Qj:function(A,I,g,C,B){A|=0,I|=0,g|=0,C|=0;var Q,i=0,E=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,f=0,n=0,k=0;if(n=1886610805^(E=a[0|(B|=0)]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24),D=1936682341^(i=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24),E^=1852142177,_=1819895653^i,k=1852075907^(i=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24),p=1685025377^(B=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24),c=2037671283^i,i=1952801890^B,h=g,(0|(r=(g+I|0)-(Q=7&g)|0))!=(0|I)){for(;g=(s=i^(f=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24))+_|0,c=C=E+(B=c^(e=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24))|0,t=g=C>>>0>>0?g+1|0:g,E=C,C=g,g=D+p|0,g=(i=n+k|0)>>>0>>0?g+1|0:g,y=(_=KI(k,p,13)^i)+E|0,C=(E=w^g)+C|0,E=KI(_,E,17)^y,p=KI(E,C=(_=_>>>0>y>>>0?C+1|0:C)^w,13),D=w,s=KI(B,s,16),B=t^w,s^=c,t=KI(i,g,32),g=w+B|0,g=(c=C)+(C=(i=s+t|0)>>>0>>0?g+1|0:g)|0,t=g=(c=i+E|0)>>>0>>0?g+1|0:g,p=KI(E=c^p,g^=D,17),D=w,s=KI(s,B,21),B=C^w,s^=i,i=KI(y,_,32),C=w+B|0,g=(i=i>>>0>(_=s+i|0)>>>0?C+1|0:C)+g|0,k=(E=E+_|0)^p,C=g=E>>>0<_>>>0?g+1|0:g,p=g^D,g=KI(s,B,16),s=i^=w,y=KI(g^=_,i,21),_=w,t=(i=KI(c,t,32))+g|0,g=w+s|0,c=t^y,i=(g=i>>>0>t>>>0?g+1|0:g)^_,E=KI(E,C,32),_=w,n=e^t,D=g^f,(0|r)!=(0|(I=I+8|0)););I=r}switch(e=0,B=h<<24,Q-1|0){case 6:B|=a[I+6|0]<<16;case 5:B|=a[I+5|0]<<8;case 4:B|=a[I+4|0];case 3:e|=(g=a[I+3|0])<<24,B|=C=g>>>8|0;case 2:e|=(C=a[I+2|0])<<16,B|=g=C>>>16|0;case 1:e|=(g=a[I+1|0])<<8,B|=C=g>>>24|0;case 0:e=a[0|I]|e}return y=B,I=B^i,C=KI(B=c^e,I,16),I=I+_|0,t=I=(c=B+E|0)>>>0>>0?I+1|0:I,r=KI(B=C^c,I^=g=w,21),i=w,g=D+p|0,C=g=(E=n+k|0)>>>0>>0?g+1|0:g,_=B,B=KI(E,g,32),g=w+I|0,I=i,i=g=B>>>0>(_=_+B|0)>>>0?g+1|0:g,D=KI(B=_^r,I^=g,16),s=w,g=(E=h=KI(k,p,13)^E)+c|0,C=(c=w^C)+t|0,t=B,B=KI(g,C=g>>>0>>0?C+1|0:C,32),I=w+I|0,p=B=(E=B>>>0>(r=t+B|0)>>>0?I+1|0:I)^s,t=D^=r,s=KI(h,c,17)^g,g=(h=w^C)+i|0,I=g=(C=_=(I=s)+_|0)>>>0>>0?g+1|0:g,i=KI(C,g,32),g=w+B|0,_=(c=i+t|0)^e,y^=t=i>>>0>c>>>0?g+1|0:g,B=KI(s,h,13)^C,C=KI(B,I^=w,17),I=I+E|0,B=C^(i=B+r|0),C=I=i>>>0>>0?I+1|0:I,g=(I^=g=w)+y|0,g=B>>>0>(_=B+_|0)>>>0?g+1|0:g,B=KI(B,I,13)^_,E=g,r=KI(B,I=g^w,17),e=w,y=KI(D,p,21),h=t^w,t=c^y,i=238^KI(i,C,32),g=w+h|0,g=(c=I)+(I=(C=t+i|0)>>>0>>0?g+1|0:g)|0,i=g=(c=C+B|0)>>>0>>0?g+1|0:g,e=KI(B=c^r,g^=e,13),y=w,t=KI(t,h,16),h=I^w,r=C^t,C=KI(_,E,32),I=w+h|0,C=(_=g)+(g=C>>>0>(E=r+C|0)>>>0?I+1|0:I)|0,_=C=(t=B+E|0)>>>0>>0?C+1|0:C,e=KI(B=e^t,I=C^y,17),y=w,C=KI(r,h,21),h=g^w,r=C^E,C=KI(c,i,32),g=w+h|0,g=(C=C>>>0>(E=r+C|0)>>>0?g+1|0:g)+I|0,i=g=(c=B+E|0)>>>0>>0?g+1|0:g,e=KI(B=c^e,I=g^y,13),y=w,g=KI(r,h,16),h=C^w,r=g^E,g=KI(t,_,32),C=w+h|0,g=(C=g>>>0>(E=r+g|0)>>>0?C+1|0:C)+I|0,_=g=(t=B+E|0)>>>0>>0?g+1|0:g,e=KI(B=e^t,I=g^y,17),y=w,g=KI(r,h,21),h=C^w,r=g^E,E=KI(c,i,32),g=w+h|0,I=(g=(C=r+E|0)>>>0>>0?g+1|0:g)+I|0,E=I=(i=C+B|0)>>>0>>0?I+1|0:I,e=KI(B=i^e,I^=y,13),y=w,c=KI(r,h,16),r=g^w,c^=C,_=KI(t,_,32),g=w+r|0,g=(t=I)+(I=(C=c+_|0)>>>0<_>>>0?g+1|0:g)|0,_=g=(t=C+B|0)>>>0>>0?g+1|0:g,e=KI(B=e^t,g^=y,17),y=w,c=KI(c,r,21),r=I^w,c^=C,C=KI(i,E,32),I=w+r|0,C=(E=g)+(g=C>>>0>(i=c+C|0)>>>0?I+1|0:I)|0,E=B=(C=(I=B+i|0)>>>0>>0?C+1|0:C)^y,y=I^e,c=KI(c,r,16),r=g^w,i=(c^=i)+(_=KI(t,_,32))|0,g=w+r|0,I=KI(I,C,32),e=w,C=g=i>>>0<_>>>0?g+1|0:g,_=A,c=(t=KI(c,r,21)^i)^I^i^y,o[0|_]=c,o[_+1|0]=c>>>8,o[_+2|0]=c>>>16,o[_+3|0]=c>>>24,g=(c=g^w)^e^g^B,o[_+4|0]=g,o[_+5|0]=g>>>8,o[_+6|0]=g>>>16,o[_+7|0]=g>>>24,B=_,g=c+e|0,g=(A=I+t|0)>>>0>>0?g+1|0:g,e=A,_=KI(t,c,16)^A,c=g,r=I=g^w,C=E+C|0,y=(C=KI(i=(g=t=221^y)+i|0,g=C=g>>>0>i>>>0?C+1|0:C,32))+_|0,I=w+I|0,f=KI(_,r,21)^y,p=I=(_=C>>>0>y>>>0?I+1|0:I)^w,D=KI(f,I,16),s=w,g=c+(r=g^(C=E<<13|t>>>19))|0,I=g=(C=A=e+(h=i^(t<<13|E>>>19))|0)>>>0>>0?g+1|0:g,A=KI(C,g,32),g=p+w|0,g=(i=(A=A+f|0)>>>0>>0?g+1|0:g)^s,t=A,e=KI(s=D^A,g,21),E=w,A=KI(h,r,17),I=_+(h=I^w)|0,A=KI(C=y+(c=A^C)|0,I=C>>>0>>0?I+1|0:I,32),g=g+w|0,r=g=(_=E)^(E=(A=A+s|0)>>>0>>0?g+1|0:g),e=KI(s=e^(_=A),g,16),y=w,A=KI(c,h,13),g=i+(h=I^w)|0,A=KI(I=t+(c=A^C)|0,g=I>>>0>>0?g+1|0:g,32),C=r+w|0,r=i=(C=(A=A+s|0)>>>0>>0?C+1|0:C)^y,t=A,e=KI(s=e^A,i,21),y=w,A=KI(c,h,17),g=E+(h=g^w)|0,I=g=(i=_+(c=A^I)|0)>>>0<_>>>0?g+1|0:g,A=KI(i,g,32),g=r+w|0,r=g=(E=(A=A+s|0)>>>0>>0?g+1|0:g)^y,e=KI(s=e^(_=A),g,16),y=w,A=KI(c,h,13),C=C+(c=I^w)|0,A=KI(g=t+(i^=A)|0,C=g>>>0>>0?C+1|0:C,32),I=r+w|0,e=KI((A=A+s|0)^e,(I=A>>>0>>0?I+1|0:I)^y,21),y=w,t=KI(i,c,17),i=C^w,t=KI(C=g^t,i,13),g=E+i|0,E=KI(i=(C=C+_|0)^t,g=w^(C>>>0<_>>>0?g+1|0:g),17)^e,C=w^y,g=I+g|0,I=A,A=KI(A=A+i|0,g=I>>>0>A>>>0?g+1|0:g,32)^E^A,o[B+8|0]=A,o[B+9|0]=A>>>8,o[B+10|0]=A>>>16,o[B+11|0]=A>>>24,A=g^w^C,o[B+12|0]=A,o[B+13|0]=A>>>8,o[B+14|0]=A>>>16,o[B+15|0]=A>>>24,0},Rj:function(A,I,g,C,B){A|=0,C|=0,B|=0;var Q,i=0,_=0,c=0,t=0;if(h=Q=h-112|0,i=I|=0,I=g|=0,i|g){g=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,E[Q+24>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,E[Q+28>>2]=g,g=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,E[Q+16>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,E[Q+20>>2]=g,g=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,E[Q>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,E[Q+4>>2]=g,g=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,E[Q+8>>2]=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,E[Q+12>>2]=g,g=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24,C=a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24,E[Q+104>>2]=0,E[Q+108>>2]=0,E[Q+96>>2]=g,E[Q+100>>2]=C;A:{if(!I&i>>>0>=64|I){for(;IC(A,Q+96|0,Q,0),g=a[Q+104|0]+1|0,o[Q+104|0]=g,g=a[Q+105|0]+(g>>>8|0)|0,o[Q+105|0]=g,g=a[Q+106|0]+(g>>>8|0)|0,o[Q+106|0]=g,g=a[Q+107|0]+(g>>>8|0)|0,o[Q+107|0]=g,g=a[Q+108|0]+(g>>>8|0)|0,o[Q+108|0]=g,g=a[Q+109|0]+(g>>>8|0)|0,o[Q+109|0]=g,g=a[Q+110|0]+(g>>>8|0)|0,o[Q+110|0]=g,o[Q+111|0]=a[Q+111|0]+(g>>>8|0),A=A- -64|0,I=I-1|0,!(I=(i=i+-64|0)>>>0<4294967232?I+1|0:I)&i>>>0>63|I;);if(!(I|i))break A}if(g=0,IC(Q+32|0,Q+96|0,Q,0),B=3&i,I=0,i-1>>>0>=3)for(i&=-4,C=0;_=t=Q+32|0,o[A+I|0]=a[_+I|0],o[(c=1|I)+A|0]=a[_+c|0],o[(c=2|I)+A|0]=a[_+c|0],o[(_=3|I)+A|0]=a[_+t|0],I=I+4|0,(0|i)!=(0|(C=C+4|0)););if(B)for(;o[A+I|0]=a[(Q+32|0)+I|0],I=I+1|0,(0|B)!=(0|(g=g+1|0)););}XC(Q+32|0,64),XC(Q,32)}return h=Q+112|0,0},Sj:function(A,I,g,C,B,Q){A|=0,I|=0,B|=0,Q|=0;var i,_=0,c=0;if(h=i=h-112|0,_=g|=0,(C|=0)|g){g=a[Q+28|0]|a[Q+29|0]<<8|a[Q+30|0]<<16|a[Q+31|0]<<24,E[i+24>>2]=a[Q+24|0]|a[Q+25|0]<<8|a[Q+26|0]<<16|a[Q+27|0]<<24,E[i+28>>2]=g,g=a[Q+20|0]|a[Q+21|0]<<8|a[Q+22|0]<<16|a[Q+23|0]<<24,E[i+16>>2]=a[Q+16|0]|a[Q+17|0]<<8|a[Q+18|0]<<16|a[Q+19|0]<<24,E[i+20>>2]=g,g=a[Q+4|0]|a[Q+5|0]<<8|a[Q+6|0]<<16|a[Q+7|0]<<24,E[i>>2]=a[0|Q]|a[Q+1|0]<<8|a[Q+2|0]<<16|a[Q+3|0]<<24,E[i+4>>2]=g,g=a[Q+12|0]|a[Q+13|0]<<8|a[Q+14|0]<<16|a[Q+15|0]<<24,E[i+8>>2]=a[Q+8|0]|a[Q+9|0]<<8|a[Q+10|0]<<16|a[Q+11|0]<<24,E[i+12>>2]=g,g=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,B=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,E[i+104>>2]=0,E[i+108>>2]=0,E[i+96>>2]=g,E[i+100>>2]=B;A:{if(!C&_>>>0>=64|C){for(;;){for(g=0,IC(i+32|0,i+96|0,i,0);Q=i+32|0,o[A+g|0]=a[Q+g|0]^a[I+g|0],o[(B=1|g)+A|0]=a[B+Q|0]^a[I+B|0],64!=(0|(g=g+2|0)););if(g=a[i+104|0]+1|0,o[i+104|0]=g,g=a[i+105|0]+(g>>>8|0)|0,o[i+105|0]=g,g=a[i+106|0]+(g>>>8|0)|0,o[i+106|0]=g,g=a[i+107|0]+(g>>>8|0)|0,o[i+107|0]=g,g=a[i+108|0]+(g>>>8|0)|0,o[i+108|0]=g,g=a[i+109|0]+(g>>>8|0)|0,o[i+109|0]=g,g=a[i+110|0]+(g>>>8|0)|0,o[i+110|0]=g,o[i+111|0]=a[i+111|0]+(g>>>8|0),I=I- -64|0,A=A- -64|0,C=C-1|0,!(!(C=(_=_+-64|0)>>>0<4294967232?C+1|0:C)&_>>>0>63|C))break}if(!(C|_))break A}if(g=0,IC(i+32|0,i+96|0,i,0),Q=1&_,1!=(0|_))for(_&=-2,C=0;c=i+32|0,o[A+g|0]=a[c+g|0]^a[I+g|0],o[(B=1|g)+A|0]=a[B+c|0]^a[I+B|0],g=g+2|0,(0|_)!=(0|(C=C+2|0)););Q&&(o[A+g|0]=a[(i+32|0)+g|0]^a[I+g|0])}XC(i+32|0,64),XC(i,32)}return h=i+112|0,0},Tj:BB,Uj:sB,Vj:tB,Wj:LC,Xj:function(A,I,g,C,B){A|=0,C|=0,B|=0;var Q,i=0,_=0,c=0,t=0;if(h=Q=h-112|0,i=I|=0,I=g|=0,i|g){g=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,E[Q+24>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,E[Q+28>>2]=g,g=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,E[Q+16>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,E[Q+20>>2]=g,g=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,E[Q>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,E[Q+4>>2]=g,g=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,E[Q+8>>2]=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,E[Q+12>>2]=g,g=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24,C=a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24,E[Q+104>>2]=0,E[Q+108>>2]=0,E[Q+96>>2]=g,E[Q+100>>2]=C;A:{if(!I&i>>>0>=64|I){for(;gC(A,Q+96|0,Q,0),g=a[Q+104|0]+1|0,o[Q+104|0]=g,g=a[Q+105|0]+(g>>>8|0)|0,o[Q+105|0]=g,g=a[Q+106|0]+(g>>>8|0)|0,o[Q+106|0]=g,g=a[Q+107|0]+(g>>>8|0)|0,o[Q+107|0]=g,g=a[Q+108|0]+(g>>>8|0)|0,o[Q+108|0]=g,g=a[Q+109|0]+(g>>>8|0)|0,o[Q+109|0]=g,g=a[Q+110|0]+(g>>>8|0)|0,o[Q+110|0]=g,o[Q+111|0]=a[Q+111|0]+(g>>>8|0),A=A- -64|0,I=I-1|0,!(I=(i=i+-64|0)>>>0<4294967232?I+1|0:I)&i>>>0>63|I;);if(!(I|i))break A}if(g=0,gC(Q+32|0,Q+96|0,Q,0),B=3&i,I=0,i-1>>>0>=3)for(i&=-4,C=0;_=t=Q+32|0,o[A+I|0]=a[_+I|0],o[(c=1|I)+A|0]=a[_+c|0],o[(c=2|I)+A|0]=a[_+c|0],o[(_=3|I)+A|0]=a[_+t|0],I=I+4|0,(0|i)!=(0|(C=C+4|0)););if(B)for(;o[A+I|0]=a[(Q+32|0)+I|0],I=I+1|0,(0|B)!=(0|(g=g+1|0)););}XC(Q+32|0,64),XC(Q,32)}return h=Q+112|0,0},Yj:function(A,I,g,C,B,Q){A|=0,I|=0,B|=0,Q|=0;var i,_=0,c=0;if(h=i=h-112|0,_=g|=0,(C|=0)|g){g=a[Q+28|0]|a[Q+29|0]<<8|a[Q+30|0]<<16|a[Q+31|0]<<24,E[i+24>>2]=a[Q+24|0]|a[Q+25|0]<<8|a[Q+26|0]<<16|a[Q+27|0]<<24,E[i+28>>2]=g,g=a[Q+20|0]|a[Q+21|0]<<8|a[Q+22|0]<<16|a[Q+23|0]<<24,E[i+16>>2]=a[Q+16|0]|a[Q+17|0]<<8|a[Q+18|0]<<16|a[Q+19|0]<<24,E[i+20>>2]=g,g=a[Q+4|0]|a[Q+5|0]<<8|a[Q+6|0]<<16|a[Q+7|0]<<24,E[i>>2]=a[0|Q]|a[Q+1|0]<<8|a[Q+2|0]<<16|a[Q+3|0]<<24,E[i+4>>2]=g,g=a[Q+12|0]|a[Q+13|0]<<8|a[Q+14|0]<<16|a[Q+15|0]<<24,E[i+8>>2]=a[Q+8|0]|a[Q+9|0]<<8|a[Q+10|0]<<16|a[Q+11|0]<<24,E[i+12>>2]=g,g=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,B=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,E[i+104>>2]=0,E[i+108>>2]=0,E[i+96>>2]=g,E[i+100>>2]=B;A:{if(!C&_>>>0>=64|C){for(;;){for(g=0,gC(i+32|0,i+96|0,i,0);Q=i+32|0,o[A+g|0]=a[Q+g|0]^a[I+g|0],o[(B=1|g)+A|0]=a[B+Q|0]^a[I+B|0],64!=(0|(g=g+2|0)););if(g=a[i+104|0]+1|0,o[i+104|0]=g,g=a[i+105|0]+(g>>>8|0)|0,o[i+105|0]=g,g=a[i+106|0]+(g>>>8|0)|0,o[i+106|0]=g,g=a[i+107|0]+(g>>>8|0)|0,o[i+107|0]=g,g=a[i+108|0]+(g>>>8|0)|0,o[i+108|0]=g,g=a[i+109|0]+(g>>>8|0)|0,o[i+109|0]=g,g=a[i+110|0]+(g>>>8|0)|0,o[i+110|0]=g,o[i+111|0]=a[i+111|0]+(g>>>8|0),I=I- -64|0,A=A- -64|0,C=C-1|0,!(!(C=(_=_+-64|0)>>>0<4294967232?C+1|0:C)&_>>>0>63|C))break}if(!(C|_))break A}if(g=0,gC(i+32|0,i+96|0,i,0),Q=1&_,1!=(0|_))for(_&=-2,C=0;c=i+32|0,o[A+g|0]=a[c+g|0]^a[I+g|0],o[(B=1|g)+A|0]=a[B+c|0]^a[I+B|0],g=g+2|0,(0|_)!=(0|(C=C+2|0)););Q&&(o[A+g|0]=a[(i+32|0)+g|0]^a[I+g|0])}XC(i+32|0,64),XC(i,32)}return h=i+112|0,0},Zj:BB,_j:sB,$j:tB,ak:LC,bk:BB,ck:_B,dk:tB,ek:function(A,I,g,C,B){var Q;return A|=0,I|=0,g|=0,h=Q=h-32|0,yA(Q,C|=0,B|=0,0),A=jg(A,I,g,C+16|0,Q),h=Q+32|0,0|A},fk:function(A,I,g,C,B,Q,i,o){var E;return A|=0,I|=0,g|=0,C|=0,Q|=0,i|=0,h=E=h-32|0,yA(E,B|=0,o|=0,0),A=Ug(o=A,I,(A=0)|g,C,B+16|0,A|Q,i,E),h=E+32|0,0|A},gk:function(A,I,g,C,B,Q){var i;return A|=0,I|=0,g|=0,C|=0,h=i=h-32|0,yA(i,B|=0,Q|=0,0),A=Ug(A,I,g,C,B+16|0,0,0,i),h=i+32|0,0|A},hk:LC,ik:K,jk:gA,kk:pB}}(A)}(I)},instantiate:function(A,I){return{then:function(g){var C=new s.Module(A);g({instance:new s.Instance(C,I)})}}},RuntimeError:Error};r=[],"object"!=typeof s&&d("no native wasm support detected");var h,D,p,w,f,n,k,F=!1;function N(){var A=y.buffer;Q.HEAP8=h=new Int8Array(A),Q.HEAP16=p=new Int16Array(A),Q.HEAPU8=D=new Uint8Array(A),Q.HEAPU16=new Uint16Array(A),Q.HEAP32=w=new Int32Array(A),Q.HEAPU32=f=new Uint32Array(A),Q.HEAPF32=n=new Float32Array(A),Q.HEAPF64=k=new Float64Array(A)}var S=Q.INITIAL_MEMORY||50331648;S>=65536||d("INITIAL_MEMORY should be larger than STACK_SIZE, was "+S+"! (STACK_SIZE=65536)"),y=Q.wasmMemory?Q.wasmMemory:new s.Memory({initial:S/65536,maximum:32768}),N(),S=y.buffer.byteLength;var G=[],M=[],b=[],K=0,H=null,Y=null;function d(A){throw Q.onAbort&&Q.onAbort(A),e(A="Aborted("+A+")"),F=!0,A+=". Build with -sASSERTIONS for more info.",new s.RuntimeError(A)}var J,U,l="data:application/octet-stream;base64,";function m(A){return A.startsWith(l)}m(J="<<< WASM_BINARY_FILE >>>")||(U=J,J=Q.locateFile?Q.locateFile(U,_):_+U);var u,x={36800:()=>Q.getRandomValue(),36836:()=>{if(void 0===Q.getRandomValue)try{var A="object"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto,g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),Q.getRandomValue=g}catch(A){try{var C=__webpack_require__(/*! crypto */ "./node_modules/crypto-browserify/index.js"),B=function(){var A=C.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};B(),Q.getRandomValue=B}catch(A){throw"No secure random number generator found"}}}},R=A=>{for(;A.length>0;)A.shift()(Q)},v="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,L=(A,I)=>A?((A,I,g)=>{for(var C=I+g,B=I;A[B]&&!(B>=C);)++B;if(B-I>16&&A.buffer&&v)return v.decode(A.subarray(I,B));for(var Q="";I>10,56320|1023&a)}}else Q+=String.fromCharCode((31&i)<<6|o)}else Q+=String.fromCharCode(i)}return Q})(D,A,I):"",P=[],q=A=>{var I=(A-y.buffer.byteLength+65535)/65536;try{return y.grow(I),N(),1}catch(A){}},z={c:(A,I,g,C)=>{d(`Assertion failed: ${L(A)}, at: `+[I?L(I):"unknown filename",g,C?L(C):"unknown function"])},d:()=>{d("")},b:(A,I,g)=>((A,I,g)=>{var C=((A,I)=>{var g;for(P.length=0;g=D[A++];)I+=105!=g&&I%8?4:0,P.push(105==g?w[I>>2]:k[I>>3]),I+=105==g?4:8;return P})(I,g);return x[A].apply(null,C)})(A,I,g),e:A=>{var I=D.length,g=2147483648;if((A>>>=0)>g)return!1;for(var C,B=1;B<=4;B*=2){var Q=I*(1+.2/B);Q=Math.min(Q,A+100663296);var i=Math.min(g,(C=Math.max(A,Q))+(65536-C%65536)%65536);if(q(i))return!0}return!1},a:y},j=function(){var A,I,g={a:z};function C(A,I){var g,C=A.exports;return(j=C).kk,g=j.f,M.unshift(g),function(A){if(K--,Q.monitorRunDependencies&&Q.monitorRunDependencies(K),0==K&&(null!==H&&(clearInterval(H),H=null),Y)){var I=Y;Y=null,I()}}(),C}if(K++,Q.monitorRunDependencies&&Q.monitorRunDependencies(K),Q.instantiateWasm)try{return Q.instantiateWasm(g,C)}catch(A){return e(`Module.instantiateWasm callback failed with error: ${A}`),!1}return A=g,I=function(A){C(A.instance)},function(A){return Promise.resolve().then((()=>function(A){if(A==J&&r)return new Uint8Array(r);var I=function(A){if(m(A))return function(A){if(void 0!==a&&a){var I=Buffer.from(A,"base64");return new Uint8Array(I.buffer,I.byteOffset,I.length)}try{for(var g=atob(A),C=new Uint8Array(g.length),B=0;Bs.instantiate(I,A))).then((A=>A)).then(I,(A=>{e(`failed to asynchronously prepare wasm: ${A}`),d(A)})),{}}();function X(){function A(){u||(u=!0,Q.calledRun=!0,F||(R(M),Q.onRuntimeInitialized&&Q.onRuntimeInitialized(),function(){if(Q.postRun)for("function"==typeof Q.postRun&&(Q.postRun=[Q.postRun]);Q.postRun.length;)A=Q.postRun.shift(),b.unshift(A);var A;R(b)}()))}K>0||(function(){if(Q.preRun)for("function"==typeof Q.preRun&&(Q.preRun=[Q.preRun]);Q.preRun.length;)A=Q.preRun.shift(),G.unshift(A);var A;R(G)}(),K>0||(Q.setStatus?(Q.setStatus("Running..."),setTimeout((function(){setTimeout((function(){Q.setStatus("")}),1),A()}),1)):A()))}if(Q._crypto_aead_aegis128l_keybytes=()=>(Q._crypto_aead_aegis128l_keybytes=j.g)(),Q._crypto_aead_aegis128l_nsecbytes=()=>(Q._crypto_aead_aegis128l_nsecbytes=j.h)(),Q._crypto_aead_aegis128l_npubbytes=()=>(Q._crypto_aead_aegis128l_npubbytes=j.i)(),Q._crypto_aead_aegis128l_abytes=()=>(Q._crypto_aead_aegis128l_abytes=j.j)(),Q._crypto_aead_aegis128l_messagebytes_max=()=>(Q._crypto_aead_aegis128l_messagebytes_max=j.k)(),Q._crypto_aead_aegis128l_keygen=A=>(Q._crypto_aead_aegis128l_keygen=j.l)(A),Q._crypto_aead_aegis128l_encrypt=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_aegis128l_encrypt=j.m)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_aegis128l_encrypt_detached=(A,I,g,C,B,i,o,E,a,_,c,t)=>(Q._crypto_aead_aegis128l_encrypt_detached=j.n)(A,I,g,C,B,i,o,E,a,_,c,t),Q._crypto_aead_aegis128l_decrypt=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_aegis128l_decrypt=j.o)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_aegis128l_decrypt_detached=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_aegis128l_decrypt_detached=j.p)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_aegis256_keybytes=()=>(Q._crypto_aead_aegis256_keybytes=j.q)(),Q._crypto_aead_aegis256_nsecbytes=()=>(Q._crypto_aead_aegis256_nsecbytes=j.r)(),Q._crypto_aead_aegis256_npubbytes=()=>(Q._crypto_aead_aegis256_npubbytes=j.s)(),Q._crypto_aead_aegis256_abytes=()=>(Q._crypto_aead_aegis256_abytes=j.t)(),Q._crypto_aead_aegis256_messagebytes_max=()=>(Q._crypto_aead_aegis256_messagebytes_max=j.u)(),Q._crypto_aead_aegis256_keygen=A=>(Q._crypto_aead_aegis256_keygen=j.v)(A),Q._crypto_aead_aegis256_encrypt=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_aegis256_encrypt=j.w)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_aegis256_encrypt_detached=(A,I,g,C,B,i,o,E,a,_,c,t)=>(Q._crypto_aead_aegis256_encrypt_detached=j.x)(A,I,g,C,B,i,o,E,a,_,c,t),Q._crypto_aead_aegis256_decrypt=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_aegis256_decrypt=j.y)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_aegis256_decrypt_detached=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_aegis256_decrypt_detached=j.z)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_chacha20poly1305_encrypt_detached=(A,I,g,C,B,i,o,E,a,_,c,t)=>(Q._crypto_aead_chacha20poly1305_encrypt_detached=j.A)(A,I,g,C,B,i,o,E,a,_,c,t),Q._crypto_aead_chacha20poly1305_encrypt=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_chacha20poly1305_encrypt=j.B)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_chacha20poly1305_ietf_encrypt_detached=(A,I,g,C,B,i,o,E,a,_,c,t)=>(Q._crypto_aead_chacha20poly1305_ietf_encrypt_detached=j.C)(A,I,g,C,B,i,o,E,a,_,c,t),Q._crypto_aead_chacha20poly1305_ietf_encrypt=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_chacha20poly1305_ietf_encrypt=j.D)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_chacha20poly1305_decrypt_detached=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_chacha20poly1305_decrypt_detached=j.E)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_chacha20poly1305_decrypt=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_chacha20poly1305_decrypt=j.F)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_chacha20poly1305_ietf_decrypt_detached=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_chacha20poly1305_ietf_decrypt_detached=j.G)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_chacha20poly1305_ietf_decrypt=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_chacha20poly1305_ietf_decrypt=j.H)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_chacha20poly1305_ietf_keybytes=()=>(Q._crypto_aead_chacha20poly1305_ietf_keybytes=j.I)(),Q._crypto_aead_chacha20poly1305_ietf_npubbytes=()=>(Q._crypto_aead_chacha20poly1305_ietf_npubbytes=j.J)(),Q._crypto_aead_chacha20poly1305_ietf_nsecbytes=()=>(Q._crypto_aead_chacha20poly1305_ietf_nsecbytes=j.K)(),Q._crypto_aead_chacha20poly1305_ietf_abytes=()=>(Q._crypto_aead_chacha20poly1305_ietf_abytes=j.L)(),Q._crypto_aead_chacha20poly1305_ietf_messagebytes_max=()=>(Q._crypto_aead_chacha20poly1305_ietf_messagebytes_max=j.M)(),Q._crypto_aead_chacha20poly1305_ietf_keygen=A=>(Q._crypto_aead_chacha20poly1305_ietf_keygen=j.N)(A),Q._crypto_aead_chacha20poly1305_keybytes=()=>(Q._crypto_aead_chacha20poly1305_keybytes=j.O)(),Q._crypto_aead_chacha20poly1305_npubbytes=()=>(Q._crypto_aead_chacha20poly1305_npubbytes=j.P)(),Q._crypto_aead_chacha20poly1305_nsecbytes=()=>(Q._crypto_aead_chacha20poly1305_nsecbytes=j.Q)(),Q._crypto_aead_chacha20poly1305_abytes=()=>(Q._crypto_aead_chacha20poly1305_abytes=j.R)(),Q._crypto_aead_chacha20poly1305_messagebytes_max=()=>(Q._crypto_aead_chacha20poly1305_messagebytes_max=j.S)(),Q._crypto_aead_chacha20poly1305_keygen=A=>(Q._crypto_aead_chacha20poly1305_keygen=j.T)(A),Q._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=(A,I,g,C,B,i,o,E,a,_,c,t)=>(Q._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=j.U)(A,I,g,C,B,i,o,E,a,_,c,t),Q._crypto_aead_xchacha20poly1305_ietf_encrypt=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_xchacha20poly1305_ietf_encrypt=j.V)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=j.W)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_xchacha20poly1305_ietf_decrypt=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_xchacha20poly1305_ietf_decrypt=j.X)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_xchacha20poly1305_ietf_keybytes=()=>(Q._crypto_aead_xchacha20poly1305_ietf_keybytes=j.Y)(),Q._crypto_aead_xchacha20poly1305_ietf_npubbytes=()=>(Q._crypto_aead_xchacha20poly1305_ietf_npubbytes=j.Z)(),Q._crypto_aead_xchacha20poly1305_ietf_nsecbytes=()=>(Q._crypto_aead_xchacha20poly1305_ietf_nsecbytes=j._)(),Q._crypto_aead_xchacha20poly1305_ietf_abytes=()=>(Q._crypto_aead_xchacha20poly1305_ietf_abytes=j.$)(),Q._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=()=>(Q._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=j.aa)(),Q._crypto_aead_xchacha20poly1305_ietf_keygen=A=>(Q._crypto_aead_xchacha20poly1305_ietf_keygen=j.ba)(A),Q._crypto_auth_bytes=()=>(Q._crypto_auth_bytes=j.ca)(),Q._crypto_auth_keybytes=()=>(Q._crypto_auth_keybytes=j.da)(),Q._crypto_auth_primitive=()=>(Q._crypto_auth_primitive=j.ea)(),Q._crypto_auth=(A,I,g,C,B)=>(Q._crypto_auth=j.fa)(A,I,g,C,B),Q._crypto_auth_verify=(A,I,g,C,B)=>(Q._crypto_auth_verify=j.ga)(A,I,g,C,B),Q._crypto_auth_keygen=A=>(Q._crypto_auth_keygen=j.ha)(A),Q._crypto_auth_hmacsha256_bytes=()=>(Q._crypto_auth_hmacsha256_bytes=j.ia)(),Q._crypto_auth_hmacsha256_keybytes=()=>(Q._crypto_auth_hmacsha256_keybytes=j.ja)(),Q._crypto_auth_hmacsha256_statebytes=()=>(Q._crypto_auth_hmacsha256_statebytes=j.ka)(),Q._crypto_auth_hmacsha256_keygen=A=>(Q._crypto_auth_hmacsha256_keygen=j.la)(A),Q._crypto_auth_hmacsha256_init=(A,I,g)=>(Q._crypto_auth_hmacsha256_init=j.ma)(A,I,g),Q._crypto_auth_hmacsha256_update=(A,I,g,C)=>(Q._crypto_auth_hmacsha256_update=j.na)(A,I,g,C),Q._crypto_auth_hmacsha256_final=(A,I)=>(Q._crypto_auth_hmacsha256_final=j.oa)(A,I),Q._crypto_auth_hmacsha256=(A,I,g,C,B)=>(Q._crypto_auth_hmacsha256=j.pa)(A,I,g,C,B),Q._crypto_auth_hmacsha256_verify=(A,I,g,C,B)=>(Q._crypto_auth_hmacsha256_verify=j.qa)(A,I,g,C,B),Q._crypto_auth_hmacsha512_bytes=()=>(Q._crypto_auth_hmacsha512_bytes=j.ra)(),Q._crypto_auth_hmacsha512_keybytes=()=>(Q._crypto_auth_hmacsha512_keybytes=j.sa)(),Q._crypto_auth_hmacsha512_statebytes=()=>(Q._crypto_auth_hmacsha512_statebytes=j.ta)(),Q._crypto_auth_hmacsha512_keygen=A=>(Q._crypto_auth_hmacsha512_keygen=j.ua)(A),Q._crypto_auth_hmacsha512_init=(A,I,g)=>(Q._crypto_auth_hmacsha512_init=j.va)(A,I,g),Q._crypto_auth_hmacsha512_update=(A,I,g,C)=>(Q._crypto_auth_hmacsha512_update=j.wa)(A,I,g,C),Q._crypto_auth_hmacsha512_final=(A,I)=>(Q._crypto_auth_hmacsha512_final=j.xa)(A,I),Q._crypto_auth_hmacsha512=(A,I,g,C,B)=>(Q._crypto_auth_hmacsha512=j.ya)(A,I,g,C,B),Q._crypto_auth_hmacsha512_verify=(A,I,g,C,B)=>(Q._crypto_auth_hmacsha512_verify=j.za)(A,I,g,C,B),Q._crypto_auth_hmacsha512256_bytes=()=>(Q._crypto_auth_hmacsha512256_bytes=j.Aa)(),Q._crypto_auth_hmacsha512256_keybytes=()=>(Q._crypto_auth_hmacsha512256_keybytes=j.Ba)(),Q._crypto_auth_hmacsha512256_statebytes=()=>(Q._crypto_auth_hmacsha512256_statebytes=j.Ca)(),Q._crypto_auth_hmacsha512256_keygen=A=>(Q._crypto_auth_hmacsha512256_keygen=j.Da)(A),Q._crypto_auth_hmacsha512256_init=(A,I,g)=>(Q._crypto_auth_hmacsha512256_init=j.Ea)(A,I,g),Q._crypto_auth_hmacsha512256_update=(A,I,g,C)=>(Q._crypto_auth_hmacsha512256_update=j.Fa)(A,I,g,C),Q._crypto_auth_hmacsha512256_final=(A,I)=>(Q._crypto_auth_hmacsha512256_final=j.Ga)(A,I),Q._crypto_auth_hmacsha512256=(A,I,g,C,B)=>(Q._crypto_auth_hmacsha512256=j.Ha)(A,I,g,C,B),Q._crypto_auth_hmacsha512256_verify=(A,I,g,C,B)=>(Q._crypto_auth_hmacsha512256_verify=j.Ia)(A,I,g,C,B),Q._crypto_box_seedbytes=()=>(Q._crypto_box_seedbytes=j.Ja)(),Q._crypto_box_publickeybytes=()=>(Q._crypto_box_publickeybytes=j.Ka)(),Q._crypto_box_secretkeybytes=()=>(Q._crypto_box_secretkeybytes=j.La)(),Q._crypto_box_beforenmbytes=()=>(Q._crypto_box_beforenmbytes=j.Ma)(),Q._crypto_box_noncebytes=()=>(Q._crypto_box_noncebytes=j.Na)(),Q._crypto_box_zerobytes=()=>(Q._crypto_box_zerobytes=j.Oa)(),Q._crypto_box_boxzerobytes=()=>(Q._crypto_box_boxzerobytes=j.Pa)(),Q._crypto_box_macbytes=()=>(Q._crypto_box_macbytes=j.Qa)(),Q._crypto_box_messagebytes_max=()=>(Q._crypto_box_messagebytes_max=j.Ra)(),Q._crypto_box_primitive=()=>(Q._crypto_box_primitive=j.Sa)(),Q._crypto_box_seed_keypair=(A,I,g)=>(Q._crypto_box_seed_keypair=j.Ta)(A,I,g),Q._crypto_box_keypair=(A,I)=>(Q._crypto_box_keypair=j.Ua)(A,I),Q._crypto_box_beforenm=(A,I,g)=>(Q._crypto_box_beforenm=j.Va)(A,I,g),Q._crypto_box_afternm=(A,I,g,C,B,i)=>(Q._crypto_box_afternm=j.Wa)(A,I,g,C,B,i),Q._crypto_box_open_afternm=(A,I,g,C,B,i)=>(Q._crypto_box_open_afternm=j.Xa)(A,I,g,C,B,i),Q._crypto_box=(A,I,g,C,B,i,o)=>(Q._crypto_box=j.Ya)(A,I,g,C,B,i,o),Q._crypto_box_open=(A,I,g,C,B,i,o)=>(Q._crypto_box_open=j.Za)(A,I,g,C,B,i,o),Q._crypto_box_detached_afternm=(A,I,g,C,B,i,o)=>(Q._crypto_box_detached_afternm=j._a)(A,I,g,C,B,i,o),Q._crypto_box_detached=(A,I,g,C,B,i,o,E)=>(Q._crypto_box_detached=j.$a)(A,I,g,C,B,i,o,E),Q._crypto_box_easy_afternm=(A,I,g,C,B,i)=>(Q._crypto_box_easy_afternm=j.ab)(A,I,g,C,B,i),Q._crypto_box_easy=(A,I,g,C,B,i,o)=>(Q._crypto_box_easy=j.bb)(A,I,g,C,B,i,o),Q._crypto_box_open_detached_afternm=(A,I,g,C,B,i,o)=>(Q._crypto_box_open_detached_afternm=j.cb)(A,I,g,C,B,i,o),Q._crypto_box_open_detached=(A,I,g,C,B,i,o,E)=>(Q._crypto_box_open_detached=j.db)(A,I,g,C,B,i,o,E),Q._crypto_box_open_easy_afternm=(A,I,g,C,B,i)=>(Q._crypto_box_open_easy_afternm=j.eb)(A,I,g,C,B,i),Q._crypto_box_open_easy=(A,I,g,C,B,i,o)=>(Q._crypto_box_open_easy=j.fb)(A,I,g,C,B,i,o),Q._crypto_box_seal=(A,I,g,C,B)=>(Q._crypto_box_seal=j.gb)(A,I,g,C,B),Q._crypto_box_seal_open=(A,I,g,C,B,i)=>(Q._crypto_box_seal_open=j.hb)(A,I,g,C,B,i),Q._crypto_box_sealbytes=()=>(Q._crypto_box_sealbytes=j.ib)(),Q._crypto_box_curve25519xsalsa20poly1305_seed_keypair=(A,I,g)=>(Q._crypto_box_curve25519xsalsa20poly1305_seed_keypair=j.jb)(A,I,g),Q._crypto_box_curve25519xsalsa20poly1305_keypair=(A,I)=>(Q._crypto_box_curve25519xsalsa20poly1305_keypair=j.kb)(A,I),Q._crypto_box_curve25519xsalsa20poly1305_beforenm=(A,I,g)=>(Q._crypto_box_curve25519xsalsa20poly1305_beforenm=j.lb)(A,I,g),Q._crypto_box_curve25519xsalsa20poly1305_afternm=(A,I,g,C,B,i)=>(Q._crypto_box_curve25519xsalsa20poly1305_afternm=j.mb)(A,I,g,C,B,i),Q._crypto_box_curve25519xsalsa20poly1305_open_afternm=(A,I,g,C,B,i)=>(Q._crypto_box_curve25519xsalsa20poly1305_open_afternm=j.nb)(A,I,g,C,B,i),Q._crypto_box_curve25519xsalsa20poly1305=(A,I,g,C,B,i,o)=>(Q._crypto_box_curve25519xsalsa20poly1305=j.ob)(A,I,g,C,B,i,o),Q._crypto_box_curve25519xsalsa20poly1305_open=(A,I,g,C,B,i,o)=>(Q._crypto_box_curve25519xsalsa20poly1305_open=j.pb)(A,I,g,C,B,i,o),Q._crypto_box_curve25519xsalsa20poly1305_seedbytes=()=>(Q._crypto_box_curve25519xsalsa20poly1305_seedbytes=j.qb)(),Q._crypto_box_curve25519xsalsa20poly1305_publickeybytes=()=>(Q._crypto_box_curve25519xsalsa20poly1305_publickeybytes=j.rb)(),Q._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=()=>(Q._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=j.sb)(),Q._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=()=>(Q._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=j.tb)(),Q._crypto_box_curve25519xsalsa20poly1305_noncebytes=()=>(Q._crypto_box_curve25519xsalsa20poly1305_noncebytes=j.ub)(),Q._crypto_box_curve25519xsalsa20poly1305_zerobytes=()=>(Q._crypto_box_curve25519xsalsa20poly1305_zerobytes=j.vb)(),Q._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=()=>(Q._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=j.wb)(),Q._crypto_box_curve25519xsalsa20poly1305_macbytes=()=>(Q._crypto_box_curve25519xsalsa20poly1305_macbytes=j.xb)(),Q._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=()=>(Q._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=j.yb)(),Q._crypto_core_hchacha20=(A,I,g,C)=>(Q._crypto_core_hchacha20=j.zb)(A,I,g,C),Q._crypto_core_hchacha20_outputbytes=()=>(Q._crypto_core_hchacha20_outputbytes=j.Ab)(),Q._crypto_core_hchacha20_inputbytes=()=>(Q._crypto_core_hchacha20_inputbytes=j.Bb)(),Q._crypto_core_hchacha20_keybytes=()=>(Q._crypto_core_hchacha20_keybytes=j.Cb)(),Q._crypto_core_hchacha20_constbytes=()=>(Q._crypto_core_hchacha20_constbytes=j.Db)(),Q._crypto_core_hsalsa20=(A,I,g,C)=>(Q._crypto_core_hsalsa20=j.Eb)(A,I,g,C),Q._crypto_core_hsalsa20_outputbytes=()=>(Q._crypto_core_hsalsa20_outputbytes=j.Fb)(),Q._crypto_core_hsalsa20_inputbytes=()=>(Q._crypto_core_hsalsa20_inputbytes=j.Gb)(),Q._crypto_core_hsalsa20_keybytes=()=>(Q._crypto_core_hsalsa20_keybytes=j.Hb)(),Q._crypto_core_hsalsa20_constbytes=()=>(Q._crypto_core_hsalsa20_constbytes=j.Ib)(),Q._crypto_core_salsa20=(A,I,g,C)=>(Q._crypto_core_salsa20=j.Jb)(A,I,g,C),Q._crypto_core_salsa20_outputbytes=()=>(Q._crypto_core_salsa20_outputbytes=j.Kb)(),Q._crypto_core_salsa20_inputbytes=()=>(Q._crypto_core_salsa20_inputbytes=j.Lb)(),Q._crypto_core_salsa20_keybytes=()=>(Q._crypto_core_salsa20_keybytes=j.Mb)(),Q._crypto_core_salsa20_constbytes=()=>(Q._crypto_core_salsa20_constbytes=j.Nb)(),Q._crypto_core_salsa2012=(A,I,g,C)=>(Q._crypto_core_salsa2012=j.Ob)(A,I,g,C),Q._crypto_core_salsa2012_outputbytes=()=>(Q._crypto_core_salsa2012_outputbytes=j.Pb)(),Q._crypto_core_salsa2012_inputbytes=()=>(Q._crypto_core_salsa2012_inputbytes=j.Qb)(),Q._crypto_core_salsa2012_keybytes=()=>(Q._crypto_core_salsa2012_keybytes=j.Rb)(),Q._crypto_core_salsa2012_constbytes=()=>(Q._crypto_core_salsa2012_constbytes=j.Sb)(),Q._crypto_core_salsa208=(A,I,g,C)=>(Q._crypto_core_salsa208=j.Tb)(A,I,g,C),Q._crypto_core_salsa208_outputbytes=()=>(Q._crypto_core_salsa208_outputbytes=j.Ub)(),Q._crypto_core_salsa208_inputbytes=()=>(Q._crypto_core_salsa208_inputbytes=j.Vb)(),Q._crypto_core_salsa208_keybytes=()=>(Q._crypto_core_salsa208_keybytes=j.Wb)(),Q._crypto_core_salsa208_constbytes=()=>(Q._crypto_core_salsa208_constbytes=j.Xb)(),Q._crypto_generichash_bytes_min=()=>(Q._crypto_generichash_bytes_min=j.Yb)(),Q._crypto_generichash_bytes_max=()=>(Q._crypto_generichash_bytes_max=j.Zb)(),Q._crypto_generichash_bytes=()=>(Q._crypto_generichash_bytes=j._b)(),Q._crypto_generichash_keybytes_min=()=>(Q._crypto_generichash_keybytes_min=j.$b)(),Q._crypto_generichash_keybytes_max=()=>(Q._crypto_generichash_keybytes_max=j.ac)(),Q._crypto_generichash_keybytes=()=>(Q._crypto_generichash_keybytes=j.bc)(),Q._crypto_generichash_primitive=()=>(Q._crypto_generichash_primitive=j.cc)(),Q._crypto_generichash_statebytes=()=>(Q._crypto_generichash_statebytes=j.dc)(),Q._crypto_generichash=(A,I,g,C,B,i,o)=>(Q._crypto_generichash=j.ec)(A,I,g,C,B,i,o),Q._crypto_generichash_init=(A,I,g,C)=>(Q._crypto_generichash_init=j.fc)(A,I,g,C),Q._crypto_generichash_update=(A,I,g,C)=>(Q._crypto_generichash_update=j.gc)(A,I,g,C),Q._crypto_generichash_final=(A,I,g)=>(Q._crypto_generichash_final=j.hc)(A,I,g),Q._crypto_generichash_keygen=A=>(Q._crypto_generichash_keygen=j.ic)(A),Q._crypto_generichash_blake2b_bytes_min=()=>(Q._crypto_generichash_blake2b_bytes_min=j.jc)(),Q._crypto_generichash_blake2b_bytes_max=()=>(Q._crypto_generichash_blake2b_bytes_max=j.kc)(),Q._crypto_generichash_blake2b_bytes=()=>(Q._crypto_generichash_blake2b_bytes=j.lc)(),Q._crypto_generichash_blake2b_keybytes_min=()=>(Q._crypto_generichash_blake2b_keybytes_min=j.mc)(),Q._crypto_generichash_blake2b_keybytes_max=()=>(Q._crypto_generichash_blake2b_keybytes_max=j.nc)(),Q._crypto_generichash_blake2b_keybytes=()=>(Q._crypto_generichash_blake2b_keybytes=j.oc)(),Q._crypto_generichash_blake2b_saltbytes=()=>(Q._crypto_generichash_blake2b_saltbytes=j.pc)(),Q._crypto_generichash_blake2b_personalbytes=()=>(Q._crypto_generichash_blake2b_personalbytes=j.qc)(),Q._crypto_generichash_blake2b_statebytes=()=>(Q._crypto_generichash_blake2b_statebytes=j.rc)(),Q._crypto_generichash_blake2b_keygen=A=>(Q._crypto_generichash_blake2b_keygen=j.sc)(A),Q._crypto_generichash_blake2b=(A,I,g,C,B,i,o)=>(Q._crypto_generichash_blake2b=j.tc)(A,I,g,C,B,i,o),Q._crypto_generichash_blake2b_salt_personal=(A,I,g,C,B,i,o,E,a)=>(Q._crypto_generichash_blake2b_salt_personal=j.uc)(A,I,g,C,B,i,o,E,a),Q._crypto_generichash_blake2b_init=(A,I,g,C)=>(Q._crypto_generichash_blake2b_init=j.vc)(A,I,g,C),Q._crypto_generichash_blake2b_init_salt_personal=(A,I,g,C,B,i)=>(Q._crypto_generichash_blake2b_init_salt_personal=j.wc)(A,I,g,C,B,i),Q._crypto_generichash_blake2b_update=(A,I,g,C)=>(Q._crypto_generichash_blake2b_update=j.xc)(A,I,g,C),Q._crypto_generichash_blake2b_final=(A,I,g)=>(Q._crypto_generichash_blake2b_final=j.yc)(A,I,g),Q._crypto_hash_bytes=()=>(Q._crypto_hash_bytes=j.zc)(),Q._crypto_hash=(A,I,g,C)=>(Q._crypto_hash=j.Ac)(A,I,g,C),Q._crypto_hash_primitive=()=>(Q._crypto_hash_primitive=j.Bc)(),Q._crypto_hash_sha256_bytes=()=>(Q._crypto_hash_sha256_bytes=j.Cc)(),Q._crypto_hash_sha256_statebytes=()=>(Q._crypto_hash_sha256_statebytes=j.Dc)(),Q._crypto_hash_sha256_init=A=>(Q._crypto_hash_sha256_init=j.Ec)(A),Q._crypto_hash_sha256_update=(A,I,g,C)=>(Q._crypto_hash_sha256_update=j.Fc)(A,I,g,C),Q._crypto_hash_sha256_final=(A,I)=>(Q._crypto_hash_sha256_final=j.Gc)(A,I),Q._crypto_hash_sha256=(A,I,g,C)=>(Q._crypto_hash_sha256=j.Hc)(A,I,g,C),Q._crypto_hash_sha512_bytes=()=>(Q._crypto_hash_sha512_bytes=j.Ic)(),Q._crypto_hash_sha512_statebytes=()=>(Q._crypto_hash_sha512_statebytes=j.Jc)(),Q._crypto_hash_sha512_init=A=>(Q._crypto_hash_sha512_init=j.Kc)(A),Q._crypto_hash_sha512_update=(A,I,g,C)=>(Q._crypto_hash_sha512_update=j.Lc)(A,I,g,C),Q._crypto_hash_sha512_final=(A,I)=>(Q._crypto_hash_sha512_final=j.Mc)(A,I),Q._crypto_hash_sha512=(A,I,g,C)=>(Q._crypto_hash_sha512=j.Nc)(A,I,g,C),Q._crypto_kdf_blake2b_bytes_min=()=>(Q._crypto_kdf_blake2b_bytes_min=j.Oc)(),Q._crypto_kdf_blake2b_bytes_max=()=>(Q._crypto_kdf_blake2b_bytes_max=j.Pc)(),Q._crypto_kdf_blake2b_contextbytes=()=>(Q._crypto_kdf_blake2b_contextbytes=j.Qc)(),Q._crypto_kdf_blake2b_keybytes=()=>(Q._crypto_kdf_blake2b_keybytes=j.Rc)(),Q._crypto_kdf_blake2b_derive_from_key=(A,I,g,C,B,i)=>(Q._crypto_kdf_blake2b_derive_from_key=j.Sc)(A,I,g,C,B,i),Q._crypto_kdf_primitive=()=>(Q._crypto_kdf_primitive=j.Tc)(),Q._crypto_kdf_bytes_min=()=>(Q._crypto_kdf_bytes_min=j.Uc)(),Q._crypto_kdf_bytes_max=()=>(Q._crypto_kdf_bytes_max=j.Vc)(),Q._crypto_kdf_contextbytes=()=>(Q._crypto_kdf_contextbytes=j.Wc)(),Q._crypto_kdf_keybytes=()=>(Q._crypto_kdf_keybytes=j.Xc)(),Q._crypto_kdf_derive_from_key=(A,I,g,C,B,i)=>(Q._crypto_kdf_derive_from_key=j.Yc)(A,I,g,C,B,i),Q._crypto_kdf_keygen=A=>(Q._crypto_kdf_keygen=j.Zc)(A),Q._crypto_kdf_hkdf_sha256_extract_init=(A,I,g)=>(Q._crypto_kdf_hkdf_sha256_extract_init=j._c)(A,I,g),Q._crypto_kdf_hkdf_sha256_extract_update=(A,I,g)=>(Q._crypto_kdf_hkdf_sha256_extract_update=j.$c)(A,I,g),Q._crypto_kdf_hkdf_sha256_extract_final=(A,I)=>(Q._crypto_kdf_hkdf_sha256_extract_final=j.ad)(A,I),Q._crypto_kdf_hkdf_sha256_extract=(A,I,g,C,B)=>(Q._crypto_kdf_hkdf_sha256_extract=j.bd)(A,I,g,C,B),Q._crypto_kdf_hkdf_sha256_keygen=A=>(Q._crypto_kdf_hkdf_sha256_keygen=j.cd)(A),Q._crypto_kdf_hkdf_sha256_expand=(A,I,g,C,B)=>(Q._crypto_kdf_hkdf_sha256_expand=j.dd)(A,I,g,C,B),Q._crypto_kdf_hkdf_sha256_keybytes=()=>(Q._crypto_kdf_hkdf_sha256_keybytes=j.ed)(),Q._crypto_kdf_hkdf_sha256_bytes_min=()=>(Q._crypto_kdf_hkdf_sha256_bytes_min=j.fd)(),Q._crypto_kdf_hkdf_sha256_bytes_max=()=>(Q._crypto_kdf_hkdf_sha256_bytes_max=j.gd)(),Q._crypto_kdf_hkdf_sha256_statebytes=()=>(Q._crypto_kdf_hkdf_sha256_statebytes=j.hd)(),Q._crypto_kdf_hkdf_sha512_extract_init=(A,I,g)=>(Q._crypto_kdf_hkdf_sha512_extract_init=j.id)(A,I,g),Q._crypto_kdf_hkdf_sha512_extract_update=(A,I,g)=>(Q._crypto_kdf_hkdf_sha512_extract_update=j.jd)(A,I,g),Q._crypto_kdf_hkdf_sha512_extract_final=(A,I)=>(Q._crypto_kdf_hkdf_sha512_extract_final=j.kd)(A,I),Q._crypto_kdf_hkdf_sha512_extract=(A,I,g,C,B)=>(Q._crypto_kdf_hkdf_sha512_extract=j.ld)(A,I,g,C,B),Q._crypto_kdf_hkdf_sha512_keygen=A=>(Q._crypto_kdf_hkdf_sha512_keygen=j.md)(A),Q._crypto_kdf_hkdf_sha512_expand=(A,I,g,C,B)=>(Q._crypto_kdf_hkdf_sha512_expand=j.nd)(A,I,g,C,B),Q._crypto_kdf_hkdf_sha512_keybytes=()=>(Q._crypto_kdf_hkdf_sha512_keybytes=j.od)(),Q._crypto_kdf_hkdf_sha512_bytes_min=()=>(Q._crypto_kdf_hkdf_sha512_bytes_min=j.pd)(),Q._crypto_kdf_hkdf_sha512_bytes_max=()=>(Q._crypto_kdf_hkdf_sha512_bytes_max=j.qd)(),Q._crypto_kx_seed_keypair=(A,I,g)=>(Q._crypto_kx_seed_keypair=j.rd)(A,I,g),Q._crypto_kx_keypair=(A,I)=>(Q._crypto_kx_keypair=j.sd)(A,I),Q._crypto_kx_client_session_keys=(A,I,g,C,B)=>(Q._crypto_kx_client_session_keys=j.td)(A,I,g,C,B),Q._crypto_kx_server_session_keys=(A,I,g,C,B)=>(Q._crypto_kx_server_session_keys=j.ud)(A,I,g,C,B),Q._crypto_kx_publickeybytes=()=>(Q._crypto_kx_publickeybytes=j.vd)(),Q._crypto_kx_secretkeybytes=()=>(Q._crypto_kx_secretkeybytes=j.wd)(),Q._crypto_kx_seedbytes=()=>(Q._crypto_kx_seedbytes=j.xd)(),Q._crypto_kx_sessionkeybytes=()=>(Q._crypto_kx_sessionkeybytes=j.yd)(),Q._crypto_kx_primitive=()=>(Q._crypto_kx_primitive=j.zd)(),Q._crypto_onetimeauth_statebytes=()=>(Q._crypto_onetimeauth_statebytes=j.Ad)(),Q._crypto_onetimeauth_bytes=()=>(Q._crypto_onetimeauth_bytes=j.Bd)(),Q._crypto_onetimeauth_keybytes=()=>(Q._crypto_onetimeauth_keybytes=j.Cd)(),Q._crypto_onetimeauth=(A,I,g,C,B)=>(Q._crypto_onetimeauth=j.Dd)(A,I,g,C,B),Q._crypto_onetimeauth_verify=(A,I,g,C,B)=>(Q._crypto_onetimeauth_verify=j.Ed)(A,I,g,C,B),Q._crypto_onetimeauth_init=(A,I)=>(Q._crypto_onetimeauth_init=j.Fd)(A,I),Q._crypto_onetimeauth_update=(A,I,g,C)=>(Q._crypto_onetimeauth_update=j.Gd)(A,I,g,C),Q._crypto_onetimeauth_final=(A,I)=>(Q._crypto_onetimeauth_final=j.Hd)(A,I),Q._crypto_onetimeauth_primitive=()=>(Q._crypto_onetimeauth_primitive=j.Id)(),Q._crypto_onetimeauth_keygen=A=>(Q._crypto_onetimeauth_keygen=j.Jd)(A),Q._crypto_onetimeauth_poly1305=(A,I,g,C,B)=>(Q._crypto_onetimeauth_poly1305=j.Kd)(A,I,g,C,B),Q._crypto_onetimeauth_poly1305_verify=(A,I,g,C,B)=>(Q._crypto_onetimeauth_poly1305_verify=j.Ld)(A,I,g,C,B),Q._crypto_onetimeauth_poly1305_init=(A,I)=>(Q._crypto_onetimeauth_poly1305_init=j.Md)(A,I),Q._crypto_onetimeauth_poly1305_update=(A,I,g,C)=>(Q._crypto_onetimeauth_poly1305_update=j.Nd)(A,I,g,C),Q._crypto_onetimeauth_poly1305_final=(A,I)=>(Q._crypto_onetimeauth_poly1305_final=j.Od)(A,I),Q._crypto_onetimeauth_poly1305_bytes=()=>(Q._crypto_onetimeauth_poly1305_bytes=j.Pd)(),Q._crypto_onetimeauth_poly1305_keybytes=()=>(Q._crypto_onetimeauth_poly1305_keybytes=j.Qd)(),Q._crypto_onetimeauth_poly1305_statebytes=()=>(Q._crypto_onetimeauth_poly1305_statebytes=j.Rd)(),Q._crypto_onetimeauth_poly1305_keygen=A=>(Q._crypto_onetimeauth_poly1305_keygen=j.Sd)(A),Q._crypto_pwhash_argon2i_alg_argon2i13=()=>(Q._crypto_pwhash_argon2i_alg_argon2i13=j.Td)(),Q._crypto_pwhash_argon2i_bytes_min=()=>(Q._crypto_pwhash_argon2i_bytes_min=j.Ud)(),Q._crypto_pwhash_argon2i_bytes_max=()=>(Q._crypto_pwhash_argon2i_bytes_max=j.Vd)(),Q._crypto_pwhash_argon2i_passwd_min=()=>(Q._crypto_pwhash_argon2i_passwd_min=j.Wd)(),Q._crypto_pwhash_argon2i_passwd_max=()=>(Q._crypto_pwhash_argon2i_passwd_max=j.Xd)(),Q._crypto_pwhash_argon2i_saltbytes=()=>(Q._crypto_pwhash_argon2i_saltbytes=j.Yd)(),Q._crypto_pwhash_argon2i_strbytes=()=>(Q._crypto_pwhash_argon2i_strbytes=j.Zd)(),Q._crypto_pwhash_argon2i_strprefix=()=>(Q._crypto_pwhash_argon2i_strprefix=j._d)(),Q._crypto_pwhash_argon2i_opslimit_min=()=>(Q._crypto_pwhash_argon2i_opslimit_min=j.$d)(),Q._crypto_pwhash_argon2i_opslimit_max=()=>(Q._crypto_pwhash_argon2i_opslimit_max=j.ae)(),Q._crypto_pwhash_argon2i_memlimit_min=()=>(Q._crypto_pwhash_argon2i_memlimit_min=j.be)(),Q._crypto_pwhash_argon2i_memlimit_max=()=>(Q._crypto_pwhash_argon2i_memlimit_max=j.ce)(),Q._crypto_pwhash_argon2i_opslimit_interactive=()=>(Q._crypto_pwhash_argon2i_opslimit_interactive=j.de)(),Q._crypto_pwhash_argon2i_memlimit_interactive=()=>(Q._crypto_pwhash_argon2i_memlimit_interactive=j.ee)(),Q._crypto_pwhash_argon2i_opslimit_moderate=()=>(Q._crypto_pwhash_argon2i_opslimit_moderate=j.fe)(),Q._crypto_pwhash_argon2i_memlimit_moderate=()=>(Q._crypto_pwhash_argon2i_memlimit_moderate=j.ge)(),Q._crypto_pwhash_argon2i_opslimit_sensitive=()=>(Q._crypto_pwhash_argon2i_opslimit_sensitive=j.he)(),Q._crypto_pwhash_argon2i_memlimit_sensitive=()=>(Q._crypto_pwhash_argon2i_memlimit_sensitive=j.ie)(),Q._crypto_pwhash_argon2i=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_pwhash_argon2i=j.je)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_pwhash_argon2i_str=(A,I,g,C,B,i,o)=>(Q._crypto_pwhash_argon2i_str=j.ke)(A,I,g,C,B,i,o),Q._crypto_pwhash_argon2i_str_verify=(A,I,g,C)=>(Q._crypto_pwhash_argon2i_str_verify=j.le)(A,I,g,C),Q._crypto_pwhash_argon2i_str_needs_rehash=(A,I,g,C)=>(Q._crypto_pwhash_argon2i_str_needs_rehash=j.me)(A,I,g,C),Q._crypto_pwhash_argon2id_str_needs_rehash=(A,I,g,C)=>(Q._crypto_pwhash_argon2id_str_needs_rehash=j.ne)(A,I,g,C),Q._crypto_pwhash_argon2id_alg_argon2id13=()=>(Q._crypto_pwhash_argon2id_alg_argon2id13=j.oe)(),Q._crypto_pwhash_argon2id_bytes_min=()=>(Q._crypto_pwhash_argon2id_bytes_min=j.pe)(),Q._crypto_pwhash_argon2id_bytes_max=()=>(Q._crypto_pwhash_argon2id_bytes_max=j.qe)(),Q._crypto_pwhash_argon2id_passwd_min=()=>(Q._crypto_pwhash_argon2id_passwd_min=j.re)(),Q._crypto_pwhash_argon2id_passwd_max=()=>(Q._crypto_pwhash_argon2id_passwd_max=j.se)(),Q._crypto_pwhash_argon2id_saltbytes=()=>(Q._crypto_pwhash_argon2id_saltbytes=j.te)(),Q._crypto_pwhash_argon2id_strbytes=()=>(Q._crypto_pwhash_argon2id_strbytes=j.ue)(),Q._crypto_pwhash_argon2id_strprefix=()=>(Q._crypto_pwhash_argon2id_strprefix=j.ve)(),Q._crypto_pwhash_argon2id_opslimit_min=()=>(Q._crypto_pwhash_argon2id_opslimit_min=j.we)(),Q._crypto_pwhash_argon2id_opslimit_max=()=>(Q._crypto_pwhash_argon2id_opslimit_max=j.xe)(),Q._crypto_pwhash_argon2id_memlimit_min=()=>(Q._crypto_pwhash_argon2id_memlimit_min=j.ye)(),Q._crypto_pwhash_argon2id_memlimit_max=()=>(Q._crypto_pwhash_argon2id_memlimit_max=j.ze)(),Q._crypto_pwhash_argon2id_opslimit_interactive=()=>(Q._crypto_pwhash_argon2id_opslimit_interactive=j.Ae)(),Q._crypto_pwhash_argon2id_memlimit_interactive=()=>(Q._crypto_pwhash_argon2id_memlimit_interactive=j.Be)(),Q._crypto_pwhash_argon2id_opslimit_moderate=()=>(Q._crypto_pwhash_argon2id_opslimit_moderate=j.Ce)(),Q._crypto_pwhash_argon2id_memlimit_moderate=()=>(Q._crypto_pwhash_argon2id_memlimit_moderate=j.De)(),Q._crypto_pwhash_argon2id_opslimit_sensitive=()=>(Q._crypto_pwhash_argon2id_opslimit_sensitive=j.Ee)(),Q._crypto_pwhash_argon2id_memlimit_sensitive=()=>(Q._crypto_pwhash_argon2id_memlimit_sensitive=j.Fe)(),Q._crypto_pwhash_argon2id=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_pwhash_argon2id=j.Ge)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_pwhash_argon2id_str=(A,I,g,C,B,i,o)=>(Q._crypto_pwhash_argon2id_str=j.He)(A,I,g,C,B,i,o),Q._crypto_pwhash_argon2id_str_verify=(A,I,g,C)=>(Q._crypto_pwhash_argon2id_str_verify=j.Ie)(A,I,g,C),Q._crypto_pwhash_alg_argon2i13=()=>(Q._crypto_pwhash_alg_argon2i13=j.Je)(),Q._crypto_pwhash_alg_argon2id13=()=>(Q._crypto_pwhash_alg_argon2id13=j.Ke)(),Q._crypto_pwhash_alg_default=()=>(Q._crypto_pwhash_alg_default=j.Le)(),Q._crypto_pwhash_bytes_min=()=>(Q._crypto_pwhash_bytes_min=j.Me)(),Q._crypto_pwhash_bytes_max=()=>(Q._crypto_pwhash_bytes_max=j.Ne)(),Q._crypto_pwhash_passwd_min=()=>(Q._crypto_pwhash_passwd_min=j.Oe)(),Q._crypto_pwhash_passwd_max=()=>(Q._crypto_pwhash_passwd_max=j.Pe)(),Q._crypto_pwhash_saltbytes=()=>(Q._crypto_pwhash_saltbytes=j.Qe)(),Q._crypto_pwhash_strbytes=()=>(Q._crypto_pwhash_strbytes=j.Re)(),Q._crypto_pwhash_strprefix=()=>(Q._crypto_pwhash_strprefix=j.Se)(),Q._crypto_pwhash_opslimit_min=()=>(Q._crypto_pwhash_opslimit_min=j.Te)(),Q._crypto_pwhash_opslimit_max=()=>(Q._crypto_pwhash_opslimit_max=j.Ue)(),Q._crypto_pwhash_memlimit_min=()=>(Q._crypto_pwhash_memlimit_min=j.Ve)(),Q._crypto_pwhash_memlimit_max=()=>(Q._crypto_pwhash_memlimit_max=j.We)(),Q._crypto_pwhash_opslimit_interactive=()=>(Q._crypto_pwhash_opslimit_interactive=j.Xe)(),Q._crypto_pwhash_memlimit_interactive=()=>(Q._crypto_pwhash_memlimit_interactive=j.Ye)(),Q._crypto_pwhash_opslimit_moderate=()=>(Q._crypto_pwhash_opslimit_moderate=j.Ze)(),Q._crypto_pwhash_memlimit_moderate=()=>(Q._crypto_pwhash_memlimit_moderate=j._e)(),Q._crypto_pwhash_opslimit_sensitive=()=>(Q._crypto_pwhash_opslimit_sensitive=j.$e)(),Q._crypto_pwhash_memlimit_sensitive=()=>(Q._crypto_pwhash_memlimit_sensitive=j.af)(),Q._crypto_pwhash=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_pwhash=j.bf)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_pwhash_str=(A,I,g,C,B,i,o)=>(Q._crypto_pwhash_str=j.cf)(A,I,g,C,B,i,o),Q._crypto_pwhash_str_alg=(A,I,g,C,B,i,o,E)=>(Q._crypto_pwhash_str_alg=j.df)(A,I,g,C,B,i,o,E),Q._crypto_pwhash_str_verify=(A,I,g,C)=>(Q._crypto_pwhash_str_verify=j.ef)(A,I,g,C),Q._crypto_pwhash_str_needs_rehash=(A,I,g,C)=>(Q._crypto_pwhash_str_needs_rehash=j.ff)(A,I,g,C),Q._crypto_pwhash_primitive=()=>(Q._crypto_pwhash_primitive=j.gf)(),Q._crypto_scalarmult_primitive=()=>(Q._crypto_scalarmult_primitive=j.hf)(),Q._crypto_scalarmult_base=(A,I)=>(Q._crypto_scalarmult_base=j.jf)(A,I),Q._crypto_scalarmult=(A,I,g)=>(Q._crypto_scalarmult=j.kf)(A,I,g),Q._crypto_scalarmult_bytes=()=>(Q._crypto_scalarmult_bytes=j.lf)(),Q._crypto_scalarmult_scalarbytes=()=>(Q._crypto_scalarmult_scalarbytes=j.mf)(),Q._crypto_scalarmult_curve25519=(A,I,g)=>(Q._crypto_scalarmult_curve25519=j.nf)(A,I,g),Q._crypto_scalarmult_curve25519_base=(A,I)=>(Q._crypto_scalarmult_curve25519_base=j.of)(A,I),Q._crypto_scalarmult_curve25519_bytes=()=>(Q._crypto_scalarmult_curve25519_bytes=j.pf)(),Q._crypto_scalarmult_curve25519_scalarbytes=()=>(Q._crypto_scalarmult_curve25519_scalarbytes=j.qf)(),Q._crypto_secretbox_keybytes=()=>(Q._crypto_secretbox_keybytes=j.rf)(),Q._crypto_secretbox_noncebytes=()=>(Q._crypto_secretbox_noncebytes=j.sf)(),Q._crypto_secretbox_zerobytes=()=>(Q._crypto_secretbox_zerobytes=j.tf)(),Q._crypto_secretbox_boxzerobytes=()=>(Q._crypto_secretbox_boxzerobytes=j.uf)(),Q._crypto_secretbox_macbytes=()=>(Q._crypto_secretbox_macbytes=j.vf)(),Q._crypto_secretbox_messagebytes_max=()=>(Q._crypto_secretbox_messagebytes_max=j.wf)(),Q._crypto_secretbox_primitive=()=>(Q._crypto_secretbox_primitive=j.xf)(),Q._crypto_secretbox=(A,I,g,C,B,i)=>(Q._crypto_secretbox=j.yf)(A,I,g,C,B,i),Q._crypto_secretbox_open=(A,I,g,C,B,i)=>(Q._crypto_secretbox_open=j.zf)(A,I,g,C,B,i),Q._crypto_secretbox_keygen=A=>(Q._crypto_secretbox_keygen=j.Af)(A),Q._crypto_secretbox_detached=(A,I,g,C,B,i,o)=>(Q._crypto_secretbox_detached=j.Bf)(A,I,g,C,B,i,o),Q._crypto_secretbox_easy=(A,I,g,C,B,i)=>(Q._crypto_secretbox_easy=j.Cf)(A,I,g,C,B,i),Q._crypto_secretbox_open_detached=(A,I,g,C,B,i,o)=>(Q._crypto_secretbox_open_detached=j.Df)(A,I,g,C,B,i,o),Q._crypto_secretbox_open_easy=(A,I,g,C,B,i)=>(Q._crypto_secretbox_open_easy=j.Ef)(A,I,g,C,B,i),Q._crypto_secretbox_xsalsa20poly1305=(A,I,g,C,B,i)=>(Q._crypto_secretbox_xsalsa20poly1305=j.Ff)(A,I,g,C,B,i),Q._crypto_secretbox_xsalsa20poly1305_open=(A,I,g,C,B,i)=>(Q._crypto_secretbox_xsalsa20poly1305_open=j.Gf)(A,I,g,C,B,i),Q._crypto_secretbox_xsalsa20poly1305_keybytes=()=>(Q._crypto_secretbox_xsalsa20poly1305_keybytes=j.Hf)(),Q._crypto_secretbox_xsalsa20poly1305_noncebytes=()=>(Q._crypto_secretbox_xsalsa20poly1305_noncebytes=j.If)(),Q._crypto_secretbox_xsalsa20poly1305_zerobytes=()=>(Q._crypto_secretbox_xsalsa20poly1305_zerobytes=j.Jf)(),Q._crypto_secretbox_xsalsa20poly1305_boxzerobytes=()=>(Q._crypto_secretbox_xsalsa20poly1305_boxzerobytes=j.Kf)(),Q._crypto_secretbox_xsalsa20poly1305_macbytes=()=>(Q._crypto_secretbox_xsalsa20poly1305_macbytes=j.Lf)(),Q._crypto_secretbox_xsalsa20poly1305_messagebytes_max=()=>(Q._crypto_secretbox_xsalsa20poly1305_messagebytes_max=j.Mf)(),Q._crypto_secretbox_xsalsa20poly1305_keygen=A=>(Q._crypto_secretbox_xsalsa20poly1305_keygen=j.Nf)(A),Q._crypto_secretstream_xchacha20poly1305_keygen=A=>(Q._crypto_secretstream_xchacha20poly1305_keygen=j.Of)(A),Q._crypto_secretstream_xchacha20poly1305_init_push=(A,I,g)=>(Q._crypto_secretstream_xchacha20poly1305_init_push=j.Pf)(A,I,g),Q._crypto_secretstream_xchacha20poly1305_init_pull=(A,I,g)=>(Q._crypto_secretstream_xchacha20poly1305_init_pull=j.Qf)(A,I,g),Q._crypto_secretstream_xchacha20poly1305_rekey=A=>(Q._crypto_secretstream_xchacha20poly1305_rekey=j.Rf)(A),Q._crypto_secretstream_xchacha20poly1305_push=(A,I,g,C,B,i,o,E,a,_)=>(Q._crypto_secretstream_xchacha20poly1305_push=j.Sf)(A,I,g,C,B,i,o,E,a,_),Q._crypto_secretstream_xchacha20poly1305_pull=(A,I,g,C,B,i,o,E,a,_)=>(Q._crypto_secretstream_xchacha20poly1305_pull=j.Tf)(A,I,g,C,B,i,o,E,a,_),Q._crypto_secretstream_xchacha20poly1305_statebytes=()=>(Q._crypto_secretstream_xchacha20poly1305_statebytes=j.Uf)(),Q._crypto_secretstream_xchacha20poly1305_abytes=()=>(Q._crypto_secretstream_xchacha20poly1305_abytes=j.Vf)(),Q._crypto_secretstream_xchacha20poly1305_headerbytes=()=>(Q._crypto_secretstream_xchacha20poly1305_headerbytes=j.Wf)(),Q._crypto_secretstream_xchacha20poly1305_keybytes=()=>(Q._crypto_secretstream_xchacha20poly1305_keybytes=j.Xf)(),Q._crypto_secretstream_xchacha20poly1305_messagebytes_max=()=>(Q._crypto_secretstream_xchacha20poly1305_messagebytes_max=j.Yf)(),Q._crypto_secretstream_xchacha20poly1305_tag_message=()=>(Q._crypto_secretstream_xchacha20poly1305_tag_message=j.Zf)(),Q._crypto_secretstream_xchacha20poly1305_tag_push=()=>(Q._crypto_secretstream_xchacha20poly1305_tag_push=j._f)(),Q._crypto_secretstream_xchacha20poly1305_tag_rekey=()=>(Q._crypto_secretstream_xchacha20poly1305_tag_rekey=j.$f)(),Q._crypto_secretstream_xchacha20poly1305_tag_final=()=>(Q._crypto_secretstream_xchacha20poly1305_tag_final=j.ag)(),Q._crypto_shorthash_bytes=()=>(Q._crypto_shorthash_bytes=j.bg)(),Q._crypto_shorthash_keybytes=()=>(Q._crypto_shorthash_keybytes=j.cg)(),Q._crypto_shorthash_primitive=()=>(Q._crypto_shorthash_primitive=j.dg)(),Q._crypto_shorthash=(A,I,g,C,B)=>(Q._crypto_shorthash=j.eg)(A,I,g,C,B),Q._crypto_shorthash_keygen=A=>(Q._crypto_shorthash_keygen=j.fg)(A),Q._crypto_shorthash_siphash24_bytes=()=>(Q._crypto_shorthash_siphash24_bytes=j.gg)(),Q._crypto_shorthash_siphash24_keybytes=()=>(Q._crypto_shorthash_siphash24_keybytes=j.hg)(),Q._crypto_shorthash_siphash24=(A,I,g,C,B)=>(Q._crypto_shorthash_siphash24=j.ig)(A,I,g,C,B),Q._crypto_sign_statebytes=()=>(Q._crypto_sign_statebytes=j.jg)(),Q._crypto_sign_bytes=()=>(Q._crypto_sign_bytes=j.kg)(),Q._crypto_sign_seedbytes=()=>(Q._crypto_sign_seedbytes=j.lg)(),Q._crypto_sign_publickeybytes=()=>(Q._crypto_sign_publickeybytes=j.mg)(),Q._crypto_sign_secretkeybytes=()=>(Q._crypto_sign_secretkeybytes=j.ng)(),Q._crypto_sign_messagebytes_max=()=>(Q._crypto_sign_messagebytes_max=j.og)(),Q._crypto_sign_primitive=()=>(Q._crypto_sign_primitive=j.pg)(),Q._crypto_sign_seed_keypair=(A,I,g)=>(Q._crypto_sign_seed_keypair=j.qg)(A,I,g),Q._crypto_sign_keypair=(A,I)=>(Q._crypto_sign_keypair=j.rg)(A,I),Q._crypto_sign=(A,I,g,C,B,i)=>(Q._crypto_sign=j.sg)(A,I,g,C,B,i),Q._crypto_sign_open=(A,I,g,C,B,i)=>(Q._crypto_sign_open=j.tg)(A,I,g,C,B,i),Q._crypto_sign_detached=(A,I,g,C,B,i)=>(Q._crypto_sign_detached=j.ug)(A,I,g,C,B,i),Q._crypto_sign_verify_detached=(A,I,g,C,B)=>(Q._crypto_sign_verify_detached=j.vg)(A,I,g,C,B),Q._crypto_sign_init=A=>(Q._crypto_sign_init=j.wg)(A),Q._crypto_sign_update=(A,I,g,C)=>(Q._crypto_sign_update=j.xg)(A,I,g,C),Q._crypto_sign_final_create=(A,I,g,C)=>(Q._crypto_sign_final_create=j.yg)(A,I,g,C),Q._crypto_sign_final_verify=(A,I,g)=>(Q._crypto_sign_final_verify=j.zg)(A,I,g),Q._crypto_sign_ed25519ph_statebytes=()=>(Q._crypto_sign_ed25519ph_statebytes=j.Ag)(),Q._crypto_sign_ed25519_bytes=()=>(Q._crypto_sign_ed25519_bytes=j.Bg)(),Q._crypto_sign_ed25519_seedbytes=()=>(Q._crypto_sign_ed25519_seedbytes=j.Cg)(),Q._crypto_sign_ed25519_publickeybytes=()=>(Q._crypto_sign_ed25519_publickeybytes=j.Dg)(),Q._crypto_sign_ed25519_secretkeybytes=()=>(Q._crypto_sign_ed25519_secretkeybytes=j.Eg)(),Q._crypto_sign_ed25519_messagebytes_max=()=>(Q._crypto_sign_ed25519_messagebytes_max=j.Fg)(),Q._crypto_sign_ed25519_sk_to_seed=(A,I)=>(Q._crypto_sign_ed25519_sk_to_seed=j.Gg)(A,I),Q._crypto_sign_ed25519_sk_to_pk=(A,I)=>(Q._crypto_sign_ed25519_sk_to_pk=j.Hg)(A,I),Q._crypto_sign_ed25519ph_init=A=>(Q._crypto_sign_ed25519ph_init=j.Ig)(A),Q._crypto_sign_ed25519ph_update=(A,I,g,C)=>(Q._crypto_sign_ed25519ph_update=j.Jg)(A,I,g,C),Q._crypto_sign_ed25519ph_final_create=(A,I,g,C)=>(Q._crypto_sign_ed25519ph_final_create=j.Kg)(A,I,g,C),Q._crypto_sign_ed25519ph_final_verify=(A,I,g)=>(Q._crypto_sign_ed25519ph_final_verify=j.Lg)(A,I,g),Q._crypto_sign_ed25519_seed_keypair=(A,I,g)=>(Q._crypto_sign_ed25519_seed_keypair=j.Mg)(A,I,g),Q._crypto_sign_ed25519_keypair=(A,I)=>(Q._crypto_sign_ed25519_keypair=j.Ng)(A,I),Q._crypto_sign_ed25519_pk_to_curve25519=(A,I)=>(Q._crypto_sign_ed25519_pk_to_curve25519=j.Og)(A,I),Q._crypto_sign_ed25519_sk_to_curve25519=(A,I)=>(Q._crypto_sign_ed25519_sk_to_curve25519=j.Pg)(A,I),Q._crypto_sign_ed25519_verify_detached=(A,I,g,C,B)=>(Q._crypto_sign_ed25519_verify_detached=j.Qg)(A,I,g,C,B),Q._crypto_sign_ed25519_open=(A,I,g,C,B,i)=>(Q._crypto_sign_ed25519_open=j.Rg)(A,I,g,C,B,i),Q._crypto_sign_ed25519_detached=(A,I,g,C,B,i)=>(Q._crypto_sign_ed25519_detached=j.Sg)(A,I,g,C,B,i),Q._crypto_sign_ed25519=(A,I,g,C,B,i)=>(Q._crypto_sign_ed25519=j.Tg)(A,I,g,C,B,i),Q._crypto_stream_chacha20_keybytes=()=>(Q._crypto_stream_chacha20_keybytes=j.Ug)(),Q._crypto_stream_chacha20_noncebytes=()=>(Q._crypto_stream_chacha20_noncebytes=j.Vg)(),Q._crypto_stream_chacha20_messagebytes_max=()=>(Q._crypto_stream_chacha20_messagebytes_max=j.Wg)(),Q._crypto_stream_chacha20_ietf_keybytes=()=>(Q._crypto_stream_chacha20_ietf_keybytes=j.Xg)(),Q._crypto_stream_chacha20_ietf_noncebytes=()=>(Q._crypto_stream_chacha20_ietf_noncebytes=j.Yg)(),Q._crypto_stream_chacha20_ietf_messagebytes_max=()=>(Q._crypto_stream_chacha20_ietf_messagebytes_max=j.Zg)(),Q._crypto_stream_chacha20=(A,I,g,C,B)=>(Q._crypto_stream_chacha20=j._g)(A,I,g,C,B),Q._crypto_stream_chacha20_xor_ic=(A,I,g,C,B,i,o,E)=>(Q._crypto_stream_chacha20_xor_ic=j.$g)(A,I,g,C,B,i,o,E),Q._crypto_stream_chacha20_xor=(A,I,g,C,B,i)=>(Q._crypto_stream_chacha20_xor=j.ah)(A,I,g,C,B,i),Q._crypto_stream_chacha20_ietf=(A,I,g,C,B)=>(Q._crypto_stream_chacha20_ietf=j.bh)(A,I,g,C,B),Q._crypto_stream_chacha20_ietf_xor_ic=(A,I,g,C,B,i,o)=>(Q._crypto_stream_chacha20_ietf_xor_ic=j.ch)(A,I,g,C,B,i,o),Q._crypto_stream_chacha20_ietf_xor=(A,I,g,C,B,i)=>(Q._crypto_stream_chacha20_ietf_xor=j.dh)(A,I,g,C,B,i),Q._crypto_stream_chacha20_ietf_keygen=A=>(Q._crypto_stream_chacha20_ietf_keygen=j.eh)(A),Q._crypto_stream_chacha20_keygen=A=>(Q._crypto_stream_chacha20_keygen=j.fh)(A),Q._crypto_stream_keybytes=()=>(Q._crypto_stream_keybytes=j.gh)(),Q._crypto_stream_noncebytes=()=>(Q._crypto_stream_noncebytes=j.hh)(),Q._crypto_stream_messagebytes_max=()=>(Q._crypto_stream_messagebytes_max=j.ih)(),Q._crypto_stream_primitive=()=>(Q._crypto_stream_primitive=j.jh)(),Q._crypto_stream=(A,I,g,C,B)=>(Q._crypto_stream=j.kh)(A,I,g,C,B),Q._crypto_stream_xor=(A,I,g,C,B,i)=>(Q._crypto_stream_xor=j.lh)(A,I,g,C,B,i),Q._crypto_stream_keygen=A=>(Q._crypto_stream_keygen=j.mh)(A),Q._crypto_stream_salsa20_keybytes=()=>(Q._crypto_stream_salsa20_keybytes=j.nh)(),Q._crypto_stream_salsa20_noncebytes=()=>(Q._crypto_stream_salsa20_noncebytes=j.oh)(),Q._crypto_stream_salsa20_messagebytes_max=()=>(Q._crypto_stream_salsa20_messagebytes_max=j.ph)(),Q._crypto_stream_salsa20=(A,I,g,C,B)=>(Q._crypto_stream_salsa20=j.qh)(A,I,g,C,B),Q._crypto_stream_salsa20_xor_ic=(A,I,g,C,B,i,o,E)=>(Q._crypto_stream_salsa20_xor_ic=j.rh)(A,I,g,C,B,i,o,E),Q._crypto_stream_salsa20_xor=(A,I,g,C,B,i)=>(Q._crypto_stream_salsa20_xor=j.sh)(A,I,g,C,B,i),Q._crypto_stream_salsa20_keygen=A=>(Q._crypto_stream_salsa20_keygen=j.th)(A),Q._crypto_stream_xsalsa20=(A,I,g,C,B)=>(Q._crypto_stream_xsalsa20=j.uh)(A,I,g,C,B),Q._crypto_stream_xsalsa20_xor_ic=(A,I,g,C,B,i,o,E)=>(Q._crypto_stream_xsalsa20_xor_ic=j.vh)(A,I,g,C,B,i,o,E),Q._crypto_stream_xsalsa20_xor=(A,I,g,C,B,i)=>(Q._crypto_stream_xsalsa20_xor=j.wh)(A,I,g,C,B,i),Q._crypto_stream_xsalsa20_keybytes=()=>(Q._crypto_stream_xsalsa20_keybytes=j.xh)(),Q._crypto_stream_xsalsa20_noncebytes=()=>(Q._crypto_stream_xsalsa20_noncebytes=j.yh)(),Q._crypto_stream_xsalsa20_messagebytes_max=()=>(Q._crypto_stream_xsalsa20_messagebytes_max=j.zh)(),Q._crypto_stream_xsalsa20_keygen=A=>(Q._crypto_stream_xsalsa20_keygen=j.Ah)(A),Q._crypto_verify_16_bytes=()=>(Q._crypto_verify_16_bytes=j.Bh)(),Q._crypto_verify_32_bytes=()=>(Q._crypto_verify_32_bytes=j.Ch)(),Q._crypto_verify_64_bytes=()=>(Q._crypto_verify_64_bytes=j.Dh)(),Q._crypto_verify_16=(A,I)=>(Q._crypto_verify_16=j.Eh)(A,I),Q._crypto_verify_32=(A,I)=>(Q._crypto_verify_32=j.Fh)(A,I),Q._crypto_verify_64=(A,I)=>(Q._crypto_verify_64=j.Gh)(A,I),Q._randombytes_implementation_name=()=>(Q._randombytes_implementation_name=j.Hh)(),Q._randombytes_random=()=>(Q._randombytes_random=j.Ih)(),Q._randombytes_stir=()=>(Q._randombytes_stir=j.Jh)(),Q._randombytes_uniform=A=>(Q._randombytes_uniform=j.Kh)(A),Q._randombytes_buf=(A,I)=>(Q._randombytes_buf=j.Lh)(A,I),Q._randombytes_buf_deterministic=(A,I,g)=>(Q._randombytes_buf_deterministic=j.Mh)(A,I,g),Q._randombytes_seedbytes=()=>(Q._randombytes_seedbytes=j.Nh)(),Q._randombytes_close=()=>(Q._randombytes_close=j.Oh)(),Q._randombytes=(A,I,g)=>(Q._randombytes=j.Ph)(A,I,g),Q._sodium_bin2hex=(A,I,g,C)=>(Q._sodium_bin2hex=j.Qh)(A,I,g,C),Q._sodium_hex2bin=(A,I,g,C,B,i,o)=>(Q._sodium_hex2bin=j.Rh)(A,I,g,C,B,i,o),Q._sodium_base64_encoded_len=(A,I)=>(Q._sodium_base64_encoded_len=j.Sh)(A,I),Q._sodium_bin2base64=(A,I,g,C,B)=>(Q._sodium_bin2base64=j.Th)(A,I,g,C,B),Q._sodium_base642bin=(A,I,g,C,B,i,o,E)=>(Q._sodium_base642bin=j.Uh)(A,I,g,C,B,i,o,E),Q._sodium_init=()=>(Q._sodium_init=j.Vh)(),Q._sodium_pad=(A,I,g,C,B)=>(Q._sodium_pad=j.Wh)(A,I,g,C,B),Q._sodium_unpad=(A,I,g,C)=>(Q._sodium_unpad=j.Xh)(A,I,g,C),Q._sodium_version_string=()=>(Q._sodium_version_string=j.Yh)(),Q._sodium_library_version_major=()=>(Q._sodium_library_version_major=j.Zh)(),Q._sodium_library_version_minor=()=>(Q._sodium_library_version_minor=j._h)(),Q._sodium_library_minimal=()=>(Q._sodium_library_minimal=j.$h)(),Q._crypto_box_curve25519xchacha20poly1305_seed_keypair=(A,I,g)=>(Q._crypto_box_curve25519xchacha20poly1305_seed_keypair=j.ai)(A,I,g),Q._crypto_box_curve25519xchacha20poly1305_keypair=(A,I)=>(Q._crypto_box_curve25519xchacha20poly1305_keypair=j.bi)(A,I),Q._crypto_box_curve25519xchacha20poly1305_beforenm=(A,I,g)=>(Q._crypto_box_curve25519xchacha20poly1305_beforenm=j.ci)(A,I,g),Q._crypto_box_curve25519xchacha20poly1305_detached_afternm=(A,I,g,C,B,i,o)=>(Q._crypto_box_curve25519xchacha20poly1305_detached_afternm=j.di)(A,I,g,C,B,i,o),Q._crypto_box_curve25519xchacha20poly1305_detached=(A,I,g,C,B,i,o,E)=>(Q._crypto_box_curve25519xchacha20poly1305_detached=j.ei)(A,I,g,C,B,i,o,E),Q._crypto_box_curve25519xchacha20poly1305_easy_afternm=(A,I,g,C,B,i)=>(Q._crypto_box_curve25519xchacha20poly1305_easy_afternm=j.fi)(A,I,g,C,B,i),Q._crypto_box_curve25519xchacha20poly1305_easy=(A,I,g,C,B,i,o)=>(Q._crypto_box_curve25519xchacha20poly1305_easy=j.gi)(A,I,g,C,B,i,o),Q._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=(A,I,g,C,B,i,o)=>(Q._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=j.hi)(A,I,g,C,B,i,o),Q._crypto_box_curve25519xchacha20poly1305_open_detached=(A,I,g,C,B,i,o,E)=>(Q._crypto_box_curve25519xchacha20poly1305_open_detached=j.ii)(A,I,g,C,B,i,o,E),Q._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=(A,I,g,C,B,i)=>(Q._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=j.ji)(A,I,g,C,B,i),Q._crypto_box_curve25519xchacha20poly1305_open_easy=(A,I,g,C,B,i,o)=>(Q._crypto_box_curve25519xchacha20poly1305_open_easy=j.ki)(A,I,g,C,B,i,o),Q._crypto_box_curve25519xchacha20poly1305_seedbytes=()=>(Q._crypto_box_curve25519xchacha20poly1305_seedbytes=j.li)(),Q._crypto_box_curve25519xchacha20poly1305_publickeybytes=()=>(Q._crypto_box_curve25519xchacha20poly1305_publickeybytes=j.mi)(),Q._crypto_box_curve25519xchacha20poly1305_secretkeybytes=()=>(Q._crypto_box_curve25519xchacha20poly1305_secretkeybytes=j.ni)(),Q._crypto_box_curve25519xchacha20poly1305_beforenmbytes=()=>(Q._crypto_box_curve25519xchacha20poly1305_beforenmbytes=j.oi)(),Q._crypto_box_curve25519xchacha20poly1305_noncebytes=()=>(Q._crypto_box_curve25519xchacha20poly1305_noncebytes=j.pi)(),Q._crypto_box_curve25519xchacha20poly1305_macbytes=()=>(Q._crypto_box_curve25519xchacha20poly1305_macbytes=j.qi)(),Q._crypto_box_curve25519xchacha20poly1305_messagebytes_max=()=>(Q._crypto_box_curve25519xchacha20poly1305_messagebytes_max=j.ri)(),Q._crypto_box_curve25519xchacha20poly1305_seal=(A,I,g,C,B)=>(Q._crypto_box_curve25519xchacha20poly1305_seal=j.si)(A,I,g,C,B),Q._crypto_box_curve25519xchacha20poly1305_seal_open=(A,I,g,C,B,i)=>(Q._crypto_box_curve25519xchacha20poly1305_seal_open=j.ti)(A,I,g,C,B,i),Q._crypto_box_curve25519xchacha20poly1305_sealbytes=()=>(Q._crypto_box_curve25519xchacha20poly1305_sealbytes=j.ui)(),Q._crypto_core_ed25519_is_valid_point=A=>(Q._crypto_core_ed25519_is_valid_point=j.vi)(A),Q._crypto_core_ed25519_add=(A,I,g)=>(Q._crypto_core_ed25519_add=j.wi)(A,I,g),Q._crypto_core_ed25519_sub=(A,I,g)=>(Q._crypto_core_ed25519_sub=j.xi)(A,I,g),Q._crypto_core_ed25519_from_uniform=(A,I)=>(Q._crypto_core_ed25519_from_uniform=j.yi)(A,I),Q._crypto_core_ed25519_random=A=>(Q._crypto_core_ed25519_random=j.zi)(A),Q._crypto_core_ed25519_scalar_random=A=>(Q._crypto_core_ed25519_scalar_random=j.Ai)(A),Q._crypto_core_ed25519_scalar_invert=(A,I)=>(Q._crypto_core_ed25519_scalar_invert=j.Bi)(A,I),Q._crypto_core_ed25519_scalar_negate=(A,I)=>(Q._crypto_core_ed25519_scalar_negate=j.Ci)(A,I),Q._crypto_core_ed25519_scalar_complement=(A,I)=>(Q._crypto_core_ed25519_scalar_complement=j.Di)(A,I),Q._crypto_core_ed25519_scalar_add=(A,I,g)=>(Q._crypto_core_ed25519_scalar_add=j.Ei)(A,I,g),Q._crypto_core_ed25519_scalar_reduce=(A,I)=>(Q._crypto_core_ed25519_scalar_reduce=j.Fi)(A,I),Q._crypto_core_ed25519_scalar_sub=(A,I,g)=>(Q._crypto_core_ed25519_scalar_sub=j.Gi)(A,I,g),Q._crypto_core_ed25519_scalar_mul=(A,I,g)=>(Q._crypto_core_ed25519_scalar_mul=j.Hi)(A,I,g),Q._crypto_core_ed25519_bytes=()=>(Q._crypto_core_ed25519_bytes=j.Ii)(),Q._crypto_core_ed25519_nonreducedscalarbytes=()=>(Q._crypto_core_ed25519_nonreducedscalarbytes=j.Ji)(),Q._crypto_core_ed25519_uniformbytes=()=>(Q._crypto_core_ed25519_uniformbytes=j.Ki)(),Q._crypto_core_ed25519_hashbytes=()=>(Q._crypto_core_ed25519_hashbytes=j.Li)(),Q._crypto_core_ed25519_scalarbytes=()=>(Q._crypto_core_ed25519_scalarbytes=j.Mi)(),Q._crypto_core_ristretto255_is_valid_point=A=>(Q._crypto_core_ristretto255_is_valid_point=j.Ni)(A),Q._crypto_core_ristretto255_add=(A,I,g)=>(Q._crypto_core_ristretto255_add=j.Oi)(A,I,g),Q._crypto_core_ristretto255_sub=(A,I,g)=>(Q._crypto_core_ristretto255_sub=j.Pi)(A,I,g),Q._crypto_core_ristretto255_from_hash=(A,I)=>(Q._crypto_core_ristretto255_from_hash=j.Qi)(A,I),Q._crypto_core_ristretto255_random=A=>(Q._crypto_core_ristretto255_random=j.Ri)(A),Q._crypto_core_ristretto255_scalar_random=A=>(Q._crypto_core_ristretto255_scalar_random=j.Si)(A),Q._crypto_core_ristretto255_scalar_invert=(A,I)=>(Q._crypto_core_ristretto255_scalar_invert=j.Ti)(A,I),Q._crypto_core_ristretto255_scalar_negate=(A,I)=>(Q._crypto_core_ristretto255_scalar_negate=j.Ui)(A,I),Q._crypto_core_ristretto255_scalar_complement=(A,I)=>(Q._crypto_core_ristretto255_scalar_complement=j.Vi)(A,I),Q._crypto_core_ristretto255_scalar_add=(A,I,g)=>(Q._crypto_core_ristretto255_scalar_add=j.Wi)(A,I,g),Q._crypto_core_ristretto255_scalar_sub=(A,I,g)=>(Q._crypto_core_ristretto255_scalar_sub=j.Xi)(A,I,g),Q._crypto_core_ristretto255_scalar_mul=(A,I,g)=>(Q._crypto_core_ristretto255_scalar_mul=j.Yi)(A,I,g),Q._crypto_core_ristretto255_scalar_reduce=(A,I)=>(Q._crypto_core_ristretto255_scalar_reduce=j.Zi)(A,I),Q._crypto_core_ristretto255_bytes=()=>(Q._crypto_core_ristretto255_bytes=j._i)(),Q._crypto_core_ristretto255_nonreducedscalarbytes=()=>(Q._crypto_core_ristretto255_nonreducedscalarbytes=j.$i)(),Q._crypto_core_ristretto255_hashbytes=()=>(Q._crypto_core_ristretto255_hashbytes=j.aj)(),Q._crypto_core_ristretto255_scalarbytes=()=>(Q._crypto_core_ristretto255_scalarbytes=j.bj)(),Q._crypto_pwhash_scryptsalsa208sha256_ll=(A,I,g,C,B,i,o,E,a,_)=>(Q._crypto_pwhash_scryptsalsa208sha256_ll=j.cj)(A,I,g,C,B,i,o,E,a,_),Q._crypto_pwhash_scryptsalsa208sha256_bytes_min=()=>(Q._crypto_pwhash_scryptsalsa208sha256_bytes_min=j.dj)(),Q._crypto_pwhash_scryptsalsa208sha256_bytes_max=()=>(Q._crypto_pwhash_scryptsalsa208sha256_bytes_max=j.ej)(),Q._crypto_pwhash_scryptsalsa208sha256_passwd_min=()=>(Q._crypto_pwhash_scryptsalsa208sha256_passwd_min=j.fj)(),Q._crypto_pwhash_scryptsalsa208sha256_passwd_max=()=>(Q._crypto_pwhash_scryptsalsa208sha256_passwd_max=j.gj)(),Q._crypto_pwhash_scryptsalsa208sha256_saltbytes=()=>(Q._crypto_pwhash_scryptsalsa208sha256_saltbytes=j.hj)(),Q._crypto_pwhash_scryptsalsa208sha256_strbytes=()=>(Q._crypto_pwhash_scryptsalsa208sha256_strbytes=j.ij)(),Q._crypto_pwhash_scryptsalsa208sha256_strprefix=()=>(Q._crypto_pwhash_scryptsalsa208sha256_strprefix=j.jj)(),Q._crypto_pwhash_scryptsalsa208sha256_opslimit_min=()=>(Q._crypto_pwhash_scryptsalsa208sha256_opslimit_min=j.kj)(),Q._crypto_pwhash_scryptsalsa208sha256_opslimit_max=()=>(Q._crypto_pwhash_scryptsalsa208sha256_opslimit_max=j.lj)(),Q._crypto_pwhash_scryptsalsa208sha256_memlimit_min=()=>(Q._crypto_pwhash_scryptsalsa208sha256_memlimit_min=j.mj)(),Q._crypto_pwhash_scryptsalsa208sha256_memlimit_max=()=>(Q._crypto_pwhash_scryptsalsa208sha256_memlimit_max=j.nj)(),Q._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=()=>(Q._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=j.oj)(),Q._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=()=>(Q._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=j.pj)(),Q._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=()=>(Q._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=j.qj)(),Q._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=()=>(Q._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=j.rj)(),Q._crypto_pwhash_scryptsalsa208sha256=(A,I,g,C,B,i,o,E,a,_)=>(Q._crypto_pwhash_scryptsalsa208sha256=j.sj)(A,I,g,C,B,i,o,E,a,_),Q._crypto_pwhash_scryptsalsa208sha256_str=(A,I,g,C,B,i,o)=>(Q._crypto_pwhash_scryptsalsa208sha256_str=j.tj)(A,I,g,C,B,i,o),Q._crypto_pwhash_scryptsalsa208sha256_str_verify=(A,I,g,C)=>(Q._crypto_pwhash_scryptsalsa208sha256_str_verify=j.uj)(A,I,g,C),Q._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=(A,I,g,C)=>(Q._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=j.vj)(A,I,g,C),Q._crypto_scalarmult_ed25519=(A,I,g)=>(Q._crypto_scalarmult_ed25519=j.wj)(A,I,g),Q._crypto_scalarmult_ed25519_noclamp=(A,I,g)=>(Q._crypto_scalarmult_ed25519_noclamp=j.xj)(A,I,g),Q._crypto_scalarmult_ed25519_base=(A,I)=>(Q._crypto_scalarmult_ed25519_base=j.yj)(A,I),Q._crypto_scalarmult_ed25519_base_noclamp=(A,I)=>(Q._crypto_scalarmult_ed25519_base_noclamp=j.zj)(A,I),Q._crypto_scalarmult_ed25519_bytes=()=>(Q._crypto_scalarmult_ed25519_bytes=j.Aj)(),Q._crypto_scalarmult_ed25519_scalarbytes=()=>(Q._crypto_scalarmult_ed25519_scalarbytes=j.Bj)(),Q._crypto_scalarmult_ristretto255=(A,I,g)=>(Q._crypto_scalarmult_ristretto255=j.Cj)(A,I,g),Q._crypto_scalarmult_ristretto255_base=(A,I)=>(Q._crypto_scalarmult_ristretto255_base=j.Dj)(A,I),Q._crypto_scalarmult_ristretto255_bytes=()=>(Q._crypto_scalarmult_ristretto255_bytes=j.Ej)(),Q._crypto_scalarmult_ristretto255_scalarbytes=()=>(Q._crypto_scalarmult_ristretto255_scalarbytes=j.Fj)(),Q._crypto_secretbox_xchacha20poly1305_detached=(A,I,g,C,B,i,o)=>(Q._crypto_secretbox_xchacha20poly1305_detached=j.Gj)(A,I,g,C,B,i,o),Q._crypto_secretbox_xchacha20poly1305_easy=(A,I,g,C,B,i)=>(Q._crypto_secretbox_xchacha20poly1305_easy=j.Hj)(A,I,g,C,B,i),Q._crypto_secretbox_xchacha20poly1305_open_detached=(A,I,g,C,B,i,o)=>(Q._crypto_secretbox_xchacha20poly1305_open_detached=j.Ij)(A,I,g,C,B,i,o),Q._crypto_secretbox_xchacha20poly1305_open_easy=(A,I,g,C,B,i)=>(Q._crypto_secretbox_xchacha20poly1305_open_easy=j.Jj)(A,I,g,C,B,i),Q._crypto_secretbox_xchacha20poly1305_keybytes=()=>(Q._crypto_secretbox_xchacha20poly1305_keybytes=j.Kj)(),Q._crypto_secretbox_xchacha20poly1305_noncebytes=()=>(Q._crypto_secretbox_xchacha20poly1305_noncebytes=j.Lj)(),Q._crypto_secretbox_xchacha20poly1305_macbytes=()=>(Q._crypto_secretbox_xchacha20poly1305_macbytes=j.Mj)(),Q._crypto_secretbox_xchacha20poly1305_messagebytes_max=()=>(Q._crypto_secretbox_xchacha20poly1305_messagebytes_max=j.Nj)(),Q._crypto_shorthash_siphashx24_bytes=()=>(Q._crypto_shorthash_siphashx24_bytes=j.Oj)(),Q._crypto_shorthash_siphashx24_keybytes=()=>(Q._crypto_shorthash_siphashx24_keybytes=j.Pj)(),Q._crypto_shorthash_siphashx24=(A,I,g,C,B)=>(Q._crypto_shorthash_siphashx24=j.Qj)(A,I,g,C,B),Q._crypto_stream_salsa2012=(A,I,g,C,B)=>(Q._crypto_stream_salsa2012=j.Rj)(A,I,g,C,B),Q._crypto_stream_salsa2012_xor=(A,I,g,C,B,i)=>(Q._crypto_stream_salsa2012_xor=j.Sj)(A,I,g,C,B,i),Q._crypto_stream_salsa2012_keybytes=()=>(Q._crypto_stream_salsa2012_keybytes=j.Tj)(),Q._crypto_stream_salsa2012_noncebytes=()=>(Q._crypto_stream_salsa2012_noncebytes=j.Uj)(),Q._crypto_stream_salsa2012_messagebytes_max=()=>(Q._crypto_stream_salsa2012_messagebytes_max=j.Vj)(),Q._crypto_stream_salsa2012_keygen=A=>(Q._crypto_stream_salsa2012_keygen=j.Wj)(A),Q._crypto_stream_salsa208=(A,I,g,C,B)=>(Q._crypto_stream_salsa208=j.Xj)(A,I,g,C,B),Q._crypto_stream_salsa208_xor=(A,I,g,C,B,i)=>(Q._crypto_stream_salsa208_xor=j.Yj)(A,I,g,C,B,i),Q._crypto_stream_salsa208_keybytes=()=>(Q._crypto_stream_salsa208_keybytes=j.Zj)(),Q._crypto_stream_salsa208_noncebytes=()=>(Q._crypto_stream_salsa208_noncebytes=j._j)(),Q._crypto_stream_salsa208_messagebytes_max=()=>(Q._crypto_stream_salsa208_messagebytes_max=j.$j)(),Q._crypto_stream_salsa208_keygen=A=>(Q._crypto_stream_salsa208_keygen=j.ak)(A),Q._crypto_stream_xchacha20_keybytes=()=>(Q._crypto_stream_xchacha20_keybytes=j.bk)(),Q._crypto_stream_xchacha20_noncebytes=()=>(Q._crypto_stream_xchacha20_noncebytes=j.ck)(),Q._crypto_stream_xchacha20_messagebytes_max=()=>(Q._crypto_stream_xchacha20_messagebytes_max=j.dk)(),Q._crypto_stream_xchacha20=(A,I,g,C,B)=>(Q._crypto_stream_xchacha20=j.ek)(A,I,g,C,B),Q._crypto_stream_xchacha20_xor_ic=(A,I,g,C,B,i,o,E)=>(Q._crypto_stream_xchacha20_xor_ic=j.fk)(A,I,g,C,B,i,o,E),Q._crypto_stream_xchacha20_xor=(A,I,g,C,B,i)=>(Q._crypto_stream_xchacha20_xor=j.gk)(A,I,g,C,B,i),Q._crypto_stream_xchacha20_keygen=A=>(Q._crypto_stream_xchacha20_keygen=j.hk)(A),Q._malloc=A=>(Q._malloc=j.ik)(A),Q._free=A=>(Q._free=j.jk)(A),Q.setValue=function(A,I,g="i8"){switch(g.endsWith("*")&&(g="*"),g){case"i1":case"i8":h[A>>0]=I;break;case"i16":p[A>>1]=I;break;case"i32":w[A>>2]=I;break;case"i64":d("to do setValue(i64) use WASM_BIGINT");case"float":n[A>>2]=I;break;case"double":k[A>>3]=I;break;case"*":f[A>>2]=I;break;default:d(`invalid type for setValue: ${g}`)}},Q.getValue=function(A,I="i8"){switch(I.endsWith("*")&&(I="*"),I){case"i1":case"i8":return h[A>>0];case"i16":return p[A>>1];case"i32":return w[A>>2];case"i64":d("to do getValue(i64) use WASM_BIGINT");case"float":return n[A>>2];case"double":return k[A>>3];case"*":return f[A>>2];default:d(`invalid type for getValue: ${I}`)}},Q.UTF8ToString=L,Y=function A(){u||X(),u||(Y=A)},Q.preInit)for("function"==typeof Q.preInit&&(Q.preInit=[Q.preInit]);Q.preInit.length>0;)Q.preInit.pop()();X()}))};var g,B,Q=void 0!==Q?Q:{},i=Object.assign({},Q),o="object"==typeof window,E="function"==typeof importScripts,a= true&&"object"==typeof ({"env":{"NODE_ENV":"production"}}).versions&&"string"==typeof ({"env":{"NODE_ENV":"production"}}).versions.node,_="";if(a){var c=__webpack_require__(/*! fs */ "?0b9d"),t=__webpack_require__(/*! path */ "?5b1a");_=E?t.dirname(_)+"/":__dirname+"/",g=(A,I)=>(A=function(A){return A.startsWith("file://")}(A)?new URL(A):t.normalize(A),c.readFileSync(A,I?void 0:"utf8")),B=A=>{var I=g(A,!0);return I.buffer||(I=new Uint8Array(I)),I},!Q.thisProgram&&({"env":{"NODE_ENV":"production"}}).argv.length>1&&({"env":{"NODE_ENV":"production"}}).argv[1].replace(/\\/g,"/"),({"env":{"NODE_ENV":"production"}}).argv.slice(2), true&&(module.exports=Q),Q.inspect=()=>"[Emscripten Module object]"}else(o||E)&&(E?_=self.location.href:"undefined"!=typeof document&&document.currentScript&&(_=document.currentScript.src),_=0!==_.indexOf("blob:")?_.substr(0,_.replace(/[?#].*/,"").lastIndexOf("/")+1):"",g=A=>{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.send(null),I.responseText},E&&(B=A=>{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)}));Q.print;var r,e,y=Q.printErr||void 0;Object.assign(Q,i),i=null,Q.arguments&&Q.arguments,Q.thisProgram&&Q.thisProgram,Q.quit&&Q.quit,Q.wasmBinary&&(r=Q.wasmBinary),Q.noExitRuntime,"object"!=typeof WebAssembly&&H("no native wasm support detected");var s,h,D,p,w,f,n,k=!1;function F(){var A=e.buffer;Q.HEAP8=s=new Int8Array(A),Q.HEAP16=D=new Int16Array(A),Q.HEAPU8=h=new Uint8Array(A),Q.HEAPU16=new Uint16Array(A),Q.HEAP32=p=new Int32Array(A),Q.HEAPU32=w=new Uint32Array(A),Q.HEAPF32=f=new Float32Array(A),Q.HEAPF64=n=new Float64Array(A)}var N=[],S=[],G=[],M=0,b=null,K=null;function H(A){throw Q.onAbort&&Q.onAbort(A),y(A="Aborted("+A+")"),k=!0,A+=". Build with -sASSERTIONS for more info.",new WebAssembly.RuntimeError(A)}var Y,d,J="data:application/octet-stream;base64,";function U(A){return A.startsWith(J)}U(Y="data:application/octet-stream;base64,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BSAUfnwiIkKAgIAQfCIjQhqHfCIkQoCAgAh8IiVCGYd8IhIgEkKAgIAQfCITQoCAgOAPg30+AhggACALIBd+IAMgCH58IAkgDX58IC1BE2ysIg8gGH58IAogL0ETbKwiEn58IBkgH358IAYgDn58IAwgFH58IAQgB358IAUgFX58IAkgC34gAyAcfnwgLEETbKwiISAdfnwgCiAPfnwgEiAefnwgBiAffnwgDiAafnwgByAMfnwgBCAbfnwgBSAIfnwgKkETbKwgGH4gAyAJfnwgCiAhfnwgDyAZfnwgBiASfnwgFCAffnwgByAOfnwgDCAVfnwgBCAIfnwgBSAXfnwiIUKAgIAQfCImQhqHfCInQoCAgAh8IihCGYd8Ig8gD0KAgIAQfCIpQoCAgOAPg30+AgggACAGIAt+IAMgHn58IA0gGn58IAcgEH58IBEgG358IAggFn58IBwgIH58IAkgM6wiD358IAQgHX58IAUgCn58IBNCGod8IhMgE0KAgIAIfCITQoCAgPAPg30+AhwgACAIIAt+IAMgG358IA0gHH58IAkgEH58IBIgHX58IAogH358IA4gHn58IAYgDH58IAQgGn58IAUgB358IClCGod8IgQgBEKAgIAIfCIEQoCAgPAPg30+AgwgACALIBl+IAMgCn58IAYgDX58IBAgFH58IAcgEX58IBUgFn58IAggIH58IA8gF358IAkgNawiDH58IAUgGH58IBNCGYd8IgUgBUKAgIAQfCIFQoCAgOAPg30+AiAgACAkICVCgICA8A+DfSAiICNCgICAYIN9IARCGYd8IgRCgICAEHwiDkIaiHw+AhQgACAEIA5CgICA4A+DfT4CECAAIAogC34gAyAdfnwgDSAefnwgBiAQfnwgESAafnwgByAWfnwgGyAgfnwgCCAPfnwgDCAcfnwgCSACrH58IAVCGod8IgMgA0KAgIAIfCIDQoCAgPAPg30+AiQgACAnIChCgICA8A+DfSAhICZCgICAYIN9IANCGYdCE358IgNCgICAEHwiBkIaiHw+AgQgACADIAZCgICA4A+DfT4CAAvpHQI2fgV/IAAgAjMAACACMQACQhCGQoCA/ACDhCIFIAEoABciOkEFdkH///8Aca0iA34gATMAFSABMQAXQhCGQoCA/ACDhCIEIAIoAAIiOUEFdkH///8Aca0i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SQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAvyAgICfwF+AkAgAkUNACAAIAE6AAAgACACaiIDQQFrIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0EDayABOgAAIANBAmsgAToAACACQQdJDQAgACABOgADIANBBGsgAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkEEayABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBCGsgATYCACACQQxrIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQRBrIAE2AgAgAkEUayABNgIAIAJBGGsgATYCACACQRxrIAE2AgAgBCADQQRxQRhyIgRrIgJBIEkNACABrUKBgICAEH4hBSADIARqIQEDQCABIAU3AxggASAFNwMQIAEgBTcDCCABIAU3AwAgAUEgaiEBIAJBIGsiAkEfSw0ACwsgAAsEAEEQCxgBAX9B2KkCKAIAIgAEQCAAERcACxACAAufBAETfyABKAIoIQIgASgCBCEDIAEoAiwhBCABKAIIIQUgASgCMCEGIAEoAgwhByABKAI0IQggASgCECEJIAEoAjghCiABKAIUIQsgASgCPCEMIAEoAhghDSABQUBrIg4oAgAhDyABKAIcIRAgASgCRCER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ADcCECADQQJ0QfSnAmohAQJAAkACQEHIpQIoAgAiBEEBIAN0IgdxRQRAQcilAiAEIAdyNgIAIAEgAjYCACACIAE2AhgMAQsgAEEZIANBAXZrQQAgA0EfRxt0IQMgASgCACEBA0AgASIEKAIEQXhxIABGDQIgA0EddiEBIANBAXQhAyAEIAFBBHFqIgdBEGooAgAiAQ0ACyAHIAI2AhAgAiAENgIYCyACIAI2AgwgAiACNgIIDAELIAQoAggiACACNgIMIAQgAjYCCCACQQA2AhggAiAENgIMIAIgADYCCAtB5KUCQeSlAigCAEEBayIAQX8gABs2AgALCwUAQcAAC6EGAgd+BH8jAEHABWsiDCQAAkAgAlANACAAIAApA0giAyACQgOGfCIENwNIIABBQGsiCiAKKQMAIAMgBFatfCACQj2IfDcDAEKAASADQgOIQv8AgyIEfSIIIAJYBEBCACEDIARC/wCFQgNaBEAgCEL8AYMhByAAQdAAaiEKA0AgCiADIAR8p2ogASADp2otAAA6AAAgCiADQgGEIgkgBHynaiABIAmnai0AADoAACAKIANCAoQiCSAEfKdqIAEgCadqLQAAOgAAIAogA0IDhCIJIAR8p2ogASAJp2otAAA6AAAgA0IEfCEDIAVCBHwiBSAHUg0ACwsgCEIDgyIFQgBSBEADQCAAIAMgBHynaiABIAOnai0AADoAUCADQgF8IQMgBkIBfCIGIAVSDQALCyAAIABB0ABqIAwgDEGABWoiChBeIAEgCKdqIQEgAiAIfSICQv8AVgRAA0AgACABIAwgChBeIAFBgAFqIQEgAkKAAX0iAkL/AFYNAAsLAkAgAlANACACQgODIQRCACEGQgAhAyACQgRaBEAgAkJ8gyEFIABB0ABqIQpCACECA0AgCiADpyILaiABIAtqLQAAOgAAIAogC0EBciINaiABIA1qLQAAOgAAIAogC0ECciINaiABIA1qLQAAOgAAIAogC0EDciILaiABIAtqLQAAOgAAIANCBHwhAyACQgR8IgIgBVINAAsLIARQDQADQCAAIAOnIgpqIAEgCmotAAA6AFAgA0IBfCEDIAZCAXwiBiAEUg0ACwsgDEHABRAIDAELQgAhAyACQgRaBEAgAkJ8gyEIIABB0ABqIQoDQCAKIAMgBHynaiABIAOnai0AADoAACAKIANCAYQiByAEfKdqIAEgB6dqLQAAOgAAIAogA0IChCIHIAR8p2ogASAHp2otAAA6AAAgCiADQgOEIgcgBHynaiABIAenai0AADoAACADQgR8IQMgBUIEfCIFIAhSDQALCyACQgODIgJQDQADQCAAIAMgBHynaiABIAOnai0AADoAUCADQgF8IQMgBkIBfCIGIAJSDQALCyAMQcAFaiQAQQALBABBfwvUAQIFfwJ+An8gAkIAUgRAIABB4AFqIQcgAEHgAGohAyAAKADgAiEEA0AgAyAEaiEGQYACIARrIgWtIgggAloEQCAGIAEgAqciARALGiAAIAAoAOACIAFqNgDgAkEADAMLIAYgASAFEAsaIAAgACgA4AIgBWo2AOACIAAgACkAQCIJQoABfDcAQCAAIAApAEggCUL/flatfDcASCAAIAMQViADIAdBgAEQCxogACAAKADgAkGAAWsiBDYA4AIgASAFaiEBIAIgCH0iAkIAUg0ACwtBAAsLhQgBIH8jAEEwayICJAAgACABEAUgAEHQAGogAUEoahAFIABB+ABqIAFB0ABqEJIBIAEoAighAyABKAIsIQQgASgCBCEFIAEoAjAhBiABKAIIIQcgASgCNCEIIAEoAgwhCSABKAI4IQogASgCECELIAEoAjwhDCABKAIUIQ0gAUFAaygCACEOIAEoAhghDyABKAJEIRAgASgCHCERIAEoAkghEiABKAIgIRMgASgCACEUIAAgASgCTCABKAIkajYCTCAAIBIgE2o2AkggACAQIBFqNgJEIABBQGsiFiAOIA9qNgIAIAAgDCANajYCPCAAIAogC2o2AjggACAIIAlqNgI0IAAgBiAHajYCMCAAIAQgBWo2AiwgAEEoaiIBIAMgFGo2AgAgAiABEAUgACgCUCEDIAAoAgQhBCAAKAJUIQUgACgCCCEGIAAoAlghByAAKAIMIQggACgCXCEJIAAoAhAhCiAAKAJgIQsgACgCFCEMIAAoAmQhDSAAKAIYIQ4gACgCaCEPIAAoAhwhECAAKAJsIREgACgCICESIAAoAnAhEyAAKAIAIRQgACAAKAJ0IhUgACgCJCIXayIYNgJ0IAAgEyASayIZNgJwIAAgESAQayIaNgJsIAAgDyAOayIbNgJoIAAgDSAMayIcNgJkIAAgCyAKayIdNgJgIAAgCSAIayIeNgJcIAAgByAGayIfNgJYIAAgBSAEayIgNgJUIAAgAyAUayIhNgJQIAAgFSAXaiIVNgJMIAAgEiATaiISNgJIIAAgECARaiIQNgJEIBYgDiAPaiIONgIAIAAgDCANaiIMNgI8IAAgCiALaiIKNgI4IAAgCCAJaiIINgI0IAAgBiAHaiIGNgIwIAAgBCAFaiIENgIsIAEgAyAUaiIBNgIAIAIoAgAhAyACKAIEIQUgAigCCCEHIAIoAgwhCSACKAIQIQsgAigCFCENIAIoAhghDyACKAIcIREgAigCICETIAAgAigCJCAVazYCJCAAIBMgEms2AiAgACARIBBrNgIcIAAgDyAOazYCGCAAIA0gDGs2AhQgACALIAprNgIQIAAgCSAIazYCDCAAIAcgBms2AgggACAFIARrNgIEIAAgAyABazYCACAAKAJ4IQEgACgCfCEDIAAoAoABIQQgACgChAEhBSAAKAKIASEGIAAoAowBIQcgACgCkAEhCCAAKAKUASEJIAAoApgBIQogACAAKAKcASAYazYCnAEgACAKIBlrNgKYASAAIAkgGms2ApQBIAAgCCAbazYCkAEgACAHIBxrNgKMASAAIAYgHWs2AogBIAAgBSAeazYChAEgACAEIB9rNgKAASAAIAMgIGs2AnwgACABICFrNgJ4IAJBMGokAAtEAQJ/IwBBEGsiAiQAIAEEQANAIAJBADoADyAAIANqQcCfAiACQQ9qQQAQADoAACADQQFqIgMgAUcNAAsLIAJBEGokAAvdAQEEfyMAQRBrIgJBADoADwJAIAFFDQAgAUEDcSEEIAFBBE8EQCABQXxxIQVBACEBA0AgAiAAIANqLQAAIAItAA9yOgAPIAIgACADQQFyai0AACACLQAPcjoADyACIAAgA0ECcmotAAAgAi0AD3I6AA8gAiAAIANBA3JqLQAAIAItAA9yOgAPIANBBGohAyABQQRqIgEgBUcNAAsLIARFDQBBACEBA0AgAiAAIANqLQAAIAItAA9yOgAPIANBAWohAyABQQFqIgEgBEcNAAsLIAItAA9BAWtBCHZBAXELCgAgACABIAIQFwuOBQERfwJ/IANFBEBBstqIywchBkHuyIGZAyEHQeXwwYsGIQRB9MqB2QYMAQsgAygACCEGIAMoAAQhByADKAAAIQQgAygADAshDyABKAAMIQUgASgACCEM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IANCBHwhAyAFQgR8IgUgB1INAAsLIAhCA4MiBUIAUgRAA0AgACADIAR8p2ogASADp2otAAA6ACggA0IBfCEDIAZCAXwiBiAFUg0ACwsgACAAQShqIAwgDEGAAmoiChBhIAEgCKdqIQEgAiAIfSICQj9WBEADQCAAIAEgDCAKEGEgAUFAayEBIAJCQHwiAkI/Vg0ACwsCQCACUA0AIAJCA4MhBEIAIQZCACEDIAJCBFoEQCACQnyDIQUgAEEoaiEKQgAhAgNAIAogA6ciC2ogASALai0AADoAACAKIAtBAXIiDWogASANai0AADoAACAKIAtBAnIiDWogASANai0AADoAACAKIAtBA3IiC2ogASALai0AADoAACADQgR8IQMgAkIEfCICIAVSDQALCyAEUA0AA0AgACADpyIKaiABIApqLQAAOgAoIANCAXwhAyAGQgF8IgYgBFINAAsLIAxBoAIQCAwBC0IAIQMgAkIEWgRAIAJCfIMhCCAAQShqIQoDQCAKIAMgBHynaiABIAOnai0AADoAACAKIANCAYQiByAEfKdqIAEgB6dqLQAAOgAAIAogA0IChCIHIAR8p2ogASAHp2otAAA6AAAgCiADQgOEIgcgBHynaiABIAenai0AADoAACADQgR8IQMgBUIEfCIFIAhSDQALCyACQgODIgJQDQADQCAAIAMgBHynaiABIAOnai0AADoAKCADQgF8IQMgBkIBfCIGIAJSDQALCyAMQaACaiQAQQALBABBGAvIBAECfyMAQRBrIgMkACADQQA6AA9BfyEEIAAgASACQZiXAigCABEDAEUEQCADIAAtAAAgAy0AD3I6AA8gAyAALQABIAMtAA9yOgAPIAMgAC0AAiADLQAPcjoADyADIAAtAAMgAy0AD3I6AA8gAyAALQAEIAMtAA9yOgAPIAMgAC0ABSADLQAPcjoADyADIAAtAAYgAy0AD3I6AA8gAyAALQAHIAMtAA9yOgAPIAMgAC0ACCADLQAPcjoADyADIAAtAAkgAy0AD3I6AA8gAyAALQAKIAMtAA9yOgAPIAMgAC0ACyADLQAPcjoADyADIAAtAAwgAy0AD3I6AA8gAyAALQANIAMtAA9yOgAPIAMgAC0ADiADLQAPcjoADyADIAAtAA8gAy0AD3I6AA8gAyAALQAQIAMtAA9yOgAPIAMgAC0AESAD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ZCAAIAcgByAQcyACcXM2AmAgACAGIAYgD3MgAnFzNgJcIAAgBSAFIA5zIAJxczYCWCAAIAQgBCANcyACcXM2AlQgACADIAMgDHMgAnFzNgJQIAAoAnghAyABKAJ4IQwgACgCfCEEIAEoAnwhDSAAKAKAASEFIAEoAoABIQ4gACgChAEhBiABKAKEASEPIAAoAogBIQcgASgCiAEhECAAKAKMASEIIAEoAowBIREgACgCkAEhCSABKAKQASESIAAoApQBIQogASgClAEhEyAAKAKYASELIAEoApgBIRQgACAAKAKcASIVIAEoApwBcyACcSAVczYCnAEgACALIAsgFHMgAnFzNgKYASAAIAogCiATcyACcXM2ApQBIAAgCSAJIBJzIAJxczYCkAEgACAIIAggEXMgAnFzNgKMASAAIAcgByAQcyACcXM2AogBIAAgBiAGIA9zIAJxczYChAEgACAFIAUgDnMgAnFzNgKAASAAIAQgBCANcyACcXM2AnwgACADIAMgDHMgAnFzNgJ4C9oEAQh/IwBBwAFrIgUkACACQYEBTwRAIAAQMhogACABIAKtEBUaIAAgBRAdGkHAACECIAUhAQsgABAyGiAFQUBrQTZBgAEQDBoCQCACRQ0AIAJBBE8EQCACQfwBcSEKA0AgBUFAayIIIANqIgQgBC0AACABIANqLQAAczoAACAIIANBAXIiBGoiBiAGLQAAIAEgBGotAABzOgAAIAggA0ECciIEaiIGIAYtAAAgASAEai0AAHM6AAAgCCADQQNyIgRqIgYgBi0AACABIARqLQAAczoAACADQQRqIQMgB0EEaiIHIApHDQALCyACQQNxIgdFDQADQCAFQUBrIANqIgogCi0AACABIANqLQAAczoAACADQQFqIQMgCUEBaiIJIAdHDQALCyAAIAVBQGsiA0KAARAVGiAAQdABaiIAEDIaIANB3ABBgAEQDBoCQCACRQ0AQQAhCUEAIQMgAkEETwRAIAJB/AFxIQpBACEHA0AgBUFAayIIIANqIgQgBC0AACABIANqLQAAczoAACAIIANBAXIiBGoiBiAGLQAAIAEgBGotAABzOgAAIAggA0ECciIEaiIGIAYtAAAgASAEai0AAHM6AAAgCCADQQNyIgRqIgYgBi0AACABIARqLQAAczoAACADQQRqIQMgB0EEaiIHIApH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AEHAAWsiAiQAIAJBkAFqIgQgARAFIAJB4ABqIgMgBBAFIAMgAxAFIAMgASADEAYgBCAEIAMQBiACQTBqIgEgBBAFIAMgAyABEAYgASADEAUgASABEAUgASABEAUgASABEAUgASABEAUgAyABIAMQBiABIAMQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEgAxAGIAIgARAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAEgAiABEAYgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgAyABIAMQBiABIAMQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEgAxAGIAIgARAFQQEhAQNAIAIgAhAFIAFBAWoiAUHkAEcNAAsgAkEwaiIBIAIgARAGIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAJB4ABqIgMgASADEAYgAyADEAUgAyADEAUgAyADEAUgAyADEAUgAyADEAUgACADIAJBkAFqEAYgAkHAAWokAAv0BAEZfiABMQAfIQIgATEAHiEGIAExAB0hDiABMQAGIQcgATEABSEIIAExAAQhAyABMQAJIQ8gATEACCEQIAExAAchESABMQAMIQkgATEACyEKIAExAAohCyABMQAPIQwgATEADiESIAExAA0hEyABMQAcIQQgATEAGyEUIAExABohFSABMQAZIQUgATEAGCEWIAExABchFyABNQAAIRggACABMQAVQg+GIAExABRCB4aEIAExABZCF4aEIAE1ABAiGUKAgIAIfCIaQhmIfCINIA1CgICAEHwiDUKAgIDgD4N9PgIYIAAgFkINhiAXQgWGhCAFQhWGhCIFIA1CGoh8IAVCgICACHwiBUKAgIDwA4N9PgIcIAAgFEIMhiAVQgSGhCAEQhSGhCAFQhmIfCIEIARCgICAEHwiBEKAgIDgD4N9PgIgIAAgGSAaQoCAgPAPg30gEkIKhiATQgKGhCAMQhKGhCAKQguGIAtCA4aEIAlCE4aEIglCgICACHwiCkIZiHwiC0KAgIAQfCIMQhqIfD4CFCAAIAsgDEKAgIDgD4N9PgIQIAAgEEINhiARQgWGhCAPQhWGhCAIQg6GIANCBoaEIAdCFoaEIgdCgICACHwiCEIZiHwiAyADQoCAgBB8IgNCgICA4A+DfT4CCCAAIAJCEoZCgIDwD4MgBkIKhiAOQgKGhIQiAiAEQhqIfCACQoCAgAh8IgJCgICAEIN9PgIkIAAgA0IaiCAJfCAKQoCAgPAAg30+AgwgACAHIAhCgICA8AeDfSAYIAJCGYhCE358IgJCgICAEHwiBkIaiHw+AgQgACACIAZCgICA4A+DfT4CAAvvAwEBfyMAQRBrIgIgADYCDCACIAE2AgggAkEANgIEIAIgAigCBCACKAIMLQAAIAIoAggtAABzcjYCBCACIAIoAgQgAigCDC0AASACKAIILQABc3I2AgQgAiACKAIEIAIoAgwtAAIgAigCCC0AAnNyNgIEIAIgAigCBCACKAIMLQADIAIoAggtAANzcjYCBCACIAIoAgQgAigCDC0ABCACKAIILQAEc3I2AgQgAiACKAIEIAIoAgwtAAUgAigCCC0ABXNyNgIEIAIgAigCBCACKAIMLQAGIAIoAggtAAZzcjYCBCACIAIoAgQgAigCDC0AByACKAIILQAHc3I2AgQgAiACKAIEIAIoAgwtAAggAigCCC0ACHNyNgIEIAIgAigCBCACKAIMLQAJIAIoAggtAAlzcjYCBCACIAIoAgQgAigCDC0ACiACKAIILQAKc3I2AgQgAiACKAIEIAIoAgwtAAsgAigCCC0AC3NyNgIEIAIgAigCBCACKAIMLQAMIAIoAggtAAxzcjYCBCACIAIoAgQgAigCDC0ADSACKAIILQANc3I2AgQgAiACKAIEIAIoAgwtAA4gAigCCC0ADnNyNgIEIAIgAigCBCACKAIMLQAPIAIoAggtAA9zcjYCBCACKAIEQQFrQQh2QQFxQQFrCz8AAkAgBK1CgICAgBAgAkI/fEIGiH1WDQAgAkKAgICAEFoNACAAIAEgAiADIAQgBUGAlwIoAgAREQAPCxAOAAuVAQEEf0HBACECQYAIIQECQAJAIABB/wFxIgNBgAgtAABHBEAgA0GBgoQIbCEDA0AgASgCACADcyIEQX9zIARBgYKECGtxQYCBgoR4cQ0CIAFBBGohASACQQRrIgJBA0sNAAsLIAJFDQELIABB/wFxIQADQCAAIAEtAABGBEAgAQ8LIAFBAWohASACQQFrIgINAAsLQQALCgAgACABIAIQVAsMACAAIAEgAiADEFULJwAgAkKAgICAEFoEQBAOAAsgACABIAIgAyAEIAVB/JYCKAIAEQwAC9sBAQR/IwBBEGsiAyAANgIMIAMgATYCCEEAIQAgA0EAOgAHAkAgAkUNACACQQFxIQYgAkEBRwRAIAJBfnEhBEEAIQIDQCADIAMtAAcgAygCDCAAai0AACADKAIIIABqLQAAc3I6AAcgAyADLQAHIABBAXIiBSADKAIMai0AACADKAIIIAVqLQAAc3I6AAcgAEECaiEAIAJBAmoiAiAERw0ACwsgBkUNACADIAMtAAcgAygCDCAAai0AACADKAIIIABqLQAAc3I6AAcLIAMtAAdBAWtBCHZBAXFBAWsLnAsBF38jAEGABGsiAiQAQX8hAyABLQAfIgRBf3NB/wBxIAEtAAEgAS0AAiABLQADIAEtAAQgAS0ABSABLQAGIAEtAAcgAS0ACCABLQAJIAEtAAogAS0ACyABLQAMIAEtAA0gAS0ADiABLQAPIAEtABAgAS0AESABLQASIAEtABMgAS0AFCABLQAVIAEtABYgAS0AFyABLQAYIAEtABkgAS0AGiABLQAbIAEtABwgAS0AHSABLQAecXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFBf3NyQf8BcUEBa0HsASABLQAAIgVrcUEIdiAFIARBB3ZyckEBcUUEQCACQdACaiINIAEQNiACQaACaiANEAUgAkEAIAIoAsQCIgFrNgKUAiACQQAgAigCwAIiA2s2ApACIAJBACACKAK8AiIEazYCjAIgAkEAIAIoArgCIgVrNgKIAiACQQAgAigCtAIiBms2AoQCIAJBACACKAKwAiIHazYCgAIgAkEAIAIoAqwCIghrNgL8ASACQQAgAigCqAIiCWs2AvgBIAJBACACKAKkAiIKazYC9AEgAkEBIAIoAqACIgtrNgLwASACQZABaiIMIAJB8AFqIhEQBSACIAE2AuQBIAIgAzYC4AEgAiAENgLcASACIAU2AtgBIAIgBjYC1AEgAiAHNgLQASACIAg2AswBIAIgCTYCyAEgAiAKNgLEASACIAtBAWo2AsABIAJB4ABqIhIgAkHAAWoiExAFIAJBMGoiEEHADCAMEAYgAigCYCEBIAIoAjAhAyACKAJkIQQgAigCNCEFIAIoAmghBiACKAI4IQcgAigCbCEIIAIoAjwhCSACKAJwIQogAigCQCELIAIoAnQhDCACKAJEIQ4gAigCeCEPIAIoAkghFCACKAJ8IRUgAigCTCEWIAIoAoABIRcgAigCUCEYIAJBACACKAJUIAIoAoQBams2AlQgAkEAIBcgGGprNgJQIAJBACAVIBZqazYCTCACQQAgDyAUams2AkggAkEAIAwgDmprNgJEIAJBACAKIAtqazYCQCACQQAgCCAJams2AjwgAkEAIAYgB2prNgI4IAJBACAEIAVqazYCNCACQQAgASADams2AjAgAiAQIBIQBiACQgA3ApQDIAJCADcCnAMgAkEANgKkAyACQgA3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BkEBcWsiASACKAKAAyIDQQAgA2tzcSADczYCgAMgAiACKAKEAyIDQQAgA2tzIAFxIANzNgKEAyACIAIoAogDIgNBACADa3MgAXEgA3M2AogDIAIgAigCjAMiA0EAIANrcyABcSADczYCjAMgAiACKAKQAyIDQQAgA2tzIAFxIANzNgKQAyACIAIoApQDIgNBACADa3MgAXEgA3M2ApQDIAIgAigCmAMiA0EAIANrcyABcSADczYCmAMgAiACKAKcAyIDQQAgA2tzIAFxIANzNgKcAyACIAIoAqADIgNBACADa3MgAXEgA3M2AqADIAIgASACKAKkAyIBQQAgAWtzcSABczYCpAMgACAZEBAgAkGgBmokAAv4AQEKfwNAIAQgACADai0AACIBIANBkBVqIgItAABzciEEIAogASACLQDAAXNyIQogCSABIAItAKABc3IhCSAIIAEgAi0AgAFzciEIIAcgASACLQBgc3IhByAGIAEgAkFAay0AAHNyIQYgBSABIAItACBzciEFIANBAWoiA0EfRw0ACyAKIAAtAB9B/wBxIgBB/wBzIgFyQf8BcUEBayABIAlyQf8BcUEBayABIAhyQf8BcUEBayAHIABB+gBzckH/AXFBAWsgBiAAQQVzckH/AXFBAWsgACAFckH/AXFBAWsgACAEckH/AXFBAWtycnJycnJBCHZBAXELxQUBHX8jAEHAAmsiASQAIAFB8AFqIgMgABAFIAFBwAFqIgQgAEEoahAFIAFBkAFqIgIgAEHQAGoQBSABKALwASEAIAEoAsABIQUgASgC9AEhBiABKALEASEHIAEoAvgBIQggASgCyAEhCSABKAL8ASEKIAEoAswBIQsgASgCgAIhDCABKALQASENIAEoAoQCIQ4gASgC1AEhDyABKAKIAiEQIAEoAtgBIREgASgCjAIhEiABKALcASETIAEoApACIRQgASgC4AEhFSABIAEoAuQBIAEoApQCazYCVCABIBUgFGs2AlAgASATIBJrNgJMIAEgESAQazYCSCABIA8gDms2AkQgASANIAxrNgJAIAEgCyAKazYCPCABIAkgCGs2AjggASAHIAZrNgI0IAEgBSAAazYCMCABQTBqIhYgFiACEAYgASADIAQQBiABIAFBwAwQBiABQeAAaiACEAUgASgCMCEAIAEoAmAhBSABKAIAIQYgASgCNCEHIAEoAmQhCCABKAIEIQkgASgCOCEKIAEoAmghCyABKAIIIQwgASgCPCENIAEoAmwhDiABKAIMIQ8gASgCQCEQIAEoAnAhESABKAIQIRIgASgCRCETIAEoAnQhFCABKAIUIRUgASgCSCECIAEoAnghAyABKAIYIQQgASgCTCEXIAEoAnwhGCABKAIcIRkgASgCUCEaIAEoAoABIRsgASgCICEcIAEgASgCVCABKAKEASABKAIkams2AlQgASAaIBsgHGprNgJQIAEgFyAYIBlqazYCTCABIAIgAyAEams2AkggASATIBQgFWprNgJEIAEgECARIBJqazYCQCABIA0gDiAPams2AjwgASAKIAsgDGprNgI4IAEgByAIIAlqazYCNCABIAAgBSAGams2AjAgAUGgAmoiACAWEBAgAEEgEBohHSABQcACaiQAIB0LCwAgACABIAIQwgELIwAgAUKAgICAEFoEQBAOAAsgACABIAIgA0H0lgIoAgARDwALFgAgAUEgEBkgACABQZyXAigCABEAAAvGAgICfwF+IwBB4AJrIgYkACAGIAQgBUEAECwaAkAgACACSyAAIAJrrSADVHFFBEAgACACTw0BIAIgAGutIANaDQELIAAgAiADpxBDIQILIAZCADcDOCAGQgA3AzAgBkIANwMoIAZCADcDIEIgIAMgA0IgWhsiCFAiB0UEQCAGQUBrIAIgCKcQCxoLIAZBIGoiBSAFIAhCIHwgBEEQaiIEQgAgBkGklwIoAgARDAAaIAZB4ABqIAVBjJcCKAIAEQAAGiAHRQRAIAAgBkFAayAIpxALGgsgBkEgakHAABAIIANCIVoEQCAAIAinIgVqIAIgBWogAyAIfSAEQgEgBkGklwIoAgARDAAaCyAGQSAQCCAGQeAAaiICIAAgA0GQlwIoAgARAgAaIAIgAUGUlwIoAgARAAAaIAJBgAIQCCAGQeACaiQAQQALtAICAn8BfiMAQeACayIGJAAgBiAEIAVBABAcGgJAIAAgAksgACACa60gA1RxRQRAIAAgAk8NASACIABrrSADWg0BCyAAIAIgA6cQQyECCyAGQgA3AzggBkIANwMwIAZCADcDKCAGQgA3AyBCICADIANCIFobIghQIgdFBEAgBkFAayACIAinEAsaCyAGQSBqIgUgBSAIQiB8IARBEGoiBCAG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QYAIa0EYdHI2AgAgAUEFag8LIABBADYCAEEAC9gGAQR/IAIgA0EHdCAAakFAaiIEKQIANwIAIAIgBCkCODcCOCACIAQpAjA3AjAgAiAEKQIoNwIoIAIgBCkCIDcCICACIAQpAhg3AhggAiAEKQIQNwIQIAIgBCkCCDcCCCADBEAgA0EBdCEFIANBBHQhBkEAIQMDQCACIAIoAgAgACADQQZ0IgdqIgQoAgBzNgIAIAIgAigCBCAEKAIEczYCBCACIAIoAgggBCgCCHM2AgggAiACKAIMIAQoAgxzNgIMIAIgAigCECAEKAIQczYCECACIAIoAhQgBCgCFHM2AhQgAiACKAIYIAQoAhhzNgIYIAIgAigCHCAEKAIcczYCHCACIAIoAiAgBCgCIHM2AiAgAiACKAIkIAQoAiRzNgIkIAIgAigCKCAEKAIoczYCKCACIAIoAiwgBCgCLHM2AiwgAiACKAIwIAQoAjBzNgIwIAIgAigCNCAEKAI0czYCNCACIAIoAjggBCgCOHM2AjggAiACKAI8IAQoAjxzNgI8IAIQvQEgASADQQV0aiIEIAIpAjg3AjggBCACKQIwNwIwIAQgAikCKDcCKCAEIAIpAiA3AiAgBCACKQIYNwIYIAQgAikCEDcCECAEIAIpAgg3AgggBCACKQIANwIAIAIgAigCACAAIAdBwAByaiIEKAIAczYCACACIAIoAgQgBCgCBHM2AgQgAiACKAIIIAQoAghzNgIIIAIgAigCDCAEKAIMczYCDCACIAIoAhAgBCgCEHM2AhAgAiACKAIUIAQoAhRzNgIUIAIgAigCGCAEKAIYczYCGCACIAIoAhwgBCgCHHM2AhwgAiACKAIgIAQoAiBzNgIgIAIgAigCJCAEKAIkczYCJCACIAIoAiggBCgCKHM2AiggAiACKAIsIAQoAixzNgIsIAIgAigCMCAEKAIwczYCMCACIAIoAjQgBCgCNHM2AjQgAiACKAI4IAQoAjhzNgI4IAIgAigCPCAEKAI8czYCPCACEL0BIAEgA0EDdCAGakECdGoiBCACKQI4NwI4IAQgAikCMDcCMCAEIAIpAig3AiggBCACKQIgNwIgIAQgAikCGDcCGCAEIAIpAhA3AhAgBCACKQIINwIIIAQgAikCADcCACADQQJqIgMgBUkNAAsLCyIBAX8gACgCACIBBEAg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IhAgFWoiDCACc0EHdyECIBZBAmsiFg0ACyABKAAEIRYgASgACCEVIAEoAAwhGSABKAAQIRogASgAFCEbIAEoABghHCABKAAcISwgASgAICEtIAEoACQhLiABKAAoIS8gASgALCEwIAEoADAhMSABKAA0ITIgASgAOCEzIAEoADwhNCAFIAEoAAAgCCAqanM2AAAgBSA0IBAgHWpzNgA8IAUgMyAXIB5qczYAOCAFIDIgEiAYanM2ADQgBSAxIA0gE2pzNgAwIAUgMCARIB9qczYALCAFIC8gDCAganM2ACggBSAuIA8gIWpzNgAkIAUgLSALICJqczYAICAFICwgByAjanM2ABwgBSAcIAYgJGpzNgAYIAUgGyACICVqczYAFCAFIBogBCAmanM2ABAgBSAZIBQgJ2pzNgAMIAUgFSAOIChqczYACCAFIBYgCiApanM2AAQgEiATQQFqIhNFaiESIANCwABYBEACQCADQj9WDQAgA6ciAUUNAEEAIQQDQCAEICtqIAQgBWotAAA6AAAgBEEBaiIEIAFJDQALCyAAIBI2AjQgACATNgIwBSABQUBrIQEgBUFAayECIANCQHwhAwwBCwsLBABBAwuzDwENfyMAQTBrIgYkAAJAIAAQhQEiAw0AQWYhAyABQQNrQX5JDQAgACgCLCECIAAoAjAhAyAGQQA2AgQgACgCKCEEIAYgAzYCICAGQX82AhAgBiAENgIMIAYgAiADQQN0IgQgAiAESxsgA0ECdCICbiIDNgIYIAYgA0ECdDYCHCAGIAIgA2w2AhQgACgCNCEDIAYgATYCKCAGIAM2AiQCfyMAIgEhCiABQYAJa0FAcSIBJABBZyECAkAgBkEEaiIDRQ0AIABFDQAgAyADKAIUQQN0EB4iBDYCBEFqIQIgBEUNAAJAAkAgAygCECICRQ0AIAJBCnQiBCACbkGACEcNACADQQwQHiICNgIAIAJFDQAgAkIANwIAQcClAiABQYABaiAEEJMBIgI2AgACQCACBEAgAUEANgKAAQwBCyABKAKAASICDQILIAMoAgAQEyADQQA2AgALIAMgACgCOBDuASAKJABBagwCCyADKAIAIAI2AgAgAygCACACNgIEIAMoAgAgBDYCCCADKAIkIQQgAUGAAWoiAkEAQQBBwAAQVRogASAAKAIwNgJ8IAIgAUH8AGoiBSIH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IgYgAkGAEGogAhCGASAGIAIgAkGACGoQhgELIA4gBEEDdGogBUGACGogA0EDdGopAwA3AwAgBEEBaiIEIAAoAhQiA0kNAAsMAQsgACgCFCEDQQEhEAsgCSAMckUiEUEBdCIIIANPDQBBfyAAKAIYIgJBAWsgCCACIAEoAgQiDWxqIAMgCWxqIgogAnAbIApqIQQgCUEBaiESIA2tISYDQCAKQQFrIAQgCiAAKAIYIgJwQQFGGyENIAAoAhwhByAQBH8gACgCACgCBCANQQp0agUgDiAIQQN0agspAwAhEyABIAg2AgwgJiATQiCIpyAHcK0gERshGAJ+IAxFBEAgCUUEQCAIQQFrIQRCAAwCCyADIAlsIQQgGCAmUQRAIAQgCGpBAWshBEIADAILIAQgCEVrIQRCAAwBCyAYICZRBH8gCCADQX9zagVBAEF/IAgbIANrCyACaiEEQgAgCUEDRg0AGiADIBJsrQshFyAAKAIAKAIEIgMgAiAYp2xBCnRqIBcgBEEBa618IAStIBNC/////w+DIhcgF35CIIh+QiCIfSACrYKnQQp0aiEEIAMgDUEKdGohAiADIApBCnRqIQcCQCAMBEAgAiAEIAcQhgEMAQsgBUGAGGogBEGACBALGkEAIQQDQCAEQQN0IgMgBUGAGGoiC2oiBiAGKQMAIAIgA2opAwCFNwMAIAsgA0EIciIGaiIPIA8pAwAgAiAGaikDAIU3AwAgCyADQRByIgZqIg8gDykDACACIAZqKQMAhTcDACALIANBGHIiA2oiBiAGKQMAIAIgA2opAwCFNwMAIARBBGoiBEGAAUcNAAsgBUGAEGogC0GACBALGkEAIQNBACEEA0AgBUGAGGogBEEHdGoiAiACKQM4IhcgAikDGCIYfCAYQgGGQv7///8fgyAXQv////8Pg358IhggAikDeIVCIIkiEyACKQNYIhZ8IBNC/////w+DIBZCAYZC/v///x+DfnwiFiAXhUIoiSIXIBh8IBdC/////w+DIBhCAYZC/v///x+DfnwiGCAThUIwiSITIAIpAygiFCACKQMIIhV8IBVCAYZC/v///x+DIBRC/////w+DfnwiFSACKQNohUIgiSIbIAIpA0giHHwgG0L/////D4MgHEIBhkL+////H4N+fCIcIBSFQiiJIhQgFXwgFEL/////D4MgFUIBhkL+////H4N+fCIVIBuFQjCJIhsgHHwgG0L/////D4MgHEIBhkL+////H4N+fCIcIBSFQgGJIhQgAikDICIfIAIpAwAiGnwgGkIBhkL+////H4MgH0L/////D4N+fCIaIAIpA2CFQiCJIiAgAkFAayIGKQMAIiN8ICBC/////w+DICNCAYZC/v///x+DfnwiIyAfhUIoiSIfIBp8IB9C/////w+DIBpCAYZC/v///x+DfnwiGnwgFEL/////D4MgGkIBhkL+////H4N+fCIZhUIgiSIkIAIpAzAiISACKQMQIh18IB1CAYZC/v///x+DICFC/////w+DfnwiHSACKQNwhUIgiSIiIAIpA1AiHnwgIkL/////D4MgHkIBhkL+////H4N+fCIeICGFQiiJIiEgHXwgIUL/////D4MgHUIBhkL+////H4N+fCIdICKFQjCJIiIgHnwgIkL/////D4MgHkIBhkL+////H4N+fCIefCAkQv////8PgyAeQgGGQv7///8fg358IiUgFIVCKIkiFCAZfCAUQv////8PgyAZQgGGQv7///8fg358Ihk3AwAgAiAZICSFQjCJIhk3A3ggAiAZICV8IBlC/////w+DICVCAYZC/v///x+DfnwiGTcDUCACIBQgGYVCAYk3AyggAiAeICGFQgGJIhQgFXwgFEL/////D4MgFUIBhkL+////H4N+fCIVIBogIIVCMIkiGoVCIIkiICATIBZ8IBNC/////w+DIBZCAYZC/v///x+DfnwiE3wgIEL/////D4MgE0IBhkL+////H4N+fCIWIBSFQiiJIhQgFXwgFEL/////D4MgFUIBhkL+////H4N+fCIZICCFQjCJIhU3A2AgAiAZNwMIIAIgFSAWfCAVQv////8PgyAWQgGGQv7///8fg358IhYgFIVCAYk3AzAgAiAWNwNYIAIgEyAXhUIBiSIXIB18IBdC/////w+DIB1CAYZC/v///x+DfnwiEyAbhUIgiSIWIBogI3wgGkL/////D4MgI0IBhkL+////H4N+fCIUfCAWQv////8PgyAUQgGGQv7///8fg358IhUgF4VCKIkiFyATfCAXQv////8PgyATQgGGQv7///8fg358IhM3AxAgAiATIBaFQjCJIhM3A2ggBiATIBV8IBNC/////w+DIBVCAYZC/v///x+DfnwiFTcDACACIBggFCAfhUIBiSITfCAYQgGGQv7///8fgyATQv////8Pg358IhggIoVCIIkiFiAcfCAWQv////8PgyAcQgGGQv7///8fg358IhQgE4VCKIkiEyAYfCATQv////8PgyAYQgGGQv7///8fg358IhsgFoVCMIkiGCAUfCAYQv////8PgyAUQgGGQv7///8fg358IhY3A0ggAiAYNwNwIAIgGzcDGCACIBUgF4VCAYk3AzggAiATIBaFQgGJNwMgIARBAWoiBEEIRw0ACwNAIAVBgBhqIANBBHRqIgIgAikDiAMiFyACKQOIASIYfCAYQgGGQv7///8fgyAXQv////8Pg358IhggAikDiAeFQiCJIhMgAikDiAUiFnwgE0L/////D4MgFkIBhkL+////H4N+fCIWIBeFQiiJIhcgGHwgF0L/////D4MgGEIBhkL+////H4N+fCIYIBOFQjCJIhMgAikDiAIiFCACKQMIIhV8IBVCAYZC/v///x+DIBRC/////w+DfnwiFSACKQOIBoVCIIkiGyACKQOIBCIcfCAbQv////8PgyAcQgGGQv7///8fg358IhwgFIVCKIkiFCAVfCAUQv////8PgyAVQgGGQv7///8fg358IhUgG4VCMIkiGyAcfCAbQv////8PgyAcQgGGQv7///8fg358IhwgFIVCAYkiFCACKQOAAiIfIAIpAwAiGnwgGkIBhkL+////H4MgH0L/////D4N+fCIaIAIpA4AGhUIgiSIgIAIpA4AEIiN8ICBC/////w+DICNCAYZC/v///x+DfnwiIyAfhUIoiSIfIBp8IB9C/////w+DIBpCAYZC/v///x+DfnwiGnwgFEL/////D4MgGkIBhkL+////H4N+fCIZhUIgiSIkIAIpA4ADIiEgAikDgAEiHXwgHUIBhkL+////H4MgIUL/////D4N+fCIdIAIpA4AHhUIgiSIiIAIpA4AFIh58ICJC/////w+DIB5CAYZC/v///x+DfnwiHiAhhUIoiSIhIB18ICFC/////w+DIB1CAYZC/v///x+DfnwiHSAihUIwiSIiIB58ICJC/////w+DIB5CAYZC/v///x+DfnwiHnwgJEL/////D4MgHkIBhkL+////H4N+fCIlIBSFQiiJIhQgGXwgFEL/////D4MgGUIBhkL+////H4N+fCIZNwMAIAIgGSAkhUIwiSIZNwOIByACIBkgJXwgGUL/////D4MgJUIBhkL+////H4N+fCIZNwOABSACIBQgGYVCAYk3A4gCIAIgHiAhhUIBiSIUIBV8IBRC/////w+DIBVCAYZC/v///x+DfnwiFSAaICCFQjCJIhqFQiCJIiAgEyAWfCATQv////8PgyAWQgGGQv7///8fg358IhN8ICBC/////w+DIBNCAYZC/v///x+DfnwiFiAUhUIoiSIUIBV8IBRC/////w+DIBVCAYZC/v///x+DfnwiGSAghUIwiSIVNwOABiACIBk3AwggAiAVIBZ8IBVC/////w+DIBZCAYZC/v///x+DfnwiFiAUhUIBiTcDgAMgAiAWNwOIBSACIBMgF4VCAYkiFyAdfCAXQv////8PgyAdQgGGQv7///8fg358IhMgG4VCIIkiFiAaICN8IBpC/////w+DICNCAYZC/v///x+DfnwiFHwgFkL/////D4MgFEIBhkL+////H4N+fCIVIBeFQiiJIhcgE3wgF0L/////D4MgE0IBhkL+////H4N+fCITNwOAASACIBMgFoVCMIkiEzcDiAYgAiATIBV8IBNC/////w+DIBVCAYZC/v///x+DfnwiFTcDgAQgAiAYIBQgH4VCAYkiE3wgGEIBhkL+////H4MgE0L/////D4N+fCIYICKFQiCJIhYgHHwgFkL/////D4MgHEIBhkL+////H4N+fCIUIBOFQiiJIhMgGHwgE0L/////D4MgGEIBhkL+////H4N+fCIbIBaFQjCJIhggFHwgGEL/////D4MgFEIBhkL+////H4N+fCIWNwOIBCACIBg3A4AHIAIgGzcDiAEgAiAVIBeFQgGJNwOIAyACIBMgFoVCAYk3A4ACIANBAWoiA0EIRw0ACyAHIAVBgBBqQYAIEAshAkEAIQQDQCACIARBA3QiA2oiByAHKQMAIAVBgBhqIgsgA2opAwCFNwMAIAIgA0EIciIHaiIGIAYpAwAgByALaikDAIU3AwAgAiADQRByIgdqIgYgBikDACAFQYAYaiAHaikDAIU3AwAgAiADQRhyIgNqIgcgBykDACAFQYAYaiADaikDAIU3AwAgBEEEaiIEQYABRw0ACwsgDUEBaiEEIApBAWohCiAIQQFqIgggACgCFCIDSQ0ACwsgBUGAIGokAAvMBQIFfwJ+QX8hBwJAIAFBwQBrQUBJDQAgBUHAAEsNAAJ/IAFB/wFxIQcgBUH/AXEhBSMAIgEhCSABQYAEa0FAcSIBJAACQCACRSADQgBScQ0AIABFDQAgB0HBAGtB/wFxQb8BTQ0AIARFIgZBACAFGw0AIAVBwQBPDQACfyAFBEAgBg0CIAFBQGtBAEGlAhAMGiABQvnC+JuRo7Pw2wA3AzggAULr+obav7X2wR83AzAgAUKf2PnZwpHagpt/NwMoIAFC0YWa7/rPlIfRADcDICABQvHt9Pilp/2npX83AxggAUKr8NP0r+68tzw3AxAgAUK7zqqm2NDrs7t/NwMIIAEgB60gBa1CCIaEQoiS95X/zPmE6gCFNwMAIAFBgANqIgYgBWpBAEGAASAFaxAMGiAGIAQgBRALGiABQeAAaiAGQYABEAsaIAFBgAE2AuACIAZBgAEQCEGAAQwBCyABQUBrQQBBpQIQDBogAUL5wvibkaOz8NsANwM4IAFC6/qG2r+19sEfNwMwIAFCn9j52cKR2oKbfzcDKCABQtGFmu/6z5SH0QA3AyAgAULx7fT4paf9p6V/NwMYIAFCq/DT9K/uvLc8NwMQIAFCu86qptjQ67O7fzcDCCABIAetQoiS95X/zPmE6gCFNwMAQQALIQQCQCADUA0AIAFB4AFqIQogAUHgAGohBQNAIAQgBWohCEGAAiAEayIGrSILIANaBEAgCCACIAOnIgIQCxogASABKALgAiACajYC4AIMAgsgCCACIAYQCxogASABKALgAiAGajYC4AIgASABKQNAIgxCgAF8NwNAIAEgASkDSCAMQv9+Vq18NwNIIAEgBRBWIAUgCkGAARALGiABIAEoAuACQYABayIENgLgAiACIAZqIQIgAyALfSIDQgBSDQALCyABIAAgBxCIARogCSQAQQAMAQsQDgALIQcLIAcL0QYBCn8jAEGgAmsiAiQAIAAoABwhBCAAKAAYIQUgACgAFCEGIAAoABAhByAAKAAEIQggACgACCEJIAAoAAwhCiAAKAAAIQsgAiABKQJ4NwOYAiACIAEpAnA3A5ACIAIgASkCaDcD+AEgAiABKQJgNwPwASACIAEpAng3A+gBIAIgASkCcDcD4AEgAkGAAmoiAyACQfABaiACQeABahAJIAEgAikCiAI3AnggASACKQKAAjcCcCACIAEpAlg3A9gBIAIgASkCUDcD0AEgAiABKQJoNwPIASACIAEpAmA3A8ABIAMgAkHQAWogAkHAAWoQCSABIAIpAogCNwJoIAEgAikCgAI3AmAgAiABKQJINwO4ASACIAFBQGsiACkCADcDsAEgAiABKQJYNwOoASACIAEpAlA3A6ABIAMgAkGwAWogAkGgAWoQCSABIAIpAogCNwJYIAEgAikCgAI3AlAgAiABKQI4NwOYASACIAEpAjA3A5ABIAIgASkCSDcDiAEgAiAAKQIANwOAASADIAJBkAFqIAJBgAFqEAkgASACKQKIAjcCSCAAIAIpAoACNwIAIAIgASkCKDcDeCACIAEpAiA3A3AgAiABKQI4NwNoIAIgASkCMDcDYCADIAJB8ABqIAJB4ABqEAkgASACKQKIAjcCOCABIAIpAoACNwIwIAIgASkCGDcDWCACIAEpAhA3A1AgAiABKQIoNwNIIAIgASkCIDcDQCADIAJB0ABqIAJBQGsQCSABIAIpAogCNwIoIAEgAikCgAI3AiAgAiABKQIINwM4IAIgASkCADcDMCACIAEpAhg3AyggAiABKQIQNwMgIAMgAkEwaiACQSBqEAkgASACKQKIAjcCGCABIAIpAoACNwIQIAIgAikDmAI3AxggAiACKQOQAjcDECACIAEpAgg3AwggAiABKQIANwMAIAMgAkEQaiACEAkgASACKQKIAjcCCCABIAIpAoACNwIAIAEgCiABKAAMczYCDCABIAkgASgACHM2AgggASAIIAEoAARzNgIEIAEgCyABKAAAczYCACAAIAcgACgAAHM2AgAgASAGIAEoAERzNgJEIAEgBSABKABIczYCSCABIAQgASgATHM2AkwgAkGgAmokAAvkBQEkfwJ/IANFBEBB9MqB2QYhEkHl8MGLBiETQbLaiMsHIRRB7siBmQMMAQsgAygADCESIAMoAAghFCADKAAAIRMgAygABAshGCACKAAUIhkhAyACKAAYIhohDCACKAAcIhshESASIQ0gAigAECIcIQsgFCEOIAEoAAwiHSEGIAEoAAgiHiEPIAEoAAQiHyEHIAEoAAAiICEBIBghECACKAAMIiEhCiACKAAIIiIhBSACKAAEIiMhCCACKAAAIiQhAiATIQkgBEEASgRAA0AgAiAQakEHdyAGcyIVIBBqQQl3IAxzIiYgAyAJ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IAQQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSAEIAIgBBAGIAIgBBAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAiAEEAYgAyACEAUgAyADEAUgAyADEAUgAyADEAUgAyADEAUgAyADEAUgAyADEAUgAyADEAUgAyADEAUgAyADEAUgAyADEAUgAyADEAUgAyADEAUgAyADEAUgAyADEAUgAyADEAUgAyADEAUgAyADEAUgAyADEAUgAyADEAUgAiADIAIQBiACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSAEIAIgBBAGIAIgBBAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAiAEEAYgAyACEAVBASECA0AgAyADEAUgAkEBaiICQeQARw0ACyADQTBqIgIgAyACEAYgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgA0HgAGoiBCACIAQQBiAEIAQQBSAEIAQQBSAAIAQgARAGIANBkAFqJAALpgQCDn4KfyAAKAIkIRIgACgCICETIAAoAhwhFCAAKAIYIRUgACgCFCERIAJCEFoEQCAALQBQRUEYdCEWIAAoAhAiF60hDyAAKAIMIhitIQ0gACgCCCIZrSELIAAoAgQiGq0hCSAaQQVsrSEQIBlBBWytIQ4gGEEFbK0hDCAXQQVsrSEKIAA1AgAhCANAIAEoAANBAnZB////H3EgFWqtIgMgDX4gASgAAEH///8fcSARaq0iBCAPfnwgASgABkEEdkH///8fcSAUaq0iBSALfnwgASgACUEGdiATaq0iBiAJfnwgEiAWaiABKAAMQQh2aq0iByAIfnwgAyALfiAEIA1+fCAFIAl+fCAGIAh+fCAHIAp+fCADIAl+IAQgC358IAUgCH58IAYgCn58IAcgDH58IAMgCH4gBCAJfnwgBSAKfnwgBiAMfnwgByAOfnwgAyAKfiAEIAh+fCAFIAx+fCAGIA5+fCAHIBB+fCIDQhqIQv////8Pg3wiBEIaiEL/////D4N8IgVCGohC/////w+DfCIGQhqIQv////8Pg3wiB0IaiKdBBWwgA6dB////H3FqIhFBGnYgBKdB////H3FqIRUgBadB////H3EhFCAGp0H///8fcSETIAenQf///x9xIRIgEUH///8fcSERIAFBEGohASACQhB9IgJCD1YNAAsLIAAgETYCFCAAIBI2AiQgACATNgIgIAAgFDYCHCAAIBU2AhgLrQMCDH8DfiAAKQM4Ig5CAFIEQCAAQUBrIgIgDqciA2pBAToAACAOQgF8Qg9YBEAgACADakHBAGpBAEEPIANrEAwaCyAAQQE6AFAgACACQhAQbwsgADUCNCEOIAA1AjAhDyAANQIsIRAgASAAKAIUIAAoAiQgACgCICAAKAIcIAAoAhgiA0EadmoiAkEadmoiBkEadmoiCUEadkEFbGoiBEH///8fcSIFQQVqIgdBGnYgA0H///8fcSAEQRp2aiIEaiIIQRp2IAJB////H3EiCmoiC0EadiAGQf///x9xIgZqIgxBGnYgCUH///8fcWoiDUGAgIAgayICQR91IgMgBHEgAkEfdkEBayIEQf///x9xIgIgCHFyIghBGnQgAiAHcSADIAVxcnIiBSAAKAIoaiIHNgAAIAEgBSAHS60gECADIApxIAIgC3FyIgVBFHQgCEEGdnKtfHwiED4ABCABIA8gAyAGcSACIAxxciICQQ50IAVBDHZyrXwgEEIgiHwiDz4ACCABIA4gBCANcSADIAlxckEIdCACQRJ2cq18IA9CIIh8PgAMIABB2AAQCAvfBAIGfgF/AkAgACkDOCIDQgBSBEAgAEIQIAN9IgQgAiACIARWGyIEQgBSBH5CACEDIARCBFoEQCAEQnyDIQUgAEFAayEJA0AgCSAAKQM4IAN8p2ogASADp2otAAA6AAAgCSADQgGEIgggACkDOHynaiABIAinai0AADoAACAJIANCAoQiCCAAKQM4fKdqIAEgCKdqLQAAOgAAIAkgA0IDhCIIIAApAzh8p2ogASAIp2otAAA6AAAgA0IEfCEDIAZCBHwiBiAFUg0ACwsgBEIDgyIGQgBSBEADQCAAIAApAzggA3ynakFAayABIAOnai0AADoAACADQgF8IQMgB0IBfCIHIAZSDQALCyAAKQM4BSADCyAEfCIDNwM4IANCEFQNASAAIABBQGtCEBBvIABCADcDOCACIAR9IQIgASAEp2ohAQsgAkIQWgRAIAAgASACQnCDIgMQbyACQg+DIQIgASADp2ohAQsgAlANAEIAIQdCACEDIAJCBFoEQCACQgyDIQQgAEFAayEJQgAhBgNAIAkgACkDOCADfKdqIAEgA6dqLQAAOgAAIAkgA0IBhCIFIAApAzh8p2ogASAFp2otAAA6AAAgCSADQgKEIgUgACkDOHynaiABIAWnai0AADoAACAJIANCA4QiBSAAKQM4fKdqIAEgBadqLQAAOgAAIANCBHwhAyAGQgR8IgYgBFINAAsLIAJCA4MiBEIAUgRAA0AgACAAKQM4IAN8p2pBQGsgASADp2otAAA6AAAgA0IBfCEDIAdCAXwiByAEUg0ACwsgACAAKQM4IAJ8NwM4CwsXACAAIAEgAq0gA61CIIaEIAQgBRCIAwsXACAAIAEgAq0gA61CIIaEIAQgBRCJAwsKACAAIAEgAhAlC90JACAEQQg2AgBCgIACIAAgAEKAgAJYGyIAIAFBBXatWgRAIAICf0EBIAFBgCBJDQAaQQIgAUGAwABJDQAaQQMgAUGAgAFJDQAaQQQgAUGAgAJJDQAaQQUgAUGAgARJDQAaQQYgAUGAgAhJDQAaQQcgAUGAgBBJDQAaQQggAUGAgCBJDQAaQQkgAUGAgMAASQ0AGkEKIAFBgICAAUkNABpBCyABQYCAgAJJDQAaQQwgAUGAgIAESQ0AGkENIAFBgICACEkNABpBDiABQYCAgBBJDQAaQQ8gAUGAgIAgSQ0AGkEQIAFBgICAwABJDQAaQREgAUGAgICAAUkNABpBEiABQYCAgIACSQ0AGkETIAFBgICAgARJDQAaQRRBFSABQQBOGwsiATYCACADQv////8DIABCAoggAa2IIgAgAEL/////A1obpyAEKAIAbjYCAA8LIANBATYCACACAn9BASAAIAQoAgBBAnStgCIAQgRUDQAaQQIgAEIIVA0AGkEDIABCEFQNABpBBCAAQiBUDQAaQQUgAELAAFQNABpBBiAAQoABVA0AGkEHIABCgAJUDQAaQQggAEKABFQNABpBCSAAQoAIVA0AGkEKIABCgBBUDQAaQQsgAEKAIFQNABpBDCAAQoDAAFQNABpBDSAAQoCAAVQNABpBDiAAQoCAAlQNABpBDyAAQoCABFQNABpBECAAQoCACFQNABpBESAAQoCAEFQNABpBEiAAQoCAIFQNABpBEyAAQoCAwABUDQAaQRQgAEKAgIABVA0AGkEVIABCgICAAlQNABpBFiAAQoCAgARUDQAaQRcgAEKAgIAIVA0AGkEYIABCgICAEFQNABpBGSAAQoCAgCBUDQAaQRogAEKAgIDAAFQNABpBGyAAQoCAgIABVA0AGkEcIABCgICAgAJUDQAaQR0gAEKAgICABFQNABpBHiAAQoCAgIAIVA0AGkEfIABCgICAgBBUDQAaQSAgAEKAgICAIFQNABpBISAAQoCAgIDAAFQNABpBIiAAQoCAgICAAVQNABpBIyAAQoCAgICAAlQNABpBJCAAQoCAgICABFQNABpBJSAAQoCAgICACFQNABpBJiAAQoCAgICAEFQNABpBJyAAQoCAgICAIFQNABpBKCAAQoCAgICAwABUDQAaQSkgAEKAgICAgIABVA0AGkEqIABCgICAgICAAlQNABpBKyAAQoCAgICAgARUDQAaQSwgAEKAgICAgIAIVA0AGkEtIABCgICAgICAEFQNABpBLiAAQoCAgICAgCBUDQAaQS8gAEKAgICAgIDAAFQNABpBMCAAQoCAgICAgIABVA0AGkExIABCgICAgICAgAJUDQAaQTIgAEKAgICAgICABFQNABpBMyAAQoCAgICAgIAIVA0AGkE0IABCgICAgICAgBBUDQAaQTUgAEKAgICAgICAIFQNABpBNiAAQoCAgICAgIDAAFQNABpBNyAAQoCAgICAgICAAVQNABpBOCAAQoCAgICAgICAAlQNABpBOSAAQoCAgICAgICABFQNABpBOiAAQoCAgICAgICACFQNABpBOyAAQoCAgICAgICAEFQNABpBPCAAQoCAgICAgICAIFQNABpBPSAAQoCAgICAgICAwABUDQAaQT5BPyAAQgBZGws2AgALegECfyMAQSBrIgUkAEF/IQYCQCACQiBUDQAgBUIgIAMgBBDSARogAUEQaiABQSBqIAJCIH0gBUGIlwIoAgAREAANACAAIAEgAiADIAQQehogAEIANwAYIABCADcAECAAQgA3AAggAEIANwAAQQAhBgsgBUEgaiQAIAYLRgAgAkIgWgR/IAAgASACIAMgBBB6GiAAQRBqIABBIGogAkIgfSAAQYSXAigCABEQABogAEIANwAIIABCADcAAEEABUF/CwvOJAEzfyMAQdAEayIfJABBfyEGAkAgAEEgaiIHEI0BRQ0AIAAQTA0AIAMQa0UNACADEEwNACAfQYABaiIPIAMQlAENACAfQYADaiIGEDIaIAQEQCAGQZCWAkIiEBUaCyAGIABCIBAVGiAGIANCIBAVGiAGIAEgAhAVGiAGIB9BwAJqIgYQHRogBhAoIB9BCGohECAHIQRBACEDQQAhASMAQeARayIFJAADQCAFQeAPaiIKIANqIAYgA0EDdmoiCS0AACADQQZxdkEBcToAACAKIANBAXIiB2ogCS0AACAHQQdxdkEBcToAACADQQJqIgNBgAJHDQALA0AgASIGQQFqIQECQCAGQf4BSw0AIAVB4A9qIgMgBmoiCy0AAEUNAAJAIAEgA2oiCiwAACIDRQ0AIANBAXQiCSALLAAAIgdqIgNBD0wEQCALIAM6AAAgCkEAOgAADAELIAcgCWsiA0FxSA0BIAsgAzoAACABIQMDQCAFQeAPaiADaiIHLQAARQRAIAdBAToAAAwCCyAHQQA6AAAgA0H/AUkhLCAD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GSAZKQMAIAIgF2opAwCFNwMAIBggFkEQciIXaiIZIBkpAwAgAiAXaikDAIU3AwAgGCAWQRhyIhZqIhcgFykDACACIBZqKQMAhTcDACABQQRqIgFBgAFHDQALA0AgGEGACGogAEEHdGoiASABKQM4IgggASkDGCIHfCAHQgGGQv7///8fgyAIQv////8Pg358IgcgASkDeIVCIIkiBCABKQNYIgV8IAVCAYZC/v///x+DIARC/////w+DfnwiBSAIhUIoiSIIIAd8IAhC/////w+DIAdCAYZC/v///x+DfnwiByAEhUIwiSIEIAEpAygiAyABKQMIIgZ8IAZCAYZC/v///x+DIANC/////w+DfnwiBiABKQNohUIgiSILIAEpA0giDHwgDEIBhkL+////H4MgC0L/////D4N+fCIMIAOFQiiJIgMgBnwgA0L/////D4MgBkIBhkL+////H4N+fCIGIAuFQjCJIgsgDHwgC0L/////D4MgDEIBhkL+////H4N+fCIMIAOFQgGJIgMgASkDICIPIAEpAwAiCnwgCkIBhkL+////H4MgD0L/////D4N+fCIKIAEpA2CFQiCJIhAgAUFAayIWKQMAIhN8IBNCAYZC/v///x+DIBBC/////w+DfnwiEyAPhUIoiSIPIAp8IA9C/////w+DIApCAYZC/v///x+DfnwiCnwgA0L/////D4MgCkIBhkL+////H4N+fCIJhUIgiSIUIAEpAzAiESABKQMQIg18IA1CAYZC/v///x+DIBFC/////w+DfnwiDSABKQNwhUIgiSISIAEpA1AiDnwgDkIBhkL+////H4MgEkL/////D4N+fCIOIBGFQiiJIhEgDXwgEUL/////D4MgDUIBhkL+////H4N+fCINIBKFQjCJIhIgDnwgEkL/////D4MgDkIBhkL+////H4N+fCIOfCAUQv////8PgyAOQgGGQv7///8fg358IhUgA4VCKIkiAyAJfCADQv////8PgyAJQgGGQv7///8fg358Igk3AwAgASAJIBSFQjCJIgk3A3ggASAJIBV8IAlC/////w+DIBVCAYZC/v///x+DfnwiCTcDUCABIAMgCYVCAYk3AyggASAEIAV8IARC/////w+DIAVCAYZC/v///x+DfnwiBCAOIBGFQgGJIgUgBnwgBUL/////D4MgBkIBhkL+////H4N+fCIDIAogEIVCMIkiBoVCIIkiCnwgBEIBhkL+////H4MgCkL/////D4N+fCIQIAWFQiiJIgUgA3wgBUL/////D4MgA0IBhkL+////H4N+fCIJIAqFQjCJIgM3A2AgASAJNwMIIAEgBSADIBB8IANC/////w+DIBBCAYZC/v///x+DfnwiBYVCAYk3AzAgASAFNwNYIAEgBCAIhUIBiSIIIA18IAhC/////w+DIA1CAYZC/v///x+DfnwiBCALhUIgiSIFIAYgE3wgBkL/////D4MgE0IBhkL+////H4N+fCIDfCAFQv////8PgyADQgGGQv7///8fg358IgYgCIVCKIkiCCAEfCAIQv////8PgyAEQgGGQv7///8fg358IgQ3AxAgASAEIAWFQjCJIgQ3A2ggFiAEIAZ8IARC/////w+DIAZCAYZC/v///x+DfnwiBjcDACABIAcgAyAPhUIBiSIEfCAHQgGGQv7///8fgyAEQv////8Pg358IgcgEoVCIIkiBSAMfCAFQv////8PgyAMQgGGQv7///8fg358IgMgBIVCKIkiBCAHfCAEQv////8PgyAHQgGGQv7///8fg358IgsgBYVCMIkiByADfCAHQv////8PgyADQgGGQv7///8fg358IgU3A0ggASAHNwNwIAEgCzcDGCABIAYgCIVCAYk3AzggASAEIAWFQgGJNwMgIABBAWoiAEEIRw0AC0EAIQADQCAYQYAIaiAAQQR0aiIBIAEpA4gDIgggASkDiAEiB3wgB0IBhkL+////H4MgCEL/////D4N+fCIHIAEpA4gHhUIgiSIEIAEpA4gFIgV8IAVCAYZC/v///x+DIARC/////w+DfnwiBSAIhUIoiSIIIAd8IAhC/////w+DIAdCAYZC/v///x+DfnwiByAEhUIwiSIEIAEpA4gCIgMgASkDCCIGfCAGQgGGQv7///8fgyADQv////8Pg358IgYgASkDiAaFQiCJIgsgASkDiAQiDHwgDEIBhkL+////H4MgC0L/////D4N+fCIMIAOFQiiJIgMgBnwgA0L/////D4MgBkIBhkL+////H4N+fCIGIAuFQjCJIgsgDHwgC0L/////D4MgDEIBhkL+////H4N+fCIMIAOFQgGJIgMgASkDgAIiDyABKQMAIgp8IApCAYZC/v///x+DIA9C/////w+DfnwiCiABKQOABoVCIIkiECABKQOABCITfCATQgGGQv7///8fgyAQQv////8Pg358IhMgD4VCKIkiDyAKfCAPQv////8PgyAKQgGGQv7///8fg358Igp8IANC/////w+DIApCAYZC/v///x+DfnwiCYVCIIkiFCABKQOAAyIRIAEpA4ABIg18IA1CAYZC/v///x+DIBFC/////w+DfnwiDSABKQOAB4VCIIkiEiABKQOABSIOfCAOQgGGQv7///8fgyASQv////8Pg358Ig4gEYVCKIkiESANfCARQv////8PgyANQgGGQv7///8fg358Ig0gEoVCMIkiEiAOfCASQv////8PgyAOQgGGQv7///8fg358Ig58IBRC/////w+DIA5CAYZC/v///x+DfnwiFSADhUIoiSIDIAl8IANC/////w+DIAlCAYZC/v///x+DfnwiCTcDACABIAkgFIVCMIkiCTcDiAcgASAJIBV8IAlC/////w+DIBVCAYZC/v///x+DfnwiCTcDgAUgASADIAmFQgGJNwOIAiABIAQgBXwgBEL/////D4MgBUIBhkL+////H4N+fCIEIA4gEYVCAYkiBSAGfCAFQv////8PgyAGQgGGQv7///8fg358IgMgCiAQhUIwiSIGhUIgiSIKfCAEQgGGQv7///8fgyAKQv////8Pg358IhAgBYVCKIkiBSADfCAFQv////8PgyADQgGGQv7///8fg358IgkgCoVCMIkiAzcDgAYgASAJNwMIIAEgBSADIBB8IANC/////w+DIBBCAYZC/v///x+DfnwiBYVCAYk3A4ADIAEgBTcDiAUgASAEIAiFQgGJIgggDXwgCEL/////D4MgDUIBhkL+////H4N+fCIEIAuFQiCJIgUgBiATfCAGQv////8PgyATQgGGQv7///8fg358IgN8IAVC/////w+DIANCAYZC/v///x+DfnwiBiAIhUIoiSIIIAR8IAhC/////w+DIARCAYZC/v///x+DfnwiBDcDgAEgASAEIAWFQjCJIgQ3A4gGIAEgBCAGfCAEQv////8PgyAGQgGGQv7///8fg358IgY3A4AEIAEgByADIA+FQgGJIgR8IAdCAYZC/v///x+DIARC/////w+DfnwiByAShUIgiSIFIAx8IAVC/////w+DIAxCAYZC/v///x+D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IB5CgICACHwiHkKAgIDwD4N9IAI0AtACQobaHX4gAjQCzAJChtodfiIaQoCAgAh8Ih1CGYd8IhtCgICAEHwiHEIaiHynIgFrNgKkAiACQQAgGyAcQoCAgOAPg32nIgNrNgKgAiACQQAgGiAdQoCAgPAPg30gAjQCyAJChtodfiACNALEAkKG2h1+IhpCgICACHwiHUIZh3wiG0KAgIAQfCIcQhqIfKciBWs2ApwCIAJBACAbIBxCgICA4A+DfaciBms2ApgCIAJBACAaIB1CgICA8A+DfSACNALAAkKG2h1+IAI0ArwCQobaHX4iGkKAgIAIfCIdQhmHfCIbQoCAgBB8IhxCGoh8pyIHazYClAIgAkEAIBsgHEKAgIDgD4N9pyIIazYCkAIgAkEAIBogHUKAgIDwD4N9IAI0ArgCQobaHX4gAjQCtAJChtodfiIaQoCAgAh8Ih1CGYd8IhtCgICAEHwiHEIaiHynIglrNgKMAiACQQAgGyAcQoCAgOAPg32nIgprNgKIAiACQQAgGiAdQoCAgPAPg30gHkIZh0ITfiACNAKwAkKG2h1+fCIeQoCAgBB8IhpCGoh8pyILazYChAIgAkEAIB4gGkKAgIDgD4N9pyIMazYCgAIgAkHQAWoiDiACQYACaiIPEAUgAkGgAWogDyAOEAYgAigCxAEhDiACKAKgASEPIAI0AtABIR4gAigCpAEhESACKAKoASESIAI0AtQBIRogAjQC2AEhHSACKAKsASETIAIoArABIRQgAjQC3AEhGyACNALgASEcIAIoArQBIRUgAigCuAEhFiACNALkASEfIAI0AugBISAgAigCvAEhFyACKALAASEYIAIgAjQC9AFChtodfiIhICFCgICACHwiIUKAgIDwD4N9IAI0AvABQobaHX4gAjQC7AFChtodfiIiQoCAgAh8IiNCGYd8IiRCgICAEHwiJUIaiHynIhk2AvQBIAIgDiABayAZajYChAMgAiAkICVCgICA4A+DfaciATYC8AEgAiAYIANrIAFqNgKAAyACICIgI0KAgIDwD4N9ICBChtodfiAfQobaHX4iH0KAgIAIfCIgQhmHfCIiQoCAgBB8IiNCGoh8pyIBNgLsASACIBcgBWsgAWo2AvwCIAIgIiAjQoCAgOAPg32nIgE2AugBIAIgFiAGayABajYC+AIgAiAfICBCgICA8A+DfSAcQobaHX4gG0KG2h1+IhtCgICACHwiHEIZh3wiH0KAgIAQfCIgQhqIfKciATYC5AEgAiAVIAdrIAFqNgL0AiACIB8gIEKAgIDgD4N9pyIBNgLgASACIBQgCGsgAWo2AvACIAIgGyAcQoCAgPAPg30gHUKG2h1+IBpChtodfiIaQoCAgAh8Ih1CGYd8IhtCgICAEHwiHEIaiHynIgE2AtwBIAIgEyAJayABajYC7AIgAiAbIBxCgICA4A+DfaciATYC2AEgAiASIAprIAFqNgLoAiACIBogHUKAgIDwD4N9ICFCGYdCE34gHkKG2h1+fCIeQoCAgBB8IhpCGoh8pyIBNgLUASACIBEgC2sgAWo2AuQCIAIgHiAaQoCAgOAPg32nIgE2AtABIAIgDyAMayABajYC4AIgAkHwBGoiAyACQeACaiIBIAEQBiACIAEgAxAGIAJBkAZqIgEgAhAFIAEgARAFIAJBkAdqIgUgAiABEAYgAkHABGoiAyAFEAUgAyADEAUgAyADEAUgAyADEAUgAkGQBGoiASAFIAMQBiABIAEQBSABIAEQBSABIAEgAhAGIAIgAikDsAQ3A4AEIAIgAikDqAQ3A/gDIAIgAikDoAQ3A/ADIAIgAikDmAQ3A+gDIAIgAikDkAQ3A+ADIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgASACQeADaiIDEAYgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABIAMQBiACIAIpA7AENwPQAyACIAIpA6gENwPIAyACIAIpA6AENwPAAyACIAIpA5gENwO4AyACIAIpA5AENwOwAyABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEgAkGwA2oiAxAGIAIgAikDsAQ3A9ADIAIgAikDqAQ3A8gDIAIgAikDoAQ3A8ADIAIgAikDmAQ3A7gDIAIgAikDkAQ3A7ADIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgASADEAYgAiACKQOwBDcD0AMgAiACKQOoBDcDyAMgAiACKQOgBDcDwAMgAiACKQOYBDcDuAMgAiACKQOQBDcDsAMDQCACQZAEaiIBIAEQBSAEQQFqIgRB+ABHDQALIAEgASACQbADahAGIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgASACQeADahAGIAEgARAFIAEgARAFIAEgARAFIAEgASACEAYgASABEAUgAkGQA2ogARAQIAIoAoACIQMgAigChAIhBCACKAKIAiEFIAIoAowCIQYgAigCkAIhByACKAKUAiEIIAIoApgCIQkgAigCnAIhCiACKAKgAiELIAJBACACLQCRA0EBcWsiASACKAKkAiIMQQAgDGtzcSAMcyIMNgKUBSACIAsgC0EAIAtrcyABcXMiCzYCkAUgAiAKIApBACAKa3MgAXFzIgo2AowFIAIgCSAJQQAgCWtzIAFxcyIJNgKIBSACIAggCEEAIAhrcyABcXMiCDYChAUgAiAHIAdBACAHa3MgAXFzIgc2AoAFIAIgBiAGQQAgBmtzIAFxcyIGNgL8BCACIAUgBUEAIAVrcyABcXMi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NgJ0IANBACAJazYCcCADQQAgCGs2AmwgA0EAIAdrNgJoIANBACAGazYCZCADQQAgBWs2AmAgA0EAIARrNgJcIANBACABazYCWCAAIANBCGogAkGAAXFBB3YQKSADQYABaiQAC6wFAQl/IwBBoAFrIgMkACAAQQE2AgAgAEIANwIEIABCADcCDCAAQgA3AhQgAEIANwIcIABCADcCLCAAQoCAgIAQNwIkIABCADcCNCAAQgA3AjwgAEIANwJEIABCgICAgBA3AkwgAEHUAGpBAEHMABAMGiAAIAEgAiACQR91IAJxQQF0ayIEQQFzQf8BcUEBa0EfdhAqIAAgAUGgAWogBEECc0H/AXFBAWtBH3YQKiAAIAFBwAJqIARBA3NB/wFxQQFrQR92ECogACABQeADaiAEQQRzQf8BcUEBa0EfdhAqIAAgAUGABWogBEEFc0H/AXFBAWtBH3YQKiAAIAFBoAZqIARBBnNB/wFxQQFrQR92ECogACABQcAHaiAEQQdzQf8BcUEBa0EfdhAqIAAgAUHgCGogBEEIc0H/AXFBAWtBH3YQKiADIAApAkg3AyAgAyAAQUBrKQIANwMYIAMgACkCODcDECADIAApAjA3AwggAyAAKQIoNwMAIAMgACkCIDcDSCADQUBrIAApAhg3AwAgAyAAKQIQNwM4IAMgACkCCDcDMCADIAApAgA3AyggAyAAKQJYNwNYIAMgACkCYDcDYCADIAApAmg3A2ggAyAAKQJwNwNwIAMgACkCUDcDUCAAKAJ4IQEgACgCfCEEIAAoAoABIQUgACgChAEhBiAAKAKIASEHIAAoAowBIQggACgCkAEhCSAAKAKUASEKIAAoApgBIQsgA0EAIAAoApwBazYCnAEgA0EAIAtrNgKYASADQQAgCms2ApQBIANBACAJazYCkAEgA0EAIAhrNgKMASADQQAgB2s2AogBIANBACAGazYChAEgA0EAIAVrNgKAASADQQAgBGs2AnwgA0EAIAFrNgJ4IAAgAyACQYABcUEHdhAqIANBoAFqJAALjBEBE38jAEHAH2siAyQAIANBoAFqIAIQDyADQYAeaiIGIAIpAiA3AwAgA0H4HWoiByACKQIYNwMAIANB8B1qIgkgAikCEDcDACADQegdaiIMIAIpAgg3AwAgAyACKQIANwPgHSADQZAeaiINIAIpAjA3AwAgA0GYHmoiDiACKQI4NwMAIANBoB5qIg8gAkFAaykCADcDACADQageaiIQIAIpAkg3AwAgAyACKQIoNwOIHiADQbgeaiIRIAIpAlg3AwAgA0HAHmoiEiACKQJgNwMAIANByB5qIhMgAikCaDcDACADQdAeaiIUIAIpAnA3AwAgAyACKQJQNwOwHiADQcgbaiIIIANB4B1qIhUQGCADQegSaiILIAggA0HAHGoiBBAGIANBkBNqIANB8BtqIgUgA0GYHGoiChAGIANBuBNqIAogBBAGIANB4BNqIAggBRAGIANBwAJqIgQgCxAPIANBqBpqIgggAiAEEBIgA0HIEWoiCyAIIANBoBtqIgQQBiADQfARaiADQdAaaiIFIANB+BpqIgoQBiADQZgSaiAKIAQQBiADQcASaiAIIAUQBiADQeADaiALEA8gBiADQYgTaikCADcDACAHIANBgBNqKQIANwMAIAkgA0H4EmopAgA3AwAgDCADQfASaikCADcDACANIANBmBNqKQIANwMAIA4gA0GgE2opAgA3AwAgDyADQagTaikCADcDACAQIANBsBNqKQIANwMAIAMgAykC6BI3A+AdIAMgAykCkBM3A4geIBQgA0HYE2opAgA3AwAgEyADQdATaikCADcDACASIANByBNqKQIANwMAIBEgA0HAE2opAgA3AwAgAyADKQK4EzcDsB4gA0GIGWoiCCAVEBggA0GoEGoiCyAIIANBgBpqIgQQBiADQdAQaiADQbAZaiIFIANB2BlqIgoQBiADQfgQaiAKIAQQBiADQaARaiAIIAUQBiADQYAFaiIEIAsQDyADQegXaiIIIAIgBBASIANBiA9qIgsgCCADQeAYaiIEEAYgA0GwD2ogA0GQGGoiBSADQbgYaiIKEAYgA0HYD2ogCiAEEAYgA0GAEGogCCAFEAYgA0GgBmogCxAPIAYgA0HoEWopAgA3AwAgByADQeARaikCADcDACAJIANB2BFqKQIANwMAIAwgA0HQEWopAgA3AwAgDSADQfgRaikCADcDACAOIANBgBJqKQIANwMAIA8gA0GIEmopAgA3AwAgECADQZASaikCADcDACADIAMpAsgRNwPgHSADIAMpAvARNwOIHiAUIANBuBJqKQIANwMAIBMgA0GwEmopAgA3AwAgEiADQagSaikCADcDACARIANBoBJqKQIANwMAIAMgAykCmBI3A7AeIANByBZqIgggFRAYIANB6A1qIgsgCCADQcAXaiIEEAYgA0GQDmogA0HwFmoiBSADQZgXaiIKEAYgA0G4DmogCiAEEAYgA0HgDmogCCAFEAYgA0HAB2oiBCALEA8gA0GoFWoiCiACIAQQEiADQcgMaiIIIAogA0GgFmoiAhAGIANB8AxqIANB0BVqIgQgA0H4FWoiBRAGIANBmA1qIAUgAhAGIANBwA1qIAogBBAGIANB4AhqIAgQDyAGIANByBBqKQIANwMAIAcgA0HAEGopAgA3AwAgCSADQbgQaikCADcDACAMIANBsBBqKQIANwMAIA0gA0HYEGopAgA3AwAgDiADQeAQaikCADcDACAPIANB6BBqKQIANwMAIBAgA0HwEGopAgA3AwAgAyADKQKoEDcD4B0gAyADKQLQEDcDiB4gFCADQZgRaikCADcDACATIANBkBFqKQIANwMAIBIgA0GIEWopAgA3AwAgESADQYARaikCADcDACADIAMpAvgQNwOwHiADQYgUaiIEIBUQGCADQagLaiIJIAQgA0GAFWoiAhAGIANB0AtqIANBsBRqIgYgA0HYFGoiBxAGIANB+AtqIAcgAhAGIANBoAxqIAQgBhAGIANBgApqIAkQD0EAIQZBACECA0AgA0GAH2oiBCACQQF0aiIHIAEgAmotAAAiCUEEdjoAASAHIAlBD3E6AAAgAkEBciIHQQF0IARqIgkgASAHai0AACIHQQR2OgABIAkgB0EPcToAACACQQJqIgJBIEcNAAtBACEBA0AgA0GAH2ogBmoiAiACLQAAIAFqIgEgAUEIaiIBQfABcWs6AAAgAiACLQABIAHAQQR1aiIBIAFBCGoiAUHwAXFrOgABIAIgAi0AAiABwEEEdWoiASABQQhqIgFB8AFxazoAAiABwEEEdSEBIAZBA2oiBkE/Rw0ACyADIAMtAL8fIAFqOgC/HyAAQgA3AiAgAEIANwIYIABCADcCECAAQgA3AgggAEIANwIAIABCADcCLCAAQShqIg1BATYCACAAQgA3AjQgAEIANwI8IABCADcCRCAAQoCAgIAQNwJMIABB1ABqQQBBzAAQDBogAEH4AGohDiAAQdAAaiEPIANBuB1qIQcgA0GwHmohASADQYgeaiEGIANBkB1qIQkgA0HYHmohAkE/IQwDQCADIANBoAFqIgogA0GAH2ogDGosAAAQkAEgA0HgHWoiBCAAIAMQEiADQegcaiIFIAQgAhAGIAkgBiABEAYgByABIAIQBiAEIAUQGCAFIAQgAhAGIAkgBiABEAYgByABIAIQBiAEIAUQGCAFIAQgAhAGIAkgBiABEAYgByABIAIQBiAEIAUQGCAFIAQgAhAGIAkgBiABEAYgByABIAIQBiAEIAUQGCAAIAQgAhAGIA0gBiABEAYgDyABIAIQBiAOIAQgBhAGIAxBAWsiDA0ACyADIAogAywAgB8QkAEgBCAAIAMQEiAAIAQgAhAGIA0gBiABEAYgDyABIAIQBiAOIAQgBhAGIANBwB9qJAAL6QYCHH4JfyAAIAEoAgwiIEEBdKwiCCABKAIEIiFBAXSsIgJ+IAEoAggiIqwiDSANfnwgASgCECIjrCIHIAEoAgAiJEEBdKwiBX58IAEoAhwiHkEmbKwiDiAerCIRfnwgASgCICIlQRNsrCIDIAEoAhgiH0EBdKx+fCABKAIkIiZBJmysIgQgASgCFCIBQQF0rCIJfnxCAYYiFUKAgIAQfCIWQhqHIAIgB34gIkEBdKwiCyAgrCISfnwgAawiDyAFfnwgAyAeQQF0rCITfnwgBCAfrCIKfnxCAYZ8IhdCgICACHwiGEIZhyAIIBJ+IAcgC358IAIgCX58IAUgCn58IAMgJawiEH58IAQgE358QgGGfCIGIAZCgICAEHwiDEKAgIDgD4N9PgIYIAAgAUEmbKwgD34gJKwiBiAGfnwgH0ETbKwiBiAjQQF0rCIUfnwgCCAOfnwgAyALfnwgAiAEfnxCAYYiGUKAgIAQfCIaQhqHIAYgCX4gBSAhrCIbfnwgByAOfnwgAyAIfnwgBCANfnxCAYZ8IhxCgICACHwiHUIZhyAFIA1+IAIgG358IAYgCn58IAkgDn58IAMgFH58IAQgCH58QgGGfCIGIAZCgICAEHwiBkKAgIDgD4N9PgIIIAAgCyAPfiAHIAh+fCACIAp+fCAFIBF+fCAEIBB+fEIBhiAMQhqHfCIMIAxCgICACHwiDEKAgIDwD4N9PgIcIAAgBSASfiACIA1+fCAKIA5+fCADIAl+fCAEIAd+fEIBhiAGQhqHfCIDIANCgICACHwiA0KAgIDwD4N9PgIMIAAgCiALfiAHIAd+fCAIIAl+fCACIBN+fCAFIBB+fCAEICasIgd+fEIBhiAMQhmHfCIEIARCgICAEHwiBEKAgIDgD4N9PgIgIAAgFyAYQoCAgPAPg30gFSAWQoCAgGCDfSADQhmHfCIDQoCAgBB8IglCGoh8PgIUIAAgAyAJQoCAgOAPg30+AhAgACAIIAp+IA8gFH58IAsgEX58IAIgEH58IAUgB358QgGGIARCGod8IgIgAkKAgIAIfCICQoCAgPAPg30+AiQgACAcIB1CgICA8A+DfSAZIBpCgICAYIN9IAJCGYdCE358IgJCgICAEHwiBUIaiHw+AgQgACACIAVCgICA4A+DfT4CAAv+AgEGfyABQYB/SwR/QTAFAn8gAUGAf08EQEHApQJBMDYCAEEADAELQQBBECABQQtqQXhxIAFBC0kbIgVBzABqEB4iAUUNABogAUEIayECAkAgAUE/cUUEQCACIQEMAQsgAUEEayIGKAIAIgdBeHEgAUE/akFAcUEIayIBQcAAQQAgASACa0EPTRtqIgEgAmsiA2shBCAHQQNxRQRAIAIoAgAhAiABIAQ2AgQgASACIANqNgIADAELIAEgBCABKAIEQQFxckECcjYCBCABIARqIgQgBCgCBEEBcjYCBCAGIAMgBigCAEEBcXJBAnI2AgAgAiADaiIEIAQoAgRBAXI2AgQgAiADEI4BCwJAIAEoAgQiAkEDcUUNACACQXhxIgMgBUEQak0NACABIAUgAkEBcXJBAnI2AgQgASAFaiICIAMgBWsiBUEDcjYCBCABIANqIgMgAygCBEEBcjYCBCACIAUQjgELIAFBCGoLIgFFBEBBMA8LIAAgATYCAEEACwuJBgEXfyMAQcACayICJAAgAEEoaiIGIAEQNiAAQgA3AlQgAEEBNgJQIABCADcCXCAAQgA3AmQgAEIANwJsIABBADYCdCACQfABaiIFIAYQBSACQcABaiIEIAVBwAwQBkF/IQcgAiACKALwAUEBayIINgLwASACIAIoAsABQQFqNgLAASACKAL0ASEJIAIoAvgBIQogAigC/AEhCyACKAKAAiEMIAIoAoQCIQ0gAigCiAIhDiACKAKMAiEPIAIoApACIRAgAigClAIhESACQZABaiIDIAQQBSADIAMgBBAGIAAgAxAFIAAgACAEEAYgACAAIAUQBiAAIAAQbiAAIAAgAxAGIAAgACAF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ChAwGiAJQYABaiIHIAhBjJcCKAIAEQAAGiAIQcAAEAggByAFIAZBkJcCKAIAEQIAGiAHQeCWAkIAIAZ9Qg+DQZCXAigCABECABogACADIAQgCyAKEMABIAcgACAEQZCXAigCABECABogB0HglgJCACAEfUIPg0GQlwIoAgARAgAaIAkgBjcDOCAHIAlBOGoiAEIIQZCXAigCABECABogCSAENwM4IAcgAEIIQZCXAigCABECABogByABQZSXAigCABEAABogB0GAAhAIIAIEQCACQhA3AwALIAlBEGpBIBAIIAlBgANqJABBAAsKACAAIAEgAhArC0oBAn8jAEEgayIGJABBfyEHAkAgAkIQVA0AIAYgBCAFEE4NACAAIAFBEGogASACQhB9IAMgBhBfIQcgBkEgEAgLIAZBIGokACAHC08BAn8jAEEgayIGJAAgAkLw////D1QEQEF/IQcgBiAEIAUQTkUEQCAAQRBqIAAgASACIAMgBhBRIQcgBkEgEAgLIAZBIGokACAHDwsQDgAL6AQBAn8jAEGgAWsiBCQAIAAgAS0AADoAACAAIAEtAAE6AAEgACABLQACOgACIAAgAS0AAzoAAyAAIAEtAAQ6AAQgACABLQAFOgAFIAAgAS0ABjoABiAAIAEtAAc6AAcgACABLQAIOgAIIAAgAS0ACToACSAAIAEtAAo6AAogACABLQALOgALIAAgAS0ADDoADCAAIAEtAA06AA0gACABLQAOOgAOIAAgAS0ADzoADyAAIAEtABA6ABAgACABLQAROgARIAAgAS0AEjoAEiAAIAEtABM6ABMgACABLQAUOgAUIAAgAS0AFToAFSAAIAEtABY6ABYgACABLQAXOgAXIAAgAS0AGDoAGCAAIAEtABk6ABkgACABLQAaOgAaIAAgAS0AGzoAGyAAIAEtABw6ABwgACABLQAdOgAdIAAgAS0AHjoAHiABLQAfIQMgACACBH8gACAALQAAQfgBcToAACADQcAAcgUgAwtB/wBxOgAfIAQgABA/IAAgBBAvQX8hAyAALQAfQf8AcSAALQAeIAAtAB0gAC0AHCAALQAbIAAtABogAC0AGSAALQAYIAAtABcgAC0AFiAALQAVIAAtABQgAC0AEyAALQASIAAtABEgAC0AECAALQAPIAAtAA4gAC0ADSAALQAMIAAtAAsgAC0ACiAALQAJIAAtAAggAC0AByAALQAGIAAtAAUgAC0ABCAALQADIAAtAAIgAC0AASAALQAAQQFzcnJycnJycnJycnJycnJycnJycnJycnJycnJycnJyckEBa0GAAnFFBEBBf0EAIAFBIBAaGyEDCyAEQaABaiQAIAMLjgUBAn8jAEHAAmsiBCQAQX8hBQJAIAIQa0UNACACEEwNACAEIAIQNA0AIAQQbEUNACAAIAEtAAA6AAAgACABLQABOgABIAAgAS0AAjoAAiAAIAEtAAM6AAMgACABLQAEOgAEIAAgAS0ABToABSAAIAEtAAY6AAYgACABLQAHOgAHIAAgAS0ACDoACCAAIAEtAAk6AAkgACABLQAKOgAKIAAgAS0ACzoACyAAIAEtAAw6AAwgACABLQANOgANIAAgAS0ADjoADiAAIAEtAA86AA8gACABLQAQOgAQIAAgAS0AEToAESAAIAEtABI6ABIgACABLQATOgATIAAgAS0AFDoAFCAAIAEtABU6ABUgACABLQAWOgAWIAAgAS0AFzoAFyAAIAEtABg6ABggACABLQAZOgAZIAAgAS0AGjoAGiAAIAEtABs6ABsgACABLQAcOgAcIAAgAS0AHToAHSAAIAEtAB46AB4gAS0AHyECIAAgAwR/IAAgAC0AAEH4AXE6AAAgAkHAAHIFIAILQf8AcToAHyAEQaABaiICIAAgBBCRASAAIAIQLyAALQAfQf8AcSAALQAeIAAtAB0gAC0AHCAALQAbIAAtABogAC0AGSAALQAYIAAtABcgAC0AFiAALQAVIAAtABQgAC0AEyAALQASIAAtABEgAC0AECAALQAPIAAtAA4gAC0ADSAALQAMIAAtAAsgAC0ACiAALQAJIAAtAAggAC0AByAALQAGIAAtAAUgAC0ABCAALQADIAAtAAIgAC0AASAALQAAQQFzcnJycnJycnJycnJycnJycnJycnJycnJycnJycnJyckEBa0GAAnENAEF/QQAgAUEgEBobIQULIARBwAJqJAAgBQsHAEGAgIAIC00BBH8jAEEQayILJABBfyEJIAtBBGoiCkEANgIIIApCADcCAEF/IAogACABIAIgAyAEIAUgBiAHIAgQvgEgChBcGyEMIAtBEGokACAMC9oEAQd/IwBBMGsiCCQAIAQEQCAEQeYAEBkLAkAgAy0AAEEkRw0A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NwMIIAogCUEIaiIFQghBkJcCKAIAEQIAGiAAIAMgBCAHQgEgCBA8GiAKIAAgBEGQlwIoAgARAgAaIAkgBDcDCCAKIAVCCEGQlwIoAgARAgAaIAogAUGUlwIoAgARAAAaIApBgAIQCCACBEAgAkIQNwMACyAJQdACaiQAQQALLAECfyMAQUBqIgMkACAAIAMQHRogASADQsAAIAJBARB4IQQgA0FAayQAIAQLLgECfyMAQUBqIgQkACAAIAQQHRogASACIARCwAAgA0EBEHkhBSAEQUBrJAAgBQsJACAAEDIaQQALBQBBv38LuwECAn8DfiMAQcABayICJAAgAkEgEBkgASACQiAQQhogASABLQAAQfgBcToAACABIAEtAB9BP3FBwAByOgAfIAJBIGoiAyABED8gACADEC8gASACKQMYNwAYIAEgAikDEDcAECABIAIpAwg3AAggASACKQMANwAAIAApAAghBCAAKQAQIQUgACkAACEGIAEgACkAGDcAOCABIAU3ADAgASAENwAoIAEgBjcAICACQSAQCCACQcABaiQAQQALtgECAX8DfiMAQaABayIDJAAgASACQiAQQhogASABLQAAQfgBcToAACABIAEtAB9BP3FBwAByOgAfIAMgARA/IAAgAxAvIAIpAAghBCACKQAQIQUgAikAACEGIAEgAikAGDcAGCABIAU3ABAgASAENwAIIAEgBjcAACAAKQAIIQQgACkAECEFIAApAAAhBiABIAApABg3ADggASAFNwAwIAEgBDcAKCABIAY3ACAgA0GgAWokAEEACwQAQQwLPgECfyMAQSBrIgQkACAEIAIgA0EAECwaIAAgASACQRBqIARBoJcCKAIAEQ8AIQUgBEEgEAggBEEgaiQAIAULYQECfyMAQUBqIgYkAEF/IQcCQCACQhBUDQAgBkEgaiAFIAQQJQRADAELIAZBgJYCIAZBIGpBABAcDQAgACABQRBqIAEgAkIQfSADIAYQYCEHIAZBIBAICyAGQUBrJAAgBwtrAQF/IwBBQGoiBiQAIAJC8P///w9UBEACQCAGQSBqIAUgBBAlBEBBfyEFDAELQX8hBSAGQYCWAiAGQSBqQQAQHA0AIABBEGogACABIAIgAyAGEFIhBSAGQSAQCAsgBkFAayQAIAUPCxAOAAtGAAJAAkAgAkKAgICAEFoEQEHApQJBFjYCAAwBCyAAIAEgAqdBAhDrASIBRQ0BIAFBXUcNAEHApQJBHDYCAAtBfyEBCyABC4sBAQJ/IwBBEGsiBSQAIABBAEGAARAMIQACfyAEQYGAgIB4SSACIAOEQv////8PWHFFBEBBwKUCQRY2AgBBfwwBCyAEQf8/SyADQgBScUUEQEHApQJBHDYCAEF/DAELIAVBEBAZQX9BACADpyAEQQp2IAEgAqcgBSAAQQIQ7AEbCyEGIAVBEGokACAGC9gCAQR/IABBACABpyIAEAwhCSABQoCAgIAQWgRAQcClAkEWNgIAQX8PCwJAIAFCD1gNACAGQYGAgIB4SSADIAWEQv////8PWHFFBEBBwKUCQRY2AgBBfw8LIAZB/z9LIAVCAFJxRQ0AIAIgCUYNACAHQQJGBEAgBachCyAGQQp2IQcgA6chBiMAQUBqIggkACAJBEAgCSAAEBkLAkAgABAeIgpFBEBBaiECDAELIAhCADcCJCAIQgA3AhwgCEEQNgIYIAggBDYCFCAIIAY2AhAgCCACNgIMIAggADYCCCAIIAo2AgQgCEEANgI8IAhBATYCOCAIQQE2AjQgCCAHNgIwIAggCzYCLAJAIAhBBGpBAhBlIgINACAJRQ0AIAkgCiAAEAsaCyAKIAAQCCAKEBMLIAhBQGskAEF/QQAgAhsPC0HApQJBHDYCAEF/DwtBwKUCQRw2AgBBfwsIAEGAgICAAQsHAEGAgIAgCwUAQZcMCwUAQYADCwoAIAAgASACEAcL8AMCAn8CfiMAQcABayIDJAAgA0IANwOQASADQgA3A5gBIANCADcDaCADQgA3A3AgA0IANwN4IANBuIwCKQMANwOoASADQcCMAikDADcDsAEgA0HIjAIpAwA3A7gBIANCADcDgAEgA0IANwOIASADQgA3A2AgA0GwjAIpAwA3A6ABIAMgAikAEDcDUCADIAIpABg3A1ggAyACKQAANwNAIAMgAikACDcDSCADQYABaiICIANBQGsiBBCEASACECggAyADKQOYATcDGCADIAMpA5ABNwMQIAMgAykDiAE3AwggAyADKQOAATcDACADQgA3A3ggA0IANwNwIANCADcDaCADQgA3A2AgAyABKQAQNwNQIAMgASkAGDcDWCABKQAIIQUgASkAACEGIANCADcDOCADQgA3AzAgA0IANwMoIAMgBjcDQCADIAU3A0ggA0IANwMgIAQgAxDvASADIAMpA3g3A7gBIAMgAykDcDcDsAEgAyADKQNoNwOoASADIAMpA2A3A6ABIAMgAykDWDcDmAEgAyADKQNQNwOQASADIAMpA0g3A4gBIAMgAykDQDcDgAEgAhAoIAAgAykDmAE3ABggACADKQOQATcAECAAIAMpA4gBNwAIIAAgAykDgAE3AAAgAkHAABAIIANBwAFqJAALlwEBAX8jAEFAaiICJAAgAiABKQA4NwM4IAIgASkAMDcDMCACIAEpACg3AyggAiABKQAgNwMgIAIgASkAGDcDGCACIAEpABA3AxAgAiABKQAANwMAIAIgASkACDcDCCACECggACACKQMYNwAYIAAgAikDEDcAECAAIAIpAwg3AAggACACKQMANwAAIAJBwAAQCCACQUBrJAALxwICAX8CfiMAQcABayIDJAAgA0IANwNgIANCADcDaCADQgA3A3AgA0IANwN4IAMgASkAEDcDUCADIAEpABg3A1ggASkACCEEIAEpAAAhBSADQgA3AyggA0IANwMwIANCADcDOCADIAU3A0AgAyAENwNIIANCADcDICADIAIpABA3AxAgAyACKQAYNwMYIAMgAikAADcDACADIAIpAAg3AwggA0FAayADEO8BIAMgAykDeDcDuAEgAyADKQNwNwOwASADIAMpA2g3A6gBIAMgAykDYDcDoAEgAyADKQNYNwOYASADIAMpA1A3A5ABIAMgAykDSDcDiAEgAyADKQNANwOAASADQYABaiIBECggACADKQOYATcAGCAAIAMpA5ABNwAQIAAgAykDiAE3AAggACADKQOAATcAACABQcAAEAggA0HAAWokAAvlAQEBfyMAQYABayICJAAgAkIANwNQIAJCADcDWCACQgA3AyggAkIANwMwIAJCADcDOCACQbiMAikDADcDaCACQcCMAikDADcDcCACQciMAikDADcDeCACQgA3A0AgAkIANwNIIAJBAToAQCACQgA3AyAgAkGwjAIpAwA3A2AgAiABKQAYNwMYIAIgASkAEDcDECACIAEpAAg3AwggAiABKQAANwMAIAJBQGsiASACEIQBIAEQKCAAIAIpA1g3ABggACACKQNQNwAQIAAgAikDSDcACCAAIAIpA0A3AAAgAkGAAWokAAveAQEBfyMAQYABayICJAAgAkIANwNQIAJCADcDWCACQgA3AyggAkIANwMwIAJCADcDOCACQbiMAikDADcDaCACQcCMAikDADcDcCACQciMAikDADcDeCACQgA3A0AgAkIANwNIIAJCADcDICACQbCMAikDADcDYCACIAEpABA3AxAgAiABKQAYNwMYIAIgASkAADcDACACIAEpAAg3AwggAkFAayIBIAIQhAEgARAoIAAgAikDWDcAGCAAIAIpA1A3ABAgACACKQNINwAIIAAgAikDQDcAACACQYABaiQAC88LAQt/IwBB4AVrIgIkACACQcAFaiIHIAEgARAHIAJB4AFqIgYgASAHEAcgAkGgBWoiBCABIAYQByACQYAFaiIFIAQgBBAHIAJBoANqIgkgByAFEAcgAkHAAmoiByABIAkQByACQeAEaiIDIAUgBRAHIAJBoAJqIgUgByAHEAcgAkHABGoiCCAJIAUQByACQcADaiIMIAMgBRAHIAJBoARqIgogCCAIEAcgAkGAA2oiCCADIAoQByACQeACaiILIAYgCBAHIAJBwAFqIgYgAyALEAcgAkGgAWoiAyAEIAYQByACQeAAaiAEIAMQByACQYAEaiIGIAogCxAHIAJB4ANqIgMgBCAGEAcgAkGAAmoiBiAMIAMQByACQYABaiAFIAYQByACQUBrIgUgCCADEAcgAkEgaiIDIAQgBRAHIAIgCSADEAcgACAHIAIQB0EAIQQDQCAAIAAgABAHIARBAWoiBEH+AEcNAAsgACAAIAJB4AJqEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAJBwAVqEAcgACAAIAIQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACACQaABahAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACACEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACACQYACahAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkFAaxAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACACQeAAahAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACACQcACahAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkGABGoQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACACQcABahAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACACQeADahAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAIQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAJBgAFqEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACACQSBqEAcgAkHgBWokAEEAIAFBIBAaawsoAANAIABBIBAZIAAgAC0AH0EfcToAHyAAEI0BRQ0AIABBIBAaDQALCw0AIAAgASACQQIQ5QELowICBH8BfiMAQUBqIgQkAAJAIAAQICIGQYABSSABQv////8PWHFFBEBB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IQtC0YWa7/rPlIfRAAwBCyAGKQAIQp/Y+dnCkdqCm3+FIQsgBikAAELRhZrv+s+Uh9EAhQshDQJ+IAdFBEBC+cL4m5Gjs/DbACEMQuv6htq/tfbBHwwBCyAHKQAIQvnC+JuRo7Pw2wCFIQwgBykAAELr+obav7X2wR+FCyEOIAFBQGtBAEGlAhAMGiABIAw3AzggASAONwMwIAEgCzcDKCABIA03AyAgAULx7fT4paf9p6V/NwMYIAFCq/DT9K/uvLc8NwMQIAFCu86qptjQ67O7fzcDCCABIAitQoiS95X/zPmE6gCFNwMAQQALIQQCQCADUA0AIAFB4AFqIQkgAUHgAGohBQNAIAQgBWohB0GAAiAEayIGrSILIANaBEAgByACIAOnIgIQCxogASABKALgAiACajYC4AIMAgsgByACIAYQCxogASABKALgAiAGajYC4AIgASABKQNAIgxCgAF8NwNAIAEgASkDSCAMQv9+Vq18NwNIIAEgBRBWIAUgCUGAARALGiABIAEoAuACQYABayIENgLgAiACIAZqIQIgAyALfSIDQgBSDQALCyABIAAgCBCIARogCiQAQQAMAQsQDgALIQgLIAgLhwEBBH9BASEBA0AgACADaiICIAEgAi0AAGoiAToAACAAIANBAXJqIgIgAi0AACABQQh2aiIBOgAAIAAgA0ECcmoiAiACLQAAIAFBCHZqIgE6AAAgACADQQNyaiICIAItAAAgAUEIdmoiAToAACABQQh2IQEgA0EEaiEDIARBBGoiBEEERw0ACwuGBwEXfyMAQfABayIEJAAgBEHAAWoiCSACakEAQRAgAmsiBkEAIAJBD00bEAwhGiAJIAEgAhALGiADKAAQIQUgA0FAayIBKAAAIQggAygAUCEKIAMoACAhCyADKAAwIQwgAygAFCENIAMoAEQhDiADKABUIQ8gAygAJCEQIAMoADQhESADKAAYIRIgAygASCETIAMoAFghFCADKAAoIRUgAygAOCEWIAQoAsABIRcgBCgCxAEhGCAEKALIASEZIAQgAygALCADKAA8cSADKAAcIAMoAEwgAygAXCAEKALMAXNzc3M2AswBIAQgFSAWcSASIBMgFCAZc3NzczYCyAEgBCAQIBFxIA0gDiAPIBhzc3NzNgLEASAEIAsgDHEgBSAIIAogF3Nzc3M2AsABIBpB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WCEUIAIoACghFSACKAA4IRYgASgAACEIIAAgASgADCIBIAIoACwgAigAPHEgAigAHCACKABcIAIoAExzc3NzNgAMIAAgByAVIBZxIBIgEyAUc3NzczYACCAAIAYgECARcSANIA4gD3Nzc3M2AAQgACAIIAsgDHEgBSAJIApzc3NzNgAAIAMgAikCWDcD2AEgAyACKQJQNwPQASADIAIpAkg3A7gBIAMgBCkCADcDsAEgAyACKQJYNwOoASADIAIpAlA3A6ABIANBwAFqIgAgA0GwAWogA0GgAWoQCSACIAMpAsgBNwJYIAIgAykCwAE3AlAgAyACKQI4NwOYASADIAIpAjA3A5ABIAMgAikCSDcDiAEgAyAEKQIANwOAASAAIANBkAFqIANBgAFqEAkgAiADKQLIATcCSCAEIAMpAsABNwIAIAMgAikCKDcDeCADIAIpAiA3A3AgAyACKQI4NwNoIAMgAikCMDcDYCAAIANB8ABqIANB4ABqEAkgAiADKQLIATcCOCACIAMpAsABNwIwIAMgAikCGDcDWCADIAIpAhA3A1AgAyACKQIoNwNIIAMgAikCIDcDQCAAIANB0ABqIANBQGsQCSACIAMpAsgBNwIoIAIgAykCwAE3AiAgAyACKQIINwM4IAMgAikCADcDMCADIAIpAhg3AyggAyACKQIQNwMgIAAgA0EwaiADQSBqEAkgAiADKQLIATcCGCACIAMpAsABNwIQIAMgAykD2AE3AxggAyADKQPQATcDECADIAIpAgg3AwggAyACKQIANwMAIAAgA0EQaiADEAkgAygCwAEhACADKALEASEEIAMoAsgBIQUgAiABIAMoAswBczYCDCACIAUgB3M2AgggAiAEIAZzNgIEIAIgACAIczYCACADQeABaiQAC/MUARl/IwBBoAZrIgMkACABKAAEIQsgASgACCEMIAEoAAwhDSABKAAQIQ4gASgAFCEEIAEoABghDyABKAAcIRAgACgABCERIAAoAAghEiAAKAAMIRMgACgAECEUIAAoABQhFSAAKAAYIRYgACgAHCEXIAEoAAAhBSACQUBrIgEgACgAACIYQYCChBBzNgIAIAJClcTcyYWy+rziADcCOCACQTBqIgBCgIKEkLCggYQNNwIAIAJCoKLEkbSurZRdNwIoIAJBIGoiBkLb++Co1c3wl3E3AgAgAiAFIBhzIhk2AgAgAiAXQfPqoul9czYCXCACIBZBoKLEkQRzNgJYIAIgFUHthL+Jf3M2AlQgAkHQAGoiBSAUQdv74KgFczYCACACIBNBkNPnkwZzNgJMIAIgEkGVxNzJBXM2AkggAiARQYOKoOgAczYCRCACIBAgF3MiEDYCHCACIA8gFnMiDzYCGCACIAQgFXMiGjYCFCACQRBqIgQgDiAUcyIONgIAIAIgDSATcyINNgIMIAIgDCAScyIMNgIIIAIgCyARcyIbNgIEQQAhCwNAIAMgBSkCCDcDmAYgAyAFKQIANwOQBiADIAEpAgg3A/gFIAMgASkCADcD8AUgAyAFKQIINwPoBSADIAUpAgA3A+AFIANBgAZqIgcgA0HwBWogA0HgBWoQCSAFIAMpAogGNwIIIAUgAykCgAY3AgAgAyAAKQIINwPYBSADIAApAgA3A9AFIAMgASkCCDcDyAUgAyABKQIANwPABSAHIANB0AVqIANBwAVqEAkgASADKQKIBjcCCCABIAMpAoAGNwIAIAMgBikCCDcDuAUgAyAGKQIANwOwBSADIAApAgg3A6gFIAMgACkCADcDoAUgByADQbAFaiADQaAFahAJIAAgAykCiAY3AgggACADKQKABjcCACADIAQpAgg3A5gFIAMgBCkCADcDkAUgAyAGKQIINwOIBSADIAYpAgA3A4AFIAcgA0GQBWogA0GABWoQCSAGIAMpAogGNwIIIAYgAykCgAY3AgAgAyACKQIINwP4BCADIAIpAgA3A/AEIAMgBCkCCDcD6AQgAyAEKQIANwPgBCAHIANB8ARqIANB4ARqEAkgBCADKQKIBjcCCCAEIAMpAoAGNwIAIAMgAykDmAY3A9gEIAMgAykDkAY3A9AEIAMgAikCCDcDyAQgAyACKQIANwPABCAHIANB0ARqIANBwARqEAkgAygCgAYhCCADKAKEBiEJIAMoAogGIQogAiADKAKMBiATczYCDCACIAogEnM2AgggAiAJIBFzNgIEIAIgCCAYczYCACADIAUpAgg3A5gGIAMgBSkCADcDkAYgAyABKQIINwO4BCADIAEpAgA3A7AEIAMgBSkCCDcDqAQgAyAFKQIANwOgBCAHIANBsARqIANBoARqEAkgBSADKQKIBjcCCCAFIAMpAoAGNwIAIAMgACkCCDcDmAQgAyAAKQIANwOQBCADIAEpAgg3A4gEIAMgASkCADcDgAQgByADQZAEaiADQYAEahAJIAEgAykCiAY3AgggASADKQKABjcCACADIAYpAgg3A/gDIAMgBikCADcD8AMgAyAAKQIINwPoAyADIAApAgA3A+ADIAcgA0HwA2ogA0HgA2oQCSAAIAMpAogGNwIIIAAgAykCgAY3AgAgAyAEKQIINwPYAyADIAQpAgA3A9ADIAMgBikCCDcDyAMgAyAGKQIANwPAAyAHIANB0ANqIANBwANqEAkgBiADKQKIBjcCCCAGIAMpAoAGNwIAIAMgAikCCDcDuAMgAyACKQIANwOwAyADIAQpAgg3A6gDIAMgBCkCADcDoAMgByADQbADaiADQaADahAJIAQgAykCiAY3AgggBCADKQKABjcCACADIAMpA5gGNwOYAyADIAMpA5AGNwOQAyADIAIpAgg3A4gDIAMgAikCADcDgAMgByADQZADaiADQYADahAJIAMoAoAGIQggAygChAYhCSADKAKIBiEKIAIgAygCjAYgF3M2AgwgAiAKIBZzNgIIIAIgCSAVczYCBCACIAggFHM2AgAgAyAFKQIINwOYBiADIAUpAgA3A5AGIAMgASkCCDcD+AIgAyABKQIANwPwAiADIAUpAgg3A+gCIAMgBSkCADcD4AIgByADQfACaiADQeACahAJIAUgAykCiAY3AgggBSADKQKABjcCACADIAApAgg3A9gCIAMgACkCADcD0AIgAyABKQIINwPIAiADIAEpAgA3A8ACIAcgA0HQAmogA0HAAmoQCSABIAMpAogGNwIIIAEgAykCgAY3AgAgAyAGKQIINwO4AiADIAYpAgA3A7ACIAMgACkCCDcDqAIgAyAAKQIANwOgAiAHIANBsAJqIANBoAJqEAkgACADKQKIBjcCCCAAIAMpAoAGNwIAIAMgBCkCCDcDmAIgAyAEKQIANwOQAiADIAYpAgg3A4gCIAMgBikCADcDgAIgByADQZACaiADQYACahAJIAYgAykCiAY3AgggBiADKQKABjcCACADIAIpAgg3A/gBIAMgAikCADcD8AEgAyAEKQIINwPoASADIAQpAgA3A+ABIAcgA0HwAWogA0HgAWoQCSAEIAMpAogGNwIIIAQgAykCgAY3AgAgAyADKQOYBjcD2AEgAyADKQOQBjcD0AEgAyACKQIINwPIASADIAIpAgA3A8ABIAcgA0HQAWogA0HAAWoQCSADKAKABiEIIAMoAoQGIQkgAygCiAYhCiACIAMoAowGIA1zNgIMIAIgCiAMczYCCCACIAkgG3M2AgQgAiAIIBlzNgIAIAMgBSkCCDcDmAYgAyAFKQIANwOQBiADIAEpAgg3A7gBIAMgASkCADcDsAEgAyAFKQIINwOoASADIAUpAgA3A6ABIAcgA0GwAWogA0GgAWoQCSAFIAMpAogGNwIIIAUgAykCgAY3AgAgAyAAKQIINwOYASADIAApAgA3A5ABIAMgASkCCDcDiAEgAyABKQIANwOAASAHIANBkAFqIANBgAFqEAkgASADKQKIBjcCCCABIAMpAoAGNwIAIAMgBikCCDcDeCADIAYpAgA3A3AgAyAAKQIINwNoIAMgACkCADcDYCAHIANB8ABqIANB4ABqEAkgACADKQKIBjcCCCAAIAMpAoAGNwIAIAMgBCkCCDcDWCADIAQpAgA3A1AgAyAGKQIINwNIIAMgBikCADcDQCAHIANB0ABqIANBQGsQCSAGIAMpAogGNwIIIAYgAykCgAY3AgAgAyACKQIINwM4IAMgAikCADcDMCADIAQpAgg3AyggAyAEKQIANwMgIAcgA0EwaiADQSBqEAkgBCADKQKIBjcCCCAEIAMpAoAGNwIAIAMgAykDmAY3AxggAyADKQOQBjcDECADIAIpAgg3AwggAyACKQIANwMAIAcgA0EQaiADEAkgAygCgAYhCCADKAKEBiEJIAMoAogGIQogAiADKAKMBiAQczYCDCACIAogD3M2AgggAiAJIBpzNgIEIAIgCCAOczYCACALQQFqIgtBBEcNAAsgA0GgBmokAAsIACAAQRAQGQsEAEFfC4wKASF/IwBBwAJrIgQkACAEQYACaiIFIAJqQQBBICACayILQQAgAkEfTRsQDCEkIAUgASACEAsaIAMoABAhDSADKAAwIQ4gAygAFCEPIAMoADQhECADKAAYIREgAygAOCESIAMoABwhEyADKAA8IRQgAygAICEBIAMoAFAhFSADKABwIRYgAygAYCEGIAMoACQhByADKABUIRcgAygAdCEYIAMoAGQhCCADKAAoIQkgAygAWCEZIAMoAHghGiADKABoIQogBCgCgAIhGyAEKAKEAiEcIAQoAogCIR0gBCgCjAIhHiAEKAKQAiEfIAQoApQCISAgBCgCmAIhISAEIAMoACwiIiADKABsIiMgAygAfHEgAygAXCAEKAKcAnNzczYCnAIgBCAJIAogGnEgGSAhc3NzNgKYAiAEIAcgCCAYcSAXICBzc3M2ApQCIAQgASAGIBZxIBUgH3NzczYCkAIgBCAjIBQgInEgEyAec3NzNgKMAiAEIAogCSAScSARIB1zc3M2AogCIAQgCCAHIBBxIA8gHHNzczYChAIgBCAGIAEgDnEgDSAbc3NzNgKAAiAkQQAgCxAMGiAAIAUgAhALGiAEKAKcAiEBIAQoApgCIQIgBCgClAIhBiAEKAKQAiEHIAQoAoACIQggBCgChAIhCSAEKAKIAiEKIAQoAowCIQsgBCADKQJ4NwO4AiAEIAMpAnA3A7ACIAQgAykCaDcD+AEgBCADKQJgNwPwASAEIAMpAng3A+gBIAQgAykCcDcD4AEgBEGgAmoiBSAEQfABaiAEQeABahAJIAMgBCkCqAI3AnggAyAEKQKgAjcCcCAEIAMpAlg3A9gBIAQgAykCUDcD0AEgBCADKQJoNwPIASAEIAMpAmA3A8ABIAUgBEHQAWogBEHAAWoQCSADIAQpAqgCNwJoIAMgBCkCoAI3AmAgBCADKQJINwO4ASAEIANBQGsiACkCADcDsAEgBCADKQJYNwOoASAEIAMpAlA3A6ABIAUgBEGwAWogBEGgAWoQCSADIAQpAqgCNwJYIAMgBCkCoAI3AlAgBCADKQI4NwOYASAEIAMpAjA3A5ABIAQgAykCSDcDiAEgBCAAKQIANwOAASAFIARBkAFqIARBgAFqEAkgAyAEKQKoAjcCSCAAIAQpAqACNwIAIAQgAykCKDcDeCAEIAMpAiA3A3AgBCADKQI4NwNoIAQgAykCMDcDYCAFIARB8ABqIARB4ABqEAkgAyAEKQKoAjcCOCADIAQpAqACNwIwIAQgAykCGDcDWCAEIAMpAhA3A1AgBCADKQIoNwNIIAQgAykCIDcDQCAFIARB0ABqIARBQGsQCSADIAQpAqgCNwIoIAMgBCkCoAI3AiAgBCADKQIINwM4IAQgAykCADcDMCAEIAMpAhg3AyggBCADKQIQNwMgIAUgBEEwaiAEQSBqEAkgAyAEKQKoAjcCGCADIAQpAqACNwIQIAQgBCkDuAI3AxggBCAEKQOwAjcDECAEIAMpAgg3AwggBCADKQIANwMAIAUgBEEQaiAEEAkgAyAEKQKoAjcCCCADIAQpAqACNwIAIAMgCyADKAAMczYCDCADIAogAygACHM2AgggAyAJIAMoAARzNgIEIAMgCCADKAAAczYCACAAIAcgACgAAHM2AgAgAyAGIAMoAERzNgJEIAMgAiADKABIczYCSCADIAEgAygATHM2AkwgBEHAAmokAAuRCQEefyMAQaACayIDJAAgAigAECEOIAIoADAhDyACKAAUIRAgASgABCERIAIoADQhEiACKAAYIRMgASgACCEUIAIoADghFSACKAAcIQggASgADCEWIAIoADwhFyACKAAgIQUgAigAUCEJIAEoABAhGCACKABwIRkgAigAYCEEIAIoACQhBiACKABUIQogASgAFCEaIAIoAHQhGyACKABkIQwgAigAKCEHIAIoAFghCyABKAAYIRwgAigAeCEdIAIoAGghDSABKAAAIR4gACACKAAsIh8gAigAbCIgIAIoAHxxIAIoAFwgASgAHHNzcyIBNgAcIAAgByANIB1xIAsgHHNzcyILNgAYIAAgBiAMIBtxIAogGnNzcyIKNgAUIAAgBSAEIBlxIAkgGHNzcyIJNgAQIAAgICAXIB9xIAggFnNzcyIINgAMIAAgDSAHIBVxIBMgFHNzcyIHNgAIIAAgDCAGIBJxIBAgEXNzcyIGNgAEIAAgBCAFIA9xIA4gHnNzcyIFNgAAIAMgAikCeDcDmAIgAyACKQJwNwOQAiADIAIpAmg3A/gBIAMgAikCYDcD8AEgAyACKQJ4NwPoASADIAIpAnA3A+ABIANBgAJqIgQgA0HwAWogA0HgAWoQCSACIAMpAogCNwJ4IAIgAykCgAI3AnAgAyACKQJYNwPYASADIAIpAlA3A9ABIAMgAikCaDcDyAEgAyACKQJgNwPAASAEIANB0AFqIANBwAFqEAkgAiADKQKIAjcCaCACIAMpAoACNwJgIAMgAikCSDcDuAEgAyACQUBrIgApAgA3A7ABIAMgAikCWDcDqAEgAyACKQJQNwOgASAEIANBsAFqIANBoAFqEAkgAiADKQKIAjcCWCACIAMpAoACNwJQIAMgAikCODcDmAEgAyACKQIwNwOQASADIAIpAkg3A4gBIAMgACkCADcDgAEgBCADQZABaiADQYABahAJIAIgAykCiAI3AkggACADKQKAAjcCACADIAIpAig3A3ggAyACKQIgNwNwIAMgAikCODcDaCADIAIpAjA3A2AgBCADQfAAaiADQeAAahAJIAIgAykCiAI3AjggAiADKQKAAjcCMCADIAIpAhg3A1ggAyACKQIQNwNQIAMgAikCKDcDSCADIAIpAiA3A0AgBCADQdAAaiADQUBrEAkgAiADKQKIAjcCKCACIAMpAoACNwIgIAMgAikCCDcDOCADIAIpAgA3AzAgAyACKQIYNwMoIAMgAikCEDcDICAEIANBMGogA0EgahAJIAIgAykCiAI3AhggAiADKQKAAjcCECADIAMpA5gCNwMYIAMgAykDkAI3AxAgAyACKQIINwMIIAMgAikCADcDACAEIANBEGogAxAJIAIgAykCiAI3AgggAiADKQKAAjcCACACIAIoAAwgCHM2AgwgAiACKAAIIAdzNgIIIAIgAigABCAGczYCBCACIAIoAAAgBXM2AgAgACAAKAAAIAlzNgIAIAIgAigARCAKczYCRCACIAIoAEggC3M2AkggAiACKABMIAFzNgJMIANBoAJqJAAL0gsBFX8jAEGgAmsiBSQAIAQoACwgA0EddnMhDCAEKAAoIANBA3RzIQ0gBCgAJCACQR12cyEOIARBIGoiAygAACACQQN0cyEPIARBEGohBiAEQTBqIQcgBEFAayECIARB0ABqIQggBEHgAGohCSAEQfAAaiEKA0AgBSAKKQIINwOYAiAFIAopAgA3A5ACIAUgCSkCCDcD+AEgBSAJKQIANwPwASAFIAopAgg3A+gBIAUgCikCADcD4AEgBUGAAmoiCyAFQfABaiAFQeABahAJIAogBSkCiAI3AgggCiAFKQKAAjcCACAFIAgpAgg3A9gBIAUgCCkCADcD0AEgBSAJKQIINwPIASAFIAkpAgA3A8ABIAsgBUHQAWogBUHAAWoQCSAJIAUpAogCNwIIIAkgBSkCgAI3AgAgBSACKQIINwO4ASAFIAIpAgA3A7ABIAUgCCkCCDcDqAEgBSAIKQIANwOgASALIAVBsAFqIAVBoAFqEAkgCCAFKQKIAjcCCCAIIAUpAoACNwIAIAUgBykCCDcDmAEgBSAHKQIANwOQASAFIAIpAgg3A4gBIAUgAikCADcDgAEgCyAFQZABaiAFQYABahAJIAIgBSkCiAI3AgggAiAFKQKAAjcCACAFIAMpAgg3A3ggBSADKQIANwNwIAUgBykCCDcDaCAFIAcpAgA3A2AgCyAFQfAAaiAFQeAAahAJIAcgBSkCiAI3AgggByAFKQKAAjcCACAFIAYpAgg3A1ggBSAGKQIANwNQIAUgAykCCDcDSCAFIAMpAgA3A0AgCyAFQdAAaiAFQUBrEAkgAyAFKQKIAjcCCCADIAUpAoACNwIAIAUgBCkCCDcDOCAFIAQpAgA3AzAgBSAGKQIINwMoIAUgBikCADcDICALIAVBMGogBUEgahAJIAYgBSkCiAI3AgggBiAFKQKAAjcCACAFIAUpA5gCNwMYIAUgBSkDkAI3AxAgBSAEKQIINwMIIAUgBCkCADcDACALIAVBEGogBRAJIAQgBSkCiAI3AgggBCAFKQKAAjcCACAEIAQoAAwgDHMiCzYCDCAEIAQoAAggDXMiETYCCCAEIAQoAAQgDnMiEjYCBCAEIAQoAAAgD3MiEzYCACACIAIoAAAgD3MiFDYCACAEIAQoAEQgDnMiFTYCRCAEIAQoAEggDXMiFjYCSCAEIAQoAEwgDHMiFzYCTCAQQQFqIhBBB0cNAAsCQAJAAkACQCABQRBrDhEAAgICAgICAgICAgICAgICAQILIAQoABAhASAEKAAwIQIgBCgAICEDIAQoAGAhBiAEKABQIQcgBCgAFCEIIAQoADQhCSAEKAAkIQogBCgAZCEMIAQoAFQhDSAEKAAYIQ4gBCgAOCEPIAQoACghECAEKABoIRggBCgAWCEZIAAgBCgAHCAEKAA8IAQoACwgBCgAXCAEKABsc3NzcyAXcyALczYADCAAIA4gDyAQIBggGXNzc3MgFnMgEXM2AAggACAIIAkgCiAMIA1zc3NzIBVzIBJzNgAEIAAgASACIAMgBiAHc3NzcyAUcyATczYAAAwCCyAEKAAQIQEgBCgAMCECIAQoACAhAyAEKAAUIQYgBCgANCEHIAQoACQhCCAEKAAYIQkgBCgAOCEKIAQoACghDCAAIAQoABwgBCgAPCAEKAAsc3MgC3M2AAwgACAJIAogDHNzIBFzNgAIIAAgBiAHIAhzcyASczYABCAAIAEgAiADc3MgE3M2AAAgBCgAUCEBIARBQGsoAAAhAiAEKABwIQMgBCgAYCEGIAQoAFQhByAEKABEIQggBCgAdCEJIAQoAGQhCiAEKABYIQwgBCgASCENIAQoAHghDiAEKABoIQ8gACAEKABcIAQoAEwgBCgAfCAEKABsc3NzNgAcIAAgDCANIA4gD3NzczYAGCAAIAcgCCAJIApzc3M2ABQgACABIAIgAyAGc3NzNgAQDAELIABBACABEAwaCyAFQaACaiQAC4MJAR5/IwBBoAJrIgMkACACKAAQIREgAigAMCESIAEoAAQhBSACKAAUIRMgAigANCEUIAEoAAghBiACKAAYIRUgAigAOCEWIAEoAAwhByACKAAcIRcgAigAPCEYIAIoACAhBCABKAAQIQggAigAUCEZIAIoAHAhGiACKABgIQkgAigAJCEKIAEoABQhCyACKABUIRsgAigAdCEcIAIoAGQhDCACKAAoIQ0gASgAGCEOIAIoAFghHSACKAB4IR4gAigAaCEPIAEoAAAhECAAIAIoACwiHyABKAAcIgEgAigAXCACKABsIiAgAigAfHFzc3M2ABwgACANIA4gHSAPIB5xc3NzNgAYIAAgCiALIBsgDCAccXNzczYAFCAAIAQgCCAZIAkgGnFzc3M2ABAgACAgIAcgFyAYIB9xc3NzNgAMIAAgDyAGIBUgDSAWcXNzczYACCAAIAwgBSATIAogFHFzc3M2AAQgACAJIBAgESAEIBJxc3NzNgAAIAMgAikCeDcDmAIgAyACKQJwNwOQAiADIAIpAmg3A/gBIAMgAikCYDcD8AEgAyACKQJ4NwPoASADIAIpAnA3A+ABIANBgAJqIgQgA0HwAWogA0HgAWoQCSACIAMpAogCNwJ4IAIgAykCgAI3AnAgAyACKQJYNwPYASADIAIpAlA3A9ABIAMgAikCaDcDyAEgAyACKQJgNwPAASAEIANB0AFqIANBwAFqEAkgAiADKQKIAjcCaCACIAMpAoACNwJgIAMgAikCSDcDuAEgAyACQUBrIgApAgA3A7ABIAMgAikCWDcDqAEgAyACKQJQNwOgASAEIANBsAFqIANBoAFqEAkgAiADKQKIAjcCWCACIAMpAoACNwJQIAMgAikCODcDmAEgAyACKQIwNwOQASADIAIpAkg3A4gBIAMgACkCADcDgAEgBCADQZABaiADQYABahAJIAIgAykCiAI3AkggACADKQKAAjcCACADIAIpAig3A3ggAyACKQIgNwNwIAMgAikCODcDaCADIAIpAjA3A2AgBCADQfAAaiADQeAAahAJIAIgAykCiAI3AjggAiADKQKAAjcCMCADIAIpAhg3A1ggAyACKQIQNwNQIAMgAikCKDcDSCADIAIpAiA3A0AgBCADQdAAaiADQUBrEAkgAiADKQKIAjcCKCACIAMpAoACNwIgIAMgAikCCDcDOCADIAIpAgA3AzAgAyACKQIYNwMoIAMgAikCEDcDICAEIANBMGogA0EgahAJIAIgAykCiAI3AhggAiADKQKAAjcCECADIAMpA5gCNwMYIAMgAykDkAI3AxAgAyACKQIINwMIIAMgAikCADcDACAEIANBEGogAxAJIAIgAykCiAI3AgggAiADKQKAAjcCACACIAcgAigADHM2AgwgAiAGIAIoAAhzNgIIIAIgBSACKAAEczYCBCACIBAgAigAAHM2AgAgACAIIAAoAABzNgIAIAIgCyACKABEczYCRCACIA4gAigASHM2AkggAiABIAIoAExzNgJMIANBoAJqJAALvQkBEX8jAEGgAmsiAyQAIAEoAAQhECABKAAIIREgASgADCESIAAoAAQhCyAAKAAIIQwgACgADCENIAEoAAAhEyACQfAAaiIBIAAoAAAiDkGAgoQQcyIANgIAIAJB4ABqIgYgDkHb++CoBXM2AgAgAkHQAGoiByAANgIAIAJBQGsiACAOIBNzIgU2AgAgAkKgosSRtK6tlF03AjggAkEwaiIIQtv74KjVzfCXcTcCACACQpXE3MmFsvq84gA3AiggAkEgaiIJQoCChJCwoIGEDTcCACACQqCixJG0rq2UXTcCGCACQRBqIgpC2/vgqNXN8JdxNwIAIAIgBTYCACACIA1BkNPnkwZzIgU2AnwgAiAMQZXE3MkFcyIENgJ4IAIgC0GDiqDoAHMiDzYCdCACIA1B8+qi6X1zNgJsIAIgDEGgosSRBHM2AmggAiALQe2Ev4l/czYCZCACIAU2AlwgAiAENgJYIAIgDzYCVCACIA0gEnMiBTYCTCACIAwgEXMiBDYCSCACIAsgEHMiDzYCRCACIAU2AgwgAiAENgIIIAIgDzYCBEEAIQUDQCADIAEpAgg3A5gCIAMgASkCADcDkAIgAyAGKQIINwP4ASADIAYpAgA3A/ABIAMgASkCCDcD6AEgAyABKQIANwPgASADQYACaiIEIANB8AFqIANB4AFqEAkgASADKQKIAjcCCCABIAMpAoACNwIAIAMgBykCCDcD2AEgAyAHKQIANwPQASADIAYpAgg3A8gBIAMgBikCADcDwAEgBCADQdABaiADQcABahAJIAYgAykCiAI3AgggBiADKQKAAjcCACADIAApAgg3A7gBIAMgACkCADcDsAEgAyAHKQIINwOoASADIAcpAgA3A6ABIAQgA0GwAWogA0GgAWoQCSAHIAMpAogCNwIIIAcgAykCgAI3AgAgAyAIKQIINwOYASADIAgpAgA3A5ABIAMgACkCCDcDiAEgAyAAKQIANwOAASAEIANBkAFqIANBgAFqEAkgACADKQKIAjcCCCAAIAMpAoACNwIAIAMgCSkCCDcDeCADIAkpAgA3A3AgAyAIKQIINwNoIAMgCCkCADcDYCAEIANB8ABqIANB4ABqEAkgCCADKQKIAjcCCCAIIAMpAoACNwIAIAMgCikCCDcDWCADIAopAgA3A1AgAyAJKQIINwNIIAMgCSkCADcDQCAEIANB0ABqIANBQGsQCSAJIAMpAogCNwIIIAkgAykCgAI3AgAgAyACKQIINwM4IAMgAikCADcDMCADIAopAgg3AyggAyAKKQIANwMgIAQgA0EwaiADQSBqEAkgCiADKQKIAjcCCCAKIAMpAoACNwIAIAMgAykDmAI3AxggAyADKQOQAjcDECADIAIpAgg3AwggAyACKQIANwMAIAQgA0EQaiADEAkgAiADKQKIAjcCCCACIAMpAoACNwIAIAIgAigADCASczYCDCACIAIoAAggEXM2AgggAiACKAAEIBBzNgIEIAIgAigAACATczYCACAAIAAoAAAgDnM2AgAgAiACKABEIAtzNgJEIAIgAigASCAMczYCSCACIAIoAEwgDXM2AkwgBUEBaiIFQQpHDQALIANBoAJqJAALhgYBFH8jAEGwAmsiAiQAIAAgAS0AADoAACAAIAEtAAE6AAEgACABLQACOgACIAAgAS0AAzoAAyAAIAEtAAQ6AAQgACABLQAFOgAFIAAgAS0ABjoABiAAIAEtAAc6AAcgACABLQAIOgAIIAAgAS0ACToACSAAIAEtAAo6AAogACABLQALOgALIAAgAS0ADDoADCAAIAEtAA06AA0gACABLQAOOgAOIAAgAS0ADzoADyAAIAEtABA6ABAgACABLQAROgARIAAgAS0AEjoAEiAAIAEtABM6ABMgACABLQAUOgAUIAAgAS0AFToAFSAAIAEtABY6ABYgACABLQAXOgAXIAAgAS0AGDoAGCAAIAEtABk6ABkgACABLQAaOgAaIAAgAS0AGzoAGyAAIAEtABw6ABwgACABLQAdOgAdIAAgAS0AHjoAHiABLQAfIQEgACAALQAAQfgBcToAACAAIAFBP3FBwAByOgAfIAJBMGogABA/IAIoAoQBIQEgAigCXCEDIAIoAogBIQQgAigCYCEFIAIoAowBIQYgAigCZCEHIAIoApABIQggAigCaCEJIAIoApQBIQogAigCbCELIAIoApgBIQwgAigCcCENIAIoApwBIQ4gAigCdCEPIAIoAqABIRAgAigCeCERIAIoAoABIRIgAigCWCETIAIgAigCfCIUIAIoAqQBIhVqNgKkAiACIBAgEWo2AqACIAIgDiAPajYCnAIgAiAMIA1qNgKYAiACIAogC2o2ApQCIAIgCCAJajYCkAIgAiAGIAdqNgKMAiACIAQgBWo2AogCIAIgASADajYChAIgAiASIBNqNgKAAiACIBUgFGs2AvQBIAIgECARazYC8AEgAiAOIA9rNgLsASACIAwgDWs2AugBIAIgCiALazYC5AEgAiAIIAlrNgLgASACIAYgB2s2AtwBIAIgBCAFazYC2AEgAiABIANrNgLUASACIBIgE2s2AtABIAJB0AFqIgEgARA1IAIgAkGAAmogARAGIAAgAhAQIAJBsAJqJABBAAvrHAI+fwx+IwBB8AJrIgMkAANAIAIgBmotAAAiBCAGQdCKAmoiCS0AAHMgB3IhByAEIAktAMABcyAFciEFIAQgCS0AoAFzIAxyIQwgBCAJLQCAAXMgCHIhCCAEIAktAGBzIA1yIQ0gBCAJQUBrLQAAcyALciELIAQgCS0AIHMgCnIhCiAGQQFqIgZBH0cNAAtBfyEJIAItAB9B/wBxIgQgCnJB/wFxQQFrIAQgB3JB/wFxQQFrciAEIAtyQf8BcUEBa3IgBEHXAHMgDXJB/wFxQQFrciAEQf8AcyIEIAhyQf8BcUEBa3IgBCAMckH/AXFBAWtyIAQgBXJB/wFxQQFrckGAAnFFBEAgAyABKQAYNwPoAiADIAEpABA3A+ACIAMgASkAACJDNwPQAiADIAEpAAg3A9gCIAMgQ6dB+AFxOgDQAiADIAMtAO8CQT9xQcAAcjoA7wIgA0GgAmogAhA2IANCADcChAIgA0IANwKMAiADQQA2ApQCIANCADcD0AEgA0IANwPYASADQgA3A+ABIAMgAykDsAI3A6ABIAMgAykDuAI3A6gBIAMgAykDwAI3A7ABIANCADcC9AEgA0EBNgLwASADQgA3AvwBIANCADcDwAEgA0IANwPIASADIAMpA6ACNwOQASADIAMpA6gCNwOYASADQgA3AnQgA0IANwJ8IANBADYChAEgA0IANwJkIANBATYCYCADQgA3AmxB/gEhAkEAIQQDQCADKAKUAiEJIAMoArQBIQYgAygCYCEHIAMoAsABIQogAygCkAEhCyADKALwASENIAMoAmQhCCADKALEASEMIAMoApQBIQUgAygC9AEhECADKAJoIQ4gAygCyAEhESADKAKYASESIAMoAvgBIRMgAygCbCEPIAMoAswBIRQgAygCnAEhFSADKAL8ASEXIAMoAnAhGCADKALQASEcIAMoAqABIR0gAygCgAIhHiADKAJ0IRkgAygC1AEhHyADKAKkASEgIAMoAoQCISEgAygCeCEaIAMoAtgBISIgAygCqAEhIyADKAKIAiEkIAMoAnwhGyADKALcASElIAMoAqwBISYgAygCjAIhJyADKAKAASEWIAMoAuABISggAygCsAEhKSADKAKQAiEsIANBACAEIANB0AJqIi0gAiIBQQN2ai0AACACQQdxdkEBcSIEc2siAiADKAKEASIqIAMoAuQBIitzcSIuICpzIio2AoQBIAMgBiAGIAlzIAJxIi9zIjAgKms2AlQgAyAWIBYgKHMgAnEiMXMiBjYCgAEgAyApICkgLHMgAnEiFnMiKSAGazYCUCADIBsgGyAlcyACcSIycyIbNgJ8IAMgJiAmICdzIAJxIjNzIiYgG2s2AkwgAyAaIBogInMgAnEiNHMiGjYCeCADICMgIyAkcyACcSI1cyIjIBprNgJIIAMgGSAZIB9zIAJxIjZzIhk2AnQgAyAgICAgIXMgAnEiN3MiICAZazYCRCADIBggGCAccyACcSI4cyIYNgJwIAMgHSAdIB5zIAJxIjlzIh0gGGs2AkAgAyAPIA8gFHMgAnEiOnMiDzYCbCADIBUgFSAXcyACcSI7cyIVIA9rNgI8IAMgDiAOIBFzIAJxIjxzIg42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ASECIAMoApQBIQ4gAygC9AEhBiADKAKYASERIAMoAvgBIQcgAygCnAEhEiADKAL8ASEKIAMoAqABIRMgAygCgAIhCyADKAKkASEPIAMoAoQCIQ0gAygCqAEhFCADKAKIAiEIIAMoAqwBIRUgAygCjAIhDCADKAKwASEXIAMoApACIQUgA0EAIARrIgEgAygClAIiBCADKAK0AXNxIARzNgKUAiADIAUgBSAXcyABcXM2ApACIAMgDCAMIBVzIAFxczYCjAIgAyAIIAggFHMgAXFzNgKIAiADIA0gDSAPcyABcXM2AoQCIAMgCyALIBNzIAFxczYCgAIgAyAKIAogEnMgAXFzNgL8ASADIAcgByARcyABcXM2AvgBIAMgBiAGIA5zIAFxczYC9AEgAyACIAIgEHMgAXFzNgLwASADKALAASECIAMoAmAhBSADKALEASEEIAMoAmQhECADKALIASEGIAMoAmghDiADKALMASEHIAMoAmwhESADKALQASEKIAMoAnAhEiADKALUASELIAMoAnQhEyADKALYASENIAMoAnghDyADKALcASEIIAMoAnwhFCADKALgASEMIAMoAoABIRUgAyADKALkASIXIAMoAoQBcyABcSAXczYC5AEgAyAMIAwgFXMgAXFzNgLgASADIAggCCAUcyABcXM2AtwBIAMgDSANIA9zIAFxczYC2AEgAyALIAsgE3MgAXFzNgLUASADIAogCiAScyABcXM2AtABIAMgByAHIBFzIAFxczYCzAEgAyAGIAYgDnMgAXFzNgLIASADIAQgBCAQcyABcXM2AsQBIAMgAiACIAVzIAFxczYCwAEgFiAWEDUgGSAZIBYQBiAAIBkQECAtQSAQCEEAIQkLIANB8AJqJAAgCQsKACAAIAEQcEEACwwAIAAgASACEHFBAAu0AQEBfyAAIAEoAABB////H3E2AgAgACABKAADQQJ2QYP+/x9xNgIEIAAgASgABkEEdkH/gf8fcTYCCCAAIAEoAAlBBnZB///AH3E2AgwgASgADCECIABCADcCFCAAQgA3AhwgAEEANgIkIAAgAkEIdkH//z9xNgIQIAAgASgAEDYCKCAAIAEoABQ2AiwgACABKAAYNgIwIAEoABwhASAAQQA6AFAgAEIANwM4IAAgATYCNEEAC+gBAQR/IwAiBUHAAWtBQHEiBCQA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IAhBIBAIIAhBIGokACAJCyAAIAAgASACrSADrUIghoQgBEIAIAVBpJcCKAIAEQwACygAIAAgASACrSADrUIghoQgBCAFrSAGrUIghoQgB0GklwIoAgARDAALHAAgACABrSACrUIghoQgAyAEQaCXAigCABEPAAsWACAAIAEgAq0gA61CIIaEIAQgBRBZCxgAIAAgASACrSADrUIghoQgBCAFIAYQOAsUACAAIAGtIAKtQiCGhCADIAQQMAsWACAAIAEgAq0gA61CIIaEIAQgBRBdCyAAIAAgASACrSADrUIghoQgBCAFrSAGrUIghoQgBxA8CxQAIAAgAa0gAq1CIIaEIAMgBBBPC60GAgN+AX8CfyAFrSAGrUIghoQhCiAIrSAJrUIghoQhDCMAQZADayIFJAAgAgRAIAJCADcDAAsgAwRAIANB/wE6AAALQX8hDQJAAkAgCkIRVA0AIApCEX0iC0Lv////D1oNASAFQSBqIghCwAAgAEEgaiIJIAAQMBogBUHgAGoiBiAIQYyXAigCABEAABogCEHAABAIIAYgByAMQZCXAigCABECABogBkHQjAJCACAMfUIPg0GQlwIoAgARAgAaIAVCADcDWCAFQgA3A1AgBUIANwNIIAVBQGtCADcDACAFQgA3AzggBUIANwMwIAVCADcDKCAFQgA3AyAgBSAELQAAOgAgIAggCELAACAJQQEgABA4GiAFLQAgIQcgBSAELQAAOgAgIAYgCELAAEGQlwIoAgARAgAaIAYgBEEBaiIEIAtBkJcCKAIAEQIAGiAGQdCMAiAKQgF9Qg+DQZCXAigCABECABogBSAMNwMYIAYgBUEYaiIIQghBkJcCKAIAEQIAGiAFIApCL3w3AxggBiAIQghBkJcCKAIAEQIAGiAGIAVBlJcCKAIAEQAAGiAGQYACEAggBSAEIAunakEQED0EQCAFQRAQCAwBCyABIAQgCyAJQQIgABA4GiAAIAAtACQgBS0AAHM6ACQgACAALQAlIAUtAAFzOgAlIAAgAC0AJiAFLQACczoAJiAAIAAtACcgBS0AA3M6ACcgACAALQAoIAUtAARzOgAoIAAgAC0AKSAFLQAFczoAKSAAIAAtACogBS0ABnM6ACogACAALQArIAUtAAdzOgArIAkQ8QECQCAHQQJxRQRAIAlBBBAaRQ0BCyAFIAApABg3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IAVBIGoiBiAEQSAQMxogBiABIAKtIAOtQiCGhBAjGiAGIAVB8AFqIgEQLhogBUGIAWoiAiABQiAQIxogAiAFEC4aIAFBIBAIIAAgBRBAIQEgBSAAQSAQPSEHIAVBkAJqJAAgB0F/IAEgACAFRhtyC00BA38jAEEQayICJAAgAEECTwRAQQAgAGsgAHAhAQNAIAJBADoAD0HAnwIgAkEPakEAEAAiAyABSQ0ACyADIABwIQELIAJBEGokACABC1sBAX8jAEHwAWsiBSQAIAUgBEEgEDMaIAUgASACrSADrUIghoQQIxogBSAFQdABaiIBEC4aIAVB6ABqIgIgAUIgECMaIAIgABAuGiABQSAQCCAFQfABaiQAQQALEgAgACABIAKtIAOtQiCGhBAiC1sBAn4gB60gCK1CIIaEIQxBfyECIAStIAWtQiCGhCILQhBaBEAgACADIAtCEH0gAyALp2pBEGsgBiAMIAkgChCzASECCyABBEAgAUIAIAtCEH0gAhs3AwALIAILJQAgACACIAOtIAStQiCGhCAFIAYgB60gCK1CIIaEIAkgChCzAQtZAQJ+An8gBq0gB61CIIaEIQwgA60gBK1CIIaEIgtC8P///w9UBEAgACAAIAunakEAIAIgCyAFIAwgCSAKELQBGiABBEAgASALQhB8NwMAC0EADAELEA4ACwsnACAAIAEgAiADIAStIAWtQiCGhCAGIAetIAitQiCGhCAKIAsQtAELWwECfiAHrSAIrUIghoQhDEF/IQIgBK0gBa1CIIaEIgtCEFoEQCAAIAMgC0IQfSADIAunakEQayAGIAwgCSAKEMcBIQILIAEEQCABQgAgC0IQfSACGzcDAAsgAgslACAAIAIgA60gBK1CIIaEIAUgBiAHrSAIrUIghoQgCSAKEMcBC1sBAn4gB60gCK1CIIaEIQxBfyECIAStIAWtQiCGhCILQhBaBEAgACADIAtCEH0gAyALp2pBEGsgBiAMIAkgChDIASECCyABBEAgAUIAIAtCEH0gAhs3AwALIAILJQAgACACIAOtIAStQiCGhCAFIAYgB60gCK1CIIaEIAkgChDIAQtZAQJ+An8gBq0gB61CIIaEIQwgA60gBK1CIIaEIgtC8P///w9UBEAgACAAIAunakEAIAIgCyAFIAwgCSAKEMkBGiABBEAgASALQhB8NwMAC0EADAELEA4ACwsnACAAIAEgAiADIAStIAWtQiCGhCAGIAetIAitQiCGhCAKIAsQyQELWQECfgJ/IAatIAetQiCGhCEMIAOtIAStQiCGhCILQvD///8PVARAIAAgACALp2pBACACIAsgBSAMIAkgChDKARogAQRAIAEgC0IQfDcDAAtBAAwBCxAOAAsLJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALEMoBC1kBAn4gB60gCK1CIIaEIQtBfyEBAkAgA60gBK1CIIaEIgxC3////w9WDQAgC0Lf////D1YNACAAIAIgDKcgBUEgIAYgC6cgCSAKQbyfAigCABENACEBCyABC4ABAQN+IAetIAitQiCGhCEMQX8hAgJAIAStIAWtQiCGhCILQiBUDQAgC0IgfSINQt////8PVg0AIAxC3////w9WDQAgACADIA2nIAMgC6dqQSBrQSAgBiAMpyAJIApBvJ8CKAIAEQ0AIQILIAEEQCABQgAgC0IgfSACGzcDAAsgAgtgAQJ+IAStIAWtQiCGhCEMIAetIAitQiCGhCENIAIEQCACQiA3AwALIA1C4P///w9UIAxC3////w9YcUUEQBAOAAsgACABQSAgAyAMpyAGIA2nIAogC0G4nwIoAgARDQALdgECfgJ/IAatIAetQiCGhCELAkAgA60gBK1CIIaEIgxC3////w9WDQAgC0Lg////D1oNACAAIAAgDKciA2pBICACIAMgBSALpyAJIApBuJ8CKAIAEQ0AIQAgAQRAIAFCACAMQiB8IAAbNwMACyAADAELEA4ACwssAQN/IwBBEGsiACQAIABBADoAD0HAnwIgAEEPakEAEAAhAiAAQRBqJAAgAgtZAQJ+IAetIAitQiCGhCELQX8hAQJAIAOtIAStQiCGhCIMQt////8PVg0AIAtC3////w9WDQAgACACIAynIAVBICAGIAunIAkgCkG0nwIoAgARDQAhAQsgAQuAAQEDfiAHrSAIrUIghoQhDEF/IQICQCAErSAFrUIghoQiC0IgVA0AIAtCIH0iDULf////D1YNACAMQt////8PVg0AIAAgAyANpyADIAunakEga0EgIAYgDKcgCSAKQbSfAigCABENACECCyABBEAgAUIAIAtCIH0gAhs3AwALIAILYAECfiAErSAFrUIghoQhDCAH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ayIBJAAgASAAKQAYNwMYIAEgACkAEDcDECABIAApAAA3AwAgASAAKQAINwMIIAEgACkAJDcDICABIAFCKCAAQSBqIAAQWRogACABKQMYNwAYIAAgASkDEDcAECAAIAEpAwg3AAggACABKQMANwAAIAEpAyAhAiAAQQE2ACAgACACNwAkIAFBMGokAAstAQF+IAAgASACQQAQHBogAEEBNgAgIAEpABAhAyAAQgA3ACwgACADNwAkQQALMwEBfiABQRgQGSAAIAEgAkEAEBwaIABBATYAICABKQAQIQMgAEIANwAsIAAgAzcAJEEAC9ABAQF/IwBBQGoiBCQAIAFCAFIEQCAEQrLaiMvHrpmQ6wA3AgggBELl8MGL5o2ZkDM3AgAgBCADKAAANgIQIAQgAygABDYCFCAEIAMoAAg2AhggBCADKAAMNgIcIAQgAygAEDYCICAEIAMoABQ2AiQgBCADKAAYNgIoIAMoABwhAyAEQQA2AjAgBCADNgIsIAQgAigAADYCNCAEIAIoAAQ2AjggBCACKAAINgI8IAQgAEEAIAGnEAwiACAAIAEQYyAEQcAAEAgLIARBQGskAEEACwkAIAAgARDeAQsLACAAIAEgAhDdAQsLACAAIAEgAhDfAQsJACAAIAEQ4AELCQAgACABEOEBCwkAIAAgARDiAQsHACAAEOMBCyIBAX8jAEFAaiIBJAAgAUHAABAZIAAgARCLASABQUBrJAALCwAgACABEIsBQQALZQEDfyMAQaAGayIDJABBfyEEAkAgA0GABWoiBSABED4NACADQeADaiIBIAIQPg0AIAMgARAPIANBoAFqIgEgBSADEFcgA0HAAmoiAiABEFggACACEEtBACEECyADQaAGaiQAIAQLZQEDfyMAQaAGayIDJABBfyEEAkAgA0GABWoiBSABED4NACADQeADaiIBIAIQPg0AIAMgARAPIANBoAFqIgEgBSADEBIgA0HAAmoiAiABEFggACACEEtBACEECyADQaAGaiQAIAQLIQECfyMAQaABayIBJAAgASAAED4hAiABQaABaiQAIAJFC8YBAQF/IwBBQGoiBCQAIAFCAFIEQCAEQrLaiMvHrpmQ6wA3AgggBELl8MGL5o2ZkDM3AgAgBCADKAAANgIQIAQgAygABDYCFCAEIAMoAAg2AhggBCADKAAMNgIcIAQg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/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/oV1RP8AQbAVCwEBAEHQFQuwASbolY/CsiewRcP0ifLvmPDV36wF08YzObE4AohtU/wFxxdqcD1N2E+6PAt2DRBnDyogU/osOczGTsf9d5KsA3rs////////////////////////////////////////f+3///////////////////////////////////////9/7v///////////////////////////////////////3/t0/VcGmMSWNac96Le+d4UAEGPFwus8QEQ/UBdAKBqPwA501f+DNK6AFi8dP5B2AEA/8g9AdhClP8A+1wAJLLh/wAAAAAAAAAAhTuMAb3xJP/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/jVBiAUzb8gDGonIA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Gy57ARKo/f/Tr5f+w9tgADh2vv7+0fX/mWR+/uiBFf81uPL/x6TdAEHwigILAQEAQZCLAguwAeDrenw7QbiuFlbj+vGfxGraCY3rnDKx/YZiBRZfSbgAX5yVvKNQjCSx0LFVnIPvWwREXMRYHI6G2CJO3dCfEVfs////////////////////////////////////////f+3///////////////////////////////////////9/7v///////////////////////////////////////3/t0/VcGmMSWNac96Le+d4UAEHPjAILARAAQeCMAguhAmfmCWqFrme7cvNuPDr1T6V/Ug5RjGgFm6vZgx8ZzeBbmC+KQpFEN3HP+8C1pdu16VvCVjnxEfFZpII/ktVeHKuYqgfYAVuDEr6FMSTDfQxVdF2+cv6x3oCnBtybdPGbwcFpm+SGR77vxp3BD8yhDCRvLOktqoR0StypsFzaiPl2UlE+mG3GMajIJwOwx39Zv/ML4MZHkafVUWPKBmcpKRSFCrcnOCEbLvxtLE0TDThTVHMKZbsKanYuycKBhSxykqHov6JLZhqocItLwqNRbMcZ6JLRJAaZ1oU1DvRwoGoQFsGkGQhsNx5Md0gntbywNLMMHDlKqthOT8qcW/NvLmjugo90b2OleBR4yIQIAseM+v++kOtsUKT3o/m+8nhxxoAAQcCPAgvBBQjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4FsirijXmC+KQs1l7yORRDdxLztN7M/7wLW824mBpdu16Ti1SPNbwlY5GdAFtvER8VmbTxmvpII/khiBbdrVXhyrQgIDo5iqB9i+b3BFAVuDEoyy5E6+hTEk4rT/1cN9DFVviXvydF2+crGWFjv+sd6ANRLHJacG3JuUJmnPdPGbwdJK8Z7BaZvk4yVPOIZHvu+11YyLxp3BD2WcrHfMoQwkdQIrWW8s6S2D5KZuqoR0StT7Qb3cqbBctVMRg9qI+Xar32buUlE+mBAytC1txjGoPyH7mMgnA7DkDu++x39Zv8KPqD3zC+DGJacKk0eRp9VvggPgUWPKBnBuDgpnKSkU/C/SRoUKtycmySZcOCEbLu0qxFr8bSxN37OVnRMNOFPeY6+LVHMKZaiydzy7Cmp25q7tRy7JwoE7NYIUhSxykmQD8Uyh6L+iATBCvEtmGqiRl/jQcItLwjC+VAajUWzHGFLv1hnoktEQqWVVJAaZ1iogcVeFNQ70uNG7MnCgahDI0NK4FsGkGVOrQVEIbDcemeuO30x3SCeoSJvhtbywNGNaycWzDBw5y4pB40qq2E5z42N3T8qcW6O4stbzby5o/LLvXe6Cj3RgLxdDb2OleHKr8KEUeMiE7DlkGggCx4woHmMj+v++kOm9gt7rbFCkFXnGsvej+b4rU3Lj8nhxxpxhJurOPifKB8LAIce4htEe6+DN1n3a6njRbu5/T331um8Xcqpn8AammMiixX1jCq4N+b4EmD8RG0ccEzULcRuEfQQj9XfbKJMkx0B7q8oyvL7JFQq+njxMDRCcxGcdQ7ZCPsu+1MVMKn5l/Jwpf1ns+tY6q2/LXxdYR0qMGURsgABBkJYCCyFTaWdFZDI1NTE5IG5vIEVkMjU1MTkgY29sbGlzaW9ucwEAQfCWAgs14JQBAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AQbCXAguNCMZjY6X4fHyE7nd3mfZ7e43/8vIN1mtrvd5vb7GRxcVUYDAwUAIBAQPOZ2epVisrfef+/hm119diTaur5ux2dpqPyspFH4KCnYnJyUD6fX2H7/r6FbJZWeuOR0fJ+/DwC0Gtreyz1NRnX6Ki/UWvr+ojnJy/U6Sk9+RycpabwMBbdbe3wuH9/Rw9k5OuTCYmamw2Nlp+Pz9B9ff3AoPMzE9oNDRcUaWl9NHl5TT58fEI4nFxk6vY2HNiMTFTKhUVPwgEBAyVx8dSRiMjZZ3Dw14wGBgoN5aWoQoFBQ8vmpq1DgcHCSQSEjYbgICb3+LiPc3r6yZOJydpf7Kyzep1dZ8SCQkbHYODnlgsLHQ0GhouNhsbLdxubrK0WlruW6Cg+6RSUvZ2OztNt9bWYX2zs85SKSl73ePjPl4vL3EThISXplNT9bnR0WgAAAAAwe3tLEAgIGDj/PwfebGxyLZbW+3Uamq+jcvLRme+vtlyOTlLlEpK3phMTNSwWFjohc/PSrvQ0GvF7+8qT6qq5e37+xaGQ0PFmk1N12YzM1URhYWUikVFz+n5+RAEAgIG/n9/gaBQUPB4PDxEJZ+fukuoqOOiUVHzXaOj/oBAQMAFj4+KP5KSrSGdnbxwODhI8fX1BGO8vN93trbBr9radUIhIWMgEBAw5f//Gv3z8w6/0tJtgc3NTBgMDBQmExM1w+zsL75fX+E1l5eiiEREzC4XFzmTxMRXVaen8vx+foJ6PT1HyGRkrLpdXecyGRkr5nNzlcBgYKAZgYGYnk9P0aPc3H9EIiJmVCoqfjuQkKsLiIiDjEZGysfu7ilruLjTKBQUPKfe3nm8Xl7iFgsLHa3b23bb4OA7ZDIyVnQ6Ok4UCgoekklJ2wwGBgpIJCRsuFxc5J/Cwl2909NuQ6ys78RiYqY5kZGoMZWVpNPk5DfyeXmL1efnMovIyENuNzdZ2m1ttwGNjYyx1dVknE5O0kmpqeDYbGy0rFZW+vP09AfP6uolymVlr/R6eo5Hrq7pEAgIGG+6utXweHiISiUlb1wuLnI4HBwkV6am8XO0tMeXxsZRy+joI6Hd3XzodHScPh8fIZZLS91hvb3cDYuLhg+KioXgcHCQfD4+QnG1tcTMZmaqkEhI2AYDAwX39vYBHA4OEsJhYaNqNTVfrldX+Wm5udAXhoaRmcHBWDodHScnnp652eHhOOv4+BMrmJizIhERM9Jpabup2dlwB46OiTOUlKctm5u2PB4eIhWHh5LJ6ekgh87OSapVVf9QKCh4pd/fegOMjI9ZoaH4CYmJgBoNDRdlv7/a1+bmMYRCQsbQaGi4gkFBwymZmbBaLS13Hg8PEXuwsMuoVFT8bbu71iwWFjoOAAAADwAAABAAAAAR")||(d=Y,Y=Q.locateFile?Q.locateFile(d,_):_+d);var l,m={36800:()=>Q.getRandomValue(),36836:()=>{if(void 0===Q.getRandomValue)try{var A="object"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto,g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),Q.getRandomValue=g}catch(A){try{var C=__webpack_require__(/*! crypto */ "./node_modules/crypto-browserify/index.js"),B=function(){var A=C.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};B(),Q.getRandomValue=B}catch(A){throw"No secure random number generator found"}}}},u=A=>{for(;A.length>0;)A.shift()(Q)},x="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,R=(A,I)=>A?((A,I,g)=>{for(var C=I+g,B=I;A[B]&&!(B>=C);)++B;if(B-I>16&&A.buffer&&x)return x.decode(A.subarray(I,B));for(var Q="";I>10,56320|1023&a)}}else Q+=String.fromCharCode((31&i)<<6|o)}else Q+=String.fromCharCode(i)}return Q})(h,A,I):"",v=[],L=A=>{var I=(A-e.buffer.byteLength+65535)/65536;try{return e.grow(I),F(),1}catch(A){}},P={b:(A,I,g,C)=>{H(`Assertion failed: ${R(A)}, at: `+[I?R(I):"unknown filename",g,C?R(C):"unknown function"])},c:()=>{H("")},a:(A,I,g)=>((A,I,g)=>{var C=((A,I)=>{var g;for(v.length=0;g=h[A++];)I+=105!=g&&I%8?4:0,v.push(105==g?p[I>>2]:n[I>>3]),I+=105==g?4:8;return v})(I,g);return m[A].apply(null,C)})(A,I,g),e:(A,I,g)=>h.copyWithin(A,I,I+g),d:A=>{var I=h.length,g=2147483648;if((A>>>=0)>g)return!1;for(var C,B=1;B<=4;B*=2){var Q=I*(1+.2/B);Q=Math.min(Q,A+100663296);var i=Math.min(g,(C=Math.max(A,Q))+(65536-C%65536)%65536);if(L(i))return!0}return!1}},q=function(){var A,I,g={a:P};function C(A,I){var g=A.exports;return e=(q=g).f,F(),q.kk,function(A){if(M--,Q.monitorRunDependencies&&Q.monitorRunDependencies(M),0==M&&(null!==b&&(clearInterval(b),b=null),K)){var I=K;K=null,I()}}(),g}if(M++,Q.monitorRunDependencies&&Q.monitorRunDependencies(M),Q.instantiateWasm)try{return Q.instantiateWasm(g,C)}catch(A){return y(`Module.instantiateWasm callback failed with error: ${A}`),!1}return A=g,I=function(A){C(A.instance)},function(A){return Promise.resolve().then((()=>function(A){if(A==Y&&r)return new Uint8Array(r);var I=function(A){if(U(A))return function(A){if(void 0!==a&&a){var I=Buffer.from(A,"base64");return new Uint8Array(I.buffer,I.byteOffset,I.length)}try{for(var g=atob(A),C=new Uint8Array(g.length),B=0;BWebAssembly.instantiate(I,A))).then((A=>A)).then(I,(A=>{y(`failed to asynchronously prepare wasm: ${A}`),H(A)})),{}}();function z(){function A(){l||(l=!0,Q.calledRun=!0,k||(u(S),Q.onRuntimeInitialized&&Q.onRuntimeInitialized(),function(){if(Q.postRun)for("function"==typeof Q.postRun&&(Q.postRun=[Q.postRun]);Q.postRun.length;)A=Q.postRun.shift(),G.unshift(A);var A;u(G)}()))}M>0||(function(){if(Q.preRun)for("function"==typeof Q.preRun&&(Q.preRun=[Q.preRun]);Q.preRun.length;)A=Q.preRun.shift(),N.unshift(A);var A;u(N)}(),M>0||(Q.setStatus?(Q.setStatus("Running..."),setTimeout((function(){setTimeout((function(){Q.setStatus("")}),1),A()}),1)):A()))}if(Q._crypto_aead_aegis128l_keybytes=()=>(Q._crypto_aead_aegis128l_keybytes=q.g)(),Q._crypto_aead_aegis128l_nsecbytes=()=>(Q._crypto_aead_aegis128l_nsecbytes=q.h)(),Q._crypto_aead_aegis128l_npubbytes=()=>(Q._crypto_aead_aegis128l_npubbytes=q.i)(),Q._crypto_aead_aegis128l_abytes=()=>(Q._crypto_aead_aegis128l_abytes=q.j)(),Q._crypto_aead_aegis128l_messagebytes_max=()=>(Q._crypto_aead_aegis128l_messagebytes_max=q.k)(),Q._crypto_aead_aegis128l_keygen=A=>(Q._crypto_aead_aegis128l_keygen=q.l)(A),Q._crypto_aead_aegis128l_encrypt=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_aegis128l_encrypt=q.m)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_aegis128l_encrypt_detached=(A,I,g,C,B,i,o,E,a,_,c,t)=>(Q._crypto_aead_aegis128l_encrypt_detached=q.n)(A,I,g,C,B,i,o,E,a,_,c,t),Q._crypto_aead_aegis128l_decrypt=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_aegis128l_decrypt=q.o)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_aegis128l_decrypt_detached=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_aegis128l_decrypt_detached=q.p)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_aegis256_keybytes=()=>(Q._crypto_aead_aegis256_keybytes=q.q)(),Q._crypto_aead_aegis256_nsecbytes=()=>(Q._crypto_aead_aegis256_nsecbytes=q.r)(),Q._crypto_aead_aegis256_npubbytes=()=>(Q._crypto_aead_aegis256_npubbytes=q.s)(),Q._crypto_aead_aegis256_abytes=()=>(Q._crypto_aead_aegis256_abytes=q.t)(),Q._crypto_aead_aegis256_messagebytes_max=()=>(Q._crypto_aead_aegis256_messagebytes_max=q.u)(),Q._crypto_aead_aegis256_keygen=A=>(Q._crypto_aead_aegis256_keygen=q.v)(A),Q._crypto_aead_aegis256_encrypt=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_aegis256_encrypt=q.w)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_aegis256_encrypt_detached=(A,I,g,C,B,i,o,E,a,_,c,t)=>(Q._crypto_aead_aegis256_encrypt_detached=q.x)(A,I,g,C,B,i,o,E,a,_,c,t),Q._crypto_aead_aegis256_decrypt=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_aegis256_decrypt=q.y)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_aegis256_decrypt_detached=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_aegis256_decrypt_detached=q.z)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_chacha20poly1305_encrypt_detached=(A,I,g,C,B,i,o,E,a,_,c,t)=>(Q._crypto_aead_chacha20poly1305_encrypt_detached=q.A)(A,I,g,C,B,i,o,E,a,_,c,t),Q._crypto_aead_chacha20poly1305_encrypt=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_chacha20poly1305_encrypt=q.B)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_chacha20poly1305_ietf_encrypt_detached=(A,I,g,C,B,i,o,E,a,_,c,t)=>(Q._crypto_aead_chacha20poly1305_ietf_encrypt_detached=q.C)(A,I,g,C,B,i,o,E,a,_,c,t),Q._crypto_aead_chacha20poly1305_ietf_encrypt=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_chacha20poly1305_ietf_encrypt=q.D)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_chacha20poly1305_decrypt_detached=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_chacha20poly1305_decrypt_detached=q.E)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_chacha20poly1305_decrypt=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_chacha20poly1305_decrypt=q.F)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_chacha20poly1305_ietf_decrypt_detached=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_chacha20poly1305_ietf_decrypt_detached=q.G)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_chacha20poly1305_ietf_decrypt=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_chacha20poly1305_ietf_decrypt=q.H)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_chacha20poly1305_ietf_keybytes=()=>(Q._crypto_aead_chacha20poly1305_ietf_keybytes=q.I)(),Q._crypto_aead_chacha20poly1305_ietf_npubbytes=()=>(Q._crypto_aead_chacha20poly1305_ietf_npubbytes=q.J)(),Q._crypto_aead_chacha20poly1305_ietf_nsecbytes=()=>(Q._crypto_aead_chacha20poly1305_ietf_nsecbytes=q.K)(),Q._crypto_aead_chacha20poly1305_ietf_abytes=()=>(Q._crypto_aead_chacha20poly1305_ietf_abytes=q.L)(),Q._crypto_aead_chacha20poly1305_ietf_messagebytes_max=()=>(Q._crypto_aead_chacha20poly1305_ietf_messagebytes_max=q.M)(),Q._crypto_aead_chacha20poly1305_ietf_keygen=A=>(Q._crypto_aead_chacha20poly1305_ietf_keygen=q.N)(A),Q._crypto_aead_chacha20poly1305_keybytes=()=>(Q._crypto_aead_chacha20poly1305_keybytes=q.O)(),Q._crypto_aead_chacha20poly1305_npubbytes=()=>(Q._crypto_aead_chacha20poly1305_npubbytes=q.P)(),Q._crypto_aead_chacha20poly1305_nsecbytes=()=>(Q._crypto_aead_chacha20poly1305_nsecbytes=q.Q)(),Q._crypto_aead_chacha20poly1305_abytes=()=>(Q._crypto_aead_chacha20poly1305_abytes=q.R)(),Q._crypto_aead_chacha20poly1305_messagebytes_max=()=>(Q._crypto_aead_chacha20poly1305_messagebytes_max=q.S)(),Q._crypto_aead_chacha20poly1305_keygen=A=>(Q._crypto_aead_chacha20poly1305_keygen=q.T)(A),Q._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=(A,I,g,C,B,i,o,E,a,_,c,t)=>(Q._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=q.U)(A,I,g,C,B,i,o,E,a,_,c,t),Q._crypto_aead_xchacha20poly1305_ietf_encrypt=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_xchacha20poly1305_ietf_encrypt=q.V)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=q.W)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_xchacha20poly1305_ietf_decrypt=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_aead_xchacha20poly1305_ietf_decrypt=q.X)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_aead_xchacha20poly1305_ietf_keybytes=()=>(Q._crypto_aead_xchacha20poly1305_ietf_keybytes=q.Y)(),Q._crypto_aead_xchacha20poly1305_ietf_npubbytes=()=>(Q._crypto_aead_xchacha20poly1305_ietf_npubbytes=q.Z)(),Q._crypto_aead_xchacha20poly1305_ietf_nsecbytes=()=>(Q._crypto_aead_xchacha20poly1305_ietf_nsecbytes=q._)(),Q._crypto_aead_xchacha20poly1305_ietf_abytes=()=>(Q._crypto_aead_xchacha20poly1305_ietf_abytes=q.$)(),Q._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=()=>(Q._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=q.aa)(),Q._crypto_aead_xchacha20poly1305_ietf_keygen=A=>(Q._crypto_aead_xchacha20poly1305_ietf_keygen=q.ba)(A),Q._crypto_auth_bytes=()=>(Q._crypto_auth_bytes=q.ca)(),Q._crypto_auth_keybytes=()=>(Q._crypto_auth_keybytes=q.da)(),Q._crypto_auth_primitive=()=>(Q._crypto_auth_primitive=q.ea)(),Q._crypto_auth=(A,I,g,C,B)=>(Q._crypto_auth=q.fa)(A,I,g,C,B),Q._crypto_auth_verify=(A,I,g,C,B)=>(Q._crypto_auth_verify=q.ga)(A,I,g,C,B),Q._crypto_auth_keygen=A=>(Q._crypto_auth_keygen=q.ha)(A),Q._crypto_auth_hmacsha256_bytes=()=>(Q._crypto_auth_hmacsha256_bytes=q.ia)(),Q._crypto_auth_hmacsha256_keybytes=()=>(Q._crypto_auth_hmacsha256_keybytes=q.ja)(),Q._crypto_auth_hmacsha256_statebytes=()=>(Q._crypto_auth_hmacsha256_statebytes=q.ka)(),Q._crypto_auth_hmacsha256_keygen=A=>(Q._crypto_auth_hmacsha256_keygen=q.la)(A),Q._crypto_auth_hmacsha256_init=(A,I,g)=>(Q._crypto_auth_hmacsha256_init=q.ma)(A,I,g),Q._crypto_auth_hmacsha256_update=(A,I,g,C)=>(Q._crypto_auth_hmacsha256_update=q.na)(A,I,g,C),Q._crypto_auth_hmacsha256_final=(A,I)=>(Q._crypto_auth_hmacsha256_final=q.oa)(A,I),Q._crypto_auth_hmacsha256=(A,I,g,C,B)=>(Q._crypto_auth_hmacsha256=q.pa)(A,I,g,C,B),Q._crypto_auth_hmacsha256_verify=(A,I,g,C,B)=>(Q._crypto_auth_hmacsha256_verify=q.qa)(A,I,g,C,B),Q._crypto_auth_hmacsha512_bytes=()=>(Q._crypto_auth_hmacsha512_bytes=q.ra)(),Q._crypto_auth_hmacsha512_keybytes=()=>(Q._crypto_auth_hmacsha512_keybytes=q.sa)(),Q._crypto_auth_hmacsha512_statebytes=()=>(Q._crypto_auth_hmacsha512_statebytes=q.ta)(),Q._crypto_auth_hmacsha512_keygen=A=>(Q._crypto_auth_hmacsha512_keygen=q.ua)(A),Q._crypto_auth_hmacsha512_init=(A,I,g)=>(Q._crypto_auth_hmacsha512_init=q.va)(A,I,g),Q._crypto_auth_hmacsha512_update=(A,I,g,C)=>(Q._crypto_auth_hmacsha512_update=q.wa)(A,I,g,C),Q._crypto_auth_hmacsha512_final=(A,I)=>(Q._crypto_auth_hmacsha512_final=q.xa)(A,I),Q._crypto_auth_hmacsha512=(A,I,g,C,B)=>(Q._crypto_auth_hmacsha512=q.ya)(A,I,g,C,B),Q._crypto_auth_hmacsha512_verify=(A,I,g,C,B)=>(Q._crypto_auth_hmacsha512_verify=q.za)(A,I,g,C,B),Q._crypto_auth_hmacsha512256_bytes=()=>(Q._crypto_auth_hmacsha512256_bytes=q.Aa)(),Q._crypto_auth_hmacsha512256_keybytes=()=>(Q._crypto_auth_hmacsha512256_keybytes=q.Ba)(),Q._crypto_auth_hmacsha512256_statebytes=()=>(Q._crypto_auth_hmacsha512256_statebytes=q.Ca)(),Q._crypto_auth_hmacsha512256_keygen=A=>(Q._crypto_auth_hmacsha512256_keygen=q.Da)(A),Q._crypto_auth_hmacsha512256_init=(A,I,g)=>(Q._crypto_auth_hmacsha512256_init=q.Ea)(A,I,g),Q._crypto_auth_hmacsha512256_update=(A,I,g,C)=>(Q._crypto_auth_hmacsha512256_update=q.Fa)(A,I,g,C),Q._crypto_auth_hmacsha512256_final=(A,I)=>(Q._crypto_auth_hmacsha512256_final=q.Ga)(A,I),Q._crypto_auth_hmacsha512256=(A,I,g,C,B)=>(Q._crypto_auth_hmacsha512256=q.Ha)(A,I,g,C,B),Q._crypto_auth_hmacsha512256_verify=(A,I,g,C,B)=>(Q._crypto_auth_hmacsha512256_verify=q.Ia)(A,I,g,C,B),Q._crypto_box_seedbytes=()=>(Q._crypto_box_seedbytes=q.Ja)(),Q._crypto_box_publickeybytes=()=>(Q._crypto_box_publickeybytes=q.Ka)(),Q._crypto_box_secretkeybytes=()=>(Q._crypto_box_secretkeybytes=q.La)(),Q._crypto_box_beforenmbytes=()=>(Q._crypto_box_beforenmbytes=q.Ma)(),Q._crypto_box_noncebytes=()=>(Q._crypto_box_noncebytes=q.Na)(),Q._crypto_box_zerobytes=()=>(Q._crypto_box_zerobytes=q.Oa)(),Q._crypto_box_boxzerobytes=()=>(Q._crypto_box_boxzerobytes=q.Pa)(),Q._crypto_box_macbytes=()=>(Q._crypto_box_macbytes=q.Qa)(),Q._crypto_box_messagebytes_max=()=>(Q._crypto_box_messagebytes_max=q.Ra)(),Q._crypto_box_primitive=()=>(Q._crypto_box_primitive=q.Sa)(),Q._crypto_box_seed_keypair=(A,I,g)=>(Q._crypto_box_seed_keypair=q.Ta)(A,I,g),Q._crypto_box_keypair=(A,I)=>(Q._crypto_box_keypair=q.Ua)(A,I),Q._crypto_box_beforenm=(A,I,g)=>(Q._crypto_box_beforenm=q.Va)(A,I,g),Q._crypto_box_afternm=(A,I,g,C,B,i)=>(Q._crypto_box_afternm=q.Wa)(A,I,g,C,B,i),Q._crypto_box_open_afternm=(A,I,g,C,B,i)=>(Q._crypto_box_open_afternm=q.Xa)(A,I,g,C,B,i),Q._crypto_box=(A,I,g,C,B,i,o)=>(Q._crypto_box=q.Ya)(A,I,g,C,B,i,o),Q._crypto_box_open=(A,I,g,C,B,i,o)=>(Q._crypto_box_open=q.Za)(A,I,g,C,B,i,o),Q._crypto_box_detached_afternm=(A,I,g,C,B,i,o)=>(Q._crypto_box_detached_afternm=q._a)(A,I,g,C,B,i,o),Q._crypto_box_detached=(A,I,g,C,B,i,o,E)=>(Q._crypto_box_detached=q.$a)(A,I,g,C,B,i,o,E),Q._crypto_box_easy_afternm=(A,I,g,C,B,i)=>(Q._crypto_box_easy_afternm=q.ab)(A,I,g,C,B,i),Q._crypto_box_easy=(A,I,g,C,B,i,o)=>(Q._crypto_box_easy=q.bb)(A,I,g,C,B,i,o),Q._crypto_box_open_detached_afternm=(A,I,g,C,B,i,o)=>(Q._crypto_box_open_detached_afternm=q.cb)(A,I,g,C,B,i,o),Q._crypto_box_open_detached=(A,I,g,C,B,i,o,E)=>(Q._crypto_box_open_detached=q.db)(A,I,g,C,B,i,o,E),Q._crypto_box_open_easy_afternm=(A,I,g,C,B,i)=>(Q._crypto_box_open_easy_afternm=q.eb)(A,I,g,C,B,i),Q._crypto_box_open_easy=(A,I,g,C,B,i,o)=>(Q._crypto_box_open_easy=q.fb)(A,I,g,C,B,i,o),Q._crypto_box_seal=(A,I,g,C,B)=>(Q._crypto_box_seal=q.gb)(A,I,g,C,B),Q._crypto_box_seal_open=(A,I,g,C,B,i)=>(Q._crypto_box_seal_open=q.hb)(A,I,g,C,B,i),Q._crypto_box_sealbytes=()=>(Q._crypto_box_sealbytes=q.ib)(),Q._crypto_box_curve25519xsalsa20poly1305_seed_keypair=(A,I,g)=>(Q._crypto_box_curve25519xsalsa20poly1305_seed_keypair=q.jb)(A,I,g),Q._crypto_box_curve25519xsalsa20poly1305_keypair=(A,I)=>(Q._crypto_box_curve25519xsalsa20poly1305_keypair=q.kb)(A,I),Q._crypto_box_curve25519xsalsa20poly1305_beforenm=(A,I,g)=>(Q._crypto_box_curve25519xsalsa20poly1305_beforenm=q.lb)(A,I,g),Q._crypto_box_curve25519xsalsa20poly1305_afternm=(A,I,g,C,B,i)=>(Q._crypto_box_curve25519xsalsa20poly1305_afternm=q.mb)(A,I,g,C,B,i),Q._crypto_box_curve25519xsalsa20poly1305_open_afternm=(A,I,g,C,B,i)=>(Q._crypto_box_curve25519xsalsa20poly1305_open_afternm=q.nb)(A,I,g,C,B,i),Q._crypto_box_curve25519xsalsa20poly1305=(A,I,g,C,B,i,o)=>(Q._crypto_box_curve25519xsalsa20poly1305=q.ob)(A,I,g,C,B,i,o),Q._crypto_box_curve25519xsalsa20poly1305_open=(A,I,g,C,B,i,o)=>(Q._crypto_box_curve25519xsalsa20poly1305_open=q.pb)(A,I,g,C,B,i,o),Q._crypto_box_curve25519xsalsa20poly1305_seedbytes=()=>(Q._crypto_box_curve25519xsalsa20poly1305_seedbytes=q.qb)(),Q._crypto_box_curve25519xsalsa20poly1305_publickeybytes=()=>(Q._crypto_box_curve25519xsalsa20poly1305_publickeybytes=q.rb)(),Q._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=()=>(Q._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=q.sb)(),Q._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=()=>(Q._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=q.tb)(),Q._crypto_box_curve25519xsalsa20poly1305_noncebytes=()=>(Q._crypto_box_curve25519xsalsa20poly1305_noncebytes=q.ub)(),Q._crypto_box_curve25519xsalsa20poly1305_zerobytes=()=>(Q._crypto_box_curve25519xsalsa20poly1305_zerobytes=q.vb)(),Q._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=()=>(Q._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=q.wb)(),Q._crypto_box_curve25519xsalsa20poly1305_macbytes=()=>(Q._crypto_box_curve25519xsalsa20poly1305_macbytes=q.xb)(),Q._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=()=>(Q._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=q.yb)(),Q._crypto_core_hchacha20=(A,I,g,C)=>(Q._crypto_core_hchacha20=q.zb)(A,I,g,C),Q._crypto_core_hchacha20_outputbytes=()=>(Q._crypto_core_hchacha20_outputbytes=q.Ab)(),Q._crypto_core_hchacha20_inputbytes=()=>(Q._crypto_core_hchacha20_inputbytes=q.Bb)(),Q._crypto_core_hchacha20_keybytes=()=>(Q._crypto_core_hchacha20_keybytes=q.Cb)(),Q._crypto_core_hchacha20_constbytes=()=>(Q._crypto_core_hchacha20_constbytes=q.Db)(),Q._crypto_core_hsalsa20=(A,I,g,C)=>(Q._crypto_core_hsalsa20=q.Eb)(A,I,g,C),Q._crypto_core_hsalsa20_outputbytes=()=>(Q._crypto_core_hsalsa20_outputbytes=q.Fb)(),Q._crypto_core_hsalsa20_inputbytes=()=>(Q._crypto_core_hsalsa20_inputbytes=q.Gb)(),Q._crypto_core_hsalsa20_keybytes=()=>(Q._crypto_core_hsalsa20_keybytes=q.Hb)(),Q._crypto_core_hsalsa20_constbytes=()=>(Q._crypto_core_hsalsa20_constbytes=q.Ib)(),Q._crypto_core_salsa20=(A,I,g,C)=>(Q._crypto_core_salsa20=q.Jb)(A,I,g,C),Q._crypto_core_salsa20_outputbytes=()=>(Q._crypto_core_salsa20_outputbytes=q.Kb)(),Q._crypto_core_salsa20_inputbytes=()=>(Q._crypto_core_salsa20_inputbytes=q.Lb)(),Q._crypto_core_salsa20_keybytes=()=>(Q._crypto_core_salsa20_keybytes=q.Mb)(),Q._crypto_core_salsa20_constbytes=()=>(Q._crypto_core_salsa20_constbytes=q.Nb)(),Q._crypto_core_salsa2012=(A,I,g,C)=>(Q._crypto_core_salsa2012=q.Ob)(A,I,g,C),Q._crypto_core_salsa2012_outputbytes=()=>(Q._crypto_core_salsa2012_outputbytes=q.Pb)(),Q._crypto_core_salsa2012_inputbytes=()=>(Q._crypto_core_salsa2012_inputbytes=q.Qb)(),Q._crypto_core_salsa2012_keybytes=()=>(Q._crypto_core_salsa2012_keybytes=q.Rb)(),Q._crypto_core_salsa2012_constbytes=()=>(Q._crypto_core_salsa2012_constbytes=q.Sb)(),Q._crypto_core_salsa208=(A,I,g,C)=>(Q._crypto_core_salsa208=q.Tb)(A,I,g,C),Q._crypto_core_salsa208_outputbytes=()=>(Q._crypto_core_salsa208_outputbytes=q.Ub)(),Q._crypto_core_salsa208_inputbytes=()=>(Q._crypto_core_salsa208_inputbytes=q.Vb)(),Q._crypto_core_salsa208_keybytes=()=>(Q._crypto_core_salsa208_keybytes=q.Wb)(),Q._crypto_core_salsa208_constbytes=()=>(Q._crypto_core_salsa208_constbytes=q.Xb)(),Q._crypto_generichash_bytes_min=()=>(Q._crypto_generichash_bytes_min=q.Yb)(),Q._crypto_generichash_bytes_max=()=>(Q._crypto_generichash_bytes_max=q.Zb)(),Q._crypto_generichash_bytes=()=>(Q._crypto_generichash_bytes=q._b)(),Q._crypto_generichash_keybytes_min=()=>(Q._crypto_generichash_keybytes_min=q.$b)(),Q._crypto_generichash_keybytes_max=()=>(Q._crypto_generichash_keybytes_max=q.ac)(),Q._crypto_generichash_keybytes=()=>(Q._crypto_generichash_keybytes=q.bc)(),Q._crypto_generichash_primitive=()=>(Q._crypto_generichash_primitive=q.cc)(),Q._crypto_generichash_statebytes=()=>(Q._crypto_generichash_statebytes=q.dc)(),Q._crypto_generichash=(A,I,g,C,B,i,o)=>(Q._crypto_generichash=q.ec)(A,I,g,C,B,i,o),Q._crypto_generichash_init=(A,I,g,C)=>(Q._crypto_generichash_init=q.fc)(A,I,g,C),Q._crypto_generichash_update=(A,I,g,C)=>(Q._crypto_generichash_update=q.gc)(A,I,g,C),Q._crypto_generichash_final=(A,I,g)=>(Q._crypto_generichash_final=q.hc)(A,I,g),Q._crypto_generichash_keygen=A=>(Q._crypto_generichash_keygen=q.ic)(A),Q._crypto_generichash_blake2b_bytes_min=()=>(Q._crypto_generichash_blake2b_bytes_min=q.jc)(),Q._crypto_generichash_blake2b_bytes_max=()=>(Q._crypto_generichash_blake2b_bytes_max=q.kc)(),Q._crypto_generichash_blake2b_bytes=()=>(Q._crypto_generichash_blake2b_bytes=q.lc)(),Q._crypto_generichash_blake2b_keybytes_min=()=>(Q._crypto_generichash_blake2b_keybytes_min=q.mc)(),Q._crypto_generichash_blake2b_keybytes_max=()=>(Q._crypto_generichash_blake2b_keybytes_max=q.nc)(),Q._crypto_generichash_blake2b_keybytes=()=>(Q._crypto_generichash_blake2b_keybytes=q.oc)(),Q._crypto_generichash_blake2b_saltbytes=()=>(Q._crypto_generichash_blake2b_saltbytes=q.pc)(),Q._crypto_generichash_blake2b_personalbytes=()=>(Q._crypto_generichash_blake2b_personalbytes=q.qc)(),Q._crypto_generichash_blake2b_statebytes=()=>(Q._crypto_generichash_blake2b_statebytes=q.rc)(),Q._crypto_generichash_blake2b_keygen=A=>(Q._crypto_generichash_blake2b_keygen=q.sc)(A),Q._crypto_generichash_blake2b=(A,I,g,C,B,i,o)=>(Q._crypto_generichash_blake2b=q.tc)(A,I,g,C,B,i,o),Q._crypto_generichash_blake2b_salt_personal=(A,I,g,C,B,i,o,E,a)=>(Q._crypto_generichash_blake2b_salt_personal=q.uc)(A,I,g,C,B,i,o,E,a),Q._crypto_generichash_blake2b_init=(A,I,g,C)=>(Q._crypto_generichash_blake2b_init=q.vc)(A,I,g,C),Q._crypto_generichash_blake2b_init_salt_personal=(A,I,g,C,B,i)=>(Q._crypto_generichash_blake2b_init_salt_personal=q.wc)(A,I,g,C,B,i),Q._crypto_generichash_blake2b_update=(A,I,g,C)=>(Q._crypto_generichash_blake2b_update=q.xc)(A,I,g,C),Q._crypto_generichash_blake2b_final=(A,I,g)=>(Q._crypto_generichash_blake2b_final=q.yc)(A,I,g),Q._crypto_hash_bytes=()=>(Q._crypto_hash_bytes=q.zc)(),Q._crypto_hash=(A,I,g,C)=>(Q._crypto_hash=q.Ac)(A,I,g,C),Q._crypto_hash_primitive=()=>(Q._crypto_hash_primitive=q.Bc)(),Q._crypto_hash_sha256_bytes=()=>(Q._crypto_hash_sha256_bytes=q.Cc)(),Q._crypto_hash_sha256_statebytes=()=>(Q._crypto_hash_sha256_statebytes=q.Dc)(),Q._crypto_hash_sha256_init=A=>(Q._crypto_hash_sha256_init=q.Ec)(A),Q._crypto_hash_sha256_update=(A,I,g,C)=>(Q._crypto_hash_sha256_update=q.Fc)(A,I,g,C),Q._crypto_hash_sha256_final=(A,I)=>(Q._crypto_hash_sha256_final=q.Gc)(A,I),Q._crypto_hash_sha256=(A,I,g,C)=>(Q._crypto_hash_sha256=q.Hc)(A,I,g,C),Q._crypto_hash_sha512_bytes=()=>(Q._crypto_hash_sha512_bytes=q.Ic)(),Q._crypto_hash_sha512_statebytes=()=>(Q._crypto_hash_sha512_statebytes=q.Jc)(),Q._crypto_hash_sha512_init=A=>(Q._crypto_hash_sha512_init=q.Kc)(A),Q._crypto_hash_sha512_update=(A,I,g,C)=>(Q._crypto_hash_sha512_update=q.Lc)(A,I,g,C),Q._crypto_hash_sha512_final=(A,I)=>(Q._crypto_hash_sha512_final=q.Mc)(A,I),Q._crypto_hash_sha512=(A,I,g,C)=>(Q._crypto_hash_sha512=q.Nc)(A,I,g,C),Q._crypto_kdf_blake2b_bytes_min=()=>(Q._crypto_kdf_blake2b_bytes_min=q.Oc)(),Q._crypto_kdf_blake2b_bytes_max=()=>(Q._crypto_kdf_blake2b_bytes_max=q.Pc)(),Q._crypto_kdf_blake2b_contextbytes=()=>(Q._crypto_kdf_blake2b_contextbytes=q.Qc)(),Q._crypto_kdf_blake2b_keybytes=()=>(Q._crypto_kdf_blake2b_keybytes=q.Rc)(),Q._crypto_kdf_blake2b_derive_from_key=(A,I,g,C,B,i)=>(Q._crypto_kdf_blake2b_derive_from_key=q.Sc)(A,I,g,C,B,i),Q._crypto_kdf_primitive=()=>(Q._crypto_kdf_primitive=q.Tc)(),Q._crypto_kdf_bytes_min=()=>(Q._crypto_kdf_bytes_min=q.Uc)(),Q._crypto_kdf_bytes_max=()=>(Q._crypto_kdf_bytes_max=q.Vc)(),Q._crypto_kdf_contextbytes=()=>(Q._crypto_kdf_contextbytes=q.Wc)(),Q._crypto_kdf_keybytes=()=>(Q._crypto_kdf_keybytes=q.Xc)(),Q._crypto_kdf_derive_from_key=(A,I,g,C,B,i)=>(Q._crypto_kdf_derive_from_key=q.Yc)(A,I,g,C,B,i),Q._crypto_kdf_keygen=A=>(Q._crypto_kdf_keygen=q.Zc)(A),Q._crypto_kdf_hkdf_sha256_extract_init=(A,I,g)=>(Q._crypto_kdf_hkdf_sha256_extract_init=q._c)(A,I,g),Q._crypto_kdf_hkdf_sha256_extract_update=(A,I,g)=>(Q._crypto_kdf_hkdf_sha256_extract_update=q.$c)(A,I,g),Q._crypto_kdf_hkdf_sha256_extract_final=(A,I)=>(Q._crypto_kdf_hkdf_sha256_extract_final=q.ad)(A,I),Q._crypto_kdf_hkdf_sha256_extract=(A,I,g,C,B)=>(Q._crypto_kdf_hkdf_sha256_extract=q.bd)(A,I,g,C,B),Q._crypto_kdf_hkdf_sha256_keygen=A=>(Q._crypto_kdf_hkdf_sha256_keygen=q.cd)(A),Q._crypto_kdf_hkdf_sha256_expand=(A,I,g,C,B)=>(Q._crypto_kdf_hkdf_sha256_expand=q.dd)(A,I,g,C,B),Q._crypto_kdf_hkdf_sha256_keybytes=()=>(Q._crypto_kdf_hkdf_sha256_keybytes=q.ed)(),Q._crypto_kdf_hkdf_sha256_bytes_min=()=>(Q._crypto_kdf_hkdf_sha256_bytes_min=q.fd)(),Q._crypto_kdf_hkdf_sha256_bytes_max=()=>(Q._crypto_kdf_hkdf_sha256_bytes_max=q.gd)(),Q._crypto_kdf_hkdf_sha256_statebytes=()=>(Q._crypto_kdf_hkdf_sha256_statebytes=q.hd)(),Q._crypto_kdf_hkdf_sha512_extract_init=(A,I,g)=>(Q._crypto_kdf_hkdf_sha512_extract_init=q.id)(A,I,g),Q._crypto_kdf_hkdf_sha512_extract_update=(A,I,g)=>(Q._crypto_kdf_hkdf_sha512_extract_update=q.jd)(A,I,g),Q._crypto_kdf_hkdf_sha512_extract_final=(A,I)=>(Q._crypto_kdf_hkdf_sha512_extract_final=q.kd)(A,I),Q._crypto_kdf_hkdf_sha512_extract=(A,I,g,C,B)=>(Q._crypto_kdf_hkdf_sha512_extract=q.ld)(A,I,g,C,B),Q._crypto_kdf_hkdf_sha512_keygen=A=>(Q._crypto_kdf_hkdf_sha512_keygen=q.md)(A),Q._crypto_kdf_hkdf_sha512_expand=(A,I,g,C,B)=>(Q._crypto_kdf_hkdf_sha512_expand=q.nd)(A,I,g,C,B),Q._crypto_kdf_hkdf_sha512_keybytes=()=>(Q._crypto_kdf_hkdf_sha512_keybytes=q.od)(),Q._crypto_kdf_hkdf_sha512_bytes_min=()=>(Q._crypto_kdf_hkdf_sha512_bytes_min=q.pd)(),Q._crypto_kdf_hkdf_sha512_bytes_max=()=>(Q._crypto_kdf_hkdf_sha512_bytes_max=q.qd)(),Q._crypto_kx_seed_keypair=(A,I,g)=>(Q._crypto_kx_seed_keypair=q.rd)(A,I,g),Q._crypto_kx_keypair=(A,I)=>(Q._crypto_kx_keypair=q.sd)(A,I),Q._crypto_kx_client_session_keys=(A,I,g,C,B)=>(Q._crypto_kx_client_session_keys=q.td)(A,I,g,C,B),Q._crypto_kx_server_session_keys=(A,I,g,C,B)=>(Q._crypto_kx_server_session_keys=q.ud)(A,I,g,C,B),Q._crypto_kx_publickeybytes=()=>(Q._crypto_kx_publickeybytes=q.vd)(),Q._crypto_kx_secretkeybytes=()=>(Q._crypto_kx_secretkeybytes=q.wd)(),Q._crypto_kx_seedbytes=()=>(Q._crypto_kx_seedbytes=q.xd)(),Q._crypto_kx_sessionkeybytes=()=>(Q._crypto_kx_sessionkeybytes=q.yd)(),Q._crypto_kx_primitive=()=>(Q._crypto_kx_primitive=q.zd)(),Q._crypto_onetimeauth_statebytes=()=>(Q._crypto_onetimeauth_statebytes=q.Ad)(),Q._crypto_onetimeauth_bytes=()=>(Q._crypto_onetimeauth_bytes=q.Bd)(),Q._crypto_onetimeauth_keybytes=()=>(Q._crypto_onetimeauth_keybytes=q.Cd)(),Q._crypto_onetimeauth=(A,I,g,C,B)=>(Q._crypto_onetimeauth=q.Dd)(A,I,g,C,B),Q._crypto_onetimeauth_verify=(A,I,g,C,B)=>(Q._crypto_onetimeauth_verify=q.Ed)(A,I,g,C,B),Q._crypto_onetimeauth_init=(A,I)=>(Q._crypto_onetimeauth_init=q.Fd)(A,I),Q._crypto_onetimeauth_update=(A,I,g,C)=>(Q._crypto_onetimeauth_update=q.Gd)(A,I,g,C),Q._crypto_onetimeauth_final=(A,I)=>(Q._crypto_onetimeauth_final=q.Hd)(A,I),Q._crypto_onetimeauth_primitive=()=>(Q._crypto_onetimeauth_primitive=q.Id)(),Q._crypto_onetimeauth_keygen=A=>(Q._crypto_onetimeauth_keygen=q.Jd)(A),Q._crypto_onetimeauth_poly1305=(A,I,g,C,B)=>(Q._crypto_onetimeauth_poly1305=q.Kd)(A,I,g,C,B),Q._crypto_onetimeauth_poly1305_verify=(A,I,g,C,B)=>(Q._crypto_onetimeauth_poly1305_verify=q.Ld)(A,I,g,C,B),Q._crypto_onetimeauth_poly1305_init=(A,I)=>(Q._crypto_onetimeauth_poly1305_init=q.Md)(A,I),Q._crypto_onetimeauth_poly1305_update=(A,I,g,C)=>(Q._crypto_onetimeauth_poly1305_update=q.Nd)(A,I,g,C),Q._crypto_onetimeauth_poly1305_final=(A,I)=>(Q._crypto_onetimeauth_poly1305_final=q.Od)(A,I),Q._crypto_onetimeauth_poly1305_bytes=()=>(Q._crypto_onetimeauth_poly1305_bytes=q.Pd)(),Q._crypto_onetimeauth_poly1305_keybytes=()=>(Q._crypto_onetimeauth_poly1305_keybytes=q.Qd)(),Q._crypto_onetimeauth_poly1305_statebytes=()=>(Q._crypto_onetimeauth_poly1305_statebytes=q.Rd)(),Q._crypto_onetimeauth_poly1305_keygen=A=>(Q._crypto_onetimeauth_poly1305_keygen=q.Sd)(A),Q._crypto_pwhash_argon2i_alg_argon2i13=()=>(Q._crypto_pwhash_argon2i_alg_argon2i13=q.Td)(),Q._crypto_pwhash_argon2i_bytes_min=()=>(Q._crypto_pwhash_argon2i_bytes_min=q.Ud)(),Q._crypto_pwhash_argon2i_bytes_max=()=>(Q._crypto_pwhash_argon2i_bytes_max=q.Vd)(),Q._crypto_pwhash_argon2i_passwd_min=()=>(Q._crypto_pwhash_argon2i_passwd_min=q.Wd)(),Q._crypto_pwhash_argon2i_passwd_max=()=>(Q._crypto_pwhash_argon2i_passwd_max=q.Xd)(),Q._crypto_pwhash_argon2i_saltbytes=()=>(Q._crypto_pwhash_argon2i_saltbytes=q.Yd)(),Q._crypto_pwhash_argon2i_strbytes=()=>(Q._crypto_pwhash_argon2i_strbytes=q.Zd)(),Q._crypto_pwhash_argon2i_strprefix=()=>(Q._crypto_pwhash_argon2i_strprefix=q._d)(),Q._crypto_pwhash_argon2i_opslimit_min=()=>(Q._crypto_pwhash_argon2i_opslimit_min=q.$d)(),Q._crypto_pwhash_argon2i_opslimit_max=()=>(Q._crypto_pwhash_argon2i_opslimit_max=q.ae)(),Q._crypto_pwhash_argon2i_memlimit_min=()=>(Q._crypto_pwhash_argon2i_memlimit_min=q.be)(),Q._crypto_pwhash_argon2i_memlimit_max=()=>(Q._crypto_pwhash_argon2i_memlimit_max=q.ce)(),Q._crypto_pwhash_argon2i_opslimit_interactive=()=>(Q._crypto_pwhash_argon2i_opslimit_interactive=q.de)(),Q._crypto_pwhash_argon2i_memlimit_interactive=()=>(Q._crypto_pwhash_argon2i_memlimit_interactive=q.ee)(),Q._crypto_pwhash_argon2i_opslimit_moderate=()=>(Q._crypto_pwhash_argon2i_opslimit_moderate=q.fe)(),Q._crypto_pwhash_argon2i_memlimit_moderate=()=>(Q._crypto_pwhash_argon2i_memlimit_moderate=q.ge)(),Q._crypto_pwhash_argon2i_opslimit_sensitive=()=>(Q._crypto_pwhash_argon2i_opslimit_sensitive=q.he)(),Q._crypto_pwhash_argon2i_memlimit_sensitive=()=>(Q._crypto_pwhash_argon2i_memlimit_sensitive=q.ie)(),Q._crypto_pwhash_argon2i=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_pwhash_argon2i=q.je)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_pwhash_argon2i_str=(A,I,g,C,B,i,o)=>(Q._crypto_pwhash_argon2i_str=q.ke)(A,I,g,C,B,i,o),Q._crypto_pwhash_argon2i_str_verify=(A,I,g,C)=>(Q._crypto_pwhash_argon2i_str_verify=q.le)(A,I,g,C),Q._crypto_pwhash_argon2i_str_needs_rehash=(A,I,g,C)=>(Q._crypto_pwhash_argon2i_str_needs_rehash=q.me)(A,I,g,C),Q._crypto_pwhash_argon2id_str_needs_rehash=(A,I,g,C)=>(Q._crypto_pwhash_argon2id_str_needs_rehash=q.ne)(A,I,g,C),Q._crypto_pwhash_argon2id_alg_argon2id13=()=>(Q._crypto_pwhash_argon2id_alg_argon2id13=q.oe)(),Q._crypto_pwhash_argon2id_bytes_min=()=>(Q._crypto_pwhash_argon2id_bytes_min=q.pe)(),Q._crypto_pwhash_argon2id_bytes_max=()=>(Q._crypto_pwhash_argon2id_bytes_max=q.qe)(),Q._crypto_pwhash_argon2id_passwd_min=()=>(Q._crypto_pwhash_argon2id_passwd_min=q.re)(),Q._crypto_pwhash_argon2id_passwd_max=()=>(Q._crypto_pwhash_argon2id_passwd_max=q.se)(),Q._crypto_pwhash_argon2id_saltbytes=()=>(Q._crypto_pwhash_argon2id_saltbytes=q.te)(),Q._crypto_pwhash_argon2id_strbytes=()=>(Q._crypto_pwhash_argon2id_strbytes=q.ue)(),Q._crypto_pwhash_argon2id_strprefix=()=>(Q._crypto_pwhash_argon2id_strprefix=q.ve)(),Q._crypto_pwhash_argon2id_opslimit_min=()=>(Q._crypto_pwhash_argon2id_opslimit_min=q.we)(),Q._crypto_pwhash_argon2id_opslimit_max=()=>(Q._crypto_pwhash_argon2id_opslimit_max=q.xe)(),Q._crypto_pwhash_argon2id_memlimit_min=()=>(Q._crypto_pwhash_argon2id_memlimit_min=q.ye)(),Q._crypto_pwhash_argon2id_memlimit_max=()=>(Q._crypto_pwhash_argon2id_memlimit_max=q.ze)(),Q._crypto_pwhash_argon2id_opslimit_interactive=()=>(Q._crypto_pwhash_argon2id_opslimit_interactive=q.Ae)(),Q._crypto_pwhash_argon2id_memlimit_interactive=()=>(Q._crypto_pwhash_argon2id_memlimit_interactive=q.Be)(),Q._crypto_pwhash_argon2id_opslimit_moderate=()=>(Q._crypto_pwhash_argon2id_opslimit_moderate=q.Ce)(),Q._crypto_pwhash_argon2id_memlimit_moderate=()=>(Q._crypto_pwhash_argon2id_memlimit_moderate=q.De)(),Q._crypto_pwhash_argon2id_opslimit_sensitive=()=>(Q._crypto_pwhash_argon2id_opslimit_sensitive=q.Ee)(),Q._crypto_pwhash_argon2id_memlimit_sensitive=()=>(Q._crypto_pwhash_argon2id_memlimit_sensitive=q.Fe)(),Q._crypto_pwhash_argon2id=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_pwhash_argon2id=q.Ge)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_pwhash_argon2id_str=(A,I,g,C,B,i,o)=>(Q._crypto_pwhash_argon2id_str=q.He)(A,I,g,C,B,i,o),Q._crypto_pwhash_argon2id_str_verify=(A,I,g,C)=>(Q._crypto_pwhash_argon2id_str_verify=q.Ie)(A,I,g,C),Q._crypto_pwhash_alg_argon2i13=()=>(Q._crypto_pwhash_alg_argon2i13=q.Je)(),Q._crypto_pwhash_alg_argon2id13=()=>(Q._crypto_pwhash_alg_argon2id13=q.Ke)(),Q._crypto_pwhash_alg_default=()=>(Q._crypto_pwhash_alg_default=q.Le)(),Q._crypto_pwhash_bytes_min=()=>(Q._crypto_pwhash_bytes_min=q.Me)(),Q._crypto_pwhash_bytes_max=()=>(Q._crypto_pwhash_bytes_max=q.Ne)(),Q._crypto_pwhash_passwd_min=()=>(Q._crypto_pwhash_passwd_min=q.Oe)(),Q._crypto_pwhash_passwd_max=()=>(Q._crypto_pwhash_passwd_max=q.Pe)(),Q._crypto_pwhash_saltbytes=()=>(Q._crypto_pwhash_saltbytes=q.Qe)(),Q._crypto_pwhash_strbytes=()=>(Q._crypto_pwhash_strbytes=q.Re)(),Q._crypto_pwhash_strprefix=()=>(Q._crypto_pwhash_strprefix=q.Se)(),Q._crypto_pwhash_opslimit_min=()=>(Q._crypto_pwhash_opslimit_min=q.Te)(),Q._crypto_pwhash_opslimit_max=()=>(Q._crypto_pwhash_opslimit_max=q.Ue)(),Q._crypto_pwhash_memlimit_min=()=>(Q._crypto_pwhash_memlimit_min=q.Ve)(),Q._crypto_pwhash_memlimit_max=()=>(Q._crypto_pwhash_memlimit_max=q.We)(),Q._crypto_pwhash_opslimit_interactive=()=>(Q._crypto_pwhash_opslimit_interactive=q.Xe)(),Q._crypto_pwhash_memlimit_interactive=()=>(Q._crypto_pwhash_memlimit_interactive=q.Ye)(),Q._crypto_pwhash_opslimit_moderate=()=>(Q._crypto_pwhash_opslimit_moderate=q.Ze)(),Q._crypto_pwhash_memlimit_moderate=()=>(Q._crypto_pwhash_memlimit_moderate=q._e)(),Q._crypto_pwhash_opslimit_sensitive=()=>(Q._crypto_pwhash_opslimit_sensitive=q.$e)(),Q._crypto_pwhash_memlimit_sensitive=()=>(Q._crypto_pwhash_memlimit_sensitive=q.af)(),Q._crypto_pwhash=(A,I,g,C,B,i,o,E,a,_,c)=>(Q._crypto_pwhash=q.bf)(A,I,g,C,B,i,o,E,a,_,c),Q._crypto_pwhash_str=(A,I,g,C,B,i,o)=>(Q._crypto_pwhash_str=q.cf)(A,I,g,C,B,i,o),Q._crypto_pwhash_str_alg=(A,I,g,C,B,i,o,E)=>(Q._crypto_pwhash_str_alg=q.df)(A,I,g,C,B,i,o,E),Q._crypto_pwhash_str_verify=(A,I,g,C)=>(Q._crypto_pwhash_str_verify=q.ef)(A,I,g,C),Q._crypto_pwhash_str_needs_rehash=(A,I,g,C)=>(Q._crypto_pwhash_str_needs_rehash=q.ff)(A,I,g,C),Q._crypto_pwhash_primitive=()=>(Q._crypto_pwhash_primitive=q.gf)(),Q._crypto_scalarmult_primitive=()=>(Q._crypto_scalarmult_primitive=q.hf)(),Q._crypto_scalarmult_base=(A,I)=>(Q._crypto_scalarmult_base=q.jf)(A,I),Q._crypto_scalarmult=(A,I,g)=>(Q._crypto_scalarmult=q.kf)(A,I,g),Q._crypto_scalarmult_bytes=()=>(Q._crypto_scalarmult_bytes=q.lf)(),Q._crypto_scalarmult_scalarbytes=()=>(Q._crypto_scalarmult_scalarbytes=q.mf)(),Q._crypto_scalarmult_curve25519=(A,I,g)=>(Q._crypto_scalarmult_curve25519=q.nf)(A,I,g),Q._crypto_scalarmult_curve25519_base=(A,I)=>(Q._crypto_scalarmult_curve25519_base=q.of)(A,I),Q._crypto_scalarmult_curve25519_bytes=()=>(Q._crypto_scalarmult_curve25519_bytes=q.pf)(),Q._crypto_scalarmult_curve25519_scalarbytes=()=>(Q._crypto_scalarmult_curve25519_scalarbytes=q.qf)(),Q._crypto_secretbox_keybytes=()=>(Q._crypto_secretbox_keybytes=q.rf)(),Q._crypto_secretbox_noncebytes=()=>(Q._crypto_secretbox_noncebytes=q.sf)(),Q._crypto_secretbox_zerobytes=()=>(Q._crypto_secretbox_zerobytes=q.tf)(),Q._crypto_secretbox_boxzerobytes=()=>(Q._crypto_secretbox_boxzerobytes=q.uf)(),Q._crypto_secretbox_macbytes=()=>(Q._crypto_secretbox_macbytes=q.vf)(),Q._crypto_secretbox_messagebytes_max=()=>(Q._crypto_secretbox_messagebytes_max=q.wf)(),Q._crypto_secretbox_primitive=()=>(Q._crypto_secretbox_primitive=q.xf)(),Q._crypto_secretbox=(A,I,g,C,B,i)=>(Q._crypto_secretbox=q.yf)(A,I,g,C,B,i),Q._crypto_secretbox_open=(A,I,g,C,B,i)=>(Q._crypto_secretbox_open=q.zf)(A,I,g,C,B,i),Q._crypto_secretbox_keygen=A=>(Q._crypto_secretbox_keygen=q.Af)(A),Q._crypto_secretbox_detached=(A,I,g,C,B,i,o)=>(Q._crypto_secretbox_detached=q.Bf)(A,I,g,C,B,i,o),Q._crypto_secretbox_easy=(A,I,g,C,B,i)=>(Q._crypto_secretbox_easy=q.Cf)(A,I,g,C,B,i),Q._crypto_secretbox_open_detached=(A,I,g,C,B,i,o)=>(Q._crypto_secretbox_open_detached=q.Df)(A,I,g,C,B,i,o),Q._crypto_secretbox_open_easy=(A,I,g,C,B,i)=>(Q._crypto_secretbox_open_easy=q.Ef)(A,I,g,C,B,i),Q._crypto_secretbox_xsalsa20poly1305=(A,I,g,C,B,i)=>(Q._crypto_secretbox_xsalsa20poly1305=q.Ff)(A,I,g,C,B,i),Q._crypto_secretbox_xsalsa20poly1305_open=(A,I,g,C,B,i)=>(Q._crypto_secretbox_xsalsa20poly1305_open=q.Gf)(A,I,g,C,B,i),Q._crypto_secretbox_xsalsa20poly1305_keybytes=()=>(Q._crypto_secretbox_xsalsa20poly1305_keybytes=q.Hf)(),Q._crypto_secretbox_xsalsa20poly1305_noncebytes=()=>(Q._crypto_secretbox_xsalsa20poly1305_noncebytes=q.If)(),Q._crypto_secretbox_xsalsa20poly1305_zerobytes=()=>(Q._crypto_secretbox_xsalsa20poly1305_zerobytes=q.Jf)(),Q._crypto_secretbox_xsalsa20poly1305_boxzerobytes=()=>(Q._crypto_secretbox_xsalsa20poly1305_boxzerobytes=q.Kf)(),Q._crypto_secretbox_xsalsa20poly1305_macbytes=()=>(Q._crypto_secretbox_xsalsa20poly1305_macbytes=q.Lf)(),Q._crypto_secretbox_xsalsa20poly1305_messagebytes_max=()=>(Q._crypto_secretbox_xsalsa20poly1305_messagebytes_max=q.Mf)(),Q._crypto_secretbox_xsalsa20poly1305_keygen=A=>(Q._crypto_secretbox_xsalsa20poly1305_keygen=q.Nf)(A),Q._crypto_secretstream_xchacha20poly1305_keygen=A=>(Q._crypto_secretstream_xchacha20poly1305_keygen=q.Of)(A),Q._crypto_secretstream_xchacha20poly1305_init_push=(A,I,g)=>(Q._crypto_secretstream_xchacha20poly1305_init_push=q.Pf)(A,I,g),Q._crypto_secretstream_xchacha20poly1305_init_pull=(A,I,g)=>(Q._crypto_secretstream_xchacha20poly1305_init_pull=q.Qf)(A,I,g),Q._crypto_secretstream_xchacha20poly1305_rekey=A=>(Q._crypto_secretstream_xchacha20poly1305_rekey=q.Rf)(A),Q._crypto_secretstream_xchacha20poly1305_push=(A,I,g,C,B,i,o,E,a,_)=>(Q._crypto_secretstream_xchacha20poly1305_push=q.Sf)(A,I,g,C,B,i,o,E,a,_),Q._crypto_secretstream_xchacha20poly1305_pull=(A,I,g,C,B,i,o,E,a,_)=>(Q._crypto_secretstream_xchacha20poly1305_pull=q.Tf)(A,I,g,C,B,i,o,E,a,_),Q._crypto_secretstream_xchacha20poly1305_statebytes=()=>(Q._crypto_secretstream_xchacha20poly1305_statebytes=q.Uf)(),Q._crypto_secretstream_xchacha20poly1305_abytes=()=>(Q._crypto_secretstream_xchacha20poly1305_abytes=q.Vf)(),Q._crypto_secretstream_xchacha20poly1305_headerbytes=()=>(Q._crypto_secretstream_xchacha20poly1305_headerbytes=q.Wf)(),Q._crypto_secretstream_xchacha20poly1305_keybytes=()=>(Q._crypto_secretstream_xchacha20poly1305_keybytes=q.Xf)(),Q._crypto_secretstream_xchacha20poly1305_messagebytes_max=()=>(Q._crypto_secretstream_xchacha20poly1305_messagebytes_max=q.Yf)(),Q._crypto_secretstream_xchacha20poly1305_tag_message=()=>(Q._crypto_secretstream_xchacha20poly1305_tag_message=q.Zf)(),Q._crypto_secretstream_xchacha20poly1305_tag_push=()=>(Q._crypto_secretstream_xchacha20poly1305_tag_push=q._f)(),Q._crypto_secretstream_xchacha20poly1305_tag_rekey=()=>(Q._crypto_secretstream_xchacha20poly1305_tag_rekey=q.$f)(),Q._crypto_secretstream_xchacha20poly1305_tag_final=()=>(Q._crypto_secretstream_xchacha20poly1305_tag_final=q.ag)(),Q._crypto_shorthash_bytes=()=>(Q._crypto_shorthash_bytes=q.bg)(),Q._crypto_shorthash_keybytes=()=>(Q._crypto_shorthash_keybytes=q.cg)(),Q._crypto_shorthash_primitive=()=>(Q._crypto_shorthash_primitive=q.dg)(),Q._crypto_shorthash=(A,I,g,C,B)=>(Q._crypto_shorthash=q.eg)(A,I,g,C,B),Q._crypto_shorthash_keygen=A=>(Q._crypto_shorthash_keygen=q.fg)(A),Q._crypto_shorthash_siphash24_bytes=()=>(Q._crypto_shorthash_siphash24_bytes=q.gg)(),Q._crypto_shorthash_siphash24_keybytes=()=>(Q._crypto_shorthash_siphash24_keybytes=q.hg)(),Q._crypto_shorthash_siphash24=(A,I,g,C,B)=>(Q._crypto_shorthash_siphash24=q.ig)(A,I,g,C,B),Q._crypto_sign_statebytes=()=>(Q._crypto_sign_statebytes=q.jg)(),Q._crypto_sign_bytes=()=>(Q._crypto_sign_bytes=q.kg)(),Q._crypto_sign_seedbytes=()=>(Q._crypto_sign_seedbytes=q.lg)(),Q._crypto_sign_publickeybytes=()=>(Q._crypto_sign_publickeybytes=q.mg)(),Q._crypto_sign_secretkeybytes=()=>(Q._crypto_sign_secretkeybytes=q.ng)(),Q._crypto_sign_messagebytes_max=()=>(Q._crypto_sign_messagebytes_max=q.og)(),Q._crypto_sign_primitive=()=>(Q._crypto_sign_primitive=q.pg)(),Q._crypto_sign_seed_keypair=(A,I,g)=>(Q._crypto_sign_seed_keypair=q.qg)(A,I,g),Q._crypto_sign_keypair=(A,I)=>(Q._crypto_sign_keypair=q.rg)(A,I),Q._crypto_sign=(A,I,g,C,B,i)=>(Q._crypto_sign=q.sg)(A,I,g,C,B,i),Q._crypto_sign_open=(A,I,g,C,B,i)=>(Q._crypto_sign_open=q.tg)(A,I,g,C,B,i),Q._crypto_sign_detached=(A,I,g,C,B,i)=>(Q._crypto_sign_detached=q.ug)(A,I,g,C,B,i),Q._crypto_sign_verify_detached=(A,I,g,C,B)=>(Q._crypto_sign_verify_detached=q.vg)(A,I,g,C,B),Q._crypto_sign_init=A=>(Q._crypto_sign_init=q.wg)(A),Q._crypto_sign_update=(A,I,g,C)=>(Q._crypto_sign_update=q.xg)(A,I,g,C),Q._crypto_sign_final_create=(A,I,g,C)=>(Q._crypto_sign_final_create=q.yg)(A,I,g,C),Q._crypto_sign_final_verify=(A,I,g)=>(Q._crypto_sign_final_verify=q.zg)(A,I,g),Q._crypto_sign_ed25519ph_statebytes=()=>(Q._crypto_sign_ed25519ph_statebytes=q.Ag)(),Q._crypto_sign_ed25519_bytes=()=>(Q._crypto_sign_ed25519_bytes=q.Bg)(),Q._crypto_sign_ed25519_seedbytes=()=>(Q._crypto_sign_ed25519_seedbytes=q.Cg)(),Q._crypto_sign_ed25519_publickeybytes=()=>(Q._crypto_sign_ed25519_publickeybytes=q.Dg)(),Q._crypto_sign_ed25519_secretkeybytes=()=>(Q._crypto_sign_ed25519_secretkeybytes=q.Eg)(),Q._crypto_sign_ed25519_messagebytes_max=()=>(Q._crypto_sign_ed25519_messagebytes_max=q.Fg)(),Q._crypto_sign_ed25519_sk_to_seed=(A,I)=>(Q._crypto_sign_ed25519_sk_to_seed=q.Gg)(A,I),Q._crypto_sign_ed25519_sk_to_pk=(A,I)=>(Q._crypto_sign_ed25519_sk_to_pk=q.Hg)(A,I),Q._crypto_sign_ed25519ph_init=A=>(Q._crypto_sign_ed25519ph_init=q.Ig)(A),Q._crypto_sign_ed25519ph_update=(A,I,g,C)=>(Q._crypto_sign_ed25519ph_update=q.Jg)(A,I,g,C),Q._crypto_sign_ed25519ph_final_create=(A,I,g,C)=>(Q._crypto_sign_ed25519ph_final_create=q.Kg)(A,I,g,C),Q._crypto_sign_ed25519ph_final_verify=(A,I,g)=>(Q._crypto_sign_ed25519ph_final_verify=q.Lg)(A,I,g),Q._crypto_sign_ed25519_seed_keypair=(A,I,g)=>(Q._crypto_sign_ed25519_seed_keypair=q.Mg)(A,I,g),Q._crypto_sign_ed25519_keypair=(A,I)=>(Q._crypto_sign_ed25519_keypair=q.Ng)(A,I),Q._crypto_sign_ed25519_pk_to_curve25519=(A,I)=>(Q._crypto_sign_ed25519_pk_to_curve25519=q.Og)(A,I),Q._crypto_sign_ed25519_sk_to_curve25519=(A,I)=>(Q._crypto_sign_ed25519_sk_to_curve25519=q.Pg)(A,I),Q._crypto_sign_ed25519_verify_detached=(A,I,g,C,B)=>(Q._crypto_sign_ed25519_verify_detached=q.Qg)(A,I,g,C,B),Q._crypto_sign_ed25519_open=(A,I,g,C,B,i)=>(Q._crypto_sign_ed25519_open=q.Rg)(A,I,g,C,B,i),Q._crypto_sign_ed25519_detached=(A,I,g,C,B,i)=>(Q._crypto_sign_ed25519_detached=q.Sg)(A,I,g,C,B,i),Q._crypto_sign_ed25519=(A,I,g,C,B,i)=>(Q._crypto_sign_ed25519=q.Tg)(A,I,g,C,B,i),Q._crypto_stream_chacha20_keybytes=()=>(Q._crypto_stream_chacha20_keybytes=q.Ug)(),Q._crypto_stream_chacha20_noncebytes=()=>(Q._crypto_stream_chacha20_noncebytes=q.Vg)(),Q._crypto_stream_chacha20_messagebytes_max=()=>(Q._crypto_stream_chacha20_messagebytes_max=q.Wg)(),Q._crypto_stream_chacha20_ietf_keybytes=()=>(Q._crypto_stream_chacha20_ietf_keybytes=q.Xg)(),Q._crypto_stream_chacha20_ietf_noncebytes=()=>(Q._crypto_stream_chacha20_ietf_noncebytes=q.Yg)(),Q._crypto_stream_chacha20_ietf_messagebytes_max=()=>(Q._crypto_stream_chacha20_ietf_messagebytes_max=q.Zg)(),Q._crypto_stream_chacha20=(A,I,g,C,B)=>(Q._crypto_stream_chacha20=q._g)(A,I,g,C,B),Q._crypto_stream_chacha20_xor_ic=(A,I,g,C,B,i,o,E)=>(Q._crypto_stream_chacha20_xor_ic=q.$g)(A,I,g,C,B,i,o,E),Q._crypto_stream_chacha20_xor=(A,I,g,C,B,i)=>(Q._crypto_stream_chacha20_xor=q.ah)(A,I,g,C,B,i),Q._crypto_stream_chacha20_ietf=(A,I,g,C,B)=>(Q._crypto_stream_chacha20_ietf=q.bh)(A,I,g,C,B),Q._crypto_stream_chacha20_ietf_xor_ic=(A,I,g,C,B,i,o)=>(Q._crypto_stream_chacha20_ietf_xor_ic=q.ch)(A,I,g,C,B,i,o),Q._crypto_stream_chacha20_ietf_xor=(A,I,g,C,B,i)=>(Q._crypto_stream_chacha20_ietf_xor=q.dh)(A,I,g,C,B,i),Q._crypto_stream_chacha20_ietf_keygen=A=>(Q._crypto_stream_chacha20_ietf_keygen=q.eh)(A),Q._crypto_stream_chacha20_keygen=A=>(Q._crypto_stream_chacha20_keygen=q.fh)(A),Q._crypto_stream_keybytes=()=>(Q._crypto_stream_keybytes=q.gh)(),Q._crypto_stream_noncebytes=()=>(Q._crypto_stream_noncebytes=q.hh)(),Q._crypto_stream_messagebytes_max=()=>(Q._crypto_stream_messagebytes_max=q.ih)(),Q._crypto_stream_primitive=()=>(Q._crypto_stream_primitive=q.jh)(),Q._crypto_stream=(A,I,g,C,B)=>(Q._crypto_stream=q.kh)(A,I,g,C,B),Q._crypto_stream_xor=(A,I,g,C,B,i)=>(Q._crypto_stream_xor=q.lh)(A,I,g,C,B,i),Q._crypto_stream_keygen=A=>(Q._crypto_stream_keygen=q.mh)(A),Q._crypto_stream_salsa20_keybytes=()=>(Q._crypto_stream_salsa20_keybytes=q.nh)(),Q._crypto_stream_salsa20_noncebytes=()=>(Q._crypto_stream_salsa20_noncebytes=q.oh)(),Q._crypto_stream_salsa20_messagebytes_max=()=>(Q._crypto_stream_salsa20_messagebytes_max=q.ph)(),Q._crypto_stream_salsa20=(A,I,g,C,B)=>(Q._crypto_stream_salsa20=q.qh)(A,I,g,C,B),Q._crypto_stream_salsa20_xor_ic=(A,I,g,C,B,i,o,E)=>(Q._crypto_stream_salsa20_xor_ic=q.rh)(A,I,g,C,B,i,o,E),Q._crypto_stream_salsa20_xor=(A,I,g,C,B,i)=>(Q._crypto_stream_salsa20_xor=q.sh)(A,I,g,C,B,i),Q._crypto_stream_salsa20_keygen=A=>(Q._crypto_stream_salsa20_keygen=q.th)(A),Q._crypto_stream_xsalsa20=(A,I,g,C,B)=>(Q._crypto_stream_xsalsa20=q.uh)(A,I,g,C,B),Q._crypto_stream_xsalsa20_xor_ic=(A,I,g,C,B,i,o,E)=>(Q._crypto_stream_xsalsa20_xor_ic=q.vh)(A,I,g,C,B,i,o,E),Q._crypto_stream_xsalsa20_xor=(A,I,g,C,B,i)=>(Q._crypto_stream_xsalsa20_xor=q.wh)(A,I,g,C,B,i),Q._crypto_stream_xsalsa20_keybytes=()=>(Q._crypto_stream_xsalsa20_keybytes=q.xh)(),Q._crypto_stream_xsalsa20_noncebytes=()=>(Q._crypto_stream_xsalsa20_noncebytes=q.yh)(),Q._crypto_stream_xsalsa20_messagebytes_max=()=>(Q._crypto_stream_xsalsa20_messagebytes_max=q.zh)(),Q._crypto_stream_xsalsa20_keygen=A=>(Q._crypto_stream_xsalsa20_keygen=q.Ah)(A),Q._crypto_verify_16_bytes=()=>(Q._crypto_verify_16_bytes=q.Bh)(),Q._crypto_verify_32_bytes=()=>(Q._crypto_verify_32_bytes=q.Ch)(),Q._crypto_verify_64_bytes=()=>(Q._crypto_verify_64_bytes=q.Dh)(),Q._crypto_verify_16=(A,I)=>(Q._crypto_verify_16=q.Eh)(A,I),Q._crypto_verify_32=(A,I)=>(Q._crypto_verify_32=q.Fh)(A,I),Q._crypto_verify_64=(A,I)=>(Q._crypto_verify_64=q.Gh)(A,I),Q._randombytes_implementation_name=()=>(Q._randombytes_implementation_name=q.Hh)(),Q._randombytes_random=()=>(Q._randombytes_random=q.Ih)(),Q._randombytes_stir=()=>(Q._randombytes_stir=q.Jh)(),Q._randombytes_uniform=A=>(Q._randombytes_uniform=q.Kh)(A),Q._randombytes_buf=(A,I)=>(Q._randombytes_buf=q.Lh)(A,I),Q._randombytes_buf_deterministic=(A,I,g)=>(Q._randombytes_buf_deterministic=q.Mh)(A,I,g),Q._randombytes_seedbytes=()=>(Q._randombytes_seedbytes=q.Nh)(),Q._randombytes_close=()=>(Q._randombytes_close=q.Oh)(),Q._randombytes=(A,I,g)=>(Q._randombytes=q.Ph)(A,I,g),Q._sodium_bin2hex=(A,I,g,C)=>(Q._sodium_bin2hex=q.Qh)(A,I,g,C),Q._sodium_hex2bin=(A,I,g,C,B,i,o)=>(Q._sodium_hex2bin=q.Rh)(A,I,g,C,B,i,o),Q._sodium_base64_encoded_len=(A,I)=>(Q._sodium_base64_encoded_len=q.Sh)(A,I),Q._sodium_bin2base64=(A,I,g,C,B)=>(Q._sodium_bin2base64=q.Th)(A,I,g,C,B),Q._sodium_base642bin=(A,I,g,C,B,i,o,E)=>(Q._sodium_base642bin=q.Uh)(A,I,g,C,B,i,o,E),Q._sodium_init=()=>(Q._sodium_init=q.Vh)(),Q._sodium_pad=(A,I,g,C,B)=>(Q._sodium_pad=q.Wh)(A,I,g,C,B),Q._sodium_unpad=(A,I,g,C)=>(Q._sodium_unpad=q.Xh)(A,I,g,C),Q._sodium_version_string=()=>(Q._sodium_version_string=q.Yh)(),Q._sodium_library_version_major=()=>(Q._sodium_library_version_major=q.Zh)(),Q._sodium_library_version_minor=()=>(Q._sodium_library_version_minor=q._h)(),Q._sodium_library_minimal=()=>(Q._sodium_library_minimal=q.$h)(),Q._crypto_box_curve25519xchacha20poly1305_seed_keypair=(A,I,g)=>(Q._crypto_box_curve25519xchacha20poly1305_seed_keypair=q.ai)(A,I,g),Q._crypto_box_curve25519xchacha20poly1305_keypair=(A,I)=>(Q._crypto_box_curve25519xchacha20poly1305_keypair=q.bi)(A,I),Q._crypto_box_curve25519xchacha20poly1305_beforenm=(A,I,g)=>(Q._crypto_box_curve25519xchacha20poly1305_beforenm=q.ci)(A,I,g),Q._crypto_box_curve25519xchacha20poly1305_detached_afternm=(A,I,g,C,B,i,o)=>(Q._crypto_box_curve25519xchacha20poly1305_detached_afternm=q.di)(A,I,g,C,B,i,o),Q._crypto_box_curve25519xchacha20poly1305_detached=(A,I,g,C,B,i,o,E)=>(Q._crypto_box_curve25519xchacha20poly1305_detached=q.ei)(A,I,g,C,B,i,o,E),Q._crypto_box_curve25519xchacha20poly1305_easy_afternm=(A,I,g,C,B,i)=>(Q._crypto_box_curve25519xchacha20poly1305_easy_afternm=q.fi)(A,I,g,C,B,i),Q._crypto_box_curve25519xchacha20poly1305_easy=(A,I,g,C,B,i,o)=>(Q._crypto_box_curve25519xchacha20poly1305_easy=q.gi)(A,I,g,C,B,i,o),Q._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=(A,I,g,C,B,i,o)=>(Q._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=q.hi)(A,I,g,C,B,i,o),Q._crypto_box_curve25519xchacha20poly1305_open_detached=(A,I,g,C,B,i,o,E)=>(Q._crypto_box_curve25519xchacha20poly1305_open_detached=q.ii)(A,I,g,C,B,i,o,E),Q._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=(A,I,g,C,B,i)=>(Q._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=q.ji)(A,I,g,C,B,i),Q._crypto_box_curve25519xchacha20poly1305_open_easy=(A,I,g,C,B,i,o)=>(Q._crypto_box_curve25519xchacha20poly1305_open_easy=q.ki)(A,I,g,C,B,i,o),Q._crypto_box_curve25519xchacha20poly1305_seedbytes=()=>(Q._crypto_box_curve25519xchacha20poly1305_seedbytes=q.li)(),Q._crypto_box_curve25519xchacha20poly1305_publickeybytes=()=>(Q._crypto_box_curve25519xchacha20poly1305_publickeybytes=q.mi)(),Q._crypto_box_curve25519xchacha20poly1305_secretkeybytes=()=>(Q._crypto_box_curve25519xchacha20poly1305_secretkeybytes=q.ni)(),Q._crypto_box_curve25519xchacha20poly1305_beforenmbytes=()=>(Q._crypto_box_curve25519xchacha20poly1305_beforenmbytes=q.oi)(),Q._crypto_box_curve25519xchacha20poly1305_noncebytes=()=>(Q._crypto_box_curve25519xchacha20poly1305_noncebytes=q.pi)(),Q._crypto_box_curve25519xchacha20poly1305_macbytes=()=>(Q._crypto_box_curve25519xchacha20poly1305_macbytes=q.qi)(),Q._crypto_box_curve25519xchacha20poly1305_messagebytes_max=()=>(Q._crypto_box_curve25519xchacha20poly1305_messagebytes_max=q.ri)(),Q._crypto_box_curve25519xchacha20poly1305_seal=(A,I,g,C,B)=>(Q._crypto_box_curve25519xchacha20poly1305_seal=q.si)(A,I,g,C,B),Q._crypto_box_curve25519xchacha20poly1305_seal_open=(A,I,g,C,B,i)=>(Q._crypto_box_curve25519xchacha20poly1305_seal_open=q.ti)(A,I,g,C,B,i),Q._crypto_box_curve25519xchacha20poly1305_sealbytes=()=>(Q._crypto_box_curve25519xchacha20poly1305_sealbytes=q.ui)(),Q._crypto_core_ed25519_is_valid_point=A=>(Q._crypto_core_ed25519_is_valid_point=q.vi)(A),Q._crypto_core_ed25519_add=(A,I,g)=>(Q._crypto_core_ed25519_add=q.wi)(A,I,g),Q._crypto_core_ed25519_sub=(A,I,g)=>(Q._crypto_core_ed25519_sub=q.xi)(A,I,g),Q._crypto_core_ed25519_from_uniform=(A,I)=>(Q._crypto_core_ed25519_from_uniform=q.yi)(A,I),Q._crypto_core_ed25519_random=A=>(Q._crypto_core_ed25519_random=q.zi)(A),Q._crypto_core_ed25519_scalar_random=A=>(Q._crypto_core_ed25519_scalar_random=q.Ai)(A),Q._crypto_core_ed25519_scalar_invert=(A,I)=>(Q._crypto_core_ed25519_scalar_invert=q.Bi)(A,I),Q._crypto_core_ed25519_scalar_negate=(A,I)=>(Q._crypto_core_ed25519_scalar_negate=q.Ci)(A,I),Q._crypto_core_ed25519_scalar_complement=(A,I)=>(Q._crypto_core_ed25519_scalar_complement=q.Di)(A,I),Q._crypto_core_ed25519_scalar_add=(A,I,g)=>(Q._crypto_core_ed25519_scalar_add=q.Ei)(A,I,g),Q._crypto_core_ed25519_scalar_reduce=(A,I)=>(Q._crypto_core_ed25519_scalar_reduce=q.Fi)(A,I),Q._crypto_core_ed25519_scalar_sub=(A,I,g)=>(Q._crypto_core_ed25519_scalar_sub=q.Gi)(A,I,g),Q._crypto_core_ed25519_scalar_mul=(A,I,g)=>(Q._crypto_core_ed25519_scalar_mul=q.Hi)(A,I,g),Q._crypto_core_ed25519_bytes=()=>(Q._crypto_core_ed25519_bytes=q.Ii)(),Q._crypto_core_ed25519_nonreducedscalarbytes=()=>(Q._crypto_core_ed25519_nonreducedscalarbytes=q.Ji)(),Q._crypto_core_ed25519_uniformbytes=()=>(Q._crypto_core_ed25519_uniformbytes=q.Ki)(),Q._crypto_core_ed25519_hashbytes=()=>(Q._crypto_core_ed25519_hashbytes=q.Li)(),Q._crypto_core_ed25519_scalarbytes=()=>(Q._crypto_core_ed25519_scalarbytes=q.Mi)(),Q._crypto_core_ristretto255_is_valid_point=A=>(Q._crypto_core_ristretto255_is_valid_point=q.Ni)(A),Q._crypto_core_ristretto255_add=(A,I,g)=>(Q._crypto_core_ristretto255_add=q.Oi)(A,I,g),Q._crypto_core_ristretto255_sub=(A,I,g)=>(Q._crypto_core_ristretto255_sub=q.Pi)(A,I,g),Q._crypto_core_ristretto255_from_hash=(A,I)=>(Q._crypto_core_ristretto255_from_hash=q.Qi)(A,I),Q._crypto_core_ristretto255_random=A=>(Q._crypto_core_ristretto255_random=q.Ri)(A),Q._crypto_core_ristretto255_scalar_random=A=>(Q._crypto_core_ristretto255_scalar_random=q.Si)(A),Q._crypto_core_ristretto255_scalar_invert=(A,I)=>(Q._crypto_core_ristretto255_scalar_invert=q.Ti)(A,I),Q._crypto_core_ristretto255_scalar_negate=(A,I)=>(Q._crypto_core_ristretto255_scalar_negate=q.Ui)(A,I),Q._crypto_core_ristretto255_scalar_complement=(A,I)=>(Q._crypto_core_ristretto255_scalar_complement=q.Vi)(A,I),Q._crypto_core_ristretto255_scalar_add=(A,I,g)=>(Q._crypto_core_ristretto255_scalar_add=q.Wi)(A,I,g),Q._crypto_core_ristretto255_scalar_sub=(A,I,g)=>(Q._crypto_core_ristretto255_scalar_sub=q.Xi)(A,I,g),Q._crypto_core_ristretto255_scalar_mul=(A,I,g)=>(Q._crypto_core_ristretto255_scalar_mul=q.Yi)(A,I,g),Q._crypto_core_ristretto255_scalar_reduce=(A,I)=>(Q._crypto_core_ristretto255_scalar_reduce=q.Zi)(A,I),Q._crypto_core_ristretto255_bytes=()=>(Q._crypto_core_ristretto255_bytes=q._i)(),Q._crypto_core_ristretto255_nonreducedscalarbytes=()=>(Q._crypto_core_ristretto255_nonreducedscalarbytes=q.$i)(),Q._crypto_core_ristretto255_hashbytes=()=>(Q._crypto_core_ristretto255_hashbytes=q.aj)(),Q._crypto_core_ristretto255_scalarbytes=()=>(Q._crypto_core_ristretto255_scalarbytes=q.bj)(),Q._crypto_pwhash_scryptsalsa208sha256_ll=(A,I,g,C,B,i,o,E,a,_)=>(Q._crypto_pwhash_scryptsalsa208sha256_ll=q.cj)(A,I,g,C,B,i,o,E,a,_),Q._crypto_pwhash_scryptsalsa208sha256_bytes_min=()=>(Q._crypto_pwhash_scryptsalsa208sha256_bytes_min=q.dj)(),Q._crypto_pwhash_scryptsalsa208sha256_bytes_max=()=>(Q._crypto_pwhash_scryptsalsa208sha256_bytes_max=q.ej)(),Q._crypto_pwhash_scryptsalsa208sha256_passwd_min=()=>(Q._crypto_pwhash_scryptsalsa208sha256_passwd_min=q.fj)(),Q._crypto_pwhash_scryptsalsa208sha256_passwd_max=()=>(Q._crypto_pwhash_scryptsalsa208sha256_passwd_max=q.gj)(),Q._crypto_pwhash_scryptsalsa208sha256_saltbytes=()=>(Q._crypto_pwhash_scryptsalsa208sha256_saltbytes=q.hj)(),Q._crypto_pwhash_scryptsalsa208sha256_strbytes=()=>(Q._crypto_pwhash_scryptsalsa208sha256_strbytes=q.ij)(),Q._crypto_pwhash_scryptsalsa208sha256_strprefix=()=>(Q._crypto_pwhash_scryptsalsa208sha256_strprefix=q.jj)(),Q._crypto_pwhash_scryptsalsa208sha256_opslimit_min=()=>(Q._crypto_pwhash_scryptsalsa208sha256_opslimit_min=q.kj)(),Q._crypto_pwhash_scryptsalsa208sha256_opslimit_max=()=>(Q._crypto_pwhash_scryptsalsa208sha256_opslimit_max=q.lj)(),Q._crypto_pwhash_scryptsalsa208sha256_memlimit_min=()=>(Q._crypto_pwhash_scryptsalsa208sha256_memlimit_min=q.mj)(),Q._crypto_pwhash_scryptsalsa208sha256_memlimit_max=()=>(Q._crypto_pwhash_scryptsalsa208sha256_memlimit_max=q.nj)(),Q._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=()=>(Q._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=q.oj)(),Q._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=()=>(Q._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=q.pj)(),Q._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=()=>(Q._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=q.qj)(),Q._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=()=>(Q._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=q.rj)(),Q._crypto_pwhash_scryptsalsa208sha256=(A,I,g,C,B,i,o,E,a,_)=>(Q._crypto_pwhash_scryptsalsa208sha256=q.sj)(A,I,g,C,B,i,o,E,a,_),Q._crypto_pwhash_scryptsalsa208sha256_str=(A,I,g,C,B,i,o)=>(Q._crypto_pwhash_scryptsalsa208sha256_str=q.tj)(A,I,g,C,B,i,o),Q._crypto_pwhash_scryptsalsa208sha256_str_verify=(A,I,g,C)=>(Q._crypto_pwhash_scryptsalsa208sha256_str_verify=q.uj)(A,I,g,C),Q._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=(A,I,g,C)=>(Q._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=q.vj)(A,I,g,C),Q._crypto_scalarmult_ed25519=(A,I,g)=>(Q._crypto_scalarmult_ed25519=q.wj)(A,I,g),Q._crypto_scalarmult_ed25519_noclamp=(A,I,g)=>(Q._crypto_scalarmult_ed25519_noclamp=q.xj)(A,I,g),Q._crypto_scalarmult_ed25519_base=(A,I)=>(Q._crypto_scalarmult_ed25519_base=q.yj)(A,I),Q._crypto_scalarmult_ed25519_base_noclamp=(A,I)=>(Q._crypto_scalarmult_ed25519_base_noclamp=q.zj)(A,I),Q._crypto_scalarmult_ed25519_bytes=()=>(Q._crypto_scalarmult_ed25519_bytes=q.Aj)(),Q._crypto_scalarmult_ed25519_scalarbytes=()=>(Q._crypto_scalarmult_ed25519_scalarbytes=q.Bj)(),Q._crypto_scalarmult_ristretto255=(A,I,g)=>(Q._crypto_scalarmult_ristretto255=q.Cj)(A,I,g),Q._crypto_scalarmult_ristretto255_base=(A,I)=>(Q._crypto_scalarmult_ristretto255_base=q.Dj)(A,I),Q._crypto_scalarmult_ristretto255_bytes=()=>(Q._crypto_scalarmult_ristretto255_bytes=q.Ej)(),Q._crypto_scalarmult_ristretto255_scalarbytes=()=>(Q._crypto_scalarmult_ristretto255_scalarbytes=q.Fj)(),Q._crypto_secretbox_xchacha20poly1305_detached=(A,I,g,C,B,i,o)=>(Q._crypto_secretbox_xchacha20poly1305_detached=q.Gj)(A,I,g,C,B,i,o),Q._crypto_secretbox_xchacha20poly1305_easy=(A,I,g,C,B,i)=>(Q._crypto_secretbox_xchacha20poly1305_easy=q.Hj)(A,I,g,C,B,i),Q._crypto_secretbox_xchacha20poly1305_open_detached=(A,I,g,C,B,i,o)=>(Q._crypto_secretbox_xchacha20poly1305_open_detached=q.Ij)(A,I,g,C,B,i,o),Q._crypto_secretbox_xchacha20poly1305_open_easy=(A,I,g,C,B,i)=>(Q._crypto_secretbox_xchacha20poly1305_open_easy=q.Jj)(A,I,g,C,B,i),Q._crypto_secretbox_xchacha20poly1305_keybytes=()=>(Q._crypto_secretbox_xchacha20poly1305_keybytes=q.Kj)(),Q._crypto_secretbox_xchacha20poly1305_noncebytes=()=>(Q._crypto_secretbox_xchacha20poly1305_noncebytes=q.Lj)(),Q._crypto_secretbox_xchacha20poly1305_macbytes=()=>(Q._crypto_secretbox_xchacha20poly1305_macbytes=q.Mj)(),Q._crypto_secretbox_xchacha20poly1305_messagebytes_max=()=>(Q._crypto_secretbox_xchacha20poly1305_messagebytes_max=q.Nj)(),Q._crypto_shorthash_siphashx24_bytes=()=>(Q._crypto_shorthash_siphashx24_bytes=q.Oj)(),Q._crypto_shorthash_siphashx24_keybytes=()=>(Q._crypto_shorthash_siphashx24_keybytes=q.Pj)(),Q._crypto_shorthash_siphashx24=(A,I,g,C,B)=>(Q._crypto_shorthash_siphashx24=q.Qj)(A,I,g,C,B),Q._crypto_stream_salsa2012=(A,I,g,C,B)=>(Q._crypto_stream_salsa2012=q.Rj)(A,I,g,C,B),Q._crypto_stream_salsa2012_xor=(A,I,g,C,B,i)=>(Q._crypto_stream_salsa2012_xor=q.Sj)(A,I,g,C,B,i),Q._crypto_stream_salsa2012_keybytes=()=>(Q._crypto_stream_salsa2012_keybytes=q.Tj)(),Q._crypto_stream_salsa2012_noncebytes=()=>(Q._crypto_stream_salsa2012_noncebytes=q.Uj)(),Q._crypto_stream_salsa2012_messagebytes_max=()=>(Q._crypto_stream_salsa2012_messagebytes_max=q.Vj)(),Q._crypto_stream_salsa2012_keygen=A=>(Q._crypto_stream_salsa2012_keygen=q.Wj)(A),Q._crypto_stream_salsa208=(A,I,g,C,B)=>(Q._crypto_stream_salsa208=q.Xj)(A,I,g,C,B),Q._crypto_stream_salsa208_xor=(A,I,g,C,B,i)=>(Q._crypto_stream_salsa208_xor=q.Yj)(A,I,g,C,B,i),Q._crypto_stream_salsa208_keybytes=()=>(Q._crypto_stream_salsa208_keybytes=q.Zj)(),Q._crypto_stream_salsa208_noncebytes=()=>(Q._crypto_stream_salsa208_noncebytes=q._j)(),Q._crypto_stream_salsa208_messagebytes_max=()=>(Q._crypto_stream_salsa208_messagebytes_max=q.$j)(),Q._crypto_stream_salsa208_keygen=A=>(Q._crypto_stream_salsa208_keygen=q.ak)(A),Q._crypto_stream_xchacha20_keybytes=()=>(Q._crypto_stream_xchacha20_keybytes=q.bk)(),Q._crypto_stream_xchacha20_noncebytes=()=>(Q._crypto_stream_xchacha20_noncebytes=q.ck)(),Q._crypto_stream_xchacha20_messagebytes_max=()=>(Q._crypto_stream_xchacha20_messagebytes_max=q.dk)(),Q._crypto_stream_xchacha20=(A,I,g,C,B)=>(Q._crypto_stream_xchacha20=q.ek)(A,I,g,C,B),Q._crypto_stream_xchacha20_xor_ic=(A,I,g,C,B,i,o,E)=>(Q._crypto_stream_xchacha20_xor_ic=q.fk)(A,I,g,C,B,i,o,E),Q._crypto_stream_xchacha20_xor=(A,I,g,C,B,i)=>(Q._crypto_stream_xchacha20_xor=q.gk)(A,I,g,C,B,i),Q._crypto_stream_xchacha20_keygen=A=>(Q._crypto_stream_xchacha20_keygen=q.hk)(A),Q._malloc=A=>(Q._malloc=q.ik)(A),Q._free=A=>(Q._free=q.jk)(A),Q.setValue=function(A,I,g="i8"){switch(g.endsWith("*")&&(g="*"),g){case"i1":case"i8":s[A>>0]=I;break;case"i16":D[A>>1]=I;break;case"i32":p[A>>2]=I;break;case"i64":H("to do setValue(i64) use WASM_BIGINT");case"float":f[A>>2]=I;break;case"double":n[A>>3]=I;break;case"*":w[A>>2]=I;break;default:H(`invalid type for setValue: ${g}`)}},Q.getValue=function(A,I="i8"){switch(I.endsWith("*")&&(I="*"),I){case"i1":case"i8":return s[A>>0];case"i16":return D[A>>1];case"i32":return p[A>>2];case"i64":H("to do getValue(i64) use WASM_BIGINT");case"float":return f[A>>2];case"double":return n[A>>3];case"*":return w[A>>2];default:H(`invalid type for getValue: ${I}`)}},Q.UTF8ToString=R,K=function A(){l||z(),l||(K=A)},Q.preInit)for("function"==typeof Q.preInit&&(Q.preInit=[Q.preInit]);Q.preInit.length>0;)Q.preInit.pop()();z()})).catch((function(){return C.useBackupModule()})),I} true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (I), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):0,t&&e.sodium.ready.then((function(){t(e.sodium)}))}(this); + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):0}(this); /***/ }), -/***/ "./node_modules/libsodium/dist/modules/libsodium.js": -/*!**********************************************************!*\ - !*** ./node_modules/libsodium/dist/modules/libsodium.js ***! - \**********************************************************/ +/***/ "./node_modules/libsodium-wrappers-sumo/dist/modules-sumo/libsodium-wrappers.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/libsodium-wrappers-sumo/dist/modules-sumo/libsodium-wrappers.js ***! + \**************************************************************************************/ /***/ (function(module, exports, __webpack_require__) { -var __dirname = "/"; -/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!function(A){function I(A){"use strict";var I;void 0===(I=A)&&(I={});var g=I;"object"!=typeof g.sodium&&("object"==typeof __webpack_require__.g?g=__webpack_require__.g:"object"==typeof window&&(g=window));var C=I;return I.ready=new Promise((function(A,I){(i=C).onAbort=I,i.print=function(A){},i.printErr=function(A){},i.onRuntimeInitialized=function(){try{i._crypto_secretbox_keybytes(),A()}catch(A){I(A)}},i.useBackupModule=function(){return new Promise((function(A,I){(i={}).onAbort=I,i.onRuntimeInitialized=function(){Object.keys(C).forEach((function(A){"getRandomValue"!==A&&delete C[A]})),Object.keys(i).forEach((function(A){C[A]=i[A]})),A()};var g,B,Q,i=void 0!==i?i:{},E=Object.assign({},i),o="object"==typeof window,a="function"==typeof importScripts,n= true&&"object"==typeof ({"env":{"NODE_ENV":"production"}}).versions&&"string"==typeof ({"env":{"NODE_ENV":"production"}}).versions.node,r="";if(n){var f=__webpack_require__(/*! fs */ "?f0f8"),t=__webpack_require__(/*! path */ "?ebe9");r=a?t.dirname(r)+"/":__dirname+"/",g=(A,I)=>{var g=T(A);return g?I?g:g.toString():(A=x(A)?new URL(A):t.normalize(A),f.readFileSync(A,I?void 0:"utf8"))},Q=A=>{var I=g(A,!0);return I.buffer||(I=new Uint8Array(I)),I},B=(A,I,g)=>{var C=T(A);C&&I(C),A=x(A)?new URL(A):t.normalize(A),f.readFile(A,(function(A,C){A?g(A):I(C.buffer)}))},({"env":{"NODE_ENV":"production"}}).argv.length>1&&({"env":{"NODE_ENV":"production"}}).argv[1].replace(/\\/g,"/"),({"env":{"NODE_ENV":"production"}}).argv.slice(2), true&&(module.exports=i),i.inspect=function(){return"[Emscripten Module object]"}}else(o||a)&&(a?r=self.location.href:"undefined"!=typeof document&&document.currentScript&&(r=document.currentScript.src),r=0!==r.indexOf("blob:")?r.substr(0,r.replace(/[?#].*/,"").lastIndexOf("/")+1):"",g=A=>{try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.send(null),I.responseText}catch(I){var g=T(A);if(g)return function(A){for(var I=[],g=0;g255&&(C&=255),I.push(String.fromCharCode(C))}return I.join("")}(g);throw I}},a&&(Q=A=>{try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)}catch(I){var g=T(A);if(g)return g;throw I}}),B=(A,I,g)=>{var C=new XMLHttpRequest;C.open("GET",A,!0),C.responseType="arraybuffer",C.onload=()=>{if(200==C.status||0==C.status&&C.response)I(C.response);else{var B=T(A);B?I(B.buffer):g()}},C.onerror=g,C.send(null)});i.print;var e,c=i.printErr||void 0;Object.assign(i,E),E=null,i.arguments&&i.arguments,i.thisProgram&&i.thisProgram,i.quit&&i.quit,i.wasmBinary&&(e=i.wasmBinary),i.noExitRuntime;var y,D={Memory:function(A){this.buffer=new ArrayBuffer(65536*A.initial)},Module:function(A){},Instance:function(A,I){this.exports=function(A){for(var I,g=new Uint8Array(123),C=25;C>=0;--C)g[48+C]=52+C,g[65+C]=C,g[97+C]=26+C;function B(A,I,C){for(var B,Q,i=0,E=I,o=C.length,a=I+(3*o>>2)-("="==C[o-2])-("="==C[o-1]);i>4,E>2),E>>0>x>>>0?o+1|0:o)|0,o=(QA=(n=x)>>>0>(x=x+QA|0)>>>0?o+1|0:o)+yA|0,iA=cA=x+eA|0,cA=o=cA>>>0>>0?o+1|0:o,x=nA(x^(a[A+80|0]|a[A+81|0]<<8|a[A+82|0]<<16|a[A+83|0]<<24)^-79577749,QA^(a[A+84|0]|a[A+85|0]<<8|a[A+86|0]<<16|a[A+87|0]<<24)^528734635,32),FA=o=w,o=o+1013904242|0,QA=x,T=o=(x=x-23791573|0)>>>0<4271175723?o+1|0:o,rA=nA(x^aA,o^rA,40),o=(o=cA)+(cA=w)|0,aA=nA(QA^(D=aA=rA+iA|0),FA^(h=D>>>0>>0?o+1|0:o),48),o=T+(L=w)|0,k=o=(aA=x+(s=aA)|0)>>>0>>0?o+1|0:o,aA=o=nA(rA^(u=aA),cA^o,1),T=x=w,cA=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,FA=o=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,tA=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,x=(rA=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24)+(QA=a[A+40|0]|a[A+41|0]<<8|a[A+42|0]<<16|a[A+43|0]<<24)|0,o=(MA=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24)+(UA=a[A+44|0]|a[A+45|0]<<8|a[A+46|0]<<16|a[A+47|0]<<24)|0,o=(a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24)+(x>>>0>>0?o+1|0:o)|0,o=FA+(iA=(n=x)>>>0>(x=x+tA|0)>>>0?o+1|0:o)|0,o=(tA=x+cA|0)>>>0>>0?o+1|0:o,n=nA(x^(a[A+72|0]|a[A+73|0]<<8|a[A+74|0]<<16|a[A+75|0]<<24)^725511199,iA^(a[A+76|0]|a[A+77|0]<<8|a[A+78|0]<<16|a[A+79|0]<<24)^-1694144372,32),e=nA(QA^(r=n-2067093701|0),UA^(m=(b=x=w)-((n>>>0<2067093701)+1150833018|0)|0),40),o=(R=w)+o|0,o=(Y=(F=x=e+tA|0)>>>0>>0?o+1|0:o)+T|0,o=(F>>>0>(x=F+aA|0)>>>0?o+1|0:o)+z|0,o=(QA=(f=x)>>>0>(x=x+EA|0)>>>0?o+1|0:o)+X|0,P=X=x+g|0,y=o=X>>>0>>0?o+1|0:o,p=aA,uA=T,T=x,iA=QA,aA=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,x=o=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,UA=o=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,Q=QA=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,z=o,o=(lA=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24)+(t=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24)|0,o=Q+((X=a[A+32|0]|a[A+33|0]<<8|a[A+34|0]<<16|a[A+35|0]<<24)>>>0>(f=X+(QA=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24)|0)>>>0?o+1|0:o)|0,o=(tA=(z=f+z|0)>>>0>>0?o+1|0:o)+x|0,sA=f=z+aA|0,f=o=f>>>0>>0?o+1|0:o,c=X,X=nA(z^(a[0|(o=A- -64|0)]|a[o+1|0]<<8|a[o+2|0]<<16|a[o+3|0]<<24)^-1377402159,tA^(a[o+4|0]|a[o+5|0]<<8|a[o+6|0]<<16|a[o+7|0]<<24)^1359893119,32),tA=o=w,o=o+1779033703|0,z=X,U=o=(X=X-205731576|0)>>>0<4089235720?o+1|0:o,t=nA(c^(l=X),o^t,40),o=(K=w)+f|0,c=nA(z^(f=X=t+sA|0),tA^(H=t>>>0>f>>>0?o+1|0:o),48),o=nA(c^T,(Z=w)^iA,32),O=X=w,v=o,C=o=a[I+60|0]|a[I+61|0]<<8|a[I+62|0]<<16|a[I+63|0]<<24,tA=sA=a[I+56|0]|a[I+57|0]<<8|a[I+58|0]<<16|a[I+59|0]<<24,G=a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,X=(iA=a[I+48|0]|a[I+49|0]<<8|a[I+50|0]<<16|a[I+51|0]<<24)+(z=a[A+56|0]|a[A+57|0]<<8|a[A+58|0]<<16|a[A+59|0]<<24)|0,o=(SA=a[I+52|0]|a[I+53|0]<<8|a[I+54|0]<<16|a[I+55|0]<<24)+(_=a[A+60|0]|a[A+61|0]<<8|a[A+62|0]<<16|a[A+63|0]<<24)|0,o=(a[A+28|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24)+(X>>>0>>0?o+1|0:o)|0,o=C+(T=(M=X)>>>0>(X=G+X|0)>>>0?o+1|0:o)|0,o=(G=X+tA|0)>>>0>>0?o+1|0:o,T=nA(X^(a[A+88|0]|a[A+89|0]<<8|a[A+90|0]<<16|a[A+91|0]<<24)^327033209,T^(a[A+92|0]|a[A+93|0]<<8|a[A+94|0]<<16|a[A+95|0]<<24)^1541459225,32),z=nA(z^(tA=T+1595750129|0),(M=_)^(_=(J=X=w)-((T>>>0<2699217167)+1521486533|0)|0),40),o=(IA=w)+o|0,X=nA((G=X=z+G|0)^T,J^(M=G>>>0>>0?o+1|0:o),48),o=_+($=w)|0,N=o=(X=tA+(_=X)|0)>>>0>>0?o+1|0:o,o=O+o|0,V=p^(T=v+(J=X)|0),p=o=T>>>0>>0?o+1|0:o,tA=nA(V,o^uA,40),o=(uA=w)+y|0,X=nA(P=v^(y=X=tA+P|0),O^(v=y>>>0>>0?o+1|0:o),48),o=p+(CA=w)|0,O=o=(p=T+(P=X)|0)>>>0>>0?o+1|0:o,X=(d=nA(p^tA,uA^o,1))+(T=a[I+72|0]|a[I+73|0]<<8|a[I+74|0]<<16|a[I+75|0]<<24)|0,o=(wA=w)+(uA=a[I+76|0]|a[I+77|0]<<8|a[I+78|0]<<16|a[I+79|0]<<24)|0,kA=X,j=X>>>0>>0?o+1|0:o,W=DA,X=a[I+96|0]|a[I+97|0]<<8|a[I+98|0]<<16|a[I+99|0]<<24,tA=o=a[I+100|0]|a[I+101|0]<<8|a[I+102|0]<<16|a[I+103|0]<<24,z=(o=D)+(D=nA(J^z,N^IA,1))|0,o=(J=w)+h|0,o=(D>>>0>z>>>0?o+1|0:o)+tA|0,o=(h=(h=z)>>>0>(z=X+z|0)>>>0?o+1|0:o)+W|0,V=N=z+gA|0,N=o=N>>>0>>0?o+1|0:o,F=nA(n^F,Y^b,48),Y=o=nA(F^z,(b=w)^h,32),o=U+Z|0,o=(IA=z=w)+(l=(z=c+l|0)>>>0>>0?o+1|0:o)|0,U=o=(h=z)>>>0>(c=h+Y|0)>>>0?o+1|0:o,D=nA(c^D,J^o,40),o=(Z=w)+N|0,o=(J=D>>>0>(N=z=D+V|0)>>>0?o+1|0:o)+j|0,o=(n=N>>>0>(z=N+kA|0)>>>0?o+1|0:o)+pA|0,kA=j=z+oA|0,j=o=j>>>0>>0?o+1|0:o,V=z,W=n,z=a[I+116|0]|a[I+117|0]<<8|a[I+118|0]<<16|a[I+119|0]<<24,I=a[I+112|0]|a[I+113|0]<<8|a[I+114|0]<<16|a[I+115|0]<<24,t=nA(t^h,l^K,1),o=(K=w)+M|0,o=((n=t+G|0)>>>0>>0?o+1|0:o)+z|0,o=(h=(l=n)>>>0>(n=I+n|0)>>>0?o+1|0:o)+pA|0,GA=l=n+oA|0,l=o=l>>>0>>0?o+1|0:o,o=nA(n^s,h^L,32),AA=n=w,s=o,h=n,o=b+m|0,F=n=r+F|0,G=o=n>>>0>>0?o+1|0:o,o=o+h|0,M=n=n+s|0,L=o=F>>>0>n>>>0?o+1|0:o,h=nA(n^t,K^o,40),o=(K=w)+l|0,s=nA((n=h+GA|0)^s,AA^(r=n>>>0>>0?o+1|0:o),48),o=nA(s^V,(GA=w)^W,32),AA=t=w,l=o,V=t,e=nA(e^F,G^R,1),o=H+(F=w)|0,o=((t=f)>>>0>(f=f+e|0)>>>0?o+1|0:o)+BA|0,o=(f=(t=f+q|0)>>>0>>0?o+1|0:o)+uA|0,W=H=t+T|0,H=o=H>>>0>>0?o+1|0:o,G=e,t=nA(t^_,f^$,32),o=(_=w)+k|0,u=nA(G^(f=e=t+u|0),(k=t>>>0>f>>>0?o+1|0:o)^F,40),o=($=w)+H|0,F=e=u+W|0,e=nA(t^e,_^(H=e>>>0>>0?o+1|0:o),48),o=k+(i=w)|0,k=e,_=o=(e=f+e|0)>>>0>>0?o+1|0:o,o=o+V|0,o=(G=e)>>>0>(e=e+l|0)>>>0?o+1|0:o,V=e,e^=d,d=o,t=nA(e,wA^o,40),o=(wA=w)+j|0,j=e=t+kA|0,o=B+(W=t>>>0>e>>>0?o+1|0:o)|0,kA=e=e+g|0,b=o=e>>>0>>0?o+1|0:o,e=n,m=gA,R=DA,n=nA(Y^N,J^IA,48),o=U+(IA=w)|0,Y=n,U=o=(f=c+n|0)>>>0>>0?o+1|0:o,n=nA(f^D,Z^o,1),o=(c=w)+R|0,o=((D=n+m|0)>>>0>>0?o+1|0:o)+r|0,o=SA+(e=(r=e+D|0)>>>0>>0?o+1|0:o)|0,N=D=r+iA|0,D=o=D>>>0>>0?o+1|0:o,r=nA(r^k,e^i,32),o=O+(J=w)|0,k=r,p=o=(r=p+r|0)>>>0

>>0?o+1|0:o,e=nA(n^r,o^c,40),o=(o=D)+(D=w)|0,c=n=e+N|0,n=nA(n^k,J^(N=n>>>0>>0?o+1|0:o),48),o=p+(Z=w)|0,J=n,O=o=(p=r+n|0)>>>0>>0?o+1|0:o,n=nA(e^p,D^o,1),o=(D=w)+b|0,o=C+(e=(r=n+kA|0)>>>0>>0?o+1|0:o)|0,kA=k=r+sA|0,k=o=k>>>0>>0?o+1|0:o,b=n,m=D,o=L+GA|0,o=(n=s+M|0)>>>0>>0?o+1|0:o,s=n,M=o,o=nA(n^h,K^o,1),h=D=w,n=o,o=H+z|0,o=((F=I+F|0)>>>0>>0?o+1|0:o)+D|0,o=hA+(F=(D=n+F|0)>>>0>>0?o+1|0:o)|0,L=H=D+EA|0,H=o=H>>>0>>0?o+1|0:o,D=nA(D^P,F^CA,32),o=U+(P=w)|0,F=D,U=o=(U=f)>>>0>(f=f+D|0)>>>0?o+1|0:o,D=nA(n^f,o^h,40),o=(K=w)+H|0,h=n=D+L|0,n=nA(H=n^F,P^(F=n>>>0>>0?o+1|0:o),48),o=U+(CA=w)|0,U=n,H=n=f+n|0,P=o=n>>>0>>0?o+1|0:o,L=r,R=e,n=nA(u^G,_^$,1),o=(f=w)+S|0,o=v+((r=n+fA|0)>>>0>>0?o+1|0:o)|0,o=BA+(e=(r=r+y|0)>>>0>>0?o+1|0:o)|0,v=y=r+q|0,y=o=y>>>0>>0?o+1|0:o,u=n,n=(r=nA(r^Y,e^IA,32))+s|0,o=(s=w)+M|0,e=n,f=nA(n^u,(Y=n>>>0>>0?o+1|0:o)^f,40),o=(IA=w)+y|0,y=n=f+v|0,G=nA(n^r,s^(v=n>>>0>>0?o+1|0:o),48),r=nA(G^L,(o=R)^(R=w),32),o=(L=w)+P|0,s=n=r+H|0,u=nA(n^b,(M=n>>>0>>0?o+1|0:o)^m,40),o=(b=w)+k|0,k=n=u+kA|0,n=nA(n^r,L^(_=n>>>0>>0?o+1|0:o),48),o=M+($=w)|0,M=n,L=o=(r=s)>>>0>(s=s+n|0)>>>0?o+1|0:o,n=nA(s^u,b^o,1),o=pA+(kA=w)|0,b=n,GA=n=oA+n|0,u=o=n>>>0>>0?o+1|0:o,r=eA,n=nA(D^H,K^P,1),o=N+(D=w)|0,o=((H=c)>>>0>(c=n+c|0)>>>0?o+1|0:o)+yA|0,o=(H=(r=r+c|0)>>>0>>0?o+1|0:o)+FA|0,m=c=r+cA|0,N=o=c>>>0>>0?o+1|0:o,P=n,c=nA(l^j,W^AA,48),o=nA(c^r,(K=w)^H,32),AA=n=w,l=o,r=n,o=Y+R|0,o=(n=e+G|0)>>>0>>0?o+1|0:o,e=n,Y=o,o=o+r|0,H=n=n+l|0,G=o=e>>>0>n>>>0?o+1|0:o,r=nA(n^P,o^D,40),o=(o=N)+(N=w)|0,P=n=r+m|0,j=o=n>>>0>>0?o+1|0:o,o=o+u|0,W=o=(D=n+GA|0)>>>0>>0?o+1|0:o,u=o,n=nA(f^e,Y^IA,1),o=x+(f=w)|0,o=F+((e=n+aA|0)>>>0>>0?o+1|0:o)|0,o=tA+(h=(e=e+h|0)>>>0>>0?o+1|0:o)|0,m=F=e+X|0,F=o=F>>>0>>0?o+1|0:o,Y=n,o=nA(e^J,h^Z,32),R=n=w,e=o,h=n,o=K+d|0,J=n=c+V|0,d=o=n>>>0>>0?o+1|0:o,o=o+h|0,o=(c=n+e|0)>>>0>>0?o+1|0:o,n=c^Y,Y=o,h=nA(n,o^f,40),o=(Z=w)+F|0,f=n=h+m|0,V=nA(n^e,R^(F=n>>>0>>0?o+1|0:o),48),o=nA(V^D,(IA=w)^u,32),GA=n=w,m=o,u=n,n=nA(t^J,d^wA,1),o=v+(t=w)|0,o=lA+((e=n+y|0)>>>0>>0?o+1|0:o)|0,o=(y=(e=e+QA|0)>>>0>>0?o+1|0:o)+MA|0,J=v=e+rA|0,v=o=v>>>0>>0?o+1|0:o,e=nA(e^U,y^CA,32),o=O+(d=w)|0,U=e,y=t,t=o=(e=p+e|0)>>>0

>>0?o+1|0:o,y=nA(n^e,y^o,40),o=(CA=w)+v|0,p=n=y+J|0,n=nA(J=n^U,d^(U=n>>>0>>0?o+1|0:o),48),o=t+(K=w)|0,t=n,v=n=e+n|0,J=o=n>>>0>>0?o+1|0:o,o=o+u|0,O=o=(u=n+m|0)>>>0>>0?o+1|0:o,e=nA(u^b,kA^o,40),o=W+(d=w)|0,o=((n=e+D|0)>>>0>>0?o+1|0:o)+DA|0,D=n,W=n=n+gA|0,b=o=D>>>0>n>>>0?o+1|0:o,R=BA,D=nA(l^P,j^AA,48),o=(wA=w)+G|0,l=n=D+H|0,o=nA(n^r,(H=n>>>0>>0?o+1|0:o)^N,1),N=r=w,n=o,o=F+B|0,o=((f=f+g|0)>>>0>>0?o+1|0:o)+r|0,o=(f=(r=n+f|0)>>>0>>0?o+1|0:o)+R|0,G=F=r+q|0,F=o=F>>>0>>0?o+1|0:o,r=nA(r^t,f^K,32),o=L+(P=w)|0,s=o=(t=r+s|0)>>>0>>0?o+1|0:o,f=nA(n^t,o^N,40),o=(j=w)+F|0,F=n=f+G|0,r=nA(n^r,P^(N=n>>>0>>0?o+1|0:o),48),o=s+(G=w)|0,P=o=(s=r+t|0)>>>0>>0?o+1|0:o,n=nA(f^s,j^o,1),o=(j=w)+b|0,o=uA+((t=n+W|0)>>>0>>0?o+1|0:o)|0,o=(f=(t=t+T|0)>>>0>>0?o+1|0:o)+S|0,kA=S=t+fA|0,S=o=S>>>0>>0?o+1|0:o,L=n,R=t,K=f,t=eA,n=nA(y^v,J^CA,1),o=_+(y=w)|0,o=((f=k)>>>0>(k=n+k|0)>>>0?o+1|0:o)+yA|0,o=MA+(f=(t=t+k|0)>>>0>>0?o+1|0:o)|0,_=k=t+rA|0,v=o=k>>>0>>0?o+1|0:o,k=n,f=o=nA(t^D,f^wA,32),o=Y+IA|0,o=(J=n=w)+(c=(n=c+V|0)>>>0>>0?o+1|0:o)|0,Y=o=(D=n+f|0)>>>0>>0?o+1|0:o,k=nA(D^k,o^y,40),o=(IA=w)+v|0,v=nA(_=(t=k+_|0)^f,J^(f=t>>>0>>0?o+1|0:o),48),o=nA(v^R,(CA=w)^K,32),wA=y=w,_=o,J=y,n=nA(n^h,c^Z,1),o=tA+(y=w)|0,o=U+((c=n+X|0)>>>0>>0?o+1|0:o)|0,o=lA+(p=(c=c+p|0)>>>0

>>0?o+1|0:o)|0,R=h=c+QA|0,h=o=h>>>0>>0?o+1|0:o,U=n,V=y,c=nA(c^M,p^$,32),o=(M=w)+H|0,y=n=c+l|0,p=nA(n^U,(l=n>>>0>>0?o+1|0:o)^V,40),o=(Z=w)+h|0,U=n=p+R|0,n=nA(n^c,M^(H=n>>>0

>>0?o+1|0:o),48),o=l+(R=w)|0,h=n,l=n=y+n|0,M=o=n>>>0>>0?o+1|0:o,o=o+J|0,J=n=n+_|0,c=j,j=o=l>>>0>n>>>0?o+1|0:o,c=nA(n^L,c^o,40),o=(o=S)+(S=w)|0,V=n=c+kA|0,L=o=n>>>0>>0?o+1|0:o,y=f,n=nA(m^W,b^GA,48),o=O+($=w)|0,O=n,f=(n=u+n|0)^e,e=o=n>>>0>>0?o+1|0:o,f=nA(f,o^d,1),o=(d=w)+y|0,o=C+((t=f+t|0)>>>0>>0?o+1|0:o)|0,o=(y=(t=t+sA|0)>>>0>>0?o+1|0:o)+x|0,W=u=t+aA|0,u=o=u>>>0>>0?o+1|0:o,t=nA(t^h,y^R,32),o=P+(b=w)|0,P=t,s=o=(y=s+t|0)>>>0>>0?o+1|0:o,f=nA(f^y,d^o,40),o=(o=u)+(u=w)|0,h=t=f+W|0,t=nA(m=t^P,b^(P=t>>>0>>0?o+1|0:o),48),o=s+(kA=w)|0,d=t,W=o=(s=y+t|0)>>>0>>0?o+1|0:o,t=nA(f^s,u^o,1),o=(u=w)+L|0,o=B+((f=t+V|0)>>>0>>0?o+1|0:o)|0,o=z+(y=(f=f+g|0)>>>0>>0?o+1|0:o)|0,GA=b=I+f|0,b=o=b>>>0>>0?o+1|0:o,m=t,R=u,u=f,K=y,t=nA(p^l,M^Z,1),o=(y=w)+N|0,o=hA+((f=t+F|0)>>>0>>0?o+1|0:o)|0,o=(p=(f=f+EA|0)>>>0>>0?o+1|0:o)+z|0,N=F=I+f|0,F=o=F>>>0>>0?o+1|0:o,l=t,f=o=nA(f^O,p^$,32),p=t=w,o=Y+CA|0,Y=o=(t=D+v|0)>>>0>>0?o+1|0:o,o=o+p|0,o=(D=t)>>>0>(t=t+f|0)>>>0?o+1|0:o,v=t,t^=l,l=o,y=nA(t,o^y,40),o=(Z=w)+F|0,p=nA(F=(t=y+N|0)^f,p^(f=t>>>0>>0?o+1|0:o),48),o=nA(p^u,(o=K)^(K=w),32),$=u=w,F=o,N=e,e=r,o=nA(D^k,Y^IA,1),M=r=w,D=o,o=H+FA|0,o=((k=U+cA|0)>>>0>>0?o+1|0:o)+r|0,k=o=(r=D+k|0)>>>0>>0?o+1|0:o,e=nA(r^e,o^G,32),o=(o=N)+(N=w)|0,D=nA((n=e+n|0)^D,M^(Y=n>>>0>>0?o+1|0:o),40),o=k+(IA=w)|0,U=D,o=SA+((H=r)>>>0>(r=r+D|0)>>>0?o+1|0:o)|0,H=o=(D=r+iA|0)>>>0>>0?o+1|0:o,r=nA(e^D,N^o,48),o=Y+(CA=w)|0,G=n,e=r,Y=n=n+r|0,N=o=G>>>0>n>>>0?o+1|0:o,o=o+u|0,G=o=(u=n+F|0)>>>0>>0?o+1|0:o,n=(k=nA(u^m,o^R,40))+GA|0,o=(GA=w)+b|0,M=n,O=n>>>0>>0?o+1|0:o,n=nA(_^V,L^wA,48),o=(_=w)+j|0,J=r=n+J|0,m=S,S=o=r>>>0>>0?o+1|0:o,o=nA(r^c,m^o,1),V=r=w,c=o,o=f+C|0,o=((t=t+sA|0)>>>0>>0?o+1|0:o)+r|0,o=uA+(t=(r=t+c|0)>>>0>>0?o+1|0:o)|0,L=f=r+T|0,f=o=f>>>0>>0?o+1|0:o,r=nA(r^e,t^CA,32),o=W+(b=w)|0,j=r,r=(e=s+r|0)^c,c=o=e>>>0>>0?o+1|0:o,t=nA(r,V^o,40),o=(o=f)+(f=w)|0,V=r=t+L|0,r=nA(s=r^j,b^(j=r>>>0>>0?o+1|0:o),48),o=c+(CA=w)|0,W=r,e=o=(r=e+r|0)>>>0>>0?o+1|0:o,t=nA(r^t,f^o,1),o=(s=w)+O|0,o=pA+((f=t+M|0)>>>0>>0?o+1|0:o)|0,o=(c=(f=f+oA|0)>>>0>>0?o+1|0:o)+BA|0,AA=L=f+q|0,L=o=L>>>0>>0?o+1|0:o,b=t,m=f,R=c,t=nA(U^Y,N^IA,1),o=(N=w)+DA|0,o=P+(t>>>0>(f=t+gA|0)>>>0?o+1|0:o)|0,c=o=(f=f+h|0)>>>0>>0?o+1|0:o,o=nA(n^f,o^_,32),_=n=w,h=o,o=l+K|0,o=(n=p+v|0)>>>0

>>0?o+1|0:o,p=n,Y=o,o=_+o|0,l=n=n+h|0,U=o=p>>>0>n>>>0?o+1|0:o,n=nA(n^t,N^o,40),o=c+(K=w)|0,v=n,o=tA+((n=f+n|0)>>>0>>0?o+1|0:o)|0,o=(n=n+X|0)>>>0>>0?o+1|0:o,N=n,n^=h,h=o,c=nA(n,_^o,48),o=nA(c^m,(o=R)^(R=w),32),IA=n=w,_=o,P=n,n=nA(y^p,Y^Z,1),o=FA+(f=w)|0,o=H+((t=n+cA|0)>>>0>>0?o+1|0:o)|0,o=(y=(t=t+D|0)>>>0>>0?o+1|0:o)+x|0,H=p=t+aA|0,p=o=p>>>0>>0?o+1|0:o,D=n,Y=f,n=(t=nA(t^d,y^kA,32))+J|0,o=(J=w)+S|0,f=n,y=nA(y=n^D,(D=n>>>0>>0?o+1|0:o)^Y,40),o=(Z=w)+p|0,p=n=y+H|0,t=nA(n^t,J^(S=n>>>0>>0?o+1|0:o),48),o=D+(Y=w)|0,H=n=t+f|0,J=o=n>>>0>>0?o+1|0:o,o=o+P|0,P=o=(D=n+_|0)>>>0>>0?o+1|0:o,f=nA(D^b,o^s,40),o=(d=w)+L|0,L=n=f+AA|0,b=o=n>>>0>>0?o+1|0:o,n=r,s=e,e=t,r=nA(F^M,O^$,48),o=G+(AA=w)|0,F=r,u=o=(t=u+r|0)>>>0>>0?o+1|0:o,o=nA(t^k,GA^o,1),G=r=w,k=o,o=h+HA|0,o=((h=N+fA|0)>>>0>>0?o+1|0:o)+r|0,h=o=(r=h+k|0)>>>0>>0?o+1|0:o,e=nA(r^e,o^Y,32),o=(N=w)+s|0,k=nA((n=e+n|0)^k,G^(s=n>>>0>>0?o+1|0:o),40),o=h+(M=w)|0,o=lA+((h=r)>>>0>(r=r+k|0)>>>0?o+1|0:o)|0,Y=o=(h=r+QA|0)>>>0>>0?o+1|0:o,r=nA(e^h,N^o,48),o=s+($=w)|0,N=r,G=o=(s=n+r|0)>>>0>>0?o+1|0:o,n=nA(s^k,M^o,1),o=(k=w)+b|0,o=hA+((r=n+L|0)>>>0>>0?o+1|0:o)|0,o=pA+(e=(r=r+EA|0)>>>0>>0?o+1|0:o)|0,wA=M=r+oA|0,M=o=M>>>0>>0?o+1|0:o,O=n,m=r,n=nA(y^H,J^Z,1),o=(y=w)+j|0,o=MA+((r=n+V|0)>>>0>>0?o+1|0:o)|0,o=SA+(H=(r=r+rA|0)>>>0>>0?o+1|0:o)|0,V=J=r+iA|0,J=o=J>>>0>>0?o+1|0:o,j=n,o=nA(r^F,H^AA,32),AA=n=w,r=o,o=U+R|0,l=n=c+l|0,F=o=n>>>0>>0?o+1|0:o,o=AA+o|0,U=o=(c=n+r|0)>>>0>>0?o+1|0:o,y=nA(c^j,o^y,40),o=(R=w)+J|0,H=n=y+V|0,j=nA(n^r,AA^(J=n>>>0>>0?o+1|0:o),48),o=nA(j^m,(AA=w)^e,32),Z=n=w,V=o,e=n,r=eA,n=nA(l^v,F^K,1),o=S+(F=w)|0,o=((l=p)>>>0>(p=n+p|0)>>>0?o+1|0:o)+yA|0,o=hA+(p=(r=r+p|0)>>>0

>>0?o+1|0:o)|0,l=S=r+EA|0,S=o=S>>>0>>0?o+1|0:o,r=nA(r^W,p^CA,32),o=u+(v=w)|0,u=r,o=(r=t+r|0)>>>0>>0?o+1|0:o,t=F,F=o,t=nA(n^r,t^o,40),o=(K=w)+S|0,p=n=t+l|0,n=nA(n^u,v^(S=n>>>0>>0?o+1|0:o),48),o=F+(m=w)|0,F=n,l=n=r+n|0,v=o=n>>>0>>0?o+1|0:o,o=o+e|0,o=(u=n+V|0)>>>0>>0?o+1|0:o,n=u^O,O=o,k=nA(n,o^k,40),o=(CA=w)+M|0,M=n=k+wA|0,W=n>>>0>>0?o+1|0:o,n=nA(_^L,b^IA,48),o=P+(IA=w)|0,_=n,o=(n=D+n|0)>>>0>>0?o+1|0:o,D=n,P=o,o=nA(n^f,o^d,1),d=n=w,e=o,o=J+uA|0,o=((r=H+T|0)>>>0>>0?o+1|0:o)+n|0,o=lA+(r=(n=r+e|0)>>>0>>0?o+1|0:o)|0,H=f=n+QA|0,f=o=f>>>0>>0?o+1|0:o,n=nA(n^F,r^m,32),o=G+(J=w)|0,F=n,s=o=(r=s+n|0)>>>0>>0?o+1|0:o,e=nA(r^e,d^o,40),o=(d=w)+f|0,H=n=e+H|0,n=nA(f=n^F,J^(F=n>>>0>>0?o+1|0:o),48),o=s+(wA=w)|0,s=n,G=o=(f=r+n|0)>>>0>>0?o+1|0:o,n=nA(f^e,d^o,1),o=(J=w)+W|0,o=FA+((r=n+M|0)>>>0>>0?o+1|0:o)|0,o=(e=(r=r+cA|0)>>>0>>0?o+1|0:o)+DA|0,kA=d=r+gA|0,d=o=d>>>0>>0?o+1|0:o,L=n,b=r,m=e,n=nA(t^l,K^v,1),o=MA+(e=w)|0,o=Y+((r=n+rA|0)>>>0>>0?o+1|0:o)|0,o=HA+(t=(r=r+h|0)>>>0>>0?o+1|0:o)|0,v=h=r+fA|0,h=o=h>>>0>>0?o+1|0:o,Y=n,l=e,o=nA(r^_,t^IA,32),_=n=w,t=o,r=n,o=U+AA|0,o=(n=c+j|0)>>>0>>0?o+1|0:o,c=n,U=o,o=o+r|0,o=(e=n+t|0)>>>0>>0?o+1|0:o,n=e^Y,Y=o,n=nA(n,o^l,40),o=(o=h)+(h=w)|0,l=r=n+v|0,v=o=r>>>0>>0?o+1|0:o,_=nA(r^t,_^o,48),o=nA(_^b,(o=m)^(m=w),32),K=r=w,j=o,r=nA(c^y,U^R,1),o=(c=w)+yA|0,o=S+((t=r+eA|0)>>>0>>0?o+1|0:o)|0,o=C+(y=(t=t+p|0)>>>0

>>0?o+1|0:o)|0,R=p=t+sA|0,p=o=p>>>0>>0?o+1|0:o,S=r,U=c,t=nA(t^N,y^$,32),o=(N=w)+P|0,c=r=t+D|0,r=(y=nA(r^S,(D=r>>>0>>0?o+1|0:o)^U,40))+R|0,o=(R=w)+p|0,S=r,r=nA(r^t,N^(U=r>>>0>>0?o+1|0:o),48),o=D+(AA=w)|0,N=r,P=r=c+r|0,b=o=r>>>0>>0?o+1|0:o,o=K+o|0,o=(t=r+j|0)>>>0>>0?o+1|0:o,r=J,J=o,c=nA(t^L,r^o,40),o=(IA=w)+d|0,p=r=c+kA|0,o=nA(r^j,K^(d=r>>>0>>0?o+1|0:o),48),K=r=w,j=o,r=n,o=Y+m|0,Y=n=e+_|0,_=o=n>>>0>>0?o+1|0:o,o=nA(n^r,o^h,1),e=r=w,n=o,o=U+B|0,o=((D=S+g|0)>>>0>>0?o+1|0:o)+r|0,o=tA+(D=(r=n+D|0)>>>0>>0?o+1|0:o)|0,m=h=r+X|0,h=o=h>>>0>>0?o+1|0:o,S=n,U=e,n=nA(M^V,W^Z,48),o=O+(Z=w)|0,M=n,o=(n=u+n|0)>>>0>>0?o+1|0:o,u=n,r=nA(r^s,D^wA,32),O=o,o=o+(V=w)|0,e=n=r+n|0,D=nA(n^S,(s=n>>>0>>0?o+1|0:o)^U,40),o=(W=w)+h|0,h=n=D+m|0,n=nA(n^r,V^(S=n>>>0>>0?o+1|0:o),48),o=s+($=w)|0,U=n,V=o=(s=e+n|0)>>>0>>0?o+1|0:o,n=nA(D^s,W^o,1),o=lA+(m=w)|0,W=n,wA=n=QA+n|0,e=o=n>>>0>>0?o+1|0:o,n=nA(k^u,O^CA,1),o=(D=w)+v|0,o=SA+((r=n+l|0)>>>0>>0?o+1|0:o)|0,o=BA+(u=(r=r+iA|0)>>>0>>0?o+1|0:o)|0,O=k=r+q|0,k=o=k>>>0>>0?o+1|0:o,l=D,r=nA(r^N,u^AA,32),o=G+(AA=w)|0,v=r,o=(D=f+r|0)>>>0>>0?o+1|0:o,f=l,l=o,u=nA(n^D,f^o,40),o=(CA=w)+k|0,N=n=u+O|0,o=(G=n>>>0>>0?o+1|0:o)+e|0,k=o=(e=n+wA|0)>>>0>>0?o+1|0:o,O=o=nA(e^j,o^K,32),L=n=w,n=nA(y^P,b^R,1),o=(f=w)+F|0,o=z+((r=n+H|0)>>>0>>0?o+1|0:o)|0,o=(y=(r=I+r|0)>>>0>>0?o+1|0:o)+x|0,b=F=r+aA|0,F=o=F>>>0>>0?o+1|0:o,H=n,P=f,r=nA(r^M,y^Z,32),o=(M=w)+_|0,f=n=r+Y|0,n=(y=nA(n^H,(Y=n>>>0>>0?o+1|0:o)^P,40))+b|0,o=(b=w)+F|0,F=n,n=nA(n^r,M^(H=n>>>0>>0?o+1|0:o),48),o=Y+(Z=w)|0,Y=n,M=o=(n=f+n|0)>>>0>>0?o+1|0:o,o=o+L|0,_=o=(f=n)>>>0>(n=n+O|0)>>>0?o+1|0:o,r=nA(n^W,m^o,40),o=k+(m=w)|0,P=r,o=B+((r=e+r|0)>>>0>>0?o+1|0:o)|0,W=r=r+g|0,e=r^O,O=o=r>>>0>>0?o+1|0:o,r=nA(e,L^o,48),o=_+(L=w)|0,_=o=(k=n+r|0)>>>0>>0?o+1|0:o,n=o=nA(k^P,m^o,1),P=e=w,e=nA(f^y,M^b,1),o=S+(y=w)|0,o=SA+((f=e+h|0)>>>0>>0?o+1|0:o)|0,o=hA+(h=(f=f+iA|0)>>>0>>0?o+1|0:o)|0,m=S=f+EA|0,S=o=S>>>0>>0?o+1|0:o,M=e,b=y,o=J+K|0,o=(e=t+j|0)>>>0>>0?o+1|0:o,J=e,v=nA(N^v,G^AA,48),y=nA(f^v,h^(AA=w),32),N=o,o=o+(wA=w)|0,h=e=y+e|0,e=nA(e^M,(G=e>>>0>>0?o+1|0:o)^b,40),o=(M=w)+S|0,b=o=(t=e+m|0)>>>0>>0?o+1|0:o,o=o+P|0,o=C+((j=t)>>>0>(t=n+t|0)>>>0?o+1|0:o)|0,o=(f=(t=t+sA|0)>>>0>>0?o+1|0:o)+yA|0,kA=S=t+eA|0,m=o=S>>>0>>0?o+1|0:o,R=n,K=t,o=nA(c^J,N^IA,1),c=t=w,n=o,o=H+MA|0,o=((S=F+rA|0)>>>0>>0?o+1|0:o)+t|0,o=tA+(S=(t=n+S|0)>>>0>>0?o+1|0:o)|0,N=F=t+X|0,F=o=F>>>0>>0?o+1|0:o,H=n,o=nA(t^U,S^$,32),J=n=w,t=o,S=n,o=l+AA|0,l=n=D+v|0,U=o=n>>>0>>0?o+1|0:o,o=o+S|0,o=(D=n+t|0)>>>0>>0?o+1|0:o;n=D^H,H=o,S=nA(n,o^c,40),o=(AA=w)+F|0,v=nA(F=(n=S+N|0)^t,J^(t=n>>>0>>0?o+1|0:o),48),o=nA(o=v^K,(K=w)^f,32),IA=f=w,N=o,F=f,f=nA(u^l,U^CA,1),o=BA+(u=w)|0,o=d+((c=f+q|0)>>>0>>0?o+1|0:o)|0,o=FA+(p=(c=c+p|0)>>>0

>>0?o+1|0:o)|0,U=l=c+cA|0,l=o=l>>>0>>0?o+1|0:o,c=nA(c^Y,p^Z,32),o=V+(J=w)|0,Y=c,s=o=(c=s+c|0)>>>0>>0?o+1|0:o,p=nA(f^c,o^u,40),o=(Z=w)+l|0,u=f=p+U|0,f=nA(l=f^Y,J^(Y=f>>>0

>>0?o+1|0:o),48),o=s+($=w)|0,l=f,U=f=c+f|0,J=o=f>>>0>>0?o+1|0:o,o=o+F|0,o=(c=f+N|0)>>>0>>0?o+1|0:o,f=P,P=o,s=nA(c^R,f^o,40),o=(d=w)+m|0,F=f=s+kA|0,f=nA(m=f^N,IA^(N=f>>>0>>0?o+1|0:o),48),o=P+(IA=w)|0,P=f,c=o=(f=c+f|0)>>>0>>0?o+1|0:o,d=o=nA(f^s,d^o,1),CA=o,V=s=w,s=t,t=e,e=nA(y^j,b^wA,48),o=G+(wA=w)|0,G=e,o=(e=h+e|0)>>>0>>0?o+1|0:o,h=n,n=t^e,t=o,n=nA(n,o^M,1),o=(M=w)+s|0,o=HA+(n>>>0>(y=h+n|0)>>>0?o+1|0:o)|0,o=DA+(h=(y=y+fA|0)>>>0>>0?o+1|0:o)|0,j=s=y+gA|0,s=o=s>>>0>>0?o+1|0:o,y=nA(y^l,h^$,32),o=_+(b=w)|0,l=o=(h=y+k|0)>>>0>>0?o+1|0:o,k=nA(n^h,M^o,40),o=($=w)+s|0,M=n=k+j|0,y=nA(n^y,b^(_=n>>>0>>0?o+1|0:o),48),o=l+(j=w)|0,b=n=y+h|0,l=n,m=o=n>>>0>>0?o+1|0:o,h=e,s=t,o=H+K|0,o=(n=D+v|0)>>>0>>0?o+1|0:o,D=n,n^=S,S=o,o=nA(n,AA^o,1),R=n=w,H=o,t=o,o=Y+x|0,o=((e=u+aA|0)>>>0>>0?o+1|0:o)+n|0,u=o=(n=e)>>>0>(e=t+e|0)>>>0?o+1|0:o,t=nA(r^e,o^L,32),o=(o=s)+(s=w)|0,v=n=t+h|0,r=nA(r=n^H,R^(H=n>>>0>>0?o+1|0:o),40),o=u+(L=w)|0,o=uA+((n=r+e|0)>>>0>>0?o+1|0:o)|0,R=o=(h=n+T|0)>>>0>>0?o+1|0:o,s=nA(t^h,s^o,48),kA=o=w,n=nA(p^U,J^Z,1),o=(t=w)+O|0,o=pA+((e=n+W|0)>>>0>>0?o+1|0:o)|0,o=z+(p=(e=e+oA|0)>>>0>>0?o+1|0:o)|0,O=u=I+e|0,U=o=u>>>0>>0?o+1|0:o,J=n,u=nA(e^G,p^wA,32),o=(Z=w)+S|0,S=n=u+D|0,e=nA(n^J,(G=n>>>0>>0?o+1|0:o)^t,40),o=(o=U)+(U=w)|0,J=n=e+O|0,O=o=n>>>0>>0?o+1|0:o,t=o,o=z+V|0,o=((p=I+d|0)>>>0>>0?o+1|0:o)+t|0,Y=o=(t=n+p|0)>>>0

>>0?o+1|0:o,n=nA(t^s,kA^o,32),o=(d=w)+m|0,D=nA((p=n+l|0)^CA,(o=p>>>0>>0?o+1|0:o)^V,40),V=o,o=DA+(l=w)|0,o=Y+((W=D+gA|0)>>>0>>0?o+1|0:o)|0,o=(Y=t+W|0)>>>0>>0?o+1|0:o,t=d,d=o,t=nA(n^Y,t^o,48),o=(o=V)+(V=w)|0,n=D^(p=t+p|0),D=o=p>>>0>>0?o+1|0:o,W=o=nA(n,o^l,1),CA=o,K=n=w,l=f,AA=c,f=e,e=nA(u^J,O^Z,48),o=G+(J=w)|0,u=n=e+S|0,S=o=n>>>0>>0?o+1|0:o,f=nA(n^f,o^U,1),o=(O=w)+HA|0,o=R+((n=f+fA|0)>>>0>>0?o+1|0:o)|0,h=o=(c=n+h|0)>>>0>>0?o+1|0:o,n=nA(c^y,o^j,32),o=(U=w)+AA|0,l=y=n+l|0,G=o=y>>>0>>0?o+1|0:o,f=nA(f^y,o^O,40),o=hA+(wA=w)|0,O=f,o=h+((f=EA+f|0)>>>0>>0?o+1|0:o)|0,c=o=(f=f+c|0)>>>0>>0?o+1|0:o,y=nA(n^f,o^U,48),o=(o=G)+(G=w)|0,j=n=y+l|0,U=n,R=o=n>>>0>>0?o+1|0:o,o=H+kA|0,l=(n=s+v|0)^r,r=o=n>>>0>>0?o+1|0:o,o=nA(l,o^L,1),L=h=w,l=o,o=_+tA|0,o=((s=M+X|0)>>>0>>0?o+1|0:o)+h|0,H=o=(H=s)>>>0>(s=s+l|0)>>>0?o+1|0:o,v=h=nA(s^P,IA^o,32),M=o=w,o=o+S|0,_=h=h+u|0,P=o=v>>>0>h>>>0?o+1|0:o,h=nA(h^l,L^o,40),o=yA+(L=w)|0,o=H+((u=h+eA|0)>>>0>>0?o+1|0:o)|0,u=o=(l=s)>>>0>(s=s+u|0)>>>0?o+1|0:o,l=nA(s^v,o^M,48),IA=o=w,S=o,k=nA(k^b,m^$,1),H=o=w,v=e,o=o+x|0,o=N+((e=k+aA|0)>>>0>>0?o+1|0:o)|0,o=(e=e+F|0)>>>0>>0?o+1|0:o,F=e^v,v=o,F=nA(F,o^J,32),o=($=w)+r|0,N=n=F+n|0,r=nA(n^k,(r=H)^(H=n>>>0>>0?o+1|0:o),40),o=pA+(M=w)|0,o=v+((n=r+oA|0)>>>0>>0?o+1|0:o)|0,v=n=n+e|0,J=o=n>>>0>>0?o+1|0:o,e=o,o=K+SA|0,o=((k=W+iA|0)>>>0>>0?o+1|0:o)+e|0,W=o=(e=n+k|0)>>>0>>0?o+1|0:o,n=nA(e^l,o^S,32),o=(b=w)+R|0,S=nA((k=n+U|0)^CA,(o=k>>>0>>0?o+1|0:o)^K,40),m=U=w,K=o,o=U+FA|0,o=W+((U=S+cA|0)>>>0>>0?o+1|0:o)|0,W=o=(U=e+U|0)>>>0>>0?o+1|0:o,e=nA(n^U,o^b,48),o=(b=w)+K|0,n=(k=e+k|0)^S,S=o=k>>>0>>0?o+1|0:o,m=o=nA(n,o^m,1),K=n=w,AA=p,Z=y,y=r,r=nA(F^v,J^$,48),o=(F=w)+H|0,H=n=r+N|0,v=o=n>>>0>>0?o+1|0:o,y=nA(n^y,o^M,1),o=(M=w)+lA|0,o=((n=y+QA|0)>>>0>>0?o+1|0:o)+u|0,s=o=(p=n+s|0)>>>0>>0?o+1|0:o,n=nA(p^Z,o^G,32),o=(u=w)+D|0,N=D=n+AA|0,G=o=D>>>0>>0?o+1|0:o,y=nA(y^D,o^M,40),o=C+(Z=w)|0,M=y,o=s+((y=sA+y|0)>>>0>>0?o+1|0:o)|0,J=o=(D=y+p|0)>>>0

>>0?o+1|0:o,y=nA(n^D,o^u,48),o=(o=G)+(G=w)|0,N=n=y+N|0,AA=o=n>>>0>>0?o+1|0:o,s=t,p=f,o=P+IA|0,t=o=(n=l+_|0)>>>0>>0?o+1|0:o,f=nA(n^h,o^L,1),o=(h=w)+BA|0,o=((u=f+q|0)>>>0>>0?o+1|0:o)+c|0,c=nA(s^(p=p+u|0),(o=p>>>0>>0?o+1|0:o)^V,32),u=o,l=f,o=(s=w)+v|0,o=(f=c+H|0)>>>0>>0?o+1|0:o,H=f,f^=l,l=o,f=nA(f,o^h,40),o=B+(v=w)|0,o=((h=f+g|0)>>>0>>0?o+1|0:o)+u|0,_=o=(u=h)>>>0>(h=h+p|0)>>>0?o+1|0:o,s=nA(c^h,o^s,48),IA=o=w,p=o,c=nA(j^O,R^wA,1),P=o=w,O=t,o=o+uA|0,o=d+((t=c+T|0)>>>0>>0?o+1|0:o)|0,u=F,F=o=(t=t+Y|0)>>>0>>0?o+1|0:o,u=nA(r^t,u^o,32),o=($=w)+O|0,Y=n=u+n|0,r=nA(n^c,(r=P)^(P=n>>>0>>0?o+1|0:o),40),o=MA+(O=w)|0,o=F+((n=r+rA|0)>>>0>>0?o+1|0:o)|0,d=n=n+t|0,j=o=n>>>0>>0?o+1|0:o,t=o,o=K+tA|0,o=((c=X+m|0)>>>0>>0?o+1|0:o)+t|0,F=o=(t=n+c|0)>>>0>>0?o+1|0:o,n=nA(t^s,o^p,32),o=(V=w)+AA|0,p=nA((c=n+N|0)^m,(o=c>>>0>>0?o+1|0:o)^K,40),m=o,o=x+(L=w)|0,o=F+((R=p+aA|0)>>>0>>0?o+1|0:o)|0,o=(F=t+R|0)>>>0>>0?o+1|0:o,t=V,V=o,t=nA(n^F,t^o,48),o=(o=m)+(m=w)|0,n=(c=t+c|0)^p,p=o=c>>>0>>0?o+1|0:o,L=o=nA(n,o^L,1),R=n=w,K=y,y=r,r=nA(u^d,j^$,48),o=(o=P)+(P=w)|0,Y=n=r+Y|0,u=O,O=o=n>>>0>>0?o+1|0:o,y=nA(n^y,u^o,1),o=(d=w)+FA|0,o=_+((n=y+cA|0)>>>0>>0?o+1|0:o)|0,u=h,h=n+h|0,n=G,G=o=u>>>0>h>>>0?o+1|0:o,n=nA(h^K,n^o,32),o=(o=S)+(S=w)|0,_=o=(u=n+k|0)>>>0>>0?o+1|0:o,k=u,y=nA(y^u,o^d,40),o=uA+($=w)|0,d=y,o=G+((y=T+y|0)>>>0>>0?o+1|0:o)|0,G=o=(u=y+h|0)>>>0>>0?o+1|0:o,y=nA(n^u,o^S,48),o=(o=_)+(_=w)|0,j=n=y+k|0,K=o=n>>>0>>0?o+1|0:o,k=e,o=l+IA|0,e=o=(n=s+H|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^v,1),o=DA+(s=w)|0,o=J+((h=f+gA|0)>>>0>>0?o+1|0:o)|0,l=(h=D+h|0)^k,k=o=h>>>0>>0?o+1|0:o,D=nA(l,o^b,32),S=o=w,l=f,o=o+O|0,o=(f=D+Y|0)>>>0>>0?o+1|0:o,H=f,f^=l,l=o,f=nA(f,o^s,40),o=B+(v=w)|0,o=k+((s=f+g|0)>>>0>>0?o+1|0:o)|0,J=o=(s=h+s|0)>>>0>>0?o+1|0:o,k=nA(D^s,o^S,48),IA=o=w,h=o,D=nA(M^N,Z^AA,1),Y=o=w,N=e,o=o+C|0,o=W+((e=D+sA|0)>>>0>>0?o+1|0:o)|0,U=o=(e=e+U|0)>>>0>>0?o+1|0:o,S=nA(r^e,o^P,32),o=(CA=w)+N|0,N=n=S+n|0,r=nA(n^D,(M=n>>>0>>0?o+1|0:o)^Y,40),o=z+(P=w)|0,o=U+((n=I+r|0)>>>0>>0?o+1|0:o)|0,U=n=n+e|0,O=o=n>>>0>>0?o+1|0:o,e=o,o=R+pA|0,o=((D=L+oA|0)>>>0>>0?o+1|0:o)+e|0,Y=o=(e=n+D|0)>>>0>>0?o+1|0:o,n=nA(e^k,o^h,32),o=(W=w)+K|0,h=nA((D=n+j|0)^L,(o=D>>>0>>0?o+1|0:o)^R,40),b=o,o=HA+(L=w)|0,o=Y+((R=h+fA|0)>>>0>>0?o+1|0:o)|0,o=(Y=e+R|0)>>>0>>0?o+1|0:o,e=W,W=o,e=nA(n^Y,e^o,48),o=(o=b)+(b=w)|0,n=(D=e+D|0)^h,h=o=D>>>0>>0?o+1|0:o,L=o=nA(n,o^L,1),wA=o,R=n=w,AA=c,Z=y,c=r,r=nA(S^U,O^CA,48),o=(S=w)+M|0,U=n=r+N|0,N=o=n>>>0>>0?o+1|0:o,c=nA(n^c,o^P,1),o=(P=w)+yA|0,o=J+((n=c+eA|0)>>>0>>0?o+1|0:o)|0,s=o=(y=n+s|0)>>>0>>0?o+1|0:o,n=nA(y^Z,o^_,32),o=(M=w)+p|0,_=o=(p=n+AA|0)>>>0>>0?o+1|0:o,c=nA(c^p,o^P,40),o=lA+(CA=w)|0,J=c,o=s+((c=QA+c|0)>>>0>>0?o+1|0:o)|0,s=c+y|0,c=M,M=o=s>>>0>>0?o+1|0:o,c=nA(n^s,c^o,48),o=(o=_)+(_=w)|0,P=n=c+p|0,O=o=n>>>0>>0?o+1|0:o,y=t,o=l+IA|0,t=o=(n=k+H|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^v,1),o=(k=w)+MA|0,o=G+((p=f+rA|0)>>>0>>0?o+1|0:o)|0,y=nA(y^(p=p+u|0),(o=p>>>0>>0?o+1|0:o)^m,32),l=u=w,u=o,H=f,o=l+N|0,o=(f=y+U|0)>>>0>>0?o+1|0:o,U=f,f^=H,H=o,f=nA(f,o^k,40),o=hA+(v=w)|0,o=((k=f+EA|0)>>>0>>0?o+1|0:o)+u|0,G=l,l=o=(u=p+k|0)>>>0>>0?o+1|0:o,k=nA(y^u,G^o,48),IA=o=w,p=o,y=nA(j^d,K^$,1),N=o=w,G=t,o=o+BA|0,o=V+((t=y+q|0)>>>0>>0?o+1|0:o)|0,F=o=(t=t+F|0)>>>0>>0?o+1|0:o,S=nA(r^t,o^S,32),o=($=w)+G|0,G=n=S+n|0,r=nA(n^y,(r=N)^(N=n>>>0>>0?o+1|0:o),40),o=SA+(d=w)|0,o=F+((n=r+iA|0)>>>0>>0?o+1|0:o)|0,j=n=n+t|0,V=o=n>>>0>>0?o+1|0:o,t=o,o=R+B|0,o=((y=L+g|0)>>>0>>0?o+1|0:o)+t|0,F=o=(t=n+y|0)>>>0>>0?o+1|0:o,n=nA(t^k,o^p,32),o=(L=w)+O|0,p=nA((y=n+P|0)^wA,(o=y>>>0>>0?o+1|0:o)^R,40),R=o,o=FA+(m=w)|0,o=F+((K=p+cA|0)>>>0>>0?o+1|0:o)|0,o=(F=t+K|0)>>>0>>0?o+1|0:o,t=L,L=o,t=nA(n^F,t^o,48),o=(o=R)+(R=w)|0,n=(y=t+y|0)^p,p=o=y>>>0>>0?o+1|0:o,m=o=nA(n,o^m,1),K=n=w,AA=D,Z=c,c=r,r=nA(S^j,V^$,48),o=(S=w)+N|0,N=n=r+G|0,G=o=n>>>0>>0?o+1|0:o,c=nA(n^c,o^d,1),o=(d=w)+lA|0,o=l+((n=c+QA|0)>>>0>>0?o+1|0:o)|0,u=o=(D=n+u|0)>>>0>>0?o+1|0:o,n=nA(D^Z,o^_,32),o=(l=w)+h|0,_=o=(h=n+AA|0)>>>0>>0?o+1|0:o,c=nA(c^h,o^d,40),o=BA+($=w)|0,d=c,o=u+((c=q+c|0)>>>0>>0?o+1|0:o)|0,u=c+D|0,c=l,l=o=u>>>0>>0?o+1|0:o,c=nA(n^u,c^o,48),o=(o=_)+(_=w)|0,j=n=c+h|0,V=o=n>>>0>>0?o+1|0:o,D=e,o=H+IA|0,e=o=(n=k+U|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^v,1),o=SA+(k=w)|0,o=M+((h=f+iA|0)>>>0>>0?o+1|0:o)|0,s=o=(h=h+s|0)>>>0>>0?o+1|0:o,D=nA(D^h,o^b,32),U=o=w,H=f,o=o+G|0,o=(f=D+N|0)>>>0>>0?o+1|0:o,v=f,f^=H,H=o,f=nA(f,o^k,40),o=pA+(N=w)|0,o=s+((k=f+oA|0)>>>0>>0?o+1|0:o)|0,o=(s=h+k|0)>>>0>>0?o+1|0:o,h=U,U=o,k=nA(D^s,h^o,48),IA=o=w,h=o,D=nA(J^P,O^CA,1),G=o=w,M=e,o=o+z|0,o=W+((e=I+D|0)>>>0>>0?o+1|0:o)|0,Y=o=(e=e+Y|0)>>>0>>0?o+1|0:o,S=nA(r^e,o^S,32),o=(CA=w)+M|0,M=n=S+n|0,r=nA(n^D,(r=G)^(G=n>>>0>>0?o+1|0:o),40),o=uA+(J=w)|0,o=Y+((n=r+T|0)>>>0>>0?o+1|0:o)|0,P=n=n+e|0,O=o=n>>>0>>0?o+1|0:o,e=o,o=K+DA|0,o=((D=m+gA|0)>>>0>>0?o+1|0:o)+e|0,Y=o=(e=n+D|0)>>>0>>0?o+1|0:o,n=nA(e^k,o^h,32),o=(W=w)+V|0,h=nA((D=n+j|0)^m,(o=D>>>0>>0?o+1|0:o)^K,40),m=o,o=C+(b=w)|0,o=Y+((K=h+sA|0)>>>0>>0?o+1|0:o)|0,o=(Y=e+K|0)>>>0>>0?o+1|0:o,e=W,W=o,e=nA(n^Y,e^o,48),o=(o=m)+(m=w)|0,n=(D=e+D|0)^h,h=o=D>>>0>>0?o+1|0:o,b=o=nA(n,o^b,1),K=n=w,AA=y,Z=c,c=r,r=nA(S^P,O^CA,48),o=(S=w)+G|0,G=n=r+M|0,M=o=n>>>0>>0?o+1|0:o,c=nA(n^c,o^J,1),o=(J=w)+tA|0,o=U+((n=c+X|0)>>>0>>0?o+1|0:o)|0,s=o=(y=n+s|0)>>>0>>0?o+1|0:o,n=nA(y^Z,o^_,32),o=(U=w)+p|0,_=o=(p=n+AA|0)>>>0>>0?o+1|0:o,c=nA(c^p,o^J,40),o=MA+(CA=w)|0,J=c,o=s+((c=rA+c|0)>>>0>>0?o+1|0:o)|0,s=c+y|0,c=U,U=o=s>>>0>>0?o+1|0:o,c=nA(n^s,c^o,48),o=(o=_)+(_=w)|0,P=n=c+p|0,O=o=n>>>0>>0?o+1|0:o,y=t,o=H+IA|0,t=o=(n=k+v|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^N,1),o=(k=w)+hA|0,o=l+((p=f+EA|0)>>>0>>0?o+1|0:o)|0,u=o=(p=p+u|0)>>>0>>0?o+1|0:o,y=nA(y^p,o^R,32),l=o=w,H=f,o=o+M|0,o=(f=y+G|0)>>>0>>0?o+1|0:o,v=f,f^=H,H=o,f=nA(f,o^k,40),o=yA+(N=w)|0,o=u+((k=f+eA|0)>>>0>>0?o+1|0:o)|0,G=l,l=o=(u=p+k|0)>>>0

>>0?o+1|0:o,k=nA(y^u,G^o,48),IA=o=w,p=o,y=nA(j^d,V^$,1),G=o=w,M=t,o=o+x|0,o=L+((t=y+aA|0)>>>0>>0?o+1|0:o)|0,F=o=(t=t+F|0)>>>0>>0?o+1|0:o,S=nA(r^t,o^S,32),o=($=w)+M|0,M=n=S+n|0,r=nA(n^y,(r=G)^(G=n>>>0>>0?o+1|0:o),40),o=HA+(d=w)|0,o=F+((n=r+fA|0)>>>0>>0?o+1|0:o)|0,j=n=n+t|0,V=o=n>>>0>>0?o+1|0:o,t=o,o=K+C|0,o=((y=b+sA|0)>>>0>>0?o+1|0:o)+t|0,F=o=(t=n+y|0)>>>0>>0?o+1|0:o,n=nA(t^k,o^p,32),o=(L=w)+O|0,p=nA((y=n+P|0)^b,(o=y>>>0>>0?o+1|0:o)^K,40),R=o,o=SA+(b=w)|0,o=F+((K=p+iA|0)>>>0>>0?o+1|0:o)|0,o=(F=t+K|0)>>>0>>0?o+1|0:o,t=L,L=o,t=nA(n^F,t^o,48),o=(o=R)+(R=w)|0,n=(y=t+y|0)^p,p=o=y>>>0>>0?o+1|0:o,b=o=nA(n,o^b,1),K=n=w,AA=D,Z=c,c=r,r=nA(S^j,V^$,48),o=(S=w)+G|0,G=n=r+M|0,M=o=n>>>0>>0?o+1|0:o,c=nA(n^c,o^d,1),o=(d=w)+x|0,o=l+((n=c+aA|0)>>>0>>0?o+1|0:o)|0,u=o=(D=n+u|0)>>>0>>0?o+1|0:o,n=nA(D^Z,o^_,32),o=(l=w)+h|0,_=o=(h=n+AA|0)>>>0>>0?o+1|0:o,c=nA(c^h,o^d,40),o=yA+($=w)|0,d=c,o=u+((c=eA+c|0)>>>0>>0?o+1|0:o)|0,u=c+D|0,c=l,l=o=u>>>0>>0?o+1|0:o,c=nA(n^u,c^o,48),o=(o=_)+(_=w)|0,j=n=c+h|0,V=o=n>>>0>>0?o+1|0:o,D=e,o=H+IA|0,e=o=(n=k+v|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^N,1),o=hA+(k=w)|0,o=U+((h=f+EA|0)>>>0>>0?o+1|0:o)|0,s=o=(h=h+s|0)>>>0>>0?o+1|0:o,D=nA(D^h,o^m,32),U=o=w,H=f,o=o+M|0,o=(f=D+G|0)>>>0>>0?o+1|0:o,v=f,f^=H,H=o,f=nA(f,o^k,40),o=MA+(N=w)|0,o=s+((k=f+rA|0)>>>0>>0?o+1|0:o)|0,o=(s=h+k|0)>>>0>>0?o+1|0:o,h=U,U=o,k=nA(D^s,h^o,48),IA=o=w,h=o,D=nA(J^P,O^CA,1),G=o=w,M=e,o=o+BA|0,o=W+((e=D+q|0)>>>0>>0?o+1|0:o)|0,Y=o=(e=e+Y|0)>>>0>>0?o+1|0:o,S=nA(r^e,o^S,32),o=(CA=w)+M|0,M=n=S+n|0,r=nA(n^D,(r=G)^(G=n>>>0>>0?o+1|0:o),40),o=HA+(J=w)|0,o=Y+((n=r+fA|0)>>>0>>0?o+1|0:o)|0,P=n=n+e|0,O=o=n>>>0>>0?o+1|0:o,e=o,o=K+uA|0,o=((D=b+T|0)>>>0>>0?o+1|0:o)+e|0,Y=o=(e=n+D|0)>>>0>>0?o+1|0:o,n=nA(e^k,o^h,32),o=(W=w)+V|0,h=nA((D=n+j|0)^b,(o=D>>>0>>0?o+1|0:o)^K,40),m=o,o=z+(b=w)|0,o=Y+((K=I+h|0)>>>0>>0?o+1|0:o)|0,o=(Y=e+K|0)>>>0>>0?o+1|0:o,e=W,W=o,e=nA(n^Y,e^o,48),o=(o=m)+(m=w)|0,n=(D=e+D|0)^h,h=o=D>>>0>>0?o+1|0:o,b=o=nA(n,o^b,1),K=n=w,AA=y,Z=c,c=r,r=nA(S^P,O^CA,48),o=(S=w)+G|0,G=n=r+M|0,M=o=n>>>0>>0?o+1|0:o,c=nA(n^c,o^J,1),o=(J=w)+pA|0,o=U+((n=c+oA|0)>>>0>>0?o+1|0:o)|0,s=o=(y=n+s|0)>>>0>>0?o+1|0:o,n=nA(y^Z,o^_,32),o=(U=w)+p|0,_=o=(p=n+AA|0)>>>0>>0?o+1|0:o,c=nA(c^p,o^J,40),o=B+(CA=w)|0,J=c,o=s+((c=g+c|0)>>>0>>0?o+1|0:o)|0,s=c+y|0,c=U,U=o=s>>>0>>0?o+1|0:o,c=nA(n^s,c^o,48),o=(o=_)+(_=w)|0,P=n=c+p|0,O=o=n>>>0>>0?o+1|0:o,y=t,o=H+IA|0,t=o=(n=k+v|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^N,1),o=(k=w)+DA|0,o=l+((p=f+gA|0)>>>0>>0?o+1|0:o)|0,u=o=(p=p+u|0)>>>0>>0?o+1|0:o,y=nA(y^p,o^R,32),l=o=w,H=f,o=o+M|0,o=(f=y+G|0)>>>0>>0?o+1|0:o,v=f,f^=H,H=o,f=nA(f,o^k,40),o=lA+(N=w)|0,o=u+((k=f+QA|0)>>>0>>0?o+1|0:o)|0,G=l,l=o=(u=p+k|0)>>>0

>>0?o+1|0:o,k=nA(y^u,G^o,48),IA=o=w,p=o,y=nA(j^d,V^$,1),G=o=w,M=t,o=o+FA|0,o=L+((t=y+cA|0)>>>0>>0?o+1|0:o)|0,F=o=(t=t+F|0)>>>0>>0?o+1|0:o,S=nA(r^t,o^S,32),o=($=w)+M|0,M=n=S+n|0,r=nA(n^y,(r=G)^(G=n>>>0>>0?o+1|0:o),40),o=tA+(d=w)|0,o=F+((n=r+X|0)>>>0>>0?o+1|0:o)|0,j=n=n+t|0,V=o=n>>>0>>0?o+1|0:o,t=o,o=K+HA|0,o=((y=b+fA|0)>>>0>>0?o+1|0:o)+t|0,F=o=(t=n+y|0)>>>0>>0?o+1|0:o,n=nA(t^k,o^p,32),o=(L=w)+O|0,p=nA((y=n+P|0)^b,(o=y>>>0>>0?o+1|0:o)^K,40),R=o,o=yA+(b=w)|0,o=F+((K=p+eA|0)>>>0>>0?o+1|0:o)|0,o=(F=t+K|0)>>>0>>0?o+1|0:o,t=L,L=o,t=nA(n^F,t^o,48),o=(o=R)+(R=w)|0,n=(y=t+y|0)^p,p=o=y>>>0>>0?o+1|0:o,b=o=nA(n,o^b,1),K=n=w,AA=D,Z=c,c=r,r=nA(S^j,V^$,48),o=(S=w)+G|0,G=n=r+M|0,M=o=n>>>0>>0?o+1|0:o,c=nA(n^c,o^d,1),o=(d=w)+SA|0,o=l+((n=c+iA|0)>>>0>>0?o+1|0:o)|0,u=o=(D=n+u|0)>>>0>>0?o+1|0:o,n=nA(D^Z,o^_,32),o=(l=w)+h|0,_=o=(h=n+AA|0)>>>0>>0?o+1|0:o,c=nA(c^h,o^d,40),o=C+($=w)|0,d=c,o=u+((c=sA+c|0)>>>0>>0?o+1|0:o)|0,u=c+D|0,c=l,l=o=u>>>0>>0?o+1|0:o,c=nA(n^u,c^o,48),o=(o=_)+(_=w)|0,j=n=c+h|0,V=o=n>>>0>>0?o+1|0:o,D=e,o=H+IA|0,e=o=(n=k+v|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^N,1),o=lA+(k=w)|0,o=U+((h=f+QA|0)>>>0>>0?o+1|0:o)|0,s=o=(h=h+s|0)>>>0>>0?o+1|0:o,D=nA(D^h,o^m,32),U=o=w,H=f,o=o+M|0,o=(f=D+G|0)>>>0>>0?o+1|0:o,v=f,f^=H,H=o,f=nA(f,o^k,40),o=x+(N=w)|0,o=s+((k=f+aA|0)>>>0>>0?o+1|0:o)|0,o=(s=h+k|0)>>>0>>0?o+1|0:o,h=U,U=o,k=nA(D^s,h^o,48),IA=o=w,h=o,D=nA(J^P,O^CA,1),G=o=w,M=e,o=o+MA|0,o=W+((e=D+rA|0)>>>0>>0?o+1|0:o)|0,Y=o=(e=e+Y|0)>>>0>>0?o+1|0:o,S=nA(r^e,o^S,32),o=(CA=w)+M|0,M=n=S+n|0,r=nA(n^D,(r=G)^(G=n>>>0>>0?o+1|0:o),40),o=FA+(J=w)|0,o=Y+((n=r+cA|0)>>>0>>0?o+1|0:o)|0,P=n=n+e|0,O=o=n>>>0>>0?o+1|0:o,e=o,o=K+hA|0,o=((D=b+EA|0)>>>0>>0?o+1|0:o)+e|0,Y=o=(e=n+D|0)>>>0>>0?o+1|0:o,n=nA(e^k,o^h,32),o=(W=w)+V|0,h=nA((D=n+j|0)^b,(o=D>>>0>>0?o+1|0:o)^K,40),m=o,o=B+(b=w)|0,o=Y+((K=h+g|0)>>>0>>0?o+1|0:o)|0,o=(Y=e+K|0)>>>0>>0?o+1|0:o,e=W,W=o,e=nA(n^Y,e^o,48),o=(o=m)+(m=w)|0,n=(D=e+D|0)^h,h=o=D>>>0>>0?o+1|0:o,b=o=nA(n,o^b,1),K=n=w,AA=y,Z=c,c=r,r=nA(S^P,O^CA,48),o=(S=w)+G|0,G=n=r+M|0,M=o=n>>>0>>0?o+1|0:o,c=nA(n^c,o^J,1),o=(P=w)+BA|0,o=U+((n=c+q|0)>>>0>>0?o+1|0:o)|0,s=o=(y=n+s|0)>>>0>>0?o+1|0:o,n=nA(y^Z,o^_,32),o=(U=w)+p|0,_=p=n+AA|0,J=o=p>>>0>>0?o+1|0:o,c=nA(c^p,o^P,40),o=uA+(AA=w)|0,P=c,o=s+((c=T+c|0)>>>0>>0?o+1|0:o)|0,p=c+y|0,c=U,U=o=p>>>0>>0?o+1|0:o,c=nA(n^p,c^o,48),o=(o=J)+(J=w)|0,_=n=c+_|0,O=o=n>>>0>>0?o+1|0:o,y=t,o=H+IA|0,t=o=(n=k+v|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^N,1),o=(k=w)+z|0,o=l+((s=I+f|0)>>>0>>0?o+1|0:o)|0,u=o=(s=s+u|0)>>>0>>0?o+1|0:o,l=y=nA(y^s,o^R,32),H=o=w,v=f,o=o+M|0,o=(f=y+G|0)>>>0>>0?o+1|0:o,N=f,f^=v,v=o,f=nA(f,o^k,40),o=pA+(G=w)|0,o=u+((y=f+oA|0)>>>0>>0?o+1|0:o)|0,M=(y=y+s|0)^l,l=o=y>>>0>>0?o+1|0:o,s=nA(M,o^H,48),R=o=w,k=o,H=u=nA(j^d,V^$,1),M=o=w,d=t,o=o+tA|0,o=L+((t=u+X|0)>>>0>>0?o+1|0:o)|0,o=(t=t+F|0)>>>0>>0?o+1|0:o,F=S,S=o,u=nA(r^t,F^o,32),o=(Z=w)+d|0,F=n=u+n|0,r=nA(r=n^H,(H=n>>>0>>0?o+1|0:o)^M,40),o=DA+(M=w)|0,o=S+((n=r+gA|0)>>>0>>0?o+1|0:o)|0,S=n=n+t|0,d=o=n>>>0>>0?o+1|0:o,t=o,o=K+uA|0,o=((L=T)>>>0>(T=b+T|0)>>>0?o+1|0:o)+t|0,uA=o=(n=n+T|0)>>>0>>0?o+1|0:o,T=nA(n^s,o^k,32),o=(j=w)+O|0,k=nA((t=_+T|0)^b,(o=t>>>0>>0?o+1|0:o)^K,40),L=o,o=pA+(V=w)|0,o=uA+((b=oA)>>>0>(oA=k+oA|0)>>>0?o+1|0:o)|0,o=(oA=n+oA|0)>>>0>>0?o+1|0:o,n=T^oA,T=o;pA=nA(n,o^j,48),o=(uA=w)+L|0,t=o=(n=t+pA|0)>>>0>>0?o+1|0:o,o=nA(n^k,o^V,1),k=w,j=o,V=D,D=gA,L=DA,DA=nA(u^S,d^Z,48),o=(u=w)+H|0,H=D,F=o=(gA=F+DA|0)>>>0>>0?o+1|0:o,D=nA(r^(S=gA),o^M,1),o=(M=w)+L|0,o=l+(D>>>0>(gA=H+D|0)>>>0?o+1|0:o)|0,r=o=(gA=y+gA|0)>>>0>>0?o+1|0:o,c=nA(c^gA,o^J,32),o=(o=h)+(h=w)|0,l=y=c+V|0,H=o=y>>>0>>0?o+1|0:o,y=nA(y^D,o^M,40),o=(M=w)+SA|0,o=(y>>>0>(iA=y+iA|0)>>>0?o+1|0:o)+r|0,r=o=(r=iA)>>>0>(iA=gA+iA|0)>>>0?o+1|0:o,c=nA(c^iA,o^h,48),o=(D=w)+H|0,h=gA=c+l|0,SA=o=gA>>>0>>0?o+1|0:o,l=I,H=z,o=v+R|0,gA=o=(I=s+N|0)>>>0>>0?o+1|0:o,z=nA(I^f,o^G,1),o=(s=w)+H|0,o=U+((f=l+z|0)>>>0>>0?o+1|0:o)|0,e=nA((f=f+p|0)^e,(o=f>>>0

>>0?o+1|0:o)^m,32),l=o,U=EA,EA=z,o=(p=w)+F|0,F=s,s=o=(z=e+S|0)>>>0>>0?o+1|0:o,EA=nA(z^EA,F^o,40),o=(S=w)+hA|0,o=((hA=U+EA|0)>>>0>>0?o+1|0:o)+l|0,l=hA,f=e^(hA=f+hA|0),e=o=l>>>0>hA>>>0?o+1|0:o,o=nA(f,o^p,48),v=f=w,p=o,F=q,l=BA,q=nA(_^P,O^AA,1),H=o=w,o=o+HA|0,o=W+((q=(U=q)+fA|0)>>>0>>0?o+1|0:o)|0,fA=o=(q=Y+q|0)>>>0>>0?o+1|0:o,BA=nA(q^DA,o^u,32),o=(Y=w)+gA|0,gA=I=BA+I|0,DA=nA(I^U,(u=I>>>0>>0?o+1|0:o)^H,40),o=(o=l)+(l=w)|0,o=fA+((I=DA+F|0)>>>0>>0?o+1|0:o)|0,fA=I=I+q|0,HA=o=I>>>0>>0?o+1|0:o,q=o,o=k+lA|0,o=((U=QA)>>>0>(QA=j+QA|0)>>>0?o+1|0:o)+q|0,lA=o=(q=I+QA|0)>>>0>>0?o+1|0:o,QA=nA(p^q,o^f,32),o=(U=w)+SA|0,f=I=QA+h|0,I=nA(I^j,(F=k)^(k=I>>>0>>0?o+1|0:o),40),o=MA+(H=w)|0,MA=I,o=lA+((I=rA+I|0)>>>0>>0?o+1|0:o)|0,o=(I=I+q|0)>>>0>>0?o+1|0:o,lA=I,N=(a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24)^I,F=o,G=o^(a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24),q=nA(BA^fA,Y^HA,48),o=(fA=w)+u|0,u=I=q+gA|0,HA=o=I>>>0>>0?o+1|0:o,BA=eA,o=s+v|0,eA=o=(I=p+z|0)>>>0>>0?o+1|0:o,EA=nA(I^EA,o^S,1),o=(p=w)+yA|0,o=((BA=EA+BA|0)>>>0>>0?o+1|0:o)+r|0,BA=o=(yA=BA+iA|0)>>>0>>0?o+1|0:o,gA=nA(yA^pA,o^uA,32),o=(z=w)+HA|0,iA=o=(rA=gA+u|0)>>>0>>0?o+1|0:o,pA=gA,gA=nA(EA^rA,o^p,40),o=(r=w)+FA|0,o=(gA>>>0>(EA=gA+cA|0)>>>0?o+1|0:o)+BA|0,s=z,z=o=(yA=EA+yA|0)>>>0>>0?o+1|0:o,EA=nA(pA^(cA=yA),s^o,48),o=(p=w)+iA|0,o=(BA=EA+rA|0)>>>0>>0?o+1|0:o,rA=BA,BA^=N,E[A+8|0]=BA,E[A+9|0]=BA>>>8,E[A+10|0]=BA>>>16,E[A+11|0]=BA>>>24,iA=o,o^=G,E[A+12|0]=o,E[A+13|0]=o>>>8,E[A+14|0]=o>>>16,E[A+15|0]=o>>>24,yA=I,BA=eA,I=q,q=nA(y^h,M^SA,1),o=(FA=w)+B|0,o=(q>>>0>(eA=q+g|0)>>>0?o+1|0:o)+T|0,oA=o=(h=eA)>>>0>(eA=oA+eA|0)>>>0?o+1|0:o,I=nA(I^eA,o^fA,32),o=(o=BA)+(BA=w)|0,fA=o=(yA=I+yA|0)>>>0>>0?o+1|0:o,pA=I,yA=nA(q^(T=yA),o^FA,40),o=(y=w)+C|0,o=oA+((I=yA+sA|0)>>>0>>0?o+1|0:o)|0,o=(I=I+eA|0)>>>0>>0?o+1|0:o,oA=I,I^=pA,pA=o,eA=nA(I,o^BA,48),o=(h=w)+fA|0,T=I=eA+T|0,fA=I>>>0>>0?o+1|0:o,DA=I=nA(u^DA,l^HA,1),FA=o=w,o=o+x|0,o=e+((I=I+aA|0)>>>0>>0?o+1|0:o)|0,x=o=(q=I+hA|0)>>>0>>0?o+1|0:o,I=(BA=nA(c^q,o^D,32))+n|0,o=(n=w)+t|0,hA=I,I=(aA=nA(e=I^DA,(DA=I>>>0>>0?o+1|0:o)^FA,40))+X|0,o=(X=w)+tA|0,o=x+(I>>>0>>0?o+1|0:o)|0,o=(x=I+q|0)>>>0>>0?o+1|0:o,q=x^UA^T,E[0|(I=A)]=q,E[I+1|0]=q>>>8,E[I+2|0]=q>>>16,E[I+3|0]=q>>>24,q=o^Q^fA,E[I+4|0]=q,E[I+5|0]=q>>>8,E[I+6|0]=q>>>16,E[I+7|0]=q>>>24,q=(BA=nA(x^BA,o^n,48))+hA|0,o=(hA=w)+DA|0,o=(DA=q>>>0>>0?o+1|0:o)^(a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24)^pA,x=(a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24)^oA^q,E[I+16|0]=x,E[I+17|0]=x>>>8,E[I+18|0]=x>>>16,E[I+19|0]=x>>>24,E[I+20|0]=o,E[I+21|0]=o>>>8,E[I+22|0]=o>>>16,E[I+23|0]=o>>>24,I=nA(QA^lA,F^U,48),x=w,oA=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24,o=(a[A+32|0]|a[A+33|0]<<8|a[A+34|0]<<16|a[A+35|0]<<24)^nA(gA^rA,r^iA,1)^I,E[A+32|0]=o,E[A+33|0]=o>>>8,E[A+34|0]=o>>>16,E[A+35|0]=o>>>24,o=w^oA^x,E[A+36|0]=o,E[A+37|0]=o>>>8,E[A+38|0]=o>>>16,E[A+39|0]=o>>>24,o=k+x|0,o=(oA=I+f|0)>>>0>>0?o+1|0:o,gA=(a[(I=A)+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24)^z^o,x=(a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24)^cA^oA,E[I+24|0]=x,E[I+25|0]=x>>>8,E[I+26|0]=x>>>16,E[I+27|0]=x>>>24,E[I+28|0]=gA,E[I+29|0]=gA>>>8,E[I+30|0]=gA>>>16,E[I+31|0]=gA>>>24,gA=a[I+44|0]|a[I+45|0]<<8|a[I+46|0]<<16|a[I+47|0]<<24,I=eA^(a[I+40|0]|a[I+41|0]<<8|a[I+42|0]<<16|a[I+43|0]<<24)^nA(q^aA,X^DA,1),E[A+40|0]=I,E[A+41|0]=I>>>8,E[A+42|0]=I>>>16,E[A+43|0]=I>>>24,I=h^w^gA,E[A+44|0]=I,E[A+45|0]=I>>>8,E[A+46|0]=I>>>16,E[A+47|0]=I>>>24,q=a[A+60|0]|a[A+61|0]<<8|a[A+62|0]<<16|a[A+63|0]<<24,I=BA^(a[A+56|0]|a[A+57|0]<<8|a[A+58|0]<<16|a[A+59|0]<<24)^nA(T^yA,y^fA,1),E[A+56|0]=I,E[A+57|0]=I>>>8,E[A+58|0]=I>>>16,E[A+59|0]=I>>>24,I=hA^w^q,E[A+60|0]=I,E[A+61|0]=I>>>8,E[A+62|0]=I>>>16,E[A+63|0]=I>>>24,q=a[A+52|0]|a[A+53|0]<<8|a[A+54|0]<<16|a[A+55|0]<<24,I=EA^(a[A+48|0]|a[A+49|0]<<8|a[A+50|0]<<16|a[A+51|0]<<24)^nA(oA^MA,o^H,1),E[A+48|0]=I,E[A+49|0]=I>>>8,E[A+50|0]=I>>>16,E[A+51|0]=I>>>24,I=p^w^q,E[A+52|0]=I,E[A+53|0]=I>>>8,E[A+54|0]=I>>>16,E[A+55|0]=I>>>24}function s(A,I,g,C,B,Q,i){var n,r,f,t,e,c,y,h,s,p,k,F,l,S,H,G,U,J,N,Y,b,_,K,P,d,L,R,x,j,X,q,z,V,O,T,W,Z,$,AA,IA,gA,CA,BA,iA,oA,aA,nA,rA,fA=0,tA=0,eA=0,cA=0,yA=0,wA=0,hA=0,sA=0,pA=0,kA=0,FA=0,lA=0,SA=0,HA=0,MA=0,GA=0,UA=0,JA=0,NA=0,YA=0,bA=0,_A=0,KA=0,PA=0,vA=0,mA=0,dA=0,LA=0,RA=0,xA=0,jA=0,XA=0,qA=0,zA=0,VA=0,OA=0,TA=0,WA=0,ZA=0,AI=0,II=0,gI=0,CI=0,BI=0,QI=0,iI=0;return D=f=D-560|0,EA(f+352|0),i&&m(f+352|0,34768,34,0),QA(f+288|0,Q,32,0),m(wA=f+352|0,f+320|0,32,0),m(wA,g,C,B),M(wA,sA=f+224|0),pA=a[(tA=Q)+32|0]|a[tA+33|0]<<8|a[tA+34|0]<<16|a[tA+35|0]<<24,FA=a[tA+36|0]|a[tA+37|0]<<8|a[tA+38|0]<<16|a[tA+39|0]<<24,cA=a[tA+40|0]|a[tA+41|0]<<8|a[tA+42|0]<<16|a[tA+43|0]<<24,fA=a[tA+44|0]|a[tA+45|0]<<8|a[tA+46|0]<<16|a[tA+47|0]<<24,eA=a[tA+48|0]|a[tA+49|0]<<8|a[tA+50|0]<<16|a[tA+51|0]<<24,Q=a[tA+52|0]|a[tA+53|0]<<8|a[tA+54|0]<<16|a[tA+55|0]<<24,yA=a[tA+60|0]|a[tA+61|0]<<8|a[tA+62|0]<<16|a[tA+63|0]<<24,tA=a[tA+56|0]|a[tA+57|0]<<8|a[tA+58|0]<<16|a[tA+59|0]<<24,E[A+56|0]=tA,E[A+57|0]=tA>>>8,E[A+58|0]=tA>>>16,E[A+59|0]=tA>>>24,E[A+60|0]=yA,E[A+61|0]=yA>>>8,E[A+62|0]=yA>>>16,E[A+63|0]=yA>>>24,E[A+48|0]=eA,E[A+49|0]=eA>>>8,E[A+50|0]=eA>>>16,E[A+51|0]=eA>>>24,E[A+52|0]=Q,E[A+53|0]=Q>>>8,E[A+54|0]=Q>>>16,E[A+55|0]=Q>>>24,E[A+40|0]=cA,E[A+41|0]=cA>>>8,E[A+42|0]=cA>>>16,E[A+43|0]=cA>>>24,E[A+44|0]=fA,E[A+45|0]=fA>>>8,E[A+46|0]=fA>>>16,E[A+47|0]=fA>>>24,E[0|(Q=A+32|0)]=pA,E[Q+1|0]=pA>>>8,E[Q+2|0]=pA>>>16,E[Q+3|0]=pA>>>24,E[Q+4|0]=FA,E[Q+5|0]=FA>>>8,E[Q+6|0]=FA>>>16,E[Q+7|0]=FA>>>24,u(sA),v(f,sA),uA(A,f),EA(wA),i&&m(f+352|0,34768,34,0),m(i=f+352|0,A,64,0),m(i,g,C,B),M(i,hA=f+160|0),u(hA),E[f+288|0]=248&a[f+288|0],E[f+319|0]=63&a[f+319|0]|64,g=a[23+(A=r=f+288|0)|0],cA=DA(t=a[A+21|0]|a[A+22|0]<<8|g<<16&2031616,0,e=(a[hA+28|0]|a[hA+29|0]<<8|a[hA+30|0]<<16|a[hA+31|0]<<24)>>>7|0,0),eA=w,g=(A=a[hA+27|0])>>>24|0,B=A<<8|(fA=a[hA+23|0]|a[hA+24|0]<<8|a[hA+25|0]<<16|a[hA+26|0]<<24)>>>24,A=DA(c=2097151&((3&(FA=(A=(C=a[hA+28|0])>>>16|0)|g))<<30|(g=(C<<=16)|B)>>>2),0,y=(i=a[r+23|0]|a[r+24|0]<<8|a[r+25|0]<<16|a[r+26|0]<<24)>>>5&2097151,0),g=w+eA|0,C=A>>>0>(B=A+cA|0)>>>0?g+1|0:g,A=DA(h=(g=a[hA+23|0])<<16&2031616|a[hA+21|0]|a[hA+22|0]<<8,0,s=(a[r+28|0]|a[r+29|0]<<8|a[r+30|0]<<16|a[r+31|0]<<24)>>>7|0,0),C=w+C|0,eA=g=A+B|0,B=A>>>0>g>>>0?C+1|0:C,C=(A=a[r+27|0])>>>24|0,i=A<<8|i>>>24,A=DA(p=2097151&((3&(C|=g=(A=a[r+28|0])>>>16|0))<<30|(g=(A<<=16)|i)>>>2),0,k=fA>>>5&2097151,0),g=w+B|0,tA=C=A+eA|0,B=A>>>0>C>>>0?g+1|0:g,fA=DA(y,0,k,0),eA=w,g=(A=a[r+19|0])>>>24|0,i=A<<8|(UA=a[r+15|0]|a[r+16|0]<<8|a[r+17|0]<<16|a[r+18|0]<<24)>>>24,C=g,g=DA(F=(7&(C|=g=(A=a[r+20|0])>>>16|0))<<29|(g=(A<<=16)|i)>>>3,FA=C>>>3|0,e,0),A=w+eA|0,A=g>>>0>(C=g+fA|0)>>>0?A+1|0:A,i=(g=DA(t,0,c,0))+C|0,C=w+A|0,g=g>>>0>(fA=i)>>>0?C+1|0:C,C=(A=a[hA+19|0])>>>24|0,eA=A<<8|(GA=a[hA+15|0]|a[hA+16|0]<<8|a[hA+17|0]<<16|a[hA+18|0]<<24)>>>24,A=DA(l=(7&(cA=(A=(i=a[hA+20|0])>>>16|0)|C))<<29|(C=(i<<=16)|eA)>>>3,S=cA>>>3|0,s,0),g=w+g|0,g=A>>>0>(C=A+fA|0)>>>0?g+1|0:g,A=DA(h,0,p,0),g=w+g|0,pA=g=A>>>0>(sA=A+C|0)>>>0?g+1|0:g,lA=A=g-((sA>>>0<4293918720)-1|0)|0,C=(g=A>>>21|0)+B|0,fA=C=(A=(2097151&A)<<11|(cA=sA- -1048576|0)>>>21)>>>0>(tA=A+tA|0)>>>0?C+1|0:C,HA=A=C-((tA>>>0<4293918720)-1|0)|0,wA=(2097151&A)<<11|(eA=tA- -1048576|0)>>>21,i=A>>>21|0,A=DA(s,0,k,0),g=w,C=A,A=DA(e,0,y,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,SA=(A=C)+(C=DA(c,0,p,0))|0,A=w+g|0,A=C>>>0>SA>>>0?A+1|0:A,yA=SA-(g=-2097152&(C=SA- -1048576|0))|0,g=(A-((131071&(B=A-((SA>>>0<4293918720)-1|0)|0))+(g>>>0>SA>>>0)|0)|0)+i|0,j=g=(A=yA+wA|0)>>>0>>0?g+1|0:g,X=A,yA=DA(A,g,470296,0),wA=w,g=DA(e,0,p,0),A=w,i=g,g=DA(c,0,s,0),A=w+A|0,g=g>>>0>(i=i+g|0)>>>0?A+1|0:A,A=B>>>21|0,B=(2097151&B)<<11|C>>>21,C=A+g|0,_A=B=(C=B>>>0>(i=B+i|0)>>>0?C+1|0:C)-((i>>>0<4293918720)-1|0)|0,A=i-(g=-2097152&(bA=i- -1048576|0))|0,q=i=C-((131071&B)+(g>>>0>i>>>0)|0)|0,z=g=tA-(C=-2097152&eA)|0,V=B=fA-((C>>>0>tA>>>0)+HA|0)|0,O=A,C=DA(A,i,666643,0),A=w+wA|0,A=C>>>0>(i=C+yA|0)>>>0?A+1|0:A,C=DA(g,B,654183,0),g=w+A|0,kA=B=C+i|0,eA=C>>>0>B>>>0?g+1|0:g,SA=sA-(A=-2097152&cA)|0,lA=pA-((A>>>0>sA>>>0)+lA|0)|0,g=DA(c,0,F,FA),C=w,B=(A=g)+(g=DA(H=UA>>>6&2097151,0,e,0))|0,A=w+C|0,A=g>>>0>B>>>0?A+1|0:A,g=DA(y,0,h,0),C=w+A|0,C=g>>>0>(B=g+B|0)>>>0?C+1|0:C,A=DA(t,0,k,0),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,C=DA(s,0,G=GA>>>6&2097151,0),A=w+g|0,A=C>>>0>(B=C+B|0)>>>0?A+1|0:A,C=DA(p,0,l,S),g=w+A|0,sA=B=C+B|0,i=C>>>0>B>>>0?g+1|0:g,g=(A=a[r+14|0])>>>24|0,B=A<<8|(pA=a[r+10|0]|a[r+11|0]<<8|a[r+12|0]<<16|a[r+13|0]<<24)>>>24,g=DA(U=2097151&((1&(g|=A=(C=a[r+15|0])>>>16|0))<<31|(A=(C<<=16)|B)>>>1),0,e,0),A=w,C=g,g=DA(c,0,H,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=DA(k,0,F,FA))+C|0,C=w+A|0,C=g>>>0>B>>>0?C+1|0:C,A=DA(y,0,l,S),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,A=DA(t,0,h,0),g=w+g|0,cA=C=A+B|0,B=A>>>0>C>>>0?g+1|0:g,g=(A=a[hA+14|0])>>>24|0,fA=A<<8|(tA=a[hA+10|0]|a[hA+11|0]<<8|a[hA+12|0]<<16|a[hA+13|0]<<24)>>>24,C=g,g=(A=a[hA+15|0])>>>16|0,g=DA(J=2097151&((1&(g|=C))<<31|(A=A<<16|fA)>>>1),0,s,0),A=w+B|0,A=g>>>0>(C=g+cA|0)>>>0?A+1|0:A,g=DA(p,0,G,0),A=w+A|0,fA=A=g>>>0>(cA=g+C|0)>>>0?A+1|0:A,KA=g=A-((cA>>>0<4293918720)-1|0)|0,C=(A=g>>>21|0)+i|0,wA=C=(g=(2097151&g)<<11|(yA=cA- -1048576|0)>>>21)>>>0>(HA=g+sA|0)>>>0?C+1|0:C,NA=g=C-((HA>>>0<4293918720)-1|0)|0,A=(A=g>>>21|0)+lA|0,T=A=(g=(C=(2097151&g)<<11|(sA=HA- -1048576|0)>>>21)+SA|0)>>>0>>0?A+1|0:A,W=g,A=DA(g,A,-997805,-1),g=w+eA|0,kA=C=A+kA|0,eA=A>>>0>C>>>0?g+1|0:g,SA=(mA=a[23+(n=f+224|0)|0]|a[n+24|0]<<8|a[n+25|0]<<16|a[n+26|0]<<24)>>>5&2097151,C=DA(N=(A=a[r+2|0])<<16&2031616|a[0|r]|a[r+1|0]<<8,0,k,0),g=w,B=(A=DA(h,0,Y=(i=a[r+2|0]|a[r+3|0]<<8|a[r+4|0]<<16|a[r+5|0]<<24)>>>5&2097151,0))+C|0,C=w+g|0,C=A>>>0>B>>>0?C+1|0:C,A=DA(b=(a[r+7|0]|a[r+8|0]<<8|a[r+9|0]<<16|a[r+10|0]<<24)>>>7&2097151,0,G,0),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,C=DA(J,0,_=pA>>>4&2097151,0),A=w+g|0,pA=B=C+B|0,B=C>>>0>B>>>0?A+1|0:A,i=(g=a[r+6|0])<<8|i>>>24,C=A=g>>>24|0,g=(A=a[r+7|0])>>>16|0,g=DA(K=2097151&((3&(g|=C))<<30|(A=A<<16|i)>>>2),0,l,S),A=w+B|0,A=g>>>0>(C=g+pA|0)>>>0?A+1|0:A,B=(g=DA(H,0,P=(a[hA+7|0]|a[hA+8|0]<<8|a[hA+9|0]<<16|a[hA+10|0]<<24)>>>7&2097151,0))+C|0,C=w+A|0,C=g>>>0>B>>>0?C+1|0:C,g=DA(U,0,YA=tA>>>4&2097151,0),A=w+C|0,i=g>>>0>(B=g+B|0)>>>0?A+1|0:A,A=(g=a[hA+6|0])>>>24|0,pA=g<<8|(tA=a[hA+2|0]|a[hA+3|0]<<8|a[hA+4|0]<<16|a[hA+5|0]<<24)>>>24,g=A,A=DA(F,FA,d=2097151&((3&(g|=C=(A=a[hA+7|0])>>>16|0))<<30|(A=A<<16|pA)>>>2),0),g=w+i|0,g=A>>>0>(C=A+B|0)>>>0?g+1|0:g,B=C,C=DA(L=(A=a[hA+2|0])<<16&2031616|a[0|hA]|a[hA+1|0]<<8,0,y,0),A=w+g|0,A=C>>>0>(B=B+C|0)>>>0?A+1|0:A,g=DA(t,0,R=tA>>>5&2097151,0),A=w+A|0,g=g>>>0>(C=g+B|0)>>>0?A+1|0:A,pA=A=C+SA|0,i=g=A>>>0>>0?g+1|0:g,B=a[n+21|0]|a[n+22|0]<<8,A=DA(h,0,N,0),g=w,tA=(C=A)+(A=DA(l,S,Y,0))|0,C=w+g|0,C=A>>>0>tA>>>0?C+1|0:C,A=DA(J,0,b,0),g=w+C|0,g=A>>>0>(tA=A+tA|0)>>>0?g+1|0:g,A=DA(_,0,YA,0),g=w+g|0,g=A>>>0>(C=A+tA|0)>>>0?g+1|0:g,tA=(A=C)+(C=DA(G,0,K,0))|0,A=w+g|0,A=C>>>0>tA>>>0?A+1|0:A,g=DA(H,0,d,0),A=w+A|0,A=g>>>0>(C=g+tA|0)>>>0?A+1|0:A,tA=(g=DA(U,0,P,0))+C|0,C=w+A|0,C=g>>>0>tA>>>0?C+1|0:C,A=DA(F,FA,R,0),g=w+C|0,g=A>>>0>(tA=A+tA|0)>>>0?g+1|0:g,A=DA(t,0,L,0),g=w+g|0,A=A>>>0>(C=A+tA|0)>>>0?g+1|0:g,g=(g=C)>>>0>(C=C+B|0)>>>0?A+1|0:A,B=C,C=(A=a[n+23|0])<<16&2031616,A=g,C=A=C>>>0>(B=B+C|0)>>>0?A+1|0:A,hA=A=A-((B>>>0<4293918720)-1|0)|0,g=(g=A>>>21|0)+i|0,A=(g=(i=pA=(A=(2097151&A)<<11|(tA=B- -1048576|0)>>>21)+pA|0)>>>0>>0?g+1|0:g)+eA|0,A=(eA=i+kA|0)>>>0>>0?A+1|0:A,UA=i- -1048576|0,MA=i=g-((i>>>0<4293918720)-1|0)|0,JA=eA-(g=-2097152&UA)|0,PA=A-((g>>>0>eA>>>0)+i|0)|0,pA=B,eA=C,A=DA(z,V,470296,0),g=w,C=A,A=DA(X,j,666643,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,B=(A=C)+(C=DA(W,T,654183,0))|0,A=w+g|0,GA=B,i=C>>>0>B>>>0?A+1|0:A,g=DA(l,S,N,0),A=w,C=g,g=DA(G,0,Y,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=C)+(C=DA(b,0,YA,0))|0,g=w+A|0,g=C>>>0>B>>>0?g+1|0:g,A=DA(_,0,P,0),C=w+g|0,C=A>>>0>(B=A+B|0)>>>0?C+1|0:C,A=DA(J,0,K,0),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,C=DA(H,0,R,0),A=w+g|0,A=C>>>0>(B=C+B|0)>>>0?A+1|0:A,g=DA(U,0,d,0),A=w+A|0,A=g>>>0>(C=g+B|0)>>>0?A+1|0:A,B=(g=C)+(C=DA(F,FA,L,0))|0,g=w+A|0,SA=B,C=C>>>0>B>>>0?g+1|0:g,g=(A=a[n+19|0])>>>24|0,lA=A<<8|(kA=a[n+15|0]|a[n+16|0]<<8|a[n+17|0]<<16|a[n+18|0]<<24)>>>24,C=((vA=(A=(B=a[n+20|0])>>>16|0)|g)>>>3|0)+C|0,SA=B=(g=(7&vA)<<29|(g=(B<<=16)|lA)>>>3)+SA|0,B=g>>>0>B>>>0?C+1|0:C,lA=kA>>>6&2097151,A=DA(G,0,N,0),g=w,C=A,A=DA(J,0,Y,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,kA=(A=C)+(C=DA(b,0,P,0))|0,A=w+g|0,A=C>>>0>kA>>>0?A+1|0:A,C=DA(_,0,d,0),g=w+A|0,g=C>>>0>(kA=C+kA|0)>>>0?g+1|0:g,C=DA(K,0,YA,0),A=w+g|0,A=C>>>0>(kA=C+kA|0)>>>0?A+1|0:A,g=DA(H,0,L,0),C=w+A|0,C=g>>>0>(kA=g+kA|0)>>>0?C+1|0:C,A=DA(U,0,R,0),g=w+C|0,A=A>>>0>(kA=A+kA|0)>>>0?g+1|0:g,VA=A=(LA=kA+lA|0)>>>0>>0?A+1|0:A,gI=A=A-((LA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(qA=LA- -1048576|0)>>>21,A=(A>>>21|0)+B|0,TA=A=C>>>0>(OA=C+SA|0)>>>0?A+1|0:A,CI=A=A-((OA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(xA=OA- -1048576|0)>>>21,A=(A>>>21|0)+i|0,g=(C>>>0>(B=C+GA|0)>>>0?A+1|0:A)+eA|0,eA=(C=B+pA|0)-(A=-2097152&tA)|0,hA=A=(g=C>>>0>>0?g+1|0:g)-((A>>>0>C>>>0)+hA|0)|0,BI=A=A-((eA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(jA=eA- -1048576|0)>>>21,A=(A>>21)+PA|0,B=A=C>>>0>(i=C+JA|0)>>>0?A+1|0:A,II=A=A-((i>>>0<4293918720)-1|0)|0,XA=(2097151&A)<<11|(GA=i- -1048576|0)>>>21,pA=A>>21,vA=HA-(A=-2097152&sA)|0,NA=wA-((A>>>0>HA>>>0)+NA|0)|0,A=DA(e,0,s,0),zA=g=w,JA=A,kA=A- -1048576|0,RA=g=g-((A>>>0<4293918720)-1|0)|0,Z=A=g>>>21|0,A=DA(x=(2097151&g)<<11|kA>>>21,A,-683901,-1),g=w+fA|0,g=A>>>0>(C=A+cA|0)>>>0?g+1|0:g,sA=C-(A=-2097152&yA)|0,tA=g-((A>>>0>C>>>0)+KA|0)|0,g=DA(k,0,H,0),A=w,C=g,g=DA(e,0,_,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,g=DA(c,0,U,0),A=w+A|0,A=g>>>0>(C=g+C|0)>>>0?A+1|0:A,fA=(g=C)+(C=DA(h,0,F,FA))|0,g=w+A|0,g=C>>>0>fA>>>0?g+1|0:g,A=DA(y,0,G,0),C=w+g|0,C=A>>>0>(fA=A+fA|0)>>>0?C+1|0:C,A=DA(t,0,l,S),g=w+C|0,g=A>>>0>(fA=A+fA|0)>>>0?g+1|0:g,C=DA(s,0,YA,0),A=w+g|0,A=C>>>0>(fA=C+fA|0)>>>0?A+1|0:A,g=DA(p,0,J,0),A=w+A|0,cA=C=g+fA|0,fA=g>>>0>C>>>0?A+1|0:A,A=DA(c,0,_,0),g=w,C=A,A=DA(e,0,b,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,wA=(A=DA(h,0,H,0))+C|0,C=w+g|0,C=A>>>0>wA>>>0?C+1|0:C,A=DA(k,0,U,0),g=w+C|0,g=A>>>0>(wA=A+wA|0)>>>0?g+1|0:g,C=DA(F,FA,l,S),A=w+g|0,A=C>>>0>(wA=C+wA|0)>>>0?A+1|0:A,g=DA(y,0,J,0),A=w+A|0,A=g>>>0>(C=g+wA|0)>>>0?A+1|0:A,wA=(g=C)+(C=DA(t,0,G,0))|0,g=w+A|0,g=C>>>0>wA>>>0?g+1|0:g,A=DA(s,0,P,0),C=w+g|0,C=A>>>0>(wA=A+wA|0)>>>0?C+1|0:C,A=DA(p,0,YA,0),g=w+C|0,lA=g=A>>>0>(SA=A+wA|0)>>>0?g+1|0:g,ZA=A=g-((SA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(HA=SA- -1048576|0)>>>21,A=(A>>>21|0)+fA|0,yA=A=g>>>0>(KA=g+cA|0)>>>0?A+1|0:A,dA=A=A-((KA>>>0<4293918720)-1|0)|0,g=(C=A>>>21|0)+tA|0,sA=g=(A=(2097151&A)<<11|(wA=KA- -1048576|0)>>>21)>>>0>(PA=A+sA|0)>>>0?g+1|0:g,WA=A=g-((PA>>>0<4293918720)-1|0)|0,fA=(2097151&A)<<11|(tA=PA- -1048576|0)>>>21,A=(A>>21)+NA|0,$=A=(g=fA+vA|0)>>>0>>0?A+1|0:A,AA=g,A=DA(g,A,-683901,-1),g=w+pA|0,XA=C=A+XA|0,pA=A>>>0>C>>>0?g+1|0:g,A=DA(c,0,N,0),g=w,C=A,A=DA(k,0,Y,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,fA=(A=C)+(C=DA(l,S,b,0))|0,A=w+g|0,A=C>>>0>fA>>>0?A+1|0:A,g=DA(G,0,_,0),C=w+A|0,C=g>>>0>(fA=g+fA|0)>>>0?C+1|0:C,g=DA(h,0,K,0),A=w+C|0,A=g>>>0>(fA=g+fA|0)>>>0?A+1|0:A,C=DA(H,0,YA,0),g=w+A|0,g=C>>>0>(fA=C+fA|0)>>>0?g+1|0:g,A=DA(U,0,J,0),g=w+g|0,g=A>>>0>(C=A+fA|0)>>>0?g+1|0:g,fA=(A=C)+(C=DA(F,FA,P,0))|0,A=w+g|0,A=C>>>0>fA>>>0?A+1|0:A,g=DA(y,0,R,0),C=w+A|0,C=g>>>0>(fA=g+fA|0)>>>0?C+1|0:C,g=DA(t,0,d,0),A=w+C|0,A=g>>>0>(fA=g+fA|0)>>>0?A+1|0:A,C=DA(p,0,L,0),g=w+A|0,NA=fA=C+fA|0,C=C>>>0>fA>>>0?g+1|0:g,g=(A=a[n+27|0])>>>24|0,cA=A<<8|mA>>>24,fA=2097151&((3&(g|=A=(fA=a[n+28|0])>>>16|0))<<30|(A=(fA<<=16)|cA)>>>2),g=C,cA=A=fA+NA|0,fA=A>>>0>>0?g+1|0:g,vA=DA(O,q,470296,0),NA=w,A=(C=(2097151&_A)<<11|bA>>>21)+(JA-(g=-2097152&kA)|0)|0,g=zA-((524287&RA)+(g>>>0>JA>>>0)|0)+(_A>>>21)|0,IA=g=A>>>0>>0?g+1|0:g,gA=A,g=DA(A,g,666643,0),A=w+NA|0,A=g>>>0>(C=g+vA|0)>>>0?A+1|0:A,kA=(g=DA(X,j,654183,0))+C|0,C=w+A|0,C=g>>>0>kA>>>0?C+1|0:C,g=DA(z,V,-997805,-1),A=w+C|0,A=g>>>0>(kA=g+kA|0)>>>0?A+1|0:A,C=DA(W,T,136657,0),g=w+A|0,UA=(A=(2097151&MA)<<11|UA>>>21)+(kA=C+kA|0)|0,g=(MA>>>21|0)+(C>>>0>kA>>>0?g+1|0:g)|0,RA=kA=fA-((cA>>>0<4293918720)-1|0)|0,A=(A>>>0>UA>>>0?g+1|0:g)+fA|0,g=(fA=cA+UA|0)-(C=-2097152&(zA=cA- -1048576|0))|0,C=(A=(A=fA>>>0>>0?A+1|0:A)-((C>>>0>fA>>>0)+kA|0)|0)+pA|0,vA=fA=A-((g>>>0<4293918720)-1|0)|0,JA=(C=(cA=g+XA|0)>>>0>>0?C+1|0:C)-(((g=-2097152&(NA=g- -1048576|0))>>>0>cA>>>0)+fA|0)|0,mA=A=cA-g|0,fA=i,i=B,AI=PA-(A=-2097152&tA)|0,kA=sA-((A>>>0>PA>>>0)+WA|0)|0,A=DA(gA,IA,-683901,-1),g=w,B=(C=A)+(A=DA(x,Z,136657,0))|0,C=w+g|0,g=yA+(A>>>0>B>>>0?C+1|0:C)|0,wA=(C=B+KA|0)-(A=-2097152&wA)|0,sA=(g=C>>>0>>0?g+1|0:g)-((A>>>0>C>>>0)+dA|0)|0,g=DA(x,Z,-997805,-1),A=w+lA|0,A=g>>>0>(C=g+SA|0)>>>0?A+1|0:A,B=(g=DA(gA,IA,136657,0))+C|0,C=w+A|0,C=g>>>0>B>>>0?C+1|0:C,A=DA(O,q,-683901,-1),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,tA=B-(A=-2097152&HA)|0,pA=g-((A>>>0>B>>>0)+ZA|0)|0,g=DA(k,0,_,0),A=w,C=g,g=DA(c,0,b,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=DA(e,0,K,0))+C|0,C=w+A|0,C=g>>>0>B>>>0?C+1|0:C,A=DA(l,S,H,0),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,C=DA(h,0,U,0),A=w+g|0,A=C>>>0>(B=C+B|0)>>>0?A+1|0:A,C=DA(F,FA,G,0),g=w+A|0,g=C>>>0>(B=C+B|0)>>>0?g+1|0:g,C=DA(y,0,YA,0),A=w+g|0,A=C>>>0>(B=C+B|0)>>>0?A+1|0:A,g=DA(t,0,J,0),C=w+A|0,C=g>>>0>(B=g+B|0)>>>0?C+1|0:C,A=DA(s,0,d,0),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,C=DA(p,0,P,0),A=w+g|0,cA=B=C+B|0,B=C>>>0>B>>>0?A+1|0:A,A=DA(k,0,b,0),g=w,C=A,A=DA(e,0,Y,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,yA=(A=C)+(C=DA(h,0,_,0))|0,A=w+g|0,A=C>>>0>yA>>>0?A+1|0:A,g=DA(c,0,K,0),C=w+A|0,C=g>>>0>(yA=g+yA|0)>>>0?C+1|0:C,A=DA(H,0,G,0),g=w+C|0,g=A>>>0>(yA=A+yA|0)>>>0?g+1|0:g,C=DA(l,S,U,0),A=w+g|0,A=C>>>0>(yA=C+yA|0)>>>0?A+1|0:A,C=DA(F,FA,J,0),g=w+A|0,g=C>>>0>(yA=C+yA|0)>>>0?g+1|0:g,C=DA(y,0,P,0),A=w+g|0,A=C>>>0>(yA=C+yA|0)>>>0?A+1|0:A,g=DA(t,0,YA,0),C=w+A|0,C=g>>>0>(yA=g+yA|0)>>>0?C+1|0:C,yA=(A=DA(s,0,R,0))+yA|0,g=w+C|0,C=DA(p,0,d,0),A=w+(A>>>0>yA>>>0?g+1|0:g)|0,PA=A=C>>>0>(WA=C+yA|0)>>>0?A+1|0:A,BA=A=A-((WA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(_A=WA- -1048576|0)>>>21,A=(A>>>21|0)+B|0,bA=A=C>>>0>(XA=C+cA|0)>>>0?A+1|0:A,iA=A=A-((XA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(MA=XA- -1048576|0)>>>21,A=(A>>>21|0)+pA|0,UA=A=C>>>0>(KA=C+tA|0)>>>0?A+1|0:A,oA=A=A-((KA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(lA=KA- -1048576|0)>>>21,A=(A>>21)+sA|0,B=A=C>>>0>(tA=C+wA|0)>>>0?A+1|0:A,sA=A=A-((tA>>>0<4293918720)-1|0)|0,pA=(2097151&A)<<11|(C=tA- -1048576|0)>>>21,A=(A>>21)+kA|0,ZA=A=(cA=pA+AI|0)>>>0>>0?A+1|0:A,dA=cA,A=DA(cA,A,-683901,-1),g=w,cA=A,A=DA(AA,$,136657,0),g=w+g|0,A=(A>>>0>(cA=cA+A|0)>>>0?g+1|0:g)+i|0,QI=(i=fA+cA|0)-(g=-2097152&GA)|0,iI=(A=i>>>0>>0?A+1|0:A)-((g>>>0>i>>>0)+II|0)|0,pA=eA,cA=hA,eA=DA(dA,ZA,136657,0),i=w,AI=A=tA-(g=-2097152&C)|0,CA=B=B-((g>>>0>tA>>>0)+sA|0)|0,C=DA(AA,$,-997805,-1),g=w+i|0,g=C>>>0>(eA=C+eA|0)>>>0?g+1|0:g,C=DA(A,B,-683901,-1),A=w+g|0,II=B=C+eA|0,fA=C>>>0>B>>>0?A+1|0:A,A=DA(W,T,470296,0),g=w,B=(C=A)+(A=DA(z,V,666643,0))|0,C=w+g|0,g=TA+(A>>>0>B>>>0?C+1|0:C)|0,kA=A=B+OA|0,i=g=A>>>0>>0?g+1|0:g,g=DA(W,T,666643,0),A=w+VA|0,A=g>>>0>(C=g+LA|0)>>>0?A+1|0:A,wA=C-(g=-2097152&qA)|0,SA=A-((g>>>0>C>>>0)+gI|0)|0,g=DA(J,0,N,0),A=w,C=g,g=DA(Y,0,YA,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=C)+(C=DA(b,0,d,0))|0,g=w+A|0,g=C>>>0>B>>>0?g+1|0:g,C=DA(_,0,R,0),A=w+g|0,A=C>>>0>(B=C+B|0)>>>0?A+1|0:A,g=DA(K,0,P,0),C=w+A|0,C=g>>>0>(B=g+B|0)>>>0?C+1|0:C,A=DA(U,0,L,0),g=w+C|0,tA=B=A+B|0,B=A>>>0>B>>>0?g+1|0:g,g=(A=a[n+14|0])>>>24|0,eA=A<<8|(sA=a[n+10|0]|a[n+11|0]<<8|a[n+12|0]<<16|a[n+13|0]<<24)>>>24,g=2097151&((1&(g|=C=(A=a[n+15|0])>>>16|0))<<31|(A=eA|A<<16)>>>1),A=B,tA=C=g+tA|0,B=g>>>0>C>>>0?A+1|0:A,eA=sA>>>4&2097151,A=DA(N,0,YA,0),g=w,C=A,A=DA(Y,0,P,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,A=DA(b,0,R,0),g=w+g|0,g=A>>>0>(C=A+C|0)>>>0?g+1|0:g,sA=(A=C)+(C=DA(_,0,L,0))|0,A=w+g|0,A=C>>>0>sA>>>0?A+1|0:A,g=DA(K,0,d,0),C=w+A|0,A=g>>>0>(sA=g+sA|0)>>>0?C+1|0:C,hA=A=(qA=eA+sA|0)>>>0>>0?A+1|0:A,aA=A=A-((qA>>>0<4293918720)-1|0)|0,g=(C=A>>>21|0)+B|0,HA=g=(A=(2097151&A)<<11|(GA=qA- -1048576|0)>>>21)>>>0>(TA=A+tA|0)>>>0?g+1|0:g,nA=A=g-((TA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(yA=TA- -1048576|0)>>>21,A=(A>>>21|0)+SA|0,sA=A=g>>>0>(wA=g+wA|0)>>>0?A+1|0:A,rA=A=A-((wA>>>0<4293918720)-1|0)|0,g=(C=A>>21)+i|0,gI=g=(g=(A=(2097151&A)<<11|(tA=wA- -1048576|0)>>>21)>>>0>(B=A+kA|0)>>>0?g+1|0:g)-(((C=-2097152&xA)>>>0>B>>>0)+CI|0)|0,xA=A=B-C|0,eA=A- -1048576|0,CI=A=g-((A>>>0<4293918720)-1|0)|0,C=(g=A>>21)+fA|0,g=((A=(2097151&A)<<11|eA>>>21)>>>0>(B=A+II|0)>>>0?C+1|0:C)+cA|0,LA=g=(g=(A=B)>>>0>(B=B+pA|0)>>>0?g+1|0:g)-(((C=-2097152&jA)>>>0>B>>>0)+BI|0)|0,cA=A=B-C|0,i=A- -1048576|0,VA=A=g-((A>>>0<4293918720)-1|0)|0,C=(g=A>>21)+iI|0,jA=A=(C=(A=(2097151&A)<<11|i>>>21)>>>0>(fA=A+QI|0)>>>0?C+1|0:C)-((fA>>>0<4293918720)-1|0)|0,kA=mA- -1048576|0,SA=JA-((mA>>>0<4293918720)-1|0)|0,pA=(2097151&A)<<11|(B=fA- -1048576|0)>>>21,A=(A>>21)+JA|0,BI=(mA=pA+mA|0)-(g=-2097152&kA)|0,QI=(pA>>>0>mA>>>0?A+1|0:A)-((g>>>0>mA>>>0)+SA|0)|0,iI=fA-(A=-2097152&B)|0,II=C-((A>>>0>fA>>>0)+jA|0)|0,OA=cA-(A=-2097152&i)|0,mA=LA-((A>>>0>cA>>>0)+VA|0)|0,A=DA(dA,ZA,-997805,-1),g=w,C=A,A=DA(AA,$,654183,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,B=(A=C)+(C=DA(AI,CA,136657,0))|0,A=w+g|0,g=gI+(C>>>0>B>>>0?A+1|0:A)|0,LA=(C=B+xA|0)-(A=-2097152&eA)|0,VA=(g=C>>>0>>0?g+1|0:g)-((A>>>0>C>>>0)+CI|0)|0,xA=KA-(A=-2097152&lA)|0,JA=UA-((A>>>0>KA>>>0)+oA|0)|0,g=DA(gA,IA,-997805,-1),A=w,C=g,g=DA(x,Z,654183,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=C)+(C=DA(O,q,136657,0))|0,g=w+A|0,g=C>>>0>B>>>0?g+1|0:g,A=DA(X,j,-683901,-1),C=w+g|0,g=bA+(A>>>0>(B=A+B|0)>>>0?C+1|0:C)|0,lA=(C=B+XA|0)-(A=-2097152&MA)|0,UA=(g=C>>>0>>0?g+1|0:g)-((A>>>0>C>>>0)+iA|0)|0,g=DA(gA,IA,654183,0),A=w,C=g,g=DA(x,Z,470296,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=DA(O,q,-997805,-1))+C|0,C=w+A|0,g=PA+(g>>>0>B>>>0?C+1|0:C)|0,g=(A=B+WA|0)>>>0>>0?g+1|0:g,C=A,A=DA(X,j,136657,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,B=(A=C)+(C=DA(z,V,-683901,-1))|0,A=w+g|0,eA=B-(g=-2097152&_A)|0,i=(C>>>0>B>>>0?A+1|0:A)-((g>>>0>B>>>0)+BA|0)|0,B=(a[n+28|0]|a[n+29|0]<<8|a[n+30|0]<<16|a[n+31|0]<<24)>>>7|0,A=DA(e,0,N,0),g=w,fA=(C=A)+(A=DA(c,0,Y,0))|0,C=w+g|0,C=A>>>0>fA>>>0?C+1|0:C,A=DA(h,0,b,0),g=w+C|0,g=A>>>0>(fA=A+fA|0)>>>0?g+1|0:g,C=DA(l,S,_,0),A=w+g|0,A=C>>>0>(fA=C+fA|0)>>>0?A+1|0:A,C=DA(k,0,K,0),g=w+A|0,g=C>>>0>(fA=C+fA|0)>>>0?g+1|0:g,C=DA(H,0,J,0),A=w+g|0,A=C>>>0>(fA=C+fA|0)>>>0?A+1|0:A,g=DA(G,0,U,0),C=w+A|0,C=g>>>0>(fA=g+fA|0)>>>0?C+1|0:C,A=DA(F,FA,YA,0),g=w+C|0,g=A>>>0>(fA=A+fA|0)>>>0?g+1|0:g,C=DA(y,0,d,0),A=w+g|0,A=C>>>0>(fA=C+fA|0)>>>0?A+1|0:A,C=DA(t,0,P,0),g=w+A|0,g=C>>>0>(fA=C+fA|0)>>>0?g+1|0:g,C=DA(s,0,L,0),A=w+g|0,A=C>>>0>(fA=C+fA|0)>>>0?A+1|0:A,g=DA(p,0,R,0),C=w+A|0,g=g>>>0>(fA=g+fA|0)>>>0?C+1|0:C,bA=(C=(2097151&RA)<<11|zA>>>21)+(A=B+fA|0)|0,A=(RA>>>21|0)+(g=A>>>0>>0?g+1|0:g)|0,pA=A=C>>>0>bA>>>0?A+1|0:A,jA=g=A-((bA>>>0<4293918720)-1|0)|0,C=(A=g>>>21|0)+i|0,cA=C=(g=(2097151&g)<<11|(FA=bA- -1048576|0)>>>21)>>>0>(MA=g+eA|0)>>>0?C+1|0:C,zA=g=C-((MA>>>0<4293918720)-1|0)|0,A=(A=g>>21)+UA|0,eA=A=(g=(2097151&g)<<11|(fA=MA- -1048576|0)>>>21)>>>0>(lA=g+lA|0)>>>0?A+1|0:A,_A=g=A-((lA>>>0<4293918720)-1|0)|0,C=(A=g>>21)+JA|0,RA=C=(g=(B=(2097151&g)<<11|(i=lA- -1048576|0)>>>21)+xA|0)>>>0>>0?C+1|0:C,JA=g,A=DA(g,C,-683901,-1),g=w+VA|0,UA=C=A+LA|0,B=A>>>0>C>>>0?g+1|0:g,g=DA(AA,$,470296,0),A=w+sA|0,A=g>>>0>(wA=g+wA|0)>>>0?A+1|0:A,g=DA(dA,ZA,654183,0),A=w+(A-(((C=-2097152&tA)>>>0>wA>>>0)+rA|0)|0)|0,A=g>>>0>(tA=g+(wA-C|0)|0)>>>0?A+1|0:A,C=DA(AI,CA,-997805,-1),g=w+A|0,g=C>>>0>(tA=C+tA|0)>>>0?g+1|0:g,PA=C=lA-(A=-2097152&i)|0,YA=eA=eA-((A>>>0>lA>>>0)+_A|0)|0,tA=(i=DA(JA,RA,136657,0))+tA|0,A=w+g|0,C=DA(C,eA,-683901,-1),g=w+(i>>>0>tA>>>0?A+1|0:A)|0,eA=g=C>>>0>(sA=C+tA|0)>>>0?g+1|0:g,_A=A=g-((sA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(i=sA- -1048576|0)>>>21,A=(A>>21)+B|0,lA=g=(A=g>>>0>(tA=g+UA|0)>>>0?A+1|0:A)-((tA>>>0<4293918720)-1|0)|0,wA=(2097151&g)<<11|(B=tA- -1048576|0)>>>21,g=(g>>21)+mA|0,OA=UA=wA+OA|0,UA=wA>>>0>UA>>>0?g+1|0:g,mA=tA-(g=-2097152&B)|0,WA=A-((g>>>0>tA>>>0)+lA|0)|0,LA=sA-(A=-2097152&i)|0,VA=eA-((A>>>0>sA>>>0)+_A|0)|0,A=DA(AA,$,666643,0),C=HA+w|0,C=(i=A+TA|0)>>>0>>0?C+1|0:C,B=(A=DA(dA,ZA,470296,0))+(i-(g=-2097152&yA)|0)|0,g=w+(C-((g>>>0>i>>>0)+nA|0)|0)|0,g=A>>>0>B>>>0?g+1|0:g,C=DA(AI,CA,654183,0),A=w+g|0,tA=B=C+B|0,B=C>>>0>B>>>0?A+1|0:A,i=MA-(A=-2097152&fA)|0,eA=cA-((A>>>0>MA>>>0)+zA|0)|0,A=DA(gA,IA,470296,0),g=w,C=A,A=DA(x,Z,666643,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,A=DA(O,q,654183,0),g=w+g|0,g=A>>>0>(C=A+C|0)>>>0?g+1|0:g,fA=(A=C)+(C=DA(X,j,-997805,-1))|0,A=w+g|0,A=C>>>0>fA>>>0?A+1|0:A,g=DA(z,V,136657,0),A=w+A|0,A=g>>>0>(C=g+fA|0)>>>0?A+1|0:A,fA=(g=DA(W,T,-683901,-1))+C|0,C=w+A|0,g=pA+(g>>>0>fA>>>0?C+1|0:C)|0,MA=(C=(2097151&vA)<<11|NA>>>21)+((fA=fA+bA|0)-(A=-2097152&FA)|0)|0,A=((g=fA>>>0>>0?g+1|0:g)-((A>>>0>fA>>>0)+jA|0)|0)+(vA>>21)|0,lA=A=C>>>0>MA>>>0?A+1|0:A,xA=A=A-((MA>>>0<4293918720)-1|0)|0,g=i,i=(2097151&A)<<11|(yA=MA- -1048576|0)>>>21,A=(A>>21)+eA|0,_A=A=(C=g+i|0)>>>0>>0?A+1|0:A,bA=C,A=DA(C,A,-683901,-1),g=w+B|0,g=A>>>0>(C=A+tA|0)>>>0?g+1|0:g,B=(A=C)+(C=DA(JA,RA,-997805,-1))|0,A=w+g|0,A=C>>>0>B>>>0?A+1|0:A,g=DA(PA,YA,136657,0),C=w+A|0,NA=B=g+B|0,cA=g>>>0>B>>>0?C+1|0:C,tA=qA-(A=-2097152&GA)|0,pA=hA-((A>>>0>qA>>>0)+aA|0)|0,g=DA(N,0,P,0),A=w,C=g,g=DA(Y,0,d,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,g=DA(b,0,L,0),A=w+A|0,A=g>>>0>(C=g+C|0)>>>0?A+1|0:A,B=(g=DA(K,0,R,0))+C|0,C=w+A|0,g=g>>>0>B>>>0?C+1|0:C,FA=C=(A=(a[n+7|0]|a[n+8|0]<<8|a[n+9|0]<<16|a[n+10|0]<<24)>>>7&2097151)+B|0,fA=A>>>0>C>>>0?g+1|0:g,A=DA(N,0,d,0),g=w,C=A,A=DA(Y,0,R,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,B=(A=C)+(C=DA(K,0,L,0))|0,A=w+g|0,eA=B,B=C>>>0>B>>>0?A+1|0:A,A=(g=a[n+6|0])>>>24|0,i=g<<8|(jA=a[n+2|0]|a[n+3|0]<<8|a[n+4|0]<<16|a[n+5|0]<<24)>>>24,C=A,g=(A=a[n+7|0])>>>16|0,g|=C,C=B,i=C=(A=2097151&((3&g)<<30|(A=A<<16|i)>>>2))>>>0>(eA=A+eA|0)>>>0?C+1|0:C,XA=A=C-((eA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(HA=eA- -1048576|0)>>>21,A=(A>>>21|0)+fA|0,wA=A=C>>>0>(hA=C+FA|0)>>>0?A+1|0:A,zA=A=A-((hA>>>0<4293918720)-1|0)|0,C=(g=A>>>21|0)+pA|0,C=(A=(2097151&A)<<11|(sA=hA- -1048576|0)>>>21)>>>0>(B=A+tA|0)>>>0?C+1|0:C,g=DA(dA,ZA,666643,0),A=w+C|0,A=g>>>0>(B=g+B|0)>>>0?A+1|0:A,g=DA(AI,CA,470296,0),A=w+A|0,A=g>>>0>(C=g+B|0)>>>0?A+1|0:A,B=(g=C)+(C=DA(bA,_A,136657,0))|0,g=w+A|0,g=C>>>0>B>>>0?g+1|0:g,A=DA(JA,RA,654183,0),g=w+g|0,g=A>>>0>(C=A+B|0)>>>0?g+1|0:g,tA=(A=DA(PA,YA,-997805,-1))+C|0,C=w+g|0,pA=C=A>>>0>tA>>>0?C+1|0:C,vA=A=C-((tA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(FA=tA- -1048576|0)>>>21,A=(A>>21)+cA|0,NA=C=(A=C>>>0>(B=C+NA|0)>>>0?A+1|0:A)-((B>>>0<4293918720)-1|0)|0,fA=(2097151&C)<<11|(cA=B- -1048576|0)>>>21,C=(C>>21)+VA|0,KA=GA=fA+LA|0,GA=fA>>>0>GA>>>0?C+1|0:C,fA=B,g=A,B=(MA-(A=-2097152&yA)|0)+(yA=(2097151&SA)<<11|kA>>>21)|0,A=(lA-((A>>>0>MA>>>0)+xA|0)|0)+(SA>>21)|0,kA=A=B>>>0>>0?A+1|0:A,LA=A=A-((B>>>0<4293918720)-1|0)|0,MA=C=A>>21,A=DA(dA=(2097151&A)<<11|(SA=B- -1048576|0)>>>21,C,-683901,-1),g=w+g|0,g=A>>>0>(C=A+fA|0)>>>0?g+1|0:g,VA=C-(A=-2097152&cA)|0,qA=g-((A>>>0>C>>>0)+NA|0)|0,g=DA(dA,MA,136657,0),A=w+pA|0,A=g>>>0>(C=g+tA|0)>>>0?A+1|0:A,TA=C-(g=-2097152&FA)|0,vA=A-((g>>>0>C>>>0)+vA|0)|0,g=DA(AI,CA,666643,0),A=w+(wA-(((C=-2097152&sA)>>>0>hA>>>0)+zA|0)|0)|0,A=g>>>0>(fA=g+(hA-C|0)|0)>>>0?A+1|0:A,C=DA(bA,_A,-997805,-1),g=w+A|0,g=C>>>0>(fA=C+fA|0)>>>0?g+1|0:g,A=DA(JA,RA,470296,0),C=w+g|0,C=A>>>0>(fA=A+fA|0)>>>0?C+1|0:C,g=DA(PA,YA,654183,0),A=w+C|0,NA=fA=g+fA|0,pA=g>>>0>fA>>>0?A+1|0:A,C=jA>>>5&2097151,A=DA(N,0,R,0),g=w,cA=A,A=DA(Y,0,L,0),g=w+g|0,A=A>>>0>(fA=cA+A|0)>>>0?g+1|0:g,cA=g=C+fA|0,C=A=g>>>0>>0?A+1|0:A,hA=(g=DA(N,0,L,0))+(A=(A=a[n+2|0])<<16&2031616|a[0|n]|a[n+1|0]<<8)|0,g=w,yA=g=A>>>0>hA>>>0?g+1|0:g,xA=g=g-((hA>>>0<4293918720)-1|0)|0,A=(A=g>>>21|0)+C|0,sA=A=(g=(2097151&g)<<11|(wA=hA- -1048576|0)>>>21)>>>0>(lA=g+cA|0)>>>0?A+1|0:A,jA=g=A-((lA>>>0<4293918720)-1|0)|0,C=(2097151&g)<<11|(tA=lA- -1048576|0)>>>21,g=(g>>>21|0)+i|0,g=C>>>0>(fA=C+eA|0)>>>0?g+1|0:g,C=DA(bA,_A,654183,0),A=w+(g-(((i=-2097152&HA)>>>0>fA>>>0)+XA|0)|0)|0,A=C>>>0>(eA=C+(fA-i|0)|0)>>>0?A+1|0:A,g=DA(JA,RA,666643,0),A=w+A|0,A=g>>>0>(C=g+eA|0)>>>0?A+1|0:A,FA=(g=C)+(C=DA(PA,YA,470296,0))|0,g=w+A|0,cA=g=C>>>0>FA>>>0?g+1|0:g,zA=g=g-((FA>>>0<4293918720)-1|0)|0,C=(A=g>>21)+pA|0,HA=g=(C=(g=(2097151&g)<<11|(fA=FA- -1048576|0)>>>21)>>>0>(eA=g+NA|0)>>>0?C+1|0:C)-((eA>>>0<4293918720)-1|0)|0,pA=(2097151&g)<<11|(i=eA- -1048576|0)>>>21,g=(g>>21)+vA|0,RA=JA=pA+TA|0,pA=pA>>>0>JA>>>0?g+1|0:g,A=DA(dA,MA,-997805,-1),g=w+C|0,g=A>>>0>(eA=A+eA|0)>>>0?g+1|0:g,vA=eA-(A=-2097152&i)|0,NA=g-((A>>>0>eA>>>0)+HA|0)|0,g=DA(dA,MA,654183,0),A=w+cA|0,A=g>>>0>(C=g+FA|0)>>>0?A+1|0:A,JA=C-(g=-2097152&fA)|0,HA=A-((g>>>0>C>>>0)+zA|0)|0,A=DA(bA,_A,470296,0),C=w+(sA-(((g=-2097152&tA)>>>0>lA>>>0)+jA|0)|0)|0,C=A>>>0>(i=A+(lA-g|0)|0)>>>0?C+1|0:C,g=DA(PA,YA,666643,0),A=w+C|0,eA=i=g+i|0,C=g>>>0>i>>>0?A+1|0:A,g=DA(bA,_A,666643,0),A=w+(yA-((4095&xA)+((i=-2097152&wA)>>>0>hA>>>0)|0)|0)|0,FA=A=g>>>0>(tA=g+(hA-i|0)|0)>>>0?A+1|0:A,yA=A=A-((tA>>>0<4293918720)-1|0)|0,i=(2097151&A)<<11|(cA=tA- -1048576|0)>>>21,A=(A>>21)+C|0,C=A=i>>>0>(fA=i+eA|0)>>>0?A+1|0:A,wA=A=A-((fA>>>0<4293918720)-1|0)|0,i=(2097151&A)<<11|(eA=fA- -1048576|0)>>>21,A=(A>>21)+HA|0,i=i>>>0>(sA=i+JA|0)>>>0?A+1|0:A,A=DA(dA,MA,470296,0),C=w+C|0,C=A>>>0>(g=A+fA|0)>>>0?C+1|0:C,fA=g-(A=-2097152&eA)|0,eA=C-((A>>>0>g>>>0)+wA|0)|0,g=DA(dA,MA,666643,0),A=w+(FA-(((C=-2097152&cA)>>>0>tA>>>0)+yA|0)|0)|0,g=(C=(A=g>>>0>(lA=g+(tA-C|0)|0)>>>0?A+1|0:A)>>21)+eA|0,A=(A=(g=(A=(2097151&A)<<11|lA>>>21)>>>0>(HA=A+fA|0)>>>0?g+1|0:g)>>21)+i|0,g=(g=(A=(g=(2097151&g)<<11|HA>>>21)>>>0>(yA=g+sA|0)>>>0?A+1|0:A)>>21)+NA|0,C=(A=(g=(A=(2097151&A)<<11|yA>>>21)>>>0>(i=A+vA|0)>>>0?g+1|0:g)>>21)+pA|0,A=(g=(C=(g=(2097151&g)<<11|i>>>21)>>>0>(wA=g+RA|0)>>>0?C+1|0:C)>>21)+qA|0,g=(C=(A=(C=(2097151&C)<<11|wA>>>21)>>>0>(sA=C+VA|0)>>>0?A+1|0:A)>>21)+GA|0,A=(A=(g=(A=(2097151&A)<<11|sA>>>21)>>>0>(tA=A+KA|0)>>>0?g+1|0:g)>>21)+WA|0,g=(g=(A=(g=(2097151&g)<<11|tA>>>21)>>>0>(pA=g+mA|0)>>>0?A+1|0:A)>>21)+UA|0,C=(A=(g=(A=(2097151&A)<<11|pA>>>21)>>>0>(FA=A+OA|0)>>>0?g+1|0:g)>>21)+II|0,A=(g=(C=(g=(2097151&g)<<11|FA>>>21)>>>0>(cA=g+iI|0)>>>0?C+1|0:C)>>21)+QI|0,eA=(SA=B-(g=-2097152&SA)|0)+((2097151&(A=(C=(2097151&C)<<11|cA>>>21)>>>0>(fA=C+BI|0)>>>0?A+1|0:A))<<11|fA>>>21)|0,A=(kA-((g>>>0>B>>>0)+LA|0)|0)+(A>>21)|0,SA=g=(A=eA>>>0>>0?A+1|0:A)>>21,lA=(A=DA(GA=(2097151&A)<<11|eA>>>21,g,666643,0))+(g=2097151&lA)|0,A=w,B=A=g>>>0>lA>>>0?A+1|0:A,E[0|Q]=lA,E[Q+1|0]=(255&A)<<24|lA>>>8,A=2097151&HA,g=DA(GA,SA,470296,0)+A|0,C=w,A=(B>>21)+(A>>>0>g>>>0?C+1|0:C)|0,A=(kA=(2097151&B)<<11|lA>>>21)>>>0>(HA=kA+g|0)>>>0?A+1|0:A,E[Q+4|0]=(2047&A)<<21|HA>>>11,g=A,C=HA,E[Q+3|0]=(7&A)<<29|C>>>3,E[Q+2|0]=31&((65535&B)<<16|lA>>>16)|C<<5,B=2097151&yA,yA=DA(GA,SA,654183,0)+B|0,A=w,HA=(2097151&g)<<11|C>>>21,g=(g>>21)+(B=B>>>0>yA>>>0?A+1|0:A)|0,A=g=(yA=HA+yA|0)>>>0>>0?g+1|0:g,E[Q+6|0]=(63&A)<<26|yA>>>6,B=yA,yA=0,E[Q+5|0]=yA<<13|(1572864&C)>>>19|B<<2,C=2097151&i,i=DA(GA,SA,-997805,-1)+C|0,g=w,g=C>>>0>i>>>0?g+1|0:g,yA=(2097151&(C=A))<<11|B>>>21,C=(A>>=21)+g|0,C=(i=yA+i|0)>>>0>>0?C+1|0:C,E[Q+9|0]=(511&C)<<23|i>>>9,E[Q+8|0]=(1&C)<<31|i>>>1,g=0,E[Q+7|0]=g<<18|(2080768&B)>>>14|i<<7,g=2097151&wA,B=DA(GA,SA,136657,0)+g|0,A=w,A=g>>>0>B>>>0?A+1|0:A,wA=(2097151&(g=C))<<11|i>>>21,g=A+(C=g>>21)|0,g=(B=wA+B|0)>>>0>>0?g+1|0:g,E[Q+12|0]=(4095&g)<<20|B>>>12,C=B,E[Q+11|0]=(15&g)<<28|C>>>4,B=0,E[Q+10|0]=B<<15|(1966080&i)>>>17|C<<4,B=2097151&sA,i=DA(GA,SA,-683901,-1)+B|0,A=w,A=B>>>0>i>>>0?A+1|0:A,B=g,g=A+(g>>=21)|0,g=(B=(sA=i)+(i=(2097151&B)<<11|C>>>21)|0)>>>0>>0?g+1|0:g,E[Q+14|0]=(127&g)<<25|B>>>7,i=0,E[Q+13|0]=i<<12|(1048576&C)>>>20|B<<1,A=g>>21,C=(g=(2097151&g)<<11|B>>>21)>>>0>(i=g+(2097151&tA)|0)>>>0?A+1|0:A,E[Q+17|0]=(1023&C)<<22|i>>>10,E[Q+16|0]=(3&C)<<30|i>>>2,g=0,E[Q+15|0]=g<<17|(2064384&B)>>>15|i<<6,A=C>>21,A=(g=(2097151&C)<<11|i>>>21)>>>0>(C=g+(2097151&pA)|0)>>>0?A+1|0:A,E[Q+20|0]=(8191&A)<<19|C>>>13,E[Q+19|0]=(31&A)<<27|C>>>5,B=(g=2097151&FA)+(FA=(2097151&A)<<11|C>>>21)|0,g=A>>21,g=B>>>0>>0?g+1|0:g,FA=B,E[Q+21|0]=B,pA=0,E[Q+18|0]=pA<<14|(1835008&i)>>>18|C<<3,E[Q+22|0]=(255&g)<<24|B>>>8,C=g>>21,C=(B=(i=(2097151&g)<<11|B>>>21)+(2097151&cA)|0)>>>0>>0?C+1|0:C,E[Q+25|0]=(2047&C)<<21|B>>>11,E[Q+24|0]=(7&C)<<29|B>>>3,E[Q+23|0]=31&((65535&g)<<16|FA>>>16)|B<<5,A=C>>21,A=(g=(2097151&C)<<11|B>>>21)>>>0>(C=g+(2097151&fA)|0)>>>0?A+1|0:A,E[Q+27|0]=(63&A)<<26|C>>>6,i=0,E[Q+26|0]=i<<13|(1572864&B)>>>19|C<<2,g=A>>21,g=(A=(B=(2097151&A)<<11|C>>>21)+(2097151&eA)|0)>>>0>>0?g+1|0:g,E[Q+31|0]=(131071&g)<<15|A>>>17,E[Q+30|0]=(511&g)<<23|A>>>9,E[Q+29|0]=(1&g)<<31|A>>>1,B=0,E[Q+28|0]=B<<18|(2080768&C)>>>14|A<<7,$A(r,64),$A(n,64),I&&(o[I>>2]=64,o[I+4>>2]=0),D=f+560|0,0}function p(A,I,g,C){for(var B=0,Q=0,i=0,E=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,h=0,s=0,p=0,u=0,k=0,F=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0,N=0,Y=0,b=0,_=0,K=0,P=0,v=0,m=0,d=0,L=0,R=0,x=0;i=(B=f<<3)+g|0,Q=a[0|(B=I+B|0)]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,H=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,n=Q<<24|(65280&Q)<<8,e=(r=16711680&Q)<<24,r=r>>>8|0,B=(t=-16777216&Q)>>>24|0,o[i>>2]=e|t<<8|-16777216&((255&H)<<24|Q>>>8)|16711680&((16777215&H)<<8|Q>>>24)|H>>>8&65280|H>>>24,Q=B|r|n,B=0,o[i+4>>2]=Q|B|B,16!=(0|(f=f+1|0)););for(I=o[A+4>>2],o[C>>2]=o[A>>2],o[C+4>>2]=I,I=o[A+60>>2],o[C+56>>2]=o[A+56>>2],o[C+60>>2]=I,I=o[A+52>>2],o[C+48>>2]=o[A+48>>2],o[C+52>>2]=I,I=o[A+44>>2],o[C+40>>2]=o[A+40>>2],o[C+44>>2]=I,I=o[A+36>>2],o[C+32>>2]=o[A+32>>2],o[C+36>>2]=I,I=o[A+28>>2],o[C+24>>2]=o[A+24>>2],o[C+28>>2]=I,I=o[A+20>>2],o[C+16>>2]=o[A+16>>2],o[C+20>>2]=I,I=o[A+12>>2],o[C+8>>2]=o[A+8>>2],o[C+12>>2]=I;t=o[C+56>>2],n=o[C+60>>2],B=o[(I=H=(M=x<<3)+g|0)>>2],I=o[I+4>>2],k=Q=o[C+36>>2],Q=nA(f=o[C+32>>2],Q,50),i=w,Q=nA(f,k,46)^Q,i^=w,Q=nA(f,k,23)^Q,I=(w^i)+I|0,I=(B=Q+B|0)>>>0>>0?I+1|0:I,B=(i=o[(Q=M+34e3|0)>>2])+B|0,I=o[Q+4>>2]+I|0,I=B>>>0>>0?I+1|0:I,Q=(e=((i=o[C+48>>2])^(r=o[C+40>>2]))&f^i)+B|0,B=(((u=o[C+52>>2])^(c=o[C+44>>2]))&k^u)+I|0,I=(Q>>>0>>0?B+1|0:B)+n|0,I=(B=Q)>>>0>(Q=Q+t|0)>>>0?I+1|0:I,t=(n=o[C+24>>2])+Q|0,B=o[C+28>>2]+I|0,y=B=n>>>0>t>>>0?B+1|0:B,o[C+24>>2]=t,o[C+28>>2]=B,l=B=o[C+4>>2],B=nA(h=o[C>>2],B,36),n=w,B=nA(h,l,30)^B,e=w^n,n=Q+(nA(h,l,25)^B)|0,B=I+(w^e)|0,B=Q>>>0>n>>>0?B+1|0:B,e=(I=n)+(n=h&((Q=o[C+16>>2])|(s=o[C+8>>2]))|Q&s)|0,I=(I=B)+(l&((B=o[C+20>>2])|(F=o[C+12>>2]))|B&F)|0,n=I=n>>>0>e>>>0?I+1|0:I,o[C+56>>2]=e,o[C+60>>2]=I,E=Q,D=B,S=o[(I=P=(p=8|M)+g|0)>>2],K=o[I+4>>2],B=((c^k)&y^c)+u|0,B=(I=(Q=(r^f)&t^r)+i|0)>>>0>>0?B+1|0:B,Q=nA(t,y,50),i=w,Q=nA(t,y,46)^Q,i^=w,Q=(u=nA(t,y,23)^Q)+I|0,I=(w^i)+B|0,I=(Q>>>0>>0?I+1|0:I)+K|0,I=(B=Q+S|0)>>>0>>0?I+1|0:I,Q=(Q=B)+(i=o[(B=p+34e3|0)>>2])|0,B=o[B+4>>2]+I|0,B=(I=Q>>>0>>0?B+1|0:B)+D|0,p=B=(E=Q+E|0)>>>0>>0?B+1|0:B,o[C+16>>2]=E,o[C+20>>2]=B,I=I+((F|l)&n|F&l)|0,I=(B=Q+((h|s)&e|h&s)|0)>>>0>>0?I+1|0:I,Q=nA(e,n,36),i=w,Q=nA(e,n,30)^Q,D=w^i,i=B,B=nA(e,n,25)^Q,I=(w^D)+I|0,D=I=B>>>0>(i=i+B|0)>>>0?I+1|0:I,o[C+48>>2]=i,o[C+52>>2]=I,I=(I=r)+(r=o[(B=K=(Q=16|M)+g|0)>>2])|0,B=o[B+4>>2]+c|0,B=I>>>0>>0?B+1|0:B,Q=(c=I)+(r=o[(I=Q+34e3|0)>>2])|0,I=o[I+4>>2]+B|0,I=((y^k)&p^k)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=(t^f)&E^f)|0)>>>0>>0?I+1|0:I,Q=nA(E,p,50),r=w,Q=nA(E,p,46)^Q,r^=w,Q=(c=nA(E,p,23)^Q)+B|0,B=(w^r)+I|0,u=B=Q>>>0>>0?B+1|0:B,I=B,B=nA(i,D,36),r=w,B=nA(i,D,30)^B,c=w^r,S=nA(i,D,25)^B,B=((n|l)&D|n&l)+(w^c)|0,I=((r=S+((e|h)&i|e&h)|0)>>>0>>0?B+1|0:B)+I|0,c=I=(B=r)>>>0>(r=Q+r|0)>>>0?I+1|0:I,o[C+40>>2]=r,o[C+44>>2]=I,B=u+F|0,F=B=(s=Q+s|0)>>>0>>0?B+1|0:B,o[C+8>>2]=s,o[C+12>>2]=B,B=(B=f)+(f=o[(I=N=(Q=24|M)+g|0)>>2])|0,I=o[I+4>>2]+k|0,I=B>>>0>>0?I+1|0:I,Q=(k=B)+(f=o[(B=Q+34e3|0)>>2])|0,B=o[B+4>>2]+I|0,B=(y^(y^p)&F)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=t^(t^E)&s)|0)>>>0>>0?B+1|0:B,Q=nA(s,F,50),f=w,Q=nA(s,F,46)^Q,f^=w,Q=(u=nA(s,F,23)^Q)+I|0,I=(w^f)+B|0,I=Q>>>0>>0?I+1|0:I,B=nA(r,c,36),f=w,B=nA(r,c,30)^B,u=w^f,k=nA(r,c,25)^B,B=((n|D)&c|n&D)+(w^u)|0,B=((f=k+((i|e)&r|i&e)|0)>>>0>>0?B+1|0:B)+I|0,u=B=(k=f)>>>0>(f=Q+f|0)>>>0?B+1|0:B,o[C+32>>2]=f,o[C+36>>2]=B,I=I+l|0,l=I=(h=Q+h|0)>>>0>>0?I+1|0:I,o[C>>2]=h,o[C+4>>2]=I,Q=o[(B=v=(I=32|M)+g|0)>>2],B=y+o[B+4>>2]|0,B=(Q=Q+t|0)>>>0>>0?B+1|0:B,Q=(t=o[(I=I+34e3|0)>>2])+Q|0,I=o[I+4>>2]+B|0,I=(p^(p^F)&l)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=E^(E^s)&h)|0)>>>0>>0?I+1|0:I,Q=nA(h,l,50),t=w,Q=nA(h,l,46)^Q,t^=w,Q=(y=nA(h,l,23)^Q)+B|0,B=(w^t)+I|0,k=B=Q>>>0>>0?B+1|0:B,I=B,B=nA(f,u,36),t=w,B=nA(f,u,30)^B,y=w^t,S=nA(f,u,25)^B,B=((c|D)&u|c&D)+(w^y)|0,I=((t=S+((i|r)&f|i&r)|0)>>>0>>0?B+1|0:B)+I|0,t=I=(y=Q+t|0)>>>0>>0?I+1|0:I,o[C+24>>2]=y,o[C+28>>2]=I,B=n+k|0,k=B=(n=Q+e|0)>>>0>>0?B+1|0:B,o[C+56>>2]=n,o[C+60>>2]=B,Q=o[(I=b=(B=40|M)+g|0)>>2],I=p+o[I+4>>2]|0,I=(Q=Q+E|0)>>>0>>0?I+1|0:I,Q=(e=o[(B=B+34e3|0)>>2])+Q|0,B=o[B+4>>2]+I|0,B=(F^(F^l)&k)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=s^(h^s)&n)|0)>>>0>>0?B+1|0:B,Q=nA(n,k,50),e=w,Q=nA(n,k,46)^Q,e^=w,Q=(E=nA(n,k,23)^Q)+I|0,I=(w^e)+B|0,I=Q>>>0>>0?I+1|0:I,B=nA(y,t,36),e=w,B=nA(y,t,30)^B,E=w^e,p=nA(y,t,25)^B,B=((c|u)&t|c&u)+(w^E)|0,B=((e=p+((r|f)&y|r&f)|0)>>>0

>>0?B+1|0:B)+I|0,e=B=(E=Q+e|0)>>>0>>0?B+1|0:B,o[C+16>>2]=E,o[C+20>>2]=B,I=I+D|0,p=I=(D=Q+i|0)>>>0>>0?I+1|0:I,o[C+48>>2]=D,o[C+52>>2]=I,Q=o[(B=_=(I=48|M)+g|0)>>2],B=F+o[B+4>>2]|0,B=(Q=Q+s|0)>>>0>>0?B+1|0:B,Q=(i=o[(I=I+34e3|0)>>2])+Q|0,I=o[I+4>>2]+B|0,I=(l^(k^l)&p)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=h^(n^h)&D)|0)>>>0>>0?I+1|0:I,Q=nA(D,p,50),i=w,Q=nA(D,p,46)^Q,i^=w,Q=(s=nA(D,p,23)^Q)+B|0,B=(w^i)+I|0,F=B=Q>>>0>>0?B+1|0:B,I=B,B=nA(E,e,36),i=w,B=nA(E,e,30)^B,s=w^i,S=nA(E,e,25)^B,B=((t|u)&e|t&u)+(w^s)|0,I=((i=S+((f|y)&E|f&y)|0)>>>0>>0?B+1|0:B)+I|0,s=I=(B=i)>>>0>(i=Q+i|0)>>>0?I+1|0:I,o[C+8>>2]=i,o[C+12>>2]=I,B=c+F|0,F=B=(S=Q+r|0)>>>0>>0?B+1|0:B,o[C+40>>2]=S,o[C+44>>2]=B,Q=o[(I=Y=(B=56|M)+g|0)>>2],I=l+o[I+4>>2]|0,I=(Q=Q+h|0)>>>0>>0?I+1|0:I,Q=(r=o[(B=B+34e3|0)>>2])+Q|0,B=o[B+4>>2]+I|0,B=(k^(p^k)&F)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=n^(n^D)&S)|0)>>>0>>0?B+1|0:B,Q=nA(S,F,50),r=w,Q=nA(S,F,46)^Q,r^=w,Q=(c=nA(S,F,23)^Q)+I|0,I=(w^r)+B|0,I=Q>>>0>>0?I+1|0:I,B=nA(i,s,36),r=w,B=nA(i,s,30)^B,c=w^r,h=nA(i,s,25)^B,B=((t|e)&s|t&e)+(w^c)|0,B=((r=h+((E|y)&i|E&y)|0)>>>0>>0?B+1|0:B)+I|0,c=B=(c=r)>>>0>(r=Q+r|0)>>>0?B+1|0:B,o[C>>2]=r,o[C+4>>2]=B,I=I+u|0,l=I=(B=f)>>>0>(f=Q+f|0)>>>0?I+1|0:I,o[C+32>>2]=f,o[C+36>>2]=I,Q=o[(B=m=(I=64|M)+g|0)>>2],B=k+o[B+4>>2]|0,B=(Q=Q+n|0)>>>0>>0?B+1|0:B,Q=(n=o[(I=I+34e3|0)>>2])+Q|0,I=o[I+4>>2]+B|0,I=(p^(p^F)&l)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=D^(D^S)&f)|0)>>>0>>0?I+1|0:I,Q=nA(f,l,50),n=w,Q=nA(f,l,46)^Q,n^=w,Q=(u=nA(f,l,23)^Q)+B|0,B=(w^n)+I|0,h=B=Q>>>0>>0?B+1|0:B,I=B,B=nA(r,c,36),n=w,B=nA(r,c,30)^B,u=w^n,k=nA(r,c,25)^B,B=((e|s)&c|e&s)+(w^u)|0,I=((n=k+((i|E)&r|i&E)|0)>>>0>>0?B+1|0:B)+I|0,n=I=(u=Q+n|0)>>>0>>0?I+1|0:I,o[C+56>>2]=u,o[C+60>>2]=I,B=t+h|0,k=B=(t=Q+y|0)>>>0>>0?B+1|0:B,o[C+24>>2]=t,o[C+28>>2]=B,Q=o[(I=G=(B=72|M)+g|0)>>2],I=p+o[I+4>>2]|0,I=(Q=Q+D|0)>>>0>>0?I+1|0:I,Q=(D=o[(B=B+34e3|0)>>2])+Q|0,B=o[B+4>>2]+I|0,B=(F^(F^l)&k)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=S^(f^S)&t)|0)>>>0>>0?B+1|0:B,Q=nA(t,k,50),D=w,Q=nA(t,k,46)^Q,D^=w,Q=(h=nA(t,k,23)^Q)+I|0,I=(w^D)+B|0,I=Q>>>0>>0?I+1|0:I,B=nA(u,n,36),D=w,B=nA(u,n,30)^B,h=w^D,y=nA(u,n,25)^B,B=((c|s)&n|c&s)+(w^h)|0,B=((D=y+((i|r)&u|i&r)|0)>>>0>>0?B+1|0:B)+I|0,D=B=(h=Q+D|0)>>>0>>0?B+1|0:B,o[C+48>>2]=h,o[C+52>>2]=B,I=I+e|0,p=I=(e=Q+E|0)>>>0>>0?I+1|0:I,o[C+16>>2]=e,o[C+20>>2]=I,I=(E=o[(B=J=(Q=80|M)+g|0)>>2])+S|0,B=o[B+4>>2]+F|0,B=I>>>0>>0?B+1|0:B,Q=(y=I)+(E=o[(I=Q+34e3|0)>>2])|0,I=o[I+4>>2]+B|0,I=(l^(k^l)&p)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=f^(t^f)&e)|0)>>>0>>0?I+1|0:I,Q=nA(e,p,50),E=w,Q=nA(e,p,46)^Q,E^=w,Q=(y=nA(e,p,23)^Q)+B|0,B=(w^E)+I|0,F=B=Q>>>0>>0?B+1|0:B,I=B,B=nA(h,D,36),E=w,B=nA(h,D,30)^B,y=w^E,S=nA(h,D,25)^B,B=((n|c)&D|n&c)+(w^y)|0,I=((E=S+((r|u)&h|r&u)|0)>>>0>>0?B+1|0:B)+I|0,E=I=(y=Q+E|0)>>>0>>0?I+1|0:I,o[C+40>>2]=y,o[C+44>>2]=I,B=s+F|0,F=B=(s=Q+i|0)>>>0>>0?B+1|0:B,o[C+8>>2]=s,o[C+12>>2]=B,B=34e3+(I=88|M)|0,i=o[(I=U=I+g|0)>>2],Q=o[B>>2]+i|0,I=o[B+4>>2]+o[I+4>>2]|0,B=l+(Q>>>0>>0?I+1|0:I)|0,B=(k^(p^k)&F)+(B=(I=Q+f|0)>>>0>>0?B+1|0:B)|0,B=(I=(Q=t^(t^e)&s)+I|0)>>>0>>0?B+1|0:B,Q=nA(s,F,50),i=w,Q=nA(s,F,46)^Q,i^=w,Q=(f=nA(s,F,23)^Q)+I|0,I=(w^i)+B|0,I=Q>>>0>>0?I+1|0:I,B=nA(y,E,36),i=w,B=nA(y,E,30)^B,f=w^i,l=nA(y,E,25)^B,B=((n|D)&E|n&D)+(w^f)|0,B=((i=l+((h|u)&y|h&u)|0)>>>0>>0?B+1|0:B)+I|0,f=B=(f=i)>>>0>(i=Q+i|0)>>>0?B+1|0:B,o[C+32>>2]=i,o[C+36>>2]=B,I=I+c|0,c=I=(B=r)>>>0>(r=Q+r|0)>>>0?I+1|0:I,o[C>>2]=r,o[C+4>>2]=I,B=34e3+(I=96|M)|0,l=o[(I=d=I+g|0)>>2],Q=o[B>>2]+l|0,B=o[B+4>>2]+o[I+4>>2]|0,I=k+(Q>>>0>>0?B+1|0:B)|0,I=(B=Q+t|0)>>>0>>0?I+1|0:I,Q=(t=e^(e^s)&r)+B|0,B=(p^(p^F)&c)+I|0,B=Q>>>0>>0?B+1|0:B,I=nA(r,c,50),t=w,I=nA(r,c,46)^I,t^=w,k=Q,Q=nA(r,c,23)^I,B=(w^t)+B|0,k=B=(I=k+Q|0)>>>0>>0?B+1|0:B,Q=I,I=nA(i,f,36),t=w,I=nA(i,f,30)^I,l=w^t,S=nA(i,f,25)^I,I=((E|D)&f|E&D)+(w^l)|0,B=((t=S+((h|y)&i|h&y)|0)>>>0>>0?I+1|0:I)+B|0,t=B=(l=Q+t|0)>>>0>>0?B+1|0:B,o[C+24>>2]=l,o[C+28>>2]=B,B=n+k|0,n=B=(u=Q+u|0)>>>0>>0?B+1|0:B,o[C+56>>2]=u,o[C+60>>2]=B,B=34e3+(I=104|M)|0,k=o[(I=R=I+g|0)>>2],Q=o[B>>2]+k|0,I=o[B+4>>2]+o[I+4>>2]|0,B=p+(Q>>>0>>0?I+1|0:I)|0,B=(I=Q+e|0)>>>0>>0?B+1|0:B,Q=(e=s^(r^s)&u)+I|0,I=(F^(c^F)&n)+B|0,I=Q>>>0>>0?I+1|0:I,B=nA(u,n,50),e=w,B=nA(u,n,46)^B,e^=w,p=nA(u,n,23)^B,B=(w^e)+I|0,k=B=(Q=p+Q|0)>>>0

>>0?B+1|0:B,I=B,B=nA(l,t,36),e=w,B=nA(l,t,30)^B,p=w^e,S=nA(l,t,25)^B,B=((E|f)&t|E&f)+(w^p)|0,I=((e=S+((i|y)&l|i&y)|0)>>>0>>0?B+1|0:B)+I|0,e=I=(p=Q+e|0)>>>0>>0?I+1|0:I,o[C+16>>2]=p,o[C+20>>2]=I,I=D+k|0,D=I=(h=Q+h|0)>>>0>>0?I+1|0:I,o[C+48>>2]=h,o[C+52>>2]=I,B=34e3+(I=112|M)|0,k=o[(Q=S=I+g|0)>>2],I=o[B>>2]+k|0,B=o[B+4>>2]+o[Q+4>>2]|0,B=F+(I>>>0>>0?B+1|0:B)|0,B=(c^(n^c)&D)+(B=(I=I+s|0)>>>0>>0?B+1|0:B)|0,B=(I=(Q=r^(r^u)&h)+I|0)>>>0>>0?B+1|0:B,Q=nA(h,D,50),s=w,Q=nA(h,D,46)^Q,s^=w,Q=(F=nA(h,D,23)^Q)+I|0,I=(w^s)+B|0,k=I=Q>>>0>>0?I+1|0:I,B=I,I=nA(p,e,36),s=w,I=nA(p,e,30)^I,F=w^s,L=nA(p,e,25)^I,I=((t|f)&e|t&f)+(w^F)|0,B=((s=L+((i|l)&p|i&l)|0)>>>0>>0?I+1|0:I)+B|0,s=B=(F=Q+s|0)>>>0>>0?B+1|0:B,o[C+8>>2]=F,o[C+12>>2]=B,B=E+k|0,Q=B=(E=Q+y|0)>>>0>>0?B+1|0:B,o[C+40>>2]=E,o[C+44>>2]=B,B=34e3+(I=120|M)|0,M=o[(I=y=I+g|0)>>2],k=o[B>>2]+M|0,B=o[B+4>>2]+o[I+4>>2]|0,I=c+(k>>>0>>0?B+1|0:B)|0,I=(n^(n^D)&Q)+(I=(B=r+k|0)>>>0>>0?I+1|0:I)|0,I=(B=(r=u^(h^u)&E)+B|0)>>>0>>0?I+1|0:I,r=nA(E,Q,50),n=w,r=nA(E,Q,46)^r,n^=w,Q=(r=nA(E,Q,23)^r)+B|0,B=(w^n)+I|0,B=Q>>>0>>0?B+1|0:B,r=Q,n=B,I=B,B=nA(F,s,36),E=w,B=nA(F,s,30)^B,D=w^E,c=nA(F,s,25)^B,B=((t|e)&s|t&e)+(w^D)|0,I=((E=c+((p|l)&F|p&l)|0)>>>0>>0?B+1|0:B)+I|0,I=(Q=Q+E|0)>>>0>>0?I+1|0:I,o[C>>2]=Q,o[C+4>>2]=I,B=n+f|0,B=(f=i)>>>0>(i=i+r|0)>>>0?B+1|0:B,o[C+32>>2]=i,o[C+36>>2]=B,64!=(0|x);)n=((x=x+16|0)<<3)+g|0,r=o[H>>2],f=o[H+4>>2],L=o[G>>2],t=I=o[G+4>>2],B=I,Q=I=o[S+4>>2],I=nA(F=o[S>>2],I,45),i=w,E=((63&Q)<<26|F>>>6)^(I=nA(F,Q,3)^I),I=(Q>>>6^(e=w^i))+B|0,B=((i=E+L|0)>>>0>>0?I+1|0:I)+f|0,B=(I=i+r|0)>>>0>>0?B+1|0:B,r=i=o[P+4>>2],i=nA(f=o[P>>2],i,63),e=w,i=((127&r)<<25|f>>>7)^nA(f,r,56)^i,B=(w^e^r>>>7)+B|0,i=B=i>>>0>(l=i+I|0)>>>0?B+1|0:B,o[n>>2]=l,o[n+4>>2]=B,f=(S=o[J>>2])+f|0,I=(n=o[J+4>>2])+r|0,B=f>>>0>>0?I+1|0:I,r=I=o[y+4>>2],I=nA(k=o[y>>2],I,45),e=w,E=f,f=((63&r)<<26|k>>>6)^nA(k,r,3)^I,B=(w^e^r>>>6)+B|0,f=(E=E+f|0)>>>0>>0?B+1|0:B,B=nA(e=o[K>>2],I=o[K+4>>2],63),D=w,y=E,E=((127&I)<<25|e>>>7)^nA(e,I,56)^B,B=(w^D^I>>>7)+f|0,f=B=E>>>0>(p=y+E|0)>>>0?B+1|0:B,o[H+136>>2]=p,o[H+140>>2]=B,B=(M=o[U>>2])+e|0,I=(e=o[U+4>>2])+I|0,E=nA(l,i,45),D=w,E=(c=((63&i)<<26|l>>>6)^nA(l,i,3)^E)+B|0,B=(w^D^i>>>6)+(B>>>0>>0?I+1|0:I)|0,B=E>>>0>>0?B+1|0:B,D=I=o[N+4>>2],I=nA(c=o[N>>2],I,63),s=w,y=E,E=((127&D)<<25|c>>>7)^nA(c,D,56)^I,B=(w^s^D>>>7)+B|0,E=B=E>>>0>(P=y+E|0)>>>0?B+1|0:B,o[H+144>>2]=P,o[H+148>>2]=B,c=(K=o[d>>2])+c|0,I=(I=D)+(D=o[d+4>>2])|0,B=c>>>0>>0?I+1|0:I,I=nA(p,f,45),s=w,u=((63&f)<<26|p>>>6)^nA(p,f,3)^I,B=(w^s^f>>>6)+B|0,B=(c=u+c|0)>>>0>>0?B+1|0:B,s=I=o[v+4>>2],I=nA(u=o[v>>2],I,63),h=w,y=c,c=((127&s)<<25|u>>>7)^nA(u,s,56)^I,B=(w^h^s>>>7)+B|0,c=B=c>>>0>(N=y+c|0)>>>0?B+1|0:B,o[H+152>>2]=N,o[H+156>>2]=B,I=(v=o[R>>2])+u|0,B=(B=s)+(s=o[R+4>>2])|0,u=nA(P,E,45),h=w,u=((63&E)<<26|P>>>6)^nA(P,E,3)^u,B=(w^h^E>>>6)+(I>>>0>>0?B+1|0:B)|0,u=(y=u+I|0)>>>0>>0?B+1|0:B,B=nA(h=o[b>>2],I=o[b+4>>2],63),b=w,U=y,y=((127&I)<<25|h>>>7)^(B=nA(h,I,56)^B),B=(I>>>7^(G=w^b))+u|0,u=B=y>>>0>(b=U+y|0)>>>0?B+1|0:B,o[H+160>>2]=b,o[H+164>>2]=B,I=I+Q|0,I=(B=h+F|0)>>>0>>0?I+1|0:I,h=nA(N,c,45),y=w,h=(G=((63&c)<<26|N>>>6)^nA(N,c,3)^h)+B|0,B=(w^y^c>>>6)+I|0,B=h>>>0>>0?B+1|0:B,G=I=o[_+4>>2],I=nA(y=o[_>>2],I,63),_=w,I=nA(y,G,56)^I,U=h,B=(G>>>7^(J=w^_))+B|0,h=B=(h=((127&G)<<25|y>>>7)^I)>>>0>(_=U+h|0)>>>0?B+1|0:B,o[H+168>>2]=_,o[H+172>>2]=B,I=r+G|0,I=(B=y+k|0)>>>0>>0?I+1|0:I,U=y=o[Y+4>>2],y=nA(J=o[Y>>2],y,63),G=w,y=(Y=((127&U)<<25|J>>>7)^nA(J,U,56)^y)+B|0,B=(w^G^U>>>7)+I|0,I=y>>>0>>0?B+1|0:B,B=nA(b,u,45),G=w,B=nA(b,u,3)^B,Y=w^G,G=y,I=(u>>>6^Y)+I|0,y=I=(y=((63&u)<<26|b>>>6)^B)>>>0>(G=G+y|0)>>>0?I+1|0:I,o[H+176>>2]=G,o[H+180>>2]=I,d=o[m>>2],m=I=o[m+4>>2],Y=I,I=nA(L,t,63),B=w,R=((127&t)<<25|L>>>7)^nA(L,t,56)^I,I=(w^B^t>>>7)+f|0,B=((p=R+p|0)>>>0>>0?I+1|0:I)+Y|0,B=(I=p+d|0)>>>0

>>0?B+1|0:B,f=nA(G,y,45),p=w,Y=(f=((63&y)<<26|G>>>6)^nA(G,y,3)^f)+I|0,I=(w^p^y>>>6)+B|0,f=I=f>>>0>Y>>>0?I+1|0:I,o[H+192>>2]=Y,o[H+196>>2]=I,B=i+U|0,B=(I=l+J|0)>>>0>>0?B+1|0:B,p=nA(d,m,63),J=w,U=((127&m)<<25|d>>>7)^nA(d,m,56)^p,B=(w^J^m>>>7)+B|0,I=(p=U+I|0)>>>0>>0?B+1|0:B,B=nA(_,h,45),J=w,B=nA(_,h,3)^B,m=p,I=(h>>>6^(U=w^J))+I|0,p=I=(p=((63&h)<<26|_>>>6)^B)>>>0>(J=m+p|0)>>>0?I+1|0:I,o[H+184>>2]=J,o[H+188>>2]=I,I=nA(M,e,63),B=w,I=((127&e)<<25|M>>>7)^nA(M,e,56)^I,B=(w^B^e>>>7)+n|0,I=c+(I>>>0>(U=I+S|0)>>>0?B+1|0:B)|0,I=(B=N+U|0)>>>0>>0?I+1|0:I,c=nA(Y,f,45),N=w,c=nA(Y,f,3)^c,U=w^N,N=(c^=(63&f)<<26|Y>>>6)+B|0,B=(f>>>6^U)+I|0,c=B=c>>>0>N>>>0?B+1|0:B,o[H+208>>2]=N,o[H+212>>2]=B,I=nA(S,n,63),B=w,U=nA(S,n,56)^I,B=((I=n>>>7|0)^w^B)+t|0,I=E+((n=(S=U^((127&n)<<25|S>>>7))+L|0)>>>0>>0?B+1|0:B)|0,I=(B=n+P|0)>>>0

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

>>0?e+1|0:e,d=e=e-((y>>>0<4293918720)-1|0)|0,N=t=e>>21,t=DA(_=(2097151&e)<<11|(F=y- -1048576|0)>>>21,t,-683901,-1),c=w+c|0,c=t>>>0>(e=t+D|0)>>>0?c+1|0:c,q=e-(t=-2097152&h)|0,z=c-((t>>>0>e>>>0)+v|0)|0,t=DA(_,N,136657,0),e=H+w|0,X=(c=t+k|0)-(t=-2097152&s)|0,v=(e=c>>>0>>0?e+1|0:e)-((t>>>0>c>>>0)+x|0)|0,e=DA(m,Q,666643,0),c=w,c=(t=(a[A+7|0]|a[A+8|0]<<8|a[A+9|0]<<16|a[A+10|0]<<24)>>>7&2097151)>>>0>(e=t+e|0)>>>0?c+1|0:c,D=(t=DA(Y,P,470296,0))+e|0,e=w+c|0,e=t>>>0>D>>>0?e+1|0:e,t=DA(K,i,654183,0),e=w+e|0,e=t>>>0>(c=t+D|0)>>>0?e+1|0:e,D=(t=c)+(c=DA(J,b,-997805,-1))|0,t=w+e|0,p=D,D=c>>>0>D>>>0?t+1|0:t,H=DA(Y,P,666643,0),t=(e=a[A+6|0])>>>24|0,h=e<<8|(U=a[A+2|0]|a[A+3|0]<<8|a[A+4|0]<<16|a[A+5|0]<<24)>>>24,c=t,e=(t=a[A+7|0])>>>16|0,e=2097151&((3&(e|=c))<<30|(t=t<<16|h)>>>2),t=w,t=e>>>0>(c=e+H|0)>>>0?t+1|0:t,h=(e=DA(K,i,470296,0))+c|0,c=w+t|0,c=e>>>0>h>>>0?c+1|0:c,e=DA(J,b,654183,0),t=w+c|0,H=t=e>>>0>(u=e+h|0)>>>0?t+1|0:t,l=t=t-((u>>>0<4293918720)-1|0)|0,e=(c=t>>21)+D|0,k=t=(e=(t=(2097151&t)<<11|(s=u- -1048576|0)>>>21)>>>0>(h=t+p|0)>>>0?e+1|0:e)-((h>>>0<4293918720)-1|0)|0,p=(2097151&t)<<11|(D=h- -1048576|0)>>>21,t=(t>>21)+v|0,v=Y=p+X|0,p=p>>>0>Y>>>0?t+1|0:t,t=DA(_,N,-997805,-1),e=w+e|0,e=t>>>0>(c=t+h|0)>>>0?e+1|0:e,m=c-(t=-2097152&D)|0,P=e-((t>>>0>c>>>0)+k|0)|0,e=DA(_,N,654183,0),t=H+w|0,Y=(c=e+u|0)-(e=-2097152&s)|0,l=(t=c>>>0>>0?t+1|0:t)-((e>>>0>c>>>0)+l|0)|0,t=DA(K,i,666643,0),e=w,e=t>>>0>(c=t+(U>>>5&2097151)|0)>>>0?e+1|0:e,t=DA(J,b,470296,0),e=w+e|0,h=c=t+c|0,c=t>>>0>c>>>0?e+1|0:e,D=DA(J,b,666643,0),e=(t=a[A+2|0])<<16&2031616|a[0|A]|a[A+1|0]<<8,t=w,H=t=e>>>0>(k=D+e|0)>>>0?t+1|0:t,b=t=t-((k>>>0<4293918720)-1|0)|0,D=(2097151&t)<<11|(s=k- -1048576|0)>>>21,t=(t>>21)+c|0,c=t=D>>>0>(u=D+h|0)>>>0?t+1|0:t,U=t=t-((u>>>0<4293918720)-1|0)|0,D=(2097151&t)<<11|(h=u- -1048576|0)>>>21,t=(t>>21)+l|0,D=D>>>0>(l=J=D+Y|0)>>>0?t+1|0:t,t=DA(_,N,470296,0),c=c+w|0,c=(e=t+u|0)>>>0>>0?c+1|0:c,u=e-(t=-2097152&h)|0,h=c-((t>>>0>e>>>0)+U|0)|0,e=DA(_,N,666643,0),t=w+(H-(((c=-2097152&s)>>>0>k>>>0)+b|0)|0)|0,e=(c=(t=e>>>0>(J=e+(k-c|0)|0)>>>0?t+1|0:t)>>21)+h|0,t=(t=(e=(t=(2097151&t)<<11|J>>>21)>>>0>(U=t+u|0)>>>0?e+1|0:e)>>21)+D|0,e=(e=(t=(e=(2097151&e)<<11|U>>>21)>>>0>(l=e+l|0)>>>0?t+1|0:t)>>21)+P|0,c=(t=(e=(t=(2097151&t)<<11|l>>>21)>>>0>(D=t+m|0)>>>0?e+1|0:e)>>21)+p|0,t=(e=(c=(e=(2097151&e)<<11|D>>>21)>>>0>(N=e+v|0)>>>0?c+1|0:c)>>21)+z|0,e=(c=(t=(c=(2097151&c)<<11|N>>>21)>>>0>(k=c+q|0)>>>0?t+1|0:t)>>21)+S|0,t=(t=(e=(t=(2097151&t)<<11|k>>>21)>>>0>(u=t+j|0)>>>0?e+1|0:e)>>21)+W|0,e=(e=(t=(e=(2097151&e)<<11|u>>>21)>>>0>(S=e+T|0)>>>0?t+1|0:t)>>21)+M|0,c=(t=(e=(t=(2097151&t)<<11|S>>>21)>>>0>(p=t+O|0)>>>0?e+1|0:e)>>21)+r|0,t=(e=(c=(e=(2097151&e)<<11|p>>>21)>>>0>(H=e+n|0)>>>0?c+1|0:c)>>21)+R|0,h=(F=y-(e=-2097152&F)|0)+((2097151&(t=(c=(2097151&c)<<11|H>>>21)>>>0>(s=c+o|0)>>>0?t+1|0:t))<<11|s>>>21)|0,t=(G-((e>>>0>y>>>0)+d|0)|0)+(t>>21)|0,F=e=(t=h>>>0>>0?t+1|0:t)>>21,J=(t=DA(M=(2097151&t)<<11|h>>>21,e,666643,0))+(e=2097151&J)|0,t=w,y=t=e>>>0>J>>>0?t+1|0:t,E[0|A]=J,E[A+1|0]=(255&t)<<24|J>>>8,t=2097151&U,e=DA(M,F,470296,0)+t|0,c=w,t=(y>>21)+(t>>>0>e>>>0?c+1|0:c)|0,t=(G=(2097151&y)<<11|J>>>21)>>>0>(U=G+e|0)>>>0?t+1|0:t,E[A+4|0]=(2047&t)<<21|U>>>11,e=t,c=U,E[A+3|0]=(7&t)<<29|c>>>3,E[A+2|0]=31&((65535&y)<<16|J>>>16)|c<<5,y=2097151&l,l=DA(M,F,654183,0)+y|0,t=w,U=(2097151&e)<<11|c>>>21,e=(e>>21)+(y=y>>>0>l>>>0?t+1|0:t)|0,t=e=(l=U+l|0)>>>0>>0?e+1|0:e,E[A+6|0]=(63&t)<<26|l>>>6,y=l,l=0,E[A+5|0]=l<<13|(1572864&c)>>>19|y<<2,c=2097151&D,D=DA(M,F,-997805,-1)+c|0,e=w,e=c>>>0>D>>>0?e+1|0:e,l=(2097151&(c=t))<<11|y>>>21,c=(t>>=21)+e|0,c=(D=l+D|0)>>>0>>0?c+1|0:c,E[A+9|0]=(511&c)<<23|D>>>9,E[A+8|0]=(1&c)<<31|D>>>1,e=0,E[A+7|0]=e<<18|(2080768&y)>>>14|D<<7,e=2097151&N,y=DA(M,F,136657,0)+e|0,t=w,t=e>>>0>y>>>0?t+1|0:t,N=(2097151&(e=c))<<11|D>>>21,e=t+(c=e>>21)|0,e=(y=N+y|0)>>>0>>0?e+1|0:e,E[A+12|0]=(4095&e)<<20|y>>>12,c=y,E[A+11|0]=(15&e)<<28|c>>>4,y=0,E[A+10|0]=y<<15|(1966080&D)>>>17|c<<4,y=2097151&k,D=DA(M,F,-683901,-1)+y|0,t=w,t=y>>>0>D>>>0?t+1|0:t,y=e,e=t+(e>>=21)|0,e=(y=(Y=D)+(D=(2097151&y)<<11|c>>>21)|0)>>>0>>0?e+1|0:e,E[A+14|0]=(127&e)<<25|y>>>7,D=0,E[A+13|0]=D<<12|(1048576&c)>>>20|y<<1,t=e>>21,c=(e=(2097151&e)<<11|y>>>21)>>>0>(D=e+(2097151&u)|0)>>>0?t+1|0:t,E[A+17|0]=(1023&c)<<22|D>>>10,E[A+16|0]=(3&c)<<30|D>>>2,e=0,E[A+15|0]=e<<17|(2064384&y)>>>15|D<<6,t=c>>21,t=(e=(2097151&c)<<11|D>>>21)>>>0>(c=e+(2097151&S)|0)>>>0?t+1|0:t,E[A+20|0]=(8191&t)<<19|c>>>13,E[A+19|0]=(31&t)<<27|c>>>5,y=(e=2097151&p)+(p=(2097151&t)<<11|c>>>21)|0,e=t>>21,e=y>>>0

>>0?e+1|0:e,p=y,E[A+21|0]=y,S=0,E[A+18|0]=S<<14|(1835008&D)>>>18|c<<3,E[A+22|0]=(255&e)<<24|y>>>8,c=e>>21,c=(y=(D=(2097151&e)<<11|y>>>21)+(2097151&H)|0)>>>0>>0?c+1|0:c,E[A+25|0]=(2047&c)<<21|y>>>11,E[A+24|0]=(7&c)<<29|y>>>3,E[A+23|0]=31&((65535&e)<<16|p>>>16)|y<<5,t=c>>21,t=(e=(2097151&c)<<11|y>>>21)>>>0>(c=e+(2097151&s)|0)>>>0?t+1|0:t,E[A+27|0]=(63&t)<<26|c>>>6,D=0,E[A+26|0]=D<<13|(1572864&y)>>>19|c<<2,e=t>>21,e=(t=(y=(2097151&t)<<11|c>>>21)+(2097151&h)|0)>>>0>>0?e+1|0:e,E[A+31|0]=(131071&e)<<15|t>>>17,E[A+30|0]=(511&e)<<23|t>>>9,E[A+29|0]=(1&e)<<31|t>>>1,y=0,E[A+28|0]=y<<18|(2080768&c)>>>14|t<<7}function k(A,I,g,C,B,Q){var i,n=0,f=0,t=0,e=0,c=0,y=0,w=0,h=0,s=0,p=0,k=0,S=0,H=0,G=0,J=0,N=0,Y=0,P=0,v=0,d=0,L=0,R=0,x=0,j=0,X=0,q=0,z=0,O=0,T=0,W=0,Z=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0;for(D=i=D-592|0,S=-1,H=A+32|0,k=32,G=1;p=a[2672+(f=k-1|0)|0],t=(f=((e=a[f+H|0])^p)-1>>8&G)&(y=a[H+(k=k-2|0)|0])-(c=a[k+2672|0])>>8|255&(e-p>>>8&G|t),G=f&(c^y)-1>>8,k;);if(255&t&&!(aA(A)|!(((127&(-1^a[B+31|0])|a[B+1|0]&a[B+2|0]&a[B+3|0]&a[B+4|0]&a[B+5|0]&a[B+6|0]&a[B+7|0]&a[B+8|0]&a[B+9|0]&a[B+10|0]&a[B+11|0]&a[B+12|0]&a[B+13|0]&a[B+14|0]&a[B+15|0]&a[B+16|0]&a[B+17|0]&a[B+18|0]&a[B+19|0]&a[B+20|0]&a[B+21|0]&a[B+22|0]&a[B+23|0]&a[B+24|0]&a[B+25|0]&a[B+26|0]&a[B+27|0]&a[B+28|0]&a[B+30|0]&a[B+29|0]^255)-1&236-a[0|B]^-1)>>>8&1)||aA(B)||U(i+128|0,B))){for(EA(f=i+384|0),Q&&m(f,34768,34,0),m(f,A,32,0),m(f,B,32,0),m(f,I,g,C),M(f,g=i+320|0),u(g),Q=i+8|0,C=i+128|0,B=0,I=0,D=n=D-2272|0;e=g+(B>>>3|0)|0,E[(f=n+2016|0)+B|0]=a[0|e]>>>(6&B)&1,E[(t=f)+(f=1|B)|0]=a[0|e]>>>(7&f)&1,256!=(0|(B=B+2|0)););for(;;){I=(g=I)+1|0;A:if(!(!a[0|(t=g+(n+2016|0)|0)]|g>>>0>254)){I:if(B=E[0|(c=(n+2016|0)+I|0)])if((0|(B=(e=B<<1)+(f=E[0|t])|0))<=15)E[0|t]=B,E[0|c]=0;else{if((0|(B=f-e|0))<-15)break A;for(E[0|t]=B,B=I;;){if(!a[0|(f=(n+2016|0)+B|0)]){E[0|f]=1;break I}if(E[0|f]=0,f=B>>>0<255,B=B+1|0,!f)break}}if(!(g>>>0>253)){I:if(f=E[0|(y=(B=g+2|0)+(n+2016|0)|0)])if((0|(f=(c=f<<2)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+2016|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>252)){I:if(f=E[0|(y=(B=g+3|0)+(n+2016|0)|0)])if((0|(f=(c=f<<3)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+2016|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>251)){I:if(f=E[0|(y=(B=g+4|0)+(n+2016|0)|0)])if((0|(f=(c=f<<4)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+2016|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>250)){I:if(f=E[0|(y=(B=g+5|0)+(n+2016|0)|0)])if((0|(f=(c=f<<5)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+2016|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>249)&&(g=E[0|(c=(B=g+6|0)+(n+2016|0)|0)]))if((0|(g=(e=g<<6)+(f=E[0|t])|0))>=16){if((0|(g=f-e|0))<-15)break A;for(E[0|t]=g;;){if(a[0|(g=(n+2016|0)+B|0)]){if(E[0|g]=0,g=B>>>0<255,B=B+1|0,g)continue;break A}break}E[0|g]=1}else E[0|t]=g,E[0|c]=0}}}}}if(256==(0|I))break}for(B=0;g=H+(B>>>3|0)|0,E[(I=n+1760|0)+B|0]=a[0|g]>>>(6&B)&1,E[(f=I)+(I=1|B)|0]=a[0|g]>>>(7&I)&1,256!=(0|(B=B+2|0)););for(I=0;;){I=(g=I)+1|0;A:if(!(!a[0|(t=g+(n+1760|0)|0)]|g>>>0>254)){I:if(B=E[0|(c=(n+1760|0)+I|0)])if((0|(B=(e=B<<1)+(f=E[0|t])|0))<=15)E[0|t]=B,E[0|c]=0;else{if((0|(B=f-e|0))<-15)break A;for(E[0|t]=B,B=I;;){if(!a[0|(f=(n+1760|0)+B|0)]){E[0|f]=1;break I}if(E[0|f]=0,f=B>>>0<255,B=B+1|0,!f)break}}if(!(g>>>0>253)){I:if(f=E[0|(y=(B=g+2|0)+(n+1760|0)|0)])if((0|(f=(c=f<<2)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+1760|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>252)){I:if(f=E[0|(y=(B=g+3|0)+(n+1760|0)|0)])if((0|(f=(c=f<<3)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+1760|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>251)){I:if(f=E[0|(y=(B=g+4|0)+(n+1760|0)|0)])if((0|(f=(c=f<<4)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+1760|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>250)){I:if(f=E[0|(y=(B=g+5|0)+(n+1760|0)|0)])if((0|(f=(c=f<<5)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+1760|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>249)&&(g=E[0|(c=(B=g+6|0)+(n+1760|0)|0)]))if((0|(g=(e=g<<6)+(f=E[0|t])|0))>=16){if((0|(g=f-e|0))<-15)break A;for(E[0|t]=g;;){if(a[0|(g=(n+1760|0)+B|0)]){if(E[0|g]=0,g=B>>>0<255,B=B+1|0,g)continue;break A}break}E[0|g]=1}else E[0|t]=g,E[0|c]=0}}}}}if(256==(0|I))break}for(V(S=n+480|0,C),p=o[C+8>>2],t=o[C+12>>2],y=o[C+16>>2],c=o[C+20>>2],e=o[C+24>>2],f=o[C+28>>2],B=o[C>>2],g=o[C+4>>2],I=o[C+36>>2],o[n+192>>2]=o[C+32>>2],o[n+196>>2]=I,o[n+184>>2]=e,o[n+188>>2]=f,o[n+176>>2]=y,o[n+180>>2]=c,o[n+168>>2]=p,o[n+172>>2]=t,o[n+160>>2]=B,o[n+164>>2]=g,p=o[C+40>>2],t=o[C+44>>2],y=o[C+48>>2],c=o[C+52>>2],e=o[C+56>>2],f=o[C+60>>2],B=o[(I=C- -64|0)>>2],g=o[I+4>>2],I=o[C+76>>2],o[n+232>>2]=o[C+72>>2],o[n+236>>2]=I,o[n+224>>2]=B,o[n+228>>2]=g,o[n+216>>2]=e,o[n+220>>2]=f,o[n+208>>2]=y,o[n+212>>2]=c,o[n+200>>2]=p,o[n+204>>2]=t,p=o[C+80>>2],t=o[C+84>>2],y=o[C+88>>2],c=o[C+92>>2],e=o[C+96>>2],f=o[C+100>>2],B=o[C+104>>2],g=o[C+108>>2],I=o[C+116>>2],o[n+272>>2]=o[C+112>>2],o[n+276>>2]=I,o[n+264>>2]=B,o[n+268>>2]=g,o[n+256>>2]=e,o[n+260>>2]=f,o[n+248>>2]=y,o[n+252>>2]=c,o[n+240>>2]=p,o[n+244>>2]=t,l(C=n+320|0,g=n+160|0),F(n,C,w=n+440|0),F(n+40|0,h=n+360|0,s=n+400|0),F(n+80|0,s,w),F(n+120|0,C,h),_(C,n,S),F(g,C,w),F(N=n+200|0,h,s),F(Y=n+240|0,s,w),F(J=n+280|0,C,h),V(I=n+640|0,g),_(C,n,I),F(g,C,w),F(N,h,s),F(Y,s,w),F(J,C,h),V(I=n+800|0,g),_(C,n,I),F(g,C,w),F(N,h,s),F(Y,s,w),F(J,C,h),V(I=n+960|0,g),_(C,n,I),F(g,C,w),F(N,h,s),F(Y,s,w),F(J,C,h),V(I=n+1120|0,g),_(C,n,I),F(g,C,w),F(N,h,s),F(Y,s,w),F(J,C,h),V(I=n+1280|0,g),_(C,n,I),F(g,C,w),F(N,h,s),F(Y,s,w),F(J,C,h),V(I=n+1440|0,g),_(C,n,I),F(g,C,w),F(N,h,s),F(Y,s,w),F(J,C,h),V(n+1600|0,g),o[Q+32>>2]=0,o[Q+36>>2]=0,o[Q+24>>2]=0,o[Q+28>>2]=0,o[Q+16>>2]=0,o[Q+20>>2]=0,o[Q+8>>2]=0,o[Q+12>>2]=0,o[Q>>2]=0,o[Q+4>>2]=0,o[Q+44>>2]=0,o[Q+48>>2]=0,o[(z=Q+40|0)>>2]=1,o[Q+52>>2]=0,o[Q+56>>2]=0,o[Q+60>>2]=0,o[Q+64>>2]=0,o[Q+68>>2]=0,o[Q+72>>2]=0,o[Q+84>>2]=0,o[Q+88>>2]=0,o[Q+76>>2]=0,o[Q+80>>2]=1,o[Q+92>>2]=0,o[Q+96>>2]=0,o[Q+100>>2]=0,o[Q+104>>2]=0,o[Q+108>>2]=0,o[Q+112>>2]=0,o[Q+116>>2]=0,IA=Q+80|0,I=255;;){A:{I:{if(!(a[(n+2016|0)+I|0]|a[(n+1760|0)+I|0])){if(!(a[(g=I-1|0)+(n+2016|0)|0]|a[g+(n+1760|0)|0]))break I;I=g}if((0|I)<0)break A;for(;l(n+320|0,Q),(0|(B=E[(g=I)+(n+2016|0)|0]))>0?(F(I=n+160|0,C=n+320|0,w),F(N,h,s),F(Y,s,w),F(J,C,h),_(C,I,(n+480|0)+r((254&B)>>>1|0,160)|0)):(0|B)>=0||(F(I=n+160|0,C=n+320|0,w),F(N,h,s),F(Y,s,w),F(J,C,h),b(C,I,(n+480|0)+r((0-B&254)>>>1|0,160)|0)),(0|(X=E[g+(n+1760|0)|0]))>0?(F(I=n+160|0,C=n+320|0,w),F(N,h,s),F(Y,s,w),F(J,C,h),K(C,I,r((254&X)>>>1|0,120)+1488|0)):(0|X)>=0||(F(n+160|0,q=n+320|0,w),F(N,h,s),F(Y,s,w),F(J,q,h),P=o[n+160>>2],v=o[n+200>>2],d=o[n+164>>2],L=o[n+204>>2],R=o[n+168>>2],x=o[n+208>>2],j=o[n+172>>2],k=o[n+212>>2],H=o[n+176>>2],G=o[n+216>>2],S=o[n+180>>2],p=o[n+220>>2],t=o[n+184>>2],y=o[n+224>>2],c=o[n+188>>2],e=o[n+228>>2],f=o[n+192>>2],B=o[n+232>>2],C=o[n+236>>2],I=o[n+196>>2],o[n+396>>2]=C-I,o[n+392>>2]=B-f,o[n+388>>2]=e-c,o[n+384>>2]=y-t,o[n+380>>2]=p-S,o[n+376>>2]=G-H,o[n+372>>2]=k-j,o[n+368>>2]=x-R,o[n+364>>2]=L-d,o[n+360>>2]=v-P,o[n+356>>2]=I+C,o[n+352>>2]=B+f,o[n+348>>2]=e+c,o[n+344>>2]=t+y,o[n+340>>2]=p+S,o[n+336>>2]=H+G,o[n+332>>2]=k+j,o[n+328>>2]=R+x,o[n+324>>2]=d+L,o[n+320>>2]=P+v,F(s,q,40+(I=r((0-X&254)>>>1|0,120)+1488|0)|0),F(h,h,I),F(w,I+80|0,J),gA=o[n+276>>2],CA=o[n+272>>2],X=o[n+268>>2],q=o[n+264>>2],t=o[n+260>>2],y=o[n+256>>2],c=o[n+252>>2],e=o[n+248>>2],f=o[n+244>>2],B=o[n+240>>2],O=o[n+360>>2],T=o[n+400>>2],W=o[n+364>>2],Z=o[n+404>>2],$=o[n+368>>2],AA=o[n+408>>2],P=o[n+372>>2],v=o[n+412>>2],d=o[n+376>>2],L=o[n+416>>2],R=o[n+380>>2],x=o[n+420>>2],j=o[n+384>>2],k=o[n+424>>2],H=o[n+388>>2],G=o[n+428>>2],S=o[n+392>>2],p=o[n+432>>2],C=o[n+396>>2],I=o[n+436>>2],o[n+396>>2]=C+I,o[n+392>>2]=p+S,o[n+388>>2]=H+G,o[n+384>>2]=k+j,o[n+380>>2]=R+x,o[n+376>>2]=d+L,o[n+372>>2]=P+v,o[n+368>>2]=$+AA,o[n+364>>2]=W+Z,o[n+360>>2]=O+T,o[n+356>>2]=I-C,o[n+352>>2]=p-S,o[n+348>>2]=G-H,o[n+344>>2]=k-j,o[n+340>>2]=x-R,o[n+336>>2]=L-d,o[n+332>>2]=v-P,o[n+328>>2]=AA-$,o[n+324>>2]=Z-W,o[n+320>>2]=T-O,P=B<<1,v=o[n+440>>2],o[n+400>>2]=P-v,d=f<<1,L=o[n+444>>2],o[n+404>>2]=d-L,R=e<<1,x=o[n+448>>2],o[n+408>>2]=R-x,j=c<<1,k=o[n+452>>2],o[n+412>>2]=j-k,H=y<<1,G=o[n+456>>2],o[n+416>>2]=H-G,S=t<<1,p=o[n+460>>2],o[n+420>>2]=S-p,t=q<<1,y=o[n+464>>2],o[n+424>>2]=t-y,c=X<<1,e=o[n+468>>2],o[n+428>>2]=c-e,f=CA<<1,B=o[n+472>>2],o[n+432>>2]=f-B,C=gA<<1,I=o[n+476>>2],o[n+436>>2]=C-I,o[n+440>>2]=P+v,o[n+444>>2]=d+L,o[n+448>>2]=R+x,o[n+452>>2]=k+j,o[n+456>>2]=H+G,o[n+460>>2]=p+S,o[n+464>>2]=t+y,o[n+468>>2]=e+c,o[n+472>>2]=B+f,o[n+476>>2]=I+C),F(Q,n+320|0,w),F(z,h,s),F(IA,s,w),I=g-1|0,(0|g)>0;);break A}if(I=I-2|0,g)continue}break}D=n+2272|0,uA(I=i+288|0,Q),BA=-1,QA=cA(I,A),S=((0|A)==(0|I)?BA:QA)|oA(A,I,32)}return D=i+592|0,S}function F(A,I,g){var C,B,Q,i,E,a,n,f,t,e,c,y,D,h,s,p,u,k,F,l,S,H,M,G,U,J,N,Y,b,_,K,P,v,m,d,L,R,x,j,X,q,z,V,O,T,W,Z,$,AA,IA,gA,CA,BA,QA,iA=0,EA=0,oA=0,aA=0,nA=0,rA=0,fA=0,tA=0,eA=0,cA=0,yA=0,wA=0,hA=0,sA=0,pA=0,uA=0,kA=0,FA=0,lA=0,SA=0,HA=0,MA=0,GA=0,UA=0;iA=DA(C=o[g+4>>2],e=C>>31,kA=(p=o[I+20>>2])<<1,K=kA>>31),oA=w,EA=(hA=DA(pA=o[g>>2],Q=pA>>31,B=o[I+24>>2],i=B>>31))+iA|0,iA=w+oA|0,iA=EA>>>0>>0?iA+1|0:iA,eA=DA(E=o[g+8>>2],D=E>>31,hA=o[I+16>>2],a=hA>>31),oA=w+iA|0,oA=(EA=eA+EA|0)>>>0>>0?oA+1|0:oA,iA=(eA=DA(c=o[g+12>>2],u=c>>31,G=(k=o[I+12>>2])<<1,P=G>>31))+EA|0,EA=w+oA|0,EA=iA>>>0>>0?EA+1|0:EA,oA=(sA=DA(h=o[g+16>>2],U=h>>31,eA=o[I+8>>2],n=eA>>31))+iA|0,iA=w+EA|0,iA=oA>>>0>>0?iA+1|0:iA,EA=oA,oA=DA(F=o[g+20>>2],v=F>>31,J=(l=o[I+4>>2])<<1,m=J>>31),iA=w+iA|0,iA=(EA=EA+oA|0)>>>0>>0?iA+1|0:iA,W=tA=o[g+24>>2],oA=(cA=DA(tA,O=tA>>31,sA=o[I>>2],f=sA>>31))+EA|0,EA=w+iA|0,EA=oA>>>0>>0?EA+1|0:EA,d=o[g+28>>2],iA=(cA=DA(wA=r(d,19),S=wA>>31,N=(H=o[I+36>>2])<<1,L=N>>31))+oA|0,oA=w+EA|0,oA=iA>>>0>>0?oA+1|0:oA,$=o[g+32>>2],EA=(fA=DA(aA=r($,19),s=aA>>31,cA=o[I+32>>2],t=cA>>31))+iA|0,iA=w+oA|0,iA=EA>>>0>>0?iA+1|0:iA,Z=o[g+36>>2],g=DA(fA=r(Z,19),y=fA>>31,Y=(M=o[I+28>>2])<<1,R=Y>>31),iA=w+iA|0,nA=I=g+EA|0,g=I>>>0>>0?iA+1|0:iA,I=DA(hA,a,C,e),iA=w,EA=DA(pA,Q,p,x=p>>31),oA=w+iA|0,oA=(I=EA+I|0)>>>0>>0?oA+1|0:oA,iA=DA(E,D,k,j=k>>31),EA=w+oA|0,EA=(I=iA+I|0)>>>0>>0?EA+1|0:EA,oA=DA(eA,n,c,u),iA=w+EA|0,iA=(I=oA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(h,U,l,X=l>>31),iA=w+iA|0,iA=(I=EA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(sA,f,F,v),iA=w+iA|0,iA=(I=EA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(tA=r(tA,19),b=tA>>31,H,q=H>>31),oA=w+iA|0,oA=(I=EA+I|0)>>>0>>0?oA+1|0:oA,iA=DA(cA,t,wA,S),EA=w+oA|0,EA=(I=iA+I|0)>>>0>>0?EA+1|0:EA,oA=DA(aA,s,M,z=M>>31),iA=w+EA|0,iA=(I=oA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(fA,y,B,i),iA=w+iA|0,MA=I=EA+I|0,lA=I>>>0>>0?iA+1|0:iA,I=DA(C,e,G,P),iA=w,EA=DA(pA,Q,hA,a),iA=w+iA|0,iA=(I=EA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(eA,n,E,D),oA=w+iA|0,oA=(I=EA+I|0)>>>0>>0?oA+1|0:oA,iA=DA(c,u,J,m),EA=w+oA|0,EA=(I=iA+I|0)>>>0>>0?EA+1|0:EA,oA=DA(sA,f,h,U),iA=w+EA|0,iA=(I=oA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(_=r(F,19),V=_>>31,N,L),iA=w+iA|0,iA=(I=EA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(cA,t,tA,b),iA=w+iA|0,iA=(I=EA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(wA,S,Y,R),oA=w+iA|0,oA=(I=EA+I|0)>>>0>>0?oA+1|0:oA,iA=DA(aA,s,B,i),EA=w+oA|0,EA=(I=iA+I|0)>>>0>>0?EA+1|0:EA,oA=DA(fA,y,kA,K),iA=w+EA|0,AA=I=oA+I|0,IA=iA=I>>>0>>0?iA+1|0:iA,gA=I=I+33554432|0,CA=iA=I>>>0<33554432?iA+1|0:iA,oA=(67108863&iA)<<6|I>>>26,iA=(iA>>26)+lA|0,MA=I=oA+MA|0,iA=I>>>0>>0?iA+1|0:iA,BA=I=I+16777216|0,iA=g+(EA=(oA=I>>>0<16777216?iA+1|0:iA)>>25)|0,iA=(I=(oA=(33554431&oA)<<7|I>>>25)+nA|0)>>>0>>0?iA+1|0:iA,FA=g=(EA=I)+33554432|0,I=iA=g>>>0<33554432?iA+1|0:iA,o[A+24>>2]=EA-(-67108864&g),g=DA(C,e,J,m),iA=w,EA=DA(pA,Q,eA,n),oA=w+iA|0,oA=(g=EA+g|0)>>>0>>0?oA+1|0:oA,EA=(iA=g)+(g=DA(sA,f,E,D))|0,iA=w+oA|0,iA=g>>>0>EA>>>0?iA+1|0:iA,oA=DA(g=r(c,19),SA=g>>31,N,L),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,oA=(nA=DA(cA,t,lA=r(h,19),T=lA>>31))+EA|0,EA=w+iA|0,EA=oA>>>0>>0?EA+1|0:EA,nA=DA(Y,R,_,V),iA=w+EA|0,iA=(oA=nA+oA|0)>>>0>>0?iA+1|0:iA,EA=(nA=DA(B,i,tA,b))+oA|0,oA=w+iA|0,oA=EA>>>0>>0?oA+1|0:oA,nA=DA(wA,S,kA,K),iA=w+oA|0,iA=(EA=nA+EA|0)>>>0>>0?iA+1|0:iA,oA=DA(aA,s,hA,a),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,oA=(nA=DA(fA,y,G,P))+EA|0,EA=w+iA|0,yA=oA,GA=oA>>>0>>0?EA+1|0:EA,iA=DA(sA,f,C,e),EA=w,oA=(nA=DA(pA,Q,l,X))+iA|0,iA=w+EA|0,iA=oA>>>0>>0?iA+1|0:iA,nA=EA=r(E,19),EA=(rA=DA(EA,HA=EA>>31,H,q))+oA|0,oA=w+iA|0,oA=EA>>>0>>0?oA+1|0:oA,rA=DA(cA,t,g,SA),iA=w+oA|0,iA=(EA=rA+EA|0)>>>0>>0?iA+1|0:iA,oA=DA(lA,T,M,z),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,oA=(rA=DA(B,i,_,V))+EA|0,EA=w+iA|0,EA=oA>>>0>>0?EA+1|0:EA,rA=DA(tA,b,p,x),iA=w+EA|0,iA=(oA=rA+oA|0)>>>0>>0?iA+1|0:iA,EA=(rA=DA(hA,a,wA,S))+oA|0,oA=w+iA|0,oA=EA>>>0>>0?oA+1|0:oA,rA=DA(aA,s,k,j),iA=w+oA|0,iA=(EA=rA+EA|0)>>>0>>0?iA+1|0:iA,oA=DA(fA,y,eA,n),iA=w+iA|0,UA=EA=oA+EA|0,rA=EA>>>0>>0?iA+1|0:iA,iA=DA(iA=r(C,19),iA>>31,N,L),EA=w,oA=DA(pA,Q,sA,f),EA=w+EA|0,EA=(iA=oA+iA|0)>>>0>>0?EA+1|0:EA,oA=(nA=DA(cA,t,nA,HA))+iA|0,iA=w+EA|0,g=(EA=DA(g,SA,Y,R))+oA|0,oA=w+(oA>>>0>>0?iA+1|0:iA)|0,oA=g>>>0>>0?oA+1|0:oA,EA=DA(B,i,lA,T),iA=w+oA|0,iA=(g=EA+g|0)>>>0>>0?iA+1|0:iA,EA=DA(kA,K,_,V),iA=w+iA|0,iA=(g=EA+g|0)>>>0>>0?iA+1|0:iA,oA=DA(hA,a,tA,b),EA=w+iA|0,EA=(g=oA+g|0)>>>0>>0?EA+1|0:EA,oA=DA(wA,S,G,P),iA=w+EA|0,iA=(g=oA+g|0)>>>0>>0?iA+1|0:iA,EA=DA(aA,s,eA,n),oA=w+iA|0,oA=(g=EA+g|0)>>>0>>0?oA+1|0:oA,EA=DA(fA,y,J,m),iA=w+oA|0,nA=g=EA+g|0,SA=iA=g>>>0>>0?iA+1|0:iA,HA=g=g+33554432|0,QA=iA=g>>>0<33554432?iA+1|0:iA,EA=(oA=iA>>26)+rA|0,rA=g=(iA=(67108863&iA)<<6|g>>>26)+UA|0,iA=EA=g>>>0>>0?EA+1|0:EA,UA=g=g+16777216|0,EA=(33554431&(iA=g>>>0<16777216?iA+1|0:iA))<<7|g>>>25,iA=(iA>>25)+GA|0,iA=(g=EA+yA|0)>>>0>>0?iA+1|0:iA,GA=EA=(oA=g)+33554432|0,g=iA=EA>>>0<33554432?iA+1|0:iA,o[A+8>>2]=oA-(-67108864&EA),iA=DA(B,i,C,e),oA=w,EA=(yA=DA(pA,Q,M,z))+iA|0,iA=w+oA|0,iA=EA>>>0>>0?iA+1|0:iA,oA=DA(E,D,p,x),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,oA=DA(hA,a,c,u),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,yA=DA(h,U,k,j),oA=w+iA|0,oA=(EA=yA+EA|0)>>>0>>0?oA+1|0:oA,iA=(yA=DA(eA,n,F,v))+EA|0,EA=w+oA|0,EA=iA>>>0>>0?EA+1|0:EA,oA=(yA=DA(l,X,W,O))+iA|0,iA=w+EA|0,iA=oA>>>0>>0?iA+1|0:iA,EA=oA,oA=DA(sA,f,d,yA=d>>31),iA=w+iA|0,iA=(EA=EA+oA|0)>>>0>>0?iA+1|0:iA,oA=DA(aA,s,H,q),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,uA=DA(fA,y,cA,t),oA=w+iA|0,iA=I>>26,I=(FA=(67108863&I)<<6|FA>>>26)+(EA=uA+EA|0)|0,EA=iA+(EA>>>0>>0?oA+1|0:oA)|0,iA=(oA=I)>>>0>>0?EA+1|0:EA,FA=EA=oA+16777216|0,I=iA=EA>>>0<16777216?iA+1|0:iA,o[A+28>>2]=oA-(-33554432&EA),iA=DA(eA,n,C,e),EA=w,uA=DA(pA,Q,k,j),oA=w+EA|0,oA=(iA=uA+iA|0)>>>0>>0?oA+1|0:oA,uA=DA(E,D,l,X),EA=w+oA|0,EA=(iA=uA+iA|0)>>>0>>0?EA+1|0:EA,oA=(uA=DA(sA,f,c,u))+iA|0,iA=w+EA|0,iA=oA>>>0>>0?iA+1|0:iA,EA=oA,oA=DA(lA,T,H,q),iA=w+iA|0,iA=(EA=EA+oA|0)>>>0>>0?iA+1|0:iA,oA=DA(cA,t,_,V),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,EA=(tA=DA(tA,b,M,z))+EA|0,oA=w+iA|0,iA=(wA=DA(B,i,wA,S))+EA|0,EA=w+(EA>>>0>>0?oA+1|0:oA)|0,oA=(aA=DA(aA,s,p,x))+iA|0,iA=w+(iA>>>0>>0?EA+1|0:EA)|0,iA=oA>>>0>>0?iA+1|0:iA,EA=oA,oA=DA(fA,y,hA,a),iA=w+iA|0,aA=EA=EA+oA|0,iA=(iA=EA>>>0>>0?iA+1|0:iA)+(EA=g>>26)|0,oA=(EA=g=aA+(oA=(67108863&g)<<6|GA>>>26)|0)>>>0>>0?iA+1|0:iA,wA=iA=EA+16777216|0,g=oA=iA>>>0<16777216?oA+1|0:oA,o[A+12>>2]=EA-(-33554432&iA),iA=DA(C,e,Y,R),oA=w,EA=(aA=DA(pA,Q,cA,t))+iA|0,iA=w+oA|0,iA=EA>>>0>>0?iA+1|0:iA,oA=DA(B,i,E,D),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,aA=DA(c,u,kA,K),oA=w+iA|0,oA=(EA=aA+EA|0)>>>0>>0?oA+1|0:oA,iA=(aA=DA(hA,a,h,U))+EA|0,EA=w+oA|0,EA=iA>>>0>>0?EA+1|0:EA,oA=(aA=DA(G,P,F,v))+iA|0,iA=w+EA|0,iA=oA>>>0>>0?iA+1|0:iA,EA=oA,oA=DA(eA,n,W,O),iA=w+iA|0,iA=(EA=EA+oA|0)>>>0>>0?iA+1|0:iA,oA=DA(d,yA,J,m),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,EA=(kA=DA(sA,f,aA=$,tA=aA>>31))+EA|0,oA=w+iA|0,iA=(fA=DA(fA,y,N,L))+EA|0,EA=w+(EA>>>0>>0?oA+1|0:oA)|0,EA=iA>>>0>>0?EA+1|0:EA,fA=iA,iA=(iA=I>>25)+EA|0,iA=(I=fA+(oA=(33554431&I)<<7|FA>>>25)|0)>>>0>>0?iA+1|0:iA,fA=EA=(oA=I)+33554432|0,I=iA=EA>>>0<33554432?iA+1|0:iA,o[A+32>>2]=oA-(-67108864&EA),EA=g>>25,g=(wA=(33554431&g)<<7|wA>>>25)+(AA-(iA=-67108864&gA)|0)|0,iA=EA+(IA-((iA>>>0>AA>>>0)+CA|0)|0)|0,iA=g>>>0>>0?iA+1|0:iA,FA=iA=(67108863&(iA=(g=(EA=g)+33554432|0)>>>0<33554432?iA+1|0:iA))<<6|g>>>26,iA=iA+(oA=MA-(-33554432&BA)|0)|0,o[A+20>>2]=iA,o[A+16>>2]=EA-(-67108864&g),g=DA(cA,t,C,e),iA=w,EA=DA(pA,Q,H,q),iA=w+iA|0,iA=(g=EA+g|0)>>>0>>0?iA+1|0:iA,oA=DA(E,D,M,z),EA=w+iA|0,EA=(g=oA+g|0)>>>0>>0?EA+1|0:EA,iA=DA(B,i,c,u),oA=w+EA|0,oA=(g=iA+g|0)>>>0>>0?oA+1|0:oA,EA=DA(h,U,p,x),iA=w+oA|0,iA=(g=EA+g|0)>>>0>>0?iA+1|0:iA,EA=DA(hA,a,F,v),iA=w+iA|0,iA=(g=EA+g|0)>>>0>>0?iA+1|0:iA,EA=DA(k,j,W,O),iA=w+iA|0,iA=(g=EA+g|0)>>>0>>0?iA+1|0:iA,oA=DA(eA,n,d,yA),EA=w+iA|0,EA=(g=oA+g|0)>>>0>>0?EA+1|0:EA,iA=DA(aA,tA,l,X),oA=w+EA|0,oA=(g=iA+g|0)>>>0>>0?oA+1|0:oA,EA=DA(sA,f,Z,Z>>31),iA=w+oA|0,iA=(iA=(g=EA+g|0)>>>0>>0?iA+1|0:iA)+(EA=I>>26)|0,iA=(I=(oA=g)+(g=(67108863&I)<<6|fA>>>26)|0)>>>0>>0?iA+1|0:iA,iA=(I=(g=I)+16777216|0)>>>0<16777216?iA+1|0:iA,o[A+36>>2]=g-(-33554432&I),oA=rA-(-33554432&UA)|0,EA=nA-(g=-67108864&HA)|0,pA=SA-((g>>>0>nA>>>0)+QA|0)|0,I=(g=DA((33554431&(g=iA))<<7|I>>>25,iA>>=25,19,0))+EA|0,EA=w+pA|0,iA=I>>>0>>0?EA+1|0:EA,EA=iA=(67108863&(iA=(I=(g=I)+33554432|0)>>>0<33554432?iA+1|0:iA))<<6|I>>>26,iA=iA+oA|0,o[A+4>>2]=iA,o[A>>2]=g-(-67108864&I)}function l(A,I){var g,C,B,Q,i,E,a,n,f,t,e,c,y,h,s,p,u,k,F,l,H,M,G,U,J=0,N=0,Y=0,b=0,_=0,K=0,P=0,v=0,m=0,d=0,L=0,R=0,x=0,j=0,X=0,q=0,z=0,V=0,O=0,T=0,W=0,Z=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,EA=0,oA=0,aA=0,nA=0,rA=0;D=g=D-48|0,S(A,I),S(A+80|0,I+40|0),J=DA(x=(W=o[I+92>>2])<<1,i=x>>31,R=(b=o[I+84>>2])<<1,C=R>>31),Y=w,BA=j=o[I+88>>2],N=(L=DA(j,q=j>>31,j,q))+J|0,J=w+Y|0,J=N>>>0>>0?J+1|0:J,Y=(m=DA(P=o[I+96>>2],E=P>>31,L=(_=o[I+80>>2])<<1,B=L>>31))+N|0,N=w+J|0,N=Y>>>0>>0?N+1|0:N,IA=o[I+108>>2],m=DA(d=r(IA,38),e=d>>31,IA,h=IA>>31),J=w+N|0,J=(Y=m+Y|0)>>>0>>0?J+1|0:J,v=Y,Z=o[I+112>>2],Y=DA(K=r(Z,19),a=K>>31,N=(z=o[I+104>>2])<<1,N>>31),J=w+J|0,J=(N=v+Y|0)>>>0>>0?J+1|0:J,iA=o[I+116>>2],Y=($=DA(m=r(iA,38),Q=m>>31,X=(V=o[I+100>>2])<<1,f=X>>31))+N|0,N=w+J|0,EA=J=(Y>>>0<$>>>0?N+1|0:N)<<1|Y>>>31,oA=Y=33554432+(s=Y<<1)|0,aA=J=Y>>>0<33554432?J+1|0:J,gA=(67108863&J)<<6|Y>>>26,O=J>>26,J=DA(R,C,P,E),N=w,Y=DA(j<<=1,t=j>>31,W,p=W>>31),N=w+N|0,N=(J=Y+J|0)>>>0>>0?N+1|0:N,Y=($=DA(V,c=V>>31,L,B))+J|0,J=w+N|0,J=Y>>>0<$>>>0?J+1|0:J,N=Y,Y=DA(K,a,$=IA<<1,u=$>>31),J=w+J|0,J=(N=N+Y|0)>>>0>>0?J+1|0:J,Y=DA(m,Q,z,n=z>>31),J=w+J|0,J=(N=Y+N|0)>>>0>>0?J+1|0:J,Y=gA,gA=N<<1,N=(J<<1|N>>>31)+O|0,N=(Y=Y+gA|0)>>>0>>0?N+1|0:N,gA=Y,nA=Y=Y+16777216|0,v=(33554431&(N=Y>>>0<16777216?N+1|0:N))<<7|Y>>>25,O=N>>25,J=DA(x,i,W,p),Y=w,N=(T=DA(P,E,j,t))+J|0,J=w+Y|0,J=N>>>0>>0?J+1|0:J,Y=DA(R,C,X,f),J=w+J|0,J=(N=Y+N|0)>>>0>>0?J+1|0:J,Y=(T=DA(L,B,z,n))+N|0,N=w+J|0,N=Y>>>0>>0?N+1|0:N,J=Y,Y=DA(K,a,Z,y=Z>>31),N=w+N|0,N=(J=J+Y|0)>>>0>>0?N+1|0:N,Y=(T=DA(m,Q,$,u))+J|0,J=w+N|0,N=(Y>>>0>>0?J+1|0:J)<<1|Y>>>31,Y=(J=v)+(v=Y<<1)|0,J=N+O|0,J=Y>>>0>>0?J+1|0:J,O=Y,T=N=Y+33554432|0,Y=J=N>>>0<33554432?J+1|0:J,o[A+144>>2]=O-(-67108864&N),O=DA(J=r(V,38),J>>31,V,c),v=w,_=DA(J=_,N=J>>31,J,N),J=w+v|0,J=(N=_+O|0)>>>0<_>>>0?J+1|0:J,v=DA(_=r(z,19),k=_>>31,O=P<<1,F=O>>31),J=w+J|0,J=(N=v+N|0)>>>0>>0?J+1|0:J,v=DA(x,i,d,e),J=w+J|0,J=(N=v+N|0)>>>0>>0?J+1|0:J,v=(rA=DA(K,a,j,t))+N|0,N=w+J|0,N=v>>>0>>0?N+1|0:N,J=v,v=DA(R,C,m,Q),N=w+N|0,N=((J=J+v|0)>>>0>>0?N+1|0:N)<<1,v=J,rA=J=N|J>>>31,M=v=33554432+(l=v<<1)|0,G=J=v>>>0<33554432?J+1|0:J,AA=(67108863&J)<<6|v>>>26,v=J>>26,J=DA(_,k,X,f),CA=w,QA=b,N=(b=DA(L,B,b,H=b>>31))+J|0,J=w+CA|0,J=N>>>0>>0?J+1|0:J,b=(CA=DA(P,E,d,e))+N|0,N=w+J|0,N=b>>>0>>0?N+1|0:N,CA=DA(K,a,x,i),J=w+N|0,J=(b=CA+b|0)>>>0>>0?J+1|0:J,N=b,b=DA(m,Q,BA,q),J=w+J|0,J=((N=N+b|0)>>>0>>0?J+1|0:J)<<1,b=N,N=(N=J|N>>>31)+v|0,v=b=(J=b<<1)+AA|0,J=N=J>>>0>b>>>0?N+1|0:N,CA=b=b+16777216|0,U=(33554431&(J=b>>>0<16777216?J+1|0:J))<<7|b>>>25,AA=J>>25,J=DA(L,B,BA,q),b=w,N=(QA=DA(R,C,QA,H))+J|0,J=w+b|0,J=N>>>0>>0?J+1|0:J,b=DA(_,k,z,n),J=w+J|0,J=(N=b+N|0)>>>0>>0?J+1|0:J,b=(_=DA(X,f,d,e))+N|0,N=w+J|0,N=b>>>0<_>>>0?N+1|0:N,_=DA(K,a,O,F),J=w+N|0,J=(b=_+b|0)>>>0<_>>>0?J+1|0:J,_=DA(m,Q,x,i),N=w+J|0,J=(N=((b=_+b|0)>>>0<_>>>0?N+1|0:N)<<1|b>>>31)+AA|0,J=(b=(_=b<<1)+U|0)>>>0<_>>>0?J+1|0:J,_=b,QA=N=b+33554432|0,b=J=N>>>0<33554432?J+1|0:J,o[A+128>>2]=_-(-67108864&N),J=DA(j,t,V,c),N=w,_=DA(P,E,x,i),N=w+N|0,N=(J=_+J|0)>>>0<_>>>0?N+1|0:N,_=(AA=DA(R,C,z,n))+J|0,J=w+N|0,J=_>>>0>>0?J+1|0:J,N=_,_=DA(L,B,IA,h),J=w+J|0,J=(N=N+_|0)>>>0<_>>>0?J+1|0:J,_=(AA=DA(m,Q,Z,y))+N|0,N=w+J|0,N=J=(_>>>0>>0?N+1|0:N)<<1|_>>>31,J=(J=Y>>26)+N|0,J=(Y=(AA=_<<=1)+(_=(67108863&Y)<<6|T>>>26)|0)>>>0<_>>>0?J+1|0:J,_=Y,N=J,T=J=Y+16777216|0,Y=N=J>>>0<16777216?N+1|0:N,o[A+148>>2]=_-(-33554432&J),J=DA(L,B,W,p),W=w,N=(q=DA(R,C,BA,q))+J|0,J=w+W|0,J=N>>>0>>0?J+1|0:J,d=DA(z,n,d,e),J=w+J|0,J=(N=d+N|0)>>>0>>0?J+1|0:J,K=(d=DA(K,a,X,f))+N|0,N=w+J|0,N=K>>>0>>0?N+1|0:N,d=DA(m,Q,P,E),J=w+N|0,N=(J=((K=d+K|0)>>>0>>0?J+1|0:J)<<1|K>>>31)+(N=b>>26)|0,N=(b=(_=K<<1)+(K=(67108863&b)<<6|QA>>>26)|0)>>>0>>0?N+1|0:N,K=b,J=N,d=N=b+16777216|0,b=J=N>>>0<16777216?J+1|0:J,o[A+132>>2]=K-(-33554432&N),J=DA(z,n,j,t),K=w,N=(P=DA(P,E,P,E))+J|0,J=w+K|0,J=N>>>0

>>0?J+1|0:J,P=(K=DA(x,i,X,f))+N|0,N=w+J|0,N=P>>>0>>0?N+1|0:N,K=DA(R,C,$,u),J=w+N|0,J=(P=K+P|0)>>>0>>0?J+1|0:J,K=DA(L,B,Z,y),N=w+J|0,N=(P=K+P|0)>>>0>>0?N+1|0:N,K=DA(J=m,Q,m=iA,X=m>>31),J=w+N|0,J=(J=((P=K+P|0)>>>0>>0?J+1|0:J)<<1|P>>>31)+(N=Y>>25)|0,J=(Y=(_=P<<1)+(P=(33554431&Y)<<7|T>>>25)|0)>>>0

>>0?J+1|0:J,P=Y,N=J,K=J=Y+33554432|0,Y=N=J>>>0<33554432?N+1|0:N,o[A+152>>2]=P-(-67108864&J),N=s-(J=-67108864&oA)|0,q=EA-((J>>>0>s>>>0)+aA|0)|0,J=b>>25,b=(d=(33554431&b)<<7|d>>>25)+N|0,N=J+q|0,N=b>>>0>>0?N+1|0:N,_=N=(67108863&(N=(J=b+33554432|0)>>>0<33554432?N+1|0:N))<<6|J>>>26,N=N+(P=gA-(-33554432&nA)|0)|0,o[A+140>>2]=N,o[A+136>>2]=b-(-67108864&J),J=DA(x,i,z,n),N=w,b=DA(V,c,O,F),N=w+N|0,N=(J=b+J|0)>>>0>>0?N+1|0:N,b=(x=DA(j,t,IA,h))+J|0,J=w+N|0,J=b>>>0>>0?J+1|0:J,N=b,b=DA(R,C,Z,y),J=w+J|0,J=(N=N+b|0)>>>0>>0?J+1|0:J,b=(R=DA(L,B,m,X))+N|0,N=w+J|0,N=J=(b>>>0>>0?N+1|0:N)<<1|b>>>31,J=(J=Y>>26)+N|0,N=(Y=(_=b<<=1)+(b=(67108863&Y)<<6|K>>>26)|0)>>>0>>0?J+1|0:J,N=(J=Y+16777216|0)>>>0<16777216?N+1|0:N,o[A+156>>2]=Y-(-33554432&J),b=v-(-33554432&CA)|0,R=l-(Y=-67108864&M)|0,L=rA-((Y>>>0>l>>>0)+G|0)|0,N=DA((33554431&N)<<7|J>>>25,N>>25,19,0),J=w+L|0,N=N>>>0>(Y=N+R|0)>>>0?J+1|0:J,_=N=(67108863&(N=(J=Y+33554432|0)>>>0<33554432?N+1|0:N))<<6|J>>>26,N=N+b|0,o[A+124>>2]=N,o[A+120>>2]=Y-(-67108864&J),J=o[I+40>>2],N=o[I+44>>2],Y=o[I+4>>2],b=o[I+48>>2],R=o[I+8>>2],L=o[I+52>>2],m=o[I+12>>2],x=o[I+56>>2],P=o[I+16>>2],K=o[I+60>>2],z=o[I+20>>2],X=o[I- -64>>2],j=o[I+24>>2],d=o[I+68>>2],q=o[I+28>>2],V=o[I+72>>2],Z=o[I+32>>2],BA=o[I>>2],o[A+76>>2]=o[I+76>>2]+o[I+36>>2],o[A+72>>2]=V+Z,o[A+68>>2]=d+q,o[(IA=A- -64|0)>>2]=j+X,o[A+60>>2]=K+z,o[A+56>>2]=P+x,o[A+52>>2]=m+L,o[A+48>>2]=b+R,o[A+44>>2]=N+Y,o[(I=A+40|0)>>2]=J+BA,S(g,I),J=o[A+80>>2],N=o[A+4>>2],Y=o[A+84>>2],b=o[A+8>>2],R=o[A+88>>2],L=o[A+12>>2],m=o[A+92>>2],x=o[A+16>>2],P=o[A+96>>2],K=o[A+20>>2],z=o[A+100>>2],X=o[A+24>>2],j=o[A+104>>2],d=o[A+28>>2],q=o[A+108>>2],V=o[A+32>>2],Z=o[A+112>>2],BA=o[A>>2],_=(W=o[A+116>>2])-($=o[A+36>>2])|0,o[A+116>>2]=_,O=Z-V|0,o[A+112>>2]=O,gA=q-d|0,o[A+108>>2]=gA,v=j-X|0,o[A+104>>2]=v,iA=z-K|0,o[A+100>>2]=iA,EA=P-x|0,o[A+96>>2]=EA,oA=m-L|0,o[A+92>>2]=oA,aA=R-b|0,o[A+88>>2]=aA,T=Y-N|0,o[A+84>>2]=T,nA=J-BA|0,o[A+80>>2]=nA,W=W+$|0,o[A+76>>2]=W,V=V+Z|0,o[A+72>>2]=V,d=d+q|0,o[A+68>>2]=d,X=j+X|0,o[IA>>2]=X,K=K+z|0,o[A+60>>2]=K,x=P+x|0,o[A+56>>2]=x,L=m+L|0,o[A+52>>2]=L,b=b+R|0,o[A+48>>2]=b,N=N+Y|0,o[A+44>>2]=N,Y=I,I=J+BA|0,o[Y>>2]=I,J=o[g>>2],Y=o[g+4>>2],R=o[g+8>>2],m=o[g+12>>2],P=o[g+16>>2],z=o[g+20>>2],j=o[g+24>>2],q=o[g+28>>2],Z=o[g+32>>2],o[A+36>>2]=o[g+36>>2]-W,o[A+32>>2]=Z-V,o[A+28>>2]=q-d,o[A+24>>2]=j-X,o[A+20>>2]=z-K,o[A+16>>2]=P-x,o[A+12>>2]=m-L,o[A+8>>2]=R-b,o[A+4>>2]=Y-N,o[A>>2]=J-I,I=o[A+120>>2],J=o[A+124>>2],N=o[A+128>>2],Y=o[A+132>>2],b=o[A+136>>2],R=o[A+140>>2],L=o[A+144>>2],m=o[A+148>>2],x=o[A+152>>2],o[A+156>>2]=o[A+156>>2]-_,o[A+152>>2]=x-O,o[A+148>>2]=m-gA,o[A+144>>2]=L-v,o[A+140>>2]=R-iA,o[A+136>>2]=b-EA,o[A+132>>2]=Y-oA,o[A+128>>2]=N-aA,o[A+124>>2]=J-T,o[A+120>>2]=I-nA,D=g+48|0}function S(A,I){var g,C,B,Q,i,E,a,n,f,t,e,c,y,D,h,s,p,u,k,F,l,S,H,M,G,U,J,N,Y,b,_,K,P,v=0,m=0,d=0,L=0,R=0,x=0,j=0,X=0,q=0,z=0,V=0,O=0,T=0,W=0,Z=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0;v=DA(C=(s=o[I+12>>2])<<1,E=C>>31,s,l=s>>31),d=w,m=(q=DA(R=o[I+16>>2],a=R>>31,n=(L=o[I+8>>2])<<1,c=n>>31))+v|0,v=w+d|0,v=m>>>0>>0?v+1|0:v,d=(z=DA(T=(f=o[I+20>>2])<<1,y=T>>31,q=(x=o[I+4>>2])<<1,B=q>>31))+m|0,m=w+v|0,m=d>>>0>>0?m+1|0:m,j=DA(g=o[I+24>>2],t=g>>31,z=($=o[I>>2])<<1,Q=z>>31),v=w+m|0,v=(d=j+d|0)>>>0>>0?v+1|0:v,m=d,D=o[I+32>>2],d=DA(V=r(D,19),e=V>>31,D,u=D>>31),v=w+v|0,v=(m=m+d|0)>>>0>>0?v+1|0:v,U=o[I+36>>2],d=DA(j=r(U,38),i=j>>31,k=(h=o[I+28>>2])<<1,S=k>>31),I=w+v|0,Z=m=d+m|0,d=m>>>0>>0?I+1|0:I,I=DA(q,B,R,a),v=w,m=DA(n,c,s,l),v=w+v|0,v=(I=m+I|0)>>>0>>0?v+1|0:v,X=DA(f,F=f>>31,z,Q),m=w+v|0,m=(I=X+I|0)>>>0>>0?m+1|0:m,X=DA(V,e,k,S),v=w+m|0,v=(I=X+I|0)>>>0>>0?v+1|0:v,m=DA(j,i,g,t),v=w+v|0,BA=I=m+I|0,O=I>>>0>>0?v+1|0:v,v=DA(q,B,C,E),m=w,H=I=L,L=DA(I,W=I>>31,I,W),I=w+m|0,I=(v=L+v|0)>>>0>>0?I+1|0:I,m=(L=DA(z,Q,R,a))+v|0,v=w+I|0,v=m>>>0>>0?v+1|0:v,I=(L=DA(X=r(h,38),p=X>>31,h,M=h>>31))+m|0,m=w+v|0,m=I>>>0>>0?m+1|0:m,I=(v=I)+(L=DA(V,e,I=g<<1,I>>31))|0,v=w+m|0,v=I>>>0>>0?v+1|0:v,m=I,I=DA(j,i,T,y),v=w+v|0,J=m=m+I|0,N=v=I>>>0>m>>>0?v+1|0:v,I=v,Y=m=m+33554432|0,b=I=m>>>0<33554432?I+1|0:I,v=(v=I>>26)+O|0,BA=I=(m=(67108863&I)<<6|m>>>26)+BA|0,v=I>>>0>>0?v+1|0:v,_=I=I+16777216|0,v=(v=(m=I>>>0<16777216?v+1|0:v)>>25)+d|0,I=(I=(33554431&m)<<7|I>>>25)>>>0>(m=I+Z|0)>>>0?v+1|0:v,Z=v=m+33554432|0,L=I=v>>>0<33554432?I+1|0:I,o[A+24>>2]=m-(-67108864&v),I=DA(z,Q,H,W),v=w,d=DA(q,B,x,CA=x>>31),m=w+v|0,m=(I=d+I|0)>>>0>>0?m+1|0:m,O=DA(d=r(g,19),gA=d>>31,g,t),v=w+m|0,v=(I=O+I|0)>>>0>>0?v+1|0:v,m=(O=DA(T,y,X,p))+I|0,I=w+v|0,I=m>>>0>>0?I+1|0:I,AA=DA(V,e,O=R<<1,G=O>>31),v=w+I|0,v=(m=AA+m|0)>>>0>>0?v+1|0:v,I=m,m=DA(j,i,C,E),v=w+v|0,IA=I=I+m|0,AA=I>>>0>>0?v+1|0:v,I=DA(T,y,d,gA),v=w,x=DA(z,Q,x,CA),m=w+v|0,m=(I=x+I|0)>>>0>>0?m+1|0:m,x=DA(R,a,X,p),v=w+m|0,v=(I=x+I|0)>>>0>>0?v+1|0:v,m=(x=DA(V,e,C,E))+I|0,I=w+v|0,I=m>>>0>>0?I+1|0:I,x=DA(j,i,H,W),v=w+I|0,QA=m=x+m|0,CA=m>>>0>>0?v+1|0:v,m=DA(I=r(f,38),I>>31,f,F),x=w,I=$,$=m,m=DA(I,v=I>>31,I,v),v=w+x|0,v=(I=$+m|0)>>>0>>0?v+1|0:v,d=DA(d,gA,O,G),m=w+v|0,m=(I=d+I|0)>>>0>>0?m+1|0:m,d=DA(C,E,X,p),v=w+m|0,v=(I=d+I|0)>>>0>>0?v+1|0:v,m=(d=DA(V,e,n,c))+I|0,I=w+v|0,I=m>>>0>>0?I+1|0:I,d=DA(q,B,j,i),v=w+I|0,x=m=d+m|0,gA=v=m>>>0>>0?v+1|0:v,K=m=m+33554432|0,P=v=m>>>0<33554432?v+1|0:v,I=v>>26,v=(67108863&v)<<6|m>>>26,m=I+CA|0,$=d=v+QA|0,v=m=v>>>0>d>>>0?m+1|0:m,QA=m=d+16777216|0,d=(33554431&(v=m>>>0<16777216?v+1|0:v))<<7|m>>>25,v=(v>>25)+AA|0,v=(m=d+IA|0)>>>0>>0?v+1|0:v,AA=I=m+33554432|0,d=v=I>>>0<33554432?v+1|0:v,o[A+8>>2]=m-(-67108864&I),I=DA(n,c,f,F),v=w,m=DA(R,a,C,E),v=w+v|0,v=(I=m+I|0)>>>0>>0?v+1|0:v,m=DA(q,B,g,t),v=w+v|0,v=(I=m+I|0)>>>0>>0?v+1|0:v,m=DA(z,Q,h,M),v=w+v|0,v=(I=m+I|0)>>>0>>0?v+1|0:v,IA=(m=DA(j,i,D,u))+I|0,I=w+v|0,m=(v=L>>26)+(m=m>>>0>IA>>>0?I+1|0:I)|0,Z=I=(L=(67108863&L)<<6|Z>>>26)+IA|0,v=I>>>0>>0?m+1|0:m,IA=I=I+16777216|0,L=v=I>>>0<16777216?v+1|0:v,o[A+28>>2]=Z-(-33554432&I),I=DA(z,Q,s,l),m=w,v=(W=DA(q,B,H,W))+I|0,I=w+m|0,I=v>>>0>>0?I+1|0:I,v=(X=DA(g,t,X,p))+v|0,m=w+I|0,I=(V=DA(V,e,T,y))+v|0,v=w+(v>>>0>>0?m+1|0:m)|0,v=I>>>0>>0?v+1|0:v,m=DA(j,i,R,a),v=w+v|0,v=(v=(I=m+I|0)>>>0>>0?v+1|0:v)+(m=d>>26)|0,I=(m=d=(Z=I)+(I=(67108863&d)<<6|AA>>>26)|0)>>>0>>0?v+1|0:v,V=v=m+16777216|0,d=I=v>>>0<16777216?I+1|0:I,o[A+12>>2]=m-(-33554432&v),I=DA(g,t,n,c),v=w,m=DA(R,a,R,a),v=w+v|0,v=(I=m+I|0)>>>0>>0?v+1|0:v,m=DA(C,E,T,y),v=w+v|0,v=(I=m+I|0)>>>0>>0?v+1|0:v,m=(R=DA(q,B,k,S))+I|0,I=w+v|0,I=m>>>0>>0?I+1|0:I,v=(R=DA(z,Q,D,u))+m|0,m=w+I|0,m=v>>>0>>0?m+1|0:m,I=(R=DA(I=j,i,j=U,T=j>>31))+v|0,v=w+m|0,v=I>>>0>>0?v+1|0:v,m=I,v=(I=L>>25)+v|0,v=(m=m+(L=(33554431&L)<<7|IA>>>25)|0)>>>0>>0?v+1|0:v,R=I=m+33554432|0,L=v=I>>>0<33554432?v+1|0:v,o[A+32>>2]=m-(-67108864&I),v=d>>25,m=(d=(33554431&d)<<7|V>>>25)+(J-(I=-67108864&Y)|0)|0,I=v+(N-((I>>>0>J>>>0)+b|0)|0)|0,v=m>>>0>>0?I+1|0:I,d=v=(67108863&(v=(I=m+33554432|0)>>>0<33554432?v+1|0:v))<<6|I>>>26,v=v+(X=BA-(-33554432&_)|0)|0,o[A+20>>2]=v,o[A+16>>2]=m-(-67108864&I),I=DA(C,E,g,t),m=w,v=(d=DA(f,F,O,G))+I|0,I=w+m|0,I=v>>>0>>0?I+1|0:I,m=(d=DA(n,c,h,M))+v|0,v=w+I|0,v=m>>>0>>0?v+1|0:v,I=(d=DA(q,B,D,u))+m|0,m=w+v|0,m=I>>>0>>0?m+1|0:m,d=(v=I)+(I=DA(z,Q,j,T))|0,v=w+m|0,v=(I=I>>>0>d>>>0?v+1|0:v)+(v=L>>26)|0,I=(m=(L=(67108863&L)<<6|R>>>26)+d|0)>>>0>>0?v+1|0:v,I=(v=m+16777216|0)>>>0<16777216?I+1|0:I,o[A+36>>2]=m-(-33554432&v),L=$-(-33554432&QA)|0,d=x-(m=-67108864&K)|0,q=gA-((m>>>0>x>>>0)+P|0)|0,I=DA((33554431&I)<<7|v>>>25,I>>25,19,0),v=w+q|0,I=I>>>0>(m=I+d|0)>>>0?v+1|0:v,d=I=(67108863&(I=(v=m+33554432|0)>>>0<33554432?I+1|0:I))<<6|v>>>26,I=I+L|0,o[A+4>>2]=I,o[A>>2]=m-(-67108864&v)}function H(A,I,g,C,B){var Q,i,n,r,f,t,e,c,y,w,h,s,p,u,k,F=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0,N=0,Y=0,b=0,_=0,K=0,P=0,v=0,m=0,d=0,L=0,R=0,x=0,j=0,X=0,q=0,z=0,V=0,O=0,T=0,W=0,Z=0,$=0,AA=0,IA=0,gA=0,CA=0;for(Q=D+-64|0,i=o[A+60>>2],n=o[A+56>>2],x=o[A+52>>2],R=o[A+48>>2],r=o[A+44>>2],f=o[A+40>>2],t=o[A+36>>2],e=o[A+32>>2],c=o[A+28>>2],y=o[A+24>>2],w=o[A+20>>2],h=o[A+16>>2],s=o[A+12>>2],p=o[A+8>>2],u=o[A+4>>2],k=o[A>>2];;){if(!B&C>>>0>63|B)F=g;else{if(o[Q+56>>2]=0,o[Q+60>>2]=0,o[Q+48>>2]=0,o[Q+52>>2]=0,o[Q+40>>2]=0,o[Q+44>>2]=0,o[Q+32>>2]=0,o[Q+36>>2]=0,o[Q+24>>2]=0,o[Q+28>>2]=0,o[Q+16>>2]=0,o[Q+20>>2]=0,o[Q+8>>2]=0,o[Q+12>>2]=0,o[Q>>2]=0,o[Q+4>>2]=0,S=0,C|B)for(;E[S+Q|0]=a[I+S|0],!B&(S=S+1|0)>>>0>>0|B;);I=F=Q,V=g}for(j=20,l=k,Y=u,b=p,P=s,S=h,g=w,M=y,G=c,U=e,m=t,_=f,H=i,d=n,v=x,K=R,J=r;N=S,l=YA((S=l+S|0)^K,16),N=K=YA(N^(U=l+U|0),12),K=YA((L=S+K|0)^l,8),S=YA(N^(U=K+U|0),7),H=YA((l=G+P|0)^H,16),G=YA((J=H+J|0)^G,12),P=YA((b=M+b|0)^d,16),M=YA((_=P+_|0)^M,12),d=(X=l+G|0)+S|0,q=YA((b=M+b|0)^P,8),l=YA(d^q,16),P=YA((Y=g+Y|0)^v,16),g=YA((m=P+m|0)^g,12),N=S,v=YA((Y=g+Y|0)^P,8),N=YA(N^(S=(z=v+m|0)+l|0),12),d=YA(l^(P=N+d|0),8),S=YA((m=d+S|0)^N,7),N=U,U=b,l=YA(H^X,8),b=YA((H=l+J|0)^G,7),v=YA((U=U+b|0)^v,16),J=YA((G=N+v|0)^b,12),v=YA(v^(b=J+U|0),8),G=YA((U=G+v|0)^J,7),J=H,H=Y,Y=YA((_=_+q|0)^M,7),M=J+(K=YA((H=H+Y|0)^K,16))|0,J=H,H=YA(M^Y,12),K=YA(K^(Y=J+H|0),8),M=YA((J=M+K|0)^H,7),N=_,H=l,l=YA(g^z,7),H=YA(H^(_=l+L|0),16),L=YA((g=N+H|0)^l,12),H=YA(H^(l=L+_|0),8),g=YA((_=g+H|0)^L,7),j=j-2|0;);if(j=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,L=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,X=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,q=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,z=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,N=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,O=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,T=a[I+32|0]|a[I+33|0]<<8|a[I+34|0]<<16|a[I+35|0]<<24,W=a[I+36|0]|a[I+37|0]<<8|a[I+38|0]<<16|a[I+39|0]<<24,Z=a[I+40|0]|a[I+41|0]<<8|a[I+42|0]<<16|a[I+43|0]<<24,$=a[I+44|0]|a[I+45|0]<<8|a[I+46|0]<<16|a[I+47|0]<<24,AA=a[I+48|0]|a[I+49|0]<<8|a[I+50|0]<<16|a[I+51|0]<<24,IA=a[I+52|0]|a[I+53|0]<<8|a[I+54|0]<<16|a[I+55|0]<<24,gA=a[I+56|0]|a[I+57|0]<<8|a[I+58|0]<<16|a[I+59|0]<<24,CA=a[I+60|0]|a[I+61|0]<<8|a[I+62|0]<<16|a[I+63|0]<<24,l=l+k^(a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24),E[0|F]=l,E[F+1|0]=l>>>8,E[F+2|0]=l>>>16,E[F+3|0]=l>>>24,l=H+i^CA,E[F+60|0]=l,E[F+61|0]=l>>>8,E[F+62|0]=l>>>16,E[F+63|0]=l>>>24,l=d+n^gA,E[F+56|0]=l,E[F+57|0]=l>>>8,E[F+58|0]=l>>>16,E[F+59|0]=l>>>24,l=v+x^IA,E[F+52|0]=l,E[F+53|0]=l>>>8,E[F+54|0]=l>>>16,E[F+55|0]=l>>>24,l=K+R^AA,E[F+48|0]=l,E[F+49|0]=l>>>8,E[F+50|0]=l>>>16,E[F+51|0]=l>>>24,l=J+r^$,E[F+44|0]=l,E[F+45|0]=l>>>8,E[F+46|0]=l>>>16,E[F+47|0]=l>>>24,l=_+f^Z,E[F+40|0]=l,E[F+41|0]=l>>>8,E[F+42|0]=l>>>16,E[F+43|0]=l>>>24,l=m+t^W,E[F+36|0]=l,E[F+37|0]=l>>>8,E[F+38|0]=l>>>16,E[F+39|0]=l>>>24,l=U+e^T,E[F+32|0]=l,E[F+33|0]=l>>>8,E[F+34|0]=l>>>16,E[F+35|0]=l>>>24,G=G+c^O,E[F+28|0]=G,E[F+29|0]=G>>>8,E[F+30|0]=G>>>16,E[F+31|0]=G>>>24,M=N^M+y,E[F+24|0]=M,E[F+25|0]=M>>>8,E[F+26|0]=M>>>16,E[F+27|0]=M>>>24,g=z^g+w,E[F+20|0]=g,E[F+21|0]=g>>>8,E[F+22|0]=g>>>16,E[F+23|0]=g>>>24,g=q^S+h,E[F+16|0]=g,E[F+17|0]=g>>>8,E[F+18|0]=g>>>16,E[F+19|0]=g>>>24,g=X^P+s,E[F+12|0]=g,E[F+13|0]=g>>>8,E[F+14|0]=g>>>16,E[F+15|0]=g>>>24,g=L^b+p,E[F+8|0]=g,E[F+9|0]=g>>>8,E[F+10|0]=g>>>16,E[F+11|0]=g>>>24,g=j^Y+u,E[F+4|0]=g,E[F+5|0]=g>>>8,E[F+6|0]=g>>>16,E[F+7|0]=g>>>24,x=!(R=R+1|0)+x|0,!B&C>>>0<=64){if(!(!C|!B&C>>>0>63|0!=(0|B)))for(S=0;E[S+V|0]=a[F+S|0],C>>>0>(S=S+1|0)>>>0;);o[A+52>>2]=x,o[A+48>>2]=R;break}I=I- -64|0,g=F- -64|0,B=B-1|0,B=(C=C+-64|0)>>>0<4294967232?B+1|0:B}}function M(A,I){var g,C=0,B=0,Q=0,i=0,a=0,n=0,r=0;D=g=D-704|0,C=80+((B=o[A+72>>2]>>>3&127)+A|0)|0,B>>>0<=111?HA(C,34640,112-B|0):(HA(C,34640,128-B|0),p(A,B=A+80|0,g,g+640|0),MA(B,0,112)),n=(Q=o[A+64>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+68>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[A+192|0]=C,E[A+193|0]=C>>>8,E[A+194|0]=C>>>16,E[A+195|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[A+196|0]=B,E[A+197|0]=B>>>8,E[A+198|0]=B>>>16,E[A+199|0]=B>>>24,n=(Q=o[A+72>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+76>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[A+200|0]=C,E[A+201|0]=C>>>8,E[A+202|0]=C>>>16,E[A+203|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[A+204|0]=B,E[A+205|0]=B>>>8,E[A+206|0]=B>>>16,E[A+207|0]=B>>>24,p(A,A+80|0,g,g+640|0),n=(Q=o[A>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+4>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[0|I]=C,E[I+1|0]=C>>>8,E[I+2|0]=C>>>16,E[I+3|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[I+4|0]=B,E[I+5|0]=B>>>8,E[I+6|0]=B>>>16,E[I+7|0]=B>>>24,n=(Q=o[A+8>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+12>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[I+8|0]=C,E[I+9|0]=C>>>8,E[I+10|0]=C>>>16,E[I+11|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[I+12|0]=B,E[I+13|0]=B>>>8,E[I+14|0]=B>>>16,E[I+15|0]=B>>>24,n=(Q=o[A+16>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+20>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[I+16|0]=C,E[I+17|0]=C>>>8,E[I+18|0]=C>>>16,E[I+19|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[I+20|0]=B,E[I+21|0]=B>>>8,E[I+22|0]=B>>>16,E[I+23|0]=B>>>24,n=(Q=o[A+24>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+28>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[I+24|0]=C,E[I+25|0]=C>>>8,E[I+26|0]=C>>>16,E[I+27|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[I+28|0]=B,E[I+29|0]=B>>>8,E[I+30|0]=B>>>16,E[I+31|0]=B>>>24,n=(Q=o[A+32>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+36>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[I+32|0]=C,E[I+33|0]=C>>>8,E[I+34|0]=C>>>16,E[I+35|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[I+36|0]=B,E[I+37|0]=B>>>8,E[I+38|0]=B>>>16,E[I+39|0]=B>>>24,n=(Q=o[A+40>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+44>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[I+40|0]=C,E[I+41|0]=C>>>8,E[I+42|0]=C>>>16,E[I+43|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[I+44|0]=B,E[I+45|0]=B>>>8,E[I+46|0]=B>>>16,E[I+47|0]=B>>>24,n=(Q=o[A+48>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+52>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[I+48|0]=C,E[I+49|0]=C>>>8,E[I+50|0]=C>>>16,E[I+51|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[I+52|0]=B,E[I+53|0]=B>>>8,E[I+54|0]=B>>>16,E[I+55|0]=B>>>24,n=(Q=o[A+56>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,C=I,r=i<<24,i=(a=-16777216&Q)>>>24|0,I=r|a<<8|-16777216&((255&(I=o[A+60>>2]))<<24|Q>>>8)|16711680&((16777215&I)<<8|Q>>>24)|I>>>8&65280|I>>>24,E[C+56|0]=I,E[C+57|0]=I>>>8,E[C+58|0]=I>>>16,E[C+59|0]=I>>>24,I=(I=B|i|n)|(B=0)|B|0,E[C+60|0]=I,E[C+61|0]=I>>>8,E[C+62|0]=I>>>16,E[C+63|0]=I>>>24,$A(g,704),$A(A,208),D=g+704|0}function G(A,I,g){var C,B=0,i=0,n=0,r=0,f=0,t=0;D=C=D+-64|0;A:{if((g-65&255)>>>0>191){if(B=-1,!(a[A+80|0]|a[A+81|0]<<8|a[A+82|0]<<16|a[A+83|0]<<24|a[A+84|0]|a[A+85|0]<<8|a[A+86|0]<<16|a[A+87|0]<<24)){if((r=a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)>>>0>=129){if(n=a[0|(B=A- -64|0)]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,f=i=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,i=(r=n+128|0)>>>0<128?i+1|0:i,E[0|B]=r,E[B+1|0]=r>>>8,E[B+2|0]=r>>>16,E[B+3|0]=r>>>24,E[B+4|0]=i,E[B+5|0]=i>>>8,E[B+6|0]=i>>>16,E[B+7|0]=i>>>24,i=a[A+76|0]|a[A+77|0]<<8|a[A+78|0]<<16|a[A+79|0]<<24,i=(B=-1==(0|f)&n>>>0>4294967167)>>>0>(n=B+(a[A+72|0]|a[A+73|0]<<8|a[A+74|0]<<16|a[A+75|0]<<24)|0)>>>0?i+1|0:i,E[A+72|0]=n,E[A+73|0]=n>>>8,E[A+74|0]=n>>>16,E[A+75|0]=n>>>24,E[A+76|0]=i,E[A+77|0]=i>>>8,E[A+78|0]=i>>>16,E[A+79|0]=i>>>24,h(A,i=A+96|0),B=(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)-128|0,E[A+352|0]=B,E[A+353|0]=B>>>8,E[A+354|0]=B>>>16,E[A+355|0]=B>>>24,B>>>0>=129)break A;HA(i,A+224|0,B),r=a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24}i=a[0|(B=A- -64|0)]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,n=t=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,n=(f=i+r|0)>>>0>>0?n+1|0:n,E[0|B]=f,E[B+1|0]=f>>>8,E[B+2|0]=f>>>16,E[B+3|0]=f>>>24,E[B+4|0]=n,E[B+5|0]=n>>>8,E[B+6|0]=n>>>16,E[B+7|0]=n>>>24,B=(0|n)==(0|t)&i>>>0>f>>>0|n>>>0>>0,i=a[A+76|0]|a[A+77|0]<<8|a[A+78|0]<<16|a[A+79|0]<<24,i=(n=B+(a[A+72|0]|a[A+73|0]<<8|a[A+74|0]<<16|a[A+75|0]<<24)|0)>>>0>>0?i+1|0:i,E[A+72|0]=n,E[A+73|0]=n>>>8,E[A+74|0]=n>>>16,E[A+75|0]=n>>>24,E[A+76|0]=i,E[A+77|0]=i>>>8,E[A+78|0]=i>>>16,E[A+79|0]=i>>>24,a[A+356|0]&&(E[A+88|0]=255,E[A+89|0]=255,E[A+90|0]=255,E[A+91|0]=255,E[A+92|0]=255,E[A+93|0]=255,E[A+94|0]=255,E[A+95|0]=255),E[A+80|0]=255,E[A+81|0]=255,E[A+82|0]=255,E[A+83|0]=255,E[A+84|0]=255,E[A+85|0]=255,E[A+86|0]=255,E[A+87|0]=255,MA((B=A+96|0)+r|0,0,256-r|0),h(A,B),i=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,o[C>>2]=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,o[C+4>>2]=i,i=a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24,o[C+8>>2]=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,o[C+12>>2]=i,i=a[A+20|0]|a[A+21|0]<<8|a[A+22|0]<<16|a[A+23|0]<<24,o[C+16>>2]=a[A+16|0]|a[A+17|0]<<8|a[A+18|0]<<16|a[A+19|0]<<24,o[C+20>>2]=i,i=a[A+28|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24,o[C+24>>2]=a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,o[C+28>>2]=i,i=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24,o[C+32>>2]=a[A+32|0]|a[A+33|0]<<8|a[A+34|0]<<16|a[A+35|0]<<24,o[C+36>>2]=i,i=a[A+44|0]|a[A+45|0]<<8|a[A+46|0]<<16|a[A+47|0]<<24,o[C+40>>2]=a[A+40|0]|a[A+41|0]<<8|a[A+42|0]<<16|a[A+43|0]<<24,o[C+44>>2]=i,i=a[A+52|0]|a[A+53|0]<<8|a[A+54|0]<<16|a[A+55|0]<<24,o[C+48>>2]=a[A+48|0]|a[A+49|0]<<8|a[A+50|0]<<16|a[A+51|0]<<24,o[C+52>>2]=i,i=a[A+60|0]|a[A+61|0]<<8|a[A+62|0]<<16|a[A+63|0]<<24,o[C+56>>2]=a[A+56|0]|a[A+57|0]<<8|a[A+58|0]<<16|a[A+59|0]<<24,o[C+60>>2]=i,HA(I,C,g),$A(A,64),$A(B,256),B=0}return D=C- -64|0,B}mA(),Q()}e(1280,1142,306,1086),Q()}function U(A,I){var g,C,B,Q,i,n,r,f,t,e,c,y,w,h,s,p,u=0,k=0,l=0,H=0,M=0,G=0,U=0;for(D=g=D-320|0,P(C=A+40|0,I),o[A+84>>2]=0,o[A+88>>2]=0,o[A+80>>2]=1,o[A+92>>2]=0,o[A+96>>2]=0,o[A+100>>2]=0,o[A+104>>2]=0,o[A+108>>2]=0,o[A+112>>2]=0,o[A+116>>2]=0,S(G=g+240|0,C),F(H=g+192|0,G,1344),U=-1,B=o[g+240>>2]-1|0,o[g+240>>2]=B,o[g+192>>2]=o[g+192>>2]+1,Q=o[g+244>>2],i=o[g+248>>2],n=o[g+252>>2],r=o[g+256>>2],f=o[g+260>>2],t=o[g+264>>2],e=o[g+268>>2],c=o[g+272>>2],y=o[g+276>>2],S(M=g+144|0,H),F(M,M,H),S(A,M),F(A,A,H),F(A,A,G),D=k=D-144|0,S(l=k+96|0,A),S(u=k+48|0,l),S(u,u),F(u,A,u),F(l,l,u),S(l,l),F(l,u,l),S(u,l),S(u,u),S(u,u),S(u,u),S(u,u),F(l,u,l),S(u,l),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),F(u,u,l),S(k,u),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),F(u,k,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),F(l,u,l),S(u,l),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),F(u,u,l),S(k,u),u=1;S(k,k),100!=(0|(u=u+1|0)););F(u=k+48|0,k,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),F(l=k+96|0,u,l),S(l,l),S(l,l),F(A,l,A),D=k+144|0,F(A,A,M),F(A,A,G),S(u=g+96|0,A),F(u,u,H),u=o[g+132>>2],o[g+84>>2]=u-y,k=o[g+128>>2],o[g+80>>2]=k-c,l=o[g+124>>2],o[g+76>>2]=l-e,H=o[g+120>>2],o[g+72>>2]=H-t,M=o[g+116>>2],o[g+68>>2]=M-f,G=o[g+112>>2],o[g+64>>2]=G-r,w=o[g+108>>2],o[g+60>>2]=w-n,h=o[g+104>>2],o[g+56>>2]=h-i,s=o[g+100>>2],o[g+52>>2]=s-Q,p=o[g+96>>2],o[g+48>>2]=p-B,W(g,g+48|0);A:{if(!iA(g,32)){if(o[g+36>>2]=u+y,o[g+32>>2]=k+c,o[g+28>>2]=l+e,o[g+24>>2]=H+t,o[g+20>>2]=M+f,o[g+16>>2]=G+r,o[g+12>>2]=n+w,o[g+8>>2]=i+h,o[g+4>>2]=Q+s,o[g>>2]=B+p,W(u=g+288|0,g),!iA(u,32))break A;F(A,A,1392)}W(g+288|0,A),(1&E[g+288|0])==(a[I+31|0]>>>7|0)&&(o[A>>2]=0-o[A>>2],o[A+36>>2]=0-o[A+36>>2],o[A+32>>2]=0-o[A+32>>2],o[A+28>>2]=0-o[A+28>>2],o[A+24>>2]=0-o[A+24>>2],o[A+20>>2]=0-o[A+20>>2],o[A+16>>2]=0-o[A+16>>2],o[A+12>>2]=0-o[A+12>>2],o[A+8>>2]=0-o[A+8>>2],o[A+4>>2]=0-o[A+4>>2]),F(A+120|0,A,C),U=0}return D=g+320|0,U}function J(A,I,g){var C,B,Q,i,o,n,r,f,t,e,c,y,D=0,w=0,h=0,s=0,p=0,u=0,k=0,F=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0,N=0,Y=0,b=0,_=0,K=0;for(p=1634760805,w=C=a[0|g]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24,u=B=a[g+4|0]|a[g+5|0]<<8|a[g+6|0]<<16|a[g+7|0]<<24,k=Q=a[g+8|0]|a[g+9|0]<<8|a[g+10|0]<<16|a[g+11|0]<<24,F=i=a[g+12|0]|a[g+13|0]<<8|a[g+14|0]<<16|a[g+15|0]<<24,M=857760878,l=o=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,h=n=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,H=r=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,U=f=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,I=2036477234,s=t=a[g+16|0]|a[g+17|0]<<8|a[g+18|0]<<16|a[g+19|0]<<24,D=1797285236,J=e=a[g+28|0]|a[g+29|0]<<8|a[g+30|0]<<16|a[g+31|0]<<24,G=c=a[g+24|0]|a[g+25|0]<<8|a[g+26|0]<<16|a[g+27|0]<<24,g=y=a[g+20|0]|a[g+21|0]<<8|a[g+22|0]<<16|a[g+23|0]<<24;S=YA(w+M|0,7)^U,N=YA(S+M|0,9)^G,F=YA(g+p|0,7)^F,Y=YA(F+p|0,9)^H,_=YA(Y+F|0,13)^g,k=YA(D+s|0,7)^k,b=YA(k+D|0,9)^h,H=YA(k+b|0,13)^s,s=YA(b+H|0,18)^D,h=YA(I+l|0,7)^J,g=_^YA(s+h|0,7),G=N^YA(g+s|0,9),J=YA(g+G|0,13)^h,D=YA(G+J|0,18)^s,u=YA(I+h|0,9)^u,l=YA(u+h|0,13)^l,I=YA(l+u|0,18)^I,s=YA(I+S|0,7)^H,H=YA(s+I|0,9)^Y,U=YA(s+H|0,13)^S,I=YA(H+U|0,18)^I,S=YA(S+N|0,13)^w,w=YA(S+N|0,18)^M,l=YA(w+F|0,7)^l,h=YA(l+w|0,9)^b,F=YA(h+l|0,13)^F,M=YA(h+F|0,18)^w,p=YA(Y+_|0,18)^p,w=YA(p+k|0,7)^S,u=YA(w+p|0,9)^u,k=YA(w+u|0,13)^k,p=YA(u+k|0,18)^p,S=K>>>0<18,K=K+2|0,S;);D=D+1797285236|0,E[A+60|0]=D,E[A+61|0]=D>>>8,E[A+62|0]=D>>>16,E[A+63|0]=D>>>24,D=J+e|0,E[A+56|0]=D,E[A+57|0]=D>>>8,E[A+58|0]=D>>>16,E[A+59|0]=D>>>24,D=G+c|0,E[A+52|0]=D,E[A+53|0]=D>>>8,E[A+54|0]=D>>>16,E[A+55|0]=D>>>24,g=g+y|0,E[A+48|0]=g,E[A+49|0]=g>>>8,E[A+50|0]=g>>>16,E[A+51|0]=g>>>24,g=s+t|0,E[A+44|0]=g,E[A+45|0]=g>>>8,E[A+46|0]=g>>>16,E[A+47|0]=g>>>24,I=I+2036477234|0,E[A+40|0]=I,E[A+41|0]=I>>>8,E[A+42|0]=I>>>16,E[A+43|0]=I>>>24,I=U+f|0,E[A+36|0]=I,E[A+37|0]=I>>>8,E[A+38|0]=I>>>16,E[A+39|0]=I>>>24,I=H+r|0,E[A+32|0]=I,E[A+33|0]=I>>>8,E[A+34|0]=I>>>16,E[A+35|0]=I>>>24,I=h+n|0,E[A+28|0]=I,E[A+29|0]=I>>>8,E[A+30|0]=I>>>16,E[A+31|0]=I>>>24,I=l+o|0,E[A+24|0]=I,E[A+25|0]=I>>>8,E[A+26|0]=I>>>16,E[A+27|0]=I>>>24,I=M+857760878|0,E[A+20|0]=I,E[A+21|0]=I>>>8,E[A+22|0]=I>>>16,E[A+23|0]=I>>>24,I=F+i|0,E[A+16|0]=I,E[A+17|0]=I>>>8,E[A+18|0]=I>>>16,E[A+19|0]=I>>>24,I=k+Q|0,E[A+12|0]=I,E[A+13|0]=I>>>8,E[A+14|0]=I>>>16,E[A+15|0]=I>>>24,I=u+B|0,E[A+8|0]=I,E[A+9|0]=I>>>8,E[A+10|0]=I>>>16,E[A+11|0]=I>>>24,I=w+C|0,E[A+4|0]=I,E[A+5|0]=I>>>8,E[A+6|0]=I>>>16,E[A+7|0]=I>>>24,I=p+1634760805|0,E[0|A]=I,E[A+1|0]=I>>>8,E[A+2|0]=I>>>16,E[A+3|0]=I>>>24}function N(A,I,g,C){var B=0,Q=0,i=0,E=0,n=0,f=0,t=0,e=0,c=0,y=0,D=0,h=0,s=0,p=0,u=0,k=0,F=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0,N=0;if(D=o[A+36>>2],c=o[A+32>>2],y=o[A+28>>2],t=o[A+24>>2],e=o[A+20>>2],!C&g>>>0>=16|C)for(M=!a[A+80|0]<<24,s=o[A+4>>2],G=r(s,5),u=o[A+8>>2],S=r(u,5),F=o[A+12>>2],l=r(F,5),H=o[A+16>>2],k=r(H,5),p=o[A>>2];B=DA(i=((a[I+3|0]|a[I+4|0]<<8|a[I+5|0]<<16|a[I+6|0]<<24)>>>2&67108863)+t|0,0,F,0),n=w,e=(E=DA(t=(67108863&(a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24))+e|0,0,H,0))+B|0,B=w+n|0,B=E>>>0>e>>>0?B+1|0:B,n=DA(y=((a[I+6|0]|a[I+7|0]<<8|a[I+8|0]<<16|a[I+9|0]<<24)>>>4&67108863)+y|0,0,u,0),B=w+B|0,B=n>>>0>(e=n+e|0)>>>0?B+1|0:B,n=DA(c=((a[I+9|0]|a[I+10|0]<<8|a[I+11|0]<<16|a[I+12|0]<<24)>>>6|0)+c|0,0,s,0),B=w+B|0,B=n>>>0>(e=n+e|0)>>>0?B+1|0:B,n=DA(D=D+M+((a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24)>>>8)|0,0,p,0),B=w+B|0,U=e=n+e|0,e=n>>>0>e>>>0?B+1|0:B,B=DA(i,0,u,0),n=w,E=DA(t,0,F,0),Q=w+n|0,Q=(B=E+B|0)>>>0>>0?Q+1|0:Q,n=(E=DA(y,0,s,0))+B|0,B=w+Q|0,B=E>>>0>n>>>0?B+1|0:B,E=DA(c,0,p,0),B=w+B|0,B=E>>>0>(n=E+n|0)>>>0?B+1|0:B,E=DA(D,0,k,0),B=w+B|0,J=n=E+n|0,n=E>>>0>n>>>0?B+1|0:B,B=DA(i,0,s,0),f=w,E=(Q=DA(t,0,u,0))+B|0,B=w+f|0,B=Q>>>0>E>>>0?B+1|0:B,f=DA(y,0,p,0),Q=w+B|0,Q=(E=f+E|0)>>>0>>0?Q+1|0:Q,f=DA(c,0,k,0),B=w+Q|0,B=(E=f+E|0)>>>0>>0?B+1|0:B,f=DA(D,0,l,0),B=w+B|0,N=E=f+E|0,E=E>>>0>>0?B+1|0:B,B=DA(i,0,p,0),Q=w,f=(h=DA(t,0,s,0))+B|0,B=w+Q|0,B=f>>>0>>0?B+1|0:B,Q=DA(y,0,k,0),B=w+B|0,B=Q>>>0>(f=Q+f|0)>>>0?B+1|0:B,h=DA(c,0,l,0),Q=w+B|0,Q=(f=h+f|0)>>>0>>0?Q+1|0:Q,h=DA(D,0,S,0),B=w+Q|0,B=(f=h+f|0)>>>0>>0?B+1|0:B,h=f,f=B,B=DA(i,0,k,0),Q=w,i=(t=DA(t,0,p,0))+B|0,B=w+Q|0,B=i>>>0>>0?B+1|0:B,t=DA(y,0,l,0),B=w+B|0,B=(i=t+i|0)>>>0>>0?B+1|0:B,t=DA(c,0,S,0),B=w+B|0,B=(i=t+i|0)>>>0>>0?B+1|0:B,t=DA(D,0,G,0),Q=w+B|0,Q=(i=t+i|0)>>>0>>0?Q+1|0:Q,t=i,B=f,B=(i=(y=(67108863&Q)<<6|i>>>26)+h|0)>>>0>>0?B+1|0:B,y=i,c=(67108863&B)<<6|i>>>26,B=E,B=(i=c+N|0)>>>0>>0?B+1|0:B,c=i,Q=n,D=B=(i=(67108863&B)<<6|i>>>26)+J|0,n=(67108863&(Q=B>>>0>>0?Q+1|0:Q))<<6|B>>>26,B=e,t=(67108863&y)+((B=r((67108863&((i=n+U|0)>>>0>>0?B+1|0:B))<<6|i>>>26,5)+(67108863&t)|0)>>>26|0)|0,y=67108863&c,c=67108863&D,D=67108863&i,e=67108863&B,I=I+16|0,!(C=C-(g>>>0<16)|0)&(g=g-16|0)>>>0>15|C;);o[A+20>>2]=e,o[A+36>>2]=D,o[A+32>>2]=c,o[A+28>>2]=y,o[A+24>>2]=t}function Y(A,I,g,C){A|=0,I|=0;var B=0;return B=-1,(C|=0)-65>>>0<4294967232|(g|=0)>>>0>64||(g&&I?(D=B=D-128|0,!I|((C&=255)-65&255)>>>0<=191|((g&=255)-65&255)>>>0<=191?(mA(),Q()):(MA(A- -64|0,0,293),E[A+56|0]=121,E[A+57|0]=33,E[A+58|0]=126,E[A+59|0]=19,E[A+60|0]=25,E[A+61|0]=205,E[A+62|0]=224,E[A+63|0]=91,E[A+48|0]=107,E[A+49|0]=189,E[A+50|0]=65,E[A+51|0]=251,E[A+52|0]=171,E[A+53|0]=217,E[A+54|0]=131,E[A+55|0]=31,E[A+40|0]=31,E[A+41|0]=108,E[A+42|0]=62,E[A+43|0]=43,E[A+44|0]=140,E[A+45|0]=104,E[A+46|0]=5,E[A+47|0]=155,E[A+32|0]=209,E[A+33|0]=130,E[A+34|0]=230,E[A+35|0]=173,E[A+36|0]=127,E[A+37|0]=82,E[A+38|0]=14,E[A+39|0]=81,E[A+24|0]=241,E[A+25|0]=54,E[A+26|0]=29,E[A+27|0]=95,E[A+28|0]=58,E[A+29|0]=245,E[A+30|0]=79,E[A+31|0]=165,E[A+16|0]=43,E[A+17|0]=248,E[A+18|0]=148,E[A+19|0]=254,E[A+20|0]=114,E[A+21|0]=243,E[A+22|0]=110,E[A+23|0]=60,E[A+8|0]=59,E[A+9|0]=167,E[A+10|0]=202,E[A+11|0]=132,E[A+12|0]=133,E[A+13|0]=174,E[A+14|0]=103,E[A+15|0]=187,C=-222443256^(g<<8|C),E[0|A]=C,E[A+1|0]=C>>>8,E[A+2|0]=C>>>16,E[A+3|0]=C>>>24,C=g>>>24^1779033703,E[A+4|0]=C,E[A+5|0]=C>>>8,E[A+6|0]=C>>>16,E[A+7|0]=C>>>24,MA(g+B|0,0,g<<24>>24>=0?128-g|0:0),g=HA(B,I,g),HA(A+96|0,g,128),I=128+(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)|0,E[A+352|0]=I,E[A+353|0]=I>>>8,E[A+354|0]=I>>>16,E[A+355|0]=I>>>24,$A(g,128),D=g+128|0)):(((I=255&C)-65&255)>>>0<=191&&(mA(),Q()),MA(A- -64|0,0,293),E[A+56|0]=121,E[A+57|0]=33,E[A+58|0]=126,E[A+59|0]=19,E[A+60|0]=25,E[A+61|0]=205,E[A+62|0]=224,E[A+63|0]=91,E[A+48|0]=107,E[A+49|0]=189,E[A+50|0]=65,E[A+51|0]=251,E[A+52|0]=171,E[A+53|0]=217,E[A+54|0]=131,E[A+55|0]=31,E[A+40|0]=31,E[A+41|0]=108,E[A+42|0]=62,E[A+43|0]=43,E[A+44|0]=140,E[A+45|0]=104,E[A+46|0]=5,E[A+47|0]=155,E[A+32|0]=209,E[A+33|0]=130,E[A+34|0]=230,E[A+35|0]=173,E[A+36|0]=127,E[A+37|0]=82,E[A+38|0]=14,E[A+39|0]=81,E[A+24|0]=241,E[A+25|0]=54,E[A+26|0]=29,E[A+27|0]=95,E[A+28|0]=58,E[A+29|0]=245,E[A+30|0]=79,E[A+31|0]=165,E[A+16|0]=43,E[A+17|0]=248,E[A+18|0]=148,E[A+19|0]=254,E[A+20|0]=114,E[A+21|0]=243,E[A+22|0]=110,E[A+23|0]=60,E[A+8|0]=59,E[A+9|0]=167,E[A+10|0]=202,E[A+11|0]=132,E[A+12|0]=133,E[A+13|0]=174,E[A+14|0]=103,E[A+15|0]=187,I^=-222443256,E[0|A]=I,E[A+1|0]=I>>>8,E[A+2|0]=I>>>16,E[A+3|0]=I>>>24,E[A+4|0]=103,E[A+5|0]=230,E[A+6|0]=9,E[A+7|0]=106),B=0),0|B}function b(A,I,g){var C,B,Q,i,E,a,n,r,f,t,e,c=0,y=0,D=0,w=0,h=0,s=0,p=0,u=0,k=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0,N=0,Y=0,b=0;c=o[I+40>>2],y=o[I+4>>2],w=o[I+44>>2],h=o[I+8>>2],s=o[I+48>>2],p=o[I+12>>2],u=o[I+52>>2],k=o[I+16>>2],l=o[I+56>>2],S=o[I+20>>2],H=o[I+60>>2],M=o[I+24>>2],G=o[(D=I- -64|0)>>2],U=o[I+28>>2],J=o[I+68>>2],N=o[I+32>>2],Y=o[I+72>>2],b=o[I>>2],o[A+36>>2]=o[I+36>>2]+o[I+76>>2],o[A+32>>2]=N+Y,o[A+28>>2]=U+J,o[A+24>>2]=M+G,o[A+20>>2]=S+H,o[A+16>>2]=k+l,o[A+12>>2]=p+u,o[A+8>>2]=h+s,o[A+4>>2]=y+w,o[A>>2]=c+b,w=o[I+40>>2],c=o[I+4>>2],h=o[I+44>>2],s=o[I+8>>2],p=o[I+48>>2],u=o[I+12>>2],k=o[I+52>>2],l=o[I+16>>2],S=o[I+56>>2],H=o[I+20>>2],M=o[I+60>>2],G=o[I+24>>2],D=o[D>>2],y=o[I+28>>2],U=o[I+68>>2],J=o[I+32>>2],N=o[I+72>>2],Y=o[I>>2],o[A+76>>2]=o[I+76>>2]-o[I+36>>2],o[A+72>>2]=N-J,o[A+68>>2]=U-y,o[(y=A- -64|0)>>2]=D-G,o[A+60>>2]=M-H,o[A+56>>2]=S-l,o[A+52>>2]=k-u,o[A+48>>2]=p-s,o[A+44>>2]=h-c,o[(c=A+40|0)>>2]=w-Y,F(A+80|0,A,g+40|0),F(c,c,g),F(A+120|0,g+120|0,I+120|0),F(A,I+80|0,g+80|0),b=o[A+4>>2],Q=o[A+8>>2],i=o[A+12>>2],E=o[A+16>>2],a=o[A+20>>2],n=o[A+24>>2],r=o[A+28>>2],f=o[A+32>>2],t=o[A+36>>2],I=o[c>>2],g=o[A+80>>2],w=o[A+44>>2],h=o[A+84>>2],s=o[A+48>>2],p=o[A+88>>2],u=o[A+52>>2],k=o[A+92>>2],l=o[A+56>>2],S=o[A+96>>2],H=o[A+60>>2],M=o[A+100>>2],D=o[y>>2],G=o[A+104>>2],U=o[A+68>>2],J=o[A+108>>2],N=o[A+72>>2],Y=o[A+112>>2],e=o[A>>2],C=o[A+76>>2],B=o[A+116>>2],o[A+76>>2]=C+B,o[A+72>>2]=N+Y,o[A+68>>2]=U+J,o[y>>2]=D+G,o[A+60>>2]=H+M,o[A+56>>2]=l+S,o[A+52>>2]=u+k,o[A+48>>2]=s+p,o[A+44>>2]=w+h,o[c>>2]=I+g,o[A+36>>2]=B-C,o[A+32>>2]=Y-N,o[A+28>>2]=J-U,o[A+24>>2]=G-D,o[A+20>>2]=M-H,o[A+16>>2]=S-l,o[A+12>>2]=k-u,o[A+8>>2]=p-s,o[A+4>>2]=h-w,o[A>>2]=g-I,I=o[A+156>>2],g=t<<1,o[A+156>>2]=I+g,c=o[A+152>>2],y=f<<1,o[A+152>>2]=c+y,w=o[A+148>>2],h=r<<1,o[A+148>>2]=w+h,s=o[A+144>>2],p=n<<1,o[A+144>>2]=s+p,u=o[A+140>>2],k=a<<1,o[A+140>>2]=u+k,l=o[A+136>>2],S=E<<1,o[A+136>>2]=l+S,H=o[A+132>>2],M=i<<1,o[A+132>>2]=H+M,D=o[A+128>>2],G=Q<<1,o[A+128>>2]=D+G,U=o[A+124>>2],J=b<<1,o[A+124>>2]=U+J,N=o[A+120>>2],Y=e<<1,o[A+120>>2]=N+Y,o[A+112>>2]=y-c,o[A+108>>2]=h-w,o[A+104>>2]=p-s,o[A+100>>2]=k-u,o[A+96>>2]=S-l,o[A+92>>2]=M-H,o[A+88>>2]=G-D,o[A+84>>2]=J-U,o[A+80>>2]=Y-N,o[A+116>>2]=g-I}function _(A,I,g){var C,B,Q,i,E,a,n,r,f,t,e,c=0,y=0,D=0,w=0,h=0,s=0,p=0,u=0,k=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0,N=0,Y=0,b=0;c=o[I+40>>2],y=o[I+4>>2],w=o[I+44>>2],h=o[I+8>>2],s=o[I+48>>2],p=o[I+12>>2],u=o[I+52>>2],k=o[I+16>>2],l=o[I+56>>2],S=o[I+20>>2],H=o[I+60>>2],M=o[I+24>>2],G=o[(D=I- -64|0)>>2],U=o[I+28>>2],J=o[I+68>>2],N=o[I+32>>2],Y=o[I+72>>2],b=o[I>>2],o[A+36>>2]=o[I+36>>2]+o[I+76>>2],o[A+32>>2]=N+Y,o[A+28>>2]=U+J,o[A+24>>2]=M+G,o[A+20>>2]=S+H,o[A+16>>2]=k+l,o[A+12>>2]=p+u,o[A+8>>2]=h+s,o[A+4>>2]=y+w,o[A>>2]=c+b,w=o[I+40>>2],c=o[I+4>>2],h=o[I+44>>2],s=o[I+8>>2],p=o[I+48>>2],u=o[I+12>>2],k=o[I+52>>2],l=o[I+16>>2],S=o[I+56>>2],H=o[I+20>>2],M=o[I+60>>2],G=o[I+24>>2],D=o[D>>2],y=o[I+28>>2],U=o[I+68>>2],J=o[I+32>>2],N=o[I+72>>2],Y=o[I>>2],o[A+76>>2]=o[I+76>>2]-o[I+36>>2],o[A+72>>2]=N-J,o[A+68>>2]=U-y,o[(y=A- -64|0)>>2]=D-G,o[A+60>>2]=M-H,o[A+56>>2]=S-l,o[A+52>>2]=k-u,o[A+48>>2]=p-s,o[A+44>>2]=h-c,o[(c=A+40|0)>>2]=w-Y,F(A+80|0,A,g),F(c,c,g+40|0),F(A+120|0,g+120|0,I+120|0),F(A,I+80|0,g+80|0),b=o[A+4>>2],Q=o[A+8>>2],i=o[A+12>>2],E=o[A+16>>2],a=o[A+20>>2],n=o[A+24>>2],r=o[A+28>>2],f=o[A+32>>2],t=o[A+36>>2],I=o[c>>2],g=o[A+80>>2],w=o[A+44>>2],h=o[A+84>>2],s=o[A+48>>2],p=o[A+88>>2],u=o[A+52>>2],k=o[A+92>>2],l=o[A+56>>2],S=o[A+96>>2],H=o[A+60>>2],M=o[A+100>>2],D=o[y>>2],G=o[A+104>>2],U=o[A+68>>2],J=o[A+108>>2],N=o[A+72>>2],Y=o[A+112>>2],e=o[A>>2],C=o[A+76>>2],B=o[A+116>>2],o[A+76>>2]=C+B,o[A+72>>2]=N+Y,o[A+68>>2]=U+J,o[y>>2]=D+G,o[A+60>>2]=H+M,o[A+56>>2]=l+S,o[A+52>>2]=u+k,o[A+48>>2]=s+p,o[A+44>>2]=w+h,o[c>>2]=I+g,o[A+36>>2]=B-C,o[A+32>>2]=Y-N,o[A+28>>2]=J-U,o[A+24>>2]=G-D,o[A+20>>2]=M-H,o[A+16>>2]=S-l,o[A+12>>2]=k-u,o[A+8>>2]=p-s,o[A+4>>2]=h-w,o[A>>2]=g-I,I=t<<1,g=o[A+156>>2],o[A+156>>2]=I-g,c=f<<1,y=o[A+152>>2],o[A+152>>2]=c-y,w=r<<1,h=o[A+148>>2],o[A+148>>2]=w-h,s=n<<1,p=o[A+144>>2],o[A+144>>2]=s-p,u=a<<1,k=o[A+140>>2],o[A+140>>2]=u-k,l=E<<1,S=o[A+136>>2],o[A+136>>2]=l-S,H=i<<1,M=o[A+132>>2],o[A+132>>2]=H-M,D=Q<<1,G=o[A+128>>2],o[A+128>>2]=D-G,U=b<<1,J=o[A+124>>2],o[A+124>>2]=U-J,N=e<<1,Y=o[A+120>>2],o[A+120>>2]=N-Y,o[A+112>>2]=c+y,o[A+108>>2]=w+h,o[A+104>>2]=s+p,o[A+100>>2]=u+k,o[A+96>>2]=l+S,o[A+92>>2]=H+M,o[A+88>>2]=D+G,o[A+84>>2]=U+J,o[A+80>>2]=N+Y,o[A+116>>2]=I+g}function K(A,I,g){var C,B,Q,i,E,a,n,r,f,t,e,c=0,y=0,D=0,w=0,h=0,s=0,p=0,u=0,k=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0,N=0,Y=0,b=0;c=o[I+40>>2],y=o[I+4>>2],w=o[I+44>>2],h=o[I+8>>2],s=o[I+48>>2],p=o[I+12>>2],u=o[I+52>>2],k=o[I+16>>2],l=o[I+56>>2],S=o[I+20>>2],H=o[I+60>>2],M=o[I+24>>2],G=o[(D=I- -64|0)>>2],U=o[I+28>>2],J=o[I+68>>2],N=o[I+32>>2],Y=o[I+72>>2],b=o[I>>2],o[A+36>>2]=o[I+36>>2]+o[I+76>>2],o[A+32>>2]=N+Y,o[A+28>>2]=U+J,o[A+24>>2]=M+G,o[A+20>>2]=S+H,o[A+16>>2]=k+l,o[A+12>>2]=p+u,o[A+8>>2]=h+s,o[A+4>>2]=y+w,o[A>>2]=c+b,w=o[I+40>>2],c=o[I+4>>2],h=o[I+44>>2],s=o[I+8>>2],p=o[I+48>>2],u=o[I+12>>2],k=o[I+52>>2],l=o[I+16>>2],S=o[I+56>>2],H=o[I+20>>2],M=o[I+60>>2],G=o[I+24>>2],D=o[D>>2],y=o[I+28>>2],U=o[I+68>>2],J=o[I+32>>2],N=o[I+72>>2],Y=o[I>>2],o[A+76>>2]=o[I+76>>2]-o[I+36>>2],o[A+72>>2]=N-J,o[A+68>>2]=U-y,o[(y=A- -64|0)>>2]=D-G,o[A+60>>2]=M-H,o[A+56>>2]=S-l,o[A+52>>2]=k-u,o[A+48>>2]=p-s,o[A+44>>2]=h-c,o[(c=A+40|0)>>2]=w-Y,F(A+80|0,A,g),F(c,c,g+40|0),F(A+120|0,g+80|0,I+120|0),b=o[I+80>>2],Q=o[I+84>>2],i=o[I+88>>2],E=o[I+92>>2],a=o[I+96>>2],n=o[I+100>>2],r=o[I+104>>2],f=o[I+108>>2],t=o[I+112>>2],e=o[I+116>>2],I=o[c>>2],g=o[A+80>>2],w=o[A+44>>2],h=o[A+84>>2],s=o[A+48>>2],p=o[A+88>>2],u=o[A+52>>2],k=o[A+92>>2],l=o[A+56>>2],S=o[A+96>>2],H=o[A+60>>2],M=o[A+100>>2],D=o[y>>2],G=o[A+104>>2],U=o[A+68>>2],J=o[A+108>>2],N=o[A+72>>2],Y=o[A+112>>2],C=o[A+76>>2],B=o[A+116>>2],o[A+76>>2]=C+B,o[A+72>>2]=N+Y,o[A+68>>2]=U+J,o[y>>2]=D+G,o[A+60>>2]=H+M,o[A+56>>2]=l+S,o[A+52>>2]=u+k,o[A+48>>2]=s+p,o[A+44>>2]=w+h,o[c>>2]=I+g,o[A+36>>2]=B-C,o[A+32>>2]=Y-N,o[A+28>>2]=J-U,o[A+24>>2]=G-D,o[A+20>>2]=M-H,o[A+16>>2]=S-l,o[A+12>>2]=k-u,o[A+8>>2]=p-s,o[A+4>>2]=h-w,o[A>>2]=g-I,I=e<<1,g=o[A+156>>2],o[A+156>>2]=I-g,c=t<<1,y=o[A+152>>2],o[A+152>>2]=c-y,w=f<<1,h=o[A+148>>2],o[A+148>>2]=w-h,s=r<<1,p=o[A+144>>2],o[A+144>>2]=s-p,u=n<<1,k=o[A+140>>2],o[A+140>>2]=u-k,l=a<<1,S=o[A+136>>2],o[A+136>>2]=l-S,H=E<<1,M=o[A+132>>2],o[A+132>>2]=H-M,D=i<<1,G=o[A+128>>2],o[A+128>>2]=D-G,U=Q<<1,J=o[A+124>>2],o[A+124>>2]=U-J,N=b<<1,Y=o[A+120>>2],o[A+120>>2]=N-Y,o[A+112>>2]=c+y,o[A+108>>2]=w+h,o[A+104>>2]=s+p,o[A+100>>2]=u+k,o[A+96>>2]=l+S,o[A+92>>2]=H+M,o[A+88>>2]=D+G,o[A+84>>2]=U+J,o[A+80>>2]=N+Y,o[A+116>>2]=I+g}function P(A,I){var g,C,B,Q,i,E,n,r,f,t,e,c,y,D=0,h=0,s=0,p=0,u=0,k=0,F=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0;c=a[I+31|0],g=a[I+30|0],C=a[I+29|0],B=a[I+6|0],Q=a[I+5|0],i=a[I+4|0],E=a[I+9|0],n=a[I+8|0],r=a[I+7|0],H=a[I+12|0],M=a[I+11|0],f=a[I+10|0],t=a[I+15|0],G=a[I+14|0],e=a[I+13|0],F=a[I+28|0],S=a[I+27|0],l=a[I+26|0],k=a[I+25|0],p=a[I+24|0],s=a[I+23|0],y=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,u=(D=a[I+21|0])<<15,D=h=D>>>17|0,J=u,h=(u=a[I+20|0])>>>25|0,u=J|u<<7,U=D|h,D=(h=a[I+22|0])>>>9|0,u|=h<<23,D|=U,h=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,I=0,J=h,h=(33554431&(I=(U=h+16777216|0)>>>0<16777216?1:I))<<7|U>>>25,I=(I>>>25|0)+D|0,h=(D=u=h+u|0)>>>0>>0?I+1|0:I,I=(u=D+33554432|0)>>>0<33554432?h+1|0:h,o[A+24>>2]=D-(-67108864&u),h=(D=s>>>27|0)|p>>>19|k>>>11,D=s=(p=k<<21|(s=p<<13|s<<5))+(D=(67108863&(D=I))<<6|u>>>26)|0,I=h,h=(s=p+16777216|0)>>>0<16777216?I+1|0:I,o[A+28>>2]=D-(1040187392&s),D=(D=S>>>20|l>>>28|F>>>12)+(h=(I=h)>>>25|0)|0,I=(h=s=(I=(33554431&I)<<7|s>>>25)+(S<<12|l<<4|F<<20)|0)>>>0>>0?D+1|0:D,s=(F=h+33554432|0)>>>0<33554432?I+1|0:I,o[A+32>>2]=h-(-67108864&F),D=(I=H>>>13|0)|(h=M>>>21|f>>>29),I=(D=(S=16777216+(H=M<<11|f<<3|H<<19)|0)>>>0<16777216?D+1|0:D)>>>25|0,D=(h=p=G<<10|e<<2|t<<18)+(p=(33554431&D)<<7|S>>>25)|0,h=I+(k=G>>>22|e>>>30|t>>>14)|0,I=D>>>0

>>0?h+1|0:h,p=I=(67108863&(I=(h=D+33554432|0)>>>0<33554432?I+1|0:I))<<6|h>>>26,I=I+(l=J-(-33554432&U)|0)|0,o[A+20>>2]=I,o[A+16>>2]=D-(-67108864&h),h=Q>>>18|i>>>26|B>>>10,D=(h=(l=16777216+(M=Q<<14|i<<6|B<<22)|0)>>>0<16777216?h+1|0:h)>>>25|0,h=(I=p=n<<13|r<<5|E<<21)+(p=(33554431&h)<<7|l>>>25)|0,I=D+(k=n>>>19|r>>>27|E>>>11)|0,I=h>>>0

>>0?I+1|0:I,D=(k=h+33554432|0)>>>0<33554432?I+1|0:I,o[A+8>>2]=h-(-67108864&k),F=(s=(67108863&s)<<6|F>>>26)+(G=c<<18&33292288|g<<10|C<<2)|0,I=h=g>>>22|C>>>30,h=(s=G+16777216|0)>>>0<16777216?I+1|0:I,o[A+36>>2]=F-(33554432&s),D=H+((67108863&D)<<6|k>>>26)|0,o[A+12>>2]=D-(234881024&S),p=M-(2113929216&l)|0,D=DA((33554431&(I=h))<<7|s>>>25,h=I>>>25|0,19,0),I=w,D=D>>>0>(h=D+y|0)>>>0?I+1|0:I,s=D=(67108863&(D=(I=h+33554432|0)>>>0<33554432?D+1|0:D))<<6|I>>>26,D=D+p|0,o[A+4>>2]=D,o[A>>2]=h-(-67108864&I)}function v(A,I){var g,C,B,Q=0,i=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,w=0,h=0,s=0;for(D=g=D-480|0;i=(n=g+288|0)+(Q<<1)|0,c=a[I+Q|0],E[i+1|0]=c>>>4,E[0|i]=15&c,n=n+((i=1|Q)<<1)|0,i=a[I+i|0],E[n+1|0]=i>>>4,E[0|n]=15&i,32!=(0|(Q=Q+2|0)););for(I=0;Q=8+(n=(Q=I)+a[0|(I=(g+288|0)+r|0)]|0)|0,E[0|I]=n-(240&Q),Q=8+(n=a[I+1|0]+(Q<<24>>24>>4)|0)|0,E[I+1|0]=n-(240&Q),Q=8+(n=a[I+2|0]+(Q<<24>>24>>4)|0)|0,E[I+2|0]=n-(240&Q),I=Q<<24>>24>>4,63!=(0|(r=r+3|0)););for(E[g+351|0]=a[g+351|0]+I,o[A+32>>2]=0,o[A+36>>2]=0,o[A+24>>2]=0,o[A+28>>2]=0,o[A+16>>2]=0,o[A+20>>2]=0,o[A+8>>2]=0,o[A+12>>2]=0,o[A>>2]=0,o[A+4>>2]=0,o[A+44>>2]=0,o[A+48>>2]=0,o[(c=A+40|0)>>2]=1,o[A+52>>2]=0,o[A+56>>2]=0,o[A+60>>2]=0,o[A+64>>2]=0,o[A+68>>2]=0,o[A+72>>2]=0,o[A+76>>2]=0,o[A+80>>2]=1,MA(A+84|0,0,76),C=A+120|0,B=A+80|0,I=g+208|0,n=g+168|0,r=g+248|0,Q=1;q(f=g+8|0,Q>>>1|0,E[(g+288|0)+Q|0]),K(i=g+128|0,A,f),F(A,i,r),F(c,n,I),F(B,I,r),F(C,i,n),i=Q>>>0<62,Q=Q+2|0,i;);for(Q=o[A+8>>2],i=o[A+12>>2],f=o[A+16>>2],t=o[A+20>>2],y=o[A+24>>2],w=o[A+28>>2],e=o[A>>2],h=o[A+4>>2],s=o[A+36>>2],o[g+392>>2]=o[A+32>>2],o[g+396>>2]=s,o[g+384>>2]=y,o[g+388>>2]=w,o[g+376>>2]=f,o[g+380>>2]=t,o[g+368>>2]=Q,o[g+372>>2]=i,o[g+360>>2]=e,o[g+364>>2]=h,Q=o[A+40>>2],i=o[A+44>>2],f=o[A+48>>2],t=o[A+52>>2],y=o[A+56>>2],w=o[A+60>>2],h=o[(e=A- -64|0)>>2],e=o[e+4>>2],s=o[A+76>>2],o[g+432>>2]=o[A+72>>2],o[g+436>>2]=s,o[g+424>>2]=h,o[g+428>>2]=e,o[g+416>>2]=y,o[g+420>>2]=w,o[g+408>>2]=f,o[g+412>>2]=t,o[g+400>>2]=Q,o[g+404>>2]=i,Q=o[A+80>>2],i=o[A+84>>2],f=o[A+88>>2],t=o[A+92>>2],y=o[A+96>>2],w=o[A+100>>2],e=o[A+104>>2],h=o[A+108>>2],s=o[A+116>>2],o[g+472>>2]=o[A+112>>2],o[g+476>>2]=s,o[g+464>>2]=e,o[g+468>>2]=h,o[g+456>>2]=y,o[g+460>>2]=w,o[g+448>>2]=f,o[g+452>>2]=t,o[g+440>>2]=Q,o[g+444>>2]=i,l(Q=g+128|0,i=g+360|0),F(i,Q,r),F(f=g+400|0,n,I),F(t=g+440|0,I,r),l(Q,i),F(i,Q,r),F(f,n,I),F(t,I,r),l(Q,i),F(i,Q,r),F(f,n,I),F(t,I,r),l(Q,i),F(A,Q,r),F(c,n,I),F(B,I,r),F(C,Q,n),Q=0;q(f=g+8|0,Q>>>1|0,E[(g+288|0)+Q|0]),K(i=g+128|0,A,f),F(A,i,r),F(c,n,I),F(B,I,r),F(C,i,n),i=Q>>>0<62,Q=Q+2|0,i;);D=g+480|0}function m(A,I,g,C){var B,Q=0,i=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,w=0,h=0,s=0;if(D=B=D-704|0,g|C)if(Q=(C<<3|g>>>29)+(i=n=o[A+76>>2])|0,f=(t=o[A+72>>2])+(r=g<<3)|0,o[A+72>>2]=f,Q=r>>>0>f>>>0?Q+1|0:Q,o[A+76>>2]=Q,n=o[4+(r=A- -64|0)>>2],n=(e=Q=(0|Q)==(0|i)&f>>>0>>0|Q>>>0>>0)>>>0>(Q=Q+o[r>>2]|0)>>>0?n+1|0:n,f=(e=C>>>29|0)+Q|0,Q=n,o[r>>2]=f,o[r+4>>2]=f>>>0>>0?Q+1|0:Q,(0|(n=e=0-((Q=0)+((r=127&((7&i)<<29|t>>>3))>>>0>128)|0)|0))==(0|C)&g>>>0>=(f=128-r|0)>>>0|C>>>0>n>>>0){if(i=0,n=0,!Q&(127^r)>>>0>=3|Q)for(s=252&f,t=A+80|0;E[(Q=i+r|0)+t|0]=a[I+i|0],E[t+(r+(Q=1|i)|0)|0]=a[I+Q|0],E[t+(r+(Q=2|i)|0)|0]=a[I+Q|0],E[t+(r+(Q=3|i)|0)|0]=a[I+Q|0],Q=n,n=(i=i+4|0)>>>0<4?Q+1|0:Q,Q=y,y=Q=(w=w+4|0)>>>0<4?Q+1|0:Q,(0|w)!=(0|s)|(0|h)!=(0|Q););if(t=Q=0,Q|(y=3&f))for(;E[80+(A+(Q=i+r|0)|0)|0]=a[I+i|0],Q=n,n=(i=i+1|0)?Q:Q+1|0,Q=h,h=Q=(c=c+1|0)?Q:Q+1|0,(0|y)!=(0|c)|(0|t)!=(0|Q););if(p(A,A+80|0,B,i=B+640|0),I=I+f|0,!(C=C-((g>>>0>>0)+e|0)|0)&(g=g-f|0)>>>0>127|C)for(;p(A,I,B,i),I=I+128|0,!(C=C-(g>>>0<128)|0)&(g=g-128|0)>>>0>127|C;);if(g|C){if(w=3&g,f=0,c=0,h=0,i=0,n=0,!C&g>>>0>=4|C)for(r=-4&g,t=C,y=A+80|0,g=0,C=0;E[i+y|0]=a[I+i|0],E[(Q=1|i)+y|0]=a[I+Q|0],E[(Q=2|i)+y|0]=a[I+Q|0],E[(Q=3|i)+y|0]=a[I+Q|0],Q=n,n=(i=i+4|0)>>>0<4?Q+1|0:Q,Q=C,C=Q=(g=g+4|0)>>>0<4?Q+1|0:Q,(0|g)!=(0|r)|(0|t)!=(0|Q););if(f|w)for(;E[80+(A+i|0)|0]=a[I+i|0],n=(i=i+1|0)?n:n+1|0,Q=h,h=Q=(c=c+1|0)?Q:Q+1|0,(0|c)!=(0|w)|(0|f)!=(0|Q););}$A(B,704)}else{if(i=0,n=0,!C&g>>>0>=4|C)for(f=-4&g,t=C,C=A+80|0;E[C+(Q=i+r|0)|0]=a[I+i|0],E[C+(e=r+(Q=1|i)|0)|0]=a[I+Q|0],E[C+(e=r+(Q=2|i)|0)|0]=a[I+Q|0],E[C+(e=r+(Q=3|i)|0)|0]=a[I+Q|0],Q=n,n=(i=i+4|0)>>>0<4?Q+1|0:Q,Q=y,y=Q=(w=w+4|0)>>>0<4?Q+1|0:Q,(0|f)!=(0|w)|(0|t)!=(0|Q););if((g&=3)|(C=0))for(;E[80+(A+(Q=i+r|0)|0)|0]=a[I+i|0],n=(i=i+1|0)?n:n+1|0,Q=h,h=Q=(c=c+1|0)?Q:Q+1|0,(0|g)!=(0|c)|(0|C)!=(0|Q););}return D=B+704|0,0}function d(A,I,g){var C=0,B=0,Q=0,i=0,o=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,w=0,h=0,s=0,p=0,u=0,k=0,F=0;for(B=2036477234,i=857760878,C=1634760805,n=1797285236,Q=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,t=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,o=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,e=a[g+28|0]|a[g+29|0]<<8|a[g+30|0]<<16|a[g+31|0]<<24,r=a[g+24|0]|a[g+25|0]<<8|a[g+26|0]<<16|a[g+27|0]<<24,p=a[g+20|0]|a[g+21|0]<<8|a[g+22|0]<<16|a[g+23|0]<<24,c=a[g+16|0]|a[g+17|0]<<8|a[g+18|0]<<16|a[g+19|0]<<24,y=a[g+12|0]|a[g+13|0]<<8|a[g+14|0]<<16|a[g+15|0]<<24,D=a[g+8|0]|a[g+9|0]<<8|a[g+10|0]<<16|a[g+11|0]<<24,w=a[g+4|0]|a[g+5|0]<<8|a[g+6|0]<<16|a[g+7|0]<<24,I=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,g=a[0|g]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24;f=g,g=YA((h=I)^(I=g+C|0),16),f=c=YA(f^(C=g+c|0),12),u=YA((h=I+c|0)^g,8),I=YA(f^(c=u+C|0),7),C=y,y=YA((g=n+y|0)^Q,16),C=YA(C^(e=y+e|0),12),Q=D,n=YA((B=B+D|0)^t,16),Q=YA(Q^(D=n+r|0),12),r=YA((B=Q+B|0)^n,8),g=YA(r^(n=I+(s=g+C|0)|0),16),t=YA((i=i+w|0)^o,16),w=YA((o=t+p|0)^w,12),f=I,I=YA((i=i+w|0)^t,8),f=YA(f^(o=g+(k=I+o|0)|0),12),t=YA(g^(n=f+n|0),8),g=YA((p=t+o|0)^f,7),f=B,B=C,s=YA(y^s,8),B=YA(B^(C=s+e|0),7),y=YA((o=f+B|0)^I,16),e=YA((I=y+c|0)^B,12),o=YA(y^(B=e+o|0),8),y=YA((c=I+o|0)^e,7),I=YA((I=Q)^(Q=r+D|0),7),D=YA((i=I+i|0)^u,16),r=YA(I^(C=D+C|0),12),I=YA(D^(i=r+i|0),8),D=YA((e=C+I|0)^r,7),f=Q,C=YA(w^k,7),r=YA((Q=C+h|0)^s,16),h=YA(C^(w=f+r|0),12),Q=YA(r^(C=h+Q|0),8),w=YA((r=w+Q|0)^h,7),10!=(0|(F=F+1|0)););E[0|A]=C,E[A+1|0]=C>>>8,E[A+2|0]=C>>>16,E[A+3|0]=C>>>24,E[A+28|0]=Q,E[A+29|0]=Q>>>8,E[A+30|0]=Q>>>16,E[A+31|0]=Q>>>24,E[A+24|0]=t,E[A+25|0]=t>>>8,E[A+26|0]=t>>>16,E[A+27|0]=t>>>24,E[A+20|0]=o,E[A+21|0]=o>>>8,E[A+22|0]=o>>>16,E[A+23|0]=o>>>24,E[A+16|0]=I,E[A+17|0]=I>>>8,E[A+18|0]=I>>>16,E[A+19|0]=I>>>24,E[A+12|0]=n,E[A+13|0]=n>>>8,E[A+14|0]=n>>>16,E[A+15|0]=n>>>24,E[A+8|0]=B,E[A+9|0]=B>>>8,E[A+10|0]=B>>>16,E[A+11|0]=B>>>24,E[A+4|0]=i,E[A+5|0]=i>>>8,E[A+6|0]=i>>>16,E[A+7|0]=i>>>24}function L(A,I,g){var C=0,B=0,Q=0,i=0,o=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,w=0,h=0,s=0,p=0,u=0,k=0,F=0;for(C=1797285236,r=2036477234,f=857760878,B=1634760805,Q=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,o=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,i=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,h=a[g+28|0]|a[g+29|0]<<8|a[g+30|0]<<16|a[g+31|0]<<24,w=a[g+24|0]|a[g+25|0]<<8|a[g+26|0]<<16|a[g+27|0]<<24,s=20,y=a[g+20|0]|a[g+21|0]<<8|a[g+22|0]<<16|a[g+23|0]<<24,D=a[g+16|0]|a[g+17|0]<<8|a[g+18|0]<<16|a[g+19|0]<<24,t=a[g+12|0]|a[g+13|0]<<8|a[g+14|0]<<16|a[g+15|0]<<24,e=a[g+8|0]|a[g+9|0]<<8|a[g+10|0]<<16|a[g+11|0]<<24,c=a[g+4|0]|a[g+5|0]<<8|a[g+6|0]<<16|a[g+7|0]<<24,I=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,g=a[0|g]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24;n=YA(g+f|0,7)^Q,p=YA(n+f|0,9)^w,t=YA(B+y|0,7)^t,u=YA(t+B|0,9)^o,k=YA(u+t|0,13)^y,e=YA(C+D|0,7)^e,i=YA(e+C|0,9)^i,o=YA(i+e|0,13)^D,C=YA(i+o|0,18)^C,Q=YA(I+r|0,7)^h,y=k^YA(C+Q|0,7),w=p^YA(y+C|0,9),h=YA(y+w|0,13)^Q,C=YA(w+h|0,18)^C,c=YA(Q+r|0,9)^c,F=YA(c+Q|0,13)^I,I=YA(F+c|0,18)^r,D=YA(I+n|0,7)^o,o=YA(D+I|0,9)^u,Q=YA(o+D|0,13)^n,r=YA(Q+o|0,18)^I,n=YA(n+p|0,13)^g,g=YA(n+p|0,18)^f,I=YA(g+t|0,7)^F,i=YA(I+g|0,9)^i,t=YA(I+i|0,13)^t,f=YA(i+t|0,18)^g,B=YA(u+k|0,18)^B,g=YA(B+e|0,7)^n,c=YA(g+B|0,9)^c,e=YA(g+c|0,13)^e,B=YA(c+e|0,18)^B,n=s>>>0>2,s=s-2|0,n;);return E[0|A]=B,E[A+1|0]=B>>>8,E[A+2|0]=B>>>16,E[A+3|0]=B>>>24,E[A+28|0]=Q,E[A+29|0]=Q>>>8,E[A+30|0]=Q>>>16,E[A+31|0]=Q>>>24,E[A+24|0]=o,E[A+25|0]=o>>>8,E[A+26|0]=o>>>16,E[A+27|0]=o>>>24,E[A+20|0]=i,E[A+21|0]=i>>>8,E[A+22|0]=i>>>16,E[A+23|0]=i>>>24,E[A+16|0]=I,E[A+17|0]=I>>>8,E[A+18|0]=I>>>16,E[A+19|0]=I>>>24,E[A+12|0]=C,E[A+13|0]=C>>>8,E[A+14|0]=C>>>16,E[A+15|0]=C>>>24,E[A+8|0]=r,E[A+9|0]=r>>>8,E[A+10|0]=r>>>16,E[A+11|0]=r>>>24,E[A+4|0]=f,E[A+5|0]=f>>>8,E[A+6|0]=f>>>16,E[A+7|0]=f>>>24,0}function R(A,I,g,C,B,i,E){var a=0,n=0,r=0,f=0,t=0,e=0,c=0;if(I-65>>>0<4294967232|E>>>0>64)A=-1;else{e=a=D,D=a=a-512&-64;A:{I:if(!(!(!(C|B)|g)|!A|((n=255&I)-65&255)>>>0<=191|!(!(I=255&E)||i)|I>>>0>=65)){if(I){if(!i)break I;MA(a- -64|0,0,293),o[a+56>>2]=327033209,o[a+60>>2]=1541459225,o[a+48>>2]=-79577749,o[a+52>>2]=528734635,o[a+40>>2]=725511199,o[a+44>>2]=-1694144372,o[a+32>>2]=-1377402159,o[a+36>>2]=1359893119,o[a+24>>2]=1595750129,o[a+28>>2]=-1521486534,o[a+16>>2]=-23791573,o[a+20>>2]=1013904242,o[a+8>>2]=-2067093701,o[a+12>>2]=-1150833019,o[a>>2]=-222443256^(I<<8|n),o[a+4>>2]=I>>>24^1779033703,MA((E=a+384|0)+I|0,0,128-I|0),HA(E,i,I),HA(a+96|0,E,128),o[a+352>>2]=128,$A(E,128),I=128}else MA(a- -64|0,0,293),o[a+56>>2]=327033209,o[a+60>>2]=1541459225,o[a+48>>2]=-79577749,o[a+52>>2]=528734635,o[a+40>>2]=725511199,o[a+44>>2]=-1694144372,o[a+32>>2]=-1377402159,o[a+36>>2]=1359893119,o[a+24>>2]=1595750129,o[a+28>>2]=-1521486534,o[a+16>>2]=-23791573,o[a+20>>2]=1013904242,o[a+8>>2]=-2067093701,o[a+12>>2]=-1150833019,o[a>>2]=-222443256^n,o[a+4>>2]=1779033703,I=0;g:if(C|B)for(c=a+224|0,r=a+96|0;;){if(E=I+r|0,!B&C>>>0<=(i=256-I|0)>>>0){HA(E,g,C),o[a+352>>2]=C+o[a+352>>2];break g}if(HA(E,g,i),o[a+352>>2]=i+o[a+352>>2],f=I=o[a+68>>2],I=(t=(E=o[a+64>>2])+128|0)>>>0<128?I+1|0:I,o[a+64>>2]=t,o[a+68>>2]=I,I=o[a+76>>2],I=(f=E=-1==(0|f)&E>>>0>4294967167)>>>0>(E=E+o[a+72>>2]|0)>>>0?I+1|0:I,o[a+72>>2]=E,o[a+76>>2]=I,h(a,r),HA(r,c,128),I=o[a+352>>2]-128|0,o[a+352>>2]=I,g=g+i|0,!((B=B-(C>>>0>>0)|0)|(C=C-i|0)))break}G(a,A,n),D=e;break A}mA(),Q()}A=0}return A}function x(A,I,g,C){var B=0,Q=0,i=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,w=0;A:{if((i=o[A+56>>2])|(B=o[A+60>>2])){if(c=Q=16-i|0,r=(Q=(0|(n=0-((i>>>0>16)+B|0)|0))==(0|C)&g>>>0>Q>>>0|C>>>0>n>>>0)?c:g,c=Q=Q?n:C,Q|r){if(Q=0,i=0,!c&r>>>0>=4|c)for(f=-4&r,n=A- -64|0;B=Q+o[A+56>>2]|0,E[B+n|0]=a[I+Q|0],B=(y=1|Q)+o[A+56>>2]|0,E[B+n|0]=a[I+y|0],B=(y=2|Q)+o[A+56>>2]|0,E[B+n|0]=a[I+y|0],B=(y=3|Q)+o[A+56>>2]|0,E[B+n|0]=a[I+y|0],B=i,i=(Q=Q+4|0)>>>0<4?B+1|0:B,B=t,t=B=(e=e+4|0)>>>0<4?B+1|0:B,(0|e)!=(0|f)|(0|c)!=(0|B););if(n=B=0,B|(t=3&r))for(;e=Q+o[A+56>>2]|0,E[(A+e|0)- -64|0]=a[I+Q|0],i=(Q=Q+1|0)?i:i+1|0,B=w,w=B=(D=D+1|0)?B:B+1|0,(0|t)!=(0|D)|(0|n)!=(0|B););i=o[A+56>>2],B=o[A+60>>2]}if(B=B+c|0,B=(i=i+r|0)>>>0>>0?B+1|0:B,o[A+56>>2]=i,o[A+60>>2]=B,!B&i>>>0<16)break A;N(A,A- -64|0,16,0),o[A+56>>2]=0,o[A+60>>2]=0,g=(i=g)-r|0,C=C-((i>>>0>>0)+c|0)|0,I=I+r|0}if(!C&g>>>0>=16|C&&(N(A,I,i=-16&g,C),g&=15,C=0,I=I+i|0),g|C){if(D=0,w=0,Q=0,i=0,!C&g>>>0>=4|C)for(r=12&g,c=0,n=A- -64|0,e=0,t=0;B=Q+o[A+56>>2]|0,E[B+n|0]=a[I+Q|0],B=(f=1|Q)+o[A+56>>2]|0,E[B+n|0]=a[I+f|0],B=(f=2|Q)+o[A+56>>2]|0,E[B+n|0]=a[I+f|0],B=(f=3|Q)+o[A+56>>2]|0,E[B+n|0]=a[I+f|0],i=(Q=Q+4|0)>>>0<4?i+1|0:i,B=t,t=B=(e=e+4|0)>>>0<4?B+1|0:B,(0|r)!=(0|e)|(0|c)!=(0|B););if(n=B=0,B|(t=3&g))for(;B=Q+o[A+56>>2]|0,E[(A+B|0)- -64|0]=a[I+Q|0],i=(Q=Q+1|0)?i:i+1|0,B=w,w=B=(D=D+1|0)?B:B+1|0,(0|t)!=(0|D)|(0|n)!=(0|B););i=C+o[A+60>>2]|0,i=(I=g+o[A+56>>2]|0)>>>0>>0?i+1|0:i,o[A+56>>2]=I,o[A+60>>2]=i}}}function j(A,I,g){var C,B=0,Q=0,i=0,E=0,a=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,w=0,h=0,s=0,p=0,u=0,k=0;y=o[I+4>>2],B=o[A+4>>2],D=o[I+8>>2],Q=o[A+8>>2],w=o[I+12>>2],i=o[A+12>>2],h=o[I+16>>2],E=o[A+16>>2],s=o[I+20>>2],a=o[A+20>>2],p=o[I+24>>2],n=o[A+24>>2],e=o[I+28>>2],r=o[A+28>>2],u=o[I+32>>2],f=o[A+32>>2],k=o[I+36>>2],t=o[A+36>>2],g=0-g|0,c=o[A>>2],o[A>>2]=g&(c^o[I>>2])^c,o[A+36>>2]=t^g&(t^k),o[A+32>>2]=f^g&(f^u),o[A+28>>2]=r^g&(r^e),o[A+24>>2]=n^g&(n^p),o[A+20>>2]=a^g&(a^s),o[A+16>>2]=E^g&(E^h),o[A+12>>2]=i^g&(i^w),o[A+8>>2]=Q^g&(Q^D),o[A+4>>2]=B^g&(B^y),B=o[A+40>>2],y=o[I+40>>2],Q=o[A+44>>2],D=o[I+44>>2],i=o[A+48>>2],w=o[I+48>>2],E=o[A+52>>2],h=o[I+52>>2],a=o[A+56>>2],s=o[I+56>>2],n=o[A+60>>2],p=o[I+60>>2],r=o[(e=A- -64|0)>>2],u=o[I- -64>>2],f=o[A+68>>2],k=o[I+68>>2],t=o[A+72>>2],c=o[I+72>>2],C=o[A+76>>2],o[A+76>>2]=C^g&(o[I+76>>2]^C),o[A+72>>2]=t^g&(t^c),o[A+68>>2]=f^g&(f^k),o[e>>2]=r^g&(r^u),o[A+60>>2]=n^g&(n^p),o[A+56>>2]=a^g&(a^s),o[A+52>>2]=E^g&(E^h),o[A+48>>2]=i^g&(i^w),o[A+44>>2]=Q^g&(Q^D),o[A+40>>2]=B^g&(B^y),B=o[A+80>>2],y=o[I+80>>2],Q=o[A+84>>2],D=o[I+84>>2],i=o[A+88>>2],w=o[I+88>>2],E=o[A+92>>2],h=o[I+92>>2],a=o[A+96>>2],s=o[I+96>>2],n=o[A+100>>2],p=o[I+100>>2],r=o[A+104>>2],e=o[I+104>>2],f=o[A+108>>2],u=o[I+108>>2],t=o[A+112>>2],k=o[I+112>>2],c=o[I+116>>2],I=o[A+116>>2],o[A+116>>2]=g&(c^I)^I,o[A+112>>2]=t^g&(t^k),o[A+108>>2]=f^g&(f^u),o[A+104>>2]=r^g&(r^e),o[A+100>>2]=n^g&(n^p),o[A+96>>2]=a^g&(a^s),o[A+92>>2]=E^g&(E^h),o[A+88>>2]=i^g&(i^w),o[A+84>>2]=Q^g&(Q^D),o[A+80>>2]=B^g&(B^y)}function X(A,I){var g,C,B=0;for(D=g=D-192|0,S(C=g+144|0,I),S(B=g+96|0,C),S(B,B),F(B,I,B),F(C,C,B),S(I=g+48|0,C),F(B,B,I),S(I,B),S(I,I),S(I,I),S(I,I),S(I,I),F(B,I,B),S(I,B),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),F(I,I,B),S(g,I),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),F(I,g,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),F(B,I,B),S(I,B),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),F(I,I,B),S(g,I),I=1;S(g,g),100!=(0|(I=I+1|0)););F(I=g+48|0,g,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),F(B=g+96|0,I,B),S(B,B),S(B,B),S(B,B),S(B,B),S(B,B),F(A,B,g+144|0),D=g+192|0}function q(A,I,g){var C,B=0,Q=0,i=0,E=0,a=0,n=0,f=0,t=0;D=C=D-128|0,o[A>>2]=1,o[A+4>>2]=0,o[A+8>>2]=0,o[A+12>>2]=0,o[A+16>>2]=0,o[A+20>>2]=0,o[A+24>>2]=0,o[A+28>>2]=0,o[A+32>>2]=0,o[A+36>>2]=0,o[A+40>>2]=1,MA(A+44|0,0,76),j(A,B=r(I,960)+2704|0,(255&(1^(I=g-((g>>31&g)<<1)|0)))-1>>>31|0),j(A,B+120|0,(255&(2^I))-1>>>31|0),j(A,B+240|0,(255&(3^I))-1>>>31|0),j(A,B+360|0,(255&(4^I))-1>>>31|0),j(A,B+480|0,(255&(5^I))-1>>>31|0),j(A,B+600|0,(255&(6^I))-1>>>31|0),j(A,B+720|0,(255&(7^I))-1>>>31|0),j(A,B+840|0,(255&(8^I))-1>>>31|0),Q=o[A+40>>2],i=o[A+44>>2],E=o[A+48>>2],a=o[A+52>>2],n=o[A+56>>2],f=o[A+60>>2],t=o[(I=A- -64|0)>>2],B=o[I+4>>2],I=o[A+76>>2],o[C+40>>2]=o[A+72>>2],o[C+44>>2]=I,o[C+32>>2]=t,o[C+36>>2]=B,o[C+24>>2]=n,o[C+28>>2]=f,o[C+16>>2]=E,o[C+20>>2]=a,o[C+8>>2]=Q,o[C+12>>2]=i,Q=o[A+8>>2],i=o[A+12>>2],E=o[A+16>>2],a=o[A+20>>2],n=o[A+24>>2],f=o[A+28>>2],t=o[A>>2],B=o[A+4>>2],I=o[A+36>>2],o[C+80>>2]=o[A+32>>2],o[C+84>>2]=I,o[C+72>>2]=n,o[C+76>>2]=f,o[(I=C- -64|0)>>2]=E,o[I+4>>2]=a,o[C+56>>2]=Q,o[C+60>>2]=i,o[C+48>>2]=t,o[C+52>>2]=B,Q=o[A+80>>2],i=o[A+84>>2],E=o[A+88>>2],a=o[A+92>>2],n=o[A+96>>2],f=o[A+100>>2],t=o[A+104>>2],B=o[A+108>>2],I=o[A+112>>2],o[C+124>>2]=0-o[A+116>>2],o[C+120>>2]=0-I,o[C+116>>2]=0-B,o[C+112>>2]=0-t,o[C+108>>2]=0-f,o[C+104>>2]=0-n,o[C+100>>2]=0-a,o[C+96>>2]=0-E,o[C+92>>2]=0-i,o[C+88>>2]=0-Q,j(A,C+8|0,(128&g)>>>7|0),D=C+128|0}function z(A,I,g,C){var B=0,Q=0,i=0,o=0,n=0,r=0,f=0;if(g|C)A:for(f=A+224|0,n=A+96|0,Q=a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24;;){if(B=Q+n|0,!C&g>>>0<=(i=256-Q|0)>>>0){HA(B,I,g),I=(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)+g|0,E[A+352|0]=I,E[A+353|0]=I>>>8,E[A+354|0]=I>>>16,E[A+355|0]=I>>>24;break A}if(HA(B,I,i),B=(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)+i|0,E[A+352|0]=B,E[A+353|0]=B>>>8,E[A+354|0]=B>>>16,E[A+355|0]=B>>>24,r=Q=a[A+68|0]|a[A+69|0]<<8|a[A+70|0]<<16|a[A+71|0]<<24,Q=(o=128+(B=a[A+64|0]|a[A+65|0]<<8|a[A+66|0]<<16|a[A+67|0]<<24)|0)>>>0<128?Q+1|0:Q,E[A+64|0]=o,E[A+65|0]=o>>>8,E[A+66|0]=o>>>16,E[A+67|0]=o>>>24,E[A+68|0]=Q,E[A+69|0]=Q>>>8,E[A+70|0]=Q>>>16,E[A+71|0]=Q>>>24,Q=a[A+76|0]|a[A+77|0]<<8|a[A+78|0]<<16|a[A+79|0]<<24,Q=(r=B=-1==(0|r)&B>>>0>4294967167)>>>0>(B=B+(a[A+72|0]|a[A+73|0]<<8|a[A+74|0]<<16|a[A+75|0]<<24)|0)>>>0?Q+1|0:Q,E[A+72|0]=B,E[A+73|0]=B>>>8,E[A+74|0]=B>>>16,E[A+75|0]=B>>>24,E[A+76|0]=Q,E[A+77|0]=Q>>>8,E[A+78|0]=Q>>>16,E[A+79|0]=Q>>>24,h(A,n),HA(n,f,128),B=Q=(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)-128|0,E[A+352|0]=B,E[A+353|0]=B>>>8,E[A+354|0]=B>>>16,E[A+355|0]=B>>>24,I=I+i|0,!((C=C-(g>>>0>>0)|0)|(g=g-i|0)))break}return 0}function V(A,I){var g,C=0,B=0,Q=0,i=0,E=0,a=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,w=0,h=0,s=0,p=0;C=o[I+40>>2],B=o[I+4>>2],Q=o[I+44>>2],i=o[I+8>>2],E=o[I+48>>2],a=o[I+12>>2],n=o[I+52>>2],r=o[I+16>>2],f=o[I+56>>2],e=o[I+20>>2],c=o[I+60>>2],y=o[I+24>>2],D=o[(t=I- -64|0)>>2],w=o[I+28>>2],h=o[I+68>>2],s=o[I+32>>2],p=o[I+72>>2],g=o[I>>2],o[A+36>>2]=o[I+36>>2]+o[I+76>>2],o[A+32>>2]=s+p,o[A+28>>2]=w+h,o[A+24>>2]=y+D,o[A+20>>2]=e+c,o[A+16>>2]=r+f,o[A+12>>2]=a+n,o[A+8>>2]=i+E,o[A+4>>2]=B+Q,o[A>>2]=C+g,C=o[I+40>>2],B=o[I+4>>2],Q=o[I+44>>2],i=o[I+8>>2],E=o[I+48>>2],a=o[I+12>>2],n=o[I+52>>2],r=o[I+16>>2],f=o[I+56>>2],e=o[I+20>>2],c=o[I+60>>2],y=o[I+24>>2],t=o[t>>2],D=o[I+28>>2],w=o[I+68>>2],h=o[I+32>>2],s=o[I+72>>2],p=o[I>>2],o[A+76>>2]=o[I+76>>2]-o[I+36>>2],o[A+72>>2]=s-h,o[A+68>>2]=w-D,o[A- -64>>2]=t-y,o[A+60>>2]=c-e,o[A+56>>2]=f-r,o[A+52>>2]=n-a,o[A+48>>2]=E-i,o[A+44>>2]=Q-B,o[A+40>>2]=C-p,C=o[I+80>>2],B=o[I+84>>2],Q=o[I+88>>2],i=o[I+92>>2],E=o[I+96>>2],a=o[I+100>>2],n=o[I+104>>2],r=o[I+108>>2],f=o[I+116>>2],o[A+112>>2]=o[I+112>>2],o[A+116>>2]=f,o[A+104>>2]=n,o[A+108>>2]=r,o[A+96>>2]=E,o[A+100>>2]=a,o[A+88>>2]=Q,o[A+92>>2]=i,o[A+80>>2]=C,o[A+84>>2]=B,F(A+120|0,I+120|0,1440)}function O(A,I){var g,C,B,Q,i,a=0,n=0,f=0,t=0,e=0,c=0,y=0,D=0,w=0,h=0;(f=o[A+56>>2])|(a=o[A+60>>2])&&(E[f+(n=A- -64|0)|0]=1,!((h=f+1|0)?a:a+1|0)&h>>>0<=15&&MA(65+(A+f|0)|0,0,15-f|0),E[A+80|0]=1,N(A,n,16,0)),h=o[A+52>>2],D=o[A+48>>2],n=o[A+44>>2],f=o[A+24>>2],e=o[A+28>>2]+(f>>>26|0)|0,t=o[A+32>>2]+(e>>>26|0)|0,g=o[A+36>>2]+(t>>>26|0)|0,a=(y=(f=(f=(67108863&f)+((c=o[A+20>>2]+r(g>>>26|0,5)|0)>>>26|0)|0)&(e=(t=(i=(67108863&g)+((Q=(C=67108863&t)+((B=(w=67108863&e)+((c=f+((a=5+(y=67108863&c)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)-67108864|0)>>31)|c&(t=67108863&(c=(t>>>31|0)-1|0)))<<26|a&t|e&y)+o[A+40>>2]|0,E[0|I]=a,E[I+1|0]=a>>>8,E[I+2|0]=a>>>16,E[I+3|0]=a>>>24,y=a>>>0>>0,a=(w=e&w|t&B)<<20|f>>>6,f=0,a=(n=a+n|0)>>>0>>0?1:f,a=(f=n+y|0)>>>0>>0?a+1|0:a,E[(n=I)+4|0]=f,E[n+5|0]=f>>>8,E[n+6|0]=f>>>16,E[n+7|0]=f>>>24,f=0,n=(n=(t=e&C|t&Q)<<14|w>>>12)>>>0>(D=n+D|0)>>>0?1:f,f=D,D=a,f=(a=f+a|0)>>>0>>0?n+1|0:n,E[(n=I)+8|0]=a,E[n+9|0]=a>>>8,E[n+10|0]=a>>>16,E[n+11|0]=a>>>24,a=n=(c&i|e&g)<<8|t>>>18,a=(a=f)+(n=n+h|0)|0,E[I+12|0]=a,E[I+13|0]=a>>>8,E[I+14|0]=a>>>16,E[I+15|0]=a>>>24,$A(A,88)}function T(A,I,g){var C,B=0;return D=C=D-16|0,E[C+15|0]=0,B=-1,0|nI[o[8722]](A,I,g)||(E[C+15|0]=a[0|A]|a[C+15|0],E[C+15|0]=a[A+1|0]|a[C+15|0],E[C+15|0]=a[A+2|0]|a[C+15|0],E[C+15|0]=a[A+3|0]|a[C+15|0],E[C+15|0]=a[A+4|0]|a[C+15|0],E[C+15|0]=a[A+5|0]|a[C+15|0],E[C+15|0]=a[A+6|0]|a[C+15|0],E[C+15|0]=a[A+7|0]|a[C+15|0],E[C+15|0]=a[A+8|0]|a[C+15|0],E[C+15|0]=a[A+9|0]|a[C+15|0],E[C+15|0]=a[A+10|0]|a[C+15|0],E[C+15|0]=a[A+11|0]|a[C+15|0],E[C+15|0]=a[A+12|0]|a[C+15|0],E[C+15|0]=a[A+13|0]|a[C+15|0],E[C+15|0]=a[A+14|0]|a[C+15|0],E[C+15|0]=a[A+15|0]|a[C+15|0],E[C+15|0]=a[A+16|0]|a[C+15|0],E[C+15|0]=a[A+17|0]|a[C+15|0],E[C+15|0]=a[A+18|0]|a[C+15|0],E[C+15|0]=a[A+19|0]|a[C+15|0],E[C+15|0]=a[A+20|0]|a[C+15|0],E[C+15|0]=a[A+21|0]|a[C+15|0],E[C+15|0]=a[A+22|0]|a[C+15|0],E[C+15|0]=a[A+23|0]|a[C+15|0],E[C+15|0]=a[A+24|0]|a[C+15|0],E[C+15|0]=a[A+25|0]|a[C+15|0],E[C+15|0]=a[A+26|0]|a[C+15|0],E[C+15|0]=a[A+27|0]|a[C+15|0],E[C+15|0]=a[A+28|0]|a[C+15|0],E[C+15|0]=a[A+29|0]|a[C+15|0],E[C+15|0]=a[A+30|0]|a[C+15|0],E[C+15|0]=a[A+31|0]|a[C+15|0],B=(a[C+15|0]<<23)-8388608>>31),D=C+16|0,B}function W(A,I){var g,C,B,Q,i,a,n,f=0,t=0;C=o[I+32>>2],B=o[I+28>>2],Q=o[I+24>>2],i=o[I+20>>2],a=o[I+16>>2],n=o[I+12>>2],f=o[I+4>>2],t=o[I>>2],g=o[I+36>>2],I=o[I+8>>2],t=r((C+(B+(Q+(i+(a+(n+((f+(t+(r(g,19)+16777216>>>25|0)>>26)>>25)+I>>26)>>25)>>26)>>25)>>26)>>25)>>26)+g>>25,19)+t|0,E[0|A]=t,E[A+2|0]=t>>>16,E[A+1|0]=t>>>8,f=f+(t>>26)|0,E[A+5|0]=f>>>14,E[A+4|0]=f>>>6,E[A+3|0]=t>>>24&3|f<<2,I=I+(f>>25)|0,E[A+8|0]=I>>>13,E[A+7|0]=I>>>5,E[A+6|0]=I<<3|(29360128&f)>>>22,t=(I>>26)+n|0,E[A+11|0]=t>>>11,E[A+10|0]=t>>>3,E[A+9|0]=t<<5|(65011712&I)>>>21,f=(t>>25)+a|0,E[A+15|0]=f>>>18,E[A+14|0]=f>>>10,E[A+13|0]=f>>>2,I=(f>>26)+i|0,E[A+16|0]=I,E[A+12|0]=f<<6|(33030144&t)>>>19,E[A+18|0]=I>>>16,E[A+17|0]=I>>>8,f=(I>>25)+Q|0,E[A+21|0]=f>>>15,E[A+20|0]=f>>>7,E[A+19|0]=I>>>24&1|f<<1,I=(f>>26)+B|0,E[A+24|0]=I>>>13,E[A+23|0]=I>>>5,E[A+22|0]=I<<3|(58720256&f)>>>23,f=(I>>25)+C|0,E[A+27|0]=f>>>12,E[A+26|0]=f>>>4,E[A+25|0]=f<<4|(31457280&I)>>>21,I=g+(f>>26)|0,E[A+30|0]=I>>>10,E[A+29|0]=I>>>2,E[A+31|0]=(33292288&I)>>>18,E[A+28|0]=I<<6|(66060288&f)>>>20}function Z(A,I){var g;return o[12+(g=D-16|0)>>2]=A,o[g+8>>2]=I,o[g+4>>2]=0,o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]]^a[o[g+8>>2]],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+1|0]^a[o[g+8>>2]+1|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+2|0]^a[o[g+8>>2]+2|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+3|0]^a[o[g+8>>2]+3|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+4|0]^a[o[g+8>>2]+4|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+5|0]^a[o[g+8>>2]+5|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+6|0]^a[o[g+8>>2]+6|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+7|0]^a[o[g+8>>2]+7|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+8|0]^a[o[g+8>>2]+8|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+9|0]^a[o[g+8>>2]+9|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+10|0]^a[o[g+8>>2]+10|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+11|0]^a[o[g+8>>2]+11|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+12|0]^a[o[g+8>>2]+12|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+13|0]^a[o[g+8>>2]+13|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+14|0]^a[o[g+8>>2]+14|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+15|0]^a[o[g+8>>2]+15|0],(o[g+4>>2]-1>>>8&1)-1|0}function $(A,I){var g,C=0,B=0;g=I;A:if(C=255&I){if(3&A)for(;;){if(!(I=a[0|A])|(0|I)==(255&g))break A;if(!(3&(A=A+1|0)))break}I:if(!((-1^(I=o[A>>2]))&I-16843009&-2139062144))for(C=r(C,16843009);;){if((-1^(I^=C))&I-16843009&-2139062144)break I;if(I=o[A+4>>2],A=A+4|0,I-16843009&(-1^I)&-2139062144)break}for(;I=A,(C=a[0|A])&&(A=I+1|0,(0|C)!=(255&g)););A=I}else{C=A;I:{if(3&A)for(;;){if(!a[0|A])break I;if(!(3&(A=A+1|0)))break}for(;I=A,A=A+4|0,!((-1^(B=o[I>>2]))&B-16843009&-2139062144););for(;I=(A=I)+1|0,a[0|A];);}A=C+(A-C|0)|0}return a[0|A]==(255&g)?A:0}function AA(A,I){var g,C=0,B=0,Q=0,i=0,o=0;for(D=g=D-192|0,EA(A),MA(g- -64|0,54,128);E[0|(C=(i=g- -64|0)+B|0)]=a[0|C]^a[I+B|0],E[0|(Q=(C=1|B)+i|0)]=a[0|Q]^a[I+C|0],E[0|(Q=(C=2|B)+i|0)]=a[0|Q]^a[I+C|0],E[0|(C=(C=i)+(i=3|B)|0)]=a[0|C]^a[I+i|0],B=B+4|0,32!=(0|(o=o+4|0)););for(m(A,B=g- -64|0,128,0),EA(i=A+208|0),MA(B,92,128),B=0,o=0;E[0|(C=(A=g- -64|0)+B|0)]=a[0|C]^a[I+B|0],E[0|(Q=(C=1|B)+A|0)]=a[0|Q]^a[I+C|0],E[0|(Q=(C=2|B)+A|0)]=a[0|Q]^a[I+C|0],E[0|(C=(C=A)+(A=3|B)|0)]=a[0|C]^a[A+I|0],B=B+4|0,32!=(0|(o=o+4|0)););m(i,A=g- -64|0,128,0),$A(A,128),$A(g,64),D=g+192|0}function IA(A,I,g,C,B,Q,i){var E,a,n,r,f,t=0;return D=E=D-352|0,L(E,Q,i),!((!B&C>>>0>A-g>>>0|0!=(0|B))&A>>>0>g>>>0)&(!B&C>>>0<=g-A>>>0|A>>>0>=g>>>0)||(g=kA(A,g,C)),o[E+56>>2]=0,o[E+60>>2]=0,o[E+48>>2]=0,o[E+52>>2]=0,o[E+40>>2]=0,o[E+44>>2]=0,o[E+32>>2]=0,o[E+36>>2]=0,i=(t=!B&C>>>0>=32|0!=(0|B))?32:C,f=t=t?0:B,(n=!(i|t))||HA(E- -64|0,g,i),LA(a=E+32|0,a,r=i+32|0,t=r>>>0<32?t+1|0:t,Q=Q+16|0,E),OA(E+96|0,a),n||HA(A,E- -64|0,i),$A(E+32|0,64),!B&C>>>0>=33|B&&vA(A+i|0,g+i|0,C-i|0,B-(f+(C>>>0>>0)|0)|0,Q,E),$A(E,32),zA(g=E+96|0,A,C,B),TA(g,I),$A(g,256),D=E+352|0,0}function gA(A,I,g,C,B,Q,i){var E,a,n=0,r=0;D=E=D-96|0,L(E,Q,i),i=E+32|0,a=Q+16|0,nI[o[8724]](i,32,0,a,E),Q=-1;A:{if(!(0|nI[o[8718]](g,I,C,B,i))){if(Q=0,!A)break A;!((!B&C>>>0>I-A>>>0|0!=(0|B))&A>>>0>>0)&(!B&C>>>0<=A-I>>>0|A>>>0<=I>>>0)||(I=kA(A,I,C)),(i=(g=!B&C>>>0>=32|0!=(0|B))?32:C)|(g=g?0:B)?(r=HA(E- -64|0,I,i),LA(Q=E+32|0,Q,n=i+32|0,n>>>0<32?g+1|0:g,a,E),HA(A,r,i)):LA(Q=E+32|0,Q,n=i+32|0,n>>>0<32?g+1|0:g,a,E),$A(E+32|0,64),Q=0,!B&C>>>0<33||vA(A+i|0,I+i|0,C-i|0,B-(g+(C>>>0>>0)|0)|0,a,E)}$A(E,32)}return D=E+96|0,Q}function CA(A,I,g,C,B,Q,i,E,n,r){var f,t;return D=f=D-400|0,o[f+4>>2]=0,d(t=f+16|0,n,r),r=a[n+20|0]|a[n+21|0]<<8|a[n+22|0]<<16|a[n+23|0]<<24,o[f+8>>2]=a[n+16|0]|a[n+17|0]<<8|a[n+18|0]<<16|a[n+19|0]<<24,o[f+12>>2]=r,XA(r=f+80|0,64,f+4|0,t),OA(n=f+144|0,r),$A(r,64),zA(n,Q,i,E),zA(n,34816,0-i&15,0),zA(n,I,g,C),zA(n,34816,0-g&15,0),o[f+72>>2]=i,o[f+76>>2]=E,zA(n,Q=f+72|0,8,0),o[f+72>>2]=g,o[f+76>>2]=C,zA(n,Q,8,0),TA(n,Q=f+48|0),$A(n,256),n=Z(Q,B),$A(Q,16),A&&(n?(MA(A,0,g),n=-1):(_A(A,I,g,C,f+4|0,f+16|0),n=0)),$A(f+16|0,32),D=f+400|0,n}function BA(A,I,g,C,B,Q,i,E,n,r,f){var t,e,c;return D=t=D-384|0,o[t+4>>2]=0,d(e=t+16|0,r,f),f=a[r+20|0]|a[r+21|0]<<8|a[r+22|0]<<16|a[r+23|0]<<24,o[t+8>>2]=a[r+16|0]|a[r+17|0]<<8|a[r+18|0]<<16|a[r+19|0]<<24,o[t+12>>2]=f,XA(f=t- -64|0,64,c=t+4|0,e),OA(r=t+128|0,f),$A(f,64),zA(r,i,E,n),zA(r,34816,0-E&15,0),_A(A,C,B,Q,c,e),zA(r,A,B,Q),zA(r,34816,0-B&15,0),o[t+56>>2]=E,o[t+60>>2]=n,zA(r,A=t+56|0,8,0),o[t+56>>2]=B,o[t+60>>2]=Q,zA(r,A,8,0),TA(r,I),$A(r,256),g&&(o[g>>2]=16,o[g+4>>2]=0),$A(t+16|0,32),D=t+384|0,0}function QA(A,I,g,C){var B,Q=0;return D=B=D-208|0,o[B+72>>2]=0,o[B+76>>2]=0,Q=o[8487],o[B+8>>2]=o[8486],o[B+12>>2]=Q,Q=o[8489],o[B+16>>2]=o[8488],o[B+20>>2]=Q,Q=o[8491],o[B+24>>2]=o[8490],o[B+28>>2]=Q,Q=o[8493],o[B+32>>2]=o[8492],o[B+36>>2]=Q,Q=o[8495],o[B+40>>2]=o[8494],o[B+44>>2]=Q,Q=o[8497],o[B+48>>2]=o[8496],o[B+52>>2]=Q,Q=o[8499],o[B+56>>2]=o[8498],o[B+60>>2]=Q,o[B+64>>2]=0,o[B+68>>2]=0,Q=o[8485],o[B>>2]=o[8484],o[B+4>>2]=Q,m(B,I,g,C),M(B,A),D=B+208|0,0}function iA(A,I){var g,C=0,B=0,Q=0;if(E[15+(g=D-16|0)|0]=0,I){if(B=3&I,I>>>0>=4)for(Q=-4&I,I=0;E[g+15|0]=a[A+C|0]|a[g+15|0],E[g+15|0]=a[(1|C)+A|0]|a[g+15|0],E[g+15|0]=a[(2|C)+A|0]|a[g+15|0],E[g+15|0]=a[(3|C)+A|0]|a[g+15|0],C=C+4|0,(0|Q)!=(0|(I=I+4|0)););if(B)for(I=0;E[g+15|0]=a[A+C|0]|a[g+15|0],C=C+1|0,(0|B)!=(0|(I=I+1|0)););}return a[g+15|0]-1>>>8&1}function EA(A){var I=0;o[A+64>>2]=0,o[A+68>>2]=0,o[A+72>>2]=0,o[A+76>>2]=0,I=o[8485],o[A>>2]=o[8484],o[A+4>>2]=I,I=o[8487],o[A+8>>2]=o[8486],o[A+12>>2]=I,I=o[8489],o[A+16>>2]=o[8488],o[A+20>>2]=I,I=o[8491],o[A+24>>2]=o[8490],o[A+28>>2]=I,I=o[8493],o[A+32>>2]=o[8492],o[A+36>>2]=I,I=o[8495],o[A+40>>2]=o[8494],o[A+44>>2]=I,I=o[8497],o[A+48>>2]=o[8496],o[A+52>>2]=I,I=o[8499],o[A+56>>2]=o[8498],o[A+60>>2]=I}function oA(A,I,g){var C,B=0,Q=0;if(o[12+(C=D-16|0)>>2]=A,o[C+8>>2]=I,A=0,E[C+7|0]=0,g){if(I=1&g,1!=(0|g))for(Q=-2&g,g=0;E[C+7|0]=a[C+7|0]|a[o[C+12>>2]+A|0]^a[o[C+8>>2]+A|0],B=1|A,E[C+7|0]=a[C+7|0]|a[B+o[C+12>>2]|0]^a[o[C+8>>2]+B|0],A=A+2|0,(0|Q)!=(0|(g=g+2|0)););I&&(E[C+7|0]=a[C+7|0]|a[o[C+12>>2]+A|0]^a[o[C+8>>2]+A|0])}return(a[C+7|0]-1>>>8&1)-1|0}function aA(A){for(var I=0,g=0,C=0,B=0,Q=0,i=0,E=0,o=0,n=0,r=0;B=(g=a[A+C|0])^a[0|(I=C+2448|0)]|B,Q=g^a[I+192|0]|Q,i=g^a[I+160|0]|i,E=g^a[I+128|0]|E,o=g^a[I+96|0]|o,n=g^a[I- -64|0]|n,r=g^a[I+32|0]|r,31!=(0|(C=C+1|0)););return((255&((I=127^(A=127&a[A+31|0]))|Q))-1|(255&(I|i))-1|(255&(I|E))-1|(255&(122^A|o))-1|(255&(5^A|n))-1|(255&(A|r))-1|(255&(A|B))-1)>>>8&1}function nA(A,I,g){var C=0,B=0,Q=0,i=0;return B=31&(Q=i=63&g),Q=Q>>>0>=32?-1>>>B|0:(C=-1>>>B|0)|(1<>>0>=32?(C=Q<>>32-B|C<>>0>=32?(C=-1<>>32-C,A&=g,I&=C,C=31&B,B>>>0>=32?(g=0,A=I>>>C|0):(g=I>>>C|0,A=((1<>>C),w=g|Q,A|i}function rA(A,I,g,C,B,Q,i,E,a,n){var r,f,t;return D=r=D-352|0,XA(t=r+32|0,64,a,n),OA(f=r+96|0,t),$A(t,64),zA(f,Q,i,E),zA(f,33920,0-i&15,0),zA(f,I,g,C),zA(f,33920,0-g&15,0),o[r+24>>2]=i,o[r+28>>2]=E,zA(f,Q=r+24|0,8,0),o[r+24>>2]=g,o[r+28>>2]=C,zA(f,Q,8,0),TA(f,r),$A(f,256),Q=Z(r,B),$A(r,16),A&&(Q?(MA(A,0,g),Q=-1):(wA(A,I,g,C,a,1,n),Q=0)),D=r+352|0,Q}function fA(A,I,g,C,B,Q,i,E,a,n,r){var f,t,e;return D=f=D-336|0,XA(e=f+16|0,64,n,r),OA(t=f+80|0,e),$A(e,64),zA(t,i,E,a),zA(t,33920,0-E&15,0),wA(A,C,B,Q,n,1,r),zA(t,A,B,Q),zA(t,33920,0-B&15,0),o[f+8>>2]=E,o[f+12>>2]=a,zA(t,A=f+8|0,8,0),o[f+8>>2]=B,o[f+12>>2]=Q,zA(t,A,8,0),TA(t,I),$A(t,256),g&&(o[g>>2]=16,o[g+4>>2]=0),D=f+336|0,0}function tA(A,I,g,C,B,Q,i,E,a,n){var r,f,t;return D=r=D-352|0,qA(t=r+32|0,a,n),OA(f=r+96|0,t),$A(t,64),zA(f,Q,i,E),o[r+24>>2]=i,o[r+28>>2]=E,zA(f,Q=r+24|0,8,0),zA(f,I,g,C),o[r+24>>2]=g,o[r+28>>2]=C,zA(f,Q,8,0),TA(f,r),$A(f,256),Q=Z(r,B),$A(r,16),A&&(Q?(MA(A,0,g),Q=-1):(bA(A,I,g,C,a,n),Q=0)),D=r+352|0,Q}function eA(A,I,g,C,B,Q,i,E,a,n,r){var f,t,e;return D=f=D-336|0,qA(e=f+16|0,n,r),OA(t=f+80|0,e),$A(e,64),zA(t,i,E,a),o[f+8>>2]=E,o[f+12>>2]=a,zA(t,i=f+8|0,8,0),bA(A,C,B,Q,n,r),zA(t,A,B,Q),o[f+8>>2]=B,o[f+12>>2]=Q,zA(t,i,8,0),TA(t,I),$A(t,256),g&&(o[g>>2]=16,o[g+4>>2]=0),D=f+336|0,0}function cA(A,I){var g;for(o[12+(g=D-16|0)>>2]=A,o[g+8>>2]=I,A=0,o[g+4>>2]=0;o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+A|0]^a[o[g+8>>2]+A|0],I=1|A,o[g+4>>2]=o[g+4>>2]|a[I+o[g+12>>2]|0]^a[I+o[g+8>>2]|0],32!=(0|(A=A+2|0)););return(o[g+4>>2]-1>>>8&1)-1|0}function yA(A){var I=0,g=0,C=0,B=0;for(I=1;I=a[0|(g=A+C|0)]+I|0,E[0|g]=I,I=a[0|(g=(1|C)+A|0)]+(I>>>8|0)|0,E[0|g]=I,I=a[0|(g=(2|C)+A|0)]+(I>>>8|0)|0,E[0|g]=I,I=a[0|(g=(3|C)+A|0)]+(I>>>8|0)|0,E[0|g]=I,I=I>>>8|0,C=C+4|0,4!=(0|(B=B+4|0)););}function DA(A,I,g,C){var B,Q,i,E,o=0,a=0;return E=r(o=g>>>16|0,a=A>>>16|0),o=(65535&(a=((i=r(B=65535&g,Q=65535&A))>>>16|0)+r(a,B)|0))+r(o,Q)|0,w=(r(I,g)+E|0)+r(A,C)+(a>>>16)+(o>>>16)|0,65535&i|o<<16}function wA(A,I,g,C,B,i,E){var a=0,n=0;a=C,1==(((a=(n=g+63|0)>>>0<63?a+1|0:a)>>>6|0)+(0!=(0|(a=(63&a)<<26|n>>>6)))|0)&i>>>0>(n=0-a|0)>>>0|1==(0|C)|C>>>0>1?(mA(),Q()):nI[o[8716]](A,I,g,C,B,i,E)}function hA(A,I){A|=0;var g,C=0,B=0,Q=0;if(D=g=D-16|0,I|=0)for(;E[g+15|0]=0,B=A+C|0,Q=0|t(34904,g+15|0,0),E[0|B]=Q,(0|(C=C+1|0))!=(0|I););D=g+16|0}function sA(A,I,g,C,B,Q,i){var E,o=0;return D=E=D-32|0,o=-1,!C&g>>>0<16||SA(E,Q,i)||(o=gA(A,I+16|0,I,g-16|0,C-(g>>>0<16)|0,B,E),$A(E,32)),D=E+32|0,o}function pA(A){var I,g;return(A=(I=o[8712])+(g=A+7&-8)|0)>>>0<=I>>>0&&g||A>>>0>rI()<<16>>>0&&!(0|y(0|A))?(o[8916]=48,-1):(o[8712]=A,I)}function uA(A,I){var g,C,B;D=g=D-176|0,X(C=g+96|0,I+80|0),F(B=g+48|0,I,C),F(g,I+40|0,C),W(A,g),W(g+144|0,B),E[A+31|0]=a[A+31|0]^a[g+144|0]<<7,D=g+176|0}function kA(A,I,g){var C=0;if(A>>>0>>0)return HA(A,I,g);if(g)for(C=A+g|0,I=I+g|0;I=I-1|0,E[0|(C=C-1|0)]=a[0|I],g=g-1|0;);return A}function FA(A,I,g,C,B,i,E){var o,a=0;if(D=o=D-32|0,!C&g>>>0<4294967280)return a=-1,SA(o,i,E)||(a=IA(A+16|0,A,I,g,C,B,o),$A(o,32)),D=o+32|0,a;mA(),Q()}function lA(A,I,g,C,B,Q){return I|=0,0|(!(C|=0)&(g|=0)>>>0>=16|C?gA(A|=0,I+16|0,I,g-16|0,C-(g>>>0<16)|0,B|=0,Q|=0):-1)}function SA(A,I,g){A|=0;var C,B=0;return D=C=D-32|0,B=-1,T(C,g|=0,I|=0)||(B=L(A,34832,C)),D=C+32|0,0|B}function HA(A,I,g){var C=0;if(g)for(C=A;E[0|C]=a[0|I],C=C+1|0,I=I+1|0,g=g-1|0;);return A}function MA(A,I,g){var C=0;if(g)for(C=A;E[0|C]=I,C=C+1|0,g=g-1|0;);return A}function GA(A,I,g){return A|=0,I|=0,(g|=0)>>>0>=256&&(e(1260,1187,107,1067),Q()),0|G(A,I,255&g)}function UA(A,I){var g;D=g=D+-64|0,M(A,g),m(A=A+208|0,g,64,0),M(A,I),$A(g,64),D=g- -64|0}function JA(A,I,g,C,B,Q,i){return 0|IA(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function NA(A,I,g,C,B,Q,i){return 0|gA(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function YA(A,I){var g=0;return(-1>>>(g=31&I)&A)<>>A}function bA(A,I,g,C,B,i){1==(0|C)|C>>>0>1&&(mA(),Q()),nI[o[8715]](A,I,g,C,B,1,0,i)}function _A(A,I,g,C,B,i){1==(0|C)|C>>>0>1&&(mA(),Q()),nI[o[8716]](A,I,g,C,B,1,i)}function KA(){var A;D=A=D-16|0,E[A+15|0]=0,t(34940,A+15|0,0),D=A+16|0}function PA(A,I,g){return 0|T(A|=0,I|=0,g|=0)}function vA(A,I,g,C,B,Q){nI[o[8725]](A,I,g,C,B,1,0,Q)}function mA(){var A;(A=o[9050])&&nI[0|A](),c(),Q()}function dA(A,I){return A|=0,hA(I|=0,32),0|VA(A,I)}function LA(A,I,g,C,B,Q){nI[o[8725]](A,I,g,C,B,0,0,Q)}function RA(A){return A?31-f(A-1^A)|0:32}function xA(A,I,g,C){nI[o[8716]](A,I,40,0,g,0,C)}function jA(A,I){return 0|VA(A|=0,I|=0)}function XA(A,I,g,C){nI[o[8714]](A,I,0,g,C)}function qA(A,I,g){nI[o[8713]](A,64,0,I,g)}function zA(A,I,g,C){nI[o[8720]](A,I,g,C)}function VA(A,I){return 0|nI[o[8723]](A,I)}function OA(A,I){nI[o[8719]](A,I)}function TA(A,I){nI[o[8721]](A,I)}function WA(A,I,g,C){m(A,I,g,C)}function ZA(A){hA(A|=0,32)}function $A(A,I){MA(A,0,I)}function AI(){return 16}function II(){return 32}function gI(){return 24}function CI(){return-17}function BI(){return 64}function QI(){return 1}function iI(){return 3}function EI(){return 8}function oI(){return 0}B(I=a,1024,"TGlic29kaXVtRFJHcmFuZG9tYnl0ZXMAYjY0X3BvcyA8PSBiNjRfbGVuAGNyeXB0b19nZW5lcmljaGFzaF9ibGFrZTJiX2ZpbmFsAHJhbmRvbWJ5dGVzL3JhbmRvbWJ5dGVzLmMAc29kaXVtL2NvZGVjcy5jAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9ibGFrZTJiLXJlZi5jAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9nZW5lcmljaGFzaF9ibGFrZTJiLmMAYnVmX2xlbiA8PSBTSVpFX01BWABvdXRsZW4gPD0gVUlOVDhfTUFYAFMtPmJ1ZmxlbiA8PSBCTEFLRTJCX0JMT0NLQllURVMAMS4wLjE4AHNvZGl1bV9iaW4yYmFzZTY0AAAAAAAAAAC2eFn/hXLTAL1uFf8PCmoAKcABAJjoef+8PKD/mXHO/wC34v60DUj/AAAAAAAAAACwoA7+08mG/54YjwB/aTUAYAy9AKfX+/+fTID+amXh/x78BACSDK4="),B(I,1440,"WfGy/grlpv973Sr+HhTUAFKAAwAw0fMAd3lA/zLjnP8AbsUBZxuQ"),B(I,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/"),B(I,2480,"AQ=="),B(I,2512,"JuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQ="),B(I,2703,"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"),B(I,33676,"AQ=="),B(I,33712,"AQ=="),B(I,33744,"4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////fw=="),B(I,33936,"CMm882fmCWo7p8qEha5nuyv4lP5y82488TYdXzr1T6XRguatf1IOUR9sPiuMaAWba71B+6vZgx95IX4TGc3gWyKuKNeYL4pCzWXvI5FEN3EvO03sz/vAtbzbiYGl27XpOLVI81vCVjkZ0AW28RHxWZtPGa+kgj+SGIFt2tVeHKtCAgOjmKoH2L5vcEUBW4MSjLLkTr6FMSTitP/Vw30MVW+Je/J0Xb5ysZYWO/6x3oA1Esclpwbcm5Qmac908ZvB0krxnsFpm+TjJU84hke+77XVjIvGncEPZZysd8yhDCR1AitZbyzpLYPkpm6qhHRK1PtBvdypsFy1UxGD2oj5dqvfZu5SUT6YEDK0LW3GMag/IfuYyCcDsOQO777Hf1m/wo+oPfML4MYlpwqTR5Gn1W+CA+BRY8oGcG4OCmcpKRT8L9JGhQq3JybJJlw4IRsu7SrEWvxtLE3fs5WdEw04U95jr4tUcwplqLJ3PLsKanbmru1HLsnCgTs1ghSFLHKSZAPxTKHov6IBMEK8S2YaqJGX+NBwi0vCML5UBqNRbMcYUu/WGeiS0RCpZVUkBpnWKiBxV4U1DvS40bsycKBqEMjQ0rgWwaQZU6tBUQhsNx6Z647fTHdIJ6hIm+G1vLA0Y1rJxbMMHDnLikHjSqrYTnPjY3dPypxbo7iy1vNvLmj8su9d7oKPdGAvF0NvY6V4cqvwoRR4yITsOWQaCALHjCgeYyP6/76Q6b2C3utsUKQVecay96P5vitTcuPyeHHGnGEm6s4+J8oHwsAhx7iG0R7r4M3WfdrqeNFu7n9PffW6bxdyqmfwBqaYyKLFfWMKrg35vgSYPxEbRxwTNQtxG4R9BCP1d9sokyTHQHuryjK8vskVCr6ePEwNEJzEZx1DtkI+y77UxUwqfmX8nCl/Wez61jqrb8tfF1hHSowZRGyA"),B(I,34768,"U2lnRWQyNTUxOSBubyBFZDI1NTE5IGNvbGxpc2lvbnMB"),B(I,34848,"cI0BAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0=");var aI,nI=(aI=[null,function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,D=Q=D+-64|0,(I|=0)|(g|=0)&&(o[Q+8>>2]=2036477234,o[Q+12>>2]=1797285236,o[Q>>2]=1634760805,o[Q+4>>2]=857760878,o[Q+16>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,o[Q+20>>2]=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,o[Q+24>>2]=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,o[Q+28>>2]=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,o[Q+32>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,o[Q+36>>2]=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,o[Q+40>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,B=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,o[Q+48>>2]=0,o[Q+52>>2]=0,o[Q+44>>2]=B,o[Q+56>>2]=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24,o[Q+60>>2]=a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24,H(Q,A=MA(A,0,I),A,I,g),$A(Q,64)),D=Q- -64|0,0},function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,D=Q=D+-64|0,(I|=0)|(g|=0)&&(o[Q+8>>2]=2036477234,o[Q+12>>2]=1797285236,o[Q>>2]=1634760805,o[Q+4>>2]=857760878,o[Q+16>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,o[Q+20>>2]=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,o[Q+24>>2]=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,o[Q+28>>2]=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,o[Q+32>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,o[Q+36>>2]=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,o[Q+40>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,B=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,o[Q+48>>2]=0,o[Q+44>>2]=B,o[Q+52>>2]=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24,o[Q+56>>2]=a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24,o[Q+60>>2]=a[C+8|0]|a[C+9|0]<<8|a[C+10|0]<<16|a[C+11|0]<<24,H(Q,A=MA(A,0,I),A,I,g),$A(Q,64)),D=Q- -64|0,0},function(A,I,g,C,B,Q,i,E){var n;return A|=0,I|=0,B|=0,Q|=0,i|=0,E|=0,D=n=D+-64|0,(g|=0)|(C|=0)&&(o[n+8>>2]=2036477234,o[n+12>>2]=1797285236,o[n>>2]=1634760805,o[n+4>>2]=857760878,o[n+16>>2]=a[0|E]|a[E+1|0]<<8|a[E+2|0]<<16|a[E+3|0]<<24,o[n+20>>2]=a[E+4|0]|a[E+5|0]<<8|a[E+6|0]<<16|a[E+7|0]<<24,o[n+24>>2]=a[E+8|0]|a[E+9|0]<<8|a[E+10|0]<<16|a[E+11|0]<<24,o[n+28>>2]=a[E+12|0]|a[E+13|0]<<8|a[E+14|0]<<16|a[E+15|0]<<24,o[n+32>>2]=a[E+16|0]|a[E+17|0]<<8|a[E+18|0]<<16|a[E+19|0]<<24,o[n+36>>2]=a[E+20|0]|a[E+21|0]<<8|a[E+22|0]<<16|a[E+23|0]<<24,o[n+40>>2]=a[E+24|0]|a[E+25|0]<<8|a[E+26|0]<<16|a[E+27|0]<<24,o[n+44>>2]=a[E+28|0]|a[E+29|0]<<8|a[E+30|0]<<16|a[E+31|0]<<24,o[n+48>>2]=Q,o[n+52>>2]=i,o[n+56>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,o[n+60>>2]=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,H(n,I,A,g,C),$A(n,64)),D=n- -64|0,0},function(A,I,g,C,B,Q,i){var E;return A|=0,I|=0,B|=0,Q|=0,i|=0,D=E=D+-64|0,(g|=0)|(C|=0)&&(o[E+8>>2]=2036477234,o[E+12>>2]=1797285236,o[E>>2]=1634760805,o[E+4>>2]=857760878,o[E+16>>2]=a[0|i]|a[i+1|0]<<8|a[i+2|0]<<16|a[i+3|0]<<24,o[E+20>>2]=a[i+4|0]|a[i+5|0]<<8|a[i+6|0]<<16|a[i+7|0]<<24,o[E+24>>2]=a[i+8|0]|a[i+9|0]<<8|a[i+10|0]<<16|a[i+11|0]<<24,o[E+28>>2]=a[i+12|0]|a[i+13|0]<<8|a[i+14|0]<<16|a[i+15|0]<<24,o[E+32>>2]=a[i+16|0]|a[i+17|0]<<8|a[i+18|0]<<16|a[i+19|0]<<24,o[E+36>>2]=a[i+20|0]|a[i+21|0]<<8|a[i+22|0]<<16|a[i+23|0]<<24,o[E+40>>2]=a[i+24|0]|a[i+25|0]<<8|a[i+26|0]<<16|a[i+27|0]<<24,i=a[i+28|0]|a[i+29|0]<<8|a[i+30|0]<<16|a[i+31|0]<<24,o[E+48>>2]=Q,o[E+44>>2]=i,o[E+52>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,o[E+56>>2]=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,o[E+60>>2]=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,H(E,I,A,g,C),$A(E,64)),D=E- -64|0,0},function(A,I,g,C,B){var Q,i,n;return A|=0,I|=0,g|=0,C|=0,B|=0,D=Q=(i=D)-128&-64,o[Q>>2]=67108863&(a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24),o[Q+4>>2]=(a[B+3|0]|a[B+4|0]<<8|a[B+5|0]<<16|a[B+6|0]<<24)>>>2&67108611,o[Q+8>>2]=(a[B+6|0]|a[B+7|0]<<8|a[B+8|0]<<16|a[B+9|0]<<24)>>>4&67092735,o[Q+12>>2]=(a[B+9|0]|a[B+10|0]<<8|a[B+11|0]<<16|a[B+12|0]<<24)>>>6&66076671,n=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,o[Q+20>>2]=0,o[Q+24>>2]=0,o[Q+28>>2]=0,o[Q+32>>2]=0,o[Q+36>>2]=0,o[Q+16>>2]=n>>>8&1048575,o[Q+40>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,o[Q+44>>2]=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,o[Q+48>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,B=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,E[Q+80|0]=0,o[Q+56>>2]=0,o[Q+60>>2]=0,o[Q+52>>2]=B,x(Q,I,g,C),O(Q,A),D=i,0},function(A,I,g,C,B){var Q,i,n;return A|=0,I|=0,g|=0,C|=0,B|=0,D=Q=(i=D)-192&-64,o[Q+64>>2]=67108863&(a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24),o[Q+68>>2]=(a[B+3|0]|a[B+4|0]<<8|a[B+5|0]<<16|a[B+6|0]<<24)>>>2&67108611,o[Q+72>>2]=(a[B+6|0]|a[B+7|0]<<8|a[B+8|0]<<16|a[B+9|0]<<24)>>>4&67092735,o[Q+76>>2]=(a[B+9|0]|a[B+10|0]<<8|a[B+11|0]<<16|a[B+12|0]<<24)>>>6&66076671,n=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,o[Q+84>>2]=0,o[Q+88>>2]=0,o[Q+92>>2]=0,o[Q+96>>2]=0,o[Q+100>>2]=0,o[Q+80>>2]=n>>>8&1048575,o[Q+104>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,o[Q+108>>2]=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,o[Q+112>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,B=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,E[Q+144|0]=0,o[Q+120>>2]=0,o[Q+124>>2]=0,o[Q+116>>2]=B,x(B=Q- -64|0,I,g,C),O(B,I=Q+48|0),A=Z(A,I),D=i,0|A},function(A,I){var g;return I|=0,o[(A|=0)>>2]=67108863&(a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24),o[A+4>>2]=(a[I+3|0]|a[I+4|0]<<8|a[I+5|0]<<16|a[I+6|0]<<24)>>>2&67108611,o[A+8>>2]=(a[I+6|0]|a[I+7|0]<<8|a[I+8|0]<<16|a[I+9|0]<<24)>>>4&67092735,o[A+12>>2]=(a[I+9|0]|a[I+10|0]<<8|a[I+11|0]<<16|a[I+12|0]<<24)>>>6&66076671,g=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,o[A+20>>2]=0,o[A+24>>2]=0,o[A+28>>2]=0,o[A+32>>2]=0,o[A+36>>2]=0,o[A+16>>2]=g>>>8&1048575,o[A+40>>2]=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,o[A+44>>2]=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,o[A+48>>2]=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,I=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,E[A+80|0]=0,o[A+56>>2]=0,o[A+60>>2]=0,o[A+52>>2]=I,0},function(A,I,g,C){return x(A|=0,I|=0,g|=0,C|=0),0},function(A,I){return O(A|=0,I|=0),0},function(A,I,g){A|=0,I|=0,g|=0;var C,B=0,Q=0,i=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,h=0,s=0,p=0,u=0,k=0,l=0,H=0,M=0,G=0,U=0,J=0,N=0,Y=0,b=0,_=0,K=0,v=0,m=0,d=0,L=0,R=0,x=0,j=0,q=0,z=0,V=0,O=0,T=0,Z=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,EA=0,oA=0,aA=0,nA=0,rA=0,fA=0,tA=0,eA=0,cA=0,yA=0,wA=0,hA=0,sA=0,pA=0,uA=0,kA=0,FA=0,lA=0;for(D=C=D-368|0;h=(i=a[g+B|0])^a[0|(r=B+33680|0)]|h,c=i^a[r+192|0]|c,y=i^a[r+160|0]|y,e=i^a[r+128|0]|e,n=i^a[r+96|0]|n,f=i^a[r- -64|0]|f,Q=i^a[r+32|0]|Q,31!=(0|(B=B+1|0)););if(B=-1,!(256&((255&((i=127^(r=127&a[g+31|0]))|c))-1|(255&(i|y))-1|(255&(i|e))-1|(255&(87^r|n))-1|(255&(f|r))-1|(255&(Q|r))-1|(255&(r|h))-1))){for(B=I,I=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,o[C+360>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,o[C+364>>2]=I,I=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,o[C+352>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,o[C+356>>2]=I,Q=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,I=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,o[C+336>>2]=I,o[C+340>>2]=Q,Q=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,o[C+344>>2]=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,o[C+348>>2]=Q,E[C+336|0]=248&I,E[C+367|0]=63&a[C+367|0]|64,P(C+288|0,g),o[C+260>>2]=0,o[C+264>>2]=0,o[C+268>>2]=0,o[C+272>>2]=0,o[C+276>>2]=0,o[C+208>>2]=0,o[C+212>>2]=0,o[C+216>>2]=0,o[C+220>>2]=0,o[C+224>>2]=0,o[C+228>>2]=0,o[C+244>>2]=0,o[C+248>>2]=0,o[C+240>>2]=1,o[C+252>>2]=0,o[C+256>>2]=0,o[C+192>>2]=0,o[C+196>>2]=0,o[C+200>>2]=0,o[C+204>>2]=0,I=o[C+316>>2],o[C+168>>2]=o[C+312>>2],o[C+172>>2]=I,I=o[C+308>>2],o[C+160>>2]=o[C+304>>2],o[C+164>>2]=I,I=o[C+300>>2],o[C+152>>2]=o[C+296>>2],o[C+156>>2]=I,I=o[C+292>>2],o[C+144>>2]=o[C+288>>2],o[C+148>>2]=I,I=o[C+324>>2],o[C+176>>2]=o[C+320>>2],o[C+180>>2]=I,o[C+116>>2]=0,o[C+120>>2]=0,o[C+124>>2]=0,o[C+128>>2]=0,o[C+132>>2]=0,o[C+100>>2]=0,o[C+104>>2]=0,o[C+96>>2]=1,o[C+108>>2]=0,o[C+112>>2]=0,g=254;Z=o[C+276>>2],i=o[C+180>>2],$=o[C+96>>2],AA=o[C+192>>2],IA=o[C+144>>2],gA=o[C+240>>2],CA=o[C+100>>2],BA=o[C+196>>2],QA=o[C+148>>2],iA=o[C+244>>2],J=o[C+104>>2],EA=o[C+200>>2],N=o[C+152>>2],oA=o[C+248>>2],K=o[C+108>>2],aA=o[C+204>>2],Y=o[C+156>>2],nA=o[C+252>>2],b=o[C+112>>2],rA=o[C+208>>2],G=o[C+160>>2],fA=o[C+256>>2],h=o[C+116>>2],tA=o[C+212>>2],t=o[C+164>>2],eA=o[C+260>>2],c=o[C+120>>2],cA=o[C+216>>2],y=o[C+168>>2],yA=o[C+264>>2],e=o[C+124>>2],wA=o[C+220>>2],n=o[C+172>>2],hA=o[C+268>>2],f=o[C+128>>2],sA=o[C+224>>2],Q=o[C+176>>2],pA=o[C+272>>2],uA=g,U=(H=(I=0-((I=T)^(T=a[C+336+(g>>>3)|0]>>>(7&g)&1))|0)&((B=o[C+132>>2])^(q=o[C+228>>2])))^B,o[C+132>>2]=U,z=i^(p=I&(i^Z)),o[C+84>>2]=z-U,_=f^(u=I&(f^sA)),o[C+128>>2]=_,V=(M=I&(Q^pA))^Q,o[C+80>>2]=V-_,m=e^(k=I&(e^wA)),o[C+124>>2]=m,kA=n^(l=I&(n^hA)),o[C+76>>2]=kA-m,d=c^(s=I&(c^cA)),o[C+120>>2]=d,FA=y^(r=I&(y^yA)),o[C+72>>2]=FA-d,L=h^(i=I&(h^tA)),o[C+116>>2]=L,lA=t^(h=I&(t^eA)),o[C+68>>2]=lA-L,R=b^(c=I&(b^rA)),o[C+112>>2]=R,v=G^(y=I&(G^fA)),o[C+64>>2]=v-R,x=K^(e=I&(K^aA)),o[C+108>>2]=x,O=Y^(n=I&(Y^nA)),o[C+60>>2]=O-x,j=J^(f=I&(J^EA)),o[C+104>>2]=j,K=N^(Q=I&(N^oA)),o[C+56>>2]=K-j,J=CA^(B=I&(CA^BA)),o[C+100>>2]=J,Y=QA^(g=I&(QA^iA)),o[C+52>>2]=Y-J,N=$^(b=I&($^AA)),o[C+96>>2]=N,G=(I&=IA^gA)^IA,o[C+48>>2]=G-N,t=p^Z,H^=q,o[C+36>>2]=t-H,p=M^pA,u^=sA,o[C+32>>2]=p-u,M=l^hA,k^=wA,o[C+28>>2]=M-k,l=r^yA,s^=cA,o[C+24>>2]=l-s,r=h^eA,i^=tA,o[C+20>>2]=r-i,h=y^fA,c^=rA,o[C+16>>2]=h-c,y=n^nA,e^=aA,o[C+12>>2]=y-e,n=Q^oA,f^=EA,o[C+8>>2]=n-f,Q=g^iA,B^=BA,o[C+4>>2]=Q-B,g=I^gA,I=b^AA,o[C>>2]=g-I,o[C+276>>2]=t+H,o[C+272>>2]=p+u,o[C+268>>2]=k+M,o[C+264>>2]=s+l,o[C+260>>2]=i+r,o[C+256>>2]=c+h,o[C+248>>2]=n+f,o[C+244>>2]=B+Q,o[C+240>>2]=I+g,o[C+252>>2]=e+y,o[C+228>>2]=U+z,o[C+224>>2]=_+V,o[C+220>>2]=m+kA,o[C+216>>2]=d+FA,o[C+212>>2]=L+lA,o[C+208>>2]=v+R,o[C+204>>2]=x+O,o[C+200>>2]=K+j,o[C+196>>2]=J+Y,o[C+192>>2]=G+N,F(z=C+96|0,_=C+48|0,G=C+240|0),F(U=C+192|0,U,C),S(_,C),S(C,G),t=o[C+192>>2],H=o[C+96>>2],p=o[C+196>>2],u=o[C+100>>2],M=o[C+200>>2],k=o[C+104>>2],l=o[C+204>>2],s=o[C+108>>2],r=o[C+208>>2],i=o[C+112>>2],h=o[C+212>>2],c=o[C+116>>2],y=o[C+216>>2],e=o[C+120>>2],n=o[C+220>>2],f=o[C+124>>2],Q=o[C+224>>2],B=o[C+128>>2],g=o[C+228>>2],I=o[C+132>>2],o[C+180>>2]=g+I,o[C+176>>2]=B+Q,o[C+172>>2]=n+f,o[C+168>>2]=e+y,o[C+164>>2]=c+h,o[C+160>>2]=i+r,o[C+156>>2]=s+l,o[C+152>>2]=k+M,o[C+148>>2]=p+u,o[C+144>>2]=t+H,o[C+228>>2]=I-g,o[C+224>>2]=B-Q,o[C+220>>2]=f-n,o[C+216>>2]=e-y,o[C+212>>2]=c-h,o[C+208>>2]=i-r,o[C+204>>2]=s-l,o[C+200>>2]=k-M,o[C+196>>2]=u-p,o[C+192>>2]=H-t,F(G,C,_),m=o[C+52>>2],s=o[C+4>>2],d=o[C+56>>2],r=o[C+8>>2],L=o[C+64>>2],i=o[C+16>>2],R=o[C+60>>2],e=o[C+12>>2],x=o[C+72>>2],n=o[C+24>>2],j=o[C+68>>2],f=o[C+20>>2],J=o[C+80>>2],B=o[C+32>>2],N=o[C+76>>2],g=o[C+28>>2],q=o[C+84>>2],I=o[C+36>>2],V=o[C+48>>2],Q=o[C>>2]-V|0,o[C>>2]=Q,I=I-q|0,o[C+36>>2]=I,b=g-N|0,o[C+28>>2]=b,G=B-J|0,o[C+32>>2]=G,h=f-j|0,o[C+20>>2]=h,c=n-x|0,o[C+24>>2]=c,y=e-R|0,o[C+12>>2]=y,e=i-L|0,o[C+16>>2]=e,n=r-d|0,o[C+8>>2]=n,B=s-m|0,o[C+4>>2]=B,S(U,U),I=DA(I,I>>31,121666,0),g=w,O=I,I=DA((33554431&(g=(t=I+16777216|0)>>>0<16777216?g+1|0:g))<<7|t>>>25,g>>25,19,0),f=w,g=I,I=DA(Q,Q>>31,121666,0),v=w+f|0,I=I>>>0>(g=g+I|0)>>>0?v+1|0:v,I=(f=g+33554432|0)>>>0<33554432?I+1|0:I,H=g-(-67108864&f)|0,o[C+96>>2]=H,Q=DA(B,B>>31,121666,0),g=w,g=(B=Q+16777216|0)>>>0<16777216?g+1|0:g,p=(I=(67108863&I)<<6|f>>>26)+(Q-(-33554432&B)|0)|0,o[C+100>>2]=p,v=g>>25,B=(33554431&g)<<7|B>>>25,g=DA(n,n>>31,121666,0)+B|0,I=v+w|0,I=g>>>0>>0?I+1|0:I,f=(u=g+33554432|0)>>>0<33554432?I+1|0:I,M=g-(-67108864&u)|0,o[C+104>>2]=M,B=DA(e,e>>31,121666,0),Q=w,g=DA(y,y>>31,121666,0),I=w,Y=B,K=g,B=(33554431&(I=(k=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|k>>>25,I=(I>>25)+Q|0,I=(g=Y+B|0)>>>0>>0?I+1|0:I,Q=(l=g+33554432|0)>>>0<33554432?I+1|0:I,s=g-(-67108864&l)|0,o[C+112>>2]=s,B=DA(c,c>>31,121666,0),n=w,g=DA(h,h>>31,121666,0),I=w,Y=g,g=(33554431&(I=(r=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|r>>>25,I=(I>>25)+n|0,I=g>>>0>(B=g+B|0)>>>0?I+1|0:I,g=(i=B+33554432|0)>>>0<33554432?I+1|0:I,h=B-(-67108864&i)|0,o[C+120>>2]=h,n=DA(G,G>>31,121666,0),e=w,B=DA(b,b>>31,121666,0),I=w,G=B,B=(33554431&(I=(c=B+16777216|0)>>>0<16777216?I+1|0:I))<<7|c>>>25,I=(I>>25)+e|0,I=B>>>0>(n=B+n|0)>>>0?I+1|0:I,B=(y=n+33554432|0)>>>0<33554432?I+1|0:I,e=n-(-67108864&y)|0,o[C+128>>2]=e,n=(f=K+((67108863&f)<<6|u>>>26)|0)-(-33554432&k)|0,o[C+108>>2]=n,f=(Q=Y+((67108863&Q)<<6|l>>>26)|0)-(-33554432&r)|0,o[C+116>>2]=f,Q=(I=G+((67108863&g)<<6|i>>>26)|0)-(-33554432&c)|0,o[C+124>>2]=Q,g=(B=O+((67108863&B)<<6|y>>>26)|0)-(-33554432&t)|0,o[C+132>>2]=g,S(I=C+144|0,I),o[C+84>>2]=g+q,o[C+80>>2]=e+J,o[C+76>>2]=Q+N,o[C+72>>2]=h+x,o[C+68>>2]=f+j,o[C+64>>2]=s+L,o[C+60>>2]=n+R,o[C+56>>2]=M+d,o[C+52>>2]=p+m,o[C+48>>2]=H+V,g=uA-1|0,F(z,C+288|0,U),F(U,C,_),uA;);h=o[C+144>>2],H=o[C+240>>2],c=o[C+148>>2],p=o[C+244>>2],y=o[C+152>>2],u=o[C+248>>2],e=o[C+156>>2],M=o[C+252>>2],n=o[C+160>>2],k=o[C+256>>2],f=o[C+164>>2],l=o[C+260>>2],Q=o[C+168>>2],s=o[C+264>>2],B=o[C+172>>2],r=o[C+268>>2],g=o[C+176>>2],i=o[C+272>>2],t=0-T|0,I=o[C+276>>2],o[C+276>>2]=t&(I^o[C+180>>2])^I,o[C+272>>2]=i^t&(g^i),o[C+268>>2]=r^t&(B^r),o[C+264>>2]=s^t&(Q^s),o[C+260>>2]=l^t&(f^l),o[C+256>>2]=k^t&(n^k),o[C+252>>2]=M^t&(e^M),o[C+248>>2]=u^t&(y^u),o[C+244>>2]=p^t&(c^p),o[C+240>>2]=H^t&(h^H),H=o[C+192>>2],h=o[C+96>>2],p=o[C+196>>2],c=o[C+100>>2],u=o[C+200>>2],y=o[C+104>>2],M=o[C+204>>2],e=o[C+108>>2],k=o[C+208>>2],n=o[C+112>>2],l=o[C+212>>2],f=o[C+116>>2],s=o[C+216>>2],Q=o[C+120>>2],r=o[C+220>>2],B=o[C+124>>2],i=o[C+224>>2],g=o[C+128>>2],I=o[C+228>>2],o[C+228>>2]=t&(I^o[C+132>>2])^I,o[C+224>>2]=i^t&(g^i),o[C+220>>2]=r^t&(B^r),o[C+216>>2]=s^t&(Q^s),o[C+212>>2]=l^t&(f^l),o[C+208>>2]=k^t&(n^k),o[C+204>>2]=M^t&(e^M),o[C+200>>2]=u^t&(y^u),o[C+196>>2]=p^t&(c^p),o[C+192>>2]=H^t&(h^H),X(g=C+192|0,g),F(I=C+240|0,I,g),W(A,I),$A(C+336|0,32),B=0}return D=C+368|0,0|B},function(A,I){var g,C,B,Q,i,n,r,f,t,e,c,y,w,h,s,p,u,k,l,S;return I|=0,D=g=D-304|0,E[0|(A|=0)]=a[0|I],E[A+1|0]=a[I+1|0],E[A+2|0]=a[I+2|0],E[A+3|0]=a[I+3|0],E[A+4|0]=a[I+4|0],E[A+5|0]=a[I+5|0],E[A+6|0]=a[I+6|0],E[A+7|0]=a[I+7|0],E[A+8|0]=a[I+8|0],E[A+9|0]=a[I+9|0],E[A+10|0]=a[I+10|0],E[A+11|0]=a[I+11|0],E[A+12|0]=a[I+12|0],E[A+13|0]=a[I+13|0],E[A+14|0]=a[I+14|0],E[A+15|0]=a[I+15|0],E[A+16|0]=a[I+16|0],E[A+17|0]=a[I+17|0],E[A+18|0]=a[I+18|0],E[A+19|0]=a[I+19|0],E[A+20|0]=a[I+20|0],E[A+21|0]=a[I+21|0],E[A+22|0]=a[I+22|0],E[A+23|0]=a[I+23|0],E[A+24|0]=a[I+24|0],E[A+25|0]=a[I+25|0],E[A+26|0]=a[I+26|0],E[A+27|0]=a[I+27|0],E[A+28|0]=a[I+28|0],E[A+29|0]=a[I+29|0],E[A+30|0]=a[I+30|0],I=a[I+31|0],E[0|A]=248&a[0|A],E[A+31|0]=63&I|64,v(g+48|0,A),I=o[g+132>>2],C=o[g+92>>2],B=o[g+136>>2],Q=o[g+96>>2],i=o[g+140>>2],n=o[g+100>>2],r=o[g+144>>2],f=o[g+104>>2],t=o[g+148>>2],e=o[g+108>>2],c=o[g+152>>2],y=o[g+112>>2],w=o[g+156>>2],h=o[g+116>>2],s=o[g+160>>2],p=o[g+120>>2],u=o[g+128>>2],k=o[g+88>>2],l=o[g+124>>2],S=o[g+164>>2],o[g+292>>2]=l+S,o[g+288>>2]=s+p,o[g+284>>2]=w+h,o[g+280>>2]=c+y,o[g+276>>2]=t+e,o[g+272>>2]=r+f,o[g+268>>2]=i+n,o[g+264>>2]=B+Q,o[g+260>>2]=I+C,o[g+256>>2]=u+k,o[g+244>>2]=S-l,o[g+240>>2]=s-p,o[g+236>>2]=w-h,o[g+232>>2]=c-y,o[g+228>>2]=t-e,o[g+224>>2]=r-f,o[g+220>>2]=i-n,o[g+216>>2]=B-Q,o[g+212>>2]=I-C,o[g+208>>2]=u-k,X(I=g+208|0,I),F(g,g+256|0,I),W(A,g),D=g+304|0,0},function(A,I,g,C,B){A|=0,C|=0,B|=0;var Q,i=0,n=0,r=0,f=0;if(D=Q=D-112|0,(I|=0)|(g|=0)){i=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,o[Q+24>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,o[Q+28>>2]=i,i=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,o[Q+16>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,o[Q+20>>2]=i,i=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,o[Q>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,o[Q+4>>2]=i,i=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,o[Q+8>>2]=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,o[Q+12>>2]=i,B=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24,C=a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24,o[Q+104>>2]=0,o[Q+108>>2]=0,o[Q+96>>2]=B,o[Q+100>>2]=C;A:{if(!g&I>>>0>=64|g){for(;J(A,Q+96|0,Q),C=a[Q+104|0]+1|0,E[Q+104|0]=C,C=a[Q+105|0]+(C>>>8|0)|0,E[Q+105|0]=C,C=a[Q+106|0]+(C>>>8|0)|0,E[Q+106|0]=C,C=a[Q+107|0]+(C>>>8|0)|0,E[Q+107|0]=C,C=a[Q+108|0]+(C>>>8|0)|0,E[Q+108|0]=C,C=a[Q+109|0]+(C>>>8|0)|0,E[Q+109|0]=C,C=a[Q+110|0]+(C>>>8|0)|0,E[Q+110|0]=C,E[Q+111|0]=a[Q+111|0]+(C>>>8|0),A=A- -64|0,g=g-1|0,!(g=(I=I+-64|0)>>>0<4294967232?g+1|0:g)&I>>>0>63|g;);if(!(I|g))break A}if(C=0,J(Q+32|0,Q+96|0,Q),g=3&I,B=0,I-1>>>0>=3)for(i=-4&I,I=0;n=r=Q+32|0,E[A+B|0]=a[n+B|0],E[(f=1|B)+A|0]=a[n+f|0],E[(n=2|B)+A|0]=a[n+r|0],E[(n=3|B)+A|0]=a[n+(Q+32|0)|0],B=B+4|0,(0|i)!=(0|(I=I+4|0)););if(g)for(;E[A+B|0]=a[(Q+32|0)+B|0],B=B+1|0,(0|g)!=(0|(C=C+1|0)););}$A(Q+32|0,64),$A(Q,32)}return D=Q+112|0,0},function(A,I,g,C,B,Q,i,n){A|=0,I|=0,B|=0,Q|=0,i|=0,n|=0;var r,f=0;if(D=r=D-112|0,(g|=0)|(C|=0)){f=a[n+28|0]|a[n+29|0]<<8|a[n+30|0]<<16|a[n+31|0]<<24,o[r+24>>2]=a[n+24|0]|a[n+25|0]<<8|a[n+26|0]<<16|a[n+27|0]<<24,o[r+28>>2]=f,f=a[n+20|0]|a[n+21|0]<<8|a[n+22|0]<<16|a[n+23|0]<<24,o[r+16>>2]=a[n+16|0]|a[n+17|0]<<8|a[n+18|0]<<16|a[n+19|0]<<24,o[r+20>>2]=f,f=a[n+4|0]|a[n+5|0]<<8|a[n+6|0]<<16|a[n+7|0]<<24,o[r>>2]=a[0|n]|a[n+1|0]<<8|a[n+2|0]<<16|a[n+3|0]<<24,o[r+4>>2]=f,f=a[n+12|0]|a[n+13|0]<<8|a[n+14|0]<<16|a[n+15|0]<<24,o[r+8>>2]=a[n+8|0]|a[n+9|0]<<8|a[n+10|0]<<16|a[n+11|0]<<24,o[r+12>>2]=f,n=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,o[r+96>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,o[r+100>>2]=n,E[r+104|0]=Q,E[r+111|0]=i>>>24,E[r+110|0]=i>>>16,E[r+109|0]=i>>>8,E[r+108|0]=i,E[r+107|0]=(16777215&i)<<8|Q>>>24,E[r+106|0]=(65535&i)<<16|Q>>>16,E[r+105|0]=(255&i)<<24|Q>>>8;A:{if(!C&g>>>0>=64|C){for(;;){for(n=0,J(r+32|0,r+96|0,r);Q=r+32|0,E[A+n|0]=a[Q+n|0]^a[I+n|0],E[(B=1|n)+A|0]=a[B+Q|0]^a[I+B|0],64!=(0|(n=n+2|0)););if(B=a[r+104|0]+1|0,E[r+104|0]=B,B=a[r+105|0]+(B>>>8|0)|0,E[r+105|0]=B,B=a[r+106|0]+(B>>>8|0)|0,E[r+106|0]=B,B=a[r+107|0]+(B>>>8|0)|0,E[r+107|0]=B,B=a[r+108|0]+(B>>>8|0)|0,E[r+108|0]=B,B=a[r+109|0]+(B>>>8|0)|0,E[r+109|0]=B,B=a[r+110|0]+(B>>>8|0)|0,E[r+110|0]=B,E[r+111|0]=a[r+111|0]+(B>>>8|0),I=I- -64|0,A=A- -64|0,C=C-1|0,!(!(C=(g=g+-64|0)>>>0<4294967232?C+1|0:C)&g>>>0>63|C))break}if(!(g|C))break A}if(n=0,J(r+32|0,r+96|0,r),C=1&g,1!=(0|g))for(Q=-2&g,B=0;i=r+32|0,E[A+n|0]=a[i+n|0]^a[I+n|0],E[(g=1|n)+A|0]=a[g+i|0]^a[I+g|0],n=n+2|0,(0|Q)!=(0|(B=B+2|0)););C&&(E[A+n|0]=a[(r+32|0)+n|0]^a[I+n|0])}$A(r+32|0,64),$A(r,32)}return D=r+112|0,0}],aI.grow=function(A){var I=this.length;return this.length=this.length+A,I},aI.set=function(A,I){this[A]=I},aI.get=function(A){return this[A]},aI);function rI(){return i.byteLength/65536|0}return{f:function(){},g:function(A,I,g,C,B,Q,i,E,o,a,n,r){return 0|eA(A|=0,I|=0,g|=0,C|=0,(A=0)|(B|=0),Q|=0,i|=0,A|(E|=0),o|=0,n|=0,r|=0)},h:function(A,I,g,C,B,i,E,a,n,r,f){return A|=0,I|=0,n|=0,n=C|=0,!(C=B|=0)&(B=0|n)>>>0<4294967280?(eA(A,A+B|0,0,g|=0,B,C,i|=0,E|=0,a|=0,r|=0,f|=0),I&&(C=(A=B+16|0)>>>0<16?C+1|0:C,o[I>>2]=A,o[I+4>>2]=C)):(mA(),Q()),0},i:function(A,I,g,C,B,Q,i,E,o,a,n,r){return 0|fA(A|=0,I|=0,g|=0,C|=0,(A=0)|(B|=0),Q|=0,i|=0,A|(E|=0),o|=0,n|=0,r|=0)},j:function(A,I,g,C,B,i,E,a,n,r,f){return A|=0,I|=0,n|=0,n=C|=0,!(C=B|=0)&(B=0|n)>>>0<4294967280?(fA(A,A+B|0,0,g|=0,B,C,i|=0,E|=0,a|=0,r|=0,f|=0),I&&(C=(A=B+16|0)>>>0<16?C+1|0:C,o[I>>2]=A,o[I+4>>2]=C)):(mA(),Q()),0},k:function(A,I,g,C,B,Q,i,E,o,a,n){return 0|tA(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(E|=0),o|=0,a|=0,n|=0)},l:function(A,I,g,C,B,Q,i,E,a,n,r){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=tA(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,i|=0,E,a|=0,n|=0,r|=0)),I&&(o[I>>2]=g?0:B-16|0,o[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},m:function(A,I,g,C,B,Q,i,E,o,a,n){return 0|rA(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(E|=0),o|=0,a|=0,n|=0)},n:function(A,I,g,C,B,Q,i,E,a,n,r){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=rA(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,i|=0,E,a|=0,n|=0,r|=0)),I&&(o[I>>2]=g?0:B-16|0,o[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},o:II,p:function(){return 12},q:oI,r:AI,s:CI,t:ZA,u:II,v:EI,w:oI,x:AI,y:CI,z:ZA,A:function(A,I,g,C,B,Q,i,E,o,a,n,r){return 0|BA(A|=0,I|=0,g|=0,C|=0,(A=0)|(B|=0),Q|=0,i|=0,A|(E|=0),o|=0,n|=0,r|=0)},B:function(A,I,g,C,B,i,E,a,n,r,f){return A|=0,I|=0,n|=0,n=C|=0,!(C=B|=0)&(B=0|n)>>>0<4294967280?(BA(A,A+B|0,0,g|=0,B,C,i|=0,E|=0,a|=0,r|=0,f|=0),I&&(C=(A=B+16|0)>>>0<16?C+1|0:C,o[I>>2]=A,o[I+4>>2]=C)):(mA(),Q()),0},C:function(A,I,g,C,B,Q,i,E,o,a,n){return 0|CA(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(E|=0),o|=0,a|=0,n|=0)},D:function(A,I,g,C,B,Q,i,E,a,n,r){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=CA(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,i|=0,E,a|=0,n|=0,r|=0)),I&&(o[I>>2]=g?0:B-16|0,o[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},E:II,F:gI,G:oI,H:AI,I:CI,J:ZA,K:II,L:II,M:function(A,I,g,C,B){var Q;return A|=0,I|=0,g|=0,C|=0,D=Q=D-480|0,AA(Q,B|=0),WA(Q,I,g,C),UA(Q,Q+416|0),I=o[Q+444>>2],g=o[Q+440>>2],E[A+24|0]=g,E[A+25|0]=g>>>8,E[A+26|0]=g>>>16,E[A+27|0]=g>>>24,E[A+28|0]=I,E[A+29|0]=I>>>8,E[A+30|0]=I>>>16,E[A+31|0]=I>>>24,I=o[Q+436>>2],g=o[Q+432>>2],E[A+16|0]=g,E[A+17|0]=g>>>8,E[A+18|0]=g>>>16,E[A+19|0]=g>>>24,E[A+20|0]=I,E[A+21|0]=I>>>8,E[A+22|0]=I>>>16,E[A+23|0]=I>>>24,I=o[Q+428>>2],g=o[Q+424>>2],E[A+8|0]=g,E[A+9|0]=g>>>8,E[A+10|0]=g>>>16,E[A+11|0]=g>>>24,E[A+12|0]=I,E[A+13|0]=I>>>8,E[A+14|0]=I>>>16,E[A+15|0]=I>>>24,I=o[Q+420>>2],g=o[Q+416>>2],E[0|A]=g,E[A+1|0]=g>>>8,E[A+2|0]=g>>>16,E[A+3|0]=g>>>24,E[A+4|0]=I,E[A+5|0]=I>>>8,E[A+6|0]=I>>>16,E[A+7|0]=I>>>24,D=Q+480|0,0},N:function(A,I,g,C,B){var Q,i;return A|=0,I|=0,g|=0,C|=0,D=Q=D-512|0,AA(i=Q+32|0,B|=0),WA(i,I,g,C),UA(i,Q+448|0),I=o[Q+476>>2],o[Q+24>>2]=o[Q+472>>2],o[Q+28>>2]=I,I=o[Q+468>>2],o[Q+16>>2]=o[Q+464>>2],o[Q+20>>2]=I,I=o[Q+460>>2],o[Q+8>>2]=o[Q+456>>2],o[Q+12>>2]=I,I=o[Q+452>>2],o[Q>>2]=o[Q+448>>2],o[Q+4>>2]=I,I=cA(A,Q),g=oA(Q,A,32),D=Q+512|0,g|((0|A)==(0|Q)?-1:I)},O:ZA,P:II,Q:II,R:II,S:II,T:gI,U:AI,V:CI,W:function(A,I,g){A|=0,I|=0;var C,B=0;return D=C=D+-64|0,QA(C,g|=0,32,0),g=o[C+28>>2],B=o[C+24>>2],E[I+24|0]=B,E[I+25|0]=B>>>8,E[I+26|0]=B>>>16,E[I+27|0]=B>>>24,E[I+28|0]=g,E[I+29|0]=g>>>8,E[I+30|0]=g>>>16,E[I+31|0]=g>>>24,g=o[C+20>>2],B=o[C+16>>2],E[I+16|0]=B,E[I+17|0]=B>>>8,E[I+18|0]=B>>>16,E[I+19|0]=B>>>24,E[I+20|0]=g,E[I+21|0]=g>>>8,E[I+22|0]=g>>>16,E[I+23|0]=g>>>24,g=o[C+12>>2],B=o[C+8>>2],E[I+8|0]=B,E[I+9|0]=B>>>8,E[I+10|0]=B>>>16,E[I+11|0]=B>>>24,E[I+12|0]=g,E[I+13|0]=g>>>8,E[I+14|0]=g>>>16,E[I+15|0]=g>>>24,g=o[C+4>>2],B=o[C>>2],E[0|I]=B,E[I+1|0]=B>>>8,E[I+2|0]=B>>>16,E[I+3|0]=B>>>24,E[I+4|0]=g,E[I+5|0]=g>>>8,E[I+6|0]=g>>>16,E[I+7|0]=g>>>24,$A(C,64),A=VA(A,I),D=C- -64|0,0|A},X:dA,Y:SA,Z:JA,_:function(A,I,g,C,B,Q,i,E){var o,a;return A|=0,I|=0,g|=0,Q|=0,a=C|=0,C=B|=0,D=o=D-32|0,B=-1,SA(o,i|=0,E|=0)||(B=IA(A,I,g,a,C,Q,o),$A(o,32)),D=o+32|0,0|B},$:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(mA(),Q()),0|IA(A+16|0,A,I,g,C,B,i)},aa:function(A,I,g,C,B,Q,i){return 0|FA(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},ba:NA,ca:function(A,I,g,C,B,Q,i,E){var o,a;return A|=0,I|=0,g|=0,Q|=0,a=C|=0,C=B|=0,D=o=D-32|0,B=-1,SA(o,i|=0,E|=0)||(B=gA(A,I,g,a,C,Q,o),$A(o,32)),D=o+32|0,0|B},da:lA,ea:function(A,I,g,C,B,Q,i){return 0|sA(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},fa:function(A,I,g,C,B){A|=0,I|=0,B|=0;var Q,i,a,n=0,r=0;return i=g|=0,g=C|=0,a=C=D,D=Q=C-512&-64,C=-1,dA(Q- -64|0,Q+32|0)||(Y(C=Q+128|0,0,0,24),z(C,r=Q- -64|0,32,0),z(C,B,32,0),GA(C,n=Q+96|0,24),C=FA(A+32|0,I,i,g,n,C=B,B=Q+32|0),I=o[Q+92>>2],g=o[Q+88>>2],E[A+24|0]=g,E[A+25|0]=g>>>8,E[A+26|0]=g>>>16,E[A+27|0]=g>>>24,E[A+28|0]=I,E[A+29|0]=I>>>8,E[A+30|0]=I>>>16,E[A+31|0]=I>>>24,I=o[Q+84>>2],g=o[Q+80>>2],E[A+16|0]=g,E[A+17|0]=g>>>8,E[A+18|0]=g>>>16,E[A+19|0]=g>>>24,E[A+20|0]=I,E[A+21|0]=I>>>8,E[A+22|0]=I>>>16,E[A+23|0]=I>>>24,I=o[Q+76>>2],g=o[Q+72>>2],E[A+8|0]=g,E[A+9|0]=g>>>8,E[A+10|0]=g>>>16,E[A+11|0]=g>>>24,E[A+12|0]=I,E[A+13|0]=I>>>8,E[A+14|0]=I>>>16,E[A+15|0]=I>>>24,I=o[Q+68>>2],g=o[Q+64>>2],E[0|A]=g,E[A+1|0]=g>>>8,E[A+2|0]=g>>>16,E[A+3|0]=g>>>24,E[A+4|0]=I,E[A+5|0]=I>>>8,E[A+6|0]=I>>>16,E[A+7|0]=I>>>24,$A(B,32),$A(r,32),$A(n,24)),D=a,0|C},ga:function(A,I,g,C,B,Q){A|=0,I|=0,B|=0,Q|=0;var i,E,o=0,a=0;return i=o=D,D=o=o-448&-64,a=-1,E=C|=0,!C&(g|=0)>>>0>=48|C&&(Y(C=o- -64|0,0,0,24),z(C,I,32,0),z(C,B,32,0),GA(B=C,C=o+32|0,24),a=sA(A,I+32|0,g-32|0,E-(g>>>0<32)|0,C,I,Q)),D=i,0|a},ha:function(){return 48},ia:AI,ja:BI,ka:II,la:AI,ma:BI,na:II,oa:function(){return 384},pa:function(A,I,g,C,B,Q,i){return 0|R(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},qa:Y,ra:function(A,I,g,C){return 0|z(A|=0,I|=0,g|=0,C|=0)},sa:GA,ta:ZA,ua:BI,va:function(A,I,g,C){return 0|QA(A|=0,I|=0,g|=0,C|=0)},wa:AI,xa:BI,ya:EI,za:II,Aa:function(A,I,g,C,B,i){A|=0,I|=0,g|=0,C|=0,i|=0;var E,n=0,r=0,f=0,t=0,e=0,c=0,y=0;return D=E=D-32|0,n=a[0|(B|=0)]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,B=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,o[E+24>>2]=0,o[E+28>>2]=0,o[E+16>>2]=n,o[E+20>>2]=B,o[E+8>>2]=0,o[E+12>>2]=0,o[(B=E)>>2]=g,o[B+4>>2]=C,I-65>>>0<=4294967246?(o[8916]=28,A=-1):I-65>>>0<4294967232?A=-1:(D=B=(f=D)-512&-64,!i|!A|((r=255&I)-65&255)>>>0<=191?(mA(),Q()):(C=E+16|0,E?(t=725511199^(a[E+8|0]|a[E+9|0]<<8|a[E+10|0]<<16|a[E+11|0]<<24),e=-1694144372^(a[E+12|0]|a[E+13|0]<<8|a[E+14|0]<<16|a[E+15|0]<<24),g=-1377402159^(a[0|E]|a[E+1|0]<<8|a[E+2|0]<<16|a[E+3|0]<<24),I=1359893119^(a[E+4|0]|a[E+5|0]<<8|a[E+6|0]<<16|a[E+7|0]<<24)):(t=725511199,e=-1694144372,g=-1377402159,I=1359893119),C?(c=327033209^(a[C+8|0]|a[C+9|0]<<8|a[C+10|0]<<16|a[C+11|0]<<24),y=1541459225^(a[C+12|0]|a[C+13|0]<<8|a[C+14|0]<<16|a[C+15|0]<<24),n=-79577749^(a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24),C=528734635^(a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24)):(c=327033209,y=1541459225,n=-79577749,C=528734635),MA(B- -64|0,0,293),o[B+56>>2]=c,o[B+60>>2]=y,o[B+48>>2]=n,o[B+52>>2]=C,o[B+40>>2]=t,o[B+44>>2]=e,o[B+32>>2]=g,o[B+36>>2]=I,o[B+24>>2]=1595750129,o[B+28>>2]=-1521486534,o[B+16>>2]=-23791573,o[B+20>>2]=1013904242,o[B+8>>2]=-2067093701,o[B+12>>2]=-1150833019,o[B>>2]=-222443256^(8192|r),o[B+4>>2]=1779033703,MA(32+(I=B+384|0)|0,0,96),HA(I,i,32),HA(B+96|0,I,128),o[B+352>>2]=128,$A(I,128),G(B,A,r),D=f),A=0),D=E+32|0,0|A},Ba:ZA,Ca:function(A,I,g){return A|=0,R(I|=0,32,g|=0,32,0,0,0),0|jA(A,I)},Da:function(A,I){return A|=0,hA(I|=0,32),0|jA(A,I)},Ea:function(A,I,g,C,B){I|=0,g|=0,C|=0,B|=0;var i,o,n=0,r=0;if(o=n=D,D=n=n-512&-64,i=(A|=0)||I){if(r=-1,!PA(n+96|0,C,B)){for(C=I||A,A=0,Y(I=n+128|0,0,0,64),z(I,r=n+96|0,32,0),$A(r,32),z(I,g,32,0),z(I,B,32,0),GA(I,n+32|0,64),$A(I,384);I=(B=n+32|0)+A|0,E[A+i|0]=a[0|I],E[A+C|0]=a[I+32|0],E[(g=1|A)+i|0]=a[g+B|0],E[g+C|0]=a[I+33|0],32!=(0|(A=A+2|0)););$A(n+32|0,64),r=0}return D=o,0|r}mA(),Q()},Fa:function(A,I,g,C,B){I|=0,g|=0,C|=0,B|=0;var i,o,n=0,r=0;if(o=n=D,D=n=n-512&-64,i=(A|=0)||I){if(r=-1,!PA(n+96|0,C,B)){for(C=I||A,A=0,Y(I=n+128|0,0,0,64),z(I,r=n+96|0,32,0),$A(r,32),z(I,B,32,0),z(I,g,32,0),GA(I,n+32|0,64),$A(I,384);I=(B=n+32|0)+A|0,E[A+C|0]=a[0|I],E[A+i|0]=a[I+32|0],E[(g=1|A)+C|0]=a[g+B|0],E[g+i|0]=a[I+33|0],32!=(0|(A=A+2|0)););$A(n+32|0,64),r=0}return D=o,0|r}mA(),Q()},Ga:II,Ha:II,Ia:II,Ja:II,Ka:jA,La:PA,Ma:II,Na:II,Oa:II,Pa:gI,Qa:AI,Ra:CI,Sa:ZA,Ta:JA,Ua:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(mA(),Q()),IA(A+16|0,A,I,g,C,B,i),0},Va:NA,Wa:lA,Xa:ZA,Ya:function(A,I,g){return A|=0,g|=0,hA(I|=0,24),d(A,I,g),E[A+32|0]=1,E[A+33|0]=0,E[A+34|0]=0,E[A+35|0]=0,g=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,I=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,E[A+44|0]=0,E[A+45|0]=0,E[A+46|0]=0,E[A+47|0]=0,E[A+48|0]=0,E[A+49|0]=0,E[A+50|0]=0,E[A+51|0]=0,E[A+36|0]=g,E[A+37|0]=g>>>8,E[A+38|0]=g>>>16,E[A+39|0]=g>>>24,E[A+40|0]=I,E[A+41|0]=I>>>8,E[A+42|0]=I>>>16,E[A+43|0]=I>>>24,0},Za:function(A,I,g){return d(A|=0,I|=0,g|=0),E[A+32|0]=1,E[A+33|0]=0,E[A+34|0]=0,E[A+35|0]=0,g=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,I=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,E[A+44|0]=0,E[A+45|0]=0,E[A+46|0]=0,E[A+47|0]=0,E[A+48|0]=0,E[A+49|0]=0,E[A+50|0]=0,E[A+51|0]=0,E[A+36|0]=g,E[A+37|0]=g>>>8,E[A+38|0]=g>>>16,E[A+39|0]=g>>>24,E[A+40|0]=I,E[A+41|0]=I>>>8,E[A+42|0]=I>>>16,E[A+43|0]=I>>>24,0},_a:function(A){var I,g=0,C=0;D=I=D-48|0,g=a[28+(A|=0)|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24,o[I+24>>2]=a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,o[I+28>>2]=g,g=a[A+20|0]|a[A+21|0]<<8|a[A+22|0]<<16|a[A+23|0]<<24,o[I+16>>2]=a[A+16|0]|a[A+17|0]<<8|a[A+18|0]<<16|a[A+19|0]<<24,o[I+20>>2]=g,g=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,o[I>>2]=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,o[I+4>>2]=g,g=a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24,o[I+8>>2]=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,o[I+12>>2]=g,g=a[A+40|0]|a[A+41|0]<<8|a[A+42|0]<<16|a[A+43|0]<<24,o[I+32>>2]=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24,o[I+36>>2]=g,xA(I,I,A+32|0,A),g=o[I+28>>2],C=o[I+24>>2],E[A+24|0]=C,E[A+25|0]=C>>>8,E[A+26|0]=C>>>16,E[A+27|0]=C>>>24,E[A+28|0]=g,E[A+29|0]=g>>>8,E[A+30|0]=g>>>16,E[A+31|0]=g>>>24,g=o[I+20>>2],C=o[I+16>>2],E[A+16|0]=C,E[A+17|0]=C>>>8,E[A+18|0]=C>>>16,E[A+19|0]=C>>>24,E[A+20|0]=g,E[A+21|0]=g>>>8,E[A+22|0]=g>>>16,E[A+23|0]=g>>>24,g=o[I+12>>2],C=o[I+8>>2],E[A+8|0]=C,E[A+9|0]=C>>>8,E[A+10|0]=C>>>16,E[A+11|0]=C>>>24,E[A+12|0]=g,E[A+13|0]=g>>>8,E[A+14|0]=g>>>16,E[A+15|0]=g>>>24,g=o[I+4>>2],C=o[I>>2],E[0|A]=C,E[A+1|0]=C>>>8,E[A+2|0]=C>>>16,E[A+3|0]=C>>>24,E[A+4|0]=g,E[A+5|0]=g>>>8,E[A+6|0]=g>>>16,E[A+7|0]=g>>>24,C=o[I+36>>2],g=o[I+32>>2],E[A+32|0]=1,E[A+33|0]=0,E[A+34|0]=0,E[A+35|0]=0,E[A+36|0]=g,E[A+37|0]=g>>>8,E[A+38|0]=g>>>16,E[A+39|0]=g>>>24,E[A+40|0]=C,E[A+41|0]=C>>>8,E[A+42|0]=C>>>16,E[A+43|0]=C>>>24,D=I+48|0},$a:function(A,I,g,C,B,i,n,r,f,t){A|=0,I|=0,C|=0,n|=0,f|=0,t|=0;var e,c=0,y=0,w=0;return c=B|=0,B=i|=0,c|=i=0,e=i|(r|=0),D=i=D-384|0,(g|=0)&&(o[g>>2]=0,o[g+4>>2]=0),!B&c>>>0<4294967279?(XA(y=i+16|0,64,w=A+32|0,A),OA(r=i+80|0,y),$A(y,64),zA(r,n,e,f),zA(r,33904,0-e&15,0),o[i+72>>2]=0,o[i+76>>2]=0,o[(n=i- -64|0)>>2]=0,o[n+4>>2]=0,o[i+56>>2]=0,o[i+60>>2]=0,o[i+48>>2]=0,o[i+52>>2]=0,o[i+40>>2]=0,o[i+44>>2]=0,o[i+32>>2]=0,o[i+36>>2]=0,o[i+16>>2]=0,o[i+20>>2]=0,o[i+24>>2]=0,o[i+28>>2]=0,E[i+16|0]=t,wA(y,y,64,0,w,1,A),zA(r,y,64,0),E[0|I]=a[i+16|0],wA(I=I+1|0,C,c,B,w,2,A),zA(r,I,c,B),zA(r,33904,15&c,0),o[i+8>>2]=e,o[i+12>>2]=f,zA(r,C=i+8|0,8,0),o[i+8>>2]=c- -64,o[i+12>>2]=B-((c>>>0<4294967232)-1|0),zA(r,C,8,0),TA(r,I=I+c|0),$A(r,256),E[A+36|0]=a[A+36|0]^a[0|I],E[A+37|0]=a[A+37|0]^a[I+1|0],E[A+38|0]=a[A+38|0]^a[I+2|0],E[A+39|0]=a[A+39|0]^a[I+3|0],E[A+40|0]=a[A+40|0]^a[I+4|0],E[A+41|0]=a[A+41|0]^a[I+5|0],E[A+42|0]=a[A+42|0]^a[I+6|0],E[A+43|0]=a[A+43|0]^a[I+7|0],yA(w),(2&t||iA(w,4))&&(I=a[A+28|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24,o[i+360>>2]=a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,o[i+364>>2]=I,I=a[A+20|0]|a[A+21|0]<<8|a[A+22|0]<<16|a[A+23|0]<<24,o[i+352>>2]=a[A+16|0]|a[A+17|0]<<8|a[A+18|0]<<16|a[A+19|0]<<24,o[i+356>>2]=I,I=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,o[i+336>>2]=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,o[i+340>>2]=I,I=a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24,o[i+344>>2]=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,o[i+348>>2]=I,I=a[A+40|0]|a[A+41|0]<<8|a[A+42|0]<<16|a[A+43|0]<<24,o[i+368>>2]=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24,o[i+372>>2]=I,xA(I=i+336|0,I,w,A),I=o[i+364>>2],C=o[i+360>>2],E[A+24|0]=C,E[A+25|0]=C>>>8,E[A+26|0]=C>>>16,E[A+27|0]=C>>>24,E[A+28|0]=I,E[A+29|0]=I>>>8,E[A+30|0]=I>>>16,E[A+31|0]=I>>>24,I=o[i+356>>2],C=o[i+352>>2],E[A+16|0]=C,E[A+17|0]=C>>>8,E[A+18|0]=C>>>16,E[A+19|0]=C>>>24,E[A+20|0]=I,E[A+21|0]=I>>>8,E[A+22|0]=I>>>16,E[A+23|0]=I>>>24,I=o[i+348>>2],C=o[i+344>>2],E[A+8|0]=C,E[A+9|0]=C>>>8,E[A+10|0]=C>>>16,E[A+11|0]=C>>>24,E[A+12|0]=I,E[A+13|0]=I>>>8,E[A+14|0]=I>>>16,E[A+15|0]=I>>>24,I=o[i+340>>2],C=o[i+336>>2],E[0|A]=C,E[A+1|0]=C>>>8,E[A+2|0]=C>>>16,E[A+3|0]=C>>>24,E[A+4|0]=I,E[A+5|0]=I>>>8,E[A+6|0]=I>>>16,E[A+7|0]=I>>>24,I=o[i+368>>2],C=o[i+372>>2],E[A+32|0]=1,E[A+33|0]=0,E[A+34|0]=0,E[A+35|0]=0,E[A+36|0]=I,E[A+37|0]=I>>>8,E[A+38|0]=I>>>16,E[A+39|0]=I>>>24,E[A+40|0]=C,E[A+41|0]=C>>>8,E[A+42|0]=C>>>16,E[A+43|0]=C>>>24),g&&(B=(A=c+17|0)>>>0<17?B+1|0:B,o[g>>2]=A,o[g+4>>2]=B),D=i+384|0):(mA(),Q()),0},ab:function(A,I,g,C,B,i,n,r,f,t){A|=0,I|=0,C|=0,B|=0,r|=0,t|=0;var e,c=0,y=0,w=0,h=0,s=0,p=0;c=i|=0,i=n|=0,y=0|c,e=f|=0,D=n=D-400|0,(g|=0)&&(o[g>>2]=0,o[g+4>>2]=0),C&&(E[0|C]=255),p=-1;A:{I:{if(!(!i&y>>>0<17)){if(s=c=i-(y>>>0<17)|0,!c&(f=y-17|0)>>>0>=4294967279|c)break I;XA(w=n+32|0,64,h=A+32|0,A),OA(c=n+96|0,w),$A(w,64),zA(c,r,e,t),zA(c,33904,0-e&15,0),o[n+88>>2]=0,o[n+92>>2]=0,o[n+80>>2]=0,o[n+84>>2]=0,o[n+72>>2]=0,o[n+76>>2]=0,o[(r=n- -64|0)>>2]=0,o[r+4>>2]=0,o[n+56>>2]=0,o[n+60>>2]=0,o[n+48>>2]=0,o[n+52>>2]=0,o[n+40>>2]=0,o[n+44>>2]=0,o[n+32>>2]=0,o[n+36>>2]=0,E[n+32|0]=a[0|B],wA(w,w,64,0,h,1,A),r=a[n+32|0],E[n+32|0]=a[0|B],zA(c,w,64,0),zA(c,B=B+1|0,f,s),zA(c,33904,y-1&15,0),o[n+24>>2]=e,o[n+28>>2]=t,zA(c,t=n+24|0,8,0),i=(y=y+47|0)>>>0<47?i+1|0:i,o[n+24>>2]=y,o[n+28>>2]=i,zA(c,t,8,0),TA(c,n),$A(c,256),oA(n,B+f|0,16)?$A(n,16):(wA(I,B,f,s,h,2,A),E[A+36|0]=a[A+36|0]^a[0|n],E[A+37|0]=a[A+37|0]^a[n+1|0],E[A+38|0]=a[A+38|0]^a[n+2|0],E[A+39|0]=a[A+39|0]^a[n+3|0],E[A+40|0]=a[A+40|0]^a[n+4|0],E[A+41|0]=a[A+41|0]^a[n+5|0],E[A+42|0]=a[A+42|0]^a[n+6|0],E[A+43|0]=a[A+43|0]^a[n+7|0],yA(h),(2&r||iA(h,4))&&(I=a[A+28|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24,o[n+376>>2]=a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,o[n+380>>2]=I,I=a[A+20|0]|a[A+21|0]<<8|a[A+22|0]<<16|a[A+23|0]<<24,o[n+368>>2]=a[A+16|0]|a[A+17|0]<<8|a[A+18|0]<<16|a[A+19|0]<<24,o[n+372>>2]=I,I=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,o[n+352>>2]=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,o[n+356>>2]=I,I=a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24,o[n+360>>2]=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,o[n+364>>2]=I,I=a[A+40|0]|a[A+41|0]<<8|a[A+42|0]<<16|a[A+43|0]<<24,o[n+384>>2]=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24,o[n+388>>2]=I,xA(I=n+352|0,I,h,A),I=o[n+380>>2],B=o[n+376>>2],E[A+24|0]=B,E[A+25|0]=B>>>8,E[A+26|0]=B>>>16,E[A+27|0]=B>>>24,E[A+28|0]=I,E[A+29|0]=I>>>8,E[A+30|0]=I>>>16,E[A+31|0]=I>>>24,I=o[n+372>>2],B=o[n+368>>2],E[A+16|0]=B,E[A+17|0]=B>>>8,E[A+18|0]=B>>>16,E[A+19|0]=B>>>24,E[A+20|0]=I,E[A+21|0]=I>>>8,E[A+22|0]=I>>>16,E[A+23|0]=I>>>24,I=o[n+364>>2],B=o[n+360>>2],E[A+8|0]=B,E[A+9|0]=B>>>8,E[A+10|0]=B>>>16,E[A+11|0]=B>>>24,E[A+12|0]=I,E[A+13|0]=I>>>8,E[A+14|0]=I>>>16,E[A+15|0]=I>>>24,I=o[n+356>>2],B=o[n+352>>2],E[0|A]=B,E[A+1|0]=B>>>8,E[A+2|0]=B>>>16,E[A+3|0]=B>>>24,E[A+4|0]=I,E[A+5|0]=I>>>8,E[A+6|0]=I>>>16,E[A+7|0]=I>>>24,I=o[n+384>>2],B=o[n+388>>2],E[A+32|0]=1,E[A+33|0]=0,E[A+34|0]=0,E[A+35|0]=0,E[A+36|0]=I,E[A+37|0]=I>>>8,E[A+38|0]=I>>>16,E[A+39|0]=I>>>24,E[A+40|0]=B,E[A+41|0]=B>>>8,E[A+42|0]=B>>>16,E[A+43|0]=B>>>24),g&&(o[g>>2]=f,o[g+4>>2]=s),p=0,C&&(E[0|C]=r))}D=n+400|0;break A}mA(),Q()}return 0|p},bb:function(){return 52},cb:function(){return 17},db:gI,eb:II,fb:function(){return-18},gb:oI,hb:QI,ib:function(){return 2},jb:iI,kb:EI,lb:AI,mb:function(A,I,g,C,B){A|=0,I|=0,g|=0,C|=0;var Q,i=0,o=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,h=0,s=0,p=0,u=0,k=0,F=0;if(p=1886610805^(B=a[0|(i=B|=0)]|a[i+1|0]<<8|a[i+2|0]<<16|a[i+3|0]<<24),u=1936682341^(o=a[i+4|0]|a[i+5|0]<<8|a[i+6|0]<<16|a[i+7|0]<<24),B^=1852142177,n=1819895653^o,k=1852075885^(o=a[i+8|0]|a[i+9|0]<<8|a[i+10|0]<<16|a[i+11|0]<<24),F=1685025377^(i=a[i+12|0]|a[i+13|0]<<8|a[i+14|0]<<16|a[i+15|0]<<24),r=2037671283^o,o=1952801890^i,D=g,(0|(c=(I+g|0)-(Q=7&g)|0))!=(0|I)){for(;g=(h=o^(s=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24))+n|0,r=B=(i=C=r^(y=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24))+B|0,e=g=B>>>0>>0?g+1|0:g,g=u+F|0,g=(n=p+k|0)>>>0>>0?g+1|0:g,i=nA(k,F,13)^n,o=g,g=e+(B=g^w)|0,g=i>>>0>(f=r+i|0)>>>0?g+1|0:g,i=nA(i,B,17)^f,t=g,p=nA(i,B=g^w,13),u=w,g=nA(C,h,16),C=e^w,h=g^r,o=nA(n,o,32),g=w+C|0,g=(o=(n=h+o|0)>>>0>>0?g+1|0:g)+B|0,e=g=(r=i+n|0)>>>0>>0?g+1|0:g,p=nA(i=r^p,B=g^u,17),u=w,g=nA(h,C,21),C=o^w,h=g^n,o=nA(f,t,32),g=w+C|0,g=(o=(n=h+o|0)>>>0>>0?g+1|0:g)+B|0,k=(i=i+n|0)^p,B=g=i>>>0>>0?g+1|0:g,F=g^u,g=nA(h,C,16),f=o^=w,t=nA(g^=n,o,21),n=w,e=(o=nA(r,e,32))+g|0,g=w+f|0,r=t^e,o=(g=o>>>0>e>>>0?g+1|0:g)^n,B=nA(i,B,32),n=w,p=e^y,u=g^s,(0|c)!=(0|(I=I+8|0)););I=c}switch(s=0,t=D<<24,Q-1|0){case 6:t|=a[I+6|0]<<16;case 5:t|=a[I+5|0]<<8;case 4:t|=a[I+4|0];case 3:s|=(C=a[I+3|0])<<24,t|=g=C>>>8|0;case 2:s|=(C=a[I+2|0])<<16,t|=g=C>>>16|0;case 1:s|=(C=a[I+1|0])<<8,t|=g=C>>>24|0;case 0:s=a[0|I]|s}return I=A,C=nA(i=r^s,A=o^t,16),A=A+n|0,e=A=(r=B+i|0)>>>0>>0?A+1|0:A,f=nA(B=C^r,A^=g=w,21),o=w,g=u+F|0,C=g=(i=p+k|0)>>>0>>0?g+1|0:g,c=B,B=nA(i,g,32),g=w+A|0,A=o,o=g=B>>>0>(n=c+B|0)>>>0?g+1|0:g,D=nA(B=n^f,A^=g,16),y=w,i=(g=r)+(r=c=nA(k,F,13)^i)|0,g=(f=w^C)+e|0,C=i,e=B,B=nA(i,g=i>>>0>>0?g+1|0:g,32),A=w+A|0,h=nA(i=(r=e+B|0)^D,B=(e=B>>>0>r>>>0?A+1|0:A)^y,21),y=w,c=nA(c,f,17)^C,g=(f=w^g)+o|0,A=g=(A=c)>>>0>(C=A+n|0)>>>0?g+1|0:g,o=i,i=nA(C,g,32),g=w+B|0,D=g=(o=i>>>0>(n=o+i|0)>>>0?g+1|0:g)^y,y=nA(h^=n,g,16),i=w,c=nA(c,f,13)^C,A=(f=A^w)+e|0,C=A=(g=c)>>>0>(B=g+r|0)>>>0?A+1|0:A,A=nA(B,A,32),g=D+w|0,D=g=(r=i)^(i=(A=h+(255^A)|0)>>>0>>0?g+1|0:g),r=A,y=nA(h=y^A,g,21),e=w,c=nA(c,f,17)^B,g=(f=C^w)+(o^t)|0,C=g=(A=n^s)>>>0>(B=c+A|0)>>>0?g+1|0:g,A=nA(B,g,32),g=D+w|0,g=(o=(A=A+h|0)>>>0>>0?g+1|0:g)^e,e=A,y=nA(D=y^A,g,16),n=w,f=nA(c,f,13)^B,A=i+(t=w^C)|0,C=A=(B=r+f|0)>>>0>>0?A+1|0:A,A=nA(B,A,32),g=g+w|0,c=g=(i=(A=A+D|0)>>>0>>0?g+1|0:g)^n,n=A,y=nA(D=y^A,g,21),r=w,A=nA(f,t,17),g=o+(f=C^w)|0,C=g=(B=e+(t=A^B)|0)>>>0>>0?g+1|0:g,A=nA(B,g,32),g=c+w|0,r=g=(o=(A=A+D|0)>>>0>>0?g+1|0:g)^r,e=A,c=nA(D=y^A,g,16),y=w,A=nA(t,f,13),g=i+(f=C^w)|0,C=g=(i=n+(t=A^B)|0)>>>0>>0?g+1|0:g,A=nA(i,g,32),g=r+w|0,r=A=A+D|0,n=g=A>>>0>>0?g+1|0:g,D=nA(B=c^A,A=g^y,21),c=w,t=nA(t,f,17),g=o+(y=C^w)|0,f=i^t,i=B,B=nA(C=e+f|0,g=C>>>0>>0?g+1|0:g,32),A=w+A|0,c=nA(i=(e=i+B|0)^D,B=(o=B>>>0>e>>>0?A+1|0:A)^c,16),t=w,A=nA(f,y,13),g=n+(y=g^w)|0,A=g=(C=r+(f=A^C)|0)>>>0>>0?g+1|0:g,n=nA(C,g,32),g=w+B|0,B=i=n+i|0,t=nA(i^c,(g=i>>>0>>0?g+1|0:g)^t,21),r=w,C=nA(f,y,17)^C,n=nA(C,A^=w,13),A=A+o|0,o=A=w^((C=C+e|0)>>>0>>0?A+1|0:A),C=nA(i=C^n,A,17)^t,A=w^r,g=g+o|0,r=B,C=nA(B=B+i|0,g=r>>>0>B>>>0?g+1|0:g,32)^C^B,E[0|I]=C,E[I+1|0]=C>>>8,E[I+2|0]=C>>>16,E[I+3|0]=C>>>24,A^=g^w,E[I+4|0]=A,E[I+5|0]=A>>>8,E[I+6|0]=A>>>16,E[I+7|0]=A>>>24,0},nb:function(A){hA(A|=0,16)},ob:function(){return 208},pb:BI,qb:II,rb:II,sb:BI,tb:function(){return-65},ub:function(A,I,g){A|=0;var C,B,Q,i,o=0,n=0,r=0,f=0,t=0;return D=Q=D-160|0,QA(I|=0,g|=0,32,0),E[0|I]=248&a[0|I],E[I+31|0]=63&a[I+31|0]|64,v(Q,I),uA(A,Q),n=a[(B=g)+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,o=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,r=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,f=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,t=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,g=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,i=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,C=I,I=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,E[C+24|0]=I,E[C+25|0]=I>>>8,E[C+26|0]=I>>>16,E[C+27|0]=I>>>24,E[C+28|0]=i,E[C+29|0]=i>>>8,E[C+30|0]=i>>>16,E[C+31|0]=i>>>24,E[C+16|0]=r,E[C+17|0]=r>>>8,E[C+18|0]=r>>>16,E[C+19|0]=r>>>24,E[C+20|0]=f,E[C+21|0]=f>>>8,E[C+22|0]=f>>>16,E[C+23|0]=f>>>24,E[C+8|0]=n,E[C+9|0]=n>>>8,E[C+10|0]=n>>>16,E[C+11|0]=n>>>24,E[C+12|0]=o,E[C+13|0]=o>>>8,E[C+14|0]=o>>>16,E[C+15|0]=o>>>24,E[0|C]=t,E[C+1|0]=t>>>8,E[C+2|0]=t>>>16,E[C+3|0]=t>>>24,E[C+4|0]=g,E[C+5|0]=g>>>8,E[C+6|0]=g>>>16,E[C+7|0]=g>>>24,r=a[(o=A)+8|0]|a[o+9|0]<<8|a[o+10|0]<<16|a[o+11|0]<<24,f=a[o+12|0]|a[o+13|0]<<8|a[o+14|0]<<16|a[o+15|0]<<24,t=a[o+16|0]|a[o+17|0]<<8|a[o+18|0]<<16|a[o+19|0]<<24,g=a[o+20|0]|a[o+21|0]<<8|a[o+22|0]<<16|a[o+23|0]<<24,I=a[0|o]|a[o+1|0]<<8|a[o+2|0]<<16|a[o+3|0]<<24,A=a[o+4|0]|a[o+5|0]<<8|a[o+6|0]<<16|a[o+7|0]<<24,n=a[o+28|0]|a[o+29|0]<<8|a[o+30|0]<<16|a[o+31|0]<<24,o=a[o+24|0]|a[o+25|0]<<8|a[o+26|0]<<16|a[o+27|0]<<24,E[C+56|0]=o,E[C+57|0]=o>>>8,E[C+58|0]=o>>>16,E[C+59|0]=o>>>24,E[C+60|0]=n,E[C+61|0]=n>>>8,E[C+62|0]=n>>>16,E[C+63|0]=n>>>24,E[C+48|0]=t,E[C+49|0]=t>>>8,E[C+50|0]=t>>>16,E[C+51|0]=t>>>24,E[C+52|0]=g,E[C+53|0]=g>>>8,E[C+54|0]=g>>>16,E[C+55|0]=g>>>24,E[C+40|0]=r,E[C+41|0]=r>>>8,E[C+42|0]=r>>>16,E[C+43|0]=r>>>24,E[C+44|0]=f,E[C+45|0]=f>>>8,E[C+46|0]=f>>>16,E[C+47|0]=f>>>24,E[C+32|0]=I,E[C+33|0]=I>>>8,E[C+34|0]=I>>>16,E[C+35|0]=I>>>24,E[C+36|0]=A,E[C+37|0]=A>>>8,E[C+38|0]=A>>>16,E[C+39|0]=A>>>24,D=Q+160|0,0},vb:function(A,I){A|=0,I|=0;var g,C,B,Q,i,n=0,r=0,f=0;return D=r=D-192|0,hA(r,32),QA(I,r,32,0),E[0|I]=248&a[0|I],E[I+31|0]=63&a[I+31|0]|64,v(f=r+32|0,I),uA(A,f),g=r,f=o[r+28>>2],r=o[r+24>>2],E[I+24|0]=r,E[I+25|0]=r>>>8,E[I+26|0]=r>>>16,E[I+27|0]=r>>>24,E[I+28|0]=f,E[I+29|0]=f>>>8,E[I+30|0]=f>>>16,E[I+31|0]=f>>>24,f=o[g+20>>2],r=o[g+16>>2],E[I+16|0]=r,E[I+17|0]=r>>>8,E[I+18|0]=r>>>16,E[I+19|0]=r>>>24,E[I+20|0]=f,E[I+21|0]=f>>>8,E[I+22|0]=f>>>16,E[I+23|0]=f>>>24,f=o[g+12>>2],r=o[g+8>>2],E[I+8|0]=r,E[I+9|0]=r>>>8,E[I+10|0]=r>>>16,E[I+11|0]=r>>>24,E[I+12|0]=f,E[I+13|0]=f>>>8,E[I+14|0]=f>>>16,E[I+15|0]=f>>>24,f=o[g+4>>2],r=o[g>>2],E[0|I]=r,E[I+1|0]=r>>>8,E[I+2|0]=r>>>16,E[I+3|0]=r>>>24,E[I+4|0]=f,E[I+5|0]=f>>>8,E[I+6|0]=f>>>16,E[I+7|0]=f>>>24,C=a[(n=A)+8|0]|a[n+9|0]<<8|a[n+10|0]<<16|a[n+11|0]<<24,B=a[n+12|0]|a[n+13|0]<<8|a[n+14|0]<<16|a[n+15|0]<<24,Q=a[n+16|0]|a[n+17|0]<<8|a[n+18|0]<<16|a[n+19|0]<<24,f=a[n+20|0]|a[n+21|0]<<8|a[n+22|0]<<16|a[n+23|0]<<24,r=a[0|n]|a[n+1|0]<<8|a[n+2|0]<<16|a[n+3|0]<<24,A=a[n+4|0]|a[n+5|0]<<8|a[n+6|0]<<16|a[n+7|0]<<24,i=a[n+28|0]|a[n+29|0]<<8|a[n+30|0]<<16|a[n+31|0]<<24,n=a[n+24|0]|a[n+25|0]<<8|a[n+26|0]<<16|a[n+27|0]<<24,E[I+56|0]=n,E[I+57|0]=n>>>8,E[I+58|0]=n>>>16,E[I+59|0]=n>>>24,E[I+60|0]=i,E[I+61|0]=i>>>8,E[I+62|0]=i>>>16,E[I+63|0]=i>>>24,E[I+48|0]=Q,E[I+49|0]=Q>>>8,E[I+50|0]=Q>>>16,E[I+51|0]=Q>>>24,E[I+52|0]=f,E[I+53|0]=f>>>8,E[I+54|0]=f>>>16,E[I+55|0]=f>>>24,E[I+40|0]=C,E[I+41|0]=C>>>8,E[I+42|0]=C>>>16,E[I+43|0]=C>>>24,E[I+44|0]=B,E[I+45|0]=B>>>8,E[I+46|0]=B>>>16,E[I+47|0]=B>>>24,E[I+32|0]=r,E[I+33|0]=r>>>8,E[I+34|0]=r>>>16,E[I+35|0]=r>>>24,E[I+36|0]=A,E[I+37|0]=A>>>8,E[I+38|0]=A>>>16,E[I+39|0]=A>>>24,$A(g,32),D=g+192|0,0},wb:function(A,I,g,C,B,Q){I|=0,B|=0,Q|=0;var i,E=0;return D=i=D-16|0,s(A|=0,i+8|0,kA(A- -64|0,g|=0,C|=0),C,B,Q,0),64!=o[i+8>>2]|o[i+12>>2]?(I&&(o[I>>2]=0,o[I+4>>2]=0),MA(A,0,C- -64|0),E=-1):I&&(o[I>>2]=C- -64,o[I+4>>2]=B-((C>>>0<4294967232)-1|0)),D=i+16|0,0|E},xb:function(A,I,g,C,B,Q){A|=0,I|=0,g|=0;var i=0;A:{I:{if(!(!(B|=0)&(C|=0)>>>0<64||(B=B-1|0,!(B=(C=C+-64|0)>>>0<4294967232?B+1|0:B)&C>>>0>4294967231|B))){if(!k(g,i=g- -64|0,C,B,Q|=0,0))break I;A&&MA(A,0,C)}if(g=-1,!I)break A;o[I>>2]=0,o[I+4>>2]=0;break A}I&&(o[I>>2]=C,o[I+4>>2]=B),g=0,A&&kA(A,i,C)}return 0|g},yb:function(A,I,g,C,B,Q){return s(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,0),0},zb:function(A,I,g,C,B){return 0|k(A|=0,I|=0,g|=0,C|=0,B|=0,0)},Ab:function(A){return EA(A|=0),0},Bb:function(A,I,g,C){return 0|m(A|=0,I|=0,g|=0,C|=0)},Cb:function(A,I,g,C){var B;return I|=0,g|=0,C|=0,D=B=D+-64|0,M(A|=0,B),A=s(I,g,B,64,0,C,1),D=B- -64|0,0|A},Db:function(A,I,g){var C;return I|=0,g|=0,D=C=D+-64|0,M(A|=0,C),A=k(I,C,64,0,g,1),D=C- -64|0,0|A},Eb:function(A,I){A|=0;var g,C=0,B=0,Q=0,i=0,a=0,n=0,f=0,t=0,e=0,c=0,y=0,h=0,s=0,p=0,u=0,k=0,S=0,H=0,M=0,G=0,J=0,N=0,Y=0,K=0,P=0,v=0,m=0,d=0,L=0,R=0,x=0,j=0,q=0,z=0,O=0,T=0,Z=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,EA=0,oA=0,nA=0,rA=0,fA=0,tA=0,eA=0,cA=0,yA=0,wA=0,hA=0,sA=0,pA=0,uA=0,kA=0,FA=0,lA=0,SA=0,HA=0,GA=0,UA=0,JA=0,NA=0,YA=0,bA=0,_A=0,KA=0,PA=0,vA=0,mA=0,dA=0,LA=0,RA=0,xA=0,jA=0,XA=0;if(D=g=D-256|0,PA=-1,!aA(I|=0)&&!U(g+96|0,I)){for(D=C=D-2048|0,V(s=C+640|0,I=g+96|0),B=o[I+8>>2],i=o[I+12>>2],Q=o[I+16>>2],a=o[I+20>>2],e=o[I+24>>2],c=o[I+28>>2],n=o[I>>2],f=o[I+4>>2],p=o[I+36>>2],o[C+352>>2]=o[I+32>>2],o[C+356>>2]=p,o[C+344>>2]=e,o[C+348>>2]=c,o[C+336>>2]=Q,o[C+340>>2]=a,o[C+328>>2]=B,o[C+332>>2]=i,o[C+320>>2]=n,o[C+324>>2]=f,B=o[I+40>>2],i=o[I+44>>2],Q=o[I+48>>2],a=o[I+52>>2],e=o[I+56>>2],c=o[I+60>>2],f=o[(n=I- -64|0)>>2],n=o[n+4>>2],p=o[I+76>>2],o[C+392>>2]=o[I+72>>2],o[C+396>>2]=p,o[C+384>>2]=f,o[C+388>>2]=n,o[C+376>>2]=e,o[C+380>>2]=c,o[C+368>>2]=Q,o[C+372>>2]=a,o[C+360>>2]=B,o[C+364>>2]=i,B=o[I+80>>2],i=o[I+84>>2],Q=o[I+88>>2],a=o[I+92>>2],e=o[I+96>>2],c=o[I+100>>2],n=o[I+104>>2],f=o[I+108>>2],p=o[I+116>>2],o[C+432>>2]=o[I+112>>2],o[C+436>>2]=p,o[C+424>>2]=n,o[C+428>>2]=f,o[C+416>>2]=e,o[C+420>>2]=c,o[C+408>>2]=Q,o[C+412>>2]=a,o[C+400>>2]=B,o[C+404>>2]=i,l(I=C+480|0,B=C+320|0),F(n=C+160|0,I,i=C+600|0),F(C+200|0,Q=C+520|0,a=C+560|0),F(C+240|0,a,i),F(C+280|0,I,Q),_(I,n,s),F(B,I,i),F(s=C+360|0,Q,a),F(e=C+400|0,a,i),F(c=C+440|0,I,Q),V(f=C+800|0,B),_(I,n,f),F(B,I,i),F(s,Q,a),F(e,a,i),F(c,I,Q),V(f=C+960|0,B),_(I,n,f),F(B,I,i),F(s,Q,a),F(e,a,i),F(c,I,Q),V(f=C+1120|0,B),_(I,n,f),F(B,I,i),F(s,Q,a),F(e,a,i),F(c,I,Q),V(f=C+1280|0,B),_(I,n,f),F(B,I,i),F(s,Q,a),F(e,a,i),F(c,I,Q),V(f=C+1440|0,B),_(I,n,f),F(B,I,i),F(s,Q,a),F(e,a,i),F(c,I,Q),V(f=C+1600|0,B),_(I,n,f),F(B,I,i),F(s,Q,a),F(e,a,i),F(c,I,Q),V(C+1760|0,B),o[C+32>>2]=0,o[C+36>>2]=0,o[C+24>>2]=0,o[C+28>>2]=0,o[C+16>>2]=0,o[C+20>>2]=0,o[C+8>>2]=0,o[C+12>>2]=0,o[C+44>>2]=0,o[C+48>>2]=0,o[C+52>>2]=0,o[C+56>>2]=0,o[C+60>>2]=0,o[C+64>>2]=0,o[C+68>>2]=0,o[C+72>>2]=0,o[C+76>>2]=0,o[C+80>>2]=1,o[C>>2]=0,o[C+4>>2]=0,o[C+40>>2]=1,MA(C+84|0,0,76),f=C+120|0,p=C+80|0,M=C+40|0,I=252;B=o[C+36>>2],o[C+1960>>2]=o[C+32>>2],o[C+1964>>2]=B,B=o[C+28>>2],o[C+1952>>2]=o[C+24>>2],o[C+1956>>2]=B,B=o[C+20>>2],o[C+1944>>2]=o[C+16>>2],o[C+1948>>2]=B,B=o[C+12>>2],o[C+1936>>2]=o[C+8>>2],o[C+1940>>2]=B,B=o[C+4>>2],o[C+1928>>2]=o[C>>2],o[C+1932>>2]=B,B=o[C+76>>2],o[C+2e3>>2]=o[C+72>>2],o[C+2004>>2]=B,B=o[C+68>>2],o[C+1992>>2]=o[C+64>>2],o[C+1996>>2]=B,B=o[C+60>>2],o[C+1984>>2]=o[C+56>>2],o[C+1988>>2]=B,B=o[C+52>>2],o[C+1976>>2]=o[C+48>>2],o[C+1980>>2]=B,B=o[C+44>>2],o[C+1968>>2]=o[C+40>>2],o[C+1972>>2]=B,B=o[C+84>>2],o[C+2008>>2]=o[C+80>>2],o[C+2012>>2]=B,B=o[C+92>>2],o[C+2016>>2]=o[C+88>>2],o[C+2020>>2]=B,B=o[C+100>>2],o[C+2024>>2]=o[C+96>>2],o[C+2028>>2]=B,B=o[C+108>>2],o[C+2032>>2]=o[C+104>>2],o[C+2036>>2]=B,B=o[C+116>>2],o[C+2040>>2]=o[C+112>>2],o[C+2044>>2]=B,B=I,I=E[I+33424|0],l(C+480|0,C+1928|0),(0|I)>0?(F(k=C+320|0,n=C+480|0,i),F(s,Q,a),F(e,a,i),F(c,n,Q),_(n,k,(C+640|0)+r((254&I)>>>1|0,160)|0)):(0|I)>=0||(F(k=C+320|0,n=C+480|0,i),F(s,Q,a),F(e,a,i),F(c,n,Q),b(n,k,(C+640|0)+r((0-I&254)>>>1|0,160)|0)),F(C,I=C+480|0,i),F(M,Q,a),F(p,a,i),F(f,I,Q),I=B-1|0,B;);W(I=C+640|0,C),I=iA(I,32),D=C+2048|0,I&&(Q=o[g+136>>2],o[g>>2]=1-Q,PA=0,j=o[g+172>>2],o[g+36>>2]=0-j,f=o[g+168>>2],o[g+32>>2]=0-f,q=o[g+164>>2],o[g+28>>2]=0-q,s=o[g+160>>2],o[g+24>>2]=0-s,z=o[g+156>>2],o[g+20>>2]=0-z,e=o[g+152>>2],o[g+16>>2]=0-e,O=o[g+148>>2],o[g+12>>2]=0-O,c=o[g+144>>2],o[g+8>>2]=0-c,T=o[g+140>>2],o[g+4>>2]=0-T,X(g,g),I=DA(M=o[g+4>>2],L=M>>31,G=z<<1,fA=G>>31),B=w,C=DA(a=o[g>>2],N=a>>31,s,Y=s>>31),B=w+B|0,B=(I=C+I|0)>>>0>>0?B+1|0:B,C=(i=DA(K=o[g+8>>2],Z=K>>31,e,P=e>>31))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA(R=o[g+12>>2],IA=R>>31,BA=O<<1,tA=BA>>31),I=w+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,C=DA($=o[g+16>>2],QA=$>>31,c,v=c>>31),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,JA=i=o[g+20>>2],n=DA(i,eA=i>>31,EA=T<<1,cA=EA>>31),C=w+I|0,C=(B=n+B|0)>>>0>>0?C+1|0:C,NA=S=o[g+24>>2],I=(Q=DA(S,HA=S>>31,n=Q+1|0,m=n>>31))+B|0,B=w+C|0,B=I>>>0>>0?B+1|0:B,yA=o[g+28>>2],C=(Q=DA(y=r(yA,19),gA=y>>31,oA=j<<1,wA=oA>>31))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,vA=o[g+32>>2],C=DA(k=r(vA,19),AA=k>>31,f,d=f>>31),I=w+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,mA=o[g+36>>2],C=DA(p=r(mA,19),x=p>>31,nA=q<<1,hA=nA>>31),I=w+I|0,h=B=C+B|0,Q=C>>>0>B>>>0?I+1|0:I,I=DA(e,P,M,L),B=w,t=DA(a,N,z,sA=z>>31),C=w+B|0,C=(I=t+I|0)>>>0>>0?C+1|0:C,t=DA(K,Z,O,pA=O>>31),B=w+C|0,B=(I=t+I|0)>>>0>>0?B+1|0:B,C=(t=DA(c,v,R,IA))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA($,QA,T,uA=T>>31),I=w+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,C=DA(n,m,i,eA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,t=DA(S=r(S,19),rA=S>>31,j,kA=j>>31),C=w+I|0,C=(B=t+B|0)>>>0>>0?C+1|0:C,I=(t=DA(f,d,y,gA))+B|0,B=w+C|0,B=I>>>0>>0?B+1|0:B,C=(t=DA(k,AA,q,FA=q>>31))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA(s,Y,p,x),I=w+I|0,YA=B=B+C|0,CA=C>>>0>B>>>0?I+1|0:I,I=DA(M,L,BA,tA),C=w,B=(t=DA(a,N,e,P))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,t=DA(c,v,K,Z),C=w+I|0,C=(B=t+B|0)>>>0>>0?C+1|0:C,I=(t=DA(R,IA,EA,cA))+B|0,B=w+C|0,B=I>>>0>>0?B+1|0:B,C=(t=DA(n,m,$,QA))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA(t=r(i,19),lA=t>>31,oA,wA),I=w+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,C=DA(f,d,S,rA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,i=DA(y,gA,nA,hA),C=w+I|0,C=(B=i+B|0)>>>0>>0?C+1|0:C,I=(i=DA(s,Y,k,AA))+B|0,B=w+C|0,B=I>>>0>>0?B+1|0:B,C=(i=DA(p,x,G,fA))+I|0,I=w+B|0,dA=C,LA=I=C>>>0>>0?I+1|0:I,RA=C=C+33554432|0,xA=I=C>>>0<33554432?I+1|0:I,C=(67108863&I)<<6|C>>>26,I=(I>>26)+CA|0,YA=i=C+YA|0,C=I=C>>>0>i>>>0?I+1|0:I,jA=I=i+16777216|0,i=(33554431&(C=I>>>0<16777216?C+1|0:C))<<7|I>>>25,I=(B=C>>25)+Q|0,I=(C=i+h|0)>>>0>>0?I+1|0:I,bA=B=C+33554432|0,i=I=B>>>0<33554432?I+1|0:I,o[g+72>>2]=C-(-67108864&B),I=DA(M,L,EA,cA),B=w,Q=DA(a,N,c,v),C=w+B|0,C=(I=Q+I|0)>>>0>>0?C+1|0:C,B=(Q=DA(n,m,K,Z))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,C=DA(Q=r(R,19),SA=Q>>31,oA,wA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,C=(h=DA(CA=r($,19),GA=CA>>31,f,d))+B|0,B=w+I|0,B=C>>>0>>0?B+1|0:B,h=DA(nA,hA,t,lA),I=w+B|0,I=(C=h+C|0)>>>0>>0?I+1|0:I,B=(h=DA(s,Y,S,rA))+C|0,C=w+I|0,C=B>>>0>>0?C+1|0:C,h=DA(y,gA,G,fA),I=w+C|0,I=(B=h+B|0)>>>0>>0?I+1|0:I,C=DA(e,P,k,AA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,C=(h=DA(p,x,BA,tA))+B|0,B=w+I|0,H=C,_A=C>>>0>>0?B+1|0:B,I=DA(n,m,M,L),B=w,C=(h=DA(a,N,T,uA))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,h=B=r(K,19),B=(u=DA(B,UA=B>>31,j,kA))+C|0,C=w+I|0,C=B>>>0>>0?C+1|0:C,u=DA(f,d,Q,SA),I=w+C|0,I=(B=u+B|0)>>>0>>0?I+1|0:I,C=DA(CA,GA,q,FA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,C=(u=DA(s,Y,t,lA))+B|0,B=w+I|0,B=C>>>0>>0?B+1|0:B,u=DA(S,rA,z,sA),I=w+B|0,I=(C=u+C|0)>>>0>>0?I+1|0:I,B=(u=DA(e,P,y,gA))+C|0,C=w+I|0,C=B>>>0>>0?C+1|0:C,u=DA(k,AA,O,pA),I=w+C|0,I=(B=u+B|0)>>>0>>0?I+1|0:I,C=DA(c,v,p,x),I=w+I|0,KA=B=C+B|0,u=C>>>0>B>>>0?I+1|0:I,I=DA(I=r(M,19),I>>31,oA,wA),B=w,C=DA(a,N,n,m),B=w+B|0,B=(I=C+I|0)>>>0>>0?B+1|0:B,C=(h=DA(f,d,h,UA))+I|0,I=w+B|0,B=(Q=DA(Q,SA,nA,hA))+C|0,C=w+(C>>>0>>0?I+1|0:I)|0,C=B>>>0>>0?C+1|0:C,Q=DA(s,Y,CA,GA),I=w+C|0,I=(B=Q+B|0)>>>0>>0?I+1|0:I,C=DA(G,fA,t,lA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,C=(Q=DA(e,P,S,rA))+B|0,B=w+I|0,B=C>>>0>>0?B+1|0:B,Q=DA(y,gA,BA,tA),I=w+B|0,I=(C=Q+C|0)>>>0>>0?I+1|0:I,B=(Q=DA(c,v,k,AA))+C|0,C=w+I|0,C=B>>>0>>0?C+1|0:C,Q=DA(p,x,EA,cA),I=w+C|0,h=B=Q+B|0,SA=I=B>>>0>>0?I+1|0:I,UA=B=B+33554432|0,XA=I=B>>>0<33554432?I+1|0:I,C=I>>26,I=(67108863&I)<<6|B>>>26,B=C+u|0,u=Q=I+KA|0,I=B=I>>>0>Q>>>0?B+1|0:B,KA=B=Q+16777216|0,Q=(33554431&(I=B>>>0<16777216?I+1|0:I))<<7|B>>>25,I=(I>>25)+_A|0,I=(B=Q+H|0)>>>0>>0?I+1|0:I,_A=B=(C=B)+33554432|0,Q=I=B>>>0<33554432?I+1|0:I,o[g+56>>2]=C-(-67108864&B),I=DA(s,Y,M,L),C=w,B=(H=DA(a,N,q,FA))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,C=DA(K,Z,z,sA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,C=DA(e,P,R,IA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,H=DA($,QA,O,pA),C=w+I|0,C=(B=H+B|0)>>>0>>0?C+1|0:C,I=(H=DA(c,v,JA,eA))+B|0,B=w+C|0,B=I>>>0>>0?B+1|0:B,C=(H=DA(T,uA,NA,HA))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA(yA,H=yA>>31,n,m),I=w+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,C=DA(k,AA,j,kA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,J=(C=B)+(B=DA(p,x,f,d))|0,C=w+I|0,B=(I=i>>26)+(B=B>>>0>J>>>0?C+1|0:C)|0,I=(C=(i=(67108863&i)<<6|bA>>>26)+J|0)>>>0>>0?B+1|0:B,bA=B=C+16777216|0,i=I=B>>>0<16777216?I+1|0:I,o[g+76>>2]=C-(-33554432&B),I=DA(c,v,M,L),B=w,J=DA(a,N,O,pA),C=w+B|0,C=(I=J+I|0)>>>0>>0?C+1|0:C,J=DA(K,Z,T,uA),B=w+C|0,B=(I=J+I|0)>>>0>>0?B+1|0:B,C=(J=DA(n,m,R,IA))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA(CA,GA,j,kA),I=w+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,C=DA(f,d,t,lA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,B=(S=DA(S,rA,q,FA))+B|0,C=w+I|0,I=(y=DA(s,Y,y,gA))+B|0,B=w+(B>>>0>>0?C+1|0:C)|0,C=(k=DA(k,AA,z,sA))+I|0,I=w+(I>>>0>>0?B+1|0:B)|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA(e,P,p,x),I=w+I|0,y=B=B+C|0,I=(I=C>>>0>B>>>0?I+1|0:I)+(B=Q>>26)|0,C=(B=Q=y+(C=(67108863&Q)<<6|_A>>>26)|0)>>>0>>0?I+1|0:I,k=I=B+16777216|0,Q=C=I>>>0<16777216?C+1|0:C,o[g+60>>2]=B-(-33554432&I),I=DA(M,L,nA,hA),C=w,B=(y=DA(a,N,f,d))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,C=DA(s,Y,K,Z),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,y=DA(R,IA,G,fA),C=w+I|0,C=(B=y+B|0)>>>0>>0?C+1|0:C,I=(y=DA(e,P,$,QA))+B|0,B=w+C|0,B=I>>>0>>0?B+1|0:B,C=(y=DA(BA,tA,JA,eA))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA(c,v,NA,HA),I=w+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,C=B,B=DA(yA,H,EA,cA),I=w+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,y=B=vA,B=(G=DA(B,S=B>>31,n,m))+C|0,C=w+I|0,I=(p=DA(p,x,oA,wA))+B|0,B=w+(B>>>0>>0?C+1|0:C)|0,C=I>>>0

>>0?B+1|0:B,B=I,I=(I=i>>25)+C|0,I=(B=B+(i=(33554431&i)<<7|bA>>>25)|0)>>>0>>0?I+1|0:I,p=B=(C=B)+33554432|0,i=I=B>>>0<33554432?I+1|0:I,o[g+80>>2]=C-(-67108864&B),B=Q>>25,C=(Q=(33554431&Q)<<7|k>>>25)+(dA-(I=-67108864&RA)|0)|0,I=B+(LA-((I>>>0>dA>>>0)+xA|0)|0)|0,I=C>>>0>>0?I+1|0:I,Q=I=(67108863&(I=(B=C+33554432|0)>>>0<33554432?I+1|0:I))<<6|B>>>26,I=I+(G=YA-(-33554432&jA)|0)|0,o[g+68>>2]=I,o[g+64>>2]=C-(-67108864&B),I=DA(f,d,M,L),C=w,B=(Q=DA(a,N,j,kA))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,C=(Q=DA(K,Z,q,FA))+B|0,B=w+I|0,B=C>>>0>>0?B+1|0:B,I=(Q=DA(s,Y,R,IA))+C|0,C=w+B|0,C=I>>>0>>0?C+1|0:C,B=(Q=DA($,QA,z,sA))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,C=DA(e,P,JA,eA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,C=DA(O,pA,NA,HA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,C=(Q=DA(c,v,yA,H))+B|0,B=w+I|0,B=C>>>0>>0?B+1|0:B,Q=(I=DA(y,S,T,uA))+C|0,C=w+B|0,C=I>>>0>Q>>>0?C+1|0:C,B=Q,Q=DA(I=mA,I>>31,n,m),I=w+C|0,C=B=B+Q|0,I=(I=B>>>0>>0?I+1|0:I)+(B=i>>26)|0,I=(C=C+(i=(67108863&i)<<6|p>>>26)|0)>>>0>>0?I+1|0:I,I=(B=C+16777216|0)>>>0<16777216?I+1|0:I,o[g+84>>2]=C-(-33554432&B),i=u-(-33554432&KA)|0,Q=h-(C=-67108864&UA)|0,a=SA-((C>>>0>h>>>0)+XA|0)|0,I=DA((33554431&(C=I))<<7|B>>>25,I=C>>25,19,0),B=w+a|0,I=I>>>0>(C=I+Q|0)>>>0?B+1|0:B,Q=I=(67108863&(I=(B=C+33554432|0)>>>0<33554432?I+1|0:I))<<6|B>>>26,I=I+i|0,o[g+52>>2]=I,o[g+48>>2]=C-(-67108864&B),W(A,g+48|0))}return D=g+256|0,0|PA},Fb:function(A,I){A|=0;var g,C=0;return D=g=D+-64|0,QA(g,I|=0,32,0),E[0|g]=248&a[0|g],E[g+31|0]=63&a[g+31|0]|64,I=o[g+20>>2],C=o[g+16>>2],E[A+16|0]=C,E[A+17|0]=C>>>8,E[A+18|0]=C>>>16,E[A+19|0]=C>>>24,E[A+20|0]=I,E[A+21|0]=I>>>8,E[A+22|0]=I>>>16,E[A+23|0]=I>>>24,I=o[g+12>>2],C=o[g+8>>2],E[A+8|0]=C,E[A+9|0]=C>>>8,E[A+10|0]=C>>>16,E[A+11|0]=C>>>24,E[A+12|0]=I,E[A+13|0]=I>>>8,E[A+14|0]=I>>>16,E[A+15|0]=I>>>24,I=o[g+4>>2],C=o[g>>2],E[0|A]=C,E[A+1|0]=C>>>8,E[A+2|0]=C>>>16,E[A+3|0]=C>>>24,E[A+4|0]=I,E[A+5|0]=I>>>8,E[A+6|0]=I>>>16,E[A+7|0]=I>>>24,I=o[g+28>>2],C=o[g+24>>2],E[A+24|0]=C,E[A+25|0]=C>>>8,E[A+26|0]=C>>>16,E[A+27|0]=C>>>24,E[A+28|0]=I,E[A+29|0]=I>>>8,E[A+30|0]=I>>>16,E[A+31|0]=I>>>24,$A(g,64),D=g- -64|0,0},Gb:function(){var A,I;return D=A=D-16|0,E[A+15|0]=0,I=0|t(34904,A+15|0,0),D=A+16|0,0|I},Hb:KA,Ib:function(A){var I,g=0,C=0;if(D=I=D-16|0,(A|=0)>>>0>=2){for(g=(0-A>>>0)%(A>>>0)|0;E[I+15|0]=0,g>>>0>(C=0|t(34904,I+15|0,0))>>>0;);g=(C>>>0)%(A>>>0)|0}return D=I+16|0,0|g},Jb:hA,Kb:function(A,I,g){XA(A|=0,I|=0,1024,g|=0)},Lb:II,Mb:function(){var A=0,I=0;return(A=o[9048])&&(A=o[A+20>>2])&&(I=0|nI[0|A]()),0|I},Nb:function(A,I,g){A|=0,I|=0;var C,B=0,i=0,o=0;if(D=C=D-16|0,g|=0)e(1240,1100,197,1036),Q();else{if(I)for(;E[C+15|0]=0,i=A+B|0,o=0|t(34904,C+15|0,0),E[0|i]=o,(0|I)!=(0|(B=B+1|0)););D=C+16|0}},Ob:function(A,I,g,C){A|=0,g|=0;var B=0,i=0,o=0;if(!((C|=0)>>>0>2147483646|C<<1>>>0>=(I|=0)>>>0)){if(I=0,C){for(;B=(I<<1)+A|0,i=15&(o=a[I+g|0]),E[B+1|0]=22272+((i<<8)+(i+65526&55552)|0)>>>8,i=B,B=o>>>4|0,E[0|i]=87+((B+65526>>>8&217)+B|0),(0|C)!=(0|(I=I+1|0)););I=C<<1}else I=0;return E[I+A|0]=0,0|A}mA(),Q()},Pb:function(A,I,g,C,B,Q,i){A|=0,I|=0,g|=0,B|=0,Q|=0,i|=0;var n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,w=0,h=0;A:if(C|=0){I:{g:{C:{B:{if(!B){for(r=1,B=0;;){if(!(255&((y=(65526+(f=(223&(e=a[g+n|0]))-55&255)^f+65520)>>>8|0)|(D=65526+(e^=48)>>>8|0))))break C;if(I>>>0<=c>>>0)break B;if(f=f&y|e&D,255&t?(E[A+c|0]=B|f,c=c+1|0):B=f<<4,t^=-1,(0|(n=n+1|0))==(0|C))break}n=C;break C}for(;;){Q:{i:{E:{o:{a:{if(!(255&((e=(65526+(f=(223&(r=a[g+n|0]))-55&255)^f+65520)>>>8|0)|(D=65526+(y=48^r)>>>8|0)))){if(255&t)break g;if(!$(B,r))break A;if((n=t=n+1|0)>>>0>>0)break a;break A}if(I>>>0<=c>>>0)break B;if(r=f&e|y&D,!(255&t))break o;E[A+c|0]=r|h,c=c+1|0;break Q}for(;;){if(!(255&((e=(65526+(f=(223&(r=a[g+n|0]))-55&255)^f+65520)>>>8|0)|(D=65526+(y=48^r)>>>8|0)))){if(!$(B,r))break A;if((n=n+1|0)>>>0>>0)continue;break E}break}if(I>>>0<=c>>>0)break i;r=f&e|y&D}h=r<<4,t=0;break Q}n=C>>>0>t>>>0?C:t;break A}t=0;break B}if(t^=-1,r=1,!((n=n+1|0)>>>0>>0))break}break C}o[8916]=68,r=0}if(!(255&t))break I}o[8916]=28,w=-1,n=n-1|0,c=0;break A}r||(c=0,w=-1)}return i?o[i>>2]=g+n:(0|C)!=(0|n)&&(o[8916]=28,w=-1),Q&&(o[Q>>2]=c),0|w},Qb:function(A,I){A|=0;var g=0;return 1!=(-7&(I|=0))&&(mA(),Q()),1+((3&(g=(g=A)+r(A=(A>>>0)/3|0,-3)|0)?2&I?g+1|0:4:0)+(A<<2)|0)|0},Rb:function(A,I,g,C,B){A|=0,I|=0,g|=0,C|=0;var i=0,o=0,n=0,f=0,t=0,c=0,y=0,D=0,w=0,h=0;A:{I:{g:{if(1==(-7&(B|=0))&&(f=(i=(C>>>0)/3|0)<<2,(i=r(i,-3)+C|0)&&(f=2&B?(2|f)+(i>>>1|0)|0:f+4|0),!(I>>>0<=f>>>0))){if(!(4&B)){if(i=0,!C)break A;break g}if(i=0,!C)break A;for(;;){for(c=(D=a[g+y|0])|c<<8,t=i,i=1+((((n|=8)-6>>>0)/6|0)+i|0)|0;w=65510+(o=c>>>(n=(B=n)-6|0)&63)>>>8|0,h=o+65484>>>8|0,E[A+t|0]=(1+(16321^o)^-1)>>>8&45|o+252&o+65474>>>8&(-1^h)|(o+32705^-1)>>>8&95|w&o+65|h&o+71&(-1^w),(0|(t=t+1|0))!=(0|i););if((0|(y=y+1|0))==(0|C))break}if(!n)break A;t=(C=65510+(g=D<<12-B&63)>>>8|0)&g+65,c=g+252&g+65474>>>8&(-1^(B=g+65484>>>8|0)),n=B&g+71&(-1^C),C=g+32705|0,B=(1+(16321^g)^-1)>>>8&45,g=95;break I}mA(),Q()}for(;;){for(c=(D=a[g+y|0])|c<<8,t=i,i=1+((((n|=8)-6>>>0)/6|0)+i|0)|0;w=65510+(o=c>>>(n=(B=n)-6|0)&63)>>>8|0,h=o+65484>>>8|0,E[A+t|0]=(1+(16321^o)^-1)>>>8&43|o+252&o+65474>>>8&(-1^h)|(o+16321^-1)>>>8&47|w&o+65|h&o+71&(-1^w),(0|(t=t+1|0))!=(0|i););if((0|(y=y+1|0))==(0|C))break}if(!n)break A;t=(C=65510+(g=D<<12-B&63)>>>8|0)&g+65,c=g+252&g+65474>>>8&(-1^(B=g+65484>>>8|0)),n=B&g+71&(-1^C),C=g+16321|0,B=(1+(16321^g)^-1)>>>8&43,g=47}E[A+i|0]=g&(-1^C)>>>8|t|c|B|n,i=i+1|0}A:{I:{if(i>>>0<=f>>>0){if(i>>>0>>0)break I;f=i;break A}e(1048,1126,230,1319),Q()}MA(A+i|0,61,f-i|0)}return MA(A+f|0,0,(I>>>0>(g=f+1|0)>>>0?I:g)-f|0),0|A},Sb:function(A,I,g,C,B,i,n,r){A|=0,I|=0,g|=0,C|=0,B|=0,i|=0,n|=0;var f=0,t=0,e=0,c=0,y=0,D=0,w=0,h=0;A:{I:{g:{C:{B:{Q:{i:{E:{o:{a:{n:{if(1==(-7&(r|=0))){if(e=0,!C)break E;if(4&r)break n;for(;;){e=t;r:{f:{t:{e:{for(;;){if(f=(f=(c=E[g+e|0])-65|0)&((90-c^-1)&(-1^f))>>>8&255|c+4&((c+65488^-1)&(57-c^-1))>>>8&255|c+185&((c+65439^-1)&(122-c^-1))>>>8&255|(1+(16336^c)^-1)>>>8&63|(1+(16340^c)^-1)>>>8&62,255!=(0|(f|=(f-1&1+(65470^c))>>>8&255)))break e;if(f=0,!B)break o;if(!$(B,c))break;if((e=e+1|0)>>>0>=C>>>0)break t}t=e;break o}if(w=f+(w<<6)|0,y>>>0>1)break f;y=y+6|0;break r}t=(A=t+1|0)>>>0>>0?C:A;break o}if(y=y-2|0,I>>>0<=D>>>0)break a;E[A+D|0]=w>>>y,D=D+1|0}if(f=0,!((t=e+1|0)>>>0>>0))break}break o}mA(),Q()}n:for(;;){for(e=t;;){r:{if(f=(f=(c=E[g+e|0])-65|0)&((90-c^-1)&(-1^f))>>>8&255|c+4&((c+65488^-1)&(57-c^-1))>>>8&255|c+185&((c+65439^-1)&(122-c^-1))>>>8&255|(1+(16288^c)^-1)>>>8&63|(1+(16338^c)^-1)>>>8&62,255==(0|(f|=(f-1&1+(65470^c))>>>8&255))){if(f=0,!B)break o;if($(B,c))break r;t=e;break o}if(w=f+(w<<6)|0,y>>>0<2)y=y+6|0;else{if(y=y-2|0,I>>>0<=D>>>0)break a;E[A+D|0]=w>>>y,D=D+1|0}if(f=0,(t=e+1|0)>>>0>>0)continue n;break o}if(!((e=e+1|0)>>>0>>0))break}break}t=(A=t+1|0)>>>0>>0?C:A;break o}t=e,o[8916]=68,f=1}if(y>>>0>4)break i;e=t}if(A=e,I=-1,f){t=A;break A}if((-1<>>0<2){r=A;break B}if(t=A>>>0>C>>>0?A:C,e=y>>>1|0,!B)break Q;for(r=A;;){if((0|r)==(0|t)){f=68;break C}if(61!=(0|(A=E[g+r|0]))){if(!$(B,A)){f=28,t=r;break C}}else e=e-1|0;if(r=r+1|0,!e)break}break B}I=-1;break A}if(f=68,A>>>0>=C>>>0)break C;if(61!=a[A+g|0]){t=A,f=28;break C}if(r=A+e|0,1!=(0|e)){if((0|(y=A+1|0))==(0|t))break C;if(61!=a[g+y|0]){t=y,f=28;break C}if(2!=(0|e)){if((0|(A=A+2|0))==(0|t))break C;if(f=28,t=A,61!=a[A+g|0])break C}}}if(I=0,B)break g;break I}o[8916]=f;break A}if(!(C>>>0<=r>>>0)){for(;;){if(!$(B,E[g+r|0]))break I;if((0|(r=r+1|0))==(0|C))break}r=C}}t=r,h=D}return n?o[n>>2]=g+t:(0|C)!=(0|t)&&(o[8916]=28,I=-1),i&&(o[i>>2]=h),0|I},Tb:function(){var A=0;return o[9049]?A=1:(KA(),hA(36176,16),o[9049]=1,A=0),0|A},Ub:function(A,I,g,C,B){A|=0,I|=0,g|=0,B|=0;var i,n=0,r=0,f=0;D=i=D-16|0;A:{if(C|=0){if(f=-1,(n=(n=C-1|0)-(r=n&C?(g>>>0)%(C>>>0)|0:g&n)|0)>>>0>=(-1^g)>>>0)break A;if(!((g=g+n|0)>>>0>=B>>>0))for(A&&(o[A>>2]=g+1),A=I+g|0,f=0,E[i+15|0]=0,g=0;B=I=A-g|0,r=a[0|I]&a[i+15|0],I=(g^n)-1>>>24|0,E[0|B]=r|128&I,E[i+15|0]=I|a[i+15|0],(0|C)!=(0|(g=g+1|0)););}else f=-1;return D=i+16|0,0|f}mA(),Q()},Vb:function(A,I,g,C){A|=0,I|=0,g|=0,C|=0;var B,Q=0,i=0,E=0,n=0,r=0;if(o[12+(B=D-16|0)>>2]=0,C-1>>>0>>0){for(r=(i=g-1|0)+I|0,g=0,I=0;I&=255,n=(128^(E=a[r-Q|0]))-1&o[B+12>>2]-1&I-1,o[B+12>>2]=o[B+12>>2]|n<<23>>31&Q,I|=E,g|=n>>>8&1,(0|(Q=Q+1|0))!=(0|C););o[A>>2]=i-o[B+12>>2],A=(255&g)-1|0}else A=-1;return 0|A},Wb:function(){return 1312},Xb:function(){return 10},Yb:iI,Zb:QI,_b:function(A){var I,g=0,C=0,B=0,Q=0,i=0,E=0,r=0,t=0,e=0,c=0,y=0,w=0;D=I=D-16|0;A:{I:{g:{C:{B:{Q:{i:{E:{o:{if((A|=0)>>>0<=244){if(3&(g=(E=o[8917])>>>(C=(r=A>>>0<11?16:A+11&-8)>>>3|0)|0)){g=35708+(A=(C=C+(1&(-1^g))|0)<<3)|0,B=o[A+35716>>2],(0|g)!=(0|(A=o[B+8>>2]))?(o[A+12>>2]=g,o[g+8>>2]=A):(y=35668,w=YA(-2,C)&E,o[y>>2]=w),A=B+8|0,g=C<<3,o[B+4>>2]=3|g,o[4+(g=g+B|0)>>2]=1|o[g+4>>2];break A}if((c=o[8919])>>>0>=r>>>0)break o;if(g){g=35708+(A=(B=RA(0-(A=(0-(A=2<>2],(0|g)!=(0|(A=o[Q+8>>2]))?(o[A+12>>2]=g,o[g+8>>2]=A):(E=YA(-2,B)&E,o[8917]=E),o[Q+4>>2]=3|r,B=(A=B<<3)-r|0,o[4+(C=Q+r|0)>>2]=1|B,o[A+Q>>2]=B,c&&(g=35708+(-8&c)|0,i=o[8922],(A=1<<(c>>>3))&E?A=o[g+8>>2]:(o[8917]=A|E,A=g),o[g+8>>2]=i,o[A+12>>2]=i,o[i+12>>2]=g,o[i+8>>2]=A),A=Q+8|0,o[8922]=C,o[8919]=B;break A}if(!(e=o[8918]))break o;for(C=o[35972+(RA(0-e&e)<<2)>>2],i=(-8&o[C+4>>2])-r|0,g=C;(A=o[g+16>>2])||(A=o[g+20>>2]);)i=(B=(g=(-8&o[A+4>>2])-r|0)>>>0>>0)?g:i,C=B?A:C,g=A;if(t=o[C+24>>2],(0|(B=o[C+12>>2]))!=(0|C)){A=o[C+8>>2],o[A+12>>2]=B,o[B+8>>2]=A;break I}if(!(A=o[(g=C+20|0)>>2])){if(!(A=o[C+16>>2]))break E;g=C+16|0}for(;Q=g,B=A,(A=o[(g=A+20|0)>>2])||(g=B+16|0,A=o[B+16>>2]););o[Q>>2]=0;break I}if(r=-1,!(A>>>0>4294967231)&&(r=-8&(A=A+11|0),e=o[8918])){i=0-r|0,E=0,r>>>0<256||(E=31,r>>>0>16777215||(E=62+((r>>>38-(A=f(A>>>8|0))&1)-(A<<1)|0)|0));a:{n:{if(g=o[35972+(E<<2)>>2])for(A=0,C=r<<(31!=(0|E)?25-(E>>>1|0)|0:0);;){if(!((Q=(-8&o[g+4>>2])-r|0)>>>0>=i>>>0||(B=g,i=Q,Q))){i=0,A=g;break n}if(Q=o[g+20>>2],g=o[16+((C>>>29&4)+g|0)>>2],A=Q?(0|Q)==(0|g)?A:Q:A,C<<=1,!g)break}else A=0;if(!(A|B)){if(B=0,!(A=(0-(A=2<>2]}if(!A)break a}for(;i=(C=(g=(-8&o[A+4>>2])-r|0)>>>0>>0)?g:i,B=C?A:B,A=(g=o[A+16>>2])||o[A+20>>2];);}if(!(!B|o[8919]-r>>>0<=i>>>0)){if(E=o[B+24>>2],(0|B)!=(0|(C=o[B+12>>2]))){A=o[B+8>>2],o[A+12>>2]=C,o[C+8>>2]=A;break g}if(!(A=o[(g=B+20|0)>>2])){if(!(A=o[B+16>>2]))break i;g=B+16|0}for(;Q=g,C=A,(A=o[(g=A+20|0)>>2])||(g=C+16|0,A=o[C+16>>2]););o[Q>>2]=0;break g}}}if((A=o[8919])>>>0>=r>>>0){B=o[8922],(g=A-r|0)>>>0>=16?(o[4+(C=B+r|0)>>2]=1|g,o[A+B>>2]=g,o[B+4>>2]=3|r):(o[B+4>>2]=3|A,o[4+(A=A+B|0)>>2]=1|o[A+4>>2],C=0,g=0),o[8919]=g,o[8922]=C,A=B+8|0;break A}if((t=o[8920])>>>0>r>>>0){g=t-r|0,o[8920]=g,A=(C=o[8923])+r|0,o[8923]=A,o[A+4>>2]=1|g,o[C+4>>2]=3|r,A=C+8|0;break A}if(A=0,e=r+47|0,o[9035]?C=o[9037]:(o[9038]=-1,o[9039]=-1,o[9036]=4096,o[9037]=4096,o[9035]=I+12&-16^1431655768,o[9040]=0,o[9028]=0,C=4096),(g=(Q=e+C|0)&(i=0-C|0))>>>0<=r>>>0)break A;if((B=o[9027])&&B>>>0<(E=(C=o[9025])+g|0)>>>0|C>>>0>=E>>>0)break A;o:{if(!(4&a[36112])){a:{n:{r:{f:{if(B=o[8923])for(A=36116;;){if((C=o[A>>2])>>>0<=B>>>0&B>>>0>2]>>>0)break f;if(!(A=o[A+8>>2]))break}if(-1==(0|(C=pA(0))))break a;if(E=g,(A=(B=o[9036])-1|0)&C&&(E=(g-C|0)+(A+C&0-B)|0),E>>>0<=r>>>0)break a;if((B=o[9027])&&B>>>0<(i=(A=o[9025])+E|0)>>>0|A>>>0>=i>>>0)break a;if((0|C)!=(0|(A=pA(E))))break r;break o}if((0|(C=pA(E=i&Q-t)))==(o[A>>2]+o[A+4>>2]|0))break n;A=C}if(-1==(0|A))break a;if(r+48>>>0<=E>>>0){C=A;break o}if(-1==(0|pA(C=(C=o[9037])+(e-E|0)&0-C)))break a;E=C+E|0,C=A;break o}if(-1!=(0|C))break o}o[9028]=4|o[9028]}if(-1==(0|(C=pA(g)))|-1==(0|(A=pA(0)))|A>>>0<=C>>>0)break C;if((E=A-C|0)>>>0<=r+40>>>0)break C}A=o[9025]+E|0,o[9025]=A,A>>>0>n[9026]&&(o[9026]=A);o:{if(Q=o[8923]){for(A=36116;;){if(((B=o[A>>2])+(g=o[A+4>>2])|0)==(0|C))break o;if(!(A=o[A+8>>2]))break}break Q}for((A=o[8921])>>>0<=C>>>0&&A||(o[8921]=C),A=0,o[9030]=E,o[9029]=C,o[8925]=-1,o[8926]=o[9035],o[9032]=0;g=35708+(B=A<<3)|0,o[B+35716>>2]=g,o[B+35720>>2]=g,32!=(0|(A=A+1|0)););g=(B=E-40|0)-(A=C+8&7?-8-C&7:0)|0,o[8920]=g,A=A+C|0,o[8923]=A,o[A+4>>2]=1|g,o[4+(C+B|0)>>2]=40,o[8924]=o[9039];break B}if(8&a[A+12|0]|B>>>0>Q>>>0|C>>>0<=Q>>>0)break Q;o[A+4>>2]=g+E,C=(A=Q+8&7?-8-Q&7:0)+Q|0,o[8923]=C,A=(g=o[8920]+E|0)-A|0,o[8920]=A,o[C+4>>2]=1|A,o[4+(g+Q|0)>>2]=40,o[8924]=o[9039];break B}B=0;break I}C=0;break g}n[8921]>C>>>0&&(o[8921]=C),g=C+E|0,A=36116;Q:{i:{E:{o:{a:{n:{for(;;){if((0|g)!=o[A>>2]){if(A=o[A+8>>2])continue;break n}break}if(!(8&a[A+12|0]))break a}for(A=36116;;){if((g=o[A>>2])>>>0<=Q>>>0&&(i=g+o[A+4>>2]|0)>>>0>Q>>>0)break o;A=o[A+8>>2]}}if(o[A>>2]=C,o[A+4>>2]=o[A+4>>2]+E,o[4+(e=(C+8&7?-8-C&7:0)+C|0)>>2]=3|r,A=(E=g+(g+8&7?-8-g&7:0)|0)-(t=r+e|0)|0,(0|Q)==(0|E)){o[8923]=t,A=o[8920]+A|0,o[8920]=A,o[t+4>>2]=1|A;break i}if(o[8922]==(0|E)){o[8922]=t,A=o[8919]+A|0,o[8919]=A,o[t+4>>2]=1|A,o[A+t>>2]=A;break i}if(1==(3&(i=o[E+4>>2]))){Q=-8&i;a:if(i>>>0<=255){if(B=o[E+8>>2],g=i>>>3|0,(0|(C=o[E+12>>2]))==(0|B)){y=35668,w=o[8917]&YA(-2,g),o[y>>2]=w;break a}o[B+12>>2]=C,o[C+8>>2]=B}else{if(r=o[E+24>>2],(0|E)==(0|(C=o[E+12>>2])))if((g=o[(i=E+20|0)>>2])||(g=o[(i=E+16|0)>>2])){for(;B=i,(g=o[(i=(C=g)+20|0)>>2])||(i=C+16|0,g=o[C+16>>2]););o[B>>2]=0}else C=0;else g=o[E+8>>2],o[g+12>>2]=C,o[C+8>>2]=g;if(r){B=o[E+28>>2];n:{if(o[(g=35972+(B<<2)|0)>>2]==(0|E)){if(o[g>>2]=C,C)break n;y=35672,w=o[8918]&YA(-2,B),o[y>>2]=w;break a}if(o[r+(o[r+16>>2]==(0|E)?16:20)>>2]=C,!C)break a}o[C+24>>2]=r,(g=o[E+16>>2])&&(o[C+16>>2]=g,o[g+24>>2]=C),(g=o[E+20>>2])&&(o[C+20>>2]=g,o[g+24>>2]=C)}}i=o[4+(E=Q+E|0)>>2],A=A+Q|0}if(o[E+4>>2]=-2&i,o[t+4>>2]=1|A,o[A+t>>2]=A,A>>>0<=255){g=35708+(-8&A)|0,(C=o[8917])&(A=1<<(A>>>3))?A=o[g+8>>2]:(o[8917]=A|C,A=g),o[g+8>>2]=t,o[A+12>>2]=t,o[t+12>>2]=g,o[t+8>>2]=A;break i}if(i=31,A>>>0<=16777215&&(i=62+((A>>>38-(g=f(A>>>8|0))&1)-(g<<1)|0)|0),o[t+28>>2]=i,o[t+16>>2]=0,o[t+20>>2]=0,g=35972+(i<<2)|0,(B=o[8918])&(C=1<>>1|0)|0:0),C=o[g>>2];;){if(g=C,(-8&o[C+4>>2])==(0|A))break E;if(C=i>>>29|0,i<<=1,!(C=o[16+(B=(4&C)+g|0)>>2]))break}o[B+16>>2]=t}else o[8918]=C|B,o[g>>2]=t;o[t+24>>2]=g,o[t+12>>2]=t,o[t+8>>2]=t;break i}for(g=(B=E-40|0)-(A=C+8&7?-8-C&7:0)|0,o[8920]=g,A=A+C|0,o[8923]=A,o[A+4>>2]=1|g,o[4+(C+B|0)>>2]=40,o[8924]=o[9039],o[(B=(A=(i+(i-39&7?39-i&7:0)|0)-47|0)>>>0>>0?Q:A)+4>>2]=27,A=o[9032],o[B+16>>2]=o[9031],o[B+20>>2]=A,A=o[9030],o[B+8>>2]=o[9029],o[B+12>>2]=A,o[9031]=B+8,o[9030]=E,o[9029]=C,o[9032]=0,A=B+24|0;o[A+4>>2]=7,g=A+8|0,A=A+4|0,g>>>0>>0;);if((0|B)==(0|Q))break B;if(o[B+4>>2]=-2&o[B+4>>2],i=B-Q|0,o[Q+4>>2]=1|i,o[B>>2]=i,i>>>0<=255){g=35708+(-8&i)|0,(C=o[8917])&(A=1<<(i>>>3))?A=o[g+8>>2]:(o[8917]=A|C,A=g),o[g+8>>2]=Q,o[A+12>>2]=Q,o[Q+12>>2]=g,o[Q+8>>2]=A;break B}if(A=31,i>>>0<=16777215&&(A=62+((i>>>38-(A=f(i>>>8|0))&1)-(A<<1)|0)|0),o[Q+28>>2]=A,o[Q+16>>2]=0,o[Q+20>>2]=0,g=35972+(A<<2)|0,(B=o[8918])&(C=1<>>1|0)|0:0),B=o[g>>2];;){if((0|i)==(-8&o[(g=B)+4>>2]))break Q;if(C=A>>>29|0,A<<=1,!(B=o[16+(C=(4&C)+g|0)>>2]))break}o[C+16>>2]=Q}else o[8918]=C|B,o[g>>2]=Q;o[Q+24>>2]=g,o[Q+12>>2]=Q,o[Q+8>>2]=Q;break B}A=o[g+8>>2],o[A+12>>2]=t,o[g+8>>2]=t,o[t+24>>2]=0,o[t+12>>2]=g,o[t+8>>2]=A}A=e+8|0;break A}A=o[g+8>>2],o[A+12>>2]=Q,o[g+8>>2]=Q,o[Q+24>>2]=0,o[Q+12>>2]=g,o[Q+8>>2]=A}if(!((A=o[8920])>>>0<=r>>>0)){g=A-r|0,o[8920]=g,A=(C=o[8923])+r|0,o[8923]=A,o[A+4>>2]=1|g,o[C+4>>2]=3|r,A=C+8|0;break A}}o[8916]=48,A=0;break A}g:if(E){g=o[B+28>>2];C:{if(o[(A=35972+(g<<2)|0)>>2]==(0|B)){if(o[A>>2]=C,C)break C;e=YA(-2,g)&e,o[8918]=e;break g}if(o[E+(o[E+16>>2]==(0|B)?16:20)>>2]=C,!C)break g}o[C+24>>2]=E,(A=o[B+16>>2])&&(o[C+16>>2]=A,o[A+24>>2]=C),(A=o[B+20>>2])&&(o[C+20>>2]=A,o[A+24>>2]=C)}g:if(i>>>0<=15)A=i+r|0,o[B+4>>2]=3|A,o[4+(A=A+B|0)>>2]=1|o[A+4>>2];else if(o[B+4>>2]=3|r,o[4+(Q=B+r|0)>>2]=1|i,o[Q+i>>2]=i,i>>>0<=255)g=35708+(-8&i)|0,(C=o[8917])&(A=1<<(i>>>3))?A=o[g+8>>2]:(o[8917]=A|C,A=g),o[g+8>>2]=Q,o[A+12>>2]=Q,o[Q+12>>2]=g,o[Q+8>>2]=A;else{A=31,i>>>0<=16777215&&(A=62+((i>>>38-(A=f(i>>>8|0))&1)-(A<<1)|0)|0),o[Q+28>>2]=A,o[Q+16>>2]=0,o[Q+20>>2]=0,g=35972+(A<<2)|0;C:{if((C=1<>>1|0)|0:0),r=o[g>>2];;){if((-8&o[(g=r)+4>>2])==(0|i))break C;if(C=A>>>29|0,A<<=1,!(r=o[16+(C=(4&C)+g|0)>>2]))break}o[C+16>>2]=Q}else o[8918]=C|e,o[g>>2]=Q;o[Q+24>>2]=g,o[Q+12>>2]=Q,o[Q+8>>2]=Q;break g}A=o[g+8>>2],o[A+12>>2]=Q,o[g+8>>2]=Q,o[Q+24>>2]=0,o[Q+12>>2]=g,o[Q+8>>2]=A}A=B+8|0;break A}I:if(t){g=o[C+28>>2];g:{if(o[(A=35972+(g<<2)|0)>>2]==(0|C)){if(o[A>>2]=B,B)break g;y=35672,w=YA(-2,g)&e,o[y>>2]=w;break I}if(o[t+(o[t+16>>2]==(0|C)?16:20)>>2]=B,!B)break I}o[B+24>>2]=t,(A=o[C+16>>2])&&(o[B+16>>2]=A,o[A+24>>2]=B),(A=o[C+20>>2])&&(o[B+20>>2]=A,o[A+24>>2]=B)}i>>>0<=15?(A=i+r|0,o[C+4>>2]=3|A,o[4+(A=A+C|0)>>2]=1|o[A+4>>2]):(o[C+4>>2]=3|r,o[4+(B=C+r|0)>>2]=1|i,o[B+i>>2]=i,c&&(g=35708+(-8&c)|0,Q=o[8922],(A=1<<(c>>>3))&E?A=o[g+8>>2]:(o[8917]=A|E,A=g),o[g+8>>2]=Q,o[A+12>>2]=Q,o[Q+12>>2]=g,o[Q+8>>2]=A),o[8922]=B,o[8919]=i),A=C+8|0}return D=I+16|0,0|A},$b:function(A){var I=0,g=0,C=0,B=0,Q=0,i=0,E=0,a=0,r=0;A:if(A|=0){Q=(C=A-8|0)+(A=-8&(I=o[A-4>>2]))|0;I:if(!(1&I)){if(!(3&I))break A;if((C=C-(I=o[C>>2])|0)>>>0>2])))return o[8919]=A,o[Q+4>>2]=-2&I,o[C+4>>2]=1|A,void(o[A+C>>2]=A)}else{if(I>>>0<=255){if(B=o[C+8>>2],I=I>>>3|0,(0|(g=o[C+12>>2]))==(0|B)){a=35668,r=o[8917]&YA(-2,I),o[a>>2]=r;break I}o[B+12>>2]=g,o[g+8>>2]=B;break I}if(E=o[C+24>>2],(0|C)==(0|(I=o[C+12>>2])))if((g=o[(B=C+20|0)>>2])||(g=o[(B=C+16|0)>>2])){for(;i=B,(g=o[(B=(I=g)+20|0)>>2])||(B=I+16|0,g=o[I+16>>2]););o[i>>2]=0}else I=0;else g=o[C+8>>2],o[g+12>>2]=I,o[I+8>>2]=g;if(!E)break I;B=o[C+28>>2];g:{if(o[(g=35972+(B<<2)|0)>>2]==(0|C)){if(o[g>>2]=I,I)break g;a=35672,r=o[8918]&YA(-2,B),o[a>>2]=r;break I}if(o[E+(o[E+16>>2]==(0|C)?16:20)>>2]=I,!I)break I}if(o[I+24>>2]=E,(g=o[C+16>>2])&&(o[I+16>>2]=g,o[g+24>>2]=I),!(g=o[C+20>>2]))break I;o[I+20>>2]=g,o[g+24>>2]=I}}if(!(C>>>0>=Q>>>0)&&1&(I=o[Q+4>>2])){I:{if(!(2&I)){if(o[8923]==(0|Q)){if(o[8923]=C,A=o[8920]+A|0,o[8920]=A,o[C+4>>2]=1|A,o[8922]!=(0|C))break A;return o[8919]=0,void(o[8922]=0)}if(o[8922]==(0|Q))return o[8922]=C,A=o[8919]+A|0,o[8919]=A,o[C+4>>2]=1|A,void(o[A+C>>2]=A);A=(-8&I)+A|0;g:if(I>>>0<=255){if(B=o[Q+8>>2],I=I>>>3|0,(0|(g=o[Q+12>>2]))==(0|B)){a=35668,r=o[8917]&YA(-2,I),o[a>>2]=r;break g}o[B+12>>2]=g,o[g+8>>2]=B}else{if(E=o[Q+24>>2],(0|Q)==(0|(I=o[Q+12>>2])))if((g=o[(B=Q+20|0)>>2])||(g=o[(B=Q+16|0)>>2])){for(;i=B,(g=o[(B=(I=g)+20|0)>>2])||(B=I+16|0,g=o[I+16>>2]););o[i>>2]=0}else I=0;else g=o[Q+8>>2],o[g+12>>2]=I,o[I+8>>2]=g;if(E){B=o[Q+28>>2];C:{if(o[(g=35972+(B<<2)|0)>>2]==(0|Q)){if(o[g>>2]=I,I)break C;a=35672,r=o[8918]&YA(-2,B),o[a>>2]=r;break g}if(o[E+(o[E+16>>2]==(0|Q)?16:20)>>2]=I,!I)break g}o[I+24>>2]=E,(g=o[Q+16>>2])&&(o[I+16>>2]=g,o[g+24>>2]=I),(g=o[Q+20>>2])&&(o[I+20>>2]=g,o[g+24>>2]=I)}}if(o[C+4>>2]=1|A,o[A+C>>2]=A,o[8922]!=(0|C))break I;return void(o[8919]=A)}o[Q+4>>2]=-2&I,o[C+4>>2]=1|A,o[A+C>>2]=A}if(A>>>0<=255)return I=35708+(-8&A)|0,(g=o[8917])&(A=1<<(A>>>3))?A=o[I+8>>2]:(o[8917]=A|g,A=I),o[I+8>>2]=C,o[A+12>>2]=C,o[C+12>>2]=I,void(o[C+8>>2]=A);B=31,A>>>0<=16777215&&(B=62+((A>>>38-(I=f(A>>>8|0))&1)-(I<<1)|0)|0),o[C+28>>2]=B,o[C+16>>2]=0,o[C+20>>2]=0,i=35972+(B<<2)|0;I:{g:{if((g=o[8918])&(I=1<>>1|0)|0:0),I=o[i>>2];;){if(g=I,(-8&o[I+4>>2])==(0|A))break g;if(I=B>>>29|0,B<<=1,!(I=o[16+(i=g+(4&I)|0)>>2]))break}o[i+16>>2]=C,o[C+24>>2]=g}else o[8918]=I|g,o[i>>2]=C,o[C+24>>2]=i;o[C+12>>2]=C,o[C+8>>2]=C;break I}A=o[g+8>>2],o[A+12>>2]=C,o[g+8>>2]=C,o[C+24>>2]=0,o[C+12>>2]=g,o[C+8>>2]=A}A=o[8925]-1|0,o[8925]=A||-1}}},ac:nI}}(A)}(I)},instantiate:function(A,I){return{then:function(g){var C=new D.Module(A);g({instance:new D.Instance(C,I)})}}},RuntimeError:Error};e=[],"object"!=typeof D&&K("no native wasm support detected");var w,h,s,p,u,k,F,l=!1,S="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function H(A,I){return A?function(A,I,g){for(var C=I+g,B=I;A[B]&&!(B>=C);)++B;if(B-I>16&&A.buffer&&S)return S.decode(A.subarray(I,B));for(var Q="";I>10,56320|1023&a)}}else Q+=String.fromCharCode((31&i)<<6|E)}else Q+=String.fromCharCode(i)}return Q}(h,A,I):""}function M(){var A=y.buffer;i.HEAP8=w=new Int8Array(A),i.HEAP16=s=new Int16Array(A),i.HEAP32=p=new Int32Array(A),i.HEAPU8=h=new Uint8Array(A),i.HEAPU16=new Uint16Array(A),i.HEAPU32=u=new Uint32Array(A),i.HEAPF32=k=new Float32Array(A),i.HEAPF64=F=new Float64Array(A)}var G=i.INITIAL_MEMORY||16777216;G>=65536||K("INITIAL_MEMORY should be larger than STACK_SIZE, was "+G+"! (STACK_SIZE=65536)"),y=i.wasmMemory?i.wasmMemory:new D.Memory({initial:G/65536,maximum:32768}),M(),G=y.buffer.byteLength;var U=[],J=[],N=[],Y=0,b=null,_=null;function K(A){throw i.onAbort&&i.onAbort(A),c(A="Aborted("+A+")"),l=!0,A+=". Build with -sASSERTIONS for more info.",new D.RuntimeError(A)}var P,v,m,d,L="data:application/octet-stream;base64,";function R(A){return A.startsWith(L)}function x(A){return A.startsWith("file://")}function j(A){try{if(A==P&&e)return new Uint8Array(e);var I=T(A);if(I)return I;if(Q)return Q(A);throw"both async and sync fetching of the wasm failed"}catch(A){K(A)}}R(P="<<< WASM_BINARY_FILE >>>")||(v=P,P=i.locateFile?i.locateFile(v,r):r+v);var X={34904:()=>i.getRandomValue(),34940:()=>{if(void 0===i.getRandomValue)try{var A="object"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto,g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),i.getRandomValue=g}catch(A){try{var C=__webpack_require__(/*! crypto */ "./node_modules/crypto-browserify/index.js"),B=function(){var A=C.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};B(),i.getRandomValue=B}catch(A){throw"No secure random number generator found"}}}};function q(A){for(;A.length>0;)A.shift()(i)}var z=[];function V(A){var I=y.buffer;try{return y.grow(A-I.byteLength+65535>>>16),M(),1}catch(A){}}var O="function"==typeof atob?atob:function(A){var I,g,C,B,Q,i,E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o="",a=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{I=E.indexOf(A.charAt(a++))<<2|(B=E.indexOf(A.charAt(a++)))>>4,g=(15&B)<<4|(Q=E.indexOf(A.charAt(a++)))>>2,C=(3&Q)<<6|(i=E.indexOf(A.charAt(a++))),o+=String.fromCharCode(I),64!==Q&&(o+=String.fromCharCode(g)),64!==i&&(o+=String.fromCharCode(C))}while(a>=2;g=h[A++];)I+=105!=g&I,z.push(105==g?p[I]:F[I++>>1]),++I;return z}(I,g);return X[A].apply(null,C)}(A,I,g)},e:function(A){var I,g=h.length,C=2147483648;if((A>>>=0)>C)return!1;for(var B=1;B<=4;B*=2){var Q=g*(1+.2/B);if(Q=Math.min(Q,A+100663296),V(Math.min(C,(I=Math.max(A,Q))+(65536-I%65536)%65536)))return!0}return!1},a:y};function $(){function A(){W||(W=!0,i.calledRun=!0,l||(q(J),i.onRuntimeInitialized&&i.onRuntimeInitialized(),function(){if(i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)A=i.postRun.shift(),N.unshift(A);var A;q(N)}()))}Y>0||(function(){if(i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)A=i.preRun.shift(),U.unshift(A);var A;q(U)}(),Y>0||(i.setStatus?(i.setStatus("Running..."),setTimeout((function(){setTimeout((function(){i.setStatus("")}),1),A()}),1)):A()))}if(function(){var A={a:Z};function I(A,I){var g,C=A.exports;i.asm=C,i.asm.ac,g=i.asm.f,J.unshift(g),function(A){if(Y--,i.monitorRunDependencies&&i.monitorRunDependencies(Y),0==Y&&(null!==b&&(clearInterval(b),b=null),_)){var I=_;_=null,I()}}()}function g(A){I(A.instance)}function C(I){return function(){if(!e&&(o||a)){if("function"==typeof fetch&&!x(P))return fetch(P,{credentials:"same-origin"}).then((function(A){if(!A.ok)throw"failed to load wasm binary file at '"+P+"'";return A.arrayBuffer()})).catch((function(){return j(P)}));if(B)return new Promise((function(A,I){B(P,(function(I){A(new Uint8Array(I))}),I)}))}return Promise.resolve().then((function(){return j(P)}))}().then((function(I){return D.instantiate(I,A)})).then((function(A){return A})).then(I,(function(A){c("failed to asynchronously prepare wasm: "+A),K(A)}))}if(Y++,i.monitorRunDependencies&&i.monitorRunDependencies(Y),i.instantiateWasm)try{return i.instantiateWasm(A,I)}catch(A){return c("Module.instantiateWasm callback failed with error: "+A),!1}e||"function"!=typeof D.instantiateStreaming||R(P)||x(P)||n||"function"!=typeof fetch?C(g):fetch(P,{credentials:"same-origin"}).then((function(I){return D.instantiateStreaming(I,A).then(g,(function(A){return c("wasm streaming compile failed: "+A),c("falling back to ArrayBuffer instantiation"),C(g)}))}))}(),i._crypto_aead_chacha20poly1305_encrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_encrypt_detached=i.asm.g).apply(null,arguments)},i._crypto_aead_chacha20poly1305_encrypt=function(){return(i._crypto_aead_chacha20poly1305_encrypt=i.asm.h).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_encrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_ietf_encrypt_detached=i.asm.i).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_encrypt=function(){return(i._crypto_aead_chacha20poly1305_ietf_encrypt=i.asm.j).apply(null,arguments)},i._crypto_aead_chacha20poly1305_decrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_decrypt_detached=i.asm.k).apply(null,arguments)},i._crypto_aead_chacha20poly1305_decrypt=function(){return(i._crypto_aead_chacha20poly1305_decrypt=i.asm.l).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_decrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_ietf_decrypt_detached=i.asm.m).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_decrypt=function(){return(i._crypto_aead_chacha20poly1305_ietf_decrypt=i.asm.n).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_keybytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_keybytes=i.asm.o).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_npubbytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_npubbytes=i.asm.p).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_nsecbytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_nsecbytes=i.asm.q).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_abytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_abytes=i.asm.r).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_messagebytes_max=function(){return(i._crypto_aead_chacha20poly1305_ietf_messagebytes_max=i.asm.s).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_keygen=function(){return(i._crypto_aead_chacha20poly1305_ietf_keygen=i.asm.t).apply(null,arguments)},i._crypto_aead_chacha20poly1305_keybytes=function(){return(i._crypto_aead_chacha20poly1305_keybytes=i.asm.u).apply(null,arguments)},i._crypto_aead_chacha20poly1305_npubbytes=function(){return(i._crypto_aead_chacha20poly1305_npubbytes=i.asm.v).apply(null,arguments)},i._crypto_aead_chacha20poly1305_nsecbytes=function(){return(i._crypto_aead_chacha20poly1305_nsecbytes=i.asm.w).apply(null,arguments)},i._crypto_aead_chacha20poly1305_abytes=function(){return(i._crypto_aead_chacha20poly1305_abytes=i.asm.x).apply(null,arguments)},i._crypto_aead_chacha20poly1305_messagebytes_max=function(){return(i._crypto_aead_chacha20poly1305_messagebytes_max=i.asm.y).apply(null,arguments)},i._crypto_aead_chacha20poly1305_keygen=function(){return(i._crypto_aead_chacha20poly1305_keygen=i.asm.z).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=function(){return(i._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=i.asm.A).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_encrypt=function(){return(i._crypto_aead_xchacha20poly1305_ietf_encrypt=i.asm.B).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=function(){return(i._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=i.asm.C).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_decrypt=function(){return(i._crypto_aead_xchacha20poly1305_ietf_decrypt=i.asm.D).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_keybytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_keybytes=i.asm.E).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_npubbytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_npubbytes=i.asm.F).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_nsecbytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_nsecbytes=i.asm.G).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_abytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_abytes=i.asm.H).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=function(){return(i._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=i.asm.I).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_keygen=function(){return(i._crypto_aead_xchacha20poly1305_ietf_keygen=i.asm.J).apply(null,arguments)},i._crypto_auth_bytes=function(){return(i._crypto_auth_bytes=i.asm.K).apply(null,arguments)},i._crypto_auth_keybytes=function(){return(i._crypto_auth_keybytes=i.asm.L).apply(null,arguments)},i._crypto_auth=function(){return(i._crypto_auth=i.asm.M).apply(null,arguments)},i._crypto_auth_verify=function(){return(i._crypto_auth_verify=i.asm.N).apply(null,arguments)},i._crypto_auth_keygen=function(){return(i._crypto_auth_keygen=i.asm.O).apply(null,arguments)},i._crypto_box_seedbytes=function(){return(i._crypto_box_seedbytes=i.asm.P).apply(null,arguments)},i._crypto_box_publickeybytes=function(){return(i._crypto_box_publickeybytes=i.asm.Q).apply(null,arguments)},i._crypto_box_secretkeybytes=function(){return(i._crypto_box_secretkeybytes=i.asm.R).apply(null,arguments)},i._crypto_box_beforenmbytes=function(){return(i._crypto_box_beforenmbytes=i.asm.S).apply(null,arguments)},i._crypto_box_noncebytes=function(){return(i._crypto_box_noncebytes=i.asm.T).apply(null,arguments)},i._crypto_box_macbytes=function(){return(i._crypto_box_macbytes=i.asm.U).apply(null,arguments)},i._crypto_box_messagebytes_max=function(){return(i._crypto_box_messagebytes_max=i.asm.V).apply(null,arguments)},i._crypto_box_seed_keypair=function(){return(i._crypto_box_seed_keypair=i.asm.W).apply(null,arguments)},i._crypto_box_keypair=function(){return(i._crypto_box_keypair=i.asm.X).apply(null,arguments)},i._crypto_box_beforenm=function(){return(i._crypto_box_beforenm=i.asm.Y).apply(null,arguments)},i._crypto_box_detached_afternm=function(){return(i._crypto_box_detached_afternm=i.asm.Z).apply(null,arguments)},i._crypto_box_detached=function(){return(i._crypto_box_detached=i.asm._).apply(null,arguments)},i._crypto_box_easy_afternm=function(){return(i._crypto_box_easy_afternm=i.asm.$).apply(null,arguments)},i._crypto_box_easy=function(){return(i._crypto_box_easy=i.asm.aa).apply(null,arguments)},i._crypto_box_open_detached_afternm=function(){return(i._crypto_box_open_detached_afternm=i.asm.ba).apply(null,arguments)},i._crypto_box_open_detached=function(){return(i._crypto_box_open_detached=i.asm.ca).apply(null,arguments)},i._crypto_box_open_easy_afternm=function(){return(i._crypto_box_open_easy_afternm=i.asm.da).apply(null,arguments)},i._crypto_box_open_easy=function(){return(i._crypto_box_open_easy=i.asm.ea).apply(null,arguments)},i._crypto_box_seal=function(){return(i._crypto_box_seal=i.asm.fa).apply(null,arguments)},i._crypto_box_seal_open=function(){return(i._crypto_box_seal_open=i.asm.ga).apply(null,arguments)},i._crypto_box_sealbytes=function(){return(i._crypto_box_sealbytes=i.asm.ha).apply(null,arguments)},i._crypto_generichash_bytes_min=function(){return(i._crypto_generichash_bytes_min=i.asm.ia).apply(null,arguments)},i._crypto_generichash_bytes_max=function(){return(i._crypto_generichash_bytes_max=i.asm.ja).apply(null,arguments)},i._crypto_generichash_bytes=function(){return(i._crypto_generichash_bytes=i.asm.ka).apply(null,arguments)},i._crypto_generichash_keybytes_min=function(){return(i._crypto_generichash_keybytes_min=i.asm.la).apply(null,arguments)},i._crypto_generichash_keybytes_max=function(){return(i._crypto_generichash_keybytes_max=i.asm.ma).apply(null,arguments)},i._crypto_generichash_keybytes=function(){return(i._crypto_generichash_keybytes=i.asm.na).apply(null,arguments)},i._crypto_generichash_statebytes=function(){return(i._crypto_generichash_statebytes=i.asm.oa).apply(null,arguments)},i._crypto_generichash=function(){return(i._crypto_generichash=i.asm.pa).apply(null,arguments)},i._crypto_generichash_init=function(){return(i._crypto_generichash_init=i.asm.qa).apply(null,arguments)},i._crypto_generichash_update=function(){return(i._crypto_generichash_update=i.asm.ra).apply(null,arguments)},i._crypto_generichash_final=function(){return(i._crypto_generichash_final=i.asm.sa).apply(null,arguments)},i._crypto_generichash_keygen=function(){return(i._crypto_generichash_keygen=i.asm.ta).apply(null,arguments)},i._crypto_hash_bytes=function(){return(i._crypto_hash_bytes=i.asm.ua).apply(null,arguments)},i._crypto_hash=function(){return(i._crypto_hash=i.asm.va).apply(null,arguments)},i._crypto_kdf_bytes_min=function(){return(i._crypto_kdf_bytes_min=i.asm.wa).apply(null,arguments)},i._crypto_kdf_bytes_max=function(){return(i._crypto_kdf_bytes_max=i.asm.xa).apply(null,arguments)},i._crypto_kdf_contextbytes=function(){return(i._crypto_kdf_contextbytes=i.asm.ya).apply(null,arguments)},i._crypto_kdf_keybytes=function(){return(i._crypto_kdf_keybytes=i.asm.za).apply(null,arguments)},i._crypto_kdf_derive_from_key=function(){return(i._crypto_kdf_derive_from_key=i.asm.Aa).apply(null,arguments)},i._crypto_kdf_keygen=function(){return(i._crypto_kdf_keygen=i.asm.Ba).apply(null,arguments)},i._crypto_kx_seed_keypair=function(){return(i._crypto_kx_seed_keypair=i.asm.Ca).apply(null,arguments)},i._crypto_kx_keypair=function(){return(i._crypto_kx_keypair=i.asm.Da).apply(null,arguments)},i._crypto_kx_client_session_keys=function(){return(i._crypto_kx_client_session_keys=i.asm.Ea).apply(null,arguments)},i._crypto_kx_server_session_keys=function(){return(i._crypto_kx_server_session_keys=i.asm.Fa).apply(null,arguments)},i._crypto_kx_publickeybytes=function(){return(i._crypto_kx_publickeybytes=i.asm.Ga).apply(null,arguments)},i._crypto_kx_secretkeybytes=function(){return(i._crypto_kx_secretkeybytes=i.asm.Ha).apply(null,arguments)},i._crypto_kx_seedbytes=function(){return(i._crypto_kx_seedbytes=i.asm.Ia).apply(null,arguments)},i._crypto_kx_sessionkeybytes=function(){return(i._crypto_kx_sessionkeybytes=i.asm.Ja).apply(null,arguments)},i._crypto_scalarmult_base=function(){return(i._crypto_scalarmult_base=i.asm.Ka).apply(null,arguments)},i._crypto_scalarmult=function(){return(i._crypto_scalarmult=i.asm.La).apply(null,arguments)},i._crypto_scalarmult_bytes=function(){return(i._crypto_scalarmult_bytes=i.asm.Ma).apply(null,arguments)},i._crypto_scalarmult_scalarbytes=function(){return(i._crypto_scalarmult_scalarbytes=i.asm.Na).apply(null,arguments)},i._crypto_secretbox_keybytes=function(){return(i._crypto_secretbox_keybytes=i.asm.Oa).apply(null,arguments)},i._crypto_secretbox_noncebytes=function(){return(i._crypto_secretbox_noncebytes=i.asm.Pa).apply(null,arguments)},i._crypto_secretbox_macbytes=function(){return(i._crypto_secretbox_macbytes=i.asm.Qa).apply(null,arguments)},i._crypto_secretbox_messagebytes_max=function(){return(i._crypto_secretbox_messagebytes_max=i.asm.Ra).apply(null,arguments)},i._crypto_secretbox_keygen=function(){return(i._crypto_secretbox_keygen=i.asm.Sa).apply(null,arguments)},i._crypto_secretbox_detached=function(){return(i._crypto_secretbox_detached=i.asm.Ta).apply(null,arguments)},i._crypto_secretbox_easy=function(){return(i._crypto_secretbox_easy=i.asm.Ua).apply(null,arguments)},i._crypto_secretbox_open_detached=function(){return(i._crypto_secretbox_open_detached=i.asm.Va).apply(null,arguments)},i._crypto_secretbox_open_easy=function(){return(i._crypto_secretbox_open_easy=i.asm.Wa).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_keygen=function(){return(i._crypto_secretstream_xchacha20poly1305_keygen=i.asm.Xa).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_init_push=function(){return(i._crypto_secretstream_xchacha20poly1305_init_push=i.asm.Ya).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_init_pull=function(){return(i._crypto_secretstream_xchacha20poly1305_init_pull=i.asm.Za).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_rekey=function(){return(i._crypto_secretstream_xchacha20poly1305_rekey=i.asm._a).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_push=function(){return(i._crypto_secretstream_xchacha20poly1305_push=i.asm.$a).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_pull=function(){return(i._crypto_secretstream_xchacha20poly1305_pull=i.asm.ab).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_statebytes=function(){return(i._crypto_secretstream_xchacha20poly1305_statebytes=i.asm.bb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_abytes=function(){return(i._crypto_secretstream_xchacha20poly1305_abytes=i.asm.cb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_headerbytes=function(){return(i._crypto_secretstream_xchacha20poly1305_headerbytes=i.asm.db).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_keybytes=function(){return(i._crypto_secretstream_xchacha20poly1305_keybytes=i.asm.eb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_messagebytes_max=function(){return(i._crypto_secretstream_xchacha20poly1305_messagebytes_max=i.asm.fb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_message=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_message=i.asm.gb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_push=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_push=i.asm.hb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_rekey=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_rekey=i.asm.ib).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_final=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_final=i.asm.jb).apply(null,arguments)},i._crypto_shorthash_bytes=function(){return(i._crypto_shorthash_bytes=i.asm.kb).apply(null,arguments)},i._crypto_shorthash_keybytes=function(){return(i._crypto_shorthash_keybytes=i.asm.lb).apply(null,arguments)},i._crypto_shorthash=function(){return(i._crypto_shorthash=i.asm.mb).apply(null,arguments)},i._crypto_shorthash_keygen=function(){return(i._crypto_shorthash_keygen=i.asm.nb).apply(null,arguments)},i._crypto_sign_statebytes=function(){return(i._crypto_sign_statebytes=i.asm.ob).apply(null,arguments)},i._crypto_sign_bytes=function(){return(i._crypto_sign_bytes=i.asm.pb).apply(null,arguments)},i._crypto_sign_seedbytes=function(){return(i._crypto_sign_seedbytes=i.asm.qb).apply(null,arguments)},i._crypto_sign_publickeybytes=function(){return(i._crypto_sign_publickeybytes=i.asm.rb).apply(null,arguments)},i._crypto_sign_secretkeybytes=function(){return(i._crypto_sign_secretkeybytes=i.asm.sb).apply(null,arguments)},i._crypto_sign_messagebytes_max=function(){return(i._crypto_sign_messagebytes_max=i.asm.tb).apply(null,arguments)},i._crypto_sign_seed_keypair=function(){return(i._crypto_sign_seed_keypair=i.asm.ub).apply(null,arguments)},i._crypto_sign_keypair=function(){return(i._crypto_sign_keypair=i.asm.vb).apply(null,arguments)},i._crypto_sign=function(){return(i._crypto_sign=i.asm.wb).apply(null,arguments)},i._crypto_sign_open=function(){return(i._crypto_sign_open=i.asm.xb).apply(null,arguments)},i._crypto_sign_detached=function(){return(i._crypto_sign_detached=i.asm.yb).apply(null,arguments)},i._crypto_sign_verify_detached=function(){return(i._crypto_sign_verify_detached=i.asm.zb).apply(null,arguments)},i._crypto_sign_init=function(){return(i._crypto_sign_init=i.asm.Ab).apply(null,arguments)},i._crypto_sign_update=function(){return(i._crypto_sign_update=i.asm.Bb).apply(null,arguments)},i._crypto_sign_final_create=function(){return(i._crypto_sign_final_create=i.asm.Cb).apply(null,arguments)},i._crypto_sign_final_verify=function(){return(i._crypto_sign_final_verify=i.asm.Db).apply(null,arguments)},i._crypto_sign_ed25519_pk_to_curve25519=function(){return(i._crypto_sign_ed25519_pk_to_curve25519=i.asm.Eb).apply(null,arguments)},i._crypto_sign_ed25519_sk_to_curve25519=function(){return(i._crypto_sign_ed25519_sk_to_curve25519=i.asm.Fb).apply(null,arguments)},i._randombytes_random=function(){return(i._randombytes_random=i.asm.Gb).apply(null,arguments)},i._randombytes_stir=function(){return(i._randombytes_stir=i.asm.Hb).apply(null,arguments)},i._randombytes_uniform=function(){return(i._randombytes_uniform=i.asm.Ib).apply(null,arguments)},i._randombytes_buf=function(){return(i._randombytes_buf=i.asm.Jb).apply(null,arguments)},i._randombytes_buf_deterministic=function(){return(i._randombytes_buf_deterministic=i.asm.Kb).apply(null,arguments)},i._randombytes_seedbytes=function(){return(i._randombytes_seedbytes=i.asm.Lb).apply(null,arguments)},i._randombytes_close=function(){return(i._randombytes_close=i.asm.Mb).apply(null,arguments)},i._randombytes=function(){return(i._randombytes=i.asm.Nb).apply(null,arguments)},i._sodium_bin2hex=function(){return(i._sodium_bin2hex=i.asm.Ob).apply(null,arguments)},i._sodium_hex2bin=function(){return(i._sodium_hex2bin=i.asm.Pb).apply(null,arguments)},i._sodium_base64_encoded_len=function(){return(i._sodium_base64_encoded_len=i.asm.Qb).apply(null,arguments)},i._sodium_bin2base64=function(){return(i._sodium_bin2base64=i.asm.Rb).apply(null,arguments)},i._sodium_base642bin=function(){return(i._sodium_base642bin=i.asm.Sb).apply(null,arguments)},i._sodium_init=function(){return(i._sodium_init=i.asm.Tb).apply(null,arguments)},i._sodium_pad=function(){return(i._sodium_pad=i.asm.Ub).apply(null,arguments)},i._sodium_unpad=function(){return(i._sodium_unpad=i.asm.Vb).apply(null,arguments)},i._sodium_version_string=function(){return(i._sodium_version_string=i.asm.Wb).apply(null,arguments)},i._sodium_library_version_major=function(){return(i._sodium_library_version_major=i.asm.Xb).apply(null,arguments)},i._sodium_library_version_minor=function(){return(i._sodium_library_version_minor=i.asm.Yb).apply(null,arguments)},i._sodium_library_minimal=function(){return(i._sodium_library_minimal=i.asm.Zb).apply(null,arguments)},i._malloc=function(){return(i._malloc=i.asm._b).apply(null,arguments)},i._free=function(){return(i._free=i.asm.$b).apply(null,arguments)},i.UTF8ToString=H,i.setValue=function(A,I,g="i8"){switch(g.endsWith("*")&&(g="*"),g){case"i1":case"i8":w[A>>0]=I;break;case"i16":s[A>>1]=I;break;case"i32":p[A>>2]=I;break;case"i64":d=[I>>>0,(m=I,+Math.abs(m)>=1?m>0?(0|Math.min(+Math.floor(m/4294967296),4294967295))>>>0:~~+Math.ceil((m-+(~~m>>>0))/4294967296)>>>0:0)],p[A>>2]=d[0],p[A+4>>2]=d[1];break;case"float":k[A>>2]=I;break;case"double":F[A>>3]=I;break;case"*":u[A>>2]=I;break;default:K("invalid type for setValue: "+g)}},i.getValue=function(A,I="i8"){switch(I.endsWith("*")&&(I="*"),I){case"i1":case"i8":return w[A>>0];case"i16":return s[A>>1];case"i32":case"i64":return p[A>>2];case"float":return k[A>>2];case"double":return F[A>>3];case"*":return u[A>>2];default:K("invalid type for getValue: "+I)}return null},_=function A(){W||$(),W||(_=A)},i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();$()}))};var g,B,Q,i=void 0!==i?i:{},E=Object.assign({},i),o="object"==typeof window,a="function"==typeof importScripts,n= true&&"object"==typeof ({"env":{"NODE_ENV":"production"}}).versions&&"string"==typeof ({"env":{"NODE_ENV":"production"}}).versions.node,r="";if(n){var f=__webpack_require__(/*! fs */ "?f0f8"),t=__webpack_require__(/*! path */ "?ebe9");r=a?t.dirname(r)+"/":__dirname+"/",g=(A,I)=>{var g=V(A);return g?I?g:g.toString():(A=L(A)?new URL(A):t.normalize(A),f.readFileSync(A,I?void 0:"utf8"))},Q=A=>{var I=g(A,!0);return I.buffer||(I=new Uint8Array(I)),I},B=(A,I,g)=>{var C=V(A);C&&I(C),A=L(A)?new URL(A):t.normalize(A),f.readFile(A,(function(A,C){A?g(A):I(C.buffer)}))},({"env":{"NODE_ENV":"production"}}).argv.length>1&&({"env":{"NODE_ENV":"production"}}).argv[1].replace(/\\/g,"/"),({"env":{"NODE_ENV":"production"}}).argv.slice(2), true&&(module.exports=i),i.inspect=function(){return"[Emscripten Module object]"}}else(o||a)&&(a?r=self.location.href:"undefined"!=typeof document&&document.currentScript&&(r=document.currentScript.src),r=0!==r.indexOf("blob:")?r.substr(0,r.replace(/[?#].*/,"").lastIndexOf("/")+1):"",g=A=>{try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.send(null),I.responseText}catch(I){var g=V(A);if(g)return function(A){for(var I=[],g=0;g255&&(C&=255),I.push(String.fromCharCode(C))}return I.join("")}(g);throw I}},a&&(Q=A=>{try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)}catch(I){var g=V(A);if(g)return g;throw I}}),B=(A,I,g)=>{var C=new XMLHttpRequest;C.open("GET",A,!0),C.responseType="arraybuffer",C.onload=()=>{if(200==C.status||0==C.status&&C.response)I(C.response);else{var B=V(A);B?I(B.buffer):g()}},C.onerror=g,C.send(null)});i.print;var e,c,y=i.printErr||void 0;Object.assign(i,E),E=null,i.arguments&&i.arguments,i.thisProgram&&i.thisProgram,i.quit&&i.quit,i.wasmBinary&&(e=i.wasmBinary),i.noExitRuntime,"object"!=typeof WebAssembly&&b("no native wasm support detected");var D,w,h,s,p,u,k,F=!1,l="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function S(A,I){return A?function(A,I,g){for(var C=I+g,B=I;A[B]&&!(B>=C);)++B;if(B-I>16&&A.buffer&&l)return l.decode(A.subarray(I,B));for(var Q="";I>10,56320|1023&a)}}else Q+=String.fromCharCode((31&i)<<6|E)}else Q+=String.fromCharCode(i)}return Q}(w,A,I):""}function H(){var A=c.buffer;i.HEAP8=D=new Int8Array(A),i.HEAP16=h=new Int16Array(A),i.HEAP32=s=new Int32Array(A),i.HEAPU8=w=new Uint8Array(A),i.HEAPU16=new Uint16Array(A),i.HEAPU32=p=new Uint32Array(A),i.HEAPF32=u=new Float32Array(A),i.HEAPF64=k=new Float64Array(A)}var M=[],G=[],U=[],J=0,N=null,Y=null;function b(A){throw i.onAbort&&i.onAbort(A),y(A="Aborted("+A+")"),F=!0,A+=". Build with -sASSERTIONS for more info.",new WebAssembly.RuntimeError(A)}var _,K,P,v,m="data:application/octet-stream;base64,";function d(A){return A.startsWith(m)}function L(A){return A.startsWith("file://")}function R(A){try{if(A==_&&e)return new Uint8Array(e);var I=V(A);if(I)return I;if(Q)return Q(A);throw"both async and sync fetching of the wasm failed"}catch(A){b(A)}}d(_="data:application/octet-stream;base64,AGFzbQEAAAABiwIfYAN/f34Bf2ACf38Bf2AAAX9gA39/fwF/YAJ/fwBgA39/fwBgBX9/f39/AX9gC39/f39/f39/f39/AX9gBn9/fn9/fwF/YAZ/f35/fn8Bf2AGf39/f39/AX9gAX8AYAR/fn9/AX9gBH9/f38Bf2ABfwF/YAd/f39/f39/AX9gAABgBn9/f35/fwF/YAR/f35/AX9gA39/fgBgCH9/fn9/fn9/AX9gCX9/f39+f35/fwF/YAh/f39/f39/fwF/YAx/f39/f39/f39/f38Bf2AEf39/fwBgBX9/fn9/AGAKf39/f39/f39/fwF/YAR/fn9/AGAGf39+f39/AGAEf39/fgBgBX9/fn9/AX8CHwUBYQFhAAMBYQFiABgBYQFjABABYQFkAAUBYQFlAA4DsAGuAQQFBAMQAgMABAUAAgUEBAsEBBsACwIcDgECAREDAw0DGAIFBAUEBAQBAh0RHhEDAgMLDgUTBBMDAQMLFBQVFQICAwUFAQQBEBkZCg8PCAgEEwQUFREDAgIBAQICAgICCwMDAgkMAQMLDgEAARISAgUOAgUNBgoKCgYaGgoKDQ0PCgYPCBYPChYGBgcHCQcXBwcHBwcXBxcMBgYDAQICCwIDDAINFgYBDw0DDQ4BBgQEAXAADgUGAQFAgIACBggBfwFB8JoGCweWBp4BAWYCAAFnAJsBAWgAmgEBaQCZAQFqAJgBAWsAlwEBbACWAQFtAJUBAW4AlAEBbwAKAXAAXwFxAC4BcgAQAXMAHgF0ABQBdQAKAXYANAF3AC4BeAAQAXkAHgF6ABQBQQCTAQFCAJIBAUMAkAEBRACPAQFFAAoBRgAmAUcALgFIABABSQAeAUoAFAFLAAoBTAAKAU0AjgEBTgCNAQFPABQBUAAKAVEACgFSAAoBUwAKAVQAJgFVABABVgAeAVcApQEBWAA9AVkAIQFaAFEBXwCMAQEkAIsBAmFhAIoBAmJhAFACY2EAiQECZGEATwJlYQCHAQJmYQCGAQJnYQCFAQJoYQCkAQJpYQAQAmphABoCa2EACgJsYQAQAm1hABoCbmEACgJvYQCnAQJwYQCEAQJxYQAjAnJhAIMBAnNhACICdGEAFAJ1YQAaAnZhAIIBAndhABACeGEAGgJ5YQA0AnphAAoCQWEAgQECQmEAFAJDYQCfAQJEYQA9AkVhAJ4B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NgIUIAMgATYCECADIAE2AgwgAkEQayABNgIAIAJBFGsgATYCACACQRhrIAE2AgAgAkEcayABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa1CgYCAgBB+IQUgAyAEaiEBA0AgASAFNwMYIAEgBTcDECABIAU3AwggASAFNwMAIAFBIGohASACQSBrIgJBH0sNAAsLIAALGAEBf0HomgIoAgAiAARAIAAREAALEAIACwQAQSALgAQBA38gAkGABE8EQCAAIAEgAhADIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAEEDcUUEQCAAIQIMAQsgAkUEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgJBA3FFDQEgAiADSQ0ACwsCQCADQXxxIgRBwABJDQAgAiAEQUBqIgVLDQADQCACIAEoAgA2AgAgAiABKAIENgIEIAIgASgCCDYCCCACIAEoAgw2AgwgAiABKAIQNgIQIAIgASgCFDYCFCACIAEoAhg2AhggAiABKAIcNgIcIAIgASgCIDYCICACIAEoAiQ2AiQgAiABKAIoNgIoIAIgASgCLDYCLCACIAEoAjA2AjAgAiABKAI0NgI0IAIgASgCODYCOCACIAEoAjw2AjwgAUFAayEBIAJBQGsiAiAFTQ0ACwsgAiAETw0BA0AgAiABKAIANgIAIAFBBGohASACQQRqIgIgBEkNAAsMAQsgA0EESQRAIAAhAgwBCyAAIANBBGsiBEsEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAIgAS0AAToAASACIAEtAAI6AAIgAiABLQADOgADIAFBBGohASACQQRqIgIgBE0NAAsLIAIgA0kEQANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIANHDQALCyAAC6EGAgd+BH8jAEHABWsiDCQAAkAgAlANACAAIAApA0giAyACQgOGfCIENwNIIABBQGsiCiAKKQMAIAMgBFatfCACQj2IfDcDACACQoABIANCA4hC/wCDIgR9IghaBEBCACEDIARC/wCFQgNaBEAgCEL8AYMhByAAQdAAaiEKA0AgCiADIAR8p2ogASADp2otAAA6AAAgCiADQgGEIgkgBHynaiABIAmnai0AADoAACAKIANCAoQiCSAEfKdqIAEgCadqLQAAOgAAIAogA0IDhCIJIAR8p2ogASAJp2otAAA6AAAgA0IEfCEDIAVCBHwiBSAHUg0ACwsgCEIDgyIFQgBSBEADQCAAIAMgBHynaiABIAOnai0AADoAUCADQgF8IQMgBkIBfCIGIAVSDQALCyAAIABB0ABqIAwgDEGABWoiChAlIAEgCKdqIQEgAiAIfSICQv8AVgRAA0AgACABIAwgChAlIAFBgAFqIQEgAkKAAX0iAkL/AFYNAAsLAkAgAlANACACQgODIQRCACEGQgAhAyACQgRaBEAgAkJ8gyEFIABB0ABqIQpCACECA0AgCiADpyILaiABIAtqLQAAOgAAIAogC0EBciINaiABIA1qLQAAOgAAIAogC0ECciINaiABIA1qLQAAOgAAIAogC0EDciILaiABIAtqLQAAOgAAIANCBHwhAyACQgR8IgIgBVINAAsLIARQDQADQCAAIAOnIgpqIAEgCmotAAA6AFAgA0IBfCEDIAZCAXwiBiAEUg0ACwsgDEHABRAHDAELQgAhAyACQgRaBEAgAkJ8gyEIIABB0ABqIQoDQCAKIAMgBHynaiABIAOnai0AADoAACAKIANCAYQiByAEfKdqIAEgB6dqLQAAOgAAIAogA0IChCIHIAR8p2ogASAHp2otAAA6AAAgCiADQgOEIgcgBHynaiABIAenai0AADoAACADQgR8IQMgBUIEfCIFIAhSDQALCyACQgODIgJQDQADQCAAIAMgBHynaiABIAOnai0AADoAUCADQgF8IQMgBkIBfCIGIAJSDQALCyAMQcAFaiQAQQALsQQCE38EfiABKAIoIQIgASgCBCEDIAEoAiwhBCABKAIIIQUgASgCMCEGIAEoAgwhByABKAI0IQggASgCECEJIAEoAjghCiABKAIUIQsgASgCPCEMIAEoAhghDSABQUBrIg4oAgAhDyABKAIcIRAgASgCRCERIAEoAiAhEiABKAJIIRMgASgCACEUIAAgASgCJCABKAJMajYCJCAAIBIgE2o2AiAgACAQIBFqNgIcIAAgDSAPajYCGCAAIAsgDGo2AhQgACAJIApqNgIQIAAgByAIajYCDCAAIAUgBmo2AgggACADIARqNgIEIAAgAiAUajYCACABKAIoIQIgASgCBCEDIAEoAiwhBCABKAIIIQUgASgCMCEGIAEoAgwhByABKAI0IQggASgCECEJIAEo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ACABKAJMIAEoAiRqNgJMIAAgLiAvajYCSCAAICwgLWo2AkQgAEFAayIyICogK2o2AgAgACAoIClqNgI8IAAgJiAnajYCOCAAICQgJWo2AjQgACAiICNqNgIwIAAgICAhajYCLCAAQShqIgEgHyAwajYCACAeIAEQBSAAKAJQIR8gACgCBCEgIAAoAlQhISAAKAIIISIgACgCWCEjIAAoAgwhJCAAKAJcISUgACgCECEmIAAoAmAhJyAAKAIUISggACgCZCEpIAAoAhghKiAAKAJoISsgACgCHCEsIAAoAmwhLSAAKAIgIS4gACgCcCEvIAAoAgAhMCAAIAAoAnQiMSAAKAIkIjNrIjQ2AnQgACAvIC5rIjU2AnAgACAtICxrIjY2AmwgACArICprIjc2AmggACApIChrIjg2AmQgACAnICZrIjk2AmAgACAlICRrIjo2AlwgACAjICJrIjs2AlggACAhICBrIjw2AlQgACAfIDBrIj02AlAgACAxIDNqIjE2AkwgACAuIC9qIi42AkggACAsIC1qIiw2AkQgMiAqICtqIio2AgAgACAoIClqIig2AjwgACAmICdqIiY2AjggACAkICVqIiQ2AjQgACAiICNqIiI2AjAgACAgICFqIiA2AiwgASAfIDBqIgE2AgAgHigCACEfIB4oAgQhISAeKAIIISMgHigCDCElIB4oAhAhJyAeKAIUISkgHigCGCErIB4oAhwhLSAeKAIgIS8gACAeKAIkIDFrNgIkIAAgLyAuazYCICAAIC0gLGs2AhwgACArICprNgIYIAAgKSAoazYCFCAAICcgJms2AhAgACAlICRrNgIMIAAgIyAiazYCCCAAICEgIGs2AgQgACAfIAFrNgIAIAAoAnghASAAKAJ8IR8gACgCgAEhICAAKAKEASEhIAAoAogBISIgACgCjAEhIyAAKAKQASEkIAAoApQBISUgACgCmAEhJiAAIAAoApwBIDRrNgKcASAAICYgNWs2ApgBIAAgJSA2azYClAEgACAkIDdrNgKQASAAICMgOGs2AowBIAAgIiA5azYCiAEgACAhIDprNgKEASAAICAgO2s2AoABIAAgHyA8azYCfCAAIAEgPWs2AnggHkEwaiQAC0QBAn8jAEEQayICJAAgAQRAA0AgAkEAOgAPIAAgA2pB2JACIAJBD2pBABAAOgAA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IAUgBhAGQQAhAwNAIAJBCGoiByADQQF2IAJBoAJqIANqLAAAEEcgAkGAAWoiBSAAIAcQOCAAIAUgBBAGIAggBiABEAYgCyABIAQQBiAKIAUgBhAGIANBPkkhByADQQJqIQMgBw0ACyACQeADaiQAC2IBA38jAEGwAWsiAiQAIAJB4ABqIgMgAUHQAGoQLCACQTBqIgQgASADEAYgAiABQShqIAMQBiAAIAIQEiACQZABaiAEEBIgACAALQAfIAItAJABQQd0czoAHyACQbABaiQAC8oIAQN/IwBBwAFrIgIkACACQZABaiIEIAEQBSACQeAAaiIDIAQQBSADIAMQBSADIAEgAxAGIAQgBCADEAYgAkEwaiIBIAQQBSADIAMgARAGIAEgAxAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAMgASADEAYgASADEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABIAMQBiACIAEQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSABIAIgARAGIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAMgASADEAYgASADEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABIAMQBiACIAEQBUEBIQEDQCACIAIQBSABQQFqIgFB5ABHDQALIAJBMGoiASACIAEQBiABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSACQeAAaiIDIAEgAxAGIAMgAxAFIAMgAxAFIAMgAxAFIAMgAxAFIAMgAxAFIAAgAyACQZABahAGIAJBwAFqJAAL7wMBAX8jAEEQayICIAA2AgwgAiABNgIIIAJBADYCBCACIAIoAgQgAigCDC0AACACKAIILQAAc3I2AgQgAiACKAIEIAIoAgwtAAEgAigCCC0AAXNyNgIEIAIgAigCBCACKAIMLQACIAIoAggtAAJzcjYCBCACIAIoAgQgAigCDC0AAyACKAIILQADc3I2AgQgAiACKAIEIAIoAgwtAAQgAigCCC0ABHNyNgIEIAIgAigCBCACKAIMLQAFIAIoAggtAAVzcjYCBCACIAIoAgQgAigCDC0ABiACKAIILQAGc3I2AgQgAiACKAIEIAIoAgwtAAcgAigCCC0AB3NyNgIEIAIgAigCBCACKAIMLQAIIAIoAggtAAhzcjYCBCACIAIoAgQgAigCDC0ACSACKAIILQAJc3I2AgQgAiACKAIEIAIoAgwtAAogAigCCC0ACnNyNgIEIAIgAigCBCACKAIMLQALIAIoAggtAAtzcjYCBCACIAIoAgQgAigCDC0ADCACKAIILQAMc3I2AgQgAiACKAIEIAIoAgwtAA0gAigCCC0ADXNyNgIEIAIgAigCBCACKAIMLQAOIAIoAggtAA5zcjYCBCACIAIoAgQgAigCDC0ADyACKAIILQAPc3I2AgQgAigCBEEBa0EI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fiARIBN+fCASIBZ+fCIDIANCgIBAfSIDQoCAgP////8Ag318IixCmNocfiARIBZ+IBIgFX58IANCFYh8IgMgA0KAgEB9IipCgICA/////wCDfSItQpPYKH58IAcgBkKAgIB/g30iLkLn9id+fCAJIAhCgICAf4N9IBIgGH4gBUEGdkH///8Aca0iGiARfnwgEyAUfnwgECAXfnwgFSACQQZ2Qf///wBxrSIbfnwgFiAZfnwgQCgACiJCQRh2rSBAMQAOQgiGhCBAMQAPQhCGhEIBiEL///8AgyIcIBF+IBIgGn58IBcgGH58IBMgGX58IBAgFH58IAAoAAoiQUEYdq0gADEADkIIhoQgADEAD0IQhoRCAYhC////AIMiHSAVfnwgFiAbfnwiDEKAgEB9IgpCFYh8IglCgIBAfSIIQhWIfCIvQtOMQ358ID9B4AFqIj4oABciBUEFdkH///8Aca0gQDMAACBAMQACQhCGQoCA/ACDhCIeIBd+IBQgQCgAAiICQQV2Qf///wBxrSIffnwgQDUAB0IHiEL///8AgyIgIBt+fCAdIEJBBHZB////AHGtIiF+fCACQRh2rSBAMQAGQgiGhCBAMQAHQhCGhEICiEL///8AgyIiIBl+fCAaIAA1AAdCB4hC////AIMiI358IBwgQUEEdkH///8Aca0iJH58IBggACgAAiICQRh2rSAAMQAGQgiGhCAAMQAHQhCGhEICiEL///8AgyIlfnwgADMAACAAMQACQhCGQoCA/ACDhCImIBN+fCAQIAJBBXZB////AHGtIid+fHwgPjMAFSAUIB5+IBkgH358IB0gIH58ICEgJH58IBsgIn58IBogJX58IBwgI358IBggJ358IBAgJn58fCA+MQAXQhCGQoCA/ACDfCIHQoCAQH0iBkIViHwiA3wgA0KAgEB9IgtCgICAf4N9IAcgLkKY2hx+ICxCk9gofnwgL0Ln9id+fCAZIB5+IBsgH358ICAgJH58ICEgI358IB0gIn58IBogJ358IBwgJX58IBggJn58ID4oAA8iAEEYdq0gPjEAE0IIhoQgPjEAFEIQhoRCA4h8IABBBnZB////AHGtIBsgHn4gHSAffnwgICAjfnwgISAlfnwgIiAkfnwgGiAmfnwgHCAnfnx8IjZCgIBAfSIwQhWIfCIoQoCAQH0iN0IViHx8IAZC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9id+IAVC////AIN8IAFCFYd8IgNCBog8AAYgACADQgKGIAFCgIDgAINCE4iEPAAFIAAgAkLTjEN+IAZC////AIN8IANCFYd8IgFCCYg8AAkgACABQgGIPAAIIAAgAUIHhiADQoCA/wCDQg6IhDwAByAAIAJC0asIfiAKQv///wCDfCABQhWHfCIDQgyIPAAMIAAgA0IEiDwACyAAIANCBIYgAUKAgPgAg0IRiIQ8AAogACACQoOhVn4gCUL///8Ag3wgA0IVh3wiAUIHiDwADiAAIAFCAYYgA0KAgMAAg0IUiIQ8AA0gACAHQv///wCDIAFCFYd8IgJCCog8ABEgACACQgKIPAAQIAAgAkIGhiABQoCA/gCDQg+IhDwADyAAIAtC////AIMgAkIVh3wiAUINiDwAFCAAIAFCBYg8ABMgACAQQv///wCDIAFCFYd8IgM8ABUgACABQgOGIAJCgIDwAINCEoiEPAASIAAgA0IIiDwAFiAAIAxC////AIMgA0IVh3wiAkILiDwAGSAAIAJCA4g8ABggACADQhCIQh+DIAJCBYaEPAAXIAAgDUL///8AgyACQhWHfCIBQgaIPAAbIAAgAUIChiACQoCA4ACDQhOIhDwAGiAAIAhC////AIMgAUIVh3wiAkIRiDwAHyAAIAJCCYg8AB4gACACQgGIPAAdIAAgAkIHhiABQoCA/wCDQg6IhDwAHAv4AQEKfwNAIAQgACADai0AACIBIANBkBNqIgItAABzciEEIAogASACLQDAAXNyIQogCSABIAItAKABc3IhCSAIIAEgAi0AgAFzciEIIAcgASACLQBgc3IhByAGIAEgAkFAay0AAHNyIQYgBSABIAItACBzciEFIANBAWoiA0EfRw0ACyAKIAAtAB9B/wBxIgBB/wBzIgFyQf8BcUEBayABIAlyQf8BcUEBayABIAhyQf8BcUEBayAHIABB+gBzckH/AXFBAWsgBiAAQQVzckH/AXFBAWsgACAFckH/AXFBAWsgACAEckH/AXFBAWtycnJycnJBCHZBAXEL4AkBHn8gASgCKCEDIAEoAgQhBCABKAIsIQUgASgCCCEGIAEoAjAhByABKAIMIQggASgCNCEJIAEoAhAhCiABKAI4IQsgASgCFCEMIAEoAjwhDSABKAIYIQ4gAUFAayIPKAIAIRAgASgCHCERIAEo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ACAIEAYjAEGQAWsiBCQAIARB4ABqIgUgABAFIARBMGoiAiAFEAUgAiACEAUgAiAAIAIQBiAFIAUgAhAGIAUgBRAFIAUgAiAFEAYgAiAFEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgBSACIAUQBiACIAUQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIgBRAGIAQgAhAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAIgBCACEAYgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgBSACIAUQBiACIAUQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIgBRAGIAQgAhAFQQEhAgNAIAQgBBAFIAJBAWoiAkHkAEcNAAsgBEEwaiICIAQgAhAGIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIARB4ABqIgUgAiAFEAYgBSAFEAUgBSAFEAUgACAFIAAQBiAEQZABaiQAIAAgACAHEAYgACAAIAgQBiADQeAAaiICIAAQBSACIAIgBhAGIAMgAygChAEiAiAUazYCVCADIAMoAoABIgQgE2s2AlAgAyADKAJ8IgUgEms2AkwgAyADKAJ4IgYgEWs2AkggAyADKAJ0IgcgEGs2AkQgAyADKAJwIgggD2s2AkAgAyADKAJsIhUgDms2AjwgAyADKAJoIhYgDWs2AjggAyADKAJkIhcgDGs2AjQgAyADKAJgIhggC2s2AjAgAyADQTBqEBICQCADQSAQH0UEQCADIAIgFGo2AiQgAyAEIBNqNgIgIAMgBSASajYCHCADIAYgEWo2AhggAyAHIBBqNgIUIAMgCCAPajYCECADIA4gFWo2AgwgAyANIBZqNgIIIAMgDCAXajYCBCADIAsgGGo2AgAgA0GgAmoiAiADEBIgAkEgEB9FDQEgACAAQfAKEAYLIANBoAJqIAAQEiADLQCgAkEBcSABLQAfQQd2RgRAIABBACAAKAIAazYCACAAQQAgACgCJGs2AiQgAEEAIAAoAiBrNgIgIABBACAAKAIcazYCHCAAQQAgACgCGGs2AhggAEEAIAAoAhRrNgIUIABBACAAKAIQazYCECAAQQAgACgCDGs2AgwgAEEAIAAoAghrNgIIIABBACAAKAIEazYCBAsgAEH4AGogACAJEAZBACEKCyADQcACaiQAIAoL9AQBGX4gATEAHyECIAExAB4hBiABMQAdIQ4gATEABiEHIAExAAUhCCABMQAEIQMgATEACSEPIAExAAghECABMQAHIREgATEADCEJIAExAAshCiABMQAKIQsgATEADyEMIAExAA4hEiABMQANIRMgATEAHCEEIAExABshFCABMQAaIRUgATEAGSEFIAExABghFiABMQAXIRcgATUAACEYIAAgATEAFUIPhiABMQAUQgeGhCABMQAWQheGhCABNQAQIhlCgICACHwiGkIZiHwiDSANQoCAgBB8Ig1CgICA4A+DfT4CGCAAIBZCDYYgF0IFhoQgBUIVhoQiBSANQhqIfCAFQoCAgAh8IgVCgICA8AODfT4CHCAAIBRCDIYgFUIEhoQgBEIUhoQgBUIZiHwiBCAEQoCAgBB8IgRCgICA4A+DfT4CICAAIBkgGkKAgIDwD4N9IBJCCoYgE0IChoQgDEIShoQgCkILhiALQgOGhCAJQhOGhCIJQoCAgAh8IgpCGYh8IgtCgICAEHwiDEIaiHw+AhQgACALIAxCgICA4A+DfT4CECAAIBBCDYYgEUIFhoQgD0IVhoQgCEIOhiADQgaGhCAHQhaGhCIHQoCAgAh8IghCGYh8IgMgA0KAgIAQfCIDQoCAgOAPg30+AgggACACQhKGQoCA8A+DIAZCCoYgDkIChoSEIgIgBEIaiHwgAkKAgIAIfCICQoCAgBCDfT4CJCAAIANCGoggCXwgCkKAgIDwAIN9PgIMIAAgByAIQoCAgPAHg30gGCACQhmIQhN+fCICQoCAgBB8IgZCGoh8PgIEIAAgAiAGQoCAgOAPg30+AgALiwEBAX8jAEEQayICIAA2AgwgAiABNgIIQQAhACACQQA2AgQDQCACIAIoAgQgAigCDCAAai0AACACKAIIIABqLQAAc3I2AgQgAiACKAIEIABBAXIiASACKAIMai0AACACKAIIIAFqLQAAc3I2AgQgAEECaiIAQSBHDQALIAIoAgRBAWtBCHZBAXFBAWsLKQEBfyMAQRBrIgAkACAAQQA6AA9B/JACIABBD2pBABAAGiAAQRBqJAALKAAgAkKAgICAEFoEQBAJAAsgACABIAIgA0EBIARBsJACKAIAEQgAGgsoACACQoCAgIAQWgRAEAkACyAAIAEgAiADQgEgBEGskAIoAgARCQAaCy0BAX4gAq0gA61CIIaEIgZCEFoEfyAAIAFBEGogASAGQhB9IAQgBRAwBUF/CwsYACAAIAEgAiADrSAErUIghoQgBSAGEDALGAAgACABIAIgA60gBK1CIIaEIAUgBhAgC0oBAn8jAEEgayIGJABBfyEHAkAgAkIQVA0AIAYgBCAFECENACAAIAFBEGogASACQhB9IAMgBhAwIQcgBkEgEAcLIAZBIGokACAHC08BAn8jAEEgayIGJAAgAkLw////D1QEQEF/IQcgBiAEIAUQIUUEQCAAQRBqIAAgASACIAMgBhAgIQcgBkEgEAcLIAZBIGokACAHDwsQCQALNwEBfyMAQUBqIgIkACAAIAIQEyAAQdABaiIAIAJCwAAQDBogACABEBMgAkHAABAHIAJBQGskAAsLACAAIAEgAhAMGguEAwEGfyMAQcABayIEJAAgABAZIARBQGtBNkGAARAIGgNAIARBQGsiBSACaiIDIAMtAAAgASACai0AAHM6AAAgBSACQQFyIgNqIgYgBi0AACABIANqLQAAczoAACAFIAJBAnIiA2oiBiAGLQAAIAEgA2otAABzOgAAIAUgAkEDciIDaiIFIAUtAAAgASADai0AAHM6AAAgAkEEaiECIAdBBGoiB0EgRw0ACyAAIARBQGsiAkKAARAMGiAAQdABaiIFEBkgAkHcAEGAARAIGkEAIQJBACEHA0AgBEFAayIAIAJqIgMgAy0AACABIAJqLQAAczoAACAAIAJBAXIiA2oiBiAGLQAAIAEgA2otAABzOgAAIAAgAkECciIDaiIGIAYtAAAgASADai0AAHM6AAAgACACQQNyIgNqIgAgAC0AACABIANqLQAAczoAACACQQRqIQIgB0EEaiIHQSBHDQALIAUgBEFAayIAQoABEAwaIABBgAEQByAEQcAAEAcgBEHAAWokAAvVAgECfyMAQZADayIIJAAgCEEANgIEIAhBEGoiCSAGIAcQJyAIIAYpABA3AgggCEHQAGoiB0LAACAIQQRqIAkQFyAIQZABaiIGIAdBvJACKAIAEQEAGiAHQcAAEAcgBiAEIAVBwJACKAIAEQAAGiAGQYCQAkIAIAV9Qg+DQcCQAigCABEAABogBiABIAJBwJACKAIAEQAAGiAGQYCQAkIAIAJ9Qg+DQcCQAigCABEAABogCCAFNwNIIAYgCEHIAGoiBEIIQcCQAigCABEAABogCCACNwNIIAYgBEIIQcCQAigCABEAABogBiAIQTBqIgRBxJACKAIAEQEAGiAGQYACEAcgBCADEC0hBiAEQRAQBwJAIABFDQAgBgRAIABBACACpxAIGkF/IQYMAQsgACABIAIgCEEEaiAIQRBqEE1BACEGCyAIQRBqQSAQByAIQZADaiQAIAYLpwIBA38jAEGAA2siCSQAIAlBADYCBCAJQRBqIgogByAIECcgCSAHKQAQNwIIIAlBQGsiCELAACAJQQRqIgsgChAXIAlBgAFqIgcgCEG8kAIoAgARAQAaIAhBwAAQByAHIAUgBkHAkAIoAgARAAAaIAdBgJACQgAgBn1CD4NBwJACKAIAEQAAGiAAIAMgBCALIAoQTSAHIAAgBEHAkAIoAgARAAAaIAdBgJACQgAgBH1CD4NBwJACKAIAEQAAGiAJIAY3AzggByAJQThqIgBCCEHAkAIoAgARAAAaIAkgBDcDOCAHIABCCEHAkAIoAgARAAAaIAcgAUHEkAIoAgARAQAaIAdBgAIQByACBEAgAkIQNwMACyAJQRBqQSAQByAJQYADaiQAQQALygUCBX8CfkF/IQYCQCABQcEAa0FASQ0AIAVBwABLDQACfyABQf8BcSEGIAVB/wFxIQUjACIBIQkgAUGABGtBQHEiASQAAkAgAkUgA0IAUnENACAARQ0AIAZBwQBrQf8BcUG/AU0NACAEQQEgBRtFDQAgBUHBAE8NAAJ/IAUEQCAERQ0CIAFBQGtBAEGlAhAIGiABQvnC+JuRo7Pw2wA3AzggAULr+obav7X2wR83AzAgAUKf2PnZwpHagpt/NwMoIAFC0YWa7/rPlIfRADcDICABQvHt9Pilp/2npX83AxggAUKr8NP0r+68tzw3AxAgAUK7zqqm2NDrs7t/NwMIIAEgBq0gBa1CCIaEQoiS95X/zPmE6gCFNwMAIAFBgANqIgcgBWpBAEGAASAFaxAIGiAHIAQgBRALGiABQeAAaiAHQYABEAsaIAFBgAE2AuACIAdBgAEQB0GAAQwBCyABQUBrQQBBpQIQCBogAUL5wvibkaOz8NsANwM4IAFC6/qG2r+19sEfNwMwIAFCn9j52cKR2oKbfzcDKCABQtGFmu/6z5SH0QA3AyAgAULx7fT4paf9p6V/NwMYIAFCq/DT9K/uvLc8NwMQIAFCu86qptjQ67O7fzcDCCABIAatQoiS95X/zPmE6gCFNwMAQQALIQQCQCADUA0AIAFB4AFqIQogAUHgAGohBQNAIAQgBWohCEGAAiAEayIHrSILIANaBEAgCCACIAOnIgIQCxogASABKALgAiACajYC4AIMAgsgCCACIAcQCxogASABKALgAiAHajYC4AIgASABKQNAIgxCgAF8NwNAIAEgASkDSCAMQv9+Vq18NwNIIAEgBRAoIAUgCkGAARALGiABIAEoAuACQYABayIENgLgAiACIAdqIQIgAyALfSIDQgBSDQALCyABIAAgBhA1GiAJJABBAAwBCxAJAAshBgsgBgu2AQIBfwN+IwBBoAFrIgMkACABIAJCIBAYGiABIAEtAABB+AFxOgAAIAEgAS0AH0E/cUHAAHI6AB8gAyABECogACADECsgAikACCEEIAIpABAhBSACKQAAIQYgASACKQAYNwAYIAEgBTcAECABIAQ3AAggASAGNwAAIAApAAghBCAAKQAQIQUgACkAACEGIAEgACkAGDcAOCABIAU3ADAgASAENwAoIAEgBjcAICADQaABaiQAQQALBQBBv38LBQBB0AELbQEBfyMAQUBqIgIkACACIAFCIBAYGiACIAItAABB+AFxOgAAIAIgAi0AH0E/cUHAAHI6AB8gACACKQMQNwAQIAAgAikDCDcACCAAIAIpAwA3AAAgACACKQMYNwAYIAJBwAAQByACQUBrJABBAAvXFAIPfyd+IwBBgAJrIgMkAEF/IRACQCABEDcNACADQeAAaiABEEkNACMAQYAQayICJAAgAkGABWoiCiADQeAAaiIBEA0gASkCCCERIAEpAhAhEiABKQIYIRMgASkCACEUIAIgASkCIDcD4AIgAiATNwPYAiACIBI3A9ACIAIgETcDyAIgAiAUNwPAAiABKQIoIREgASkCMCESIAEpAjghEyABQUBrKQIAIRQgAiABKQJINwOIAyACIBQ3A4ADIAIgEzcD+AIgAiASNwPwAiACIBE3A+gCIAEpAlAhESABKQJYIRIgASkCYCETIAEpAmghFCACIAEpAnA3A7ADIAIgFDcDqAMgAiATNwOgAyACIBI3A5gDIAIgETcDkAMgAkHgA2oiASACQcACaiIHEBUgAkGgAWoiCCABIAJB2ARqIgUQBiACQcgBaiACQYgEaiIGIAJBsARqIgQQBiACQfABaiAEIAUQBiACQZgCaiABIAYQBiABIAggChAOIAcgASAFEAYgAkHoAmoiCiAGIAQQBiACQZADaiILIAQgBRAGIAJBuANqIgwgASAGEAYgAkGgBmoiCSAHEA0gASAIIAkQDiAHIAEgBRAGIAogBiAEEAYgCyAEIAUQBiAMIAEgBhAGIAJBwAdqIgkgBxANIAEgCCAJEA4gByABIAUQBiAKIAYgBBAGIAsgBCAFEAYgDCABIAYQBiAC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IAAgAS0AAjoAAiAAIAEtAAM6AAMgACABLQAEOgAEIAAgAS0ABToABSAAIAEtAAY6AAYgACABLQAHOgAHIAAgAS0ACDoACCAAIAEtAAk6AAkgACABLQAKOgAKIAAgAS0ACzoACyAAIAEtAAw6AAwgACABLQANOgANIAAgAS0ADjoADiAAIAEtAA86AA8gACABLQAQOgAQIAAgAS0AEToAESAAIAEtABI6ABIgACABLQATOgATIAAgAS0AFDoAFCAAIAEtABU6ABUgACABLQAWOgAWIAAgAS0AFzoAFyAAIAEtABg6ABggACABLQAZOgAZIAAgAS0AGjoAGiAAIAEtABs6ABsgACABLQAcOgAcIAAgAS0AHToAHSAAIAEtAB46AB4gAS0AHyEBIAAgAC0AAEH4AXE6AAAgACABQT9xQcAAcjoAHyACQTBqIAAQKiACKAKEASEBIAIoAlwhAyACKAKIASEEIAIoAmAhBSACKAKMASEGIAIoAmQhByACKAKQASEIIAIoAmghCSACKAKUASEKIAIoAmwhCyACKAKYASEMIAIoAnAhDSACKAKcASEOIAIoAnQhDyACKAKgASEQIAIoAnghESACKAKAASESIAIoAlghEyACIAIoAnwiFCACKAKkASIVajYCpAIgAiAQIBFqNgKgAiACIA4gD2o2ApwCIAIgDCANajYCmAIgAiAKIAtqNgKUAiACIAggCWo2ApACIAIgBiAHajYCjAIgAiAEIAVqNgKIAiACIAEgA2o2AoQCIAIgEiATajYCgAIgAiAVIBRrNgL0ASACIBAgEWs2AvABIAIgDiAPazYC7AEgAiAMIA1rNgLoASACIAogC2s2AuQBIAIgCCAJazYC4AEgAiAGIAdrNgLcASACIAQgBWs2AtgBIAIgASADazYC1AEgAiASIBNrNgLQASACQdABaiIBIAEQLCACIAJBgAJqIAEQBiAAIAIQEiACQbACaiQAQQAL+RwCPX8MfiMAQfACayIDJAADQCACIAZqLQAAIgQgBkGQhwJqIgktAABzIAdyIQcgBCAJLQDAAXMgBXIhBSAEIAktAKABcyAMciEMIAQgCS0AgAFzIAhyIQggBCAJLQBgcyANciENIAQgCUFAay0AAHMgC3IhCyAEIAktACBzIApyIQogBkEBaiIGQR9HDQALQX8hCSACLQAfQf8AcSIEIApyQf8BcUEBayAEIAdyQf8BcUEBa3IgBCALckH/AXFBAWtyIARB1wBzIA1yQf8BcUEBa3IgBEH/AHMiBCAIckH/AXFBAWtyIAQgDHJB/wFxQQFrciAEIAVyQf8BcUEBa3JBgAJxRQRAIAMgASkAGDcD6AIgAyABKQAQNwPgAiADIAEpAAAiQjcD0AIgAyABKQAINwPYAiADIEKnQfgBcToA0AIgAyADLQDvAkE/cUHAAHI6AO8CIANBoAJqIAIQSiADQgA3AoQCIANCADcCjAIgA0EANgKUAiADQgA3A9ABIANCADcD2AEgA0IANwPgASADQgA3AvQBIANBATYC8AEgA0IANwL8ASADQgA3A8ABIANCADcDyAEgAyADKQO4AjcDqAEgAyADKQOwAjcDoAEgAyADKQOoAjcDmAEgAyADKQOgAjcDkAEgAyADKQPAAjcDsAEgA0IANwJ0IANCADcCfCADQQA2AoQBIANCADcCZCADQQE2AmAgA0IANwJsQf4BIQJBACEEA0AgAygClAIhCSADKAK0ASEGIAMoAmAhByADKALAASEKIAMoApABIQsgAygC8AEhDSADKAJkIQggAygCxAEhDCADKAKUASEFIAMoAvQBIRAgAygCaCEOIAMoAsgBIREgAygCmAEhEiADKAL4ASETIAMoAmwhDyADKALMASEUIAMoApwBIRUgAygC/AEhFiADKAJwIRggAygC0AEhHCADKAKgASEdIAMoAoACIR4gAygCdCEaIAMoAtQBIR8gAygCpAEhICADKAKEAiEhIAMoAnghGSADKALYASEiIAMoAqgBISMgAygCiAIhJCADKAJ8IRsgAygC3AEhJSADKAKsASEmIAMoAowCIScgAygCgAEhFyADKALgASEoIAMoArABISkgAygCkAIhLCADQQAgBCADQdACaiACIgFBA3ZqLQAAIAJBB3F2QQFxIgRzayICIAMoAoQBIiogAygC5AEiK3NxIi0gKnMiKjYChAEgAyAGIAYgCXMgAnEiLnMiLyAqazYCVCADIBcgFyAocyACcSIwcyIGNgKAASADICkgKSAscyACcSIXcyIpIAZrNgJQIAMgGyAbICVzIAJxIjFzIhs2AnwgAyAmICYgJ3MgAnEiMnMiJiAbazYCTCADIBkgGSAicyACcSIzcyIZNgJ4IAMgIyAjICRzIAJx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ASADQZABaiIZIBkQBSADIAwgGGo2AlQgAyANIBJqNgJQIAMgCCAUajYCTCADIAogEWo2AkggAyALIA9qNgJEIAMgBiAOajYCQCADIAcgE2o2AjwgAyAJIBBqNgI4IAMgAiAFajYCNCADIBUgFmo2AjAgAUEBayECIBsgA0GgAmogFxAGIBcgAyAaEAYgAQ0ACyADKAKQASEQIAMoAvABIQIgAygClAEhDiADKAL0ASEGIAMoApgBIREgAygC+AEhByADKAKcASESIAMoAvwBIQogAygCoAEhEyADKAKAAiELIAMoAqQBIQ8gAygChAIhDSADKAKoASEUIAMoAogCIQggAygCrAEhFSADKAKMAiEMIAMoArABIRYgAygCkAIhBSADQQAgBGsiASADKAKUAiIEIAMoArQBc3EgBHM2ApQCIAMgBSAFIBZzIAFxczYCkAIgAyAMIAwgFXMgAXFzNgKMAiADIAggCCAUcyABcXM2AogCIAMgDSANIA9zIAFxczYChAIgAyALIAsgE3MgAXFzNgKAAiADIAogCiAScyABcXM2AvwBIAMgByAHIBFzIAFxczYC+AEgAyAGIAYgDnMgAXFzNgL0ASADIAIgAiAQcyABcXM2AvABIAMoAsABIQIgAygCYCEFIAMoAsQBIQQgAygCZCEQIAMoAsgBIQYgAygCaCEOIAMoAswBIQcgAygCbCERIAMoAtABIQogAygCcCESIAMoAtQBIQsgAygCdCETIAMoAtgBIQ0gAygCeCEPIAMoAtwBIQggAygCfCEUIAMoAuABIQwgAygCgAEhFSADIAMoAuQBIhYgAygChAFzIAFxIBZzNgLkASADIAwgDCAVcyABcXM2AuABIAMgCCAIIBRzIAFxczYC3AEgAyANIA0gD3MgAXFzNgLYASADIAsgCyATcyABcXM2AtQBIAMgCiAKIBJzIAFxczYC0AEgAyAHIAcgEXMgAXFzNgLMASADIAYgBiAOcyABcXM2AsgBIAMgBCAEIBBzIAFxczYCxAEgAyACIAIgBXMgAXFzNgLAASADQcABaiIBIAEQLCADQfABaiICIAIgARAGIAAgAhASIANB0AJqQSAQB0EAIQkLIANB8AJqJAAgCQuJDAEHfwJAIABFDQAgAEEIayICIABBBGsoAgAiAUF4cSIAaiEFAkAgAUEBcQ0AIAFBA3FF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YgDpiWABfzHLAAWblAAXlAn/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/AEGwEwsBAQBB0BMLsAEm6JWPwrInsEXD9Iny75jw1d+sBdPGMzmxOAKIbVP8BccXanA9TdhPujwLdg0QZw8qIFP6LDnMxk7H/XeSrAN67P///////////////////////////////////////3/t////////////////////////////////////////f+7///////////////////////////////////////9/7dP1XBpjEljWnPei3vneFABBjxUL/PABEIU7jAG98ST/+CXDAWDcNwC3TD7/w0I9ADJMpAHhpEz/TD2j/3U+HwBRkUD/dkEOAKJz1v8Gii4AfOb0/wqKjwA0GsIAuPRMAIGPKQG+9BP/e6p6/2KBRAB51ZMAVmUe/6FnmwCMWUP/7+W+AUMLtQDG8In+7kW8/+pxPP8l/zn/RbK2/oDQswB2Gn3+AwfW//EyTf9Vy8X/04f6/xkwZP+71bT+EVhpAFPRngEFc2IABK48/qs3bv/ZtRH/FLyqAJKcZv5X1q7/cnqbAeksqgB/CO8B1uzqAK8F2wAxaj3/BkLQ/wJqbv9R6hP/12vA/0OX7gATKmz/5VVxATJEh/8RagkAMmcB/1ABqAEjmB7/EKi5AThZ6P9l0vwAKfpHAMyqT/8OLu//UE3vAL3WS/8RjfkAJlBM/75VdQBW5KoAnNjQAcPPpP+WQkz/r+EQ/41QYgFM2/IAxqJyAC7amACbK/H+m6Bo/7IJ/P5kbtQADgWnAOnvo/8cl50BZZIK//6eRv5H+eQAWB4yAEQ6oP+/GGgBgUKB/8AyVf8Is4r/JvrJ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//1m0v7+eSQAiXMD/zwY2ACGEh0AO+JhALCORwAH0aEAvVQz/pv6SADVVOv/Ld7gAO6Uj/+qKjX/Tqd1ALoAKP99sWf/ReFCAOMHWAFLrAYAqS3jARAkRv8yAgn/i8EWAI+35/7aRTIA7DihAdWDKgCKkSz+iOUo/zE/I/89kfX/ZcAC/uincQCYaCYBebnaAHmL0/538CMAQb3Z/ruzov+gu+YAPvgO/zxOYQD/96P/4Ttb/2tHOv/xLyEBMnXsANuxP/70WrMAI8LX/71DMv8Xh4EAaL0l/7k5wgAjPuf/3PhsAAznsgCPUFsBg11l/5AnAgH/+rIABRHs/osgLgDMvCb+9XM0/79xSf6/bEX/FkX1ARfLsgCqY6oAQfhvACVsmf9AJUUAAFg+/lmUkP+/ROAB8Sc1ACnL7f+RfsL/3Sr9/xljlwBh/d8BSnMx/wavSP87sMsAfLf5AeTkYwCBDM/+qMDD/8ywEP6Y6qsATSVV/yF4h/+OwuMBH9Y6ANW7ff/oLjz/vnQq/peyE/8zPu3+zOzBAMLoPACsIp3/vRC4/mcDX/+N6ST+KRkL/xXDpgB29S0AQ9WV/58MEv+7pOMBoBkFAAxOwwErxeEAMI4p/sSbPP/fxxIBkYicAPx1qf6R4u4A7xdrAG21vP/mcDH+Sart/+e34/9Q3BQAwmt/AX/NZQAuNMUB0qsk/1gDWv84l40AYLv//ypOyAD+RkYB9H2oAMxEigF810YAZkLI/hE05AB13I/+y/h7ADgSrv+6l6T/M+jQAaDkK//5HRkBRL4/AA0AAAAA/wAAAAD1AAAAAAAA+wAAAAAAAP0AAAAA8wAAAAAHAAAAAAADAAAAAPMAAAAABQAAAAAAAAAACwAAAAAACwAAAADzAAAAAAAA/QAAAAAA/wAAAAADAAAAAPUAAAAAAAAADwAAAAAA/wAAAAD/AAAAAAcAAAAABQBBjIcCCwEBAEGwhwILAQEAQdCHAgugAeDrenw7QbiuFlbj+vGfxGraCY3rnDKx/YZiBRZfSbgAX5yVvKNQjCSx0LFVnIPvWwREXMRYHI6G2CJO3dCfEVfs////////////////////////////////////////f+3///////////////////////////////////////9/7v///////////////////////////////////////38AQZCJAgvBBQjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4FsirijXmC+KQs1l7yORRDdxLztN7M/7wLW824mBpdu16Ti1SPNbwlY5GdAFtvER8VmbTxmvpII/khiBbdrVXhyrQgIDo5iqB9i+b3BFAVuDEoyy5E6+hTEk4rT/1cN9DFVviXvydF2+crGWFjv+sd6ANRLHJacG3JuUJmnPdPGbwdJK8Z7BaZvk4yVPOIZHvu+11YyLxp3BD2WcrHfMoQwkdQIrWW8s6S2D5KZuqoR0StT7Qb3cqbBctVMRg9qI+Xar32buUlE+mBAytC1txjGoPyH7mMgnA7DkDu++x39Zv8KPqD3zC+DGJacKk0eRp9VvggPgUWPKBnBuDgpnKSkU/C/SRoUKtycmySZcOCEbLu0qxFr8bSxN37OVnRMNOFPeY6+LVHMKZaiydzy7Cmp25q7tRy7JwoE7NYIUhSxykmQD8Uyh6L+iATBCvEtmGqiRl/jQcItLwjC+VAajUWzHGFLv1hnoktEQqWVVJAaZ1iogcVeFNQ70uNG7MnCgahDI0NK4FsGkGVOrQVEIbDcemeuO30x3SCeoSJvhtbywNGNaycWzDBw5y4pB40qq2E5z42N3T8qcW6O4stbzby5o/LLvXe6Cj3RgLxdDb2OleHKr8KEUeMiE7DlkGggCx4woHmMj+v++kOm9gt7rbFCkFXnGsvej+b4rU3Lj8nhxxpxhJurOPifKB8LAIce4htEe6+DN1n3a6njRbu5/T331um8Xcqpn8AammMiixX1jCq4N+b4EmD8RG0ccEzULcRuEfQQj9XfbKJMkx0B7q8oyvL7JFQq+njxMDRCcxGcdQ7ZCPsu+1MVMKn5l/Jwpf1ns+tY6q2/LXxdYR0qMGURsgABB0I8CCyFTaWdFZDI1NTE5IG5vIEVkMjU1MTkgY29sbGlzaW9ucwEAQaCQAgs1cI0BAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0=")||(K=_,_=i.locateFile?i.locateFile(K,r):r+K);var x={34904:()=>i.getRandomValue(),34940:()=>{if(void 0===i.getRandomValue)try{var A="object"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto,g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),i.getRandomValue=g}catch(A){try{var C=__webpack_require__(/*! crypto */ "./node_modules/crypto-browserify/index.js"),B=function(){var A=C.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};B(),i.getRandomValue=B}catch(A){throw"No secure random number generator found"}}}};function j(A){for(;A.length>0;)A.shift()(i)}var X=[];function q(A){var I=c.buffer;try{return c.grow(A-I.byteLength+65535>>>16),H(),1}catch(A){}}var z="function"==typeof atob?atob:function(A){var I,g,C,B,Q,i,E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o="",a=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{I=E.indexOf(A.charAt(a++))<<2|(B=E.indexOf(A.charAt(a++)))>>4,g=(15&B)<<4|(Q=E.indexOf(A.charAt(a++)))>>2,C=(3&Q)<<6|(i=E.indexOf(A.charAt(a++))),o+=String.fromCharCode(I),64!==Q&&(o+=String.fromCharCode(g)),64!==i&&(o+=String.fromCharCode(C))}while(a>=2;g=w[A++];)I+=105!=g&I,X.push(105==g?s[I]:k[I++>>1]),++I;return X}(I,g);return x[A].apply(null,C)}(A,I,g)},d:function(A,I,g){w.copyWithin(A,I,I+g)},e:function(A){var I,g=w.length,C=2147483648;if((A>>>=0)>C)return!1;for(var B=1;B<=4;B*=2){var Q=g*(1+.2/B);if(Q=Math.min(Q,A+100663296),q(Math.min(C,(I=Math.max(A,Q))+(65536-I%65536)%65536)))return!0}return!1}};function W(){function A(){O||(O=!0,i.calledRun=!0,F||(j(G),i.onRuntimeInitialized&&i.onRuntimeInitialized(),function(){if(i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)A=i.postRun.shift(),U.unshift(A);var A;j(U)}()))}J>0||(function(){if(i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)A=i.preRun.shift(),M.unshift(A);var A;j(M)}(),J>0||(i.setStatus?(i.setStatus("Running..."),setTimeout((function(){setTimeout((function(){i.setStatus("")}),1),A()}),1)):A()))}if(function(){var A={a:T};function I(A,I){var g=A.exports;i.asm=g,c=i.asm.f,H(),i.asm.ac,function(A){if(J--,i.monitorRunDependencies&&i.monitorRunDependencies(J),0==J&&(null!==N&&(clearInterval(N),N=null),Y)){var I=Y;Y=null,I()}}()}function g(A){I(A.instance)}function C(I){return function(){if(!e&&(o||a)){if("function"==typeof fetch&&!L(_))return fetch(_,{credentials:"same-origin"}).then((function(A){if(!A.ok)throw"failed to load wasm binary file at '"+_+"'";return A.arrayBuffer()})).catch((function(){return R(_)}));if(B)return new Promise((function(A,I){B(_,(function(I){A(new Uint8Array(I))}),I)}))}return Promise.resolve().then((function(){return R(_)}))}().then((function(I){return WebAssembly.instantiate(I,A)})).then((function(A){return A})).then(I,(function(A){y("failed to asynchronously prepare wasm: "+A),b(A)}))}if(J++,i.monitorRunDependencies&&i.monitorRunDependencies(J),i.instantiateWasm)try{return i.instantiateWasm(A,I)}catch(A){return y("Module.instantiateWasm callback failed with error: "+A),!1}e||"function"!=typeof WebAssembly.instantiateStreaming||d(_)||L(_)||n||"function"!=typeof fetch?C(g):fetch(_,{credentials:"same-origin"}).then((function(I){return WebAssembly.instantiateStreaming(I,A).then(g,(function(A){return y("wasm streaming compile failed: "+A),y("falling back to ArrayBuffer instantiation"),C(g)}))}))}(),i._crypto_aead_chacha20poly1305_encrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_encrypt_detached=i.asm.g).apply(null,arguments)},i._crypto_aead_chacha20poly1305_encrypt=function(){return(i._crypto_aead_chacha20poly1305_encrypt=i.asm.h).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_encrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_ietf_encrypt_detached=i.asm.i).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_encrypt=function(){return(i._crypto_aead_chacha20poly1305_ietf_encrypt=i.asm.j).apply(null,arguments)},i._crypto_aead_chacha20poly1305_decrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_decrypt_detached=i.asm.k).apply(null,arguments)},i._crypto_aead_chacha20poly1305_decrypt=function(){return(i._crypto_aead_chacha20poly1305_decrypt=i.asm.l).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_decrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_ietf_decrypt_detached=i.asm.m).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_decrypt=function(){return(i._crypto_aead_chacha20poly1305_ietf_decrypt=i.asm.n).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_keybytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_keybytes=i.asm.o).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_npubbytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_npubbytes=i.asm.p).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_nsecbytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_nsecbytes=i.asm.q).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_abytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_abytes=i.asm.r).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_messagebytes_max=function(){return(i._crypto_aead_chacha20poly1305_ietf_messagebytes_max=i.asm.s).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_keygen=function(){return(i._crypto_aead_chacha20poly1305_ietf_keygen=i.asm.t).apply(null,arguments)},i._crypto_aead_chacha20poly1305_keybytes=function(){return(i._crypto_aead_chacha20poly1305_keybytes=i.asm.u).apply(null,arguments)},i._crypto_aead_chacha20poly1305_npubbytes=function(){return(i._crypto_aead_chacha20poly1305_npubbytes=i.asm.v).apply(null,arguments)},i._crypto_aead_chacha20poly1305_nsecbytes=function(){return(i._crypto_aead_chacha20poly1305_nsecbytes=i.asm.w).apply(null,arguments)},i._crypto_aead_chacha20poly1305_abytes=function(){return(i._crypto_aead_chacha20poly1305_abytes=i.asm.x).apply(null,arguments)},i._crypto_aead_chacha20poly1305_messagebytes_max=function(){return(i._crypto_aead_chacha20poly1305_messagebytes_max=i.asm.y).apply(null,arguments)},i._crypto_aead_chacha20poly1305_keygen=function(){return(i._crypto_aead_chacha20poly1305_keygen=i.asm.z).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=function(){return(i._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=i.asm.A).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_encrypt=function(){return(i._crypto_aead_xchacha20poly1305_ietf_encrypt=i.asm.B).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=function(){return(i._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=i.asm.C).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_decrypt=function(){return(i._crypto_aead_xchacha20poly1305_ietf_decrypt=i.asm.D).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_keybytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_keybytes=i.asm.E).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_npubbytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_npubbytes=i.asm.F).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_nsecbytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_nsecbytes=i.asm.G).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_abytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_abytes=i.asm.H).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=function(){return(i._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=i.asm.I).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_keygen=function(){return(i._crypto_aead_xchacha20poly1305_ietf_keygen=i.asm.J).apply(null,arguments)},i._crypto_auth_bytes=function(){return(i._crypto_auth_bytes=i.asm.K).apply(null,arguments)},i._crypto_auth_keybytes=function(){return(i._crypto_auth_keybytes=i.asm.L).apply(null,arguments)},i._crypto_auth=function(){return(i._crypto_auth=i.asm.M).apply(null,arguments)},i._crypto_auth_verify=function(){return(i._crypto_auth_verify=i.asm.N).apply(null,arguments)},i._crypto_auth_keygen=function(){return(i._crypto_auth_keygen=i.asm.O).apply(null,arguments)},i._crypto_box_seedbytes=function(){return(i._crypto_box_seedbytes=i.asm.P).apply(null,arguments)},i._crypto_box_publickeybytes=function(){return(i._crypto_box_publickeybytes=i.asm.Q).apply(null,arguments)},i._crypto_box_secretkeybytes=function(){return(i._crypto_box_secretkeybytes=i.asm.R).apply(null,arguments)},i._crypto_box_beforenmbytes=function(){return(i._crypto_box_beforenmbytes=i.asm.S).apply(null,arguments)},i._crypto_box_noncebytes=function(){return(i._crypto_box_noncebytes=i.asm.T).apply(null,arguments)},i._crypto_box_macbytes=function(){return(i._crypto_box_macbytes=i.asm.U).apply(null,arguments)},i._crypto_box_messagebytes_max=function(){return(i._crypto_box_messagebytes_max=i.asm.V).apply(null,arguments)},i._crypto_box_seed_keypair=function(){return(i._crypto_box_seed_keypair=i.asm.W).apply(null,arguments)},i._crypto_box_keypair=function(){return(i._crypto_box_keypair=i.asm.X).apply(null,arguments)},i._crypto_box_beforenm=function(){return(i._crypto_box_beforenm=i.asm.Y).apply(null,arguments)},i._crypto_box_detached_afternm=function(){return(i._crypto_box_detached_afternm=i.asm.Z).apply(null,arguments)},i._crypto_box_detached=function(){return(i._crypto_box_detached=i.asm._).apply(null,arguments)},i._crypto_box_easy_afternm=function(){return(i._crypto_box_easy_afternm=i.asm.$).apply(null,arguments)},i._crypto_box_easy=function(){return(i._crypto_box_easy=i.asm.aa).apply(null,arguments)},i._crypto_box_open_detached_afternm=function(){return(i._crypto_box_open_detached_afternm=i.asm.ba).apply(null,arguments)},i._crypto_box_open_detached=function(){return(i._crypto_box_open_detached=i.asm.ca).apply(null,arguments)},i._crypto_box_open_easy_afternm=function(){return(i._crypto_box_open_easy_afternm=i.asm.da).apply(null,arguments)},i._crypto_box_open_easy=function(){return(i._crypto_box_open_easy=i.asm.ea).apply(null,arguments)},i._crypto_box_seal=function(){return(i._crypto_box_seal=i.asm.fa).apply(null,arguments)},i._crypto_box_seal_open=function(){return(i._crypto_box_seal_open=i.asm.ga).apply(null,arguments)},i._crypto_box_sealbytes=function(){return(i._crypto_box_sealbytes=i.asm.ha).apply(null,arguments)},i._crypto_generichash_bytes_min=function(){return(i._crypto_generichash_bytes_min=i.asm.ia).apply(null,arguments)},i._crypto_generichash_bytes_max=function(){return(i._crypto_generichash_bytes_max=i.asm.ja).apply(null,arguments)},i._crypto_generichash_bytes=function(){return(i._crypto_generichash_bytes=i.asm.ka).apply(null,arguments)},i._crypto_generichash_keybytes_min=function(){return(i._crypto_generichash_keybytes_min=i.asm.la).apply(null,arguments)},i._crypto_generichash_keybytes_max=function(){return(i._crypto_generichash_keybytes_max=i.asm.ma).apply(null,arguments)},i._crypto_generichash_keybytes=function(){return(i._crypto_generichash_keybytes=i.asm.na).apply(null,arguments)},i._crypto_generichash_statebytes=function(){return(i._crypto_generichash_statebytes=i.asm.oa).apply(null,arguments)},i._crypto_generichash=function(){return(i._crypto_generichash=i.asm.pa).apply(null,arguments)},i._crypto_generichash_init=function(){return(i._crypto_generichash_init=i.asm.qa).apply(null,arguments)},i._crypto_generichash_update=function(){return(i._crypto_generichash_update=i.asm.ra).apply(null,arguments)},i._crypto_generichash_final=function(){return(i._crypto_generichash_final=i.asm.sa).apply(null,arguments)},i._crypto_generichash_keygen=function(){return(i._crypto_generichash_keygen=i.asm.ta).apply(null,arguments)},i._crypto_hash_bytes=function(){return(i._crypto_hash_bytes=i.asm.ua).apply(null,arguments)},i._crypto_hash=function(){return(i._crypto_hash=i.asm.va).apply(null,arguments)},i._crypto_kdf_bytes_min=function(){return(i._crypto_kdf_bytes_min=i.asm.wa).apply(null,arguments)},i._crypto_kdf_bytes_max=function(){return(i._crypto_kdf_bytes_max=i.asm.xa).apply(null,arguments)},i._crypto_kdf_contextbytes=function(){return(i._crypto_kdf_contextbytes=i.asm.ya).apply(null,arguments)},i._crypto_kdf_keybytes=function(){return(i._crypto_kdf_keybytes=i.asm.za).apply(null,arguments)},i._crypto_kdf_derive_from_key=function(){return(i._crypto_kdf_derive_from_key=i.asm.Aa).apply(null,arguments)},i._crypto_kdf_keygen=function(){return(i._crypto_kdf_keygen=i.asm.Ba).apply(null,arguments)},i._crypto_kx_seed_keypair=function(){return(i._crypto_kx_seed_keypair=i.asm.Ca).apply(null,arguments)},i._crypto_kx_keypair=function(){return(i._crypto_kx_keypair=i.asm.Da).apply(null,arguments)},i._crypto_kx_client_session_keys=function(){return(i._crypto_kx_client_session_keys=i.asm.Ea).apply(null,arguments)},i._crypto_kx_server_session_keys=function(){return(i._crypto_kx_server_session_keys=i.asm.Fa).apply(null,arguments)},i._crypto_kx_publickeybytes=function(){return(i._crypto_kx_publickeybytes=i.asm.Ga).apply(null,arguments)},i._crypto_kx_secretkeybytes=function(){return(i._crypto_kx_secretkeybytes=i.asm.Ha).apply(null,arguments)},i._crypto_kx_seedbytes=function(){return(i._crypto_kx_seedbytes=i.asm.Ia).apply(null,arguments)},i._crypto_kx_sessionkeybytes=function(){return(i._crypto_kx_sessionkeybytes=i.asm.Ja).apply(null,arguments)},i._crypto_scalarmult_base=function(){return(i._crypto_scalarmult_base=i.asm.Ka).apply(null,arguments)},i._crypto_scalarmult=function(){return(i._crypto_scalarmult=i.asm.La).apply(null,arguments)},i._crypto_scalarmult_bytes=function(){return(i._crypto_scalarmult_bytes=i.asm.Ma).apply(null,arguments)},i._crypto_scalarmult_scalarbytes=function(){return(i._crypto_scalarmult_scalarbytes=i.asm.Na).apply(null,arguments)},i._crypto_secretbox_keybytes=function(){return(i._crypto_secretbox_keybytes=i.asm.Oa).apply(null,arguments)},i._crypto_secretbox_noncebytes=function(){return(i._crypto_secretbox_noncebytes=i.asm.Pa).apply(null,arguments)},i._crypto_secretbox_macbytes=function(){return(i._crypto_secretbox_macbytes=i.asm.Qa).apply(null,arguments)},i._crypto_secretbox_messagebytes_max=function(){return(i._crypto_secretbox_messagebytes_max=i.asm.Ra).apply(null,arguments)},i._crypto_secretbox_keygen=function(){return(i._crypto_secretbox_keygen=i.asm.Sa).apply(null,arguments)},i._crypto_secretbox_detached=function(){return(i._crypto_secretbox_detached=i.asm.Ta).apply(null,arguments)},i._crypto_secretbox_easy=function(){return(i._crypto_secretbox_easy=i.asm.Ua).apply(null,arguments)},i._crypto_secretbox_open_detached=function(){return(i._crypto_secretbox_open_detached=i.asm.Va).apply(null,arguments)},i._crypto_secretbox_open_easy=function(){return(i._crypto_secretbox_open_easy=i.asm.Wa).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_keygen=function(){return(i._crypto_secretstream_xchacha20poly1305_keygen=i.asm.Xa).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_init_push=function(){return(i._crypto_secretstream_xchacha20poly1305_init_push=i.asm.Ya).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_init_pull=function(){return(i._crypto_secretstream_xchacha20poly1305_init_pull=i.asm.Za).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_rekey=function(){return(i._crypto_secretstream_xchacha20poly1305_rekey=i.asm._a).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_push=function(){return(i._crypto_secretstream_xchacha20poly1305_push=i.asm.$a).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_pull=function(){return(i._crypto_secretstream_xchacha20poly1305_pull=i.asm.ab).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_statebytes=function(){return(i._crypto_secretstream_xchacha20poly1305_statebytes=i.asm.bb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_abytes=function(){return(i._crypto_secretstream_xchacha20poly1305_abytes=i.asm.cb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_headerbytes=function(){return(i._crypto_secretstream_xchacha20poly1305_headerbytes=i.asm.db).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_keybytes=function(){return(i._crypto_secretstream_xchacha20poly1305_keybytes=i.asm.eb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_messagebytes_max=function(){return(i._crypto_secretstream_xchacha20poly1305_messagebytes_max=i.asm.fb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_message=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_message=i.asm.gb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_push=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_push=i.asm.hb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_rekey=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_rekey=i.asm.ib).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_final=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_final=i.asm.jb).apply(null,arguments)},i._crypto_shorthash_bytes=function(){return(i._crypto_shorthash_bytes=i.asm.kb).apply(null,arguments)},i._crypto_shorthash_keybytes=function(){return(i._crypto_shorthash_keybytes=i.asm.lb).apply(null,arguments)},i._crypto_shorthash=function(){return(i._crypto_shorthash=i.asm.mb).apply(null,arguments)},i._crypto_shorthash_keygen=function(){return(i._crypto_shorthash_keygen=i.asm.nb).apply(null,arguments)},i._crypto_sign_statebytes=function(){return(i._crypto_sign_statebytes=i.asm.ob).apply(null,arguments)},i._crypto_sign_bytes=function(){return(i._crypto_sign_bytes=i.asm.pb).apply(null,arguments)},i._crypto_sign_seedbytes=function(){return(i._crypto_sign_seedbytes=i.asm.qb).apply(null,arguments)},i._crypto_sign_publickeybytes=function(){return(i._crypto_sign_publickeybytes=i.asm.rb).apply(null,arguments)},i._crypto_sign_secretkeybytes=function(){return(i._crypto_sign_secretkeybytes=i.asm.sb).apply(null,arguments)},i._crypto_sign_messagebytes_max=function(){return(i._crypto_sign_messagebytes_max=i.asm.tb).apply(null,arguments)},i._crypto_sign_seed_keypair=function(){return(i._crypto_sign_seed_keypair=i.asm.ub).apply(null,arguments)},i._crypto_sign_keypair=function(){return(i._crypto_sign_keypair=i.asm.vb).apply(null,arguments)},i._crypto_sign=function(){return(i._crypto_sign=i.asm.wb).apply(null,arguments)},i._crypto_sign_open=function(){return(i._crypto_sign_open=i.asm.xb).apply(null,arguments)},i._crypto_sign_detached=function(){return(i._crypto_sign_detached=i.asm.yb).apply(null,arguments)},i._crypto_sign_verify_detached=function(){return(i._crypto_sign_verify_detached=i.asm.zb).apply(null,arguments)},i._crypto_sign_init=function(){return(i._crypto_sign_init=i.asm.Ab).apply(null,arguments)},i._crypto_sign_update=function(){return(i._crypto_sign_update=i.asm.Bb).apply(null,arguments)},i._crypto_sign_final_create=function(){return(i._crypto_sign_final_create=i.asm.Cb).apply(null,arguments)},i._crypto_sign_final_verify=function(){return(i._crypto_sign_final_verify=i.asm.Db).apply(null,arguments)},i._crypto_sign_ed25519_pk_to_curve25519=function(){return(i._crypto_sign_ed25519_pk_to_curve25519=i.asm.Eb).apply(null,arguments)},i._crypto_sign_ed25519_sk_to_curve25519=function(){return(i._crypto_sign_ed25519_sk_to_curve25519=i.asm.Fb).apply(null,arguments)},i._randombytes_random=function(){return(i._randombytes_random=i.asm.Gb).apply(null,arguments)},i._randombytes_stir=function(){return(i._randombytes_stir=i.asm.Hb).apply(null,arguments)},i._randombytes_uniform=function(){return(i._randombytes_uniform=i.asm.Ib).apply(null,arguments)},i._randombytes_buf=function(){return(i._randombytes_buf=i.asm.Jb).apply(null,arguments)},i._randombytes_buf_deterministic=function(){return(i._randombytes_buf_deterministic=i.asm.Kb).apply(null,arguments)},i._randombytes_seedbytes=function(){return(i._randombytes_seedbytes=i.asm.Lb).apply(null,arguments)},i._randombytes_close=function(){return(i._randombytes_close=i.asm.Mb).apply(null,arguments)},i._randombytes=function(){return(i._randombytes=i.asm.Nb).apply(null,arguments)},i._sodium_bin2hex=function(){return(i._sodium_bin2hex=i.asm.Ob).apply(null,arguments)},i._sodium_hex2bin=function(){return(i._sodium_hex2bin=i.asm.Pb).apply(null,arguments)},i._sodium_base64_encoded_len=function(){return(i._sodium_base64_encoded_len=i.asm.Qb).apply(null,arguments)},i._sodium_bin2base64=function(){return(i._sodium_bin2base64=i.asm.Rb).apply(null,arguments)},i._sodium_base642bin=function(){return(i._sodium_base642bin=i.asm.Sb).apply(null,arguments)},i._sodium_init=function(){return(i._sodium_init=i.asm.Tb).apply(null,arguments)},i._sodium_pad=function(){return(i._sodium_pad=i.asm.Ub).apply(null,arguments)},i._sodium_unpad=function(){return(i._sodium_unpad=i.asm.Vb).apply(null,arguments)},i._sodium_version_string=function(){return(i._sodium_version_string=i.asm.Wb).apply(null,arguments)},i._sodium_library_version_major=function(){return(i._sodium_library_version_major=i.asm.Xb).apply(null,arguments)},i._sodium_library_version_minor=function(){return(i._sodium_library_version_minor=i.asm.Yb).apply(null,arguments)},i._sodium_library_minimal=function(){return(i._sodium_library_minimal=i.asm.Zb).apply(null,arguments)},i._malloc=function(){return(i._malloc=i.asm._b).apply(null,arguments)},i._free=function(){return(i._free=i.asm.$b).apply(null,arguments)},i.UTF8ToString=S,i.setValue=function(A,I,g="i8"){switch(g.endsWith("*")&&(g="*"),g){case"i1":case"i8":D[A>>0]=I;break;case"i16":h[A>>1]=I;break;case"i32":s[A>>2]=I;break;case"i64":v=[I>>>0,(P=I,+Math.abs(P)>=1?P>0?(0|Math.min(+Math.floor(P/4294967296),4294967295))>>>0:~~+Math.ceil((P-+(~~P>>>0))/4294967296)>>>0:0)],s[A>>2]=v[0],s[A+4>>2]=v[1];break;case"float":u[A>>2]=I;break;case"double":k[A>>3]=I;break;case"*":p[A>>2]=I;break;default:b("invalid type for setValue: "+g)}},i.getValue=function(A,I="i8"){switch(I.endsWith("*")&&(I="*"),I){case"i1":case"i8":return D[A>>0];case"i16":return h[A>>1];case"i32":case"i64":return s[A>>2];case"float":return u[A>>2];case"double":return k[A>>3];case"*":return p[A>>2];default:b("invalid type for getValue: "+I)}return null},Y=function A(){O||W(),O||(Y=A)},i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();W()})).catch((function(){return C.useBackupModule()})),I} true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (I), +var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!function(e){function r(e,r){"use strict";var t,a="uint8array",_=r.ready.then((function(){function a(){if(0!==t._sodium_init())throw new Error("libsodium was not correctly initialized.");for(var r=["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"],a=[E,k,S,T,w,Y,B,A,K,M,I,N,L,U,O,C,R,P,G,X,D,F,V,H,q,j,z,W,J,Q,Z,$,ee,re,te,ae,_e,ne,se,ce,oe,he,pe,ye,ie,le,ue,de,ve,ge,be,fe,me,xe,Ee,ke,Se,Te,we,Ye,Be,Ae,Ke,Me,Ie,Ne,Le,Ue,Oe,Ce,Re,Pe,Ge,Xe,De,Fe,Ve,He,qe,je,ze,We,Je,Qe,Ze,$e,er,rr,tr,ar,_r,nr,sr,cr,or,hr,pr,yr,ir,lr,ur,dr,vr,gr,br,fr,mr,xr,Er,kr,Sr,Tr,wr,Yr,Br,Ar,Kr,Mr,Ir,Nr,Lr,Ur,Or,Cr,Rr,Pr,Gr,Xr,Dr,Fr,Vr,Hr,qr,jr,zr,Wr,Jr,Qr,Zr,$r,et,rt,tt,at,_t,nt,st,ct,ot,ht,pt,yt,it,lt,ut,dt,vt,gt,bt,ft,mt,xt,Et,kt,St,Tt,wt,Yt,Bt,At,Kt,Mt,It,Nt,Lt,Ut,Ot,Ct,Rt,Pt,Gt,Xt],_=0;_=240?(p=4,o=!0):y>=224?(p=3,o=!0):y>=192?(p=2,o=!0):y<128&&(p=1,o=!0)}while(!o);for(var i=p-(c.length-h),l=0;l>8&-39)<<8|87+(r=e[n]>>>4)+(r-10>>8&-39),_+=String.fromCharCode(255&a)+String.fromCharCode(a>>>8);return _}var o={ORIGINAL:1,ORIGINAL_NO_PADDING:3,URLSAFE:5,URLSAFE_NO_PADDING:7};function h(e){if(null==e)return o.URLSAFE_NO_PADDING;if(e!==o.ORIGINAL&&e!==o.ORIGINAL_NO_PADDING&&e!==o.URLSAFE&&e!=o.URLSAFE_NO_PADDING)throw new Error("unsupported base64 variant");return e}function p(e,r){r=h(r),e=x(_,e,"input");var a,_=[],n=0|Math.floor(e.length/3),c=e.length-3*n,o=4*n+(0!==c?0==(2&r)?4:2+(c>>>1):0),p=new u(o+1),y=d(e);return _.push(y),_.push(p.address),0===t._sodium_bin2base64(p.address,p.length,y,e.length,r)&&b(_,"conversion failed"),p.length=o,a=s(p.to_Uint8Array()),g(_),a}function y(e,r){var t=r||a;if(!i(t))throw new Error(t+" output format is not available");if(e instanceof u){if("uint8array"===t)return e.to_Uint8Array();if("text"===t)return s(e.to_Uint8Array());if("hex"===t)return c(e.to_Uint8Array());if("base64"===t)return p(e.to_Uint8Array(),o.URLSAFE_NO_PADDING);throw new Error('What is output format "'+t+'"?')}if("object"==typeof e){for(var _=Object.keys(e),n={},h=0;h<_.length;h++)n[_[h]]=y(e[_[h]],t);return n}if("string"==typeof e)return e;throw new TypeError("Cannot format output")}function i(e){for(var r=["uint8array","text","hex","base64"],t=0;t>>24>>>8,o,p);var E=y(v,s);return g(c),E}function kr(e){var r=[];l(e);var a=new u(0|t._crypto_kdf_keybytes()),_=a.address;r.push(_),t._crypto_kdf_keygen(_);var n=y(a,e);return g(r),n}function Sr(e,r,a,_){var n=[];l(_),e=x(n,e,"clientPublicKey");var s,c=0|t._crypto_kx_publickeybytes();e.length!==c&&f(n,"invalid clientPublicKey length"),s=d(e),n.push(s),r=x(n,r,"clientSecretKey");var o,h=0|t._crypto_kx_secretkeybytes();r.length!==h&&f(n,"invalid clientSecretKey length"),o=d(r),n.push(o),a=x(n,a,"serverPublicKey");var p,i=0|t._crypto_kx_publickeybytes();a.length!==i&&f(n,"invalid serverPublicKey length"),p=d(a),n.push(p);var v=new u(0|t._crypto_kx_sessionkeybytes()),m=v.address;n.push(m);var E=new u(0|t._crypto_kx_sessionkeybytes()),k=E.address;if(n.push(k),0==(0|t._crypto_kx_client_session_keys(m,k,s,o,p))){var S=y({sharedRx:v,sharedTx:E},_);return g(n),S}b(n,"invalid usage")}function Tr(e){var r=[];l(e);var a=new u(0|t._crypto_kx_publickeybytes()),_=a.address;r.push(_);var n=new u(0|t._crypto_kx_secretkeybytes()),s=n.address;if(r.push(s),0==(0|t._crypto_kx_keypair(_,s))){var c={publicKey:y(a,e),privateKey:y(n,e),keyType:"x25519"};return g(r),c}b(r,"internal error")}function wr(e,r){var a=[];l(r),e=x(a,e,"seed");var _,n=0|t._crypto_kx_seedbytes();e.length!==n&&f(a,"invalid seed length"),_=d(e),a.push(_);var s=new u(0|t._crypto_kx_publickeybytes()),c=s.address;a.push(c);var o=new u(0|t._crypto_kx_secretkeybytes()),h=o.address;if(a.push(h),0==(0|t._crypto_kx_seed_keypair(c,h,_))){var p={publicKey:y(s,r),privateKey:y(o,r),keyType:"x25519"};return g(a),p}b(a,"internal error")}function Yr(e,r,a,_){var n=[];l(_),e=x(n,e,"serverPublicKey");var s,c=0|t._crypto_kx_publickeybytes();e.length!==c&&f(n,"invalid serverPublicKey length"),s=d(e),n.push(s),r=x(n,r,"serverSecretKey");var o,h=0|t._crypto_kx_secretkeybytes();r.length!==h&&f(n,"invalid serverSecretKey length"),o=d(r),n.push(o),a=x(n,a,"clientPublicKey");var p,i=0|t._crypto_kx_publickeybytes();a.length!==i&&f(n,"invalid clientPublicKey length"),p=d(a),n.push(p);var v=new u(0|t._crypto_kx_sessionkeybytes()),m=v.address;n.push(m);var E=new u(0|t._crypto_kx_sessionkeybytes()),k=E.address;if(n.push(k),0==(0|t._crypto_kx_server_session_keys(m,k,s,o,p))){var S=y({sharedRx:v,sharedTx:E},_);return g(n),S}b(n,"invalid usage")}function Br(e,r,a){var _=[];l(a);var n=d(e=x(_,e,"message")),s=e.length;_.push(n),r=x(_,r,"key");var c,o=0|t._crypto_onetimeauth_keybytes();r.length!==o&&f(_,"invalid key length"),c=d(r),_.push(c);var h=new u(0|t._crypto_onetimeauth_bytes()),p=h.address;if(_.push(p),0==(0|t._crypto_onetimeauth(p,n,s,0,c))){var i=y(h,a);return g(_),i}b(_,"invalid usage")}function Ar(e,r){var a=[];l(r),m(a,e,"state_address");var _=new u(0|t._crypto_onetimeauth_bytes()),n=_.address;if(a.push(n),0==(0|t._crypto_onetimeauth_final(e,n))){var s=(t._free(e),y(_,r));return g(a),s}b(a,"invalid usage")}function Kr(e,r){var a=[];l(r);var _=null;null!=e&&(_=d(e=x(a,e,"key")),e.length,a.push(_));var n=new u(144).address;if(0==(0|t._crypto_onetimeauth_init(n,_))){var s=n;return g(a),s}b(a,"invalid usage")}function Mr(e){var r=[];l(e);var a=new u(0|t._crypto_onetimeauth_keybytes()),_=a.address;r.push(_),t._crypto_onetimeauth_keygen(_);var n=y(a,e);return g(r),n}function Ir(e,r,a){var _=[];l(a),m(_,e,"state_address");var n=d(r=x(_,r,"message_chunk")),s=r.length;_.push(n),0!=(0|t._crypto_onetimeauth_update(e,n,s))&&b(_,"invalid usage"),g(_)}function Nr(e,r,a){var _=[];e=x(_,e,"hash");var n,s=0|t._crypto_onetimeauth_bytes();e.length!==s&&f(_,"invalid hash length"),n=d(e),_.push(n);var c=d(r=x(_,r,"message")),o=r.length;_.push(c),a=x(_,a,"key");var h,p=0|t._crypto_onetimeauth_keybytes();a.length!==p&&f(_,"invalid key length"),h=d(a),_.push(h);var y=0==(0|t._crypto_onetimeauth_verify(n,c,o,0,h));return g(_),y}function Lr(e,r,a,_,n,s,c){var o=[];l(c),m(o,e,"keyLength"),("number"!=typeof e||(0|e)!==e||e<0)&&f(o,"keyLength must be an unsigned integer");var h=d(r=x(o,r,"password")),p=r.length;o.push(h),a=x(o,a,"salt");var i,v=0|t._crypto_pwhash_saltbytes();a.length!==v&&f(o,"invalid salt length"),i=d(a),o.push(i),m(o,_,"opsLimit"),("number"!=typeof _||(0|_)!==_||_<0)&&f(o,"opsLimit must be an unsigned integer"),m(o,n,"memLimit"),("number"!=typeof n||(0|n)!==n||n<0)&&f(o,"memLimit must be an unsigned integer"),m(o,s,"algorithm"),("number"!=typeof s||(0|s)!==s||s<0)&&f(o,"algorithm must be an unsigned integer");var E=new u(0|e),k=E.address;if(o.push(k),0==(0|t._crypto_pwhash(k,e,0,h,p,0,i,_,0,n,s))){var S=y(E,c);return g(o),S}b(o,"invalid usage")}function Ur(e,r,a,_,n,s){var c=[];l(s),m(c,e,"keyLength"),("number"!=typeof e||(0|e)!==e||e<0)&&f(c,"keyLength must be an unsigned integer");var o=d(r=x(c,r,"password")),h=r.length;c.push(o),a=x(c,a,"salt");var p,i=0|t._crypto_pwhash_scryptsalsa208sha256_saltbytes();a.length!==i&&f(c,"invalid salt length"),p=d(a),c.push(p),m(c,_,"opsLimit"),("number"!=typeof _||(0|_)!==_||_<0)&&f(c,"opsLimit must be an unsigned integer"),m(c,n,"memLimit"),("number"!=typeof n||(0|n)!==n||n<0)&&f(c,"memLimit must be an unsigned integer");var v=new u(0|e),E=v.address;if(c.push(E),0==(0|t._crypto_pwhash_scryptsalsa208sha256(E,e,0,o,h,0,p,_,0,n))){var k=y(v,s);return g(c),k}b(c,"invalid usage")}function Or(e,r,a,_,n,s,c){var o=[];l(c);var h=d(e=x(o,e,"password")),p=e.length;o.push(h);var i=d(r=x(o,r,"salt")),v=r.length;o.push(i),m(o,a,"opsLimit"),("number"!=typeof a||(0|a)!==a||a<0)&&f(o,"opsLimit must be an unsigned integer"),m(o,_,"r"),("number"!=typeof _||(0|_)!==_||_<0)&&f(o,"r must be an unsigned integer"),m(o,n,"p"),("number"!=typeof n||(0|n)!==n||n<0)&&f(o,"p must be an unsigned integer"),m(o,s,"keyLength"),("number"!=typeof s||(0|s)!==s||s<0)&&f(o,"keyLength must be an unsigned integer");var E=new u(0|s),k=E.address;if(o.push(k),0==(0|t._crypto_pwhash_scryptsalsa208sha256_ll(h,p,i,v,a,0,_,n,k,s))){var S=y(E,c);return g(o),S}b(o,"invalid usage")}function Cr(e,r,a,_){var n=[];l(_);var s=d(e=x(n,e,"password")),c=e.length;n.push(s),m(n,r,"opsLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&f(n,"opsLimit must be an unsigned integer"),m(n,a,"memLimit"),("number"!=typeof a||(0|a)!==a||a<0)&&f(n,"memLimit must be an unsigned integer");var o=new u(0|t._crypto_pwhash_scryptsalsa208sha256_strbytes()).address;if(n.push(o),0==(0|t._crypto_pwhash_scryptsalsa208sha256_str(o,s,c,0,r,0,a))){var h=t.UTF8ToString(o);return g(n),h}b(n,"invalid usage")}function Rr(e,r,a){var _=[];l(a),"string"!=typeof e&&f(_,"hashed_password must be a string"),e=n(e+"\0"),null!=c&&e.length-1!==c&&f(_,"invalid hashed_password length");var s=d(e),c=e.length-1;_.push(s);var o=d(r=x(_,r,"password")),h=r.length;_.push(o);var p=0==(0|t._crypto_pwhash_scryptsalsa208sha256_str_verify(s,o,h,0));return g(_),p}function Pr(e,r,a,_){var n=[];l(_);var s=d(e=x(n,e,"password")),c=e.length;n.push(s),m(n,r,"opsLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&f(n,"opsLimit must be an unsigned integer"),m(n,a,"memLimit"),("number"!=typeof a||(0|a)!==a||a<0)&&f(n,"memLimit must be an unsigned integer");var o=new u(0|t._crypto_pwhash_strbytes()).address;if(n.push(o),0==(0|t._crypto_pwhash_str(o,s,c,0,r,0,a))){var h=t.UTF8ToString(o);return g(n),h}b(n,"invalid usage")}function Gr(e,r,a,_){var s=[];l(_),"string"!=typeof e&&f(s,"hashed_password must be a string"),e=n(e+"\0"),null!=o&&e.length-1!==o&&f(s,"invalid hashed_password length");var c=d(e),o=e.length-1;s.push(c),m(s,r,"opsLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&f(s,"opsLimit must be an unsigned integer"),m(s,a,"memLimit"),("number"!=typeof a||(0|a)!==a||a<0)&&f(s,"memLimit must be an unsigned integer");var h=0!=(0|t._crypto_pwhash_str_needs_rehash(c,r,0,a));return g(s),h}function Xr(e,r,a){var _=[];l(a),"string"!=typeof e&&f(_,"hashed_password must be a string"),e=n(e+"\0"),null!=c&&e.length-1!==c&&f(_,"invalid hashed_password length");var s=d(e),c=e.length-1;_.push(s);var o=d(r=x(_,r,"password")),h=r.length;_.push(o);var p=0==(0|t._crypto_pwhash_str_verify(s,o,h,0));return g(_),p}function Dr(e,r,a){var _=[];l(a),e=x(_,e,"privateKey");var n,s=0|t._crypto_scalarmult_scalarbytes();e.length!==s&&f(_,"invalid privateKey length"),n=d(e),_.push(n),r=x(_,r,"publicKey");var c,o=0|t._crypto_scalarmult_bytes();r.length!==o&&f(_,"invalid publicKey length"),c=d(r),_.push(c);var h=new u(0|t._crypto_scalarmult_bytes()),p=h.address;if(_.push(p),0==(0|t._crypto_scalarmult(p,n,c))){var i=y(h,a);return g(_),i}b(_,"weak public key")}function Fr(e,r){var a=[];l(r),e=x(a,e,"privateKey");var _,n=0|t._crypto_scalarmult_scalarbytes();e.length!==n&&f(a,"invalid privateKey length"),_=d(e),a.push(_);var s=new u(0|t._crypto_scalarmult_bytes()),c=s.address;if(a.push(c),0==(0|t._crypto_scalarmult_base(c,_))){var o=y(s,r);return g(a),o}b(a,"unknown error")}function Vr(e,r,a){var _=[];l(a),e=x(_,e,"n");var n,s=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&f(_,"invalid n length"),n=d(e),_.push(n),r=x(_,r,"p");var c,o=0|t._crypto_scalarmult_ed25519_bytes();r.length!==o&&f(_,"invalid p length"),c=d(r),_.push(c);var h=new u(0|t._crypto_scalarmult_ed25519_bytes()),p=h.address;if(_.push(p),0==(0|t._crypto_scalarmult_ed25519(p,n,c))){var i=y(h,a);return g(_),i}b(_,"invalid point or scalar is 0")}function Hr(e,r){var a=[];l(r),e=x(a,e,"scalar");var _,n=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&f(a,"invalid scalar length"),_=d(e),a.push(_);var s=new u(0|t._crypto_scalarmult_ed25519_bytes()),c=s.address;if(a.push(c),0==(0|t._crypto_scalarmult_ed25519_base(c,_))){var o=y(s,r);return g(a),o}b(a,"scalar is 0")}function qr(e,r){var a=[];l(r),e=x(a,e,"scalar");var _,n=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&f(a,"invalid scalar length"),_=d(e),a.push(_);var s=new u(0|t._crypto_scalarmult_ed25519_bytes()),c=s.address;if(a.push(c),0==(0|t._crypto_scalarmult_ed25519_base_noclamp(c,_))){var o=y(s,r);return g(a),o}b(a,"scalar is 0")}function jr(e,r,a){var _=[];l(a),e=x(_,e,"n");var n,s=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&f(_,"invalid n length"),n=d(e),_.push(n),r=x(_,r,"p");var c,o=0|t._crypto_scalarmult_ed25519_bytes();r.length!==o&&f(_,"invalid p length"),c=d(r),_.push(c);var h=new u(0|t._crypto_scalarmult_ed25519_bytes()),p=h.address;if(_.push(p),0==(0|t._crypto_scalarmult_ed25519_noclamp(p,n,c))){var i=y(h,a);return g(_),i}b(_,"invalid point or scalar is 0")}function zr(e,r,a){var _=[];l(a),e=x(_,e,"scalar");var n,s=0|t._crypto_scalarmult_ristretto255_scalarbytes();e.length!==s&&f(_,"invalid scalar length"),n=d(e),_.push(n),r=x(_,r,"element");var c,o=0|t._crypto_scalarmult_ristretto255_bytes();r.length!==o&&f(_,"invalid element length"),c=d(r),_.push(c);var h=new u(0|t._crypto_scalarmult_ristretto255_bytes()),p=h.address;if(_.push(p),0==(0|t._crypto_scalarmult_ristretto255(p,n,c))){var i=y(h,a);return g(_),i}b(_,"result is identity element")}function Wr(e,r){var a=[];l(r),e=x(a,e,"scalar");var _,n=0|t._crypto_core_ristretto255_scalarbytes();e.length!==n&&f(a,"invalid scalar length"),_=d(e),a.push(_);var s=new u(0|t._crypto_core_ristretto255_bytes()),c=s.address;if(a.push(c),0==(0|t._crypto_scalarmult_ristretto255_base(c,_))){var o=y(s,r);return g(a),o}b(a,"scalar is 0")}function Jr(e,r,a,_){var n=[];l(_);var s=d(e=x(n,e,"message")),c=e.length;n.push(s),r=x(n,r,"nonce");var o,h=0|t._crypto_secretbox_noncebytes();r.length!==h&&f(n,"invalid nonce length"),o=d(r),n.push(o),a=x(n,a,"key");var p,i=0|t._crypto_secretbox_keybytes();a.length!==i&&f(n,"invalid key length"),p=d(a),n.push(p);var v=new u(0|c),m=v.address;n.push(m);var E=new u(0|t._crypto_secretbox_macbytes()),k=E.address;if(n.push(k),0==(0|t._crypto_secretbox_detached(m,k,s,c,0,o,p))){var S=y({mac:E,cipher:v},_);return g(n),S}b(n,"invalid usage")}function Qr(e,r,a,_){var n=[];l(_);var s=d(e=x(n,e,"message")),c=e.length;n.push(s),r=x(n,r,"nonce");var o,h=0|t._crypto_secretbox_noncebytes();r.length!==h&&f(n,"invalid nonce length"),o=d(r),n.push(o),a=x(n,a,"key");var p,i=0|t._crypto_secretbox_keybytes();a.length!==i&&f(n,"invalid key length"),p=d(a),n.push(p);var v=new u(c+t._crypto_secretbox_macbytes()|0),m=v.address;if(n.push(m),0==(0|t._crypto_secretbox_easy(m,s,c,0,o,p))){var E=y(v,_);return g(n),E}b(n,"invalid usage")}function Zr(e){var r=[];l(e);var a=new u(0|t._crypto_secretbox_keybytes()),_=a.address;r.push(_),t._crypto_secretbox_keygen(_);var n=y(a,e);return g(r),n}function $r(e,r,a,_,n){var s=[];l(n);var c=d(e=x(s,e,"ciphertext")),o=e.length;s.push(c),r=x(s,r,"mac");var h,p=0|t._crypto_secretbox_macbytes();r.length!==p&&f(s,"invalid mac length"),h=d(r),s.push(h),a=x(s,a,"nonce");var i,v=0|t._crypto_secretbox_noncebytes();a.length!==v&&f(s,"invalid nonce length"),i=d(a),s.push(i),_=x(s,_,"key");var m,E=0|t._crypto_secretbox_keybytes();_.length!==E&&f(s,"invalid key length"),m=d(_),s.push(m);var k=new u(0|o),S=k.address;if(s.push(S),0==(0|t._crypto_secretbox_open_detached(S,c,h,o,0,i,m))){var T=y(k,n);return g(s),T}b(s,"wrong secret key for the given ciphertext")}function et(e,r,a,_){var n=[];l(_),e=x(n,e,"ciphertext");var s,c=t._crypto_secretbox_macbytes(),o=e.length;o>>0;return g([]),r}function Rt(e,r){var a=[];l(r);for(var _=t._malloc(24),n=0;n<6;n++)t.setValue(_+4*n,t.Runtime.addFunction(e[["implementation_name","random","stir","uniform","buf","close"][n]]),"i32");0!=(0|t._randombytes_set_implementation(_))&&b(a,"unsupported implementation"),g(a)}function Pt(e){l(e),t._randombytes_stir()}function Gt(e,r){var a=[];l(r),m(a,e,"upper_bound"),("number"!=typeof e||(0|e)!==e||e<0)&&f(a,"upper_bound must be an unsigned integer");var _=t._randombytes_uniform(e)>>>0;return g(a),_}function Xt(){var e=t._sodium_version_string(),r=t.UTF8ToString(e);return g([]),r}return u.prototype.to_Uint8Array=function(){var e=new Uint8Array(this.length);return e.set(t.HEAPU8.subarray(this.address,this.address+this.length)),e},e.add=function(e,r){if(!(e instanceof Uint8Array&&r instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can added");var t=e.length,a=0,_=0;if(r.length!=e.length)throw new TypeError("Arguments must have the same length");for(_=0;_>=8,a+=e[_]+r[_],e[_]=255&a},e.base64_variants=o,e.compare=function(e,r){if(!(e instanceof Uint8Array&&r instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be compared");if(e.length!==r.length)throw new TypeError("Only instances of identical length can be compared");for(var t=0,a=1,_=e.length;_-- >0;)t|=r[_]-e[_]>>8&a,a&=(r[_]^e[_])-1>>8;return t+t+a-1},e.from_base64=function(e,r){r=h(r);var a,_=[],n=new u(3*(e=x(_,e,"input")).length/4),s=d(e),c=v(4),o=v(4);return _.push(s),_.push(n.address),_.push(n.result_bin_len_p),_.push(n.b64_end_p),0!==t._sodium_base642bin(n.address,n.length,s,e.length,0,c,o,r)&&b(_,"invalid input"),t.getValue(o,"i32")-s!==e.length&&b(_,"incomplete input"),n.length=t.getValue(c,"i32"),a=n.to_Uint8Array(),g(_),a},e.from_hex=function(e){var r,a=[],_=new u((e=x(a,e,"input")).length/2),n=d(e),s=v(4);return a.push(n),a.push(_.address),a.push(_.hex_end_p),0!==t._sodium_hex2bin(_.address,_.length,n,e.length,0,0,s)&&b(a,"invalid input"),t.getValue(s,"i32")-n!==e.length&&b(a,"incomplete input"),r=_.to_Uint8Array(),g(a),r},e.from_string=n,e.increment=function(e){if(!(e instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be incremented");for(var r=256,t=0,a=e.length;t>=8,r+=e[t],e[t]=255&r},e.is_zero=function(e){if(!(e instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be checked");for(var r=0,t=0,a=e.length;t 0");var a,_=[],n=v(4),s=1,c=0,o=0|e.length,h=new u(o+r);_.push(n),_.push(h.address);for(var p=h.address,y=h.address+o+r;p>>48|o>>>32|o>>>16|o))-1>>16);return 0!==t._sodium_pad(n,h.address,e.length,r,h.length)&&b(_,"internal error"),h.length=t.getValue(n,"i32"),a=h.to_Uint8Array(),g(_),a},e.unpad=function(e,r){if(!(e instanceof Uint8Array))throw new TypeError("buffer must be a Uint8Array");if((r|=0)<=0)throw new Error("block size must be > 0");var a=[],_=d(e),n=v(4);return a.push(_),a.push(n),0!==t._sodium_unpad(n,_,e.length,r)&&b(a,"unsupported/invalid padding"),e=(e=new Uint8Array(e)).subarray(0,t.getValue(n,"i32")),g(a),e},e.ready=_,e.symbols=function(){return Object.keys(e).sort()},e.to_base64=p,e.to_hex=c,e.to_string=s,e}var t="object"==typeof e.sodium&&"function"==typeof e.sodium.onload?e.sodium.onload:null; true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports,__webpack_require__(/*! libsodium-sumo */ "./node_modules/libsodium-sumo/dist/modules-sumo/libsodium-sumo.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (r), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):0}(this); + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):0,t&&e.sodium.ready.then((function(){t(e.sodium)}))}(this); /***/ }), @@ -177816,533 +174632,1940 @@ Readable.prototype.unpipe = function (dest) { if (dest && dest !== state.pipes) return this; if (!dest) dest = state.pipes; - // got a match. - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - if (dest) dest.emit('unpipe', this, unpipeInfo); - return this; - } + // got a match. + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + if (dest) dest.emit('unpipe', this, unpipeInfo); + return this; + } + + // slow case. multiple pipe destinations. + + if (!dest) { + // remove all. + var dests = state.pipes; + var len = state.pipesCount; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, { + hasUnpiped: false + }); + return this; + } + + // try to find the right one. + var index = indexOf(state.pipes, dest); + if (index === -1) return this; + state.pipes.splice(index, 1); + state.pipesCount -= 1; + if (state.pipesCount === 1) state.pipes = state.pipes[0]; + dest.emit('unpipe', this, unpipeInfo); + return this; +}; + +// set up data events if they are asked for +// Ensure readable listeners eventually get something +Readable.prototype.on = function (ev, fn) { + var res = Stream.prototype.on.call(this, ev, fn); + var state = this._readableState; + if (ev === 'data') { + // update readableListening so that resume() may be a no-op + // a few lines down. This is needed to support once('readable'). + state.readableListening = this.listenerCount('readable') > 0; + + // Try start flowing on next tick if stream isn't explicitly paused + if (state.flowing !== false) this.resume(); + } else if (ev === 'readable') { + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true; + state.flowing = false; + state.emittedReadable = false; + debug('on readable', state.length, state.reading); + if (state.length) { + emitReadable(this); + } else if (!state.reading) { + ({"env":{"NODE_ENV":"production"}}).nextTick(nReadingNextTick, this); + } + } + } + return res; +}; +Readable.prototype.addListener = Readable.prototype.on; +Readable.prototype.removeListener = function (ev, fn) { + var res = Stream.prototype.removeListener.call(this, ev, fn); + if (ev === 'readable') { + // We need to check if there is someone still listening to + // readable and reset the state. However this needs to happen + // after readable has been emitted but before I/O (nextTick) to + // support once('readable', fn) cycles. This means that calling + // resume within the same tick will have no + // effect. + ({"env":{"NODE_ENV":"production"}}).nextTick(updateReadableListening, this); + } + return res; +}; +Readable.prototype.removeAllListeners = function (ev) { + var res = Stream.prototype.removeAllListeners.apply(this, arguments); + if (ev === 'readable' || ev === undefined) { + // We need to check if there is someone still listening to + // readable and reset the state. However this needs to happen + // after readable has been emitted but before I/O (nextTick) to + // support once('readable', fn) cycles. This means that calling + // resume within the same tick will have no + // effect. + ({"env":{"NODE_ENV":"production"}}).nextTick(updateReadableListening, this); + } + return res; +}; +function updateReadableListening(self) { + var state = self._readableState; + state.readableListening = self.listenerCount('readable') > 0; + if (state.resumeScheduled && !state.paused) { + // flowing needs to be set to true now, otherwise + // the upcoming resume will not flow. + state.flowing = true; + + // crude way to check if we should resume + } else if (self.listenerCount('data') > 0) { + self.resume(); + } +} +function nReadingNextTick(self) { + debug('readable nexttick read 0'); + self.read(0); +} + +// pause() and resume() are remnants of the legacy readable stream API +// If the user uses them, then switch into old mode. +Readable.prototype.resume = function () { + var state = this._readableState; + if (!state.flowing) { + debug('resume'); + // we flow only if there is no one listening + // for readable, but we still have to call + // resume() + state.flowing = !state.readableListening; + resume(this, state); + } + state.paused = false; + return this; +}; +function resume(stream, state) { + if (!state.resumeScheduled) { + state.resumeScheduled = true; + ({"env":{"NODE_ENV":"production"}}).nextTick(resume_, stream, state); + } +} +function resume_(stream, state) { + debug('resume', state.reading); + if (!state.reading) { + stream.read(0); + } + state.resumeScheduled = false; + stream.emit('resume'); + flow(stream); + if (state.flowing && !state.reading) stream.read(0); +} +Readable.prototype.pause = function () { + debug('call pause flowing=%j', this._readableState.flowing); + if (this._readableState.flowing !== false) { + debug('pause'); + this._readableState.flowing = false; + this.emit('pause'); + } + this._readableState.paused = true; + return this; +}; +function flow(stream) { + var state = stream._readableState; + debug('flow', state.flowing); + while (state.flowing && stream.read() !== null); +} + +// wrap an old-style stream as the async data source. +// This is *not* part of the readable stream interface. +// It is an ugly unfortunate mess of history. +Readable.prototype.wrap = function (stream) { + var _this = this; + var state = this._readableState; + var paused = false; + stream.on('end', function () { + debug('wrapped end'); + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) _this.push(chunk); + } + _this.push(null); + }); + stream.on('data', function (chunk) { + debug('wrapped data'); + if (state.decoder) chunk = state.decoder.write(chunk); + + // don't skip over falsy values in objectMode + if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; + var ret = _this.push(chunk); + if (!ret) { + paused = true; + stream.pause(); + } + }); + + // proxy all the other methods. + // important when wrapping filters and duplexes. + for (var i in stream) { + if (this[i] === undefined && typeof stream[i] === 'function') { + this[i] = function methodWrap(method) { + return function methodWrapReturnFunction() { + return stream[method].apply(stream, arguments); + }; + }(i); + } + } + + // proxy certain important events. + for (var n = 0; n < kProxyEvents.length; n++) { + stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); + } + + // when we try to consume some more bytes, simply unpause the + // underlying stream. + this._read = function (n) { + debug('wrapped _read', n); + if (paused) { + paused = false; + stream.resume(); + } + }; + return this; +}; +if (typeof Symbol === 'function') { + Readable.prototype[Symbol.asyncIterator] = function () { + if (createReadableStreamAsyncIterator === undefined) { + createReadableStreamAsyncIterator = __webpack_require__(/*! ./internal/streams/async_iterator */ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/async_iterator.js"); + } + return createReadableStreamAsyncIterator(this); + }; +} +Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.highWaterMark; + } +}); +Object.defineProperty(Readable.prototype, 'readableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState && this._readableState.buffer; + } +}); +Object.defineProperty(Readable.prototype, 'readableFlowing', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.flowing; + }, + set: function set(state) { + if (this._readableState) { + this._readableState.flowing = state; + } + } +}); + +// exposed for testing purposes only. +Readable._fromList = fromList; +Object.defineProperty(Readable.prototype, 'readableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.length; + } +}); + +// Pluck off n bytes from an array of buffers. +// Length is the combined lengths of all the buffers in the list. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function fromList(n, state) { + // nothing buffered + if (state.length === 0) return null; + var ret; + if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { + // read it all, truncate the list + if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length); + state.buffer.clear(); + } else { + // read part of list + ret = state.buffer.consume(n, state.decoder); + } + return ret; +} +function endReadable(stream) { + var state = stream._readableState; + debug('endReadable', state.endEmitted); + if (!state.endEmitted) { + state.ended = true; + ({"env":{"NODE_ENV":"production"}}).nextTick(endReadableNT, state, stream); + } +} +function endReadableNT(state, stream) { + debug('endReadableNT', state.endEmitted, state.length); + + // Check that we didn't get one last unshift. + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream.readable = false; + stream.emit('end'); + if (state.autoDestroy) { + // In case of duplex streams we need a way to detect + // if the writable side is ready for autoDestroy as well + var wState = stream._writableState; + if (!wState || wState.autoDestroy && wState.finished) { + stream.destroy(); + } + } + } +} +if (typeof Symbol === 'function') { + Readable.from = function (iterable, opts) { + if (from === undefined) { + from = __webpack_require__(/*! ./internal/streams/from */ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/from-browser.js"); + } + return from(Readable, iterable, opts); + }; +} +function indexOf(xs, x) { + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) return i; + } + return -1; +} + +/***/ }), + +/***/ "./node_modules/stream-http/node_modules/readable-stream/lib/_stream_transform.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/stream-http/node_modules/readable-stream/lib/_stream_transform.js ***! + \****************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// a transform stream is a readable/writable stream where you do +// something with the data. Sometimes it's called a "filter", +// but that's not a great name for it, since that implies a thing where +// some bits pass through, and others are simply ignored. (That would +// be a valid example of a transform, of course.) +// +// While the output is causally related to the input, it's not a +// necessarily symmetric or synchronous transformation. For example, +// a zlib stream might take multiple plain-text writes(), and then +// emit a single compressed chunk some time in the future. +// +// Here's how this works: +// +// The Transform stream has all the aspects of the readable and writable +// stream classes. When you write(chunk), that calls _write(chunk,cb) +// internally, and returns false if there's a lot of pending writes +// buffered up. When you call read(), that calls _read(n) until +// there's enough pending readable data buffered up. +// +// In a transform stream, the written data is placed in a buffer. When +// _read(n) is called, it transforms the queued up data, calling the +// buffered _write cb's as it consumes chunks. If consuming a single +// written chunk would result in multiple output chunks, then the first +// outputted bit calls the readcb, and subsequent chunks just go into +// the read buffer, and will cause it to emit 'readable' if necessary. +// +// This way, back-pressure is actually determined by the reading side, +// since _read has to be called to start processing a new chunk. However, +// a pathological inflate type of transform can cause excessive buffering +// here. For example, imagine a stream where every byte of input is +// interpreted as an integer from 0-255, and then results in that many +// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in +// 1kb of data being output. In this case, you could write a very small +// amount of input, and end up with a very large amount of output. In +// such a pathological inflating mechanism, there'd be no way to tell +// the system to stop doing the transform. A single 4MB write could +// cause the system to run out of memory. +// +// However, even in such a pathological case, only a single written chunk +// would be consumed, and then the rest would wait (un-transformed) until +// the results of the previous transformed chunk were consumed. + + + +module.exports = Transform; +var _require$codes = (__webpack_require__(/*! ../errors */ "./node_modules/stream-http/node_modules/readable-stream/errors-browser.js").codes), + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, + ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0; +var Duplex = __webpack_require__(/*! ./_stream_duplex */ "./node_modules/stream-http/node_modules/readable-stream/lib/_stream_duplex.js"); +__webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js")(Transform, Duplex); +function afterTransform(er, data) { + var ts = this._transformState; + ts.transforming = false; + var cb = ts.writecb; + if (cb === null) { + return this.emit('error', new ERR_MULTIPLE_CALLBACK()); + } + ts.writechunk = null; + ts.writecb = null; + if (data != null) + // single equals check for both `null` and `undefined` + this.push(data); + cb(er); + var rs = this._readableState; + rs.reading = false; + if (rs.needReadable || rs.length < rs.highWaterMark) { + this._read(rs.highWaterMark); + } +} +function Transform(options) { + if (!(this instanceof Transform)) return new Transform(options); + Duplex.call(this, options); + this._transformState = { + afterTransform: afterTransform.bind(this), + needTransform: false, + transforming: false, + writecb: null, + writechunk: null, + writeencoding: null + }; + + // start out asking for a readable event once data is transformed. + this._readableState.needReadable = true; + + // we have implemented the _read method, and done the other things + // that Readable wants before the first _read call, so unset the + // sync guard flag. + this._readableState.sync = false; + if (options) { + if (typeof options.transform === 'function') this._transform = options.transform; + if (typeof options.flush === 'function') this._flush = options.flush; + } + + // When the writable side finishes, then flush out anything remaining. + this.on('prefinish', prefinish); +} +function prefinish() { + var _this = this; + if (typeof this._flush === 'function' && !this._readableState.destroyed) { + this._flush(function (er, data) { + done(_this, er, data); + }); + } else { + done(this, null, null); + } +} +Transform.prototype.push = function (chunk, encoding) { + this._transformState.needTransform = false; + return Duplex.prototype.push.call(this, chunk, encoding); +}; + +// This is the part where you do stuff! +// override this function in implementation classes. +// 'chunk' is an input chunk. +// +// Call `push(newChunk)` to pass along transformed output +// to the readable side. You may call 'push' zero or more times. +// +// Call `cb(err)` when you are done with this chunk. If you pass +// an error, then that'll put the hurt on the whole operation. If you +// never call cb(), then you'll never get another chunk. +Transform.prototype._transform = function (chunk, encoding, cb) { + cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()')); +}; +Transform.prototype._write = function (chunk, encoding, cb) { + var ts = this._transformState; + ts.writecb = cb; + ts.writechunk = chunk; + ts.writeencoding = encoding; + if (!ts.transforming) { + var rs = this._readableState; + if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); + } +}; + +// Doesn't matter what the args are here. +// _transform does all the work. +// That we got here means that the readable side wants more data. +Transform.prototype._read = function (n) { + var ts = this._transformState; + if (ts.writechunk !== null && !ts.transforming) { + ts.transforming = true; + this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); + } else { + // mark that we need a transform, so that any data that comes in + // will get processed, now that we've asked for it. + ts.needTransform = true; + } +}; +Transform.prototype._destroy = function (err, cb) { + Duplex.prototype._destroy.call(this, err, function (err2) { + cb(err2); + }); +}; +function done(stream, er, data) { + if (er) return stream.emit('error', er); + if (data != null) + // single equals check for both `null` and `undefined` + stream.push(data); + + // TODO(BridgeAR): Write a test for these two error cases + // if there's nothing in the write buffer, then that means + // that nothing more will ever be provided + if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0(); + if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING(); + return stream.push(null); +} + +/***/ }), + +/***/ "./node_modules/stream-http/node_modules/readable-stream/lib/_stream_writable.js": +/*!***************************************************************************************!*\ + !*** ./node_modules/stream-http/node_modules/readable-stream/lib/_stream_writable.js ***! + \***************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// A bit simpler than readable streams. +// Implement an async ._write(chunk, encoding, cb), and it'll handle all +// the drain event emission and buffering. + + + +module.exports = Writable; + +/* */ +function WriteReq(chunk, encoding, cb) { + this.chunk = chunk; + this.encoding = encoding; + this.callback = cb; + this.next = null; +} + +// It seems a linked list but it is not +// there will be only 2 of these for each stream +function CorkedRequest(state) { + var _this = this; + this.next = null; + this.entry = null; + this.finish = function () { + onCorkedFinish(_this, state); + }; +} +/* */ + +/**/ +var Duplex; +/**/ + +Writable.WritableState = WritableState; + +/**/ +var internalUtil = { + deprecate: __webpack_require__(/*! util-deprecate */ "./node_modules/util-deprecate/browser.js") +}; +/**/ + +/**/ +var Stream = __webpack_require__(/*! ./internal/streams/stream */ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/stream-browser.js"); +/**/ + +var Buffer = (__webpack_require__(/*! buffer */ "./node_modules/buffer/index.js").Buffer); +var OurUint8Array = (typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} +var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/destroy.js"); +var _require = __webpack_require__(/*! ./internal/streams/state */ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/state.js"), + getHighWaterMark = _require.getHighWaterMark; +var _require$codes = (__webpack_require__(/*! ../errors */ "./node_modules/stream-http/node_modules/readable-stream/errors-browser.js").codes), + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, + ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, + ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, + ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; +var errorOrDestroy = destroyImpl.errorOrDestroy; +__webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js")(Writable, Stream); +function nop() {} +function WritableState(options, stream, isDuplex) { + Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/stream-http/node_modules/readable-stream/lib/_stream_duplex.js"); + options = options || {}; + + // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream, + // e.g. options.readableObjectMode vs. options.writableObjectMode, etc. + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; + + // object stream flag to indicate whether or not this stream + // contains buffers or objects. + this.objectMode = !!options.objectMode; + if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; + + // the point at which write() starts returning false + // Note: 0 is a valid value, means that we always return false if + // the entire buffer is not flushed immediately on write() + this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); + + // if _final has been called + this.finalCalled = false; + + // drain event flag. + this.needDrain = false; + // at the start of calling end() + this.ending = false; + // when end() has been called, and returned + this.ended = false; + // when 'finish' is emitted + this.finished = false; + + // has it been destroyed + this.destroyed = false; + + // should we decode strings into buffers before passing to _write? + // this is here so that some node-core streams can optimize string + // handling at a lower level. + var noDecode = options.decodeStrings === false; + this.decodeStrings = !noDecode; + + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; + + // not an actual buffer we keep track of, but a measurement + // of how much we're waiting to get pushed to some underlying + // socket or file. + this.length = 0; + + // a flag to see when we're in the middle of a write. + this.writing = false; + + // when true all writes will be buffered until .uncork() call + this.corked = 0; + + // a flag to be able to tell if the onwrite cb is called immediately, + // or on a later tick. We set this to true at first, because any + // actions that shouldn't happen until "later" should generally also + // not happen before the first write call. + this.sync = true; + + // a flag to know if we're processing previously buffered items, which + // may call the _write() callback in the same tick, so that we don't + // end up in an overlapped onwrite situation. + this.bufferProcessing = false; + + // the callback that's passed to _write(chunk,cb) + this.onwrite = function (er) { + onwrite(stream, er); + }; + + // the callback that the user supplies to write(chunk,encoding,cb) + this.writecb = null; + + // the amount that is being written when _write is called. + this.writelen = 0; + this.bufferedRequest = null; + this.lastBufferedRequest = null; + + // number of pending user-supplied write callbacks + // this must be 0 before 'finish' can be emitted + this.pendingcb = 0; + + // emit prefinish if the only thing we're waiting for is _write cbs + // This is relevant for synchronous Transform streams + this.prefinished = false; + + // True if the error was already emitted and should not be thrown again + this.errorEmitted = false; + + // Should close be emitted on destroy. Defaults to true. + this.emitClose = options.emitClose !== false; + + // Should .destroy() be called after 'finish' (and potentially 'end') + this.autoDestroy = !!options.autoDestroy; + + // count buffered requests + this.bufferedRequestCount = 0; + + // allocate the first CorkedRequest, there is always + // one allocated and free to use, and we maintain at most two + this.corkedRequestsFree = new CorkedRequest(this); +} +WritableState.prototype.getBuffer = function getBuffer() { + var current = this.bufferedRequest; + var out = []; + while (current) { + out.push(current); + current = current.next; + } + return out; +}; +(function () { + try { + Object.defineProperty(WritableState.prototype, 'buffer', { + get: internalUtil.deprecate(function writableStateBufferGetter() { + return this.getBuffer(); + }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') + }); + } catch (_) {} +})(); + +// Test _writableState for inheritance to account for Duplex streams, +// whose prototype chain only points to Readable. +var realHasInstance; +if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { + realHasInstance = Function.prototype[Symbol.hasInstance]; + Object.defineProperty(Writable, Symbol.hasInstance, { + value: function value(object) { + if (realHasInstance.call(this, object)) return true; + if (this !== Writable) return false; + return object && object._writableState instanceof WritableState; + } + }); +} else { + realHasInstance = function realHasInstance(object) { + return object instanceof this; + }; +} +function Writable(options) { + Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/stream-http/node_modules/readable-stream/lib/_stream_duplex.js"); + + // Writable ctor is applied to Duplexes, too. + // `realHasInstance` is necessary because using plain `instanceof` + // would return false, as no `_writableState` property is attached. - // slow case. multiple pipe destinations. + // Trying to use the custom `instanceof` for Writable here will also break the + // Node.js LazyTransform implementation, which has a non-trivial getter for + // `_writableState` that would lead to infinite recursion. - if (!dest) { - // remove all. - var dests = state.pipes; - var len = state.pipesCount; - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, { - hasUnpiped: false - }); - return this; + // Checking for a Stream.Duplex instance is faster here instead of inside + // the WritableState constructor, at least with V8 6.5 + var isDuplex = this instanceof Duplex; + if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); + this._writableState = new WritableState(options, this, isDuplex); + + // legacy. + this.writable = true; + if (options) { + if (typeof options.write === 'function') this._write = options.write; + if (typeof options.writev === 'function') this._writev = options.writev; + if (typeof options.destroy === 'function') this._destroy = options.destroy; + if (typeof options.final === 'function') this._final = options.final; } + Stream.call(this); +} - // try to find the right one. - var index = indexOf(state.pipes, dest); - if (index === -1) return this; - state.pipes.splice(index, 1); - state.pipesCount -= 1; - if (state.pipesCount === 1) state.pipes = state.pipes[0]; - dest.emit('unpipe', this, unpipeInfo); - return this; +// Otherwise people can pipe Writable streams, which is just wrong. +Writable.prototype.pipe = function () { + errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); }; +function writeAfterEnd(stream, cb) { + var er = new ERR_STREAM_WRITE_AFTER_END(); + // TODO: defer error events consistently everywhere, not just the cb + errorOrDestroy(stream, er); + ({"env":{"NODE_ENV":"production"}}).nextTick(cb, er); +} -// set up data events if they are asked for -// Ensure readable listeners eventually get something -Readable.prototype.on = function (ev, fn) { - var res = Stream.prototype.on.call(this, ev, fn); - var state = this._readableState; - if (ev === 'data') { - // update readableListening so that resume() may be a no-op - // a few lines down. This is needed to support once('readable'). - state.readableListening = this.listenerCount('readable') > 0; - - // Try start flowing on next tick if stream isn't explicitly paused - if (state.flowing !== false) this.resume(); - } else if (ev === 'readable') { - if (!state.endEmitted && !state.readableListening) { - state.readableListening = state.needReadable = true; - state.flowing = false; - state.emittedReadable = false; - debug('on readable', state.length, state.reading); - if (state.length) { - emitReadable(this); - } else if (!state.reading) { - ({"env":{"NODE_ENV":"production"}}).nextTick(nReadingNextTick, this); - } - } +// Checks that a user-supplied chunk is valid, especially for the particular +// mode the stream is in. Currently this means that `null` is never accepted +// and undefined/non-string values are only allowed in object mode. +function validChunk(stream, state, chunk, cb) { + var er; + if (chunk === null) { + er = new ERR_STREAM_NULL_VALUES(); + } else if (typeof chunk !== 'string' && !state.objectMode) { + er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk); } - return res; -}; -Readable.prototype.addListener = Readable.prototype.on; -Readable.prototype.removeListener = function (ev, fn) { - var res = Stream.prototype.removeListener.call(this, ev, fn); - if (ev === 'readable') { - // We need to check if there is someone still listening to - // readable and reset the state. However this needs to happen - // after readable has been emitted but before I/O (nextTick) to - // support once('readable', fn) cycles. This means that calling - // resume within the same tick will have no - // effect. - ({"env":{"NODE_ENV":"production"}}).nextTick(updateReadableListening, this); + if (er) { + errorOrDestroy(stream, er); + ({"env":{"NODE_ENV":"production"}}).nextTick(cb, er); + return false; } - return res; + return true; +} +Writable.prototype.write = function (chunk, encoding, cb) { + var state = this._writableState; + var ret = false; + var isBuf = !state.objectMode && _isUint8Array(chunk); + if (isBuf && !Buffer.isBuffer(chunk)) { + chunk = _uint8ArrayToBuffer(chunk); + } + if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; + if (typeof cb !== 'function') cb = nop; + if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { + state.pendingcb++; + ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); + } + return ret; }; -Readable.prototype.removeAllListeners = function (ev) { - var res = Stream.prototype.removeAllListeners.apply(this, arguments); - if (ev === 'readable' || ev === undefined) { - // We need to check if there is someone still listening to - // readable and reset the state. However this needs to happen - // after readable has been emitted but before I/O (nextTick) to - // support once('readable', fn) cycles. This means that calling - // resume within the same tick will have no - // effect. - ({"env":{"NODE_ENV":"production"}}).nextTick(updateReadableListening, this); +Writable.prototype.cork = function () { + this._writableState.corked++; +}; +Writable.prototype.uncork = function () { + var state = this._writableState; + if (state.corked) { + state.corked--; + if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); } - return res; }; -function updateReadableListening(self) { - var state = self._readableState; - state.readableListening = self.listenerCount('readable') > 0; - if (state.resumeScheduled && !state.paused) { - // flowing needs to be set to true now, otherwise - // the upcoming resume will not flow. - state.flowing = true; - - // crude way to check if we should resume - } else if (self.listenerCount('data') > 0) { - self.resume(); +Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { + // node::ParseEncoding() requires lower case. + if (typeof encoding === 'string') encoding = encoding.toLowerCase(); + if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding); + this._writableState.defaultEncoding = encoding; + return this; +}; +Object.defineProperty(Writable.prototype, 'writableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState && this._writableState.getBuffer(); } +}); +function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { + chunk = Buffer.from(chunk, encoding); + } + return chunk; } -function nReadingNextTick(self) { - debug('readable nexttick read 0'); - self.read(0); -} +Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.highWaterMark; + } +}); -// pause() and resume() are remnants of the legacy readable stream API -// If the user uses them, then switch into old mode. -Readable.prototype.resume = function () { - var state = this._readableState; - if (!state.flowing) { - debug('resume'); - // we flow only if there is no one listening - // for readable, but we still have to call - // resume() - state.flowing = !state.readableListening; - resume(this, state); +// if we're already writing something, then just put this +// in the queue, and wait our turn. Otherwise, call _write +// If we return false, then we need a drain event, so set that flag. +function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { + if (!isBuf) { + var newChunk = decodeChunk(state, chunk, encoding); + if (chunk !== newChunk) { + isBuf = true; + encoding = 'buffer'; + chunk = newChunk; + } } - state.paused = false; - return this; -}; -function resume(stream, state) { - if (!state.resumeScheduled) { - state.resumeScheduled = true; - ({"env":{"NODE_ENV":"production"}}).nextTick(resume_, stream, state); + var len = state.objectMode ? 1 : chunk.length; + state.length += len; + var ret = state.length < state.highWaterMark; + // we must ensure that previous needDrain will not be reset to false. + if (!ret) state.needDrain = true; + if (state.writing || state.corked) { + var last = state.lastBufferedRequest; + state.lastBufferedRequest = { + chunk: chunk, + encoding: encoding, + isBuf: isBuf, + callback: cb, + next: null + }; + if (last) { + last.next = state.lastBufferedRequest; + } else { + state.bufferedRequest = state.lastBufferedRequest; + } + state.bufferedRequestCount += 1; + } else { + doWrite(stream, state, false, len, chunk, encoding, cb); } + return ret; } -function resume_(stream, state) { - debug('resume', state.reading); - if (!state.reading) { - stream.read(0); +function doWrite(stream, state, writev, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); + state.sync = false; +} +function onwriteError(stream, state, sync, er, cb) { + --state.pendingcb; + if (sync) { + // defer the callback if we are being called synchronously + // to avoid piling up things on the stack + ({"env":{"NODE_ENV":"production"}}).nextTick(cb, er); + // this can emit finish, and it will always happen + // after error + ({"env":{"NODE_ENV":"production"}}).nextTick(finishMaybe, stream, state); + stream._writableState.errorEmitted = true; + errorOrDestroy(stream, er); + } else { + // the caller expect this to happen before if + // it is async + cb(er); + stream._writableState.errorEmitted = true; + errorOrDestroy(stream, er); + // this can emit finish, but finish must + // always follow error + finishMaybe(stream, state); } - state.resumeScheduled = false; - stream.emit('resume'); - flow(stream); - if (state.flowing && !state.reading) stream.read(0); } -Readable.prototype.pause = function () { - debug('call pause flowing=%j', this._readableState.flowing); - if (this._readableState.flowing !== false) { - debug('pause'); - this._readableState.flowing = false; - this.emit('pause'); +function onwriteStateUpdate(state) { + state.writing = false; + state.writecb = null; + state.length -= state.writelen; + state.writelen = 0; +} +function onwrite(stream, er) { + var state = stream._writableState; + var sync = state.sync; + var cb = state.writecb; + if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK(); + onwriteStateUpdate(state); + if (er) onwriteError(stream, state, sync, er, cb);else { + // Check if we're actually ready to finish, but don't emit yet + var finished = needFinish(state) || stream.destroyed; + if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { + clearBuffer(stream, state); + } + if (sync) { + ({"env":{"NODE_ENV":"production"}}).nextTick(afterWrite, stream, state, finished, cb); + } else { + afterWrite(stream, state, finished, cb); + } } - this._readableState.paused = true; - return this; -}; -function flow(stream) { - var state = stream._readableState; - debug('flow', state.flowing); - while (state.flowing && stream.read() !== null); +} +function afterWrite(stream, state, finished, cb) { + if (!finished) onwriteDrain(stream, state); + state.pendingcb--; + cb(); + finishMaybe(stream, state); } -// wrap an old-style stream as the async data source. -// This is *not* part of the readable stream interface. -// It is an ugly unfortunate mess of history. -Readable.prototype.wrap = function (stream) { - var _this = this; - var state = this._readableState; - var paused = false; - stream.on('end', function () { - debug('wrapped end'); - if (state.decoder && !state.ended) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) _this.push(chunk); - } - _this.push(null); - }); - stream.on('data', function (chunk) { - debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); +// Must force callback to be called on nextTick, so that we don't +// emit 'drain' before the write() consumer gets the 'false' return +// value, and has a chance to attach a 'drain' listener. +function onwriteDrain(stream, state) { + if (state.length === 0 && state.needDrain) { + state.needDrain = false; + stream.emit('drain'); + } +} - // don't skip over falsy values in objectMode - if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - var ret = _this.push(chunk); - if (!ret) { - paused = true; - stream.pause(); +// if there's something in the buffer waiting, then process it +function clearBuffer(stream, state) { + state.bufferProcessing = true; + var entry = state.bufferedRequest; + if (stream._writev && entry && entry.next) { + // Fast case, write everything using _writev() + var l = state.bufferedRequestCount; + var buffer = new Array(l); + var holder = state.corkedRequestsFree; + holder.entry = entry; + var count = 0; + var allBuffers = true; + while (entry) { + buffer[count] = entry; + if (!entry.isBuf) allBuffers = false; + entry = entry.next; + count += 1; } - }); + buffer.allBuffers = allBuffers; + doWrite(stream, state, true, state.length, buffer, '', holder.finish); - // proxy all the other methods. - // important when wrapping filters and duplexes. - for (var i in stream) { - if (this[i] === undefined && typeof stream[i] === 'function') { - this[i] = function methodWrap(method) { - return function methodWrapReturnFunction() { - return stream[method].apply(stream, arguments); - }; - }(i); + // doWrite is almost always async, defer these to save a bit of time + // as the hot path ends with doWrite + state.pendingcb++; + state.lastBufferedRequest = null; + if (holder.next) { + state.corkedRequestsFree = holder.next; + holder.next = null; + } else { + state.corkedRequestsFree = new CorkedRequest(state); + } + state.bufferedRequestCount = 0; + } else { + // Slow case, write chunks one-by-one + while (entry) { + var chunk = entry.chunk; + var encoding = entry.encoding; + var cb = entry.callback; + var len = state.objectMode ? 1 : chunk.length; + doWrite(stream, state, false, len, chunk, encoding, cb); + entry = entry.next; + state.bufferedRequestCount--; + // if we didn't call the onwrite immediately, then + // it means that we need to wait until it does. + // also, that means that the chunk and cb are currently + // being processed, so move the buffer counter past them. + if (state.writing) { + break; + } } + if (entry === null) state.lastBufferedRequest = null; + } + state.bufferedRequest = entry; + state.bufferProcessing = false; +} +Writable.prototype._write = function (chunk, encoding, cb) { + cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()')); +}; +Writable.prototype._writev = null; +Writable.prototype.end = function (chunk, encoding, cb) { + var state = this._writableState; + if (typeof chunk === 'function') { + cb = chunk; + chunk = null; + encoding = null; + } else if (typeof encoding === 'function') { + cb = encoding; + encoding = null; } + if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - // proxy certain important events. - for (var n = 0; n < kProxyEvents.length; n++) { - stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); + // .end() fully uncorks + if (state.corked) { + state.corked = 1; + this.uncork(); } - // when we try to consume some more bytes, simply unpause the - // underlying stream. - this._read = function (n) { - debug('wrapped _read', n); - if (paused) { - paused = false; - stream.resume(); - } - }; + // ignore unnecessary end() calls. + if (!state.ending) endWritable(this, state, cb); return this; }; -if (typeof Symbol === 'function') { - Readable.prototype[Symbol.asyncIterator] = function () { - if (createReadableStreamAsyncIterator === undefined) { - createReadableStreamAsyncIterator = __webpack_require__(/*! ./internal/streams/async_iterator */ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/async_iterator.js"); - } - return createReadableStreamAsyncIterator(this); - }; -} -Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { +Object.defineProperty(Writable.prototype, 'writableLength', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in // userland will fail enumerable: false, get: function get() { - return this._readableState.highWaterMark; + return this._writableState.length; } }); -Object.defineProperty(Readable.prototype, 'readableBuffer', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState && this._readableState.buffer; +function needFinish(state) { + return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; +} +function callFinal(stream, state) { + stream._final(function (err) { + state.pendingcb--; + if (err) { + errorOrDestroy(stream, err); + } + state.prefinished = true; + stream.emit('prefinish'); + finishMaybe(stream, state); + }); +} +function prefinish(stream, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream._final === 'function' && !state.destroyed) { + state.pendingcb++; + state.finalCalled = true; + ({"env":{"NODE_ENV":"production"}}).nextTick(callFinal, stream, state); + } else { + state.prefinished = true; + stream.emit('prefinish'); + } } -}); -Object.defineProperty(Readable.prototype, 'readableFlowing', { +} +function finishMaybe(stream, state) { + var need = needFinish(state); + if (need) { + prefinish(stream, state); + if (state.pendingcb === 0) { + state.finished = true; + stream.emit('finish'); + if (state.autoDestroy) { + // In case of duplex streams we need a way to detect + // if the readable side is ready for autoDestroy as well + var rState = stream._readableState; + if (!rState || rState.autoDestroy && rState.endEmitted) { + stream.destroy(); + } + } + } + } + return need; +} +function endWritable(stream, state, cb) { + state.ending = true; + finishMaybe(stream, state); + if (cb) { + if (state.finished) ({"env":{"NODE_ENV":"production"}}).nextTick(cb);else stream.once('finish', cb); + } + state.ended = true; + stream.writable = false; +} +function onCorkedFinish(corkReq, state, err) { + var entry = corkReq.entry; + corkReq.entry = null; + while (entry) { + var cb = entry.callback; + state.pendingcb--; + cb(err); + entry = entry.next; + } + + // reuse the free corkReq. + state.corkedRequestsFree.next = corkReq; +} +Object.defineProperty(Writable.prototype, 'destroyed', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in // userland will fail enumerable: false, get: function get() { - return this._readableState.flowing; + if (this._writableState === undefined) { + return false; + } + return this._writableState.destroyed; }, - set: function set(state) { - if (this._readableState) { - this._readableState.flowing = state; + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._writableState) { + return; } + + // backward compatibility, the user is explicitly + // managing destroyed + this._writableState.destroyed = value; } }); +Writable.prototype.destroy = destroyImpl.destroy; +Writable.prototype._undestroy = destroyImpl.undestroy; +Writable.prototype._destroy = function (err, cb) { + cb(err); +}; -// exposed for testing purposes only. -Readable._fromList = fromList; -Object.defineProperty(Readable.prototype, 'readableLength', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState.length; +/***/ }), + +/***/ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/async_iterator.js": +/*!******************************************************************************************************!*\ + !*** ./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/async_iterator.js ***! + \******************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +var _Object$setPrototypeO; +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +var finished = __webpack_require__(/*! ./end-of-stream */ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); +var kLastResolve = Symbol('lastResolve'); +var kLastReject = Symbol('lastReject'); +var kError = Symbol('error'); +var kEnded = Symbol('ended'); +var kLastPromise = Symbol('lastPromise'); +var kHandlePromise = Symbol('handlePromise'); +var kStream = Symbol('stream'); +function createIterResult(value, done) { + return { + value: value, + done: done + }; +} +function readAndResolve(iter) { + var resolve = iter[kLastResolve]; + if (resolve !== null) { + var data = iter[kStream].read(); + // we defer if data is null + // we can be expecting either 'end' or + // 'error' + if (data !== null) { + iter[kLastPromise] = null; + iter[kLastResolve] = null; + iter[kLastReject] = null; + resolve(createIterResult(data, false)); + } } -}); +} +function onReadable(iter) { + // we wait for the next tick, because it might + // emit an error with process.nextTick + ({"env":{"NODE_ENV":"production"}}).nextTick(readAndResolve, iter); +} +function wrapForNext(lastPromise, iter) { + return function (resolve, reject) { + lastPromise.then(function () { + if (iter[kEnded]) { + resolve(createIterResult(undefined, true)); + return; + } + iter[kHandlePromise](resolve, reject); + }, reject); + }; +} +var AsyncIteratorPrototype = Object.getPrototypeOf(function () {}); +var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = { + get stream() { + return this[kStream]; + }, + next: function next() { + var _this = this; + // if we have detected an error in the meanwhile + // reject straight away + var error = this[kError]; + if (error !== null) { + return Promise.reject(error); + } + if (this[kEnded]) { + return Promise.resolve(createIterResult(undefined, true)); + } + if (this[kStream].destroyed) { + // We need to defer via nextTick because if .destroy(err) is + // called, the error will be emitted via nextTick, and + // we cannot guarantee that there is no error lingering around + // waiting to be emitted. + return new Promise(function (resolve, reject) { + ({"env":{"NODE_ENV":"production"}}).nextTick(function () { + if (_this[kError]) { + reject(_this[kError]); + } else { + resolve(createIterResult(undefined, true)); + } + }); + }); + } -// Pluck off n bytes from an array of buffers. -// Length is the combined lengths of all the buffers in the list. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function fromList(n, state) { - // nothing buffered - if (state.length === 0) return null; - var ret; - if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { - // read it all, truncate the list - if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length); - state.buffer.clear(); - } else { - // read part of list - ret = state.buffer.consume(n, state.decoder); + // if we have multiple next() calls + // we will wait for the previous Promise to finish + // this logic is optimized to support for await loops, + // where next() is only called once at a time + var lastPromise = this[kLastPromise]; + var promise; + if (lastPromise) { + promise = new Promise(wrapForNext(lastPromise, this)); + } else { + // fast path needed to support multiple this.push() + // without triggering the next() queue + var data = this[kStream].read(); + if (data !== null) { + return Promise.resolve(createIterResult(data, false)); + } + promise = new Promise(this[kHandlePromise]); + } + this[kLastPromise] = promise; + return promise; } - return ret; +}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () { + return this; +}), _defineProperty(_Object$setPrototypeO, "return", function _return() { + var _this2 = this; + // destroy(err, cb) is a private API + // we can guarantee we have that here, because we control the + // Readable class this is attached to + return new Promise(function (resolve, reject) { + _this2[kStream].destroy(null, function (err) { + if (err) { + reject(err); + return; + } + resolve(createIterResult(undefined, true)); + }); + }); +}), _Object$setPrototypeO), AsyncIteratorPrototype); +var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) { + var _Object$create; + var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, { + value: stream, + writable: true + }), _defineProperty(_Object$create, kLastResolve, { + value: null, + writable: true + }), _defineProperty(_Object$create, kLastReject, { + value: null, + writable: true + }), _defineProperty(_Object$create, kError, { + value: null, + writable: true + }), _defineProperty(_Object$create, kEnded, { + value: stream._readableState.endEmitted, + writable: true + }), _defineProperty(_Object$create, kHandlePromise, { + value: function value(resolve, reject) { + var data = iterator[kStream].read(); + if (data) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(data, false)); + } else { + iterator[kLastResolve] = resolve; + iterator[kLastReject] = reject; + } + }, + writable: true + }), _Object$create)); + iterator[kLastPromise] = null; + finished(stream, function (err) { + if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') { + var reject = iterator[kLastReject]; + // reject if we are waiting for data in the Promise + // returned by next() and store the error + if (reject !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + reject(err); + } + iterator[kError] = err; + return; + } + var resolve = iterator[kLastResolve]; + if (resolve !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(undefined, true)); + } + iterator[kEnded] = true; + }); + stream.on('readable', onReadable.bind(null, iterator)); + return iterator; +}; +module.exports = createReadableStreamAsyncIterator; + +/***/ }), + +/***/ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/buffer_list.js": +/*!***************************************************************************************************!*\ + !*** ./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/buffer_list.js ***! + \***************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +var _require = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js"), + Buffer = _require.Buffer; +var _require2 = __webpack_require__(/*! util */ "?0cc0"), + inspect = _require2.inspect; +var custom = inspect && inspect.custom || 'inspect'; +function copyBuffer(src, target, offset) { + Buffer.prototype.copy.call(src, target, offset); +} +module.exports = /*#__PURE__*/function () { + function BufferList() { + _classCallCheck(this, BufferList); + this.head = null; + this.tail = null; + this.length = 0; + } + _createClass(BufferList, [{ + key: "push", + value: function push(v) { + var entry = { + data: v, + next: null + }; + if (this.length > 0) this.tail.next = entry;else this.head = entry; + this.tail = entry; + ++this.length; + } + }, { + key: "unshift", + value: function unshift(v) { + var entry = { + data: v, + next: this.head + }; + if (this.length === 0) this.tail = entry; + this.head = entry; + ++this.length; + } + }, { + key: "shift", + value: function shift() { + if (this.length === 0) return; + var ret = this.head.data; + if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; + --this.length; + return ret; + } + }, { + key: "clear", + value: function clear() { + this.head = this.tail = null; + this.length = 0; + } + }, { + key: "join", + value: function join(s) { + if (this.length === 0) return ''; + var p = this.head; + var ret = '' + p.data; + while (p = p.next) ret += s + p.data; + return ret; + } + }, { + key: "concat", + value: function concat(n) { + if (this.length === 0) return Buffer.alloc(0); + var ret = Buffer.allocUnsafe(n >>> 0); + var p = this.head; + var i = 0; + while (p) { + copyBuffer(p.data, ret, i); + i += p.data.length; + p = p.next; + } + return ret; + } + + // Consumes a specified amount of bytes or characters from the buffered data. + }, { + key: "consume", + value: function consume(n, hasStrings) { + var ret; + if (n < this.head.data.length) { + // `slice` is the same for buffers and strings. + ret = this.head.data.slice(0, n); + this.head.data = this.head.data.slice(n); + } else if (n === this.head.data.length) { + // First chunk is a perfect match. + ret = this.shift(); + } else { + // Result spans more than one buffer. + ret = hasStrings ? this._getString(n) : this._getBuffer(n); + } + return ret; + } + }, { + key: "first", + value: function first() { + return this.head.data; + } + + // Consumes a specified amount of characters from the buffered data. + }, { + key: "_getString", + value: function _getString(n) { + var p = this.head; + var c = 1; + var ret = p.data; + n -= ret.length; + while (p = p.next) { + var str = p.data; + var nb = n > str.length ? str.length : n; + if (nb === str.length) ret += str;else ret += str.slice(0, n); + n -= nb; + if (n === 0) { + if (nb === str.length) { + ++c; + if (p.next) this.head = p.next;else this.head = this.tail = null; + } else { + this.head = p; + p.data = str.slice(nb); + } + break; + } + ++c; + } + this.length -= c; + return ret; + } + + // Consumes a specified amount of bytes from the buffered data. + }, { + key: "_getBuffer", + value: function _getBuffer(n) { + var ret = Buffer.allocUnsafe(n); + var p = this.head; + var c = 1; + p.data.copy(ret); + n -= p.data.length; + while (p = p.next) { + var buf = p.data; + var nb = n > buf.length ? buf.length : n; + buf.copy(ret, ret.length - n, 0, nb); + n -= nb; + if (n === 0) { + if (nb === buf.length) { + ++c; + if (p.next) this.head = p.next;else this.head = this.tail = null; + } else { + this.head = p; + p.data = buf.slice(nb); + } + break; + } + ++c; + } + this.length -= c; + return ret; + } + + // Make sure the linked list only shows the minimal necessary information. + }, { + key: custom, + value: function value(_, options) { + return inspect(this, _objectSpread(_objectSpread({}, options), {}, { + // Only inspect one level. + depth: 0, + // It should not recurse. + customInspect: false + })); + } + }]); + return BufferList; +}(); + +/***/ }), + +/***/ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/destroy.js": +/*!***********************************************************************************************!*\ + !*** ./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/destroy.js ***! + \***********************************************************************************************/ +/***/ (function(module) { + +"use strict"; + + +// undocumented cb() API, needed for core, not for public API +function destroy(err, cb) { + var _this = this; + var readableDestroyed = this._readableState && this._readableState.destroyed; + var writableDestroyed = this._writableState && this._writableState.destroyed; + if (readableDestroyed || writableDestroyed) { + if (cb) { + cb(err); + } else if (err) { + if (!this._writableState) { + ({"env":{"NODE_ENV":"production"}}).nextTick(emitErrorNT, this, err); + } else if (!this._writableState.errorEmitted) { + this._writableState.errorEmitted = true; + ({"env":{"NODE_ENV":"production"}}).nextTick(emitErrorNT, this, err); + } + } + return this; + } + + // we set destroyed to true before firing error callbacks in order + // to make it re-entrance safe in case destroy() is called within callbacks + + if (this._readableState) { + this._readableState.destroyed = true; + } + + // if this is a duplex stream mark the writable part as destroyed as well + if (this._writableState) { + this._writableState.destroyed = true; + } + this._destroy(err || null, function (err) { + if (!cb && err) { + if (!_this._writableState) { + ({"env":{"NODE_ENV":"production"}}).nextTick(emitErrorAndCloseNT, _this, err); + } else if (!_this._writableState.errorEmitted) { + _this._writableState.errorEmitted = true; + ({"env":{"NODE_ENV":"production"}}).nextTick(emitErrorAndCloseNT, _this, err); + } else { + ({"env":{"NODE_ENV":"production"}}).nextTick(emitCloseNT, _this); + } + } else if (cb) { + ({"env":{"NODE_ENV":"production"}}).nextTick(emitCloseNT, _this); + cb(err); + } else { + ({"env":{"NODE_ENV":"production"}}).nextTick(emitCloseNT, _this); + } + }); + return this; +} +function emitErrorAndCloseNT(self, err) { + emitErrorNT(self, err); + emitCloseNT(self); } -function endReadable(stream) { - var state = stream._readableState; - debug('endReadable', state.endEmitted); - if (!state.endEmitted) { - state.ended = true; - ({"env":{"NODE_ENV":"production"}}).nextTick(endReadableNT, state, stream); +function emitCloseNT(self) { + if (self._writableState && !self._writableState.emitClose) return; + if (self._readableState && !self._readableState.emitClose) return; + self.emit('close'); +} +function undestroy() { + if (this._readableState) { + this._readableState.destroyed = false; + this._readableState.reading = false; + this._readableState.ended = false; + this._readableState.endEmitted = false; + } + if (this._writableState) { + this._writableState.destroyed = false; + this._writableState.ended = false; + this._writableState.ending = false; + this._writableState.finalCalled = false; + this._writableState.prefinished = false; + this._writableState.finished = false; + this._writableState.errorEmitted = false; } } -function endReadableNT(state, stream) { - debug('endReadableNT', state.endEmitted, state.length); +function emitErrorNT(self, err) { + self.emit('error', err); +} +function errorOrDestroy(stream, err) { + // We have tests that rely on errors being emitted + // in the same tick, so changing this is semver major. + // For now when you opt-in to autoDestroy we allow + // the error to be emitted nextTick. In a future + // semver major update we should change the default to this. - // Check that we didn't get one last unshift. - if (!state.endEmitted && state.length === 0) { - state.endEmitted = true; - stream.readable = false; - stream.emit('end'); - if (state.autoDestroy) { - // In case of duplex streams we need a way to detect - // if the writable side is ready for autoDestroy as well - var wState = stream._writableState; - if (!wState || wState.autoDestroy && wState.finished) { - stream.destroy(); - } - } - } + var rState = stream._readableState; + var wState = stream._writableState; + if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err); } -if (typeof Symbol === 'function') { - Readable.from = function (iterable, opts) { - if (from === undefined) { - from = __webpack_require__(/*! ./internal/streams/from */ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/from-browser.js"); +module.exports = { + destroy: destroy, + undestroy: undestroy, + errorOrDestroy: errorOrDestroy +}; + +/***/ }), + +/***/ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/end-of-stream.js": +/*!*****************************************************************************************************!*\ + !*** ./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/end-of-stream.js ***! + \*****************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; +// Ported from https://github.com/mafintosh/end-of-stream with +// permission from the author, Mathias Buus (@mafintosh). + + + +var ERR_STREAM_PREMATURE_CLOSE = (__webpack_require__(/*! ../../../errors */ "./node_modules/stream-http/node_modules/readable-stream/errors-browser.js").codes.ERR_STREAM_PREMATURE_CLOSE); +function once(callback) { + var called = false; + return function () { + if (called) return; + called = true; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; } - return from(Readable, iterable, opts); + callback.apply(this, args); }; } -function indexOf(xs, x) { - for (var i = 0, l = xs.length; i < l; i++) { - if (xs[i] === x) return i; +function noop() {} +function isRequest(stream) { + return stream.setHeader && typeof stream.abort === 'function'; +} +function eos(stream, opts, callback) { + if (typeof opts === 'function') return eos(stream, null, opts); + if (!opts) opts = {}; + callback = once(callback || noop); + var readable = opts.readable || opts.readable !== false && stream.readable; + var writable = opts.writable || opts.writable !== false && stream.writable; + var onlegacyfinish = function onlegacyfinish() { + if (!stream.writable) onfinish(); + }; + var writableEnded = stream._writableState && stream._writableState.finished; + var onfinish = function onfinish() { + writable = false; + writableEnded = true; + if (!readable) callback.call(stream); + }; + var readableEnded = stream._readableState && stream._readableState.endEmitted; + var onend = function onend() { + readable = false; + readableEnded = true; + if (!writable) callback.call(stream); + }; + var onerror = function onerror(err) { + callback.call(stream, err); + }; + var onclose = function onclose() { + var err; + if (readable && !readableEnded) { + if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); + return callback.call(stream, err); + } + if (writable && !writableEnded) { + if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); + return callback.call(stream, err); + } + }; + var onrequest = function onrequest() { + stream.req.on('finish', onfinish); + }; + if (isRequest(stream)) { + stream.on('complete', onfinish); + stream.on('abort', onclose); + if (stream.req) onrequest();else stream.on('request', onrequest); + } else if (writable && !stream._writableState) { + // legacy streams + stream.on('end', onlegacyfinish); + stream.on('close', onlegacyfinish); } - return -1; + stream.on('end', onend); + stream.on('finish', onfinish); + if (opts.error !== false) stream.on('error', onerror); + stream.on('close', onclose); + return function () { + stream.removeListener('complete', onfinish); + stream.removeListener('abort', onclose); + stream.removeListener('request', onrequest); + if (stream.req) stream.req.removeListener('finish', onfinish); + stream.removeListener('end', onlegacyfinish); + stream.removeListener('close', onlegacyfinish); + stream.removeListener('finish', onfinish); + stream.removeListener('end', onend); + stream.removeListener('error', onerror); + stream.removeListener('close', onclose); + }; } +module.exports = eos; /***/ }), -/***/ "./node_modules/stream-http/node_modules/readable-stream/lib/_stream_transform.js": -/*!****************************************************************************************!*\ - !*** ./node_modules/stream-http/node_modules/readable-stream/lib/_stream_transform.js ***! - \****************************************************************************************/ +/***/ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/from-browser.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/from-browser.js ***! + \****************************************************************************************************/ +/***/ (function(module) { + +module.exports = function () { + throw new Error('Readable.from is not available in the browser') +}; + + +/***/ }), + +/***/ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/pipeline.js": +/*!************************************************************************************************!*\ + !*** ./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/pipeline.js ***! + \************************************************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { "use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. +// Ported from https://github.com/mafintosh/pump with +// permission from the author, Mathias Buus (@mafintosh). -// a transform stream is a readable/writable stream where you do -// something with the data. Sometimes it's called a "filter", -// but that's not a great name for it, since that implies a thing where -// some bits pass through, and others are simply ignored. (That would -// be a valid example of a transform, of course.) -// -// While the output is causally related to the input, it's not a -// necessarily symmetric or synchronous transformation. For example, -// a zlib stream might take multiple plain-text writes(), and then -// emit a single compressed chunk some time in the future. -// -// Here's how this works: -// -// The Transform stream has all the aspects of the readable and writable -// stream classes. When you write(chunk), that calls _write(chunk,cb) -// internally, and returns false if there's a lot of pending writes -// buffered up. When you call read(), that calls _read(n) until -// there's enough pending readable data buffered up. -// -// In a transform stream, the written data is placed in a buffer. When -// _read(n) is called, it transforms the queued up data, calling the -// buffered _write cb's as it consumes chunks. If consuming a single -// written chunk would result in multiple output chunks, then the first -// outputted bit calls the readcb, and subsequent chunks just go into -// the read buffer, and will cause it to emit 'readable' if necessary. -// -// This way, back-pressure is actually determined by the reading side, -// since _read has to be called to start processing a new chunk. However, -// a pathological inflate type of transform can cause excessive buffering -// here. For example, imagine a stream where every byte of input is -// interpreted as an integer from 0-255, and then results in that many -// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in -// 1kb of data being output. In this case, you could write a very small -// amount of input, and end up with a very large amount of output. In -// such a pathological inflating mechanism, there'd be no way to tell -// the system to stop doing the transform. A single 4MB write could -// cause the system to run out of memory. -// -// However, even in such a pathological case, only a single written chunk -// would be consumed, and then the rest would wait (un-transformed) until -// the results of the previous transformed chunk were consumed. +var eos; +function once(callback) { + var called = false; + return function () { + if (called) return; + called = true; + callback.apply(void 0, arguments); + }; +} +var _require$codes = (__webpack_require__(/*! ../../../errors */ "./node_modules/stream-http/node_modules/readable-stream/errors-browser.js").codes), + ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; +function noop(err) { + // Rethrow the error if it exists to avoid swallowing it + if (err) throw err; +} +function isRequest(stream) { + return stream.setHeader && typeof stream.abort === 'function'; +} +function destroyer(stream, reading, writing, callback) { + callback = once(callback); + var closed = false; + stream.on('close', function () { + closed = true; + }); + if (eos === undefined) eos = __webpack_require__(/*! ./end-of-stream */ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); + eos(stream, { + readable: reading, + writable: writing + }, function (err) { + if (err) return callback(err); + closed = true; + callback(); + }); + var destroyed = false; + return function (err) { + if (closed) return; + if (destroyed) return; + destroyed = true; -module.exports = Transform; -var _require$codes = (__webpack_require__(/*! ../errors */ "./node_modules/stream-http/node_modules/readable-stream/errors-browser.js").codes), - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, - ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, - ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0; -var Duplex = __webpack_require__(/*! ./_stream_duplex */ "./node_modules/stream-http/node_modules/readable-stream/lib/_stream_duplex.js"); -__webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js")(Transform, Duplex); -function afterTransform(er, data) { - var ts = this._transformState; - ts.transforming = false; - var cb = ts.writecb; - if (cb === null) { - return this.emit('error', new ERR_MULTIPLE_CALLBACK()); + // request.destroy just do .end - .abort is what we want + if (isRequest(stream)) return stream.abort(); + if (typeof stream.destroy === 'function') return stream.destroy(); + callback(err || new ERR_STREAM_DESTROYED('pipe')); + }; +} +function call(fn) { + fn(); +} +function pipe(from, to) { + return from.pipe(to); +} +function popCallback(streams) { + if (!streams.length) return noop; + if (typeof streams[streams.length - 1] !== 'function') return noop; + return streams.pop(); +} +function pipeline() { + for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) { + streams[_key] = arguments[_key]; } - ts.writechunk = null; - ts.writecb = null; - if (data != null) - // single equals check for both `null` and `undefined` - this.push(data); - cb(er); - var rs = this._readableState; - rs.reading = false; - if (rs.needReadable || rs.length < rs.highWaterMark) { - this._read(rs.highWaterMark); + var callback = popCallback(streams); + if (Array.isArray(streams[0])) streams = streams[0]; + if (streams.length < 2) { + throw new ERR_MISSING_ARGS('streams'); } + var error; + var destroys = streams.map(function (stream, i) { + var reading = i < streams.length - 1; + var writing = i > 0; + return destroyer(stream, reading, writing, function (err) { + if (!error) error = err; + if (err) destroys.forEach(call); + if (reading) return; + destroys.forEach(call); + callback(error); + }); + }); + return streams.reduce(pipe); } -function Transform(options) { - if (!(this instanceof Transform)) return new Transform(options); - Duplex.call(this, options); - this._transformState = { - afterTransform: afterTransform.bind(this), - needTransform: false, - transforming: false, - writecb: null, - writechunk: null, - writeencoding: null - }; +module.exports = pipeline; - // start out asking for a readable event once data is transformed. - this._readableState.needReadable = true; +/***/ }), - // we have implemented the _read method, and done the other things - // that Readable wants before the first _read call, so unset the - // sync guard flag. - this._readableState.sync = false; - if (options) { - if (typeof options.transform === 'function') this._transform = options.transform; - if (typeof options.flush === 'function') this._flush = options.flush; - } +/***/ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/state.js": +/*!*********************************************************************************************!*\ + !*** ./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/state.js ***! + \*********************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - // When the writable side finishes, then flush out anything remaining. - this.on('prefinish', prefinish); +"use strict"; + + +var ERR_INVALID_OPT_VALUE = (__webpack_require__(/*! ../../../errors */ "./node_modules/stream-http/node_modules/readable-stream/errors-browser.js").codes.ERR_INVALID_OPT_VALUE); +function highWaterMarkFrom(options, isDuplex, duplexKey) { + return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; } -function prefinish() { - var _this = this; - if (typeof this._flush === 'function' && !this._readableState.destroyed) { - this._flush(function (er, data) { - done(_this, er, data); - }); - } else { - done(this, null, null); +function getHighWaterMark(state, options, duplexKey, isDuplex) { + var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); + if (hwm != null) { + if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { + var name = isDuplex ? duplexKey : 'highWaterMark'; + throw new ERR_INVALID_OPT_VALUE(name, hwm); + } + return Math.floor(hwm); } + + // Default value + return state.objectMode ? 16 : 16 * 1024; } -Transform.prototype.push = function (chunk, encoding) { - this._transformState.needTransform = false; - return Duplex.prototype.push.call(this, chunk, encoding); +module.exports = { + getHighWaterMark: getHighWaterMark }; -// This is the part where you do stuff! -// override this function in implementation classes. -// 'chunk' is an input chunk. -// -// Call `push(newChunk)` to pass along transformed output -// to the readable side. You may call 'push' zero or more times. -// -// Call `cb(err)` when you are done with this chunk. If you pass -// an error, then that'll put the hurt on the whole operation. If you -// never call cb(), then you'll never get another chunk. -Transform.prototype._transform = function (chunk, encoding, cb) { - cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()')); -}; -Transform.prototype._write = function (chunk, encoding, cb) { - var ts = this._transformState; - ts.writecb = cb; - ts.writechunk = chunk; - ts.writeencoding = encoding; - if (!ts.transforming) { - var rs = this._readableState; - if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); - } -}; +/***/ }), -// Doesn't matter what the args are here. -// _transform does all the work. -// That we got here means that the readable side wants more data. -Transform.prototype._read = function (n) { - var ts = this._transformState; - if (ts.writechunk !== null && !ts.transforming) { - ts.transforming = true; - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); - } else { - // mark that we need a transform, so that any data that comes in - // will get processed, now that we've asked for it. - ts.needTransform = true; - } -}; -Transform.prototype._destroy = function (err, cb) { - Duplex.prototype._destroy.call(this, err, function (err2) { - cb(err2); - }); -}; -function done(stream, er, data) { - if (er) return stream.emit('error', er); - if (data != null) - // single equals check for both `null` and `undefined` - stream.push(data); +/***/ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/stream-browser.js": +/*!******************************************************************************************************!*\ + !*** ./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/stream-browser.js ***! + \******************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +module.exports = __webpack_require__(/*! events */ "./node_modules/events/events.js").EventEmitter; - // TODO(BridgeAR): Write a test for these two error cases - // if there's nothing in the write buffer, then that means - // that nothing more will ever be provided - if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0(); - if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING(); - return stream.push(null); -} /***/ }), -/***/ "./node_modules/stream-http/node_modules/readable-stream/lib/_stream_writable.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/stream-http/node_modules/readable-stream/lib/_stream_writable.js ***! - \***************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +/***/ "./node_modules/stream-http/node_modules/readable-stream/readable-browser.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/stream-http/node_modules/readable-stream/readable-browser.js ***! + \***********************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ "./node_modules/stream-http/node_modules/readable-stream/lib/_stream_readable.js"); +exports.Stream = exports; +exports.Readable = exports; +exports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ "./node_modules/stream-http/node_modules/readable-stream/lib/_stream_writable.js"); +exports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ "./node_modules/stream-http/node_modules/readable-stream/lib/_stream_duplex.js"); +exports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ "./node_modules/stream-http/node_modules/readable-stream/lib/_stream_transform.js"); +exports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ "./node_modules/stream-http/node_modules/readable-stream/lib/_stream_passthrough.js"); +exports.finished = __webpack_require__(/*! ./lib/internal/streams/end-of-stream.js */ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); +exports.pipeline = __webpack_require__(/*! ./lib/internal/streams/pipeline.js */ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/pipeline.js"); + + +/***/ }), + +/***/ "./node_modules/string_decoder/lib/string_decoder.js": +/*!***********************************************************!*\ + !*** ./node_modules/string_decoder/lib/string_decoder.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; // Copyright Joyent, Inc. and other Node contributors. @@ -178366,1887 +176589,3787 @@ function done(stream, er, data) { // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. -// A bit simpler than readable streams. -// Implement an async ._write(chunk, encoding, cb), and it'll handle all -// the drain event emission and buffering. - - - -module.exports = Writable; - -/* */ -function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; - this.next = null; -} -// It seems a linked list but it is not -// there will be only 2 of these for each stream -function CorkedRequest(state) { - var _this = this; - this.next = null; - this.entry = null; - this.finish = function () { - onCorkedFinish(_this, state); - }; -} -/* */ /**/ -var Duplex; -/**/ -Writable.WritableState = WritableState; +var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer); +/**/ -/**/ -var internalUtil = { - deprecate: __webpack_require__(/*! util-deprecate */ "./node_modules/util-deprecate/browser.js") +var isEncoding = Buffer.isEncoding || function (encoding) { + encoding = '' + encoding; + switch (encoding && encoding.toLowerCase()) { + case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw': + return true; + default: + return false; + } }; -/**/ -/**/ -var Stream = __webpack_require__(/*! ./internal/streams/stream */ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/stream-browser.js"); -/**/ +function _normalizeEncoding(enc) { + if (!enc) return 'utf8'; + var retried; + while (true) { + switch (enc) { + case 'utf8': + case 'utf-8': + return 'utf8'; + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return 'utf16le'; + case 'latin1': + case 'binary': + return 'latin1'; + case 'base64': + case 'ascii': + case 'hex': + return enc; + default: + if (retried) return; // undefined + enc = ('' + enc).toLowerCase(); + retried = true; + } + } +}; -var Buffer = (__webpack_require__(/*! buffer */ "./node_modules/buffer/index.js").Buffer); -var OurUint8Array = (typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; -function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk); -} -function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +// Do not cache `Buffer.isEncoding` when checking encoding names as some +// modules monkey-patch it to support additional encodings +function normalizeEncoding(enc) { + var nenc = _normalizeEncoding(enc); + if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc); + return nenc || enc; } -var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/destroy.js"); -var _require = __webpack_require__(/*! ./internal/streams/state */ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/state.js"), - getHighWaterMark = _require.getHighWaterMark; -var _require$codes = (__webpack_require__(/*! ../errors */ "./node_modules/stream-http/node_modules/readable-stream/errors-browser.js").codes), - ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, - ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, - ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, - ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, - ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, - ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; -var errorOrDestroy = destroyImpl.errorOrDestroy; -__webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js")(Writable, Stream); -function nop() {} -function WritableState(options, stream, isDuplex) { - Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/stream-http/node_modules/readable-stream/lib/_stream_duplex.js"); - options = options || {}; - - // Duplex streams are both readable and writable, but share - // the same options object. - // However, some cases require setting options to different - // values for the readable and the writable sides of the duplex stream, - // e.g. options.readableObjectMode vs. options.writableObjectMode, etc. - if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; - - // object stream flag to indicate whether or not this stream - // contains buffers or objects. - this.objectMode = !!options.objectMode; - if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; - - // the point at which write() starts returning false - // Note: 0 is a valid value, means that we always return false if - // the entire buffer is not flushed immediately on write() - this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); - - // if _final has been called - this.finalCalled = false; - - // drain event flag. - this.needDrain = false; - // at the start of calling end() - this.ending = false; - // when end() has been called, and returned - this.ended = false; - // when 'finish' is emitted - this.finished = false; - - // has it been destroyed - this.destroyed = false; - - // should we decode strings into buffers before passing to _write? - // this is here so that some node-core streams can optimize string - // handling at a lower level. - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // not an actual buffer we keep track of, but a measurement - // of how much we're waiting to get pushed to some underlying - // socket or file. - this.length = 0; - - // a flag to see when we're in the middle of a write. - this.writing = false; - - // when true all writes will be buffered until .uncork() call - this.corked = 0; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // a flag to know if we're processing previously buffered items, which - // may call the _write() callback in the same tick, so that we don't - // end up in an overlapped onwrite situation. - this.bufferProcessing = false; - - // the callback that's passed to _write(chunk,cb) - this.onwrite = function (er) { - onwrite(stream, er); - }; - - // the callback that the user supplies to write(chunk,encoding,cb) - this.writecb = null; - - // the amount that is being written when _write is called. - this.writelen = 0; - this.bufferedRequest = null; - this.lastBufferedRequest = null; - - // number of pending user-supplied write callbacks - // this must be 0 before 'finish' can be emitted - this.pendingcb = 0; - - // emit prefinish if the only thing we're waiting for is _write cbs - // This is relevant for synchronous Transform streams - this.prefinished = false; - - // True if the error was already emitted and should not be thrown again - this.errorEmitted = false; - - // Should close be emitted on destroy. Defaults to true. - this.emitClose = options.emitClose !== false; - - // Should .destroy() be called after 'finish' (and potentially 'end') - this.autoDestroy = !!options.autoDestroy; - // count buffered requests - this.bufferedRequestCount = 0; - - // allocate the first CorkedRequest, there is always - // one allocated and free to use, and we maintain at most two - this.corkedRequestsFree = new CorkedRequest(this); -} -WritableState.prototype.getBuffer = function getBuffer() { - var current = this.bufferedRequest; - var out = []; - while (current) { - out.push(current); - current = current.next; +// StringDecoder provides an interface for efficiently splitting a series of +// buffers into a series of JS strings without breaking apart multi-byte +// characters. +exports.StringDecoder = StringDecoder; +function StringDecoder(encoding) { + this.encoding = normalizeEncoding(encoding); + var nb; + switch (this.encoding) { + case 'utf16le': + this.text = utf16Text; + this.end = utf16End; + nb = 4; + break; + case 'utf8': + this.fillLast = utf8FillLast; + nb = 4; + break; + case 'base64': + this.text = base64Text; + this.end = base64End; + nb = 3; + break; + default: + this.write = simpleWrite; + this.end = simpleEnd; + return; } - return out; -}; -(function () { - try { - Object.defineProperty(WritableState.prototype, 'buffer', { - get: internalUtil.deprecate(function writableStateBufferGetter() { - return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') - }); - } catch (_) {} -})(); - -// Test _writableState for inheritance to account for Duplex streams, -// whose prototype chain only points to Readable. -var realHasInstance; -if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { - realHasInstance = Function.prototype[Symbol.hasInstance]; - Object.defineProperty(Writable, Symbol.hasInstance, { - value: function value(object) { - if (realHasInstance.call(this, object)) return true; - if (this !== Writable) return false; - return object && object._writableState instanceof WritableState; - } - }); -} else { - realHasInstance = function realHasInstance(object) { - return object instanceof this; - }; + this.lastNeed = 0; + this.lastTotal = 0; + this.lastChar = Buffer.allocUnsafe(nb); } -function Writable(options) { - Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/stream-http/node_modules/readable-stream/lib/_stream_duplex.js"); - // Writable ctor is applied to Duplexes, too. - // `realHasInstance` is necessary because using plain `instanceof` - // would return false, as no `_writableState` property is attached. +StringDecoder.prototype.write = function (buf) { + if (buf.length === 0) return ''; + var r; + var i; + if (this.lastNeed) { + r = this.fillLast(buf); + if (r === undefined) return ''; + i = this.lastNeed; + this.lastNeed = 0; + } else { + i = 0; + } + if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i); + return r || ''; +}; - // Trying to use the custom `instanceof` for Writable here will also break the - // Node.js LazyTransform implementation, which has a non-trivial getter for - // `_writableState` that would lead to infinite recursion. +StringDecoder.prototype.end = utf8End; - // Checking for a Stream.Duplex instance is faster here instead of inside - // the WritableState constructor, at least with V8 6.5 - var isDuplex = this instanceof Duplex; - if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); - this._writableState = new WritableState(options, this, isDuplex); +// Returns only complete characters in a Buffer +StringDecoder.prototype.text = utf8Text; - // legacy. - this.writable = true; - if (options) { - if (typeof options.write === 'function') this._write = options.write; - if (typeof options.writev === 'function') this._writev = options.writev; - if (typeof options.destroy === 'function') this._destroy = options.destroy; - if (typeof options.final === 'function') this._final = options.final; +// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer +StringDecoder.prototype.fillLast = function (buf) { + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); } - Stream.call(this); -} - -// Otherwise people can pipe Writable streams, which is just wrong. -Writable.prototype.pipe = function () { - errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length); + this.lastNeed -= buf.length; }; -function writeAfterEnd(stream, cb) { - var er = new ERR_STREAM_WRITE_AFTER_END(); - // TODO: defer error events consistently everywhere, not just the cb - errorOrDestroy(stream, er); - ({"env":{"NODE_ENV":"production"}}).nextTick(cb, er); -} -// Checks that a user-supplied chunk is valid, especially for the particular -// mode the stream is in. Currently this means that `null` is never accepted -// and undefined/non-string values are only allowed in object mode. -function validChunk(stream, state, chunk, cb) { - var er; - if (chunk === null) { - er = new ERR_STREAM_NULL_VALUES(); - } else if (typeof chunk !== 'string' && !state.objectMode) { - er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk); - } - if (er) { - errorOrDestroy(stream, er); - ({"env":{"NODE_ENV":"production"}}).nextTick(cb, er); - return false; - } - return true; +// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a +// continuation byte. If an invalid byte is detected, -2 is returned. +function utf8CheckByte(byte) { + if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4; + return byte >> 6 === 0x02 ? -1 : -2; } -Writable.prototype.write = function (chunk, encoding, cb) { - var state = this._writableState; - var ret = false; - var isBuf = !state.objectMode && _isUint8Array(chunk); - if (isBuf && !Buffer.isBuffer(chunk)) { - chunk = _uint8ArrayToBuffer(chunk); - } - if (typeof encoding === 'function') { - cb = encoding; - encoding = null; + +// Checks at most 3 bytes at the end of a Buffer in order to detect an +// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4) +// needed to complete the UTF-8 character (if applicable) are returned. +function utf8CheckIncomplete(self, buf, i) { + var j = buf.length - 1; + if (j < i) return 0; + var nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) self.lastNeed = nb - 1; + return nb; } - if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; - if (typeof cb !== 'function') cb = nop; - if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { - state.pendingcb++; - ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); + if (--j < i || nb === -2) return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) self.lastNeed = nb - 2; + return nb; } - return ret; -}; -Writable.prototype.cork = function () { - this._writableState.corked++; -}; -Writable.prototype.uncork = function () { - var state = this._writableState; - if (state.corked) { - state.corked--; - if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); + if (--j < i || nb === -2) return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) { + if (nb === 2) nb = 0;else self.lastNeed = nb - 3; + } + return nb; } -}; -Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { - // node::ParseEncoding() requires lower case. - if (typeof encoding === 'string') encoding = encoding.toLowerCase(); - if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding); - this._writableState.defaultEncoding = encoding; - return this; -}; -Object.defineProperty(Writable.prototype, 'writableBuffer', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState && this._writableState.getBuffer(); + return 0; +} + +// Validates as many continuation bytes for a multi-byte UTF-8 character as +// needed or are available. If we see a non-continuation byte where we expect +// one, we "replace" the validated continuation bytes we've seen so far with +// a single UTF-8 replacement character ('\ufffd'), to match v8's UTF-8 decoding +// behavior. The continuation byte check is included three times in the case +// where all of the continuation bytes for a character exist in the same buffer. +// It is also done this way as a slight performance increase instead of using a +// loop. +function utf8CheckExtraBytes(self, buf, p) { + if ((buf[0] & 0xC0) !== 0x80) { + self.lastNeed = 0; + return '\ufffd'; } -}); -function decodeChunk(state, chunk, encoding) { - if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { - chunk = Buffer.from(chunk, encoding); + if (self.lastNeed > 1 && buf.length > 1) { + if ((buf[1] & 0xC0) !== 0x80) { + self.lastNeed = 1; + return '\ufffd'; + } + if (self.lastNeed > 2 && buf.length > 2) { + if ((buf[2] & 0xC0) !== 0x80) { + self.lastNeed = 2; + return '\ufffd'; + } + } } - return chunk; } -Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.highWaterMark; - } -}); -// if we're already writing something, then just put this -// in the queue, and wait our turn. Otherwise, call _write -// If we return false, then we need a drain event, so set that flag. -function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { - if (!isBuf) { - var newChunk = decodeChunk(state, chunk, encoding); - if (chunk !== newChunk) { - isBuf = true; - encoding = 'buffer'; - chunk = newChunk; - } +// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer. +function utf8FillLast(buf) { + var p = this.lastTotal - this.lastNeed; + var r = utf8CheckExtraBytes(this, buf, p); + if (r !== undefined) return r; + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, p, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); } - var len = state.objectMode ? 1 : chunk.length; - state.length += len; - var ret = state.length < state.highWaterMark; - // we must ensure that previous needDrain will not be reset to false. - if (!ret) state.needDrain = true; - if (state.writing || state.corked) { - var last = state.lastBufferedRequest; - state.lastBufferedRequest = { - chunk: chunk, - encoding: encoding, - isBuf: isBuf, - callback: cb, - next: null - }; - if (last) { - last.next = state.lastBufferedRequest; - } else { - state.bufferedRequest = state.lastBufferedRequest; + buf.copy(this.lastChar, p, 0, buf.length); + this.lastNeed -= buf.length; +} + +// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a +// partial character, the character's bytes are buffered until the required +// number of bytes are available. +function utf8Text(buf, i) { + var total = utf8CheckIncomplete(this, buf, i); + if (!this.lastNeed) return buf.toString('utf8', i); + this.lastTotal = total; + var end = buf.length - (total - this.lastNeed); + buf.copy(this.lastChar, 0, end); + return buf.toString('utf8', i, end); +} + +// For UTF-8, a replacement character is added when ending on a partial +// character. +function utf8End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) return r + '\ufffd'; + return r; +} + +// UTF-16LE typically needs two bytes per character, but even if we have an even +// number of bytes available, we need to check if we end on a leading/high +// surrogate. In that case, we need to wait for the next two bytes in order to +// decode the last character properly. +function utf16Text(buf, i) { + if ((buf.length - i) % 2 === 0) { + var r = buf.toString('utf16le', i); + if (r) { + var c = r.charCodeAt(r.length - 1); + if (c >= 0xD800 && c <= 0xDBFF) { + this.lastNeed = 2; + this.lastTotal = 4; + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; + return r.slice(0, -1); + } } - state.bufferedRequestCount += 1; - } else { - doWrite(stream, state, false, len, chunk, encoding, cb); + return r; } - return ret; + this.lastNeed = 1; + this.lastTotal = 2; + this.lastChar[0] = buf[buf.length - 1]; + return buf.toString('utf16le', i, buf.length - 1); } -function doWrite(stream, state, writev, len, chunk, encoding, cb) { - state.writelen = len; - state.writecb = cb; - state.writing = true; - state.sync = true; - if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); - state.sync = false; + +// For UTF-16LE we do not explicitly append special replacement characters if we +// end on a partial character, we simply let v8 handle that. +function utf16End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) { + var end = this.lastTotal - this.lastNeed; + return r + this.lastChar.toString('utf16le', 0, end); + } + return r; } -function onwriteError(stream, state, sync, er, cb) { - --state.pendingcb; - if (sync) { - // defer the callback if we are being called synchronously - // to avoid piling up things on the stack - ({"env":{"NODE_ENV":"production"}}).nextTick(cb, er); - // this can emit finish, and it will always happen - // after error - ({"env":{"NODE_ENV":"production"}}).nextTick(finishMaybe, stream, state); - stream._writableState.errorEmitted = true; - errorOrDestroy(stream, er); + +function base64Text(buf, i) { + var n = (buf.length - i) % 3; + if (n === 0) return buf.toString('base64', i); + this.lastNeed = 3 - n; + this.lastTotal = 3; + if (n === 1) { + this.lastChar[0] = buf[buf.length - 1]; } else { - // the caller expect this to happen before if - // it is async - cb(er); - stream._writableState.errorEmitted = true; - errorOrDestroy(stream, er); - // this can emit finish, but finish must - // always follow error - finishMaybe(stream, state); + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; } + return buf.toString('base64', i, buf.length - n); } -function onwriteStateUpdate(state) { - state.writing = false; - state.writecb = null; - state.length -= state.writelen; - state.writelen = 0; + +function base64End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed); + return r; } -function onwrite(stream, er) { - var state = stream._writableState; - var sync = state.sync; - var cb = state.writecb; - if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK(); - onwriteStateUpdate(state); - if (er) onwriteError(stream, state, sync, er, cb);else { - // Check if we're actually ready to finish, but don't emit yet - var finished = needFinish(state) || stream.destroyed; - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { - clearBuffer(stream, state); + +// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex) +function simpleWrite(buf) { + return buf.toString(this.encoding); +} + +function simpleEnd(buf) { + return buf && buf.length ? this.write(buf) : ''; +} + +/***/ }), + +/***/ "./node_modules/symbol-observable/lib/ponyfill.js": +/*!********************************************************!*\ + !*** ./node_modules/symbol-observable/lib/ponyfill.js ***! + \********************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = symbolObservablePonyfill; +function symbolObservablePonyfill(root) { + var result; + var _Symbol = root.Symbol; + + if (typeof _Symbol === 'function') { + if (_Symbol.observable) { + result = _Symbol.observable; + } else { + + // This just needs to be something that won't trample other user's Symbol.for use + // It also will guide people to the source of their issues, if this is problematic. + // META: It's a resource locator! + result = _Symbol['for']('https://github.com/benlesh/symbol-observable'); + try { + _Symbol.observable = result; + } catch (err) { + // Do nothing. In some environments, users have frozen `Symbol` for security reasons, + // if it is frozen assigning to it will throw. In this case, we don't care, because + // they will need to use the returned value from the ponyfill. + } + } + } else { + result = '@@observable'; + } + + return result; +}; + +/***/ }), + +/***/ "./node_modules/symbol-observable/ponyfill.js": +/*!****************************************************!*\ + !*** ./node_modules/symbol-observable/ponyfill.js ***! + \****************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +module.exports = __webpack_require__(/*! ./lib/ponyfill */ "./node_modules/symbol-observable/lib/ponyfill.js"); + + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/abci/v1beta1/abci.ts": +/*!******************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/abci/v1beta1/abci.ts ***! + \******************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; } - if (sync) { - ({"env":{"NODE_ENV":"production"}}).nextTick(afterWrite, stream, state, finished, cb); - } else { - afterWrite(stream, state, finished, cb); + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SearchBlocksResult = exports.SearchTxsResult = exports.TxMsgData = exports.MsgData = exports.SimulationResponse = exports.Result = exports.GasInfo = exports.Attribute = exports.StringEvent = exports.ABCIMessageLog = exports.TxResponse = void 0; +const any_1 = __webpack_require__(/*! ../../../../google/protobuf/any */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/any.ts"); +const types_1 = __webpack_require__(/*! ../../../../tendermint/abci/types */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/abci/types.ts"); +const block_1 = __webpack_require__(/*! ../../../../tendermint/types/block */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/block.ts"); +const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +function createBaseTxResponse() { + return { + height: helpers_1.Long.ZERO, + txhash: "", + codespace: "", + code: 0, + data: "", + rawLog: "", + logs: [], + info: "", + gasWanted: helpers_1.Long.ZERO, + gasUsed: helpers_1.Long.ZERO, + tx: undefined, + timestamp: "", + events: [] + }; +} +exports.TxResponse = { + encode(message, writer = _m0.Writer.create()) { + if (!message.height.isZero()) { + writer.uint32(8).int64(message.height); + } + if (message.txhash !== "") { + writer.uint32(18).string(message.txhash); + } + if (message.codespace !== "") { + writer.uint32(26).string(message.codespace); + } + if (message.code !== 0) { + writer.uint32(32).uint32(message.code); + } + if (message.data !== "") { + writer.uint32(42).string(message.data); + } + if (message.rawLog !== "") { + writer.uint32(50).string(message.rawLog); + } + for (const v of message.logs) { + exports.ABCIMessageLog.encode(v, writer.uint32(58).fork()).ldelim(); + } + if (message.info !== "") { + writer.uint32(66).string(message.info); + } + if (!message.gasWanted.isZero()) { + writer.uint32(72).int64(message.gasWanted); + } + if (!message.gasUsed.isZero()) { + writer.uint32(80).int64(message.gasUsed); + } + if (message.tx !== undefined) { + any_1.Any.encode(message.tx, writer.uint32(90).fork()).ldelim(); + } + if (message.timestamp !== "") { + writer.uint32(98).string(message.timestamp); + } + for (const v of message.events) { + types_1.Event.encode(v, writer.uint32(106).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTxResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.height = reader.int64(); + break; + case 2: + message.txhash = reader.string(); + break; + case 3: + message.codespace = reader.string(); + break; + case 4: + message.code = reader.uint32(); + break; + case 5: + message.data = reader.string(); + break; + case 6: + message.rawLog = reader.string(); + break; + case 7: + message.logs.push(exports.ABCIMessageLog.decode(reader, reader.uint32())); + break; + case 8: + message.info = reader.string(); + break; + case 9: + message.gasWanted = reader.int64(); + break; + case 10: + message.gasUsed = reader.int64(); + break; + case 11: + message.tx = any_1.Any.decode(reader, reader.uint32()); + break; + case 12: + message.timestamp = reader.string(); + break; + case 13: + message.events.push(types_1.Event.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b, _c, _d, _e, _f, _g, _h, _j; + const message = createBaseTxResponse(); + message.height = object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; + message.txhash = (_a = object.txhash) !== null && _a !== void 0 ? _a : ""; + message.codespace = (_b = object.codespace) !== null && _b !== void 0 ? _b : ""; + message.code = (_c = object.code) !== null && _c !== void 0 ? _c : 0; + message.data = (_d = object.data) !== null && _d !== void 0 ? _d : ""; + message.rawLog = (_e = object.rawLog) !== null && _e !== void 0 ? _e : ""; + message.logs = ((_f = object.logs) === null || _f === void 0 ? void 0 : _f.map(e => exports.ABCIMessageLog.fromPartial(e))) || []; + message.info = (_g = object.info) !== null && _g !== void 0 ? _g : ""; + message.gasWanted = object.gasWanted !== undefined && object.gasWanted !== null ? helpers_1.Long.fromValue(object.gasWanted) : helpers_1.Long.ZERO; + message.gasUsed = object.gasUsed !== undefined && object.gasUsed !== null ? helpers_1.Long.fromValue(object.gasUsed) : helpers_1.Long.ZERO; + message.tx = object.tx !== undefined && object.tx !== null ? any_1.Any.fromPartial(object.tx) : undefined; + message.timestamp = (_h = object.timestamp) !== null && _h !== void 0 ? _h : ""; + message.events = ((_j = object.events) === null || _j === void 0 ? void 0 : _j.map(e => types_1.Event.fromPartial(e))) || []; + return message; } - } +}; +function createBaseABCIMessageLog() { + return { + msgIndex: 0, + log: "", + events: [] + }; } -function afterWrite(stream, state, finished, cb) { - if (!finished) onwriteDrain(stream, state); - state.pendingcb--; - cb(); - finishMaybe(stream, state); +exports.ABCIMessageLog = { + encode(message, writer = _m0.Writer.create()) { + if (message.msgIndex !== 0) { + writer.uint32(8).uint32(message.msgIndex); + } + if (message.log !== "") { + writer.uint32(18).string(message.log); + } + for (const v of message.events) { + exports.StringEvent.encode(v, writer.uint32(26).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseABCIMessageLog(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.msgIndex = reader.uint32(); + break; + case 2: + message.log = reader.string(); + break; + case 3: + message.events.push(exports.StringEvent.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b, _c; + const message = createBaseABCIMessageLog(); + message.msgIndex = (_a = object.msgIndex) !== null && _a !== void 0 ? _a : 0; + message.log = (_b = object.log) !== null && _b !== void 0 ? _b : ""; + message.events = ((_c = object.events) === null || _c === void 0 ? void 0 : _c.map(e => exports.StringEvent.fromPartial(e))) || []; + return message; + } +}; +function createBaseStringEvent() { + return { + type: "", + attributes: [] + }; } - -// Must force callback to be called on nextTick, so that we don't -// emit 'drain' before the write() consumer gets the 'false' return -// value, and has a chance to attach a 'drain' listener. -function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { - state.needDrain = false; - stream.emit('drain'); - } +exports.StringEvent = { + encode(message, writer = _m0.Writer.create()) { + if (message.type !== "") { + writer.uint32(10).string(message.type); + } + for (const v of message.attributes) { + exports.Attribute.encode(v, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseStringEvent(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.type = reader.string(); + break; + case 2: + message.attributes.push(exports.Attribute.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b; + const message = createBaseStringEvent(); + message.type = (_a = object.type) !== null && _a !== void 0 ? _a : ""; + message.attributes = ((_b = object.attributes) === null || _b === void 0 ? void 0 : _b.map(e => exports.Attribute.fromPartial(e))) || []; + return message; + } +}; +function createBaseAttribute() { + return { + key: "", + value: "" + }; } - -// if there's something in the buffer waiting, then process it -function clearBuffer(stream, state) { - state.bufferProcessing = true; - var entry = state.bufferedRequest; - if (stream._writev && entry && entry.next) { - // Fast case, write everything using _writev() - var l = state.bufferedRequestCount; - var buffer = new Array(l); - var holder = state.corkedRequestsFree; - holder.entry = entry; - var count = 0; - var allBuffers = true; - while (entry) { - buffer[count] = entry; - if (!entry.isBuf) allBuffers = false; - entry = entry.next; - count += 1; +exports.Attribute = { + encode(message, writer = _m0.Writer.create()) { + if (message.key !== "") { + writer.uint32(10).string(message.key); + } + if (message.value !== "") { + writer.uint32(18).string(message.value); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAttribute(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.key = reader.string(); + break; + case 2: + message.value = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b; + const message = createBaseAttribute(); + message.key = (_a = object.key) !== null && _a !== void 0 ? _a : ""; + message.value = (_b = object.value) !== null && _b !== void 0 ? _b : ""; + return message; } - buffer.allBuffers = allBuffers; - doWrite(stream, state, true, state.length, buffer, '', holder.finish); - - // doWrite is almost always async, defer these to save a bit of time - // as the hot path ends with doWrite - state.pendingcb++; - state.lastBufferedRequest = null; - if (holder.next) { - state.corkedRequestsFree = holder.next; - holder.next = null; - } else { - state.corkedRequestsFree = new CorkedRequest(state); +}; +function createBaseGasInfo() { + return { + gasWanted: helpers_1.Long.UZERO, + gasUsed: helpers_1.Long.UZERO + }; +} +exports.GasInfo = { + encode(message, writer = _m0.Writer.create()) { + if (!message.gasWanted.isZero()) { + writer.uint32(8).uint64(message.gasWanted); + } + if (!message.gasUsed.isZero()) { + writer.uint32(16).uint64(message.gasUsed); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGasInfo(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.gasWanted = reader.uint64(); + break; + case 2: + message.gasUsed = reader.uint64(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + const message = createBaseGasInfo(); + message.gasWanted = object.gasWanted !== undefined && object.gasWanted !== null ? helpers_1.Long.fromValue(object.gasWanted) : helpers_1.Long.UZERO; + message.gasUsed = object.gasUsed !== undefined && object.gasUsed !== null ? helpers_1.Long.fromValue(object.gasUsed) : helpers_1.Long.UZERO; + return message; } - state.bufferedRequestCount = 0; - } else { - // Slow case, write chunks one-by-one - while (entry) { - var chunk = entry.chunk; - var encoding = entry.encoding; - var cb = entry.callback; - var len = state.objectMode ? 1 : chunk.length; - doWrite(stream, state, false, len, chunk, encoding, cb); - entry = entry.next; - state.bufferedRequestCount--; - // if we didn't call the onwrite immediately, then - // it means that we need to wait until it does. - // also, that means that the chunk and cb are currently - // being processed, so move the buffer counter past them. - if (state.writing) { - break; - } +}; +function createBaseResult() { + return { + data: new Uint8Array(), + log: "", + events: [], + msgResponses: [] + }; +} +exports.Result = { + encode(message, writer = _m0.Writer.create()) { + if (message.data.length !== 0) { + writer.uint32(10).bytes(message.data); + } + if (message.log !== "") { + writer.uint32(18).string(message.log); + } + for (const v of message.events) { + types_1.Event.encode(v, writer.uint32(26).fork()).ldelim(); + } + for (const v of message.msgResponses) { + any_1.Any.encode(v, writer.uint32(34).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseResult(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.data = reader.bytes(); + break; + case 2: + message.log = reader.string(); + break; + case 3: + message.events.push(types_1.Event.decode(reader, reader.uint32())); + break; + case 4: + message.msgResponses.push(any_1.Any.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b, _c, _d; + const message = createBaseResult(); + message.data = (_a = object.data) !== null && _a !== void 0 ? _a : new Uint8Array(); + message.log = (_b = object.log) !== null && _b !== void 0 ? _b : ""; + message.events = ((_c = object.events) === null || _c === void 0 ? void 0 : _c.map(e => types_1.Event.fromPartial(e))) || []; + message.msgResponses = ((_d = object.msgResponses) === null || _d === void 0 ? void 0 : _d.map(e => any_1.Any.fromPartial(e))) || []; + return message; } - if (entry === null) state.lastBufferedRequest = null; - } - state.bufferedRequest = entry; - state.bufferProcessing = false; +}; +function createBaseSimulationResponse() { + return { + gasInfo: undefined, + result: undefined + }; } -Writable.prototype._write = function (chunk, encoding, cb) { - cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()')); +exports.SimulationResponse = { + encode(message, writer = _m0.Writer.create()) { + if (message.gasInfo !== undefined) { + exports.GasInfo.encode(message.gasInfo, writer.uint32(10).fork()).ldelim(); + } + if (message.result !== undefined) { + exports.Result.encode(message.result, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSimulationResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.gasInfo = exports.GasInfo.decode(reader, reader.uint32()); + break; + case 2: + message.result = exports.Result.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + const message = createBaseSimulationResponse(); + message.gasInfo = object.gasInfo !== undefined && object.gasInfo !== null ? exports.GasInfo.fromPartial(object.gasInfo) : undefined; + message.result = object.result !== undefined && object.result !== null ? exports.Result.fromPartial(object.result) : undefined; + return message; + } }; -Writable.prototype._writev = null; -Writable.prototype.end = function (chunk, encoding, cb) { - var state = this._writableState; - if (typeof chunk === 'function') { - cb = chunk; - chunk = null; - encoding = null; - } else if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - - // .end() fully uncorks - if (state.corked) { - state.corked = 1; - this.uncork(); - } - - // ignore unnecessary end() calls. - if (!state.ending) endWritable(this, state, cb); - return this; +function createBaseMsgData() { + return { + msgType: "", + data: new Uint8Array() + }; +} +exports.MsgData = { + encode(message, writer = _m0.Writer.create()) { + if (message.msgType !== "") { + writer.uint32(10).string(message.msgType); + } + if (message.data.length !== 0) { + writer.uint32(18).bytes(message.data); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgData(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.msgType = reader.string(); + break; + case 2: + message.data = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b; + const message = createBaseMsgData(); + message.msgType = (_a = object.msgType) !== null && _a !== void 0 ? _a : ""; + message.data = (_b = object.data) !== null && _b !== void 0 ? _b : new Uint8Array(); + return message; + } }; -Object.defineProperty(Writable.prototype, 'writableLength', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.length; - } -}); -function needFinish(state) { - return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; +function createBaseTxMsgData() { + return { + data: [], + msgResponses: [] + }; } -function callFinal(stream, state) { - stream._final(function (err) { - state.pendingcb--; - if (err) { - errorOrDestroy(stream, err); +exports.TxMsgData = { + encode(message, writer = _m0.Writer.create()) { + for (const v of message.data) { + exports.MsgData.encode(v, writer.uint32(10).fork()).ldelim(); + } + for (const v of message.msgResponses) { + any_1.Any.encode(v, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTxMsgData(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.data.push(exports.MsgData.decode(reader, reader.uint32())); + break; + case 2: + message.msgResponses.push(any_1.Any.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b; + const message = createBaseTxMsgData(); + message.data = ((_a = object.data) === null || _a === void 0 ? void 0 : _a.map(e => exports.MsgData.fromPartial(e))) || []; + message.msgResponses = ((_b = object.msgResponses) === null || _b === void 0 ? void 0 : _b.map(e => any_1.Any.fromPartial(e))) || []; + return message; } - state.prefinished = true; - stream.emit('prefinish'); - finishMaybe(stream, state); - }); +}; +function createBaseSearchTxsResult() { + return { + totalCount: helpers_1.Long.UZERO, + count: helpers_1.Long.UZERO, + pageNumber: helpers_1.Long.UZERO, + pageTotal: helpers_1.Long.UZERO, + limit: helpers_1.Long.UZERO, + txs: [] + }; } -function prefinish(stream, state) { - if (!state.prefinished && !state.finalCalled) { - if (typeof stream._final === 'function' && !state.destroyed) { - state.pendingcb++; - state.finalCalled = true; - ({"env":{"NODE_ENV":"production"}}).nextTick(callFinal, stream, state); - } else { - state.prefinished = true; - stream.emit('prefinish'); +exports.SearchTxsResult = { + encode(message, writer = _m0.Writer.create()) { + if (!message.totalCount.isZero()) { + writer.uint32(8).uint64(message.totalCount); + } + if (!message.count.isZero()) { + writer.uint32(16).uint64(message.count); + } + if (!message.pageNumber.isZero()) { + writer.uint32(24).uint64(message.pageNumber); + } + if (!message.pageTotal.isZero()) { + writer.uint32(32).uint64(message.pageTotal); + } + if (!message.limit.isZero()) { + writer.uint32(40).uint64(message.limit); + } + for (const v of message.txs) { + exports.TxResponse.encode(v, writer.uint32(50).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSearchTxsResult(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.totalCount = reader.uint64(); + break; + case 2: + message.count = reader.uint64(); + break; + case 3: + message.pageNumber = reader.uint64(); + break; + case 4: + message.pageTotal = reader.uint64(); + break; + case 5: + message.limit = reader.uint64(); + break; + case 6: + message.txs.push(exports.TxResponse.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseSearchTxsResult(); + message.totalCount = object.totalCount !== undefined && object.totalCount !== null ? helpers_1.Long.fromValue(object.totalCount) : helpers_1.Long.UZERO; + message.count = object.count !== undefined && object.count !== null ? helpers_1.Long.fromValue(object.count) : helpers_1.Long.UZERO; + message.pageNumber = object.pageNumber !== undefined && object.pageNumber !== null ? helpers_1.Long.fromValue(object.pageNumber) : helpers_1.Long.UZERO; + message.pageTotal = object.pageTotal !== undefined && object.pageTotal !== null ? helpers_1.Long.fromValue(object.pageTotal) : helpers_1.Long.UZERO; + message.limit = object.limit !== undefined && object.limit !== null ? helpers_1.Long.fromValue(object.limit) : helpers_1.Long.UZERO; + message.txs = ((_a = object.txs) === null || _a === void 0 ? void 0 : _a.map(e => exports.TxResponse.fromPartial(e))) || []; + return message; } - } +}; +function createBaseSearchBlocksResult() { + return { + totalCount: helpers_1.Long.ZERO, + count: helpers_1.Long.ZERO, + pageNumber: helpers_1.Long.ZERO, + pageTotal: helpers_1.Long.ZERO, + limit: helpers_1.Long.ZERO, + blocks: [] + }; } -function finishMaybe(stream, state) { - var need = needFinish(state); - if (need) { - prefinish(stream, state); - if (state.pendingcb === 0) { - state.finished = true; - stream.emit('finish'); - if (state.autoDestroy) { - // In case of duplex streams we need a way to detect - // if the readable side is ready for autoDestroy as well - var rState = stream._readableState; - if (!rState || rState.autoDestroy && rState.endEmitted) { - stream.destroy(); +exports.SearchBlocksResult = { + encode(message, writer = _m0.Writer.create()) { + if (!message.totalCount.isZero()) { + writer.uint32(8).int64(message.totalCount); } - } + if (!message.count.isZero()) { + writer.uint32(16).int64(message.count); + } + if (!message.pageNumber.isZero()) { + writer.uint32(24).int64(message.pageNumber); + } + if (!message.pageTotal.isZero()) { + writer.uint32(32).int64(message.pageTotal); + } + if (!message.limit.isZero()) { + writer.uint32(40).int64(message.limit); + } + for (const v of message.blocks) { + block_1.Block.encode(v, writer.uint32(50).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSearchBlocksResult(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.totalCount = reader.int64(); + break; + case 2: + message.count = reader.int64(); + break; + case 3: + message.pageNumber = reader.int64(); + break; + case 4: + message.pageTotal = reader.int64(); + break; + case 5: + message.limit = reader.int64(); + break; + case 6: + message.blocks.push(block_1.Block.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseSearchBlocksResult(); + message.totalCount = object.totalCount !== undefined && object.totalCount !== null ? helpers_1.Long.fromValue(object.totalCount) : helpers_1.Long.ZERO; + message.count = object.count !== undefined && object.count !== null ? helpers_1.Long.fromValue(object.count) : helpers_1.Long.ZERO; + message.pageNumber = object.pageNumber !== undefined && object.pageNumber !== null ? helpers_1.Long.fromValue(object.pageNumber) : helpers_1.Long.ZERO; + message.pageTotal = object.pageTotal !== undefined && object.pageTotal !== null ? helpers_1.Long.fromValue(object.pageTotal) : helpers_1.Long.ZERO; + message.limit = object.limit !== undefined && object.limit !== null ? helpers_1.Long.fromValue(object.limit) : helpers_1.Long.ZERO; + message.blocks = ((_a = object.blocks) === null || _a === void 0 ? void 0 : _a.map(e => block_1.Block.fromPartial(e))) || []; + return message; + } +}; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJjaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZHlkeHByb3RvY29sL3Y0LXByb3RvL3NyYy9jb2RlZ2VuL2Nvc21vcy9iYXNlL2FiY2kvdjFiZXRhMS9hYmNpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseURBQWtFO0FBQ2xFLDZEQUF3RTtBQUN4RSw4REFBeUU7QUFDekUsaURBQXdEO0FBQ3hELHdEQUEwQztBQStUMUMsU0FBUyxvQkFBb0I7SUFDM0IsT0FBTztRQUNMLE1BQU0sRUFBRSxjQUFJLENBQUMsSUFBSTtRQUNqQixNQUFNLEVBQUUsRUFBRTtRQUNWLFNBQVMsRUFBRSxFQUFFO1FBQ2IsSUFBSSxFQUFFLENBQUM7UUFDUCxJQUFJLEVBQUUsRUFBRTtRQUNSLE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLEVBQUU7UUFDUixJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSxjQUFJLENBQUMsSUFBSTtRQUNwQixPQUFPLEVBQUUsY0FBSSxDQUFDLElBQUk7UUFDbEIsRUFBRSxFQUFFLFNBQVM7UUFDYixTQUFTLEVBQUUsRUFBRTtRQUNiLE1BQU0sRUFBRSxFQUFFO0tBQ1gsQ0FBQztBQUNKLENBQUM7QUFFWSxRQUFBLFVBQVUsR0FBRztJQUN4QixNQUFNLENBQUMsT0FBbUIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNsRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDeEM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMxQztRQUVELElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUU7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzdDO1FBRUQsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtZQUN0QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDeEM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFO1lBQ3ZCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QztRQUVELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUU7WUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzFDO1FBRUQsS0FBSyxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQzVCLHNCQUFjLENBQUMsTUFBTSxDQUFDLENBQUUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDOUQ7UUFFRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFO1lBQ3ZCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQy9CLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM1QztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQzdCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMxQztRQUVELElBQUksT0FBTyxDQUFDLEVBQUUsS0FBSyxTQUFTLEVBQUU7WUFDNUIsU0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMzRDtRQUVELElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUU7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzdDO1FBRUQsS0FBSyxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQzlCLGFBQUssQ0FBQyxNQUFNLENBQUMsQ0FBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN0RDtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FB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LENBQUMsSUFBSTtRQUNoQixNQUFNLEVBQUUsRUFBRTtLQUNYLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxrQkFBa0IsR0FBRztJQUNoQyxNQUFNLENBQUMsT0FBMkIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUMxRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNoQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDNUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMzQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNoQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDN0M7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMvQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDNUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMzQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEM7UUFFRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDOUIsYUFBSyxDQUFDLE1BQU0sQ0FBQyxDQUFFLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxF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 + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/query/v1beta1/pagination.ts": +/*!*************************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/query/v1beta1/pagination.ts ***! + \*************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.PageResponse = exports.PageRequest = void 0; +const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +function createBasePageRequest() { + return { + key: new Uint8Array(), + offset: helpers_1.Long.UZERO, + limit: helpers_1.Long.UZERO, + countTotal: false, + reverse: false + }; +} +exports.PageRequest = { + encode(message, writer = _m0.Writer.create()) { + if (message.key.length !== 0) { + writer.uint32(10).bytes(message.key); + } + if (!message.offset.isZero()) { + writer.uint32(16).uint64(message.offset); + } + if (!message.limit.isZero()) { + writer.uint32(24).uint64(message.limit); + } + if (message.countTotal === true) { + writer.uint32(32).bool(message.countTotal); + } + if (message.reverse === true) { + writer.uint32(40).bool(message.reverse); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBasePageRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.key = reader.bytes(); + break; + case 2: + message.offset = reader.uint64(); + break; + case 3: + message.limit = reader.uint64(); + break; + case 4: + message.countTotal = reader.bool(); + break; + case 5: + message.reverse = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b, _c; + const message = createBasePageRequest(); + message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array(); + message.offset = object.offset !== undefined && object.offset !== null ? helpers_1.Long.fromValue(object.offset) : helpers_1.Long.UZERO; + message.limit = object.limit !== undefined && object.limit !== null ? helpers_1.Long.fromValue(object.limit) : helpers_1.Long.UZERO; + message.countTotal = (_b = object.countTotal) !== null && _b !== void 0 ? _b : false; + message.reverse = (_c = object.reverse) !== null && _c !== void 0 ? _c : false; + return message; } - } - return need; -} -function endWritable(stream, state, cb) { - state.ending = true; - finishMaybe(stream, state); - if (cb) { - if (state.finished) ({"env":{"NODE_ENV":"production"}}).nextTick(cb);else stream.once('finish', cb); - } - state.ended = true; - stream.writable = false; -} -function onCorkedFinish(corkReq, state, err) { - var entry = corkReq.entry; - corkReq.entry = null; - while (entry) { - var cb = entry.callback; - state.pendingcb--; - cb(err); - entry = entry.next; - } - - // reuse the free corkReq. - state.corkedRequestsFree.next = corkReq; +}; +function createBasePageResponse() { + return { + nextKey: new Uint8Array(), + total: helpers_1.Long.UZERO + }; } -Object.defineProperty(Writable.prototype, 'destroyed', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - if (this._writableState === undefined) { - return false; - } - return this._writableState.destroyed; - }, - set: function set(value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._writableState) { - return; +exports.PageResponse = { + encode(message, writer = _m0.Writer.create()) { + if (message.nextKey.length !== 0) { + writer.uint32(10).bytes(message.nextKey); + } + if (!message.total.isZero()) { + writer.uint32(16).uint64(message.total); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBasePageResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.nextKey = reader.bytes(); + break; + case 2: + message.total = reader.uint64(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBasePageResponse(); + message.nextKey = (_a = object.nextKey) !== null && _a !== void 0 ? _a : new Uint8Array(); + message.total = object.total !== undefined && object.total !== null ? helpers_1.Long.fromValue(object.total) : helpers_1.Long.UZERO; + return message; } - - // backward compatibility, the user is explicitly - // managing destroyed - this._writableState.destroyed = value; - } -}); -Writable.prototype.destroy = destroyImpl.destroy; -Writable.prototype._undestroy = destroyImpl.undestroy; -Writable.prototype._destroy = function (err, cb) { - cb(err); }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZHlkeHByb3RvY29sL3Y0LXByb3RvL3NyYy9jb2RlZ2VuL2Nvc21vcy9iYXNlL3F1ZXJ5L3YxYmV0YTEvcGFnaW5hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUF3RDtBQUN4RCx3REFBMEM7QUF1RzFDLFNBQVMscUJBQXFCO0lBQzVCLE9BQU87UUFDTCxHQUFHLEVBQUUsSUFBSSxVQUFVLEVBQUU7UUFDckIsTUFBTSxFQUFFLGNBQUksQ0FBQyxLQUFLO1FBQ2xCLEtBQUssRUFBRSxjQUFJLENBQUMsS0FBSztRQUNqQixVQUFVLEVBQUUsS0FBSztRQUNqQixPQUFPLEVBQUUsS0FBSztLQUNmLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxXQUFXLEdBQUc7SUFDekIsTUFBTSxDQUFDLE9BQW9CLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDbkUsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3RDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFD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 /***/ }), -/***/ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/async_iterator.js": -/*!******************************************************************************************************!*\ - !*** ./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/async_iterator.js ***! - \******************************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/v1beta1/coin.ts": +/*!*************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/v1beta1/coin.ts ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; - -var _Object$setPrototypeO; -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } -function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } -var finished = __webpack_require__(/*! ./end-of-stream */ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); -var kLastResolve = Symbol('lastResolve'); -var kLastReject = Symbol('lastReject'); -var kError = Symbol('error'); -var kEnded = Symbol('ended'); -var kLastPromise = Symbol('lastPromise'); -var kHandlePromise = Symbol('handlePromise'); -var kStream = Symbol('stream'); -function createIterResult(value, done) { - return { - value: value, - done: done - }; -} -function readAndResolve(iter) { - var resolve = iter[kLastResolve]; - if (resolve !== null) { - var data = iter[kStream].read(); - // we defer if data is null - // we can be expecting either 'end' or - // 'error' - if (data !== null) { - iter[kLastPromise] = null; - iter[kLastResolve] = null; - iter[kLastReject] = null; - resolve(createIterResult(data, false)); +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; } - } -} -function onReadable(iter) { - // we wait for the next tick, because it might - // emit an error with process.nextTick - ({"env":{"NODE_ENV":"production"}}).nextTick(readAndResolve, iter); -} -function wrapForNext(lastPromise, iter) { - return function (resolve, reject) { - lastPromise.then(function () { - if (iter[kEnded]) { - resolve(createIterResult(undefined, true)); - return; - } - iter[kHandlePromise](resolve, reject); - }, reject); - }; + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.DecProto = exports.IntProto = exports.DecCoin = exports.Coin = void 0; +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +function createBaseCoin() { + return { + denom: "", + amount: "" + }; } -var AsyncIteratorPrototype = Object.getPrototypeOf(function () {}); -var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = { - get stream() { - return this[kStream]; - }, - next: function next() { - var _this = this; - // if we have detected an error in the meanwhile - // reject straight away - var error = this[kError]; - if (error !== null) { - return Promise.reject(error); - } - if (this[kEnded]) { - return Promise.resolve(createIterResult(undefined, true)); - } - if (this[kStream].destroyed) { - // We need to defer via nextTick because if .destroy(err) is - // called, the error will be emitted via nextTick, and - // we cannot guarantee that there is no error lingering around - // waiting to be emitted. - return new Promise(function (resolve, reject) { - ({"env":{"NODE_ENV":"production"}}).nextTick(function () { - if (_this[kError]) { - reject(_this[kError]); - } else { - resolve(createIterResult(undefined, true)); - } - }); - }); +exports.Coin = { + encode(message, writer = _m0.Writer.create()) { + if (message.denom !== "") { + writer.uint32(10).string(message.denom); + } + if (message.amount !== "") { + writer.uint32(18).string(message.amount); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCoin(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.denom = reader.string(); + break; + case 2: + message.amount = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b; + const message = createBaseCoin(); + message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : ""; + message.amount = (_b = object.amount) !== null && _b !== void 0 ? _b : ""; + return message; } - - // if we have multiple next() calls - // we will wait for the previous Promise to finish - // this logic is optimized to support for await loops, - // where next() is only called once at a time - var lastPromise = this[kLastPromise]; - var promise; - if (lastPromise) { - promise = new Promise(wrapForNext(lastPromise, this)); - } else { - // fast path needed to support multiple this.push() - // without triggering the next() queue - var data = this[kStream].read(); - if (data !== null) { - return Promise.resolve(createIterResult(data, false)); - } - promise = new Promise(this[kHandlePromise]); +}; +function createBaseDecCoin() { + return { + denom: "", + amount: "" + }; +} +exports.DecCoin = { + encode(message, writer = _m0.Writer.create()) { + if (message.denom !== "") { + writer.uint32(10).string(message.denom); + } + if (message.amount !== "") { + writer.uint32(18).string(message.amount); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDecCoin(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.denom = reader.string(); + break; + case 2: + message.amount = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b; + const message = createBaseDecCoin(); + message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : ""; + message.amount = (_b = object.amount) !== null && _b !== void 0 ? _b : ""; + return message; } - this[kLastPromise] = promise; - return promise; - } -}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () { - return this; -}), _defineProperty(_Object$setPrototypeO, "return", function _return() { - var _this2 = this; - // destroy(err, cb) is a private API - // we can guarantee we have that here, because we control the - // Readable class this is attached to - return new Promise(function (resolve, reject) { - _this2[kStream].destroy(null, function (err) { - if (err) { - reject(err); - return; - } - resolve(createIterResult(undefined, true)); - }); - }); -}), _Object$setPrototypeO), AsyncIteratorPrototype); -var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) { - var _Object$create; - var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, { - value: stream, - writable: true - }), _defineProperty(_Object$create, kLastResolve, { - value: null, - writable: true - }), _defineProperty(_Object$create, kLastReject, { - value: null, - writable: true - }), _defineProperty(_Object$create, kError, { - value: null, - writable: true - }), _defineProperty(_Object$create, kEnded, { - value: stream._readableState.endEmitted, - writable: true - }), _defineProperty(_Object$create, kHandlePromise, { - value: function value(resolve, reject) { - var data = iterator[kStream].read(); - if (data) { - iterator[kLastPromise] = null; - iterator[kLastResolve] = null; - iterator[kLastReject] = null; - resolve(createIterResult(data, false)); - } else { - iterator[kLastResolve] = resolve; - iterator[kLastReject] = reject; - } +}; +function createBaseIntProto() { + return { + int: "" + }; +} +exports.IntProto = { + encode(message, writer = _m0.Writer.create()) { + if (message.int !== "") { + writer.uint32(10).string(message.int); + } + return writer; }, - writable: true - }), _Object$create)); - iterator[kLastPromise] = null; - finished(stream, function (err) { - if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') { - var reject = iterator[kLastReject]; - // reject if we are waiting for data in the Promise - // returned by next() and store the error - if (reject !== null) { - iterator[kLastPromise] = null; - iterator[kLastResolve] = null; - iterator[kLastReject] = null; - reject(err); - } - iterator[kError] = err; - return; + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseIntProto(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.int = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseIntProto(); + message.int = (_a = object.int) !== null && _a !== void 0 ? _a : ""; + return message; } - var resolve = iterator[kLastResolve]; - if (resolve !== null) { - iterator[kLastPromise] = null; - iterator[kLastResolve] = null; - iterator[kLastReject] = null; - resolve(createIterResult(undefined, true)); +}; +function createBaseDecProto() { + return { + dec: "" + }; +} +exports.DecProto = { + encode(message, writer = _m0.Writer.create()) { + if (message.dec !== "") { + writer.uint32(10).string(message.dec); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDecProto(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.dec = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseDecProto(); + message.dec = (_a = object.dec) !== null && _a !== void 0 ? _a : ""; + return message; } - iterator[kEnded] = true; - }); - stream.on('readable', onReadable.bind(null, iterator)); - return iterator; }; -module.exports = createReadableStreamAsyncIterator; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZHlkeHByb3RvY29sL3Y0LXByb3RvL3NyYy9jb2RlZ2VuL2Nvc21vcy9iYXNlL3YxYmV0YTEvY29pbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdEQUEwQztBQStFMUMsU0FBUyxjQUFjO0lBQ3JCLE9BQU87UUFDTCxLQUFLLEVBQUUsRUFBRTtRQUNULE1BQU0sRUFBRSxFQUFFO0tBQ1gsQ0FBQztBQUNKLENBQUM7QUFFWSxRQUFBLElBQUksR0FBRztJQUNsQixNQUFNLENBQUMsT0FBYSxFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQzVELElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxFQUFFLEVBQUU7WUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRTtZQUN6QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDMUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENB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 /***/ }), -/***/ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/buffer_list.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/buffer_list.js ***! - \***************************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/gov.ts": +/*!******************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/gov.ts ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; - -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } -function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } -var _require = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js"), - Buffer = _require.Buffer; -var _require2 = __webpack_require__(/*! util */ "?0cc0"), - inspect = _require2.inspect; -var custom = inspect && inspect.custom || 'inspect'; -function copyBuffer(src, target, offset) { - Buffer.prototype.copy.call(src, target, offset); +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Params = exports.TallyParams = exports.VotingParams = exports.DepositParams = exports.Vote = exports.TallyResult = exports.Proposal = exports.Deposit = exports.WeightedVoteOption = exports.proposalStatusToJSON = exports.proposalStatusFromJSON = exports.ProposalStatusSDKType = exports.ProposalStatus = exports.voteOptionToJSON = exports.voteOptionFromJSON = exports.VoteOptionSDKType = exports.VoteOption = void 0; +const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/v1beta1/coin.ts"); +const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/any.ts"); +const timestamp_1 = __webpack_require__(/*! ../../../google/protobuf/timestamp */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/timestamp.ts"); +const duration_1 = __webpack_require__(/*! ../../../google/protobuf/duration */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/duration.ts"); +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); +/** VoteOption enumerates the valid vote options for a given governance proposal. */ +var VoteOption; +(function (VoteOption) { + /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */ + VoteOption[VoteOption["VOTE_OPTION_UNSPECIFIED"] = 0] = "VOTE_OPTION_UNSPECIFIED"; + /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */ + VoteOption[VoteOption["VOTE_OPTION_YES"] = 1] = "VOTE_OPTION_YES"; + /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */ + VoteOption[VoteOption["VOTE_OPTION_ABSTAIN"] = 2] = "VOTE_OPTION_ABSTAIN"; + /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */ + VoteOption[VoteOption["VOTE_OPTION_NO"] = 3] = "VOTE_OPTION_NO"; + /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */ + VoteOption[VoteOption["VOTE_OPTION_NO_WITH_VETO"] = 4] = "VOTE_OPTION_NO_WITH_VETO"; + VoteOption[VoteOption["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(VoteOption = exports.VoteOption || (exports.VoteOption = {})); +exports.VoteOptionSDKType = VoteOption; +function voteOptionFromJSON(object) { + switch (object) { + case 0: + case "VOTE_OPTION_UNSPECIFIED": + return VoteOption.VOTE_OPTION_UNSPECIFIED; + case 1: + case "VOTE_OPTION_YES": + return VoteOption.VOTE_OPTION_YES; + case 2: + case "VOTE_OPTION_ABSTAIN": + return VoteOption.VOTE_OPTION_ABSTAIN; + case 3: + case "VOTE_OPTION_NO": + return VoteOption.VOTE_OPTION_NO; + case 4: + case "VOTE_OPTION_NO_WITH_VETO": + return VoteOption.VOTE_OPTION_NO_WITH_VETO; + case -1: + case "UNRECOGNIZED": + default: + return VoteOption.UNRECOGNIZED; + } } -module.exports = /*#__PURE__*/function () { - function BufferList() { - _classCallCheck(this, BufferList); - this.head = null; - this.tail = null; - this.length = 0; - } - _createClass(BufferList, [{ - key: "push", - value: function push(v) { - var entry = { - data: v, - next: null - }; - if (this.length > 0) this.tail.next = entry;else this.head = entry; - this.tail = entry; - ++this.length; +exports.voteOptionFromJSON = voteOptionFromJSON; +function voteOptionToJSON(object) { + switch (object) { + case VoteOption.VOTE_OPTION_UNSPECIFIED: + return "VOTE_OPTION_UNSPECIFIED"; + case VoteOption.VOTE_OPTION_YES: + return "VOTE_OPTION_YES"; + case VoteOption.VOTE_OPTION_ABSTAIN: + return "VOTE_OPTION_ABSTAIN"; + case VoteOption.VOTE_OPTION_NO: + return "VOTE_OPTION_NO"; + case VoteOption.VOTE_OPTION_NO_WITH_VETO: + return "VOTE_OPTION_NO_WITH_VETO"; + case VoteOption.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; } - }, { - key: "unshift", - value: function unshift(v) { - var entry = { - data: v, - next: this.head - }; - if (this.length === 0) this.tail = entry; - this.head = entry; - ++this.length; +} +exports.voteOptionToJSON = voteOptionToJSON; +/** ProposalStatus enumerates the valid statuses of a proposal. */ +var ProposalStatus; +(function (ProposalStatus) { + /** PROPOSAL_STATUS_UNSPECIFIED - PROPOSAL_STATUS_UNSPECIFIED defines the default proposal status. */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_UNSPECIFIED"] = 0] = "PROPOSAL_STATUS_UNSPECIFIED"; + /** + * PROPOSAL_STATUS_DEPOSIT_PERIOD - PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit + * period. + */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_DEPOSIT_PERIOD"] = 1] = "PROPOSAL_STATUS_DEPOSIT_PERIOD"; + /** + * PROPOSAL_STATUS_VOTING_PERIOD - PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting + * period. + */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_VOTING_PERIOD"] = 2] = "PROPOSAL_STATUS_VOTING_PERIOD"; + /** + * PROPOSAL_STATUS_PASSED - PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has + * passed. + */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_PASSED"] = 3] = "PROPOSAL_STATUS_PASSED"; + /** + * PROPOSAL_STATUS_REJECTED - PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has + * been rejected. + */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_REJECTED"] = 4] = "PROPOSAL_STATUS_REJECTED"; + /** + * PROPOSAL_STATUS_FAILED - PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has + * failed. + */ + ProposalStatus[ProposalStatus["PROPOSAL_STATUS_FAILED"] = 5] = "PROPOSAL_STATUS_FAILED"; + ProposalStatus[ProposalStatus["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(ProposalStatus = exports.ProposalStatus || (exports.ProposalStatus = {})); +exports.ProposalStatusSDKType = ProposalStatus; +function proposalStatusFromJSON(object) { + switch (object) { + case 0: + case "PROPOSAL_STATUS_UNSPECIFIED": + return ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED; + case 1: + case "PROPOSAL_STATUS_DEPOSIT_PERIOD": + return ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD; + case 2: + case "PROPOSAL_STATUS_VOTING_PERIOD": + return ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD; + case 3: + case "PROPOSAL_STATUS_PASSED": + return ProposalStatus.PROPOSAL_STATUS_PASSED; + case 4: + case "PROPOSAL_STATUS_REJECTED": + return ProposalStatus.PROPOSAL_STATUS_REJECTED; + case 5: + case "PROPOSAL_STATUS_FAILED": + return ProposalStatus.PROPOSAL_STATUS_FAILED; + case -1: + case "UNRECOGNIZED": + default: + return ProposalStatus.UNRECOGNIZED; } - }, { - key: "shift", - value: function shift() { - if (this.length === 0) return; - var ret = this.head.data; - if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; - --this.length; - return ret; +} +exports.proposalStatusFromJSON = proposalStatusFromJSON; +function proposalStatusToJSON(object) { + switch (object) { + case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED: + return "PROPOSAL_STATUS_UNSPECIFIED"; + case ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD: + return "PROPOSAL_STATUS_DEPOSIT_PERIOD"; + case ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD: + return "PROPOSAL_STATUS_VOTING_PERIOD"; + case ProposalStatus.PROPOSAL_STATUS_PASSED: + return "PROPOSAL_STATUS_PASSED"; + case ProposalStatus.PROPOSAL_STATUS_REJECTED: + return "PROPOSAL_STATUS_REJECTED"; + case ProposalStatus.PROPOSAL_STATUS_FAILED: + return "PROPOSAL_STATUS_FAILED"; + case ProposalStatus.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; } - }, { - key: "clear", - value: function clear() { - this.head = this.tail = null; - this.length = 0; +} +exports.proposalStatusToJSON = proposalStatusToJSON; +function createBaseWeightedVoteOption() { + return { + option: 0, + weight: "" + }; +} +exports.WeightedVoteOption = { + encode(message, writer = _m0.Writer.create()) { + if (message.option !== 0) { + writer.uint32(8).int32(message.option); + } + if (message.weight !== "") { + writer.uint32(18).string(message.weight); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseWeightedVoteOption(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.option = reader.int32(); + break; + case 2: + message.weight = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b; + const message = createBaseWeightedVoteOption(); + message.option = (_a = object.option) !== null && _a !== void 0 ? _a : 0; + message.weight = (_b = object.weight) !== null && _b !== void 0 ? _b : ""; + return message; } - }, { - key: "join", - value: function join(s) { - if (this.length === 0) return ''; - var p = this.head; - var ret = '' + p.data; - while (p = p.next) ret += s + p.data; - return ret; +}; +function createBaseDeposit() { + return { + proposalId: helpers_1.Long.UZERO, + depositor: "", + amount: [] + }; +} +exports.Deposit = { + encode(message, writer = _m0.Writer.create()) { + if (!message.proposalId.isZero()) { + writer.uint32(8).uint64(message.proposalId); + } + if (message.depositor !== "") { + writer.uint32(18).string(message.depositor); + } + for (const v of message.amount) { + coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeposit(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.proposalId = reader.uint64(); + break; + case 2: + message.depositor = reader.string(); + break; + case 3: + message.amount.push(coin_1.Coin.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b; + const message = createBaseDeposit(); + message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? helpers_1.Long.fromValue(object.proposalId) : helpers_1.Long.UZERO; + message.depositor = (_a = object.depositor) !== null && _a !== void 0 ? _a : ""; + message.amount = ((_b = object.amount) === null || _b === void 0 ? void 0 : _b.map(e => coin_1.Coin.fromPartial(e))) || []; + return message; } - }, { - key: "concat", - value: function concat(n) { - if (this.length === 0) return Buffer.alloc(0); - var ret = Buffer.allocUnsafe(n >>> 0); - var p = this.head; - var i = 0; - while (p) { - copyBuffer(p.data, ret, i); - i += p.data.length; - p = p.next; - } - return ret; +}; +function createBaseProposal() { + return { + id: helpers_1.Long.UZERO, + messages: [], + status: 0, + finalTallyResult: undefined, + submitTime: undefined, + depositEndTime: undefined, + totalDeposit: [], + votingStartTime: undefined, + votingEndTime: undefined, + metadata: "", + title: "", + summary: "", + proposer: "", + expedited: false, + failedReason: "" + }; +} +exports.Proposal = { + encode(message, writer = _m0.Writer.create()) { + if (!message.id.isZero()) { + writer.uint32(8).uint64(message.id); + } + for (const v of message.messages) { + any_1.Any.encode(v, writer.uint32(18).fork()).ldelim(); + } + if (message.status !== 0) { + writer.uint32(24).int32(message.status); + } + if (message.finalTallyResult !== undefined) { + exports.TallyResult.encode(message.finalTallyResult, writer.uint32(34).fork()).ldelim(); + } + if (message.submitTime !== undefined) { + timestamp_1.Timestamp.encode((0, helpers_1.toTimestamp)(message.submitTime), writer.uint32(42).fork()).ldelim(); + } + if (message.depositEndTime !== undefined) { + timestamp_1.Timestamp.encode((0, helpers_1.toTimestamp)(message.depositEndTime), writer.uint32(50).fork()).ldelim(); + } + for (const v of message.totalDeposit) { + coin_1.Coin.encode(v, writer.uint32(58).fork()).ldelim(); + } + if (message.votingStartTime !== undefined) { + timestamp_1.Timestamp.encode((0, helpers_1.toTimestamp)(message.votingStartTime), writer.uint32(66).fork()).ldelim(); + } + if (message.votingEndTime !== undefined) { + timestamp_1.Timestamp.encode((0, helpers_1.toTimestamp)(message.votingEndTime), writer.uint32(74).fork()).ldelim(); + } + if (message.metadata !== "") { + writer.uint32(82).string(message.metadata); + } + if (message.title !== "") { + writer.uint32(90).string(message.title); + } + if (message.summary !== "") { + writer.uint32(98).string(message.summary); + } + if (message.proposer !== "") { + writer.uint32(106).string(message.proposer); + } + if (message.expedited === true) { + writer.uint32(112).bool(message.expedited); + } + if (message.failedReason !== "") { + writer.uint32(122).string(message.failedReason); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseProposal(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.id = reader.uint64(); + break; + case 2: + message.messages.push(any_1.Any.decode(reader, reader.uint32())); + break; + case 3: + message.status = reader.int32(); + break; + case 4: + message.finalTallyResult = exports.TallyResult.decode(reader, reader.uint32()); + break; + case 5: + message.submitTime = (0, helpers_1.fromTimestamp)(timestamp_1.Timestamp.decode(reader, reader.uint32())); + break; + case 6: + message.depositEndTime = (0, helpers_1.fromTimestamp)(timestamp_1.Timestamp.decode(reader, reader.uint32())); + break; + case 7: + message.totalDeposit.push(coin_1.Coin.decode(reader, reader.uint32())); + break; + case 8: + message.votingStartTime = (0, helpers_1.fromTimestamp)(timestamp_1.Timestamp.decode(reader, reader.uint32())); + break; + case 9: + message.votingEndTime = (0, helpers_1.fromTimestamp)(timestamp_1.Timestamp.decode(reader, reader.uint32())); + break; + case 10: + message.metadata = reader.string(); + break; + case 11: + message.title = reader.string(); + break; + case 12: + message.summary = reader.string(); + break; + case 13: + message.proposer = reader.string(); + break; + case 14: + message.expedited = reader.bool(); + break; + case 15: + message.failedReason = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o; + const message = createBaseProposal(); + message.id = object.id !== undefined && object.id !== null ? helpers_1.Long.fromValue(object.id) : helpers_1.Long.UZERO; + message.messages = ((_a = object.messages) === null || _a === void 0 ? void 0 : _a.map(e => any_1.Any.fromPartial(e))) || []; + message.status = (_b = object.status) !== null && _b !== void 0 ? _b : 0; + message.finalTallyResult = object.finalTallyResult !== undefined && object.finalTallyResult !== null ? exports.TallyResult.fromPartial(object.finalTallyResult) : undefined; + message.submitTime = (_c = object.submitTime) !== null && _c !== void 0 ? _c : undefined; + message.depositEndTime = (_d = object.depositEndTime) !== null && _d !== void 0 ? _d : undefined; + message.totalDeposit = ((_e = object.totalDeposit) === null || _e === void 0 ? void 0 : _e.map(e => coin_1.Coin.fromPartial(e))) || []; + message.votingStartTime = (_f = object.votingStartTime) !== null && _f !== void 0 ? _f : undefined; + message.votingEndTime = (_g = object.votingEndTime) !== null && _g !== void 0 ? _g : undefined; + message.metadata = (_h = object.metadata) !== null && _h !== void 0 ? _h : ""; + message.title = (_j = object.title) !== null && _j !== void 0 ? _j : ""; + message.summary = (_k = object.summary) !== null && _k !== void 0 ? _k : ""; + message.proposer = (_l = object.proposer) !== null && _l !== void 0 ? _l : ""; + message.expedited = (_m = object.expedited) !== null && _m !== void 0 ? _m : false; + message.failedReason = (_o = object.failedReason) !== null && _o !== void 0 ? _o : ""; + return message; } - - // Consumes a specified amount of bytes or characters from the buffered data. - }, { - key: "consume", - value: function consume(n, hasStrings) { - var ret; - if (n < this.head.data.length) { - // `slice` is the same for buffers and strings. - ret = this.head.data.slice(0, n); - this.head.data = this.head.data.slice(n); - } else if (n === this.head.data.length) { - // First chunk is a perfect match. - ret = this.shift(); - } else { - // Result spans more than one buffer. - ret = hasStrings ? this._getString(n) : this._getBuffer(n); - } - return ret; +}; +function createBaseTallyResult() { + return { + yesCount: "", + abstainCount: "", + noCount: "", + noWithVetoCount: "" + }; +} +exports.TallyResult = { + encode(message, writer = _m0.Writer.create()) { + if (message.yesCount !== "") { + writer.uint32(10).string(message.yesCount); + } + if (message.abstainCount !== "") { + writer.uint32(18).string(message.abstainCount); + } + if (message.noCount !== "") { + writer.uint32(26).string(message.noCount); + } + if (message.noWithVetoCount !== "") { + writer.uint32(34).string(message.noWithVetoCount); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTallyResult(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.yesCount = reader.string(); + break; + case 2: + message.abstainCount = reader.string(); + break; + case 3: + message.noCount = reader.string(); + break; + case 4: + message.noWithVetoCount = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b, _c, _d; + const message = createBaseTallyResult(); + message.yesCount = (_a = object.yesCount) !== null && _a !== void 0 ? _a : ""; + message.abstainCount = (_b = object.abstainCount) !== null && _b !== void 0 ? _b : ""; + message.noCount = (_c = object.noCount) !== null && _c !== void 0 ? _c : ""; + message.noWithVetoCount = (_d = object.noWithVetoCount) !== null && _d !== void 0 ? _d : ""; + return message; } - }, { - key: "first", - value: function first() { - return this.head.data; +}; +function createBaseVote() { + return { + proposalId: helpers_1.Long.UZERO, + voter: "", + options: [], + metadata: "" + }; +} +exports.Vote = { + encode(message, writer = _m0.Writer.create()) { + if (!message.proposalId.isZero()) { + writer.uint32(8).uint64(message.proposalId); + } + if (message.voter !== "") { + writer.uint32(18).string(message.voter); + } + for (const v of message.options) { + exports.WeightedVoteOption.encode(v, writer.uint32(34).fork()).ldelim(); + } + if (message.metadata !== "") { + writer.uint32(42).string(message.metadata); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseVote(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.proposalId = reader.uint64(); + break; + case 2: + message.voter = reader.string(); + break; + case 4: + message.options.push(exports.WeightedVoteOption.decode(reader, reader.uint32())); + break; + case 5: + message.metadata = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b, _c; + const message = createBaseVote(); + message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? helpers_1.Long.fromValue(object.proposalId) : helpers_1.Long.UZERO; + message.voter = (_a = object.voter) !== null && _a !== void 0 ? _a : ""; + message.options = ((_b = object.options) === null || _b === void 0 ? void 0 : _b.map(e => exports.WeightedVoteOption.fromPartial(e))) || []; + message.metadata = (_c = object.metadata) !== null && _c !== void 0 ? _c : ""; + return message; + } +}; +function createBaseDepositParams() { + return { + minDeposit: [], + maxDepositPeriod: undefined + }; +} +exports.DepositParams = { + encode(message, writer = _m0.Writer.create()) { + for (const v of message.minDeposit) { + coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.maxDepositPeriod !== undefined) { + duration_1.Duration.encode(message.maxDepositPeriod, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDepositParams(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.minDeposit.push(coin_1.Coin.decode(reader, reader.uint32())); + break; + case 2: + message.maxDepositPeriod = duration_1.Duration.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseDepositParams(); + message.minDeposit = ((_a = object.minDeposit) === null || _a === void 0 ? void 0 : _a.map(e => coin_1.Coin.fromPartial(e))) || []; + message.maxDepositPeriod = object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null ? duration_1.Duration.fromPartial(object.maxDepositPeriod) : undefined; + return message; } - - // Consumes a specified amount of characters from the buffered data. - }, { - key: "_getString", - value: function _getString(n) { - var p = this.head; - var c = 1; - var ret = p.data; - n -= ret.length; - while (p = p.next) { - var str = p.data; - var nb = n > str.length ? str.length : n; - if (nb === str.length) ret += str;else ret += str.slice(0, n); - n -= nb; - if (n === 0) { - if (nb === str.length) { - ++c; - if (p.next) this.head = p.next;else this.head = this.tail = null; - } else { - this.head = p; - p.data = str.slice(nb); - } - break; +}; +function createBaseVotingParams() { + return { + votingPeriod: undefined + }; +} +exports.VotingParams = { + encode(message, writer = _m0.Writer.create()) { + if (message.votingPeriod !== undefined) { + duration_1.Duration.encode(message.votingPeriod, writer.uint32(10).fork()).ldelim(); } - ++c; - } - this.length -= c; - return ret; + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseVotingParams(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.votingPeriod = duration_1.Duration.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + const message = createBaseVotingParams(); + message.votingPeriod = object.votingPeriod !== undefined && object.votingPeriod !== null ? duration_1.Duration.fromPartial(object.votingPeriod) : undefined; + return message; } - - // Consumes a specified amount of bytes from the buffered data. - }, { - key: "_getBuffer", - value: function _getBuffer(n) { - var ret = Buffer.allocUnsafe(n); - var p = this.head; - var c = 1; - p.data.copy(ret); - n -= p.data.length; - while (p = p.next) { - var buf = p.data; - var nb = n > buf.length ? buf.length : n; - buf.copy(ret, ret.length - n, 0, nb); - n -= nb; - if (n === 0) { - if (nb === buf.length) { - ++c; - if (p.next) this.head = p.next;else this.head = this.tail = null; - } else { - this.head = p; - p.data = buf.slice(nb); - } - break; +}; +function createBaseTallyParams() { + return { + quorum: "", + threshold: "", + vetoThreshold: "" + }; +} +exports.TallyParams = { + encode(message, writer = _m0.Writer.create()) { + if (message.quorum !== "") { + writer.uint32(10).string(message.quorum); } - ++c; - } - this.length -= c; - return ret; + if (message.threshold !== "") { + writer.uint32(18).string(message.threshold); + } + if (message.vetoThreshold !== "") { + writer.uint32(26).string(message.vetoThreshold); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTallyParams(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.quorum = reader.string(); + break; + case 2: + message.threshold = reader.string(); + break; + case 3: + message.vetoThreshold = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b, _c; + const message = createBaseTallyParams(); + message.quorum = (_a = object.quorum) !== null && _a !== void 0 ? _a : ""; + message.threshold = (_b = object.threshold) !== null && _b !== void 0 ? _b : ""; + message.vetoThreshold = (_c = object.vetoThreshold) !== null && _c !== void 0 ? _c : ""; + return message; } - - // Make sure the linked list only shows the minimal necessary information. - }, { - key: custom, - value: function value(_, options) { - return inspect(this, _objectSpread(_objectSpread({}, options), {}, { - // Only inspect one level. - depth: 0, - // It should not recurse. - customInspect: false - })); +}; +function createBaseParams() { + return { + minDeposit: [], + maxDepositPeriod: undefined, + votingPeriod: undefined, + quorum: "", + threshold: "", + vetoThreshold: "", + minInitialDepositRatio: "", + proposalCancelRatio: "", + proposalCancelDest: "", + expeditedVotingPeriod: undefined, + expeditedThreshold: "", + expeditedMinDeposit: [], + burnVoteQuorum: false, + burnProposalDepositPrevote: false, + burnVoteVeto: false, + minDepositRatio: "" + }; +} +exports.Params = { + encode(message, writer = _m0.Writer.create()) { + for (const v of message.minDeposit) { + coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.maxDepositPeriod !== undefined) { + duration_1.Duration.encode(message.maxDepositPeriod, writer.uint32(18).fork()).ldelim(); + } + if (message.votingPeriod !== undefined) { + duration_1.Duration.encode(message.votingPeriod, writer.uint32(26).fork()).ldelim(); + } + if (message.quorum !== "") { + writer.uint32(34).string(message.quorum); + } + if (message.threshold !== "") { + writer.uint32(42).string(message.threshold); + } + if (message.vetoThreshold !== "") { + writer.uint32(50).string(message.vetoThreshold); + } + if (message.minInitialDepositRatio !== "") { + writer.uint32(58).string(message.minInitialDepositRatio); + } + if (message.proposalCancelRatio !== "") { + writer.uint32(66).string(message.proposalCancelRatio); + } + if (message.proposalCancelDest !== "") { + writer.uint32(74).string(message.proposalCancelDest); + } + if (message.expeditedVotingPeriod !== undefined) { + duration_1.Duration.encode(message.expeditedVotingPeriod, writer.uint32(82).fork()).ldelim(); + } + if (message.expeditedThreshold !== "") { + writer.uint32(90).string(message.expeditedThreshold); + } + for (const v of message.expeditedMinDeposit) { + coin_1.Coin.encode(v, writer.uint32(98).fork()).ldelim(); + } + if (message.burnVoteQuorum === true) { + writer.uint32(104).bool(message.burnVoteQuorum); + } + if (message.burnProposalDepositPrevote === true) { + writer.uint32(112).bool(message.burnProposalDepositPrevote); + } + if (message.burnVoteVeto === true) { + writer.uint32(120).bool(message.burnVoteVeto); + } + if (message.minDepositRatio !== "") { + writer.uint32(130).string(message.minDepositRatio); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseParams(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.minDeposit.push(coin_1.Coin.decode(reader, reader.uint32())); + break; + case 2: + message.maxDepositPeriod = duration_1.Duration.decode(reader, reader.uint32()); + break; + case 3: + message.votingPeriod = duration_1.Duration.decode(reader, reader.uint32()); + break; + case 4: + message.quorum = reader.string(); + break; + case 5: + message.threshold = reader.string(); + break; + case 6: + message.vetoThreshold = reader.string(); + break; + case 7: + message.minInitialDepositRatio = reader.string(); + break; + case 8: + message.proposalCancelRatio = reader.string(); + break; + case 9: + message.proposalCancelDest = reader.string(); + break; + case 10: + message.expeditedVotingPeriod = duration_1.Duration.decode(reader, reader.uint32()); + break; + case 11: + message.expeditedThreshold = reader.string(); + break; + case 12: + message.expeditedMinDeposit.push(coin_1.Coin.decode(reader, reader.uint32())); + break; + case 13: + message.burnVoteQuorum = reader.bool(); + break; + case 14: + message.burnProposalDepositPrevote = reader.bool(); + break; + case 15: + message.burnVoteVeto = reader.bool(); + break; + case 16: + message.minDepositRatio = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o; + const message = createBaseParams(); + message.minDeposit = ((_a = object.minDeposit) === null || _a === void 0 ? void 0 : _a.map(e => coin_1.Coin.fromPartial(e))) || []; + message.maxDepositPeriod = object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null ? duration_1.Duration.fromPartial(object.maxDepositPeriod) : undefined; + message.votingPeriod = object.votingPeriod !== undefined && object.votingPeriod !== null ? duration_1.Duration.fromPartial(object.votingPeriod) : undefined; + message.quorum = (_b = object.quorum) !== null && _b !== void 0 ? _b : ""; + message.threshold = (_c = object.threshold) !== null && _c !== void 0 ? _c : ""; + message.vetoThreshold = (_d = object.vetoThreshold) !== null && _d !== void 0 ? _d : ""; + message.minInitialDepositRatio = (_e = object.minInitialDepositRatio) !== null && _e !== void 0 ? _e : ""; + message.proposalCancelRatio = (_f = object.proposalCancelRatio) !== null && _f !== void 0 ? _f : ""; + message.proposalCancelDest = (_g = object.proposalCancelDest) !== null && _g !== void 0 ? _g : ""; + message.expeditedVotingPeriod = object.expeditedVotingPeriod !== undefined && object.expeditedVotingPeriod !== null ? duration_1.Duration.fromPartial(object.expeditedVotingPeriod) : undefined; + message.expeditedThreshold = (_h = object.expeditedThreshold) !== null && _h !== void 0 ? _h : ""; + message.expeditedMinDeposit = ((_j = object.expeditedMinDeposit) === null || _j === void 0 ? void 0 : _j.map(e => coin_1.Coin.fromPartial(e))) || []; + message.burnVoteQuorum = (_k = object.burnVoteQuorum) !== null && _k !== void 0 ? _k : false; + message.burnProposalDepositPrevote = (_l = object.burnProposalDepositPrevote) !== null && _l !== void 0 ? _l : false; + message.burnVoteVeto = (_m = object.burnVoteVeto) !== null && _m !== void 0 ? _m : false; + message.minDepositRatio = (_o = object.minDepositRatio) !== null && _o !== void 0 ? _o : ""; + return message; } - }]); - return BufferList; -}(); +}; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ292LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vY29zbW9zL2dvdi92MS9nb3YudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBNEQ7QUFDNUQsc0RBQStEO0FBQy9ELGtFQUErRDtBQUMvRCxnRUFBOEU7QUFDOUUsd0RBQTBDO0FBQzFDLDhDQUFpRjtBQUNqRixvRkFBb0Y7QUFFcEYsSUFBWSxVQWdCWDtBQWhCRCxXQUFZLFVBQVU7SUFDcEIscUZBQXFGO0lBQ3JGLGlGQUEyQixDQUFBO0lBRTNCLG1FQUFtRTtJQUNuRSxpRUFBbUIsQ0FBQTtJQUVuQixnRkFBZ0Y7SUFDaEYseUVBQXVCLENBQUE7SUFFdkIsZ0VBQWdFO0lBQ2hFLCtEQUFrQixDQUFBO0lBRWxCLDhGQUE4RjtJQUM5RixtRkFBNEIsQ0FBQTtJQUM1Qiw0REFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBaEJXLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBZ0JyQjtBQUNZLFFBQUEsaUJBQWlCLEdBQUcsVUFBVSxDQUFDO0FBQzVDLFNBQWdCLGtCQUFrQixDQUFDLE1BQVc7SUFDNUMsUUFBUSxNQUFNLEVBQUU7UUFDZCxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUsseUJBQXlCO1lBQzVCLE9BQU8sVUFBVSxDQUFDLHVCQUF1QixDQUFDO1FBRTVDLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxpQkFBaUI7WUFDcEIsT0FBTyxVQUFVLENBQUMsZUFBZSxDQUFDO1FBRXBDLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxxQkFBcUI7WUFDeEIsT0FBTyxVQUFVLENBQUMsbUJBQW1CLENBQUM7UUFFeEMsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLGdCQUFnQjtZQUNuQixPQUFPLFVBQVUsQ0FB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 /***/ }), -/***/ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/destroy.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/destroy.js ***! - \***********************************************************************************************/ -/***/ (function(module) { +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/query.ts": +/*!********************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/query.ts ***! + \********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; - -// undocumented cb() API, needed for core, not for public API -function destroy(err, cb) { - var _this = this; - var readableDestroyed = this._readableState && this._readableState.destroyed; - var writableDestroyed = this._writableState && this._writableState.destroyed; - if (readableDestroyed || writableDestroyed) { - if (cb) { - cb(err); - } else if (err) { - if (!this._writableState) { - ({"env":{"NODE_ENV":"production"}}).nextTick(emitErrorNT, this, err); - } else if (!this._writableState.errorEmitted) { - this._writableState.errorEmitted = true; - ({"env":{"NODE_ENV":"production"}}).nextTick(emitErrorNT, this, err); - } - } - return this; - } - - // we set destroyed to true before firing error callbacks in order - // to make it re-entrance safe in case destroy() is called within callbacks - - if (this._readableState) { - this._readableState.destroyed = true; - } - - // if this is a duplex stream mark the writable part as destroyed as well - if (this._writableState) { - this._writableState.destroyed = true; - } - this._destroy(err || null, function (err) { - if (!cb && err) { - if (!_this._writableState) { - ({"env":{"NODE_ENV":"production"}}).nextTick(emitErrorAndCloseNT, _this, err); - } else if (!_this._writableState.errorEmitted) { - _this._writableState.errorEmitted = true; - ({"env":{"NODE_ENV":"production"}}).nextTick(emitErrorAndCloseNT, _this, err); - } else { - ({"env":{"NODE_ENV":"production"}}).nextTick(emitCloseNT, _this); - } - } else if (cb) { - ({"env":{"NODE_ENV":"production"}}).nextTick(emitCloseNT, _this); - cb(err); - } else { - ({"env":{"NODE_ENV":"production"}}).nextTick(emitCloseNT, _this); +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; } - }); - return this; -} -function emitErrorAndCloseNT(self, err) { - emitErrorNT(self, err); - emitCloseNT(self); -} -function emitCloseNT(self) { - if (self._writableState && !self._writableState.emitClose) return; - if (self._readableState && !self._readableState.emitClose) return; - self.emit('close'); -} -function undestroy() { - if (this._readableState) { - this._readableState.destroyed = false; - this._readableState.reading = false; - this._readableState.ended = false; - this._readableState.endEmitted = false; - } - if (this._writableState) { - this._writableState.destroyed = false; - this._writableState.ended = false; - this._writableState.ending = false; - this._writableState.finalCalled = false; - this._writableState.prefinished = false; - this._writableState.finished = false; - this._writableState.errorEmitted = false; - } -} -function emitErrorNT(self, err) { - self.emit('error', err); + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.QueryTallyResultResponse = exports.QueryTallyResultRequest = exports.QueryDepositsResponse = exports.QueryDepositsRequest = exports.QueryDepositResponse = exports.QueryDepositRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryVotesResponse = exports.QueryVotesRequest = exports.QueryVoteResponse = exports.QueryVoteRequest = exports.QueryProposalsResponse = exports.QueryProposalsRequest = exports.QueryProposalResponse = exports.QueryProposalRequest = exports.QueryConstitutionResponse = exports.QueryConstitutionRequest = void 0; +const gov_1 = __webpack_require__(/*! ./gov */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/gov.ts"); +const pagination_1 = __webpack_require__(/*! ../../base/query/v1beta1/pagination */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/query/v1beta1/pagination.ts"); +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); +function createBaseQueryConstitutionRequest() { + return {}; } -function errorOrDestroy(stream, err) { - // We have tests that rely on errors being emitted - // in the same tick, so changing this is semver major. - // For now when you opt-in to autoDestroy we allow - // the error to be emitted nextTick. In a future - // semver major update we should change the default to this. - - var rState = stream._readableState; - var wState = stream._writableState; - if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err); +exports.QueryConstitutionRequest = { + encode(_, writer = _m0.Writer.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryConstitutionRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(_) { + const message = createBaseQueryConstitutionRequest(); + return message; + } +}; +function createBaseQueryConstitutionResponse() { + return { + constitution: "" + }; } -module.exports = { - destroy: destroy, - undestroy: undestroy, - errorOrDestroy: errorOrDestroy +exports.QueryConstitutionResponse = { + encode(message, writer = _m0.Writer.create()) { + if (message.constitution !== "") { + writer.uint32(10).string(message.constitution); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryConstitutionResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.constitution = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseQueryConstitutionResponse(); + message.constitution = (_a = object.constitution) !== null && _a !== void 0 ? _a : ""; + return message; + } }; - -/***/ }), - -/***/ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/end-of-stream.js": -/*!*****************************************************************************************************!*\ - !*** ./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/end-of-stream.js ***! - \*****************************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; -// Ported from https://github.com/mafintosh/end-of-stream with -// permission from the author, Mathias Buus (@mafintosh). - - - -var ERR_STREAM_PREMATURE_CLOSE = (__webpack_require__(/*! ../../../errors */ "./node_modules/stream-http/node_modules/readable-stream/errors-browser.js").codes.ERR_STREAM_PREMATURE_CLOSE); -function once(callback) { - var called = false; - return function () { - if (called) return; - called = true; - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; +function createBaseQueryProposalRequest() { + return { + proposalId: helpers_1.Long.UZERO + }; +} +exports.QueryProposalRequest = { + encode(message, writer = _m0.Writer.create()) { + if (!message.proposalId.isZero()) { + writer.uint32(8).uint64(message.proposalId); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryProposalRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.proposalId = reader.uint64(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + const message = createBaseQueryProposalRequest(); + message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? helpers_1.Long.fromValue(object.proposalId) : helpers_1.Long.UZERO; + return message; } - callback.apply(this, args); - }; +}; +function createBaseQueryProposalResponse() { + return { + proposal: undefined + }; } -function noop() {} -function isRequest(stream) { - return stream.setHeader && typeof stream.abort === 'function'; +exports.QueryProposalResponse = { + encode(message, writer = _m0.Writer.create()) { + if (message.proposal !== undefined) { + gov_1.Proposal.encode(message.proposal, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryProposalResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.proposal = gov_1.Proposal.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + const message = createBaseQueryProposalResponse(); + message.proposal = object.proposal !== undefined && object.proposal !== null ? gov_1.Proposal.fromPartial(object.proposal) : undefined; + return message; + } +}; +function createBaseQueryProposalsRequest() { + return { + proposalStatus: 0, + voter: "", + depositor: "", + pagination: undefined + }; } -function eos(stream, opts, callback) { - if (typeof opts === 'function') return eos(stream, null, opts); - if (!opts) opts = {}; - callback = once(callback || noop); - var readable = opts.readable || opts.readable !== false && stream.readable; - var writable = opts.writable || opts.writable !== false && stream.writable; - var onlegacyfinish = function onlegacyfinish() { - if (!stream.writable) onfinish(); - }; - var writableEnded = stream._writableState && stream._writableState.finished; - var onfinish = function onfinish() { - writable = false; - writableEnded = true; - if (!readable) callback.call(stream); - }; - var readableEnded = stream._readableState && stream._readableState.endEmitted; - var onend = function onend() { - readable = false; - readableEnded = true; - if (!writable) callback.call(stream); - }; - var onerror = function onerror(err) { - callback.call(stream, err); - }; - var onclose = function onclose() { - var err; - if (readable && !readableEnded) { - if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); - return callback.call(stream, err); +exports.QueryProposalsRequest = { + encode(message, writer = _m0.Writer.create()) { + if (message.proposalStatus !== 0) { + writer.uint32(8).int32(message.proposalStatus); + } + if (message.voter !== "") { + writer.uint32(18).string(message.voter); + } + if (message.depositor !== "") { + writer.uint32(26).string(message.depositor); + } + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryProposalsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.proposalStatus = reader.int32(); + break; + case 2: + message.voter = reader.string(); + break; + case 3: + message.depositor = reader.string(); + break; + case 4: + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b, _c; + const message = createBaseQueryProposalsRequest(); + message.proposalStatus = (_a = object.proposalStatus) !== null && _a !== void 0 ? _a : 0; + message.voter = (_b = object.voter) !== null && _b !== void 0 ? _b : ""; + message.depositor = (_c = object.depositor) !== null && _c !== void 0 ? _c : ""; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; + return message; } - if (writable && !writableEnded) { - if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); - return callback.call(stream, err); +}; +function createBaseQueryProposalsResponse() { + return { + proposals: [], + pagination: undefined + }; +} +exports.QueryProposalsResponse = { + encode(message, writer = _m0.Writer.create()) { + for (const v of message.proposals) { + gov_1.Proposal.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryProposalsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.proposals.push(gov_1.Proposal.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseQueryProposalsResponse(); + message.proposals = ((_a = object.proposals) === null || _a === void 0 ? void 0 : _a.map(e => gov_1.Proposal.fromPartial(e))) || []; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; + return message; } - }; - var onrequest = function onrequest() { - stream.req.on('finish', onfinish); - }; - if (isRequest(stream)) { - stream.on('complete', onfinish); - stream.on('abort', onclose); - if (stream.req) onrequest();else stream.on('request', onrequest); - } else if (writable && !stream._writableState) { - // legacy streams - stream.on('end', onlegacyfinish); - stream.on('close', onlegacyfinish); - } - stream.on('end', onend); - stream.on('finish', onfinish); - if (opts.error !== false) stream.on('error', onerror); - stream.on('close', onclose); - return function () { - stream.removeListener('complete', onfinish); - stream.removeListener('abort', onclose); - stream.removeListener('request', onrequest); - if (stream.req) stream.req.removeListener('finish', onfinish); - stream.removeListener('end', onlegacyfinish); - stream.removeListener('close', onlegacyfinish); - stream.removeListener('finish', onfinish); - stream.removeListener('end', onend); - stream.removeListener('error', onerror); - stream.removeListener('close', onclose); - }; +}; +function createBaseQueryVoteRequest() { + return { + proposalId: helpers_1.Long.UZERO, + voter: "" + }; } -module.exports = eos; - -/***/ }), - -/***/ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/from-browser.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/from-browser.js ***! - \****************************************************************************************************/ -/***/ (function(module) { - -module.exports = function () { - throw new Error('Readable.from is not available in the browser') +exports.QueryVoteRequest = { + encode(message, writer = _m0.Writer.create()) { + if (!message.proposalId.isZero()) { + writer.uint32(8).uint64(message.proposalId); + } + if (message.voter !== "") { + writer.uint32(18).string(message.voter); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryVoteRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.proposalId = reader.uint64(); + break; + case 2: + message.voter = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseQueryVoteRequest(); + message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? helpers_1.Long.fromValue(object.proposalId) : helpers_1.Long.UZERO; + message.voter = (_a = object.voter) !== null && _a !== void 0 ? _a : ""; + return message; + } }; - - -/***/ }), - -/***/ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/pipeline.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/pipeline.js ***! - \************************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; -// Ported from https://github.com/mafintosh/pump with -// permission from the author, Mathias Buus (@mafintosh). - - - -var eos; -function once(callback) { - var called = false; - return function () { - if (called) return; - called = true; - callback.apply(void 0, arguments); - }; +function createBaseQueryVoteResponse() { + return { + vote: undefined + }; } -var _require$codes = (__webpack_require__(/*! ../../../errors */ "./node_modules/stream-http/node_modules/readable-stream/errors-browser.js").codes), - ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, - ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; -function noop(err) { - // Rethrow the error if it exists to avoid swallowing it - if (err) throw err; +exports.QueryVoteResponse = { + encode(message, writer = _m0.Writer.create()) { + if (message.vote !== undefined) { + gov_1.Vote.encode(message.vote, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryVoteResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.vote = gov_1.Vote.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + const message = createBaseQueryVoteResponse(); + message.vote = object.vote !== undefined && object.vote !== null ? gov_1.Vote.fromPartial(object.vote) : undefined; + return message; + } +}; +function createBaseQueryVotesRequest() { + return { + proposalId: helpers_1.Long.UZERO, + pagination: undefined + }; } -function isRequest(stream) { - return stream.setHeader && typeof stream.abort === 'function'; +exports.QueryVotesRequest = { + encode(message, writer = _m0.Writer.create()) { + if (!message.proposalId.isZero()) { + writer.uint32(8).uint64(message.proposalId); + } + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryVotesRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.proposalId = reader.uint64(); + break; + case 2: + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + const message = createBaseQueryVotesRequest(); + message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? helpers_1.Long.fromValue(object.proposalId) : helpers_1.Long.UZERO; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; + return message; + } +}; +function createBaseQueryVotesResponse() { + return { + votes: [], + pagination: undefined + }; } -function destroyer(stream, reading, writing, callback) { - callback = once(callback); - var closed = false; - stream.on('close', function () { - closed = true; - }); - if (eos === undefined) eos = __webpack_require__(/*! ./end-of-stream */ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); - eos(stream, { - readable: reading, - writable: writing - }, function (err) { - if (err) return callback(err); - closed = true; - callback(); - }); - var destroyed = false; - return function (err) { - if (closed) return; - if (destroyed) return; - destroyed = true; - - // request.destroy just do .end - .abort is what we want - if (isRequest(stream)) return stream.abort(); - if (typeof stream.destroy === 'function') return stream.destroy(); - callback(err || new ERR_STREAM_DESTROYED('pipe')); - }; +exports.QueryVotesResponse = { + encode(message, writer = _m0.Writer.create()) { + for (const v of message.votes) { + gov_1.Vote.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryVotesResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.votes.push(gov_1.Vote.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseQueryVotesResponse(); + message.votes = ((_a = object.votes) === null || _a === void 0 ? void 0 : _a.map(e => gov_1.Vote.fromPartial(e))) || []; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; + return message; + } +}; +function createBaseQueryParamsRequest() { + return { + paramsType: "" + }; } -function call(fn) { - fn(); +exports.QueryParamsRequest = { + encode(message, writer = _m0.Writer.create()) { + if (message.paramsType !== "") { + writer.uint32(10).string(message.paramsType); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryParamsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.paramsType = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseQueryParamsRequest(); + message.paramsType = (_a = object.paramsType) !== null && _a !== void 0 ? _a : ""; + return message; + } +}; +function createBaseQueryParamsResponse() { + return { + votingParams: undefined, + depositParams: undefined, + tallyParams: undefined, + params: undefined + }; } -function pipe(from, to) { - return from.pipe(to); +exports.QueryParamsResponse = { + encode(message, writer = _m0.Writer.create()) { + if (message.votingParams !== undefined) { + gov_1.VotingParams.encode(message.votingParams, writer.uint32(10).fork()).ldelim(); + } + if (message.depositParams !== undefined) { + gov_1.DepositParams.encode(message.depositParams, writer.uint32(18).fork()).ldelim(); + } + if (message.tallyParams !== undefined) { + gov_1.TallyParams.encode(message.tallyParams, writer.uint32(26).fork()).ldelim(); + } + if (message.params !== undefined) { + gov_1.Params.encode(message.params, writer.uint32(34).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryParamsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.votingParams = gov_1.VotingParams.decode(reader, reader.uint32()); + break; + case 2: + message.depositParams = gov_1.DepositParams.decode(reader, reader.uint32()); + break; + case 3: + message.tallyParams = gov_1.TallyParams.decode(reader, reader.uint32()); + break; + case 4: + message.params = gov_1.Params.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + const message = createBaseQueryParamsResponse(); + message.votingParams = object.votingParams !== undefined && object.votingParams !== null ? gov_1.VotingParams.fromPartial(object.votingParams) : undefined; + message.depositParams = object.depositParams !== undefined && object.depositParams !== null ? gov_1.DepositParams.fromPartial(object.depositParams) : undefined; + message.tallyParams = object.tallyParams !== undefined && object.tallyParams !== null ? gov_1.TallyParams.fromPartial(object.tallyParams) : undefined; + message.params = object.params !== undefined && object.params !== null ? gov_1.Params.fromPartial(object.params) : undefined; + return message; + } +}; +function createBaseQueryDepositRequest() { + return { + proposalId: helpers_1.Long.UZERO, + depositor: "" + }; } -function popCallback(streams) { - if (!streams.length) return noop; - if (typeof streams[streams.length - 1] !== 'function') return noop; - return streams.pop(); +exports.QueryDepositRequest = { + encode(message, writer = _m0.Writer.create()) { + if (!message.proposalId.isZero()) { + writer.uint32(8).uint64(message.proposalId); + } + if (message.depositor !== "") { + writer.uint32(18).string(message.depositor); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryDepositRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.proposalId = reader.uint64(); + break; + case 2: + message.depositor = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseQueryDepositRequest(); + message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? helpers_1.Long.fromValue(object.proposalId) : helpers_1.Long.UZERO; + message.depositor = (_a = object.depositor) !== null && _a !== void 0 ? _a : ""; + return message; + } +}; +function createBaseQueryDepositResponse() { + return { + deposit: undefined + }; } -function pipeline() { - for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) { - streams[_key] = arguments[_key]; - } - var callback = popCallback(streams); - if (Array.isArray(streams[0])) streams = streams[0]; - if (streams.length < 2) { - throw new ERR_MISSING_ARGS('streams'); - } - var error; - var destroys = streams.map(function (stream, i) { - var reading = i < streams.length - 1; - var writing = i > 0; - return destroyer(stream, reading, writing, function (err) { - if (!error) error = err; - if (err) destroys.forEach(call); - if (reading) return; - destroys.forEach(call); - callback(error); - }); - }); - return streams.reduce(pipe); +exports.QueryDepositResponse = { + encode(message, writer = _m0.Writer.create()) { + if (message.deposit !== undefined) { + gov_1.Deposit.encode(message.deposit, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryDepositResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.deposit = gov_1.Deposit.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + const message = createBaseQueryDepositResponse(); + message.deposit = object.deposit !== undefined && object.deposit !== null ? gov_1.Deposit.fromPartial(object.deposit) : undefined; + return message; + } +}; +function createBaseQueryDepositsRequest() { + return { + proposalId: helpers_1.Long.UZERO, + pagination: undefined + }; } -module.exports = pipeline; - -/***/ }), - -/***/ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/state.js": -/*!*********************************************************************************************!*\ - !*** ./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/state.js ***! - \*********************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -var ERR_INVALID_OPT_VALUE = (__webpack_require__(/*! ../../../errors */ "./node_modules/stream-http/node_modules/readable-stream/errors-browser.js").codes.ERR_INVALID_OPT_VALUE); -function highWaterMarkFrom(options, isDuplex, duplexKey) { - return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; +exports.QueryDepositsRequest = { + encode(message, writer = _m0.Writer.create()) { + if (!message.proposalId.isZero()) { + writer.uint32(8).uint64(message.proposalId); + } + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryDepositsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.proposalId = reader.uint64(); + break; + case 2: + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + const message = createBaseQueryDepositsRequest(); + message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? helpers_1.Long.fromValue(object.proposalId) : helpers_1.Long.UZERO; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; + return message; + } +}; +function createBaseQueryDepositsResponse() { + return { + deposits: [], + pagination: undefined + }; } -function getHighWaterMark(state, options, duplexKey, isDuplex) { - var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); - if (hwm != null) { - if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { - var name = isDuplex ? duplexKey : 'highWaterMark'; - throw new ERR_INVALID_OPT_VALUE(name, hwm); +exports.QueryDepositsResponse = { + encode(message, writer = _m0.Writer.create()) { + for (const v of message.deposits) { + gov_1.Deposit.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryDepositsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.deposits.push(gov_1.Deposit.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseQueryDepositsResponse(); + message.deposits = ((_a = object.deposits) === null || _a === void 0 ? void 0 : _a.map(e => gov_1.Deposit.fromPartial(e))) || []; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; + return message; } - return Math.floor(hwm); - } - - // Default value - return state.objectMode ? 16 : 16 * 1024; +}; +function createBaseQueryTallyResultRequest() { + return { + proposalId: helpers_1.Long.UZERO + }; } -module.exports = { - getHighWaterMark: getHighWaterMark +exports.QueryTallyResultRequest = { + encode(message, writer = _m0.Writer.create()) { + if (!message.proposalId.isZero()) { + writer.uint32(8).uint64(message.proposalId); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryTallyResultRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.proposalId = reader.uint64(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + const message = createBaseQueryTallyResultRequest(); + message.proposalId = object.proposalId !== undefined && object.proposalId !== null ? helpers_1.Long.fromValue(object.proposalId) : helpers_1.Long.UZERO; + return message; + } }; +function createBaseQueryTallyResultResponse() { + return { + tally: undefined + }; +} +exports.QueryTallyResultResponse = { + encode(message, writer = _m0.Writer.create()) { + if (message.tally !== undefined) { + gov_1.TallyResult.encode(message.tally, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryTallyResultResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.tally = gov_1.TallyResult.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + const message = createBaseQueryTallyResultResponse(); + message.tally = object.tally !== undefined && object.tally !== null ? gov_1.TallyResult.fromPartial(object.tally) : undefined; + return message; + } +}; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9jb3Ntb3MvZ292L3YxL3F1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStRO0FBQy9RLG9FQUF5SDtBQUN6SCx3REFBMEM7QUFDMUMsOENBQXFEO0FBdVJyRCxTQUFTLGtDQUFrQztJQUN6QyxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFWSxRQUFBLHdCQUF3QixHQUFHO0lBQ3RDLE1BQU0sQ0FBQyxDQUEyQixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQzFFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxrQ0FBa0MsRUFBRSxDQUFDO1FBRXJELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRTVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakI7b0JBQ0UsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENB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 /***/ }), -/***/ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/stream-browser.js": -/*!******************************************************************************************************!*\ - !*** ./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/stream-browser.js ***! - \******************************************************************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! events */ "./node_modules/events/events.js").EventEmitter; - - -/***/ }), - -/***/ "./node_modules/stream-http/node_modules/readable-stream/readable-browser.js": -/*!***********************************************************************************!*\ - !*** ./node_modules/stream-http/node_modules/readable-stream/readable-browser.js ***! - \***********************************************************************************/ -/***/ (function(module, exports, __webpack_require__) { - -exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ "./node_modules/stream-http/node_modules/readable-stream/lib/_stream_readable.js"); -exports.Stream = exports; -exports.Readable = exports; -exports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ "./node_modules/stream-http/node_modules/readable-stream/lib/_stream_writable.js"); -exports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ "./node_modules/stream-http/node_modules/readable-stream/lib/_stream_duplex.js"); -exports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ "./node_modules/stream-http/node_modules/readable-stream/lib/_stream_transform.js"); -exports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ "./node_modules/stream-http/node_modules/readable-stream/lib/_stream_passthrough.js"); -exports.finished = __webpack_require__(/*! ./lib/internal/streams/end-of-stream.js */ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/end-of-stream.js"); -exports.pipeline = __webpack_require__(/*! ./lib/internal/streams/pipeline.js */ "./node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/pipeline.js"); - - -/***/ }), - -/***/ "./node_modules/string_decoder/lib/string_decoder.js": -/*!***********************************************************!*\ - !*** ./node_modules/string_decoder/lib/string_decoder.js ***! - \***********************************************************/ +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/query.ts": +/*!*****************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/query.ts ***! + \*****************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - - -/**/ - -var Buffer = (__webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer); -/**/ - -var isEncoding = Buffer.isEncoding || function (encoding) { - encoding = '' + encoding; - switch (encoding && encoding.toLowerCase()) { - case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw': - return true; - default: - return false; - } -}; - -function _normalizeEncoding(enc) { - if (!enc) return 'utf8'; - var retried; - while (true) { - switch (enc) { - case 'utf8': - case 'utf-8': - return 'utf8'; - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return 'utf16le'; - case 'latin1': - case 'binary': - return 'latin1'; - case 'base64': - case 'ascii': - case 'hex': - return enc; - default: - if (retried) return; // undefined - enc = ('' + enc).toLowerCase(); - retried = true; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; } - } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; }; - -// Do not cache `Buffer.isEncoding` when checking encoding names as some -// modules monkey-patch it to support additional encodings -function normalizeEncoding(enc) { - var nenc = _normalizeEncoding(enc); - if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc); - return nenc || enc; -} - -// StringDecoder provides an interface for efficiently splitting a series of -// buffers into a series of JS strings without breaking apart multi-byte -// characters. -exports.StringDecoder = StringDecoder; -function StringDecoder(encoding) { - this.encoding = normalizeEncoding(encoding); - var nb; - switch (this.encoding) { - case 'utf16le': - this.text = utf16Text; - this.end = utf16End; - nb = 4; - break; - case 'utf8': - this.fillLast = utf8FillLast; - nb = 4; - break; - case 'base64': - this.text = base64Text; - this.end = base64End; - nb = 3; - break; - default: - this.write = simpleWrite; - this.end = simpleEnd; - return; - } - this.lastNeed = 0; - this.lastTotal = 0; - this.lastChar = Buffer.allocUnsafe(nb); +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryPoolResponse = exports.QueryPoolRequest = exports.QueryHistoricalInfoResponse = exports.QueryHistoricalInfoRequest = exports.QueryDelegatorValidatorResponse = exports.QueryDelegatorValidatorRequest = exports.QueryDelegatorValidatorsResponse = exports.QueryDelegatorValidatorsRequest = exports.QueryRedelegationsResponse = exports.QueryRedelegationsRequest = exports.QueryDelegatorUnbondingDelegationsResponse = exports.QueryDelegatorUnbondingDelegationsRequest = exports.QueryDelegatorDelegationsResponse = exports.QueryDelegatorDelegationsRequest = exports.QueryUnbondingDelegationResponse = exports.QueryUnbondingDelegationRequest = exports.QueryDelegationResponse = exports.QueryDelegationRequest = exports.QueryValidatorUnbondingDelegationsResponse = exports.QueryValidatorUnbondingDelegationsRequest = exports.QueryValidatorDelegationsResponse = exports.QueryValidatorDelegationsRequest = exports.QueryValidatorResponse = exports.QueryValidatorRequest = exports.QueryValidatorsResponse = exports.QueryValidatorsRequest = void 0; +const pagination_1 = __webpack_require__(/*! ../../base/query/v1beta1/pagination */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/query/v1beta1/pagination.ts"); +const staking_1 = __webpack_require__(/*! ./staking */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/staking.ts"); +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); +function createBaseQueryValidatorsRequest() { + return { + status: "", + pagination: undefined + }; } - -StringDecoder.prototype.write = function (buf) { - if (buf.length === 0) return ''; - var r; - var i; - if (this.lastNeed) { - r = this.fillLast(buf); - if (r === undefined) return ''; - i = this.lastNeed; - this.lastNeed = 0; - } else { - i = 0; - } - if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i); - return r || ''; -}; - -StringDecoder.prototype.end = utf8End; - -// Returns only complete characters in a Buffer -StringDecoder.prototype.text = utf8Text; - -// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer -StringDecoder.prototype.fillLast = function (buf) { - if (this.lastNeed <= buf.length) { - buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed); - return this.lastChar.toString(this.encoding, 0, this.lastTotal); - } - buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length); - this.lastNeed -= buf.length; +exports.QueryValidatorsRequest = { + encode(message, writer = _m0.Writer.create()) { + if (message.status !== "") { + writer.uint32(10).string(message.status); + } + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryValidatorsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.status = reader.string(); + break; + case 2: + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseQueryValidatorsRequest(); + message.status = (_a = object.status) !== null && _a !== void 0 ? _a : ""; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; + return message; + } }; - -// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a -// continuation byte. If an invalid byte is detected, -2 is returned. -function utf8CheckByte(byte) { - if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4; - return byte >> 6 === 0x02 ? -1 : -2; +function createBaseQueryValidatorsResponse() { + return { + validators: [], + pagination: undefined + }; } - -// Checks at most 3 bytes at the end of a Buffer in order to detect an -// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4) -// needed to complete the UTF-8 character (if applicable) are returned. -function utf8CheckIncomplete(self, buf, i) { - var j = buf.length - 1; - if (j < i) return 0; - var nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) self.lastNeed = nb - 1; - return nb; - } - if (--j < i || nb === -2) return 0; - nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) self.lastNeed = nb - 2; - return nb; - } - if (--j < i || nb === -2) return 0; - nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) { - if (nb === 2) nb = 0;else self.lastNeed = nb - 3; +exports.QueryValidatorsResponse = { + encode(message, writer = _m0.Writer.create()) { + for (const v of message.validators) { + staking_1.Validator.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryValidatorsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.validators.push(staking_1.Validator.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseQueryValidatorsResponse(); + message.validators = ((_a = object.validators) === null || _a === void 0 ? void 0 : _a.map(e => staking_1.Validator.fromPartial(e))) || []; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; + return message; } - return nb; - } - return 0; +}; +function createBaseQueryValidatorRequest() { + return { + validatorAddr: "" + }; } - -// Validates as many continuation bytes for a multi-byte UTF-8 character as -// needed or are available. If we see a non-continuation byte where we expect -// one, we "replace" the validated continuation bytes we've seen so far with -// a single UTF-8 replacement character ('\ufffd'), to match v8's UTF-8 decoding -// behavior. The continuation byte check is included three times in the case -// where all of the continuation bytes for a character exist in the same buffer. -// It is also done this way as a slight performance increase instead of using a -// loop. -function utf8CheckExtraBytes(self, buf, p) { - if ((buf[0] & 0xC0) !== 0x80) { - self.lastNeed = 0; - return '\ufffd'; - } - if (self.lastNeed > 1 && buf.length > 1) { - if ((buf[1] & 0xC0) !== 0x80) { - self.lastNeed = 1; - return '\ufffd'; - } - if (self.lastNeed > 2 && buf.length > 2) { - if ((buf[2] & 0xC0) !== 0x80) { - self.lastNeed = 2; - return '\ufffd'; - } +exports.QueryValidatorRequest = { + encode(message, writer = _m0.Writer.create()) { + if (message.validatorAddr !== "") { + writer.uint32(10).string(message.validatorAddr); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryValidatorRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.validatorAddr = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseQueryValidatorRequest(); + message.validatorAddr = (_a = object.validatorAddr) !== null && _a !== void 0 ? _a : ""; + return message; } - } -} - -// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer. -function utf8FillLast(buf) { - var p = this.lastTotal - this.lastNeed; - var r = utf8CheckExtraBytes(this, buf, p); - if (r !== undefined) return r; - if (this.lastNeed <= buf.length) { - buf.copy(this.lastChar, p, 0, this.lastNeed); - return this.lastChar.toString(this.encoding, 0, this.lastTotal); - } - buf.copy(this.lastChar, p, 0, buf.length); - this.lastNeed -= buf.length; -} - -// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a -// partial character, the character's bytes are buffered until the required -// number of bytes are available. -function utf8Text(buf, i) { - var total = utf8CheckIncomplete(this, buf, i); - if (!this.lastNeed) return buf.toString('utf8', i); - this.lastTotal = total; - var end = buf.length - (total - this.lastNeed); - buf.copy(this.lastChar, 0, end); - return buf.toString('utf8', i, end); -} - -// For UTF-8, a replacement character is added when ending on a partial -// character. -function utf8End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) return r + '\ufffd'; - return r; +}; +function createBaseQueryValidatorResponse() { + return { + validator: undefined + }; } - -// UTF-16LE typically needs two bytes per character, but even if we have an even -// number of bytes available, we need to check if we end on a leading/high -// surrogate. In that case, we need to wait for the next two bytes in order to -// decode the last character properly. -function utf16Text(buf, i) { - if ((buf.length - i) % 2 === 0) { - var r = buf.toString('utf16le', i); - if (r) { - var c = r.charCodeAt(r.length - 1); - if (c >= 0xD800 && c <= 0xDBFF) { - this.lastNeed = 2; - this.lastTotal = 4; - this.lastChar[0] = buf[buf.length - 2]; - this.lastChar[1] = buf[buf.length - 1]; - return r.slice(0, -1); - } +exports.QueryValidatorResponse = { + encode(message, writer = _m0.Writer.create()) { + if (message.validator !== undefined) { + staking_1.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryValidatorResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.validator = staking_1.Validator.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + const message = createBaseQueryValidatorResponse(); + message.validator = object.validator !== undefined && object.validator !== null ? staking_1.Validator.fromPartial(object.validator) : undefined; + return message; } - return r; - } - this.lastNeed = 1; - this.lastTotal = 2; - this.lastChar[0] = buf[buf.length - 1]; - return buf.toString('utf16le', i, buf.length - 1); -} - -// For UTF-16LE we do not explicitly append special replacement characters if we -// end on a partial character, we simply let v8 handle that. -function utf16End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) { - var end = this.lastTotal - this.lastNeed; - return r + this.lastChar.toString('utf16le', 0, end); - } - return r; +}; +function createBaseQueryValidatorDelegationsRequest() { + return { + validatorAddr: "", + pagination: undefined + }; } - -function base64Text(buf, i) { - var n = (buf.length - i) % 3; - if (n === 0) return buf.toString('base64', i); - this.lastNeed = 3 - n; - this.lastTotal = 3; - if (n === 1) { - this.lastChar[0] = buf[buf.length - 1]; - } else { - this.lastChar[0] = buf[buf.length - 2]; - this.lastChar[1] = buf[buf.length - 1]; - } - return buf.toString('base64', i, buf.length - n); +exports.QueryValidatorDelegationsRequest = { + encode(message, writer = _m0.Writer.create()) { + if (message.validatorAddr !== "") { + writer.uint32(10).string(message.validatorAddr); + } + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryValidatorDelegationsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.validatorAddr = reader.string(); + break; + case 2: + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseQueryValidatorDelegationsRequest(); + message.validatorAddr = (_a = object.validatorAddr) !== null && _a !== void 0 ? _a : ""; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; + return message; + } +}; +function createBaseQueryValidatorDelegationsResponse() { + return { + delegationResponses: [], + pagination: undefined + }; } - -function base64End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed); - return r; +exports.QueryValidatorDelegationsResponse = { + encode(message, writer = _m0.Writer.create()) { + for (const v of message.delegationResponses) { + staking_1.DelegationResponse.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryValidatorDelegationsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.delegationResponses.push(staking_1.DelegationResponse.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseQueryValidatorDelegationsResponse(); + message.delegationResponses = ((_a = object.delegationResponses) === null || _a === void 0 ? void 0 : _a.map(e => staking_1.DelegationResponse.fromPartial(e))) || []; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; + return message; + } +}; +function createBaseQueryValidatorUnbondingDelegationsRequest() { + return { + validatorAddr: "", + pagination: undefined + }; } - -// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex) -function simpleWrite(buf) { - return buf.toString(this.encoding); +exports.QueryValidatorUnbondingDelegationsRequest = { + encode(message, writer = _m0.Writer.create()) { + if (message.validatorAddr !== "") { + writer.uint32(10).string(message.validatorAddr); + } + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryValidatorUnbondingDelegationsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.validatorAddr = reader.string(); + break; + case 2: + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseQueryValidatorUnbondingDelegationsRequest(); + message.validatorAddr = (_a = object.validatorAddr) !== null && _a !== void 0 ? _a : ""; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; + return message; + } +}; +function createBaseQueryValidatorUnbondingDelegationsResponse() { + return { + unbondingResponses: [], + pagination: undefined + }; } - -function simpleEnd(buf) { - return buf && buf.length ? this.write(buf) : ''; +exports.QueryValidatorUnbondingDelegationsResponse = { + encode(message, writer = _m0.Writer.create()) { + for (const v of message.unbondingResponses) { + staking_1.UnbondingDelegation.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryValidatorUnbondingDelegationsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.unbondingResponses.push(staking_1.UnbondingDelegation.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseQueryValidatorUnbondingDelegationsResponse(); + message.unbondingResponses = ((_a = object.unbondingResponses) === null || _a === void 0 ? void 0 : _a.map(e => staking_1.UnbondingDelegation.fromPartial(e))) || []; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; + return message; + } +}; +function createBaseQueryDelegationRequest() { + return { + delegatorAddr: "", + validatorAddr: "" + }; } - -/***/ }), - -/***/ "./node_modules/symbol-observable/lib/ponyfill.js": -/*!********************************************************!*\ - !*** ./node_modules/symbol-observable/lib/ponyfill.js ***! - \********************************************************/ -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = symbolObservablePonyfill; -function symbolObservablePonyfill(root) { - var result; - var _Symbol = root.Symbol; - - if (typeof _Symbol === 'function') { - if (_Symbol.observable) { - result = _Symbol.observable; - } else { - - // This just needs to be something that won't trample other user's Symbol.for use - // It also will guide people to the source of their issues, if this is problematic. - // META: It's a resource locator! - result = _Symbol['for']('https://github.com/benlesh/symbol-observable'); - try { - _Symbol.observable = result; - } catch (err) { - // Do nothing. In some environments, users have frozen `Symbol` for security reasons, - // if it is frozen assigning to it will throw. In this case, we don't care, because - // they will need to use the returned value from the ponyfill. - } - } - } else { - result = '@@observable'; - } - - return result; +exports.QueryDelegationRequest = { + encode(message, writer = _m0.Writer.create()) { + if (message.delegatorAddr !== "") { + writer.uint32(10).string(message.delegatorAddr); + } + if (message.validatorAddr !== "") { + writer.uint32(18).string(message.validatorAddr); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryDelegationRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.delegatorAddr = reader.string(); + break; + case 2: + message.validatorAddr = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b; + const message = createBaseQueryDelegationRequest(); + message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : ""; + message.validatorAddr = (_b = object.validatorAddr) !== null && _b !== void 0 ? _b : ""; + return message; + } }; - -/***/ }), - -/***/ "./node_modules/symbol-observable/ponyfill.js": -/*!****************************************************!*\ - !*** ./node_modules/symbol-observable/ponyfill.js ***! - \****************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! ./lib/ponyfill */ "./node_modules/symbol-observable/lib/ponyfill.js"); - - -/***/ }), - -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/abci/v1beta1/abci.ts": -/*!******************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/abci/v1beta1/abci.ts ***! - \******************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; +function createBaseQueryDelegationResponse() { + return { + delegationResponse: undefined + }; +} +exports.QueryDelegationResponse = { + encode(message, writer = _m0.Writer.create()) { + if (message.delegationResponse !== undefined) { + staking_1.DelegationResponse.encode(message.delegationResponse, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryDelegationResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.delegationResponse = staking_1.DelegationResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + const message = createBaseQueryDelegationResponse(); + message.delegationResponse = object.delegationResponse !== undefined && object.delegationResponse !== null ? staking_1.DelegationResponse.fromPartial(object.delegationResponse) : undefined; + return message; } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; }; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.SearchTxsResult = exports.TxMsgData = exports.MsgData = exports.SimulationResponse = exports.Result = exports.GasInfo = exports.Attribute = exports.StringEvent = exports.ABCIMessageLog = exports.TxResponse = void 0; -const any_1 = __webpack_require__(/*! ../../../../google/protobuf/any */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/any.ts"); -const types_1 = __webpack_require__(/*! ../../../../tendermint/abci/types */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/abci/types.ts"); -const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -function createBaseTxResponse() { +function createBaseQueryUnbondingDelegationRequest() { return { - height: helpers_1.Long.ZERO, - txhash: "", - codespace: "", - code: 0, - data: "", - rawLog: "", - logs: [], - info: "", - gasWanted: helpers_1.Long.ZERO, - gasUsed: helpers_1.Long.ZERO, - tx: undefined, - timestamp: "", - events: [] + delegatorAddr: "", + validatorAddr: "" }; } -exports.TxResponse = { +exports.QueryUnbondingDelegationRequest = { encode(message, writer = _m0.Writer.create()) { - if (!message.height.isZero()) { - writer.uint32(8).int64(message.height); + if (message.delegatorAddr !== "") { + writer.uint32(10).string(message.delegatorAddr); } - if (message.txhash !== "") { - writer.uint32(18).string(message.txhash); + if (message.validatorAddr !== "") { + writer.uint32(18).string(message.validatorAddr); } - if (message.codespace !== "") { - writer.uint32(26).string(message.codespace); + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryUnbondingDelegationRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.delegatorAddr = reader.string(); + break; + case 2: + message.validatorAddr = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } } - if (message.code !== 0) { - writer.uint32(32).uint32(message.code); + return message; + }, + fromPartial(object) { + var _a, _b; + const message = createBaseQueryUnbondingDelegationRequest(); + message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : ""; + message.validatorAddr = (_b = object.validatorAddr) !== null && _b !== void 0 ? _b : ""; + return message; + } +}; +function createBaseQueryUnbondingDelegationResponse() { + return { + unbond: undefined + }; +} +exports.QueryUnbondingDelegationResponse = { + encode(message, writer = _m0.Writer.create()) { + if (message.unbond !== undefined) { + staking_1.UnbondingDelegation.encode(message.unbond, writer.uint32(10).fork()).ldelim(); } - if (message.data !== "") { - writer.uint32(42).string(message.data); + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryUnbondingDelegationResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.unbond = staking_1.UnbondingDelegation.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } } - if (message.rawLog !== "") { - writer.uint32(50).string(message.rawLog); + return message; + }, + fromPartial(object) { + const message = createBaseQueryUnbondingDelegationResponse(); + message.unbond = object.unbond !== undefined && object.unbond !== null ? staking_1.UnbondingDelegation.fromPartial(object.unbond) : undefined; + return message; + } +}; +function createBaseQueryDelegatorDelegationsRequest() { + return { + delegatorAddr: "", + pagination: undefined + }; +} +exports.QueryDelegatorDelegationsRequest = { + encode(message, writer = _m0.Writer.create()) { + if (message.delegatorAddr !== "") { + writer.uint32(10).string(message.delegatorAddr); } - for (const v of message.logs) { - exports.ABCIMessageLog.encode(v, writer.uint32(58).fork()).ldelim(); + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); } - if (message.info !== "") { - writer.uint32(66).string(message.info); + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryDelegatorDelegationsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.delegatorAddr = reader.string(); + break; + case 2: + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } } - if (!message.gasWanted.isZero()) { - writer.uint32(72).int64(message.gasWanted); + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseQueryDelegatorDelegationsRequest(); + message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : ""; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; + return message; + } +}; +function createBaseQueryDelegatorDelegationsResponse() { + return { + delegationResponses: [], + pagination: undefined + }; +} +exports.QueryDelegatorDelegationsResponse = { + encode(message, writer = _m0.Writer.create()) { + for (const v of message.delegationResponses) { + staking_1.DelegationResponse.encode(v, writer.uint32(10).fork()).ldelim(); } - if (!message.gasUsed.isZero()) { - writer.uint32(80).int64(message.gasUsed); + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); } - if (message.tx !== undefined) { - any_1.Any.encode(message.tx, writer.uint32(90).fork()).ldelim(); + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryDelegatorDelegationsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.delegationResponses.push(staking_1.DelegationResponse.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } } - if (message.timestamp !== "") { - writer.uint32(98).string(message.timestamp); + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseQueryDelegatorDelegationsResponse(); + message.delegationResponses = ((_a = object.delegationResponses) === null || _a === void 0 ? void 0 : _a.map(e => staking_1.DelegationResponse.fromPartial(e))) || []; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; + return message; + } +}; +function createBaseQueryDelegatorUnbondingDelegationsRequest() { + return { + delegatorAddr: "", + pagination: undefined + }; +} +exports.QueryDelegatorUnbondingDelegationsRequest = { + encode(message, writer = _m0.Writer.create()) { + if (message.delegatorAddr !== "") { + writer.uint32(10).string(message.delegatorAddr); } - for (const v of message.events) { - types_1.Event.encode(v, writer.uint32(106).fork()).ldelim(); + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTxResponse(); + const message = createBaseQueryDelegatorUnbondingDelegationsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.height = reader.int64(); + message.delegatorAddr = reader.string(); break; case 2: - message.txhash = reader.string(); + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); break; - case 3: - message.codespace = reader.string(); + default: + reader.skipType(tag & 7); break; - case 4: - message.code = reader.uint32(); + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseQueryDelegatorUnbondingDelegationsRequest(); + message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : ""; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; + return message; + } +}; +function createBaseQueryDelegatorUnbondingDelegationsResponse() { + return { + unbondingResponses: [], + pagination: undefined + }; +} +exports.QueryDelegatorUnbondingDelegationsResponse = { + encode(message, writer = _m0.Writer.create()) { + for (const v of message.unbondingResponses) { + staking_1.UnbondingDelegation.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryDelegatorUnbondingDelegationsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.unbondingResponses.push(staking_1.UnbondingDelegation.decode(reader, reader.uint32())); break; - case 5: - message.data = reader.string(); + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); break; - case 6: - message.rawLog = reader.string(); + default: + reader.skipType(tag & 7); break; - case 7: - message.logs.push(exports.ABCIMessageLog.decode(reader, reader.uint32())); + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseQueryDelegatorUnbondingDelegationsResponse(); + message.unbondingResponses = ((_a = object.unbondingResponses) === null || _a === void 0 ? void 0 : _a.map(e => staking_1.UnbondingDelegation.fromPartial(e))) || []; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; + return message; + } +}; +function createBaseQueryRedelegationsRequest() { + return { + delegatorAddr: "", + srcValidatorAddr: "", + dstValidatorAddr: "", + pagination: undefined + }; +} +exports.QueryRedelegationsRequest = { + encode(message, writer = _m0.Writer.create()) { + if (message.delegatorAddr !== "") { + writer.uint32(10).string(message.delegatorAddr); + } + if (message.srcValidatorAddr !== "") { + writer.uint32(18).string(message.srcValidatorAddr); + } + if (message.dstValidatorAddr !== "") { + writer.uint32(26).string(message.dstValidatorAddr); + } + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryRedelegationsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.delegatorAddr = reader.string(); break; - case 8: - message.info = reader.string(); + case 2: + message.srcValidatorAddr = reader.string(); break; - case 9: - message.gasWanted = reader.int64(); + case 3: + message.dstValidatorAddr = reader.string(); break; - case 10: - message.gasUsed = reader.int64(); + case 4: + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); break; - case 11: - message.tx = any_1.Any.decode(reader, reader.uint32()); + default: + reader.skipType(tag & 7); break; - case 12: - message.timestamp = reader.string(); + } + } + return message; + }, + fromPartial(object) { + var _a, _b, _c; + const message = createBaseQueryRedelegationsRequest(); + message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : ""; + message.srcValidatorAddr = (_b = object.srcValidatorAddr) !== null && _b !== void 0 ? _b : ""; + message.dstValidatorAddr = (_c = object.dstValidatorAddr) !== null && _c !== void 0 ? _c : ""; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; + return message; + } +}; +function createBaseQueryRedelegationsResponse() { + return { + redelegationResponses: [], + pagination: undefined + }; +} +exports.QueryRedelegationsResponse = { + encode(message, writer = _m0.Writer.create()) { + for (const v of message.redelegationResponses) { + staking_1.RedelegationResponse.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryRedelegationsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.redelegationResponses.push(staking_1.RedelegationResponse.decode(reader, reader.uint32())); break; - case 13: - message.events.push(types_1.Event.decode(reader, reader.uint32())); + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -180256,59 +180379,41 @@ exports.TxResponse = { return message; }, fromPartial(object) { - var _a, _b, _c, _d, _e, _f, _g, _h, _j; - const message = createBaseTxResponse(); - message.height = object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; - message.txhash = (_a = object.txhash) !== null && _a !== void 0 ? _a : ""; - message.codespace = (_b = object.codespace) !== null && _b !== void 0 ? _b : ""; - message.code = (_c = object.code) !== null && _c !== void 0 ? _c : 0; - message.data = (_d = object.data) !== null && _d !== void 0 ? _d : ""; - message.rawLog = (_e = object.rawLog) !== null && _e !== void 0 ? _e : ""; - message.logs = ((_f = object.logs) === null || _f === void 0 ? void 0 : _f.map(e => exports.ABCIMessageLog.fromPartial(e))) || []; - message.info = (_g = object.info) !== null && _g !== void 0 ? _g : ""; - message.gasWanted = object.gasWanted !== undefined && object.gasWanted !== null ? helpers_1.Long.fromValue(object.gasWanted) : helpers_1.Long.ZERO; - message.gasUsed = object.gasUsed !== undefined && object.gasUsed !== null ? helpers_1.Long.fromValue(object.gasUsed) : helpers_1.Long.ZERO; - message.tx = object.tx !== undefined && object.tx !== null ? any_1.Any.fromPartial(object.tx) : undefined; - message.timestamp = (_h = object.timestamp) !== null && _h !== void 0 ? _h : ""; - message.events = ((_j = object.events) === null || _j === void 0 ? void 0 : _j.map(e => types_1.Event.fromPartial(e))) || []; + var _a; + const message = createBaseQueryRedelegationsResponse(); + message.redelegationResponses = ((_a = object.redelegationResponses) === null || _a === void 0 ? void 0 : _a.map(e => staking_1.RedelegationResponse.fromPartial(e))) || []; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; return message; } }; -function createBaseABCIMessageLog() { +function createBaseQueryDelegatorValidatorsRequest() { return { - msgIndex: 0, - log: "", - events: [] + delegatorAddr: "", + pagination: undefined }; } -exports.ABCIMessageLog = { +exports.QueryDelegatorValidatorsRequest = { encode(message, writer = _m0.Writer.create()) { - if (message.msgIndex !== 0) { - writer.uint32(8).uint32(message.msgIndex); - } - if (message.log !== "") { - writer.uint32(18).string(message.log); + if (message.delegatorAddr !== "") { + writer.uint32(10).string(message.delegatorAddr); } - for (const v of message.events) { - exports.StringEvent.encode(v, writer.uint32(26).fork()).ldelim(); + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseABCIMessageLog(); + const message = createBaseQueryDelegatorValidatorsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.msgIndex = reader.uint32(); + message.delegatorAddr = reader.string(); break; case 2: - message.log = reader.string(); - break; - case 3: - message.events.push(exports.StringEvent.decode(reader, reader.uint32())); + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -180318,42 +180423,41 @@ exports.ABCIMessageLog = { return message; }, fromPartial(object) { - var _a, _b, _c; - const message = createBaseABCIMessageLog(); - message.msgIndex = (_a = object.msgIndex) !== null && _a !== void 0 ? _a : 0; - message.log = (_b = object.log) !== null && _b !== void 0 ? _b : ""; - message.events = ((_c = object.events) === null || _c === void 0 ? void 0 : _c.map(e => exports.StringEvent.fromPartial(e))) || []; + var _a; + const message = createBaseQueryDelegatorValidatorsRequest(); + message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : ""; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; return message; } }; -function createBaseStringEvent() { +function createBaseQueryDelegatorValidatorsResponse() { return { - type: "", - attributes: [] + validators: [], + pagination: undefined }; } -exports.StringEvent = { +exports.QueryDelegatorValidatorsResponse = { encode(message, writer = _m0.Writer.create()) { - if (message.type !== "") { - writer.uint32(10).string(message.type); + for (const v of message.validators) { + staking_1.Validator.encode(v, writer.uint32(10).fork()).ldelim(); } - for (const v of message.attributes) { - exports.Attribute.encode(v, writer.uint32(18).fork()).ldelim(); + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseStringEvent(); + const message = createBaseQueryDelegatorValidatorsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.type = reader.string(); + message.validators.push(staking_1.Validator.decode(reader, reader.uint32())); break; case 2: - message.attributes.push(exports.Attribute.decode(reader, reader.uint32())); + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -180363,41 +180467,41 @@ exports.StringEvent = { return message; }, fromPartial(object) { - var _a, _b; - const message = createBaseStringEvent(); - message.type = (_a = object.type) !== null && _a !== void 0 ? _a : ""; - message.attributes = ((_b = object.attributes) === null || _b === void 0 ? void 0 : _b.map(e => exports.Attribute.fromPartial(e))) || []; + var _a; + const message = createBaseQueryDelegatorValidatorsResponse(); + message.validators = ((_a = object.validators) === null || _a === void 0 ? void 0 : _a.map(e => staking_1.Validator.fromPartial(e))) || []; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; return message; } }; -function createBaseAttribute() { +function createBaseQueryDelegatorValidatorRequest() { return { - key: "", - value: "" + delegatorAddr: "", + validatorAddr: "" }; } -exports.Attribute = { +exports.QueryDelegatorValidatorRequest = { encode(message, writer = _m0.Writer.create()) { - if (message.key !== "") { - writer.uint32(10).string(message.key); + if (message.delegatorAddr !== "") { + writer.uint32(10).string(message.delegatorAddr); } - if (message.value !== "") { - writer.uint32(18).string(message.value); + if (message.validatorAddr !== "") { + writer.uint32(18).string(message.validatorAddr); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAttribute(); + const message = createBaseQueryDelegatorValidatorRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.key = reader.string(); + message.delegatorAddr = reader.string(); break; case 2: - message.value = reader.string(); + message.validatorAddr = reader.string(); break; default: reader.skipType(tag & 7); @@ -180408,40 +180512,68 @@ exports.Attribute = { }, fromPartial(object) { var _a, _b; - const message = createBaseAttribute(); - message.key = (_a = object.key) !== null && _a !== void 0 ? _a : ""; - message.value = (_b = object.value) !== null && _b !== void 0 ? _b : ""; + const message = createBaseQueryDelegatorValidatorRequest(); + message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : ""; + message.validatorAddr = (_b = object.validatorAddr) !== null && _b !== void 0 ? _b : ""; return message; } }; -function createBaseGasInfo() { +function createBaseQueryDelegatorValidatorResponse() { return { - gasWanted: helpers_1.Long.UZERO, - gasUsed: helpers_1.Long.UZERO + validator: undefined }; } -exports.GasInfo = { +exports.QueryDelegatorValidatorResponse = { encode(message, writer = _m0.Writer.create()) { - if (!message.gasWanted.isZero()) { - writer.uint32(8).uint64(message.gasWanted); - } - if (!message.gasUsed.isZero()) { - writer.uint32(16).uint64(message.gasUsed); + if (message.validator !== undefined) { + staking_1.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGasInfo(); + const message = createBaseQueryDelegatorValidatorResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.gasWanted = reader.uint64(); + message.validator = staking_1.Validator.decode(reader, reader.uint32()); break; - case 2: - message.gasUsed = reader.uint64(); + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + const message = createBaseQueryDelegatorValidatorResponse(); + message.validator = object.validator !== undefined && object.validator !== null ? staking_1.Validator.fromPartial(object.validator) : undefined; + return message; + } +}; +function createBaseQueryHistoricalInfoRequest() { + return { + height: helpers_1.Long.ZERO + }; +} +exports.QueryHistoricalInfoRequest = { + encode(message, writer = _m0.Writer.create()) { + if (!message.height.isZero()) { + writer.uint32(8).int64(message.height); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryHistoricalInfoRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.height = reader.int64(); break; default: reader.skipType(tag & 7); @@ -180451,54 +180583,154 @@ exports.GasInfo = { return message; }, fromPartial(object) { - const message = createBaseGasInfo(); - message.gasWanted = object.gasWanted !== undefined && object.gasWanted !== null ? helpers_1.Long.fromValue(object.gasWanted) : helpers_1.Long.UZERO; - message.gasUsed = object.gasUsed !== undefined && object.gasUsed !== null ? helpers_1.Long.fromValue(object.gasUsed) : helpers_1.Long.UZERO; + const message = createBaseQueryHistoricalInfoRequest(); + message.height = object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; return message; } }; -function createBaseResult() { +function createBaseQueryHistoricalInfoResponse() { return { - data: new Uint8Array(), - log: "", - events: [], - msgResponses: [] + hist: undefined }; } -exports.Result = { +exports.QueryHistoricalInfoResponse = { encode(message, writer = _m0.Writer.create()) { - if (message.data.length !== 0) { - writer.uint32(10).bytes(message.data); + if (message.hist !== undefined) { + staking_1.HistoricalInfo.encode(message.hist, writer.uint32(10).fork()).ldelim(); } - if (message.log !== "") { - writer.uint32(18).string(message.log); + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryHistoricalInfoResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.hist = staking_1.HistoricalInfo.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } } - for (const v of message.events) { - types_1.Event.encode(v, writer.uint32(26).fork()).ldelim(); + return message; + }, + fromPartial(object) { + const message = createBaseQueryHistoricalInfoResponse(); + message.hist = object.hist !== undefined && object.hist !== null ? staking_1.HistoricalInfo.fromPartial(object.hist) : undefined; + return message; + } +}; +function createBaseQueryPoolRequest() { + return {}; +} +exports.QueryPoolRequest = { + encode(_, writer = _m0.Writer.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryPoolRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } } - for (const v of message.msgResponses) { - any_1.Any.encode(v, writer.uint32(34).fork()).ldelim(); + return message; + }, + fromPartial(_) { + const message = createBaseQueryPoolRequest(); + return message; + } +}; +function createBaseQueryPoolResponse() { + return { + pool: undefined + }; +} +exports.QueryPoolResponse = { + encode(message, writer = _m0.Writer.create()) { + if (message.pool !== undefined) { + staking_1.Pool.encode(message.pool, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResult(); + const message = createBaseQueryPoolResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.data = reader.bytes(); + message.pool = staking_1.Pool.decode(reader, reader.uint32()); break; - case 2: - message.log = reader.string(); + default: + reader.skipType(tag & 7); break; - case 3: - message.events.push(types_1.Event.decode(reader, reader.uint32())); + } + } + return message; + }, + fromPartial(object) { + const message = createBaseQueryPoolResponse(); + message.pool = object.pool !== undefined && object.pool !== null ? staking_1.Pool.fromPartial(object.pool) : undefined; + return message; + } +}; +function createBaseQueryParamsRequest() { + return {}; +} +exports.QueryParamsRequest = { + encode(_, writer = _m0.Writer.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryParamsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); break; - case 4: - message.msgResponses.push(any_1.Any.decode(reader, reader.uint32())); + } + } + return message; + }, + fromPartial(_) { + const message = createBaseQueryParamsRequest(); + return message; + } +}; +function createBaseQueryParamsResponse() { + return { + params: undefined + }; +} +exports.QueryParamsResponse = { + encode(message, writer = _m0.Writer.create()) { + if (message.params !== undefined) { + staking_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryParamsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.params = staking_1.Params.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -180508,43 +180740,179 @@ exports.Result = { return message; }, fromPartial(object) { - var _a, _b, _c, _d; - const message = createBaseResult(); - message.data = (_a = object.data) !== null && _a !== void 0 ? _a : new Uint8Array(); - message.log = (_b = object.log) !== null && _b !== void 0 ? _b : ""; - message.events = ((_c = object.events) === null || _c === void 0 ? void 0 : _c.map(e => types_1.Event.fromPartial(e))) || []; - message.msgResponses = ((_d = object.msgResponses) === null || _d === void 0 ? void 0 : _d.map(e => any_1.Any.fromPartial(e))) || []; + const message = createBaseQueryParamsResponse(); + message.params = object.params !== undefined && object.params !== null ? staking_1.Params.fromPartial(object.params) : undefined; return message; } }; -function createBaseSimulationResponse() { +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9jb3Ntb3Mvc3Rha2luZy92MWJldGExL3F1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0VBQXlIO0FBQ3pILHVDQUE0UjtBQUM1Uix3REFBMEM7QUFDMUMsOENBQXFEO0FBZ2VyRCxTQUFTLGdDQUFnQztJQUN2QyxPQUFPO1FBQ0wsTUFBTSxFQUFFLEVBQUU7UUFDVixVQUFVLEVBQUUsU0FBUztLQUN0QixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsc0JBQXNCLEdBQUc7SUFDcEMsTUFBTSxDQUFDLE9BQStCLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDOUUsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRTtZQUN6QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDMUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFO1lBQ3BDLHdCQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzNFO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtB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 + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/staking.ts": +/*!*******************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/staking.ts ***! + \*******************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ValidatorUpdates = exports.Pool = exports.RedelegationResponse = exports.RedelegationEntryResponse = exports.DelegationResponse = exports.Params = exports.Redelegation = exports.RedelegationEntry = exports.UnbondingDelegationEntry = exports.UnbondingDelegation = exports.Delegation = exports.DVVTriplets = exports.DVVTriplet = exports.DVPairs = exports.DVPair = exports.ValAddresses = exports.Validator = exports.Description = exports.Commission = exports.CommissionRates = exports.HistoricalInfo = exports.infractionToJSON = exports.infractionFromJSON = exports.InfractionSDKType = exports.Infraction = exports.bondStatusToJSON = exports.bondStatusFromJSON = exports.BondStatusSDKType = exports.BondStatus = void 0; +const types_1 = __webpack_require__(/*! ../../../tendermint/types/types */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/types.ts"); +const timestamp_1 = __webpack_require__(/*! ../../../google/protobuf/timestamp */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/timestamp.ts"); +const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/any.ts"); +const duration_1 = __webpack_require__(/*! ../../../google/protobuf/duration */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/duration.ts"); +const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/v1beta1/coin.ts"); +const types_2 = __webpack_require__(/*! ../../../tendermint/abci/types */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/abci/types.ts"); +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); +/** BondStatus is the status of a validator. */ +var BondStatus; +(function (BondStatus) { + /** BOND_STATUS_UNSPECIFIED - UNSPECIFIED defines an invalid validator status. */ + BondStatus[BondStatus["BOND_STATUS_UNSPECIFIED"] = 0] = "BOND_STATUS_UNSPECIFIED"; + /** BOND_STATUS_UNBONDED - UNBONDED defines a validator that is not bonded. */ + BondStatus[BondStatus["BOND_STATUS_UNBONDED"] = 1] = "BOND_STATUS_UNBONDED"; + /** BOND_STATUS_UNBONDING - UNBONDING defines a validator that is unbonding. */ + BondStatus[BondStatus["BOND_STATUS_UNBONDING"] = 2] = "BOND_STATUS_UNBONDING"; + /** BOND_STATUS_BONDED - BONDED defines a validator that is bonded. */ + BondStatus[BondStatus["BOND_STATUS_BONDED"] = 3] = "BOND_STATUS_BONDED"; + BondStatus[BondStatus["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(BondStatus = exports.BondStatus || (exports.BondStatus = {})); +exports.BondStatusSDKType = BondStatus; +function bondStatusFromJSON(object) { + switch (object) { + case 0: + case "BOND_STATUS_UNSPECIFIED": + return BondStatus.BOND_STATUS_UNSPECIFIED; + case 1: + case "BOND_STATUS_UNBONDED": + return BondStatus.BOND_STATUS_UNBONDED; + case 2: + case "BOND_STATUS_UNBONDING": + return BondStatus.BOND_STATUS_UNBONDING; + case 3: + case "BOND_STATUS_BONDED": + return BondStatus.BOND_STATUS_BONDED; + case -1: + case "UNRECOGNIZED": + default: + return BondStatus.UNRECOGNIZED; + } +} +exports.bondStatusFromJSON = bondStatusFromJSON; +function bondStatusToJSON(object) { + switch (object) { + case BondStatus.BOND_STATUS_UNSPECIFIED: + return "BOND_STATUS_UNSPECIFIED"; + case BondStatus.BOND_STATUS_UNBONDED: + return "BOND_STATUS_UNBONDED"; + case BondStatus.BOND_STATUS_UNBONDING: + return "BOND_STATUS_UNBONDING"; + case BondStatus.BOND_STATUS_BONDED: + return "BOND_STATUS_BONDED"; + case BondStatus.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} +exports.bondStatusToJSON = bondStatusToJSON; +/** Infraction indicates the infraction a validator commited. */ +var Infraction; +(function (Infraction) { + /** INFRACTION_UNSPECIFIED - UNSPECIFIED defines an empty infraction. */ + Infraction[Infraction["INFRACTION_UNSPECIFIED"] = 0] = "INFRACTION_UNSPECIFIED"; + /** INFRACTION_DOUBLE_SIGN - DOUBLE_SIGN defines a validator that double-signs a block. */ + Infraction[Infraction["INFRACTION_DOUBLE_SIGN"] = 1] = "INFRACTION_DOUBLE_SIGN"; + /** INFRACTION_DOWNTIME - DOWNTIME defines a validator that missed signing too many blocks. */ + Infraction[Infraction["INFRACTION_DOWNTIME"] = 2] = "INFRACTION_DOWNTIME"; + Infraction[Infraction["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(Infraction = exports.Infraction || (exports.Infraction = {})); +exports.InfractionSDKType = Infraction; +function infractionFromJSON(object) { + switch (object) { + case 0: + case "INFRACTION_UNSPECIFIED": + return Infraction.INFRACTION_UNSPECIFIED; + case 1: + case "INFRACTION_DOUBLE_SIGN": + return Infraction.INFRACTION_DOUBLE_SIGN; + case 2: + case "INFRACTION_DOWNTIME": + return Infraction.INFRACTION_DOWNTIME; + case -1: + case "UNRECOGNIZED": + default: + return Infraction.UNRECOGNIZED; + } +} +exports.infractionFromJSON = infractionFromJSON; +function infractionToJSON(object) { + switch (object) { + case Infraction.INFRACTION_UNSPECIFIED: + return "INFRACTION_UNSPECIFIED"; + case Infraction.INFRACTION_DOUBLE_SIGN: + return "INFRACTION_DOUBLE_SIGN"; + case Infraction.INFRACTION_DOWNTIME: + return "INFRACTION_DOWNTIME"; + case Infraction.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} +exports.infractionToJSON = infractionToJSON; +function createBaseHistoricalInfo() { return { - gasInfo: undefined, - result: undefined + header: undefined, + valset: [] }; } -exports.SimulationResponse = { +exports.HistoricalInfo = { encode(message, writer = _m0.Writer.create()) { - if (message.gasInfo !== undefined) { - exports.GasInfo.encode(message.gasInfo, writer.uint32(10).fork()).ldelim(); + if (message.header !== undefined) { + types_1.Header.encode(message.header, writer.uint32(10).fork()).ldelim(); } - if (message.result !== undefined) { - exports.Result.encode(message.result, writer.uint32(18).fork()).ldelim(); + for (const v of message.valset) { + exports.Validator.encode(v, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSimulationResponse(); + const message = createBaseHistoricalInfo(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.gasInfo = exports.GasInfo.decode(reader, reader.uint32()); + message.header = types_1.Header.decode(reader, reader.uint32()); break; case 2: - message.result = exports.Result.decode(reader, reader.uint32()); + message.valset.push(exports.Validator.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -180554,40 +180922,48 @@ exports.SimulationResponse = { return message; }, fromPartial(object) { - const message = createBaseSimulationResponse(); - message.gasInfo = object.gasInfo !== undefined && object.gasInfo !== null ? exports.GasInfo.fromPartial(object.gasInfo) : undefined; - message.result = object.result !== undefined && object.result !== null ? exports.Result.fromPartial(object.result) : undefined; + var _a; + const message = createBaseHistoricalInfo(); + message.header = object.header !== undefined && object.header !== null ? types_1.Header.fromPartial(object.header) : undefined; + message.valset = ((_a = object.valset) === null || _a === void 0 ? void 0 : _a.map(e => exports.Validator.fromPartial(e))) || []; return message; } }; -function createBaseMsgData() { +function createBaseCommissionRates() { return { - msgType: "", - data: new Uint8Array() + rate: "", + maxRate: "", + maxChangeRate: "" }; } -exports.MsgData = { +exports.CommissionRates = { encode(message, writer = _m0.Writer.create()) { - if (message.msgType !== "") { - writer.uint32(10).string(message.msgType); + if (message.rate !== "") { + writer.uint32(10).string(message.rate); } - if (message.data.length !== 0) { - writer.uint32(18).bytes(message.data); + if (message.maxRate !== "") { + writer.uint32(18).string(message.maxRate); + } + if (message.maxChangeRate !== "") { + writer.uint32(26).string(message.maxChangeRate); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgData(); + const message = createBaseCommissionRates(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.msgType = reader.string(); + message.rate = reader.string(); break; case 2: - message.data = reader.bytes(); + message.maxRate = reader.string(); + break; + case 3: + message.maxChangeRate = reader.string(); break; default: reader.skipType(tag & 7); @@ -180597,41 +180973,42 @@ exports.MsgData = { return message; }, fromPartial(object) { - var _a, _b; - const message = createBaseMsgData(); - message.msgType = (_a = object.msgType) !== null && _a !== void 0 ? _a : ""; - message.data = (_b = object.data) !== null && _b !== void 0 ? _b : new Uint8Array(); + var _a, _b, _c; + const message = createBaseCommissionRates(); + message.rate = (_a = object.rate) !== null && _a !== void 0 ? _a : ""; + message.maxRate = (_b = object.maxRate) !== null && _b !== void 0 ? _b : ""; + message.maxChangeRate = (_c = object.maxChangeRate) !== null && _c !== void 0 ? _c : ""; return message; } }; -function createBaseTxMsgData() { +function createBaseCommission() { return { - data: [], - msgResponses: [] + commissionRates: undefined, + updateTime: undefined }; } -exports.TxMsgData = { +exports.Commission = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.data) { - exports.MsgData.encode(v, writer.uint32(10).fork()).ldelim(); + if (message.commissionRates !== undefined) { + exports.CommissionRates.encode(message.commissionRates, writer.uint32(10).fork()).ldelim(); } - for (const v of message.msgResponses) { - any_1.Any.encode(v, writer.uint32(18).fork()).ldelim(); + if (message.updateTime !== undefined) { + timestamp_1.Timestamp.encode((0, helpers_1.toTimestamp)(message.updateTime), writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTxMsgData(); + const message = createBaseCommission(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.data.push(exports.MsgData.decode(reader, reader.uint32())); + message.commissionRates = exports.CommissionRates.decode(reader, reader.uint32()); break; case 2: - message.msgResponses.push(any_1.Any.decode(reader, reader.uint32())); + message.updateTime = (0, helpers_1.fromTimestamp)(timestamp_1.Timestamp.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -180641,69 +181018,62 @@ exports.TxMsgData = { return message; }, fromPartial(object) { - var _a, _b; - const message = createBaseTxMsgData(); - message.data = ((_a = object.data) === null || _a === void 0 ? void 0 : _a.map(e => exports.MsgData.fromPartial(e))) || []; - message.msgResponses = ((_b = object.msgResponses) === null || _b === void 0 ? void 0 : _b.map(e => any_1.Any.fromPartial(e))) || []; + var _a; + const message = createBaseCommission(); + message.commissionRates = object.commissionRates !== undefined && object.commissionRates !== null ? exports.CommissionRates.fromPartial(object.commissionRates) : undefined; + message.updateTime = (_a = object.updateTime) !== null && _a !== void 0 ? _a : undefined; return message; } }; -function createBaseSearchTxsResult() { +function createBaseDescription() { return { - totalCount: helpers_1.Long.UZERO, - count: helpers_1.Long.UZERO, - pageNumber: helpers_1.Long.UZERO, - pageTotal: helpers_1.Long.UZERO, - limit: helpers_1.Long.UZERO, - txs: [] + moniker: "", + identity: "", + website: "", + securityContact: "", + details: "" }; } -exports.SearchTxsResult = { +exports.Description = { encode(message, writer = _m0.Writer.create()) { - if (!message.totalCount.isZero()) { - writer.uint32(8).uint64(message.totalCount); - } - if (!message.count.isZero()) { - writer.uint32(16).uint64(message.count); + if (message.moniker !== "") { + writer.uint32(10).string(message.moniker); } - if (!message.pageNumber.isZero()) { - writer.uint32(24).uint64(message.pageNumber); + if (message.identity !== "") { + writer.uint32(18).string(message.identity); } - if (!message.pageTotal.isZero()) { - writer.uint32(32).uint64(message.pageTotal); + if (message.website !== "") { + writer.uint32(26).string(message.website); } - if (!message.limit.isZero()) { - writer.uint32(40).uint64(message.limit); + if (message.securityContact !== "") { + writer.uint32(34).string(message.securityContact); } - for (const v of message.txs) { - exports.TxResponse.encode(v, writer.uint32(50).fork()).ldelim(); + if (message.details !== "") { + writer.uint32(42).string(message.details); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSearchTxsResult(); + const message = createBaseDescription(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.totalCount = reader.uint64(); + message.moniker = reader.string(); break; case 2: - message.count = reader.uint64(); + message.identity = reader.string(); break; case 3: - message.pageNumber = reader.uint64(); + message.website = reader.string(); break; case 4: - message.pageTotal = reader.uint64(); - break; - case 5: - message.limit = reader.uint64(); + message.securityContact = reader.string(); break; - case 6: - message.txs.push(exports.TxResponse.decode(reader, reader.uint32())); + case 5: + message.details = reader.string(); break; default: reader.skipType(tag & 7); @@ -180713,105 +181083,131 @@ exports.SearchTxsResult = { return message; }, fromPartial(object) { - var _a; - const message = createBaseSearchTxsResult(); - message.totalCount = object.totalCount !== undefined && object.totalCount !== null ? helpers_1.Long.fromValue(object.totalCount) : helpers_1.Long.UZERO; - message.count = object.count !== undefined && object.count !== null ? helpers_1.Long.fromValue(object.count) : helpers_1.Long.UZERO; - message.pageNumber = object.pageNumber !== undefined && object.pageNumber !== null ? helpers_1.Long.fromValue(object.pageNumber) : helpers_1.Long.UZERO; - message.pageTotal = object.pageTotal !== undefined && object.pageTotal !== null ? helpers_1.Long.fromValue(object.pageTotal) : helpers_1.Long.UZERO; - message.limit = object.limit !== undefined && object.limit !== null ? helpers_1.Long.fromValue(object.limit) : helpers_1.Long.UZERO; - message.txs = ((_a = object.txs) === null || _a === void 0 ? void 0 : _a.map(e => exports.TxResponse.fromPartial(e))) || []; + var _a, _b, _c, _d, _e; + const message = createBaseDescription(); + message.moniker = (_a = object.moniker) !== null && _a !== void 0 ? _a : ""; + message.identity = (_b = object.identity) !== null && _b !== void 0 ? _b : ""; + message.website = (_c = object.website) !== null && _c !== void 0 ? _c : ""; + message.securityContact = (_d = object.securityContact) !== null && _d !== void 0 ? _d : ""; + message.details = (_e = object.details) !== null && _e !== void 0 ? _e : ""; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJjaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZHlkeHByb3RvY29sL3Y0LXByb3RvL3NyYy9jb2RlZ2VuL2Nvc21vcy9iYXNlL2FiY2kvdjFiZXRhMS9hYmNpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseURBQWtFO0FBQ2xFLDZEQUF3RTtBQUN4RSxpREFBd0Q7QUFDeEQsd0RBQTBDO0FBZ1MxQyxTQUFTLG9CQUFvQjtJQUMzQixPQUFPO1FBQ0wsTUFBTSxFQUFFLGNBQUksQ0FBQyxJQUFJO1FBQ2pCLE1BQU0sRUFBRSxFQUFFO1FBQ1YsU0FBUyxFQUFFLEVBQUU7UUFDYixJQUFJLEVBQUUsQ0FBQztRQUNQLElBQUksRUFBRSxFQUFFO1FBQ1IsTUFBTSxFQUFFLEVBQUU7UUFDVixJQUFJLEVBQUUsRUFBRTtRQUNSLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLGNBQUksQ0FBQyxJQUFJO1FBQ3BCLE9BQU8sRUFBRSxjQUFJLENBQUMsSUFBSTtRQUNsQixFQUFFLEVBQUUsU0FBUztRQUNiLFNBQVMsRUFBRSxFQUFFO1FBQ2IsTUFBTSxFQUFFLEVBQUU7S0FDWCxDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsVUFBVSxHQUFHO0lBQ3hCLE1BQU0sQ0FBQyxPQUFtQixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ2xFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQzVCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN4QztRQUVELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUU7WUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFF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QUMsY0FBSSxDQUFDLEtBQUssQ0FBQztRQUNoSCxPQUFPLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBSSxDQUFDLEtBQUssQ0FBQztRQUNwSSxPQUFPLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBSSxDQUFDLEtBQUssQ0FBQztRQUNoSSxPQUFPLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBSSxDQUFDLEtBQUssQ0FBQztRQUNoSCxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUEsTUFBQSxNQUFNLENBQUMsR0FBRywwQ0FBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxrQkFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLEVBQUUsQ0FBQztRQUNwRSxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBRUYsQ0FBQyJ9 - -/***/ }), - -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/query/v1beta1/pagination.ts": -/*!*************************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/query/v1beta1/pagination.ts ***! - \*************************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.PageResponse = exports.PageRequest = void 0; -const helpers_1 = __webpack_require__(/*! ../../../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -function createBasePageRequest() { +function createBaseValidator() { return { - key: new Uint8Array(), - offset: helpers_1.Long.UZERO, - limit: helpers_1.Long.UZERO, - countTotal: false, - reverse: false + operatorAddress: "", + consensusPubkey: undefined, + jailed: false, + status: 0, + tokens: "", + delegatorShares: "", + description: undefined, + unbondingHeight: helpers_1.Long.ZERO, + unbondingTime: undefined, + commission: undefined, + minSelfDelegation: "", + unbondingOnHoldRefCount: helpers_1.Long.ZERO, + unbondingIds: [] }; } -exports.PageRequest = { +exports.Validator = { encode(message, writer = _m0.Writer.create()) { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); + if (message.operatorAddress !== "") { + writer.uint32(10).string(message.operatorAddress); } - if (!message.offset.isZero()) { - writer.uint32(16).uint64(message.offset); + if (message.consensusPubkey !== undefined) { + any_1.Any.encode(message.consensusPubkey, writer.uint32(18).fork()).ldelim(); } - if (!message.limit.isZero()) { - writer.uint32(24).uint64(message.limit); + if (message.jailed === true) { + writer.uint32(24).bool(message.jailed); } - if (message.countTotal === true) { - writer.uint32(32).bool(message.countTotal); + if (message.status !== 0) { + writer.uint32(32).int32(message.status); } - if (message.reverse === true) { - writer.uint32(40).bool(message.reverse); + if (message.tokens !== "") { + writer.uint32(42).string(message.tokens); + } + if (message.delegatorShares !== "") { + writer.uint32(50).string(message.delegatorShares); + } + if (message.description !== undefined) { + exports.Description.encode(message.description, writer.uint32(58).fork()).ldelim(); + } + if (!message.unbondingHeight.isZero()) { + writer.uint32(64).int64(message.unbondingHeight); + } + if (message.unbondingTime !== undefined) { + timestamp_1.Timestamp.encode((0, helpers_1.toTimestamp)(message.unbondingTime), writer.uint32(74).fork()).ldelim(); + } + if (message.commission !== undefined) { + exports.Commission.encode(message.commission, writer.uint32(82).fork()).ldelim(); } + if (message.minSelfDelegation !== "") { + writer.uint32(90).string(message.minSelfDelegation); + } + if (!message.unbondingOnHoldRefCount.isZero()) { + writer.uint32(96).int64(message.unbondingOnHoldRefCount); + } + writer.uint32(106).fork(); + for (const v of message.unbondingIds) { + writer.uint64(v); + } + writer.ldelim(); return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePageRequest(); + const message = createBaseValidator(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.key = reader.bytes(); + message.operatorAddress = reader.string(); break; case 2: - message.offset = reader.uint64(); + message.consensusPubkey = any_1.Any.decode(reader, reader.uint32()); break; case 3: - message.limit = reader.uint64(); + message.jailed = reader.bool(); break; case 4: - message.countTotal = reader.bool(); + message.status = reader.int32(); break; case 5: - message.reverse = reader.bool(); + message.tokens = reader.string(); + break; + case 6: + message.delegatorShares = reader.string(); + break; + case 7: + message.description = exports.Description.decode(reader, reader.uint32()); + break; + case 8: + message.unbondingHeight = reader.int64(); + break; + case 9: + message.unbondingTime = (0, helpers_1.fromTimestamp)(timestamp_1.Timestamp.decode(reader, reader.uint32())); + break; + case 10: + message.commission = exports.Commission.decode(reader, reader.uint32()); + break; + case 11: + message.minSelfDelegation = reader.string(); + break; + case 12: + message.unbondingOnHoldRefCount = reader.int64(); + break; + case 13: + if ((tag & 7) === 2) { + const end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) { + message.unbondingIds.push(reader.uint64()); + } + } + else { + message.unbondingIds.push(reader.uint64()); + } break; default: reader.skipType(tag & 7); @@ -180821,44 +181217,45 @@ exports.PageRequest = { return message; }, fromPartial(object) { - var _a, _b, _c; - const message = createBasePageRequest(); - message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array(); - message.offset = object.offset !== undefined && object.offset !== null ? helpers_1.Long.fromValue(object.offset) : helpers_1.Long.UZERO; - message.limit = object.limit !== undefined && object.limit !== null ? helpers_1.Long.fromValue(object.limit) : helpers_1.Long.UZERO; - message.countTotal = (_b = object.countTotal) !== null && _b !== void 0 ? _b : false; - message.reverse = (_c = object.reverse) !== null && _c !== void 0 ? _c : false; + var _a, _b, _c, _d, _e, _f, _g, _h; + const message = createBaseValidator(); + message.operatorAddress = (_a = object.operatorAddress) !== null && _a !== void 0 ? _a : ""; + message.consensusPubkey = object.consensusPubkey !== undefined && object.consensusPubkey !== null ? any_1.Any.fromPartial(object.consensusPubkey) : undefined; + message.jailed = (_b = object.jailed) !== null && _b !== void 0 ? _b : false; + message.status = (_c = object.status) !== null && _c !== void 0 ? _c : 0; + message.tokens = (_d = object.tokens) !== null && _d !== void 0 ? _d : ""; + message.delegatorShares = (_e = object.delegatorShares) !== null && _e !== void 0 ? _e : ""; + message.description = object.description !== undefined && object.description !== null ? exports.Description.fromPartial(object.description) : undefined; + message.unbondingHeight = object.unbondingHeight !== undefined && object.unbondingHeight !== null ? helpers_1.Long.fromValue(object.unbondingHeight) : helpers_1.Long.ZERO; + message.unbondingTime = (_f = object.unbondingTime) !== null && _f !== void 0 ? _f : undefined; + message.commission = object.commission !== undefined && object.commission !== null ? exports.Commission.fromPartial(object.commission) : undefined; + message.minSelfDelegation = (_g = object.minSelfDelegation) !== null && _g !== void 0 ? _g : ""; + message.unbondingOnHoldRefCount = object.unbondingOnHoldRefCount !== undefined && object.unbondingOnHoldRefCount !== null ? helpers_1.Long.fromValue(object.unbondingOnHoldRefCount) : helpers_1.Long.ZERO; + message.unbondingIds = ((_h = object.unbondingIds) === null || _h === void 0 ? void 0 : _h.map(e => helpers_1.Long.fromValue(e))) || []; return message; } }; -function createBasePageResponse() { +function createBaseValAddresses() { return { - nextKey: new Uint8Array(), - total: helpers_1.Long.UZERO + addresses: [] }; } -exports.PageResponse = { +exports.ValAddresses = { encode(message, writer = _m0.Writer.create()) { - if (message.nextKey.length !== 0) { - writer.uint32(10).bytes(message.nextKey); - } - if (!message.total.isZero()) { - writer.uint32(16).uint64(message.total); + for (const v of message.addresses) { + writer.uint32(10).string(v); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePageResponse(); + const message = createBaseValAddresses(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.nextKey = reader.bytes(); - break; - case 2: - message.total = reader.uint64(); + message.addresses.push(reader.string()); break; default: reader.skipType(tag & 7); @@ -180869,78 +181266,39 @@ exports.PageResponse = { }, fromPartial(object) { var _a; - const message = createBasePageResponse(); - message.nextKey = (_a = object.nextKey) !== null && _a !== void 0 ? _a : new Uint8Array(); - message.total = object.total !== undefined && object.total !== null ? helpers_1.Long.fromValue(object.total) : helpers_1.Long.UZERO; + const message = createBaseValAddresses(); + message.addresses = ((_a = object.addresses) === null || _a === void 0 ? void 0 : _a.map(e => e)) || []; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZHlkeHByb3RvY29sL3Y0LXByb3RvL3NyYy9jb2RlZ2VuL2Nvc21vcy9iYXNlL3F1ZXJ5L3YxYmV0YTEvcGFnaW5hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUF3RDtBQUN4RCx3REFBMEM7QUF1RzFDLFNBQVMscUJBQXFCO0lBQzVCLE9BQU87UUFDTCxHQUFHLEVBQUUsSUFBSSxVQUFVLEVBQUU7UUFDckIsTUFBTSxFQUFFLGNBQUksQ0FBQyxLQUFLO1FBQ2xCLEtBQUssRUFBRSxjQUFJLENBQUMsS0FBSztRQUNqQixVQUFVLEVBQUUsS0FBSztRQUNqQixPQUFPLEVBQUUsS0FBSztLQUNmLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxXQUFXLEdBQUc7SUFDekIsTUFBTSxDQUFDLE9BQW9CLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDbkUsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3RDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFD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 - -/***/ }), - -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/v1beta1/coin.ts": -/*!*************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/v1beta1/coin.ts ***! - \*************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.DecProto = exports.IntProto = exports.DecCoin = exports.Coin = void 0; -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -function createBaseCoin() { +function createBaseDVPair() { return { - denom: "", - amount: "" + delegatorAddress: "", + validatorAddress: "" }; } -exports.Coin = { +exports.DVPair = { encode(message, writer = _m0.Writer.create()) { - if (message.denom !== "") { - writer.uint32(10).string(message.denom); + if (message.delegatorAddress !== "") { + writer.uint32(10).string(message.delegatorAddress); } - if (message.amount !== "") { - writer.uint32(18).string(message.amount); + if (message.validatorAddress !== "") { + writer.uint32(18).string(message.validatorAddress); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCoin(); + const message = createBaseDVPair(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.denom = reader.string(); + message.delegatorAddress = reader.string(); break; case 2: - message.amount = reader.string(); + message.validatorAddress = reader.string(); break; default: reader.skipType(tag & 7); @@ -180951,40 +181309,33 @@ exports.Coin = { }, fromPartial(object) { var _a, _b; - const message = createBaseCoin(); - message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : ""; - message.amount = (_b = object.amount) !== null && _b !== void 0 ? _b : ""; + const message = createBaseDVPair(); + message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : ""; + message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : ""; return message; } }; -function createBaseDecCoin() { +function createBaseDVPairs() { return { - denom: "", - amount: "" + pairs: [] }; } -exports.DecCoin = { +exports.DVPairs = { encode(message, writer = _m0.Writer.create()) { - if (message.denom !== "") { - writer.uint32(10).string(message.denom); - } - if (message.amount !== "") { - writer.uint32(18).string(message.amount); + for (const v of message.pairs) { + exports.DVPair.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDecCoin(); + const message = createBaseDVPairs(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.denom = reader.string(); - break; - case 2: - message.amount = reader.string(); + message.pairs.push(exports.DVPair.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -180994,34 +181345,47 @@ exports.DecCoin = { return message; }, fromPartial(object) { - var _a, _b; - const message = createBaseDecCoin(); - message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : ""; - message.amount = (_b = object.amount) !== null && _b !== void 0 ? _b : ""; + var _a; + const message = createBaseDVPairs(); + message.pairs = ((_a = object.pairs) === null || _a === void 0 ? void 0 : _a.map(e => exports.DVPair.fromPartial(e))) || []; return message; } }; -function createBaseIntProto() { +function createBaseDVVTriplet() { return { - int: "" + delegatorAddress: "", + validatorSrcAddress: "", + validatorDstAddress: "" }; } -exports.IntProto = { +exports.DVVTriplet = { encode(message, writer = _m0.Writer.create()) { - if (message.int !== "") { - writer.uint32(10).string(message.int); + if (message.delegatorAddress !== "") { + writer.uint32(10).string(message.delegatorAddress); + } + if (message.validatorSrcAddress !== "") { + writer.uint32(18).string(message.validatorSrcAddress); + } + if (message.validatorDstAddress !== "") { + writer.uint32(26).string(message.validatorDstAddress); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseIntProto(); + const message = createBaseDVVTriplet(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.int = reader.string(); + message.delegatorAddress = reader.string(); + break; + case 2: + message.validatorSrcAddress = reader.string(); + break; + case 3: + message.validatorDstAddress = reader.string(); break; default: reader.skipType(tag & 7); @@ -181031,33 +181395,35 @@ exports.IntProto = { return message; }, fromPartial(object) { - var _a; - const message = createBaseIntProto(); - message.int = (_a = object.int) !== null && _a !== void 0 ? _a : ""; + var _a, _b, _c; + const message = createBaseDVVTriplet(); + message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : ""; + message.validatorSrcAddress = (_b = object.validatorSrcAddress) !== null && _b !== void 0 ? _b : ""; + message.validatorDstAddress = (_c = object.validatorDstAddress) !== null && _c !== void 0 ? _c : ""; return message; } }; -function createBaseDecProto() { +function createBaseDVVTriplets() { return { - dec: "" + triplets: [] }; } -exports.DecProto = { +exports.DVVTriplets = { encode(message, writer = _m0.Writer.create()) { - if (message.dec !== "") { - writer.uint32(10).string(message.dec); + for (const v of message.triplets) { + exports.DVVTriplet.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDecProto(); + const message = createBaseDVVTriplets(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.dec = reader.string(); + message.triplets.push(exports.DVVTriplet.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -181068,80 +181434,46 @@ exports.DecProto = { }, fromPartial(object) { var _a; - const message = createBaseDecProto(); - message.dec = (_a = object.dec) !== null && _a !== void 0 ? _a : ""; + const message = createBaseDVVTriplets(); + message.triplets = ((_a = object.triplets) === null || _a === void 0 ? void 0 : _a.map(e => exports.DVVTriplet.fromPartial(e))) || []; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZHlkeHByb3RvY29sL3Y0LXByb3RvL3NyYy9jb2RlZ2VuL2Nvc21vcy9iYXNlL3YxYmV0YTEvY29pbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdEQUEwQztBQW1FMUMsU0FBUyxjQUFjO0lBQ3JCLE9BQU87UUFDTCxLQUFLLEVBQUUsRUFBRTtRQUNULE1BQU0sRUFBRSxFQUFFO0tBQ1gsQ0FBQztBQUNKLENBQUM7QUFFWSxRQUFBLElBQUksR0FBRztJQUNsQixNQUFNLENBQUMsT0FBYSxFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQzVELElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxFQUFFLEVBQUU7WUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRTtZQUN6QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDMUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENB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 - -/***/ }), - -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/query.ts": -/*!*****************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/query.ts ***! - \*****************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryPoolResponse = exports.QueryPoolRequest = exports.QueryHistoricalInfoResponse = exports.QueryHistoricalInfoRequest = exports.QueryDelegatorValidatorResponse = exports.QueryDelegatorValidatorRequest = exports.QueryDelegatorValidatorsResponse = exports.QueryDelegatorValidatorsRequest = exports.QueryRedelegationsResponse = exports.QueryRedelegationsRequest = exports.QueryDelegatorUnbondingDelegationsResponse = exports.QueryDelegatorUnbondingDelegationsRequest = exports.QueryDelegatorDelegationsResponse = exports.QueryDelegatorDelegationsRequest = exports.QueryUnbondingDelegationResponse = exports.QueryUnbondingDelegationRequest = exports.QueryDelegationResponse = exports.QueryDelegationRequest = exports.QueryValidatorUnbondingDelegationsResponse = exports.QueryValidatorUnbondingDelegationsRequest = exports.QueryValidatorDelegationsResponse = exports.QueryValidatorDelegationsRequest = exports.QueryValidatorResponse = exports.QueryValidatorRequest = exports.QueryValidatorsResponse = exports.QueryValidatorsRequest = void 0; -const pagination_1 = __webpack_require__(/*! ../../base/query/v1beta1/pagination */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/query/v1beta1/pagination.ts"); -const staking_1 = __webpack_require__(/*! ./staking */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/staking.ts"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); -function createBaseQueryValidatorsRequest() { +function createBaseDelegation() { return { - status: "", - pagination: undefined + delegatorAddress: "", + validatorAddress: "", + shares: "" }; } -exports.QueryValidatorsRequest = { +exports.Delegation = { encode(message, writer = _m0.Writer.create()) { - if (message.status !== "") { - writer.uint32(10).string(message.status); + if (message.delegatorAddress !== "") { + writer.uint32(10).string(message.delegatorAddress); } - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (message.validatorAddress !== "") { + writer.uint32(18).string(message.validatorAddress); + } + if (message.shares !== "") { + writer.uint32(26).string(message.shares); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorsRequest(); + const message = createBaseDelegation(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.status = reader.string(); + message.delegatorAddress = reader.string(); break; case 2: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.validatorAddress = reader.string(); + break; + case 3: + message.shares = reader.string(); break; default: reader.skipType(tag & 7); @@ -181151,41 +181483,49 @@ exports.QueryValidatorsRequest = { return message; }, fromPartial(object) { - var _a; - const message = createBaseQueryValidatorsRequest(); - message.status = (_a = object.status) !== null && _a !== void 0 ? _a : ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; + var _a, _b, _c; + const message = createBaseDelegation(); + message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : ""; + message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : ""; + message.shares = (_c = object.shares) !== null && _c !== void 0 ? _c : ""; return message; } }; -function createBaseQueryValidatorsResponse() { +function createBaseUnbondingDelegation() { return { - validators: [], - pagination: undefined + delegatorAddress: "", + validatorAddress: "", + entries: [] }; } -exports.QueryValidatorsResponse = { +exports.UnbondingDelegation = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.validators) { - staking_1.Validator.encode(v, writer.uint32(10).fork()).ldelim(); + if (message.delegatorAddress !== "") { + writer.uint32(10).string(message.delegatorAddress); } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (message.validatorAddress !== "") { + writer.uint32(18).string(message.validatorAddress); + } + for (const v of message.entries) { + exports.UnbondingDelegationEntry.encode(v, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorsResponse(); + const message = createBaseUnbondingDelegation(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.validators.push(staking_1.Validator.decode(reader, reader.uint32())); + message.delegatorAddress = reader.string(); break; case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + message.validatorAddress = reader.string(); + break; + case 3: + message.entries.push(exports.UnbondingDelegationEntry.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -181195,34 +181535,70 @@ exports.QueryValidatorsResponse = { return message; }, fromPartial(object) { - var _a; - const message = createBaseQueryValidatorsResponse(); - message.validators = ((_a = object.validators) === null || _a === void 0 ? void 0 : _a.map(e => staking_1.Validator.fromPartial(e))) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; + var _a, _b, _c; + const message = createBaseUnbondingDelegation(); + message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : ""; + message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : ""; + message.entries = ((_c = object.entries) === null || _c === void 0 ? void 0 : _c.map(e => exports.UnbondingDelegationEntry.fromPartial(e))) || []; return message; } }; -function createBaseQueryValidatorRequest() { +function createBaseUnbondingDelegationEntry() { return { - validatorAddr: "" + creationHeight: helpers_1.Long.ZERO, + completionTime: undefined, + initialBalance: "", + balance: "", + unbondingId: helpers_1.Long.UZERO, + unbondingOnHoldRefCount: helpers_1.Long.ZERO }; } -exports.QueryValidatorRequest = { +exports.UnbondingDelegationEntry = { encode(message, writer = _m0.Writer.create()) { - if (message.validatorAddr !== "") { - writer.uint32(10).string(message.validatorAddr); + if (!message.creationHeight.isZero()) { + writer.uint32(8).int64(message.creationHeight); + } + if (message.completionTime !== undefined) { + timestamp_1.Timestamp.encode((0, helpers_1.toTimestamp)(message.completionTime), writer.uint32(18).fork()).ldelim(); + } + if (message.initialBalance !== "") { + writer.uint32(26).string(message.initialBalance); + } + if (message.balance !== "") { + writer.uint32(34).string(message.balance); + } + if (!message.unbondingId.isZero()) { + writer.uint32(40).uint64(message.unbondingId); + } + if (!message.unbondingOnHoldRefCount.isZero()) { + writer.uint32(48).int64(message.unbondingOnHoldRefCount); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorRequest(); + const message = createBaseUnbondingDelegationEntry(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.validatorAddr = reader.string(); + message.creationHeight = reader.int64(); + break; + case 2: + message.completionTime = (0, helpers_1.fromTimestamp)(timestamp_1.Timestamp.decode(reader, reader.uint32())); + break; + case 3: + message.initialBalance = reader.string(); + break; + case 4: + message.balance = reader.string(); + break; + case 5: + message.unbondingId = reader.uint64(); + break; + case 6: + message.unbondingOnHoldRefCount = reader.int64(); break; default: reader.skipType(tag & 7); @@ -181232,33 +181608,73 @@ exports.QueryValidatorRequest = { return message; }, fromPartial(object) { - var _a; - const message = createBaseQueryValidatorRequest(); - message.validatorAddr = (_a = object.validatorAddr) !== null && _a !== void 0 ? _a : ""; + var _a, _b, _c; + const message = createBaseUnbondingDelegationEntry(); + message.creationHeight = object.creationHeight !== undefined && object.creationHeight !== null ? helpers_1.Long.fromValue(object.creationHeight) : helpers_1.Long.ZERO; + message.completionTime = (_a = object.completionTime) !== null && _a !== void 0 ? _a : undefined; + message.initialBalance = (_b = object.initialBalance) !== null && _b !== void 0 ? _b : ""; + message.balance = (_c = object.balance) !== null && _c !== void 0 ? _c : ""; + message.unbondingId = object.unbondingId !== undefined && object.unbondingId !== null ? helpers_1.Long.fromValue(object.unbondingId) : helpers_1.Long.UZERO; + message.unbondingOnHoldRefCount = object.unbondingOnHoldRefCount !== undefined && object.unbondingOnHoldRefCount !== null ? helpers_1.Long.fromValue(object.unbondingOnHoldRefCount) : helpers_1.Long.ZERO; return message; } }; -function createBaseQueryValidatorResponse() { +function createBaseRedelegationEntry() { return { - validator: undefined + creationHeight: helpers_1.Long.ZERO, + completionTime: undefined, + initialBalance: "", + sharesDst: "", + unbondingId: helpers_1.Long.UZERO, + unbondingOnHoldRefCount: helpers_1.Long.ZERO }; } -exports.QueryValidatorResponse = { +exports.RedelegationEntry = { encode(message, writer = _m0.Writer.create()) { - if (message.validator !== undefined) { - staking_1.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim(); + if (!message.creationHeight.isZero()) { + writer.uint32(8).int64(message.creationHeight); + } + if (message.completionTime !== undefined) { + timestamp_1.Timestamp.encode((0, helpers_1.toTimestamp)(message.completionTime), writer.uint32(18).fork()).ldelim(); + } + if (message.initialBalance !== "") { + writer.uint32(26).string(message.initialBalance); + } + if (message.sharesDst !== "") { + writer.uint32(34).string(message.sharesDst); + } + if (!message.unbondingId.isZero()) { + writer.uint32(40).uint64(message.unbondingId); + } + if (!message.unbondingOnHoldRefCount.isZero()) { + writer.uint32(48).int64(message.unbondingOnHoldRefCount); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorResponse(); + const message = createBaseRedelegationEntry(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.validator = staking_1.Validator.decode(reader, reader.uint32()); + message.creationHeight = reader.int64(); + break; + case 2: + message.completionTime = (0, helpers_1.fromTimestamp)(timestamp_1.Timestamp.decode(reader, reader.uint32())); + break; + case 3: + message.initialBalance = reader.string(); + break; + case 4: + message.sharesDst = reader.string(); + break; + case 5: + message.unbondingId = reader.uint64(); + break; + case 6: + message.unbondingOnHoldRefCount = reader.int64(); break; default: reader.skipType(tag & 7); @@ -181268,39 +181684,59 @@ exports.QueryValidatorResponse = { return message; }, fromPartial(object) { - const message = createBaseQueryValidatorResponse(); - message.validator = object.validator !== undefined && object.validator !== null ? staking_1.Validator.fromPartial(object.validator) : undefined; + var _a, _b, _c; + const message = createBaseRedelegationEntry(); + message.creationHeight = object.creationHeight !== undefined && object.creationHeight !== null ? helpers_1.Long.fromValue(object.creationHeight) : helpers_1.Long.ZERO; + message.completionTime = (_a = object.completionTime) !== null && _a !== void 0 ? _a : undefined; + message.initialBalance = (_b = object.initialBalance) !== null && _b !== void 0 ? _b : ""; + message.sharesDst = (_c = object.sharesDst) !== null && _c !== void 0 ? _c : ""; + message.unbondingId = object.unbondingId !== undefined && object.unbondingId !== null ? helpers_1.Long.fromValue(object.unbondingId) : helpers_1.Long.UZERO; + message.unbondingOnHoldRefCount = object.unbondingOnHoldRefCount !== undefined && object.unbondingOnHoldRefCount !== null ? helpers_1.Long.fromValue(object.unbondingOnHoldRefCount) : helpers_1.Long.ZERO; return message; } }; -function createBaseQueryValidatorDelegationsRequest() { +function createBaseRedelegation() { return { - validatorAddr: "", - pagination: undefined + delegatorAddress: "", + validatorSrcAddress: "", + validatorDstAddress: "", + entries: [] }; } -exports.QueryValidatorDelegationsRequest = { +exports.Redelegation = { encode(message, writer = _m0.Writer.create()) { - if (message.validatorAddr !== "") { - writer.uint32(10).string(message.validatorAddr); + if (message.delegatorAddress !== "") { + writer.uint32(10).string(message.delegatorAddress); } - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (message.validatorSrcAddress !== "") { + writer.uint32(18).string(message.validatorSrcAddress); + } + if (message.validatorDstAddress !== "") { + writer.uint32(26).string(message.validatorDstAddress); + } + for (const v of message.entries) { + exports.RedelegationEntry.encode(v, writer.uint32(34).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorDelegationsRequest(); + const message = createBaseRedelegation(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.validatorAddr = reader.string(); + message.delegatorAddress = reader.string(); break; case 2: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.validatorSrcAddress = reader.string(); + break; + case 3: + message.validatorDstAddress = reader.string(); + break; + case 4: + message.entries.push(exports.RedelegationEntry.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -181310,41 +181746,71 @@ exports.QueryValidatorDelegationsRequest = { return message; }, fromPartial(object) { - var _a; - const message = createBaseQueryValidatorDelegationsRequest(); - message.validatorAddr = (_a = object.validatorAddr) !== null && _a !== void 0 ? _a : ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; + var _a, _b, _c, _d; + const message = createBaseRedelegation(); + message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : ""; + message.validatorSrcAddress = (_b = object.validatorSrcAddress) !== null && _b !== void 0 ? _b : ""; + message.validatorDstAddress = (_c = object.validatorDstAddress) !== null && _c !== void 0 ? _c : ""; + message.entries = ((_d = object.entries) === null || _d === void 0 ? void 0 : _d.map(e => exports.RedelegationEntry.fromPartial(e))) || []; return message; } }; -function createBaseQueryValidatorDelegationsResponse() { +function createBaseParams() { return { - delegationResponses: [], - pagination: undefined + unbondingTime: undefined, + maxValidators: 0, + maxEntries: 0, + historicalEntries: 0, + bondDenom: "", + minCommissionRate: "" }; } -exports.QueryValidatorDelegationsResponse = { +exports.Params = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.delegationResponses) { - staking_1.DelegationResponse.encode(v, writer.uint32(10).fork()).ldelim(); + if (message.unbondingTime !== undefined) { + duration_1.Duration.encode(message.unbondingTime, writer.uint32(10).fork()).ldelim(); } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (message.maxValidators !== 0) { + writer.uint32(16).uint32(message.maxValidators); + } + if (message.maxEntries !== 0) { + writer.uint32(24).uint32(message.maxEntries); + } + if (message.historicalEntries !== 0) { + writer.uint32(32).uint32(message.historicalEntries); + } + if (message.bondDenom !== "") { + writer.uint32(42).string(message.bondDenom); + } + if (message.minCommissionRate !== "") { + writer.uint32(50).string(message.minCommissionRate); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorDelegationsResponse(); + const message = createBaseParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.delegationResponses.push(staking_1.DelegationResponse.decode(reader, reader.uint32())); + message.unbondingTime = duration_1.Duration.decode(reader, reader.uint32()); break; case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + message.maxValidators = reader.uint32(); + break; + case 3: + message.maxEntries = reader.uint32(); + break; + case 4: + message.historicalEntries = reader.uint32(); + break; + case 5: + message.bondDenom = reader.string(); + break; + case 6: + message.minCommissionRate = reader.string(); break; default: reader.skipType(tag & 7); @@ -181354,41 +181820,45 @@ exports.QueryValidatorDelegationsResponse = { return message; }, fromPartial(object) { - var _a; - const message = createBaseQueryValidatorDelegationsResponse(); - message.delegationResponses = ((_a = object.delegationResponses) === null || _a === void 0 ? void 0 : _a.map(e => staking_1.DelegationResponse.fromPartial(e))) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; + var _a, _b, _c, _d, _e; + const message = createBaseParams(); + message.unbondingTime = object.unbondingTime !== undefined && object.unbondingTime !== null ? duration_1.Duration.fromPartial(object.unbondingTime) : undefined; + message.maxValidators = (_a = object.maxValidators) !== null && _a !== void 0 ? _a : 0; + message.maxEntries = (_b = object.maxEntries) !== null && _b !== void 0 ? _b : 0; + message.historicalEntries = (_c = object.historicalEntries) !== null && _c !== void 0 ? _c : 0; + message.bondDenom = (_d = object.bondDenom) !== null && _d !== void 0 ? _d : ""; + message.minCommissionRate = (_e = object.minCommissionRate) !== null && _e !== void 0 ? _e : ""; return message; } }; -function createBaseQueryValidatorUnbondingDelegationsRequest() { +function createBaseDelegationResponse() { return { - validatorAddr: "", - pagination: undefined + delegation: undefined, + balance: undefined }; } -exports.QueryValidatorUnbondingDelegationsRequest = { +exports.DelegationResponse = { encode(message, writer = _m0.Writer.create()) { - if (message.validatorAddr !== "") { - writer.uint32(10).string(message.validatorAddr); + if (message.delegation !== undefined) { + exports.Delegation.encode(message.delegation, writer.uint32(10).fork()).ldelim(); } - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (message.balance !== undefined) { + coin_1.Coin.encode(message.balance, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorUnbondingDelegationsRequest(); + const message = createBaseDelegationResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.validatorAddr = reader.string(); + message.delegation = exports.Delegation.decode(reader, reader.uint32()); break; case 2: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.balance = coin_1.Coin.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -181398,41 +181868,40 @@ exports.QueryValidatorUnbondingDelegationsRequest = { return message; }, fromPartial(object) { - var _a; - const message = createBaseQueryValidatorUnbondingDelegationsRequest(); - message.validatorAddr = (_a = object.validatorAddr) !== null && _a !== void 0 ? _a : ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; + const message = createBaseDelegationResponse(); + message.delegation = object.delegation !== undefined && object.delegation !== null ? exports.Delegation.fromPartial(object.delegation) : undefined; + message.balance = object.balance !== undefined && object.balance !== null ? coin_1.Coin.fromPartial(object.balance) : undefined; return message; } }; -function createBaseQueryValidatorUnbondingDelegationsResponse() { +function createBaseRedelegationEntryResponse() { return { - unbondingResponses: [], - pagination: undefined + redelegationEntry: undefined, + balance: "" }; } -exports.QueryValidatorUnbondingDelegationsResponse = { +exports.RedelegationEntryResponse = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.unbondingResponses) { - staking_1.UnbondingDelegation.encode(v, writer.uint32(10).fork()).ldelim(); + if (message.redelegationEntry !== undefined) { + exports.RedelegationEntry.encode(message.redelegationEntry, writer.uint32(10).fork()).ldelim(); } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (message.balance !== "") { + writer.uint32(34).string(message.balance); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryValidatorUnbondingDelegationsResponse(); + const message = createBaseRedelegationEntryResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.unbondingResponses.push(staking_1.UnbondingDelegation.decode(reader, reader.uint32())); + message.redelegationEntry = exports.RedelegationEntry.decode(reader, reader.uint32()); break; - case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + case 4: + message.balance = reader.string(); break; default: reader.skipType(tag & 7); @@ -181443,40 +181912,40 @@ exports.QueryValidatorUnbondingDelegationsResponse = { }, fromPartial(object) { var _a; - const message = createBaseQueryValidatorUnbondingDelegationsResponse(); - message.unbondingResponses = ((_a = object.unbondingResponses) === null || _a === void 0 ? void 0 : _a.map(e => staking_1.UnbondingDelegation.fromPartial(e))) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; + const message = createBaseRedelegationEntryResponse(); + message.redelegationEntry = object.redelegationEntry !== undefined && object.redelegationEntry !== null ? exports.RedelegationEntry.fromPartial(object.redelegationEntry) : undefined; + message.balance = (_a = object.balance) !== null && _a !== void 0 ? _a : ""; return message; } }; -function createBaseQueryDelegationRequest() { +function createBaseRedelegationResponse() { return { - delegatorAddr: "", - validatorAddr: "" + redelegation: undefined, + entries: [] }; } -exports.QueryDelegationRequest = { +exports.RedelegationResponse = { encode(message, writer = _m0.Writer.create()) { - if (message.delegatorAddr !== "") { - writer.uint32(10).string(message.delegatorAddr); + if (message.redelegation !== undefined) { + exports.Redelegation.encode(message.redelegation, writer.uint32(10).fork()).ldelim(); } - if (message.validatorAddr !== "") { - writer.uint32(18).string(message.validatorAddr); + for (const v of message.entries) { + exports.RedelegationEntryResponse.encode(v, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegationRequest(); + const message = createBaseRedelegationResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.delegatorAddr = reader.string(); + message.redelegation = exports.Redelegation.decode(reader, reader.uint32()); break; case 2: - message.validatorAddr = reader.string(); + message.entries.push(exports.RedelegationEntryResponse.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -181486,34 +181955,41 @@ exports.QueryDelegationRequest = { return message; }, fromPartial(object) { - var _a, _b; - const message = createBaseQueryDelegationRequest(); - message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : ""; - message.validatorAddr = (_b = object.validatorAddr) !== null && _b !== void 0 ? _b : ""; + var _a; + const message = createBaseRedelegationResponse(); + message.redelegation = object.redelegation !== undefined && object.redelegation !== null ? exports.Redelegation.fromPartial(object.redelegation) : undefined; + message.entries = ((_a = object.entries) === null || _a === void 0 ? void 0 : _a.map(e => exports.RedelegationEntryResponse.fromPartial(e))) || []; return message; } }; -function createBaseQueryDelegationResponse() { +function createBasePool() { return { - delegationResponse: undefined + notBondedTokens: "", + bondedTokens: "" }; } -exports.QueryDelegationResponse = { +exports.Pool = { encode(message, writer = _m0.Writer.create()) { - if (message.delegationResponse !== undefined) { - staking_1.DelegationResponse.encode(message.delegationResponse, writer.uint32(10).fork()).ldelim(); + if (message.notBondedTokens !== "") { + writer.uint32(10).string(message.notBondedTokens); + } + if (message.bondedTokens !== "") { + writer.uint32(18).string(message.bondedTokens); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegationResponse(); + const message = createBasePool(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.delegationResponse = staking_1.DelegationResponse.decode(reader, reader.uint32()); + message.notBondedTokens = reader.string(); + break; + case 2: + message.bondedTokens = reader.string(); break; default: reader.skipType(tag & 7); @@ -181523,39 +181999,34 @@ exports.QueryDelegationResponse = { return message; }, fromPartial(object) { - const message = createBaseQueryDelegationResponse(); - message.delegationResponse = object.delegationResponse !== undefined && object.delegationResponse !== null ? staking_1.DelegationResponse.fromPartial(object.delegationResponse) : undefined; + var _a, _b; + const message = createBasePool(); + message.notBondedTokens = (_a = object.notBondedTokens) !== null && _a !== void 0 ? _a : ""; + message.bondedTokens = (_b = object.bondedTokens) !== null && _b !== void 0 ? _b : ""; return message; } }; -function createBaseQueryUnbondingDelegationRequest() { +function createBaseValidatorUpdates() { return { - delegatorAddr: "", - validatorAddr: "" + updates: [] }; } -exports.QueryUnbondingDelegationRequest = { +exports.ValidatorUpdates = { encode(message, writer = _m0.Writer.create()) { - if (message.delegatorAddr !== "") { - writer.uint32(10).string(message.delegatorAddr); - } - if (message.validatorAddr !== "") { - writer.uint32(18).string(message.validatorAddr); + for (const v of message.updates) { + types_2.ValidatorUpdate.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryUnbondingDelegationRequest(); + const message = createBaseValidatorUpdates(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.delegatorAddr = reader.string(); - break; - case 2: - message.validatorAddr = reader.string(); + message.updates.push(types_2.ValidatorUpdate.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -181565,34 +182036,113 @@ exports.QueryUnbondingDelegationRequest = { return message; }, fromPartial(object) { - var _a, _b; - const message = createBaseQueryUnbondingDelegationRequest(); - message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : ""; - message.validatorAddr = (_b = object.validatorAddr) !== null && _b !== void 0 ? _b : ""; + var _a; + const message = createBaseValidatorUpdates(); + message.updates = ((_a = object.updates) === null || _a === void 0 ? void 0 : _a.map(e => types_2.ValidatorUpdate.fromPartial(e))) || []; return message; } }; -function createBaseQueryUnbondingDelegationResponse() { +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZHlkeHByb3RvY29sL3Y0LXByb3RvL3NyYy9jb2RlZ2VuL2Nvc21vcy9zdGFraW5nL3YxYmV0YTEvc3Rha2luZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJEQUF3RTtBQUN4RSxrRUFBK0Q7QUFDL0Qsc0RBQStEO0FBQy9ELGdFQUE4RTtBQUM5RSxrREFBNEQ7QUFDNUQsMERBQXlGO0FBQ3pGLHdEQUEwQztBQUMxQyw4Q0FBaUY7QUFDakYsK0NBQStDO0FBRS9DLElBQVksVUFhWDtBQWJELFdBQVksVUFBVTtJQUNwQixpRkFBaUY7SUFDakYsaUZBQTJCLENBQUE7SUFFM0IsOEVBQThFO0lBQzlFLDJFQUF3QixDQUFBO0lBRXhCLCtFQUErRTtJQUMvRSw2RUFBeUIsQ0FBQTtJQUV6QixzRUFBc0U7SUFDdEUsdUVBQXNCLENBQUE7SUFDdEIsNERBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQWJXLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBYXJCO0FBQ1ksUUFBQSxpQkFBaUIsR0FBRyxVQUFVLENBQUM7QUFDNUMsU0FBZ0Isa0JBQWtCLENBQUMsTUFBVztJQUM1QyxRQUFRLE1BQU0sRUFBRTtRQUNkLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyx5QkFBeUI7WUFDNUIsT0FBTyxVQUFVLENBQUMsdUJBQXVCLENBQUM7UUFFNUMsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLHNCQUFzQjtZQUN6QixPQUFPLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQztRQUV6QyxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssdUJBQXVCO1lBQzFCLE9BQU8sVUFBVSxDQUFDLHFCQUFxQixDQUFDO1FBRTFDLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxvQkFBb0I7WUFDdkIsT0FB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 + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/asset.ts": +/*!**************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/asset.ts ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Asset = void 0; +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +function createBaseAsset() { return { - unbond: undefined + id: 0, + symbol: "", + denom: "", + denomExponent: 0, + hasMarket: false, + marketId: 0, + atomicResolution: 0 }; } -exports.QueryUnbondingDelegationResponse = { +exports.Asset = { encode(message, writer = _m0.Writer.create()) { - if (message.unbond !== undefined) { - staking_1.UnbondingDelegation.encode(message.unbond, writer.uint32(10).fork()).ldelim(); + if (message.id !== 0) { + writer.uint32(8).uint32(message.id); + } + if (message.symbol !== "") { + writer.uint32(18).string(message.symbol); + } + if (message.denom !== "") { + writer.uint32(26).string(message.denom); + } + if (message.denomExponent !== 0) { + writer.uint32(32).sint32(message.denomExponent); + } + if (message.hasMarket === true) { + writer.uint32(40).bool(message.hasMarket); + } + if (message.marketId !== 0) { + writer.uint32(48).uint32(message.marketId); + } + if (message.atomicResolution !== 0) { + writer.uint32(56).sint32(message.atomicResolution); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryUnbondingDelegationResponse(); + const message = createBaseAsset(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.unbond = staking_1.UnbondingDelegation.decode(reader, reader.uint32()); + message.id = reader.uint32(); + break; + case 2: + message.symbol = reader.string(); + break; + case 3: + message.denom = reader.string(); + break; + case 4: + message.denomExponent = reader.sint32(); + break; + case 5: + message.hasMarket = reader.bool(); + break; + case 6: + message.marketId = reader.uint32(); + break; + case 7: + message.atomicResolution = reader.sint32(); break; default: reader.skipType(tag & 7); @@ -181602,39 +182152,78 @@ exports.QueryUnbondingDelegationResponse = { return message; }, fromPartial(object) { - const message = createBaseQueryUnbondingDelegationResponse(); - message.unbond = object.unbond !== undefined && object.unbond !== null ? staking_1.UnbondingDelegation.fromPartial(object.unbond) : undefined; + var _a, _b, _c, _d, _e, _f, _g; + const message = createBaseAsset(); + message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0; + message.symbol = (_b = object.symbol) !== null && _b !== void 0 ? _b : ""; + message.denom = (_c = object.denom) !== null && _c !== void 0 ? _c : ""; + message.denomExponent = (_d = object.denomExponent) !== null && _d !== void 0 ? _d : 0; + message.hasMarket = (_e = object.hasMarket) !== null && _e !== void 0 ? _e : false; + message.marketId = (_f = object.marketId) !== null && _f !== void 0 ? _f : 0; + message.atomicResolution = (_g = object.atomicResolution) !== null && _g !== void 0 ? _g : 0; return message; } }; -function createBaseQueryDelegatorDelegationsRequest() { +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvYXNzZXRzL2Fzc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0RBQTBDO0FBK0QxQyxTQUFTLGVBQWU7SUFDdEIsT0FBTztRQUNMLEVBQUUsRUFBRSxDQUFDO1FBQ0wsTUFBTSxFQUFFLEVBQUU7UUFDVixLQUFLLEVBQUUsRUFBRTtRQUNULGFBQWEsRUFBRSxDQUFDO1FBQ2hCLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLFFBQVEsRUFBRSxDQUFDO1FBQ1gsZ0JBQWdCLEVBQUUsQ0FBQztLQUNwQixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsS0FBSyxHQUFHO0lBQ25CLE1BQU0sQ0FBQyxPQUFjLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDN0QsSUFBSSxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDckM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMxQztRQUVELElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxFQUFFLEVBQUU7WUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsSUFBSSxPQUFPLENBQUMsYUFBYSxLQUFLLENBQUMs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 + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/genesis.ts": +/*!****************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/genesis.ts ***! + \****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.GenesisState = void 0; +const asset_1 = __webpack_require__(/*! ./asset */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/asset.ts"); +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +function createBaseGenesisState() { return { - delegatorAddr: "", - pagination: undefined + assets: [] }; } -exports.QueryDelegatorDelegationsRequest = { +exports.GenesisState = { encode(message, writer = _m0.Writer.create()) { - if (message.delegatorAddr !== "") { - writer.uint32(10).string(message.delegatorAddr); - } - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + for (const v of message.assets) { + asset_1.Asset.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorDelegationsRequest(); + const message = createBaseGenesisState(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.delegatorAddr = reader.string(); - break; - case 2: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.assets.push(asset_1.Asset.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -181645,40 +182234,93 @@ exports.QueryDelegatorDelegationsRequest = { }, fromPartial(object) { var _a; - const message = createBaseQueryDelegatorDelegationsRequest(); - message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; + const message = createBaseGenesisState(); + message.assets = ((_a = object.assets) === null || _a === void 0 ? void 0 : _a.map(e => asset_1.Asset.fromPartial(e))) || []; return message; } }; -function createBaseQueryDelegatorDelegationsResponse() { +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXNpcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZHlkeHByb3RvY29sL3Y0LXByb3RvL3NyYy9jb2RlZ2VuL2R5ZHhwcm90b2NvbC9hc3NldHMvZ2VuZXNpcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUE4QztBQUM5Qyx3REFBMEM7QUFhMUMsU0FBUyxzQkFBc0I7SUFDN0IsT0FBTztRQUNMLE1BQU0sRUFBRSxFQUFFO0tBQ1gsQ0FBQztBQUNKLENBQUM7QUFFWSxRQUFBLFlBQVksR0FBRztJQUMxQixNQUFNLENBQUMsT0FBcUIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNwRSxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDOUIsYUFBSyxDQUFDLE1BQU0sQ0FBQyxDQUFFLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3JEO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLHNCQUFzQixFQUFFLENBQUM7UUFFekMsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLENBQUM7b0JBQ0osT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDM0QsTUFBTTtnQkFFUjtvQkFDRSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDekIsTUFBTTthQUNUO1NBQ0Y7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWlDOztRQUMzQyxNQUFNLE9BQU8sR0FBRyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQSxNQUFBLE1BQU0sQ0FBQyxNQUFNLDBDQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGFBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxFQUFFLENBQUM7UUFDckUsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUVGLENBQUMifQ== + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/bridge_event.ts": +/*!*********************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/bridge_event.ts ***! + \*********************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.BridgeEvent = void 0; +const coin_1 = __webpack_require__(/*! ../../cosmos/base/v1beta1/coin */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/v1beta1/coin.ts"); +const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +function createBaseBridgeEvent() { return { - delegationResponses: [], - pagination: undefined + id: 0, + coin: undefined, + address: "", + ethBlockHeight: helpers_1.Long.UZERO }; } -exports.QueryDelegatorDelegationsResponse = { +exports.BridgeEvent = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.delegationResponses) { - staking_1.DelegationResponse.encode(v, writer.uint32(10).fork()).ldelim(); + if (message.id !== 0) { + writer.uint32(8).uint32(message.id); } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (message.coin !== undefined) { + coin_1.Coin.encode(message.coin, writer.uint32(18).fork()).ldelim(); + } + if (message.address !== "") { + writer.uint32(26).string(message.address); + } + if (!message.ethBlockHeight.isZero()) { + writer.uint32(32).uint64(message.ethBlockHeight); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorDelegationsResponse(); + const message = createBaseBridgeEvent(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.delegationResponses.push(staking_1.DelegationResponse.decode(reader, reader.uint32())); + message.id = reader.uint32(); break; case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + message.coin = coin_1.Coin.decode(reader, reader.uint32()); + break; + case 3: + message.address = reader.string(); + break; + case 4: + message.ethBlockHeight = reader.uint64(); break; default: reader.skipType(tag & 7); @@ -181688,41 +182330,82 @@ exports.QueryDelegatorDelegationsResponse = { return message; }, fromPartial(object) { - var _a; - const message = createBaseQueryDelegatorDelegationsResponse(); - message.delegationResponses = ((_a = object.delegationResponses) === null || _a === void 0 ? void 0 : _a.map(e => staking_1.DelegationResponse.fromPartial(e))) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; + var _a, _b; + const message = createBaseBridgeEvent(); + message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0; + message.coin = object.coin !== undefined && object.coin !== null ? coin_1.Coin.fromPartial(object.coin) : undefined; + message.address = (_b = object.address) !== null && _b !== void 0 ? _b : ""; + message.ethBlockHeight = object.ethBlockHeight !== undefined && object.ethBlockHeight !== null ? helpers_1.Long.fromValue(object.ethBlockHeight) : helpers_1.Long.UZERO; return message; } }; -function createBaseQueryDelegatorUnbondingDelegationsRequest() { +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlX2V2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vZHlkeHByb3RvY29sL2JyaWRnZS9icmlkZ2VfZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5REFBbUU7QUFDbkUsMkNBQWtEO0FBQ2xELHdEQUEwQztBQXlCMUMsU0FBUyxxQkFBcUI7SUFDNUIsT0FBTztRQUNMLEVBQUUsRUFBRSxDQUFDO1FBQ0wsSUFBSSxFQUFFLFNBQVM7UUFDZixPQUFPLEVBQUUsRUFBRTtRQUNYLGNBQWMsRUFBRSxjQUFJLENBQUMsS0FBSztLQUMzQixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsV0FBVyxHQUFHO0lBQ3pCLE1BQU0sQ0FBQyxPQUFvQixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ25FLElBQUksT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3JDO1FBRUQsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUM5QixXQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzlEO1FBRUQsSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRTtZQUMxQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0M7UUFFRCxJ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 + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/bridge_event_info.ts": +/*!**************************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/bridge_event_info.ts ***! + \**************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.BridgeEventInfo = void 0; +const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +function createBaseBridgeEventInfo() { return { - delegatorAddr: "", - pagination: undefined + nextId: 0, + ethBlockHeight: helpers_1.Long.UZERO }; } -exports.QueryDelegatorUnbondingDelegationsRequest = { +exports.BridgeEventInfo = { encode(message, writer = _m0.Writer.create()) { - if (message.delegatorAddr !== "") { - writer.uint32(10).string(message.delegatorAddr); + if (message.nextId !== 0) { + writer.uint32(8).uint32(message.nextId); } - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (!message.ethBlockHeight.isZero()) { + writer.uint32(16).uint64(message.ethBlockHeight); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorUnbondingDelegationsRequest(); + const message = createBaseBridgeEventInfo(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.delegatorAddr = reader.string(); + message.nextId = reader.uint32(); break; case 2: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.ethBlockHeight = reader.uint64(); break; default: reader.skipType(tag & 7); @@ -181733,40 +182416,87 @@ exports.QueryDelegatorUnbondingDelegationsRequest = { }, fromPartial(object) { var _a; - const message = createBaseQueryDelegatorUnbondingDelegationsRequest(); - message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; + const message = createBaseBridgeEventInfo(); + message.nextId = (_a = object.nextId) !== null && _a !== void 0 ? _a : 0; + message.ethBlockHeight = object.ethBlockHeight !== undefined && object.ethBlockHeight !== null ? helpers_1.Long.fromValue(object.ethBlockHeight) : helpers_1.Long.UZERO; return message; } }; -function createBaseQueryDelegatorUnbondingDelegationsResponse() { +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlX2V2ZW50X2luZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvYnJpZGdlL2JyaWRnZV9ldmVudF9pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQWtEO0FBQ2xELHdEQUEwQztBQTBCMUMsU0FBUyx5QkFBeUI7SUFDaEMsT0FBTztRQUNMLE1BQU0sRUFBRSxDQUFDO1FBQ1QsY0FBYyxFQUFFLGNBQUksQ0FBQyxLQUFLO0tBQzNCLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxlQUFlLEdBQUc7SUFDN0IsTUFBTSxDQUFDLE9BQXdCLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDdkUsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDekM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNwQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDbEQ7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcseUJBQXlCLEVBQUUsQ0FBQztRQUU1QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUU1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDakMsTUFBTTtnQkFFUixLQUFLLENBQUM7b0JBQ0osT0FBTyxDQUFDLGNBQWMsR0FBSSxNQUFNLENBQUMsTUFBTSxFQUFXLENBQUM7b0JBQ25ELE1BQU07Z0JBRVI7b0JBQ0UsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3pCLE1BQU07YUFDVDtTQUNGO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFvQzs7UUFDOUMsTUFBTSxPQUFPLEdBQUcseUJBQXlCLEVBQUUsQ0FBQztRQUM1QyxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQUEsTUFBTSxDQUFDLE1BQU0sbUNBQUksQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLGNBQWMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3BKLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FFRixDQUFDIn0= + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/params.ts": +/*!***************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/params.ts ***! + \***************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SafetyParams = exports.ProposeParams = exports.EventParams = void 0; +const duration_1 = __webpack_require__(/*! ../../google/protobuf/duration */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/duration.ts"); +const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +function createBaseEventParams() { return { - unbondingResponses: [], - pagination: undefined + denom: "", + ethChainId: helpers_1.Long.UZERO, + ethAddress: "" }; } -exports.QueryDelegatorUnbondingDelegationsResponse = { +exports.EventParams = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.unbondingResponses) { - staking_1.UnbondingDelegation.encode(v, writer.uint32(10).fork()).ldelim(); + if (message.denom !== "") { + writer.uint32(10).string(message.denom); } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (!message.ethChainId.isZero()) { + writer.uint32(16).uint64(message.ethChainId); + } + if (message.ethAddress !== "") { + writer.uint32(26).string(message.ethAddress); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorUnbondingDelegationsResponse(); + const message = createBaseEventParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.unbondingResponses.push(staking_1.UnbondingDelegation.decode(reader, reader.uint32())); + message.denom = reader.string(); break; case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + message.ethChainId = reader.uint64(); + break; + case 3: + message.ethAddress = reader.string(); break; default: reader.skipType(tag & 7); @@ -181776,55 +182506,56 @@ exports.QueryDelegatorUnbondingDelegationsResponse = { return message; }, fromPartial(object) { - var _a; - const message = createBaseQueryDelegatorUnbondingDelegationsResponse(); - message.unbondingResponses = ((_a = object.unbondingResponses) === null || _a === void 0 ? void 0 : _a.map(e => staking_1.UnbondingDelegation.fromPartial(e))) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; + var _a, _b; + const message = createBaseEventParams(); + message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : ""; + message.ethChainId = object.ethChainId !== undefined && object.ethChainId !== null ? helpers_1.Long.fromValue(object.ethChainId) : helpers_1.Long.UZERO; + message.ethAddress = (_b = object.ethAddress) !== null && _b !== void 0 ? _b : ""; return message; } }; -function createBaseQueryRedelegationsRequest() { +function createBaseProposeParams() { return { - delegatorAddr: "", - srcValidatorAddr: "", - dstValidatorAddr: "", - pagination: undefined + maxBridgesPerBlock: 0, + proposeDelayDuration: undefined, + skipRatePpm: 0, + skipIfBlockDelayedByDuration: undefined }; } -exports.QueryRedelegationsRequest = { +exports.ProposeParams = { encode(message, writer = _m0.Writer.create()) { - if (message.delegatorAddr !== "") { - writer.uint32(10).string(message.delegatorAddr); + if (message.maxBridgesPerBlock !== 0) { + writer.uint32(8).uint32(message.maxBridgesPerBlock); } - if (message.srcValidatorAddr !== "") { - writer.uint32(18).string(message.srcValidatorAddr); + if (message.proposeDelayDuration !== undefined) { + duration_1.Duration.encode(message.proposeDelayDuration, writer.uint32(18).fork()).ldelim(); } - if (message.dstValidatorAddr !== "") { - writer.uint32(26).string(message.dstValidatorAddr); + if (message.skipRatePpm !== 0) { + writer.uint32(24).uint32(message.skipRatePpm); } - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim(); + if (message.skipIfBlockDelayedByDuration !== undefined) { + duration_1.Duration.encode(message.skipIfBlockDelayedByDuration, writer.uint32(34).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryRedelegationsRequest(); + const message = createBaseProposeParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.delegatorAddr = reader.string(); + message.maxBridgesPerBlock = reader.uint32(); break; case 2: - message.srcValidatorAddr = reader.string(); + message.proposeDelayDuration = duration_1.Duration.decode(reader, reader.uint32()); break; case 3: - message.dstValidatorAddr = reader.string(); + message.skipRatePpm = reader.uint32(); break; case 4: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.skipIfBlockDelayedByDuration = duration_1.Duration.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -181834,43 +182565,43 @@ exports.QueryRedelegationsRequest = { return message; }, fromPartial(object) { - var _a, _b, _c; - const message = createBaseQueryRedelegationsRequest(); - message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : ""; - message.srcValidatorAddr = (_b = object.srcValidatorAddr) !== null && _b !== void 0 ? _b : ""; - message.dstValidatorAddr = (_c = object.dstValidatorAddr) !== null && _c !== void 0 ? _c : ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; + var _a, _b; + const message = createBaseProposeParams(); + message.maxBridgesPerBlock = (_a = object.maxBridgesPerBlock) !== null && _a !== void 0 ? _a : 0; + message.proposeDelayDuration = object.proposeDelayDuration !== undefined && object.proposeDelayDuration !== null ? duration_1.Duration.fromPartial(object.proposeDelayDuration) : undefined; + message.skipRatePpm = (_b = object.skipRatePpm) !== null && _b !== void 0 ? _b : 0; + message.skipIfBlockDelayedByDuration = object.skipIfBlockDelayedByDuration !== undefined && object.skipIfBlockDelayedByDuration !== null ? duration_1.Duration.fromPartial(object.skipIfBlockDelayedByDuration) : undefined; return message; } }; -function createBaseQueryRedelegationsResponse() { +function createBaseSafetyParams() { return { - redelegationResponses: [], - pagination: undefined + isDisabled: false, + delayBlocks: 0 }; } -exports.QueryRedelegationsResponse = { +exports.SafetyParams = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.redelegationResponses) { - staking_1.RedelegationResponse.encode(v, writer.uint32(10).fork()).ldelim(); + if (message.isDisabled === true) { + writer.uint32(8).bool(message.isDisabled); } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (message.delayBlocks !== 0) { + writer.uint32(16).uint32(message.delayBlocks); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryRedelegationsResponse(); + const message = createBaseSafetyParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.redelegationResponses.push(staking_1.RedelegationResponse.decode(reader, reader.uint32())); + message.isDisabled = reader.bool(); break; case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + message.delayBlocks = reader.uint32(); break; default: reader.skipType(tag & 7); @@ -181880,42 +182611,68 @@ exports.QueryRedelegationsResponse = { return message; }, fromPartial(object) { - var _a; - const message = createBaseQueryRedelegationsResponse(); - message.redelegationResponses = ((_a = object.redelegationResponses) === null || _a === void 0 ? void 0 : _a.map(e => staking_1.RedelegationResponse.fromPartial(e))) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; + var _a, _b; + const message = createBaseSafetyParams(); + message.isDisabled = (_a = object.isDisabled) !== null && _a !== void 0 ? _a : false; + message.delayBlocks = (_b = object.delayBlocks) !== null && _b !== void 0 ? _b : 0; return message; } }; -function createBaseQueryDelegatorValidatorsRequest() { - return { - delegatorAddr: "", - pagination: undefined - }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vZHlkeHByb3RvY29sL2JyaWRnZS9wYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2REFBMkU7QUFDM0UsMkNBQWtEO0FBQ2xELHdEQUEwQztBQW9GMUMsU0FBUyxxQkFBcUI7SUFDNUIsT0FBTztRQUNMLEtBQUssRUFBRSxFQUFFO1FBQ1QsVUFBVSxFQUFFLGNBQUksQ0FBQyxLQUFLO1FBQ3RCLFVBQVUsRUFBRSxFQUFFO0tBQ2YsQ0FBQztBQUNKLENBQUM7QUFFWSxRQUFBLFdBQVcsR0FBRztJQUN6QixNQUFNLENBQUMsT0FBb0IsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNuRSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssRUFBRSxFQUFFO1lBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2hDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUM5QztRQUVELElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxFQUFFLEVBQUU7WUFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzlDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQs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 + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/query.ts": +/*!**************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/query.ts ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.DelayedCompleteBridgeMessage = exports.QueryDelayedCompleteBridgeMessagesResponse = exports.QueryDelayedCompleteBridgeMessagesRequest = exports.QueryRecognizedEventInfoResponse = exports.QueryRecognizedEventInfoRequest = exports.QueryAcknowledgedEventInfoResponse = exports.QueryAcknowledgedEventInfoRequest = exports.QuerySafetyParamsResponse = exports.QuerySafetyParamsRequest = exports.QueryProposeParamsResponse = exports.QueryProposeParamsRequest = exports.QueryEventParamsResponse = exports.QueryEventParamsRequest = void 0; +const params_1 = __webpack_require__(/*! ./params */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/params.ts"); +const bridge_event_info_1 = __webpack_require__(/*! ./bridge_event_info */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/bridge_event_info.ts"); +const tx_1 = __webpack_require__(/*! ./tx */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/tx.ts"); +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +function createBaseQueryEventParamsRequest() { + return {}; } -exports.QueryDelegatorValidatorsRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.delegatorAddr !== "") { - writer.uint32(10).string(message.delegatorAddr); - } - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); - } +exports.QueryEventParamsRequest = { + encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorValidatorsRequest(); + const message = createBaseQueryEventParamsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.delegatorAddr = reader.string(); - break; - case 2: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); - break; default: reader.skipType(tag & 7); break; @@ -181923,42 +182680,32 @@ exports.QueryDelegatorValidatorsRequest = { } return message; }, - fromPartial(object) { - var _a; - const message = createBaseQueryDelegatorValidatorsRequest(); - message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : ""; - message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; + fromPartial(_) { + const message = createBaseQueryEventParamsRequest(); return message; } }; -function createBaseQueryDelegatorValidatorsResponse() { +function createBaseQueryEventParamsResponse() { return { - validators: [], - pagination: undefined + params: undefined }; } -exports.QueryDelegatorValidatorsResponse = { +exports.QueryEventParamsResponse = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.validators) { - staking_1.Validator.encode(v, writer.uint32(10).fork()).ldelim(); - } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (message.params !== undefined) { + params_1.EventParams.encode(message.params, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorValidatorsResponse(); + const message = createBaseQueryEventParamsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.validators.push(staking_1.Validator.decode(reader, reader.uint32())); - break; - case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + message.params = params_1.EventParams.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -181968,42 +182715,25 @@ exports.QueryDelegatorValidatorsResponse = { return message; }, fromPartial(object) { - var _a; - const message = createBaseQueryDelegatorValidatorsResponse(); - message.validators = ((_a = object.validators) === null || _a === void 0 ? void 0 : _a.map(e => staking_1.Validator.fromPartial(e))) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; + const message = createBaseQueryEventParamsResponse(); + message.params = object.params !== undefined && object.params !== null ? params_1.EventParams.fromPartial(object.params) : undefined; return message; } }; -function createBaseQueryDelegatorValidatorRequest() { - return { - delegatorAddr: "", - validatorAddr: "" - }; +function createBaseQueryProposeParamsRequest() { + return {}; } -exports.QueryDelegatorValidatorRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.delegatorAddr !== "") { - writer.uint32(10).string(message.delegatorAddr); - } - if (message.validatorAddr !== "") { - writer.uint32(18).string(message.validatorAddr); - } +exports.QueryProposeParamsRequest = { + encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorValidatorRequest(); + const message = createBaseQueryProposeParamsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.delegatorAddr = reader.string(); - break; - case 2: - message.validatorAddr = reader.string(); - break; default: reader.skipType(tag & 7); break; @@ -182011,35 +182741,32 @@ exports.QueryDelegatorValidatorRequest = { } return message; }, - fromPartial(object) { - var _a, _b; - const message = createBaseQueryDelegatorValidatorRequest(); - message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : ""; - message.validatorAddr = (_b = object.validatorAddr) !== null && _b !== void 0 ? _b : ""; + fromPartial(_) { + const message = createBaseQueryProposeParamsRequest(); return message; } }; -function createBaseQueryDelegatorValidatorResponse() { +function createBaseQueryProposeParamsResponse() { return { - validator: undefined + params: undefined }; } -exports.QueryDelegatorValidatorResponse = { +exports.QueryProposeParamsResponse = { encode(message, writer = _m0.Writer.create()) { - if (message.validator !== undefined) { - staking_1.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim(); + if (message.params !== undefined) { + params_1.ProposeParams.encode(message.params, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelegatorValidatorResponse(); + const message = createBaseQueryProposeParamsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.validator = staking_1.Validator.decode(reader, reader.uint32()); + message.params = params_1.ProposeParams.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -182049,33 +182776,25 @@ exports.QueryDelegatorValidatorResponse = { return message; }, fromPartial(object) { - const message = createBaseQueryDelegatorValidatorResponse(); - message.validator = object.validator !== undefined && object.validator !== null ? staking_1.Validator.fromPartial(object.validator) : undefined; + const message = createBaseQueryProposeParamsResponse(); + message.params = object.params !== undefined && object.params !== null ? params_1.ProposeParams.fromPartial(object.params) : undefined; return message; } }; -function createBaseQueryHistoricalInfoRequest() { - return { - height: helpers_1.Long.ZERO - }; +function createBaseQuerySafetyParamsRequest() { + return {}; } -exports.QueryHistoricalInfoRequest = { - encode(message, writer = _m0.Writer.create()) { - if (!message.height.isZero()) { - writer.uint32(8).int64(message.height); - } +exports.QuerySafetyParamsRequest = { + encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryHistoricalInfoRequest(); + const message = createBaseQuerySafetyParamsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.height = reader.int64(); - break; default: reader.skipType(tag & 7); break; @@ -182083,33 +182802,32 @@ exports.QueryHistoricalInfoRequest = { } return message; }, - fromPartial(object) { - const message = createBaseQueryHistoricalInfoRequest(); - message.height = object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; + fromPartial(_) { + const message = createBaseQuerySafetyParamsRequest(); return message; } }; -function createBaseQueryHistoricalInfoResponse() { +function createBaseQuerySafetyParamsResponse() { return { - hist: undefined + params: undefined }; } -exports.QueryHistoricalInfoResponse = { +exports.QuerySafetyParamsResponse = { encode(message, writer = _m0.Writer.create()) { - if (message.hist !== undefined) { - staking_1.HistoricalInfo.encode(message.hist, writer.uint32(10).fork()).ldelim(); + if (message.params !== undefined) { + params_1.SafetyParams.encode(message.params, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryHistoricalInfoResponse(); + const message = createBaseQuerySafetyParamsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.hist = staking_1.HistoricalInfo.decode(reader, reader.uint32()); + message.params = params_1.SafetyParams.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -182119,22 +182837,22 @@ exports.QueryHistoricalInfoResponse = { return message; }, fromPartial(object) { - const message = createBaseQueryHistoricalInfoResponse(); - message.hist = object.hist !== undefined && object.hist !== null ? staking_1.HistoricalInfo.fromPartial(object.hist) : undefined; + const message = createBaseQuerySafetyParamsResponse(); + message.params = object.params !== undefined && object.params !== null ? params_1.SafetyParams.fromPartial(object.params) : undefined; return message; } }; -function createBaseQueryPoolRequest() { +function createBaseQueryAcknowledgedEventInfoRequest() { return {}; } -exports.QueryPoolRequest = { +exports.QueryAcknowledgedEventInfoRequest = { encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryPoolRequest(); + const message = createBaseQueryAcknowledgedEventInfoRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { @@ -182146,31 +182864,31 @@ exports.QueryPoolRequest = { return message; }, fromPartial(_) { - const message = createBaseQueryPoolRequest(); + const message = createBaseQueryAcknowledgedEventInfoRequest(); return message; } }; -function createBaseQueryPoolResponse() { +function createBaseQueryAcknowledgedEventInfoResponse() { return { - pool: undefined + info: undefined }; } -exports.QueryPoolResponse = { +exports.QueryAcknowledgedEventInfoResponse = { encode(message, writer = _m0.Writer.create()) { - if (message.pool !== undefined) { - staking_1.Pool.encode(message.pool, writer.uint32(10).fork()).ldelim(); + if (message.info !== undefined) { + bridge_event_info_1.BridgeEventInfo.encode(message.info, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryPoolResponse(); + const message = createBaseQueryAcknowledgedEventInfoResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.pool = staking_1.Pool.decode(reader, reader.uint32()); + message.info = bridge_event_info_1.BridgeEventInfo.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -182180,22 +182898,22 @@ exports.QueryPoolResponse = { return message; }, fromPartial(object) { - const message = createBaseQueryPoolResponse(); - message.pool = object.pool !== undefined && object.pool !== null ? staking_1.Pool.fromPartial(object.pool) : undefined; + const message = createBaseQueryAcknowledgedEventInfoResponse(); + message.info = object.info !== undefined && object.info !== null ? bridge_event_info_1.BridgeEventInfo.fromPartial(object.info) : undefined; return message; } }; -function createBaseQueryParamsRequest() { +function createBaseQueryRecognizedEventInfoRequest() { return {}; } -exports.QueryParamsRequest = { +exports.QueryRecognizedEventInfoRequest = { encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsRequest(); + const message = createBaseQueryRecognizedEventInfoRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { @@ -182207,31 +182925,31 @@ exports.QueryParamsRequest = { return message; }, fromPartial(_) { - const message = createBaseQueryParamsRequest(); + const message = createBaseQueryRecognizedEventInfoRequest(); return message; } }; -function createBaseQueryParamsResponse() { +function createBaseQueryRecognizedEventInfoResponse() { return { - params: undefined + info: undefined }; } -exports.QueryParamsResponse = { +exports.QueryRecognizedEventInfoResponse = { encode(message, writer = _m0.Writer.create()) { - if (message.params !== undefined) { - staking_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim(); + if (message.info !== undefined) { + bridge_event_info_1.BridgeEventInfo.encode(message.info, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryParamsResponse(); + const message = createBaseQueryRecognizedEventInfoResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.params = staking_1.Params.decode(reader, reader.uint32()); + message.info = bridge_event_info_1.BridgeEventInfo.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -182241,179 +182959,32 @@ exports.QueryParamsResponse = { return message; }, fromPartial(object) { - const message = createBaseQueryParamsResponse(); - message.params = object.params !== undefined && object.params !== null ? staking_1.Params.fromPartial(object.params) : undefined; + const message = createBaseQueryRecognizedEventInfoResponse(); + message.info = object.info !== undefined && object.info !== null ? bridge_event_info_1.BridgeEventInfo.fromPartial(object.info) : undefined; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9jb3Ntb3Mvc3Rha2luZy92MWJldGExL3F1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0VBQXlIO0FBQ3pILHVDQUE0UjtBQUM1Uix3REFBMEM7QUFDMUMsOENBQXFEO0FBZ2VyRCxTQUFTLGdDQUFnQztJQUN2QyxPQUFPO1FBQ0wsTUFBTSxFQUFFLEVBQUU7UUFDVixVQUFVLEVBQUUsU0FBUztLQUN0QixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsc0JBQXNCLEdBQUc7SUFDcEMsTUFBTSxDQUFDLE9BQStCLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDOUUsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRTtZQUN6QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDMUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFO1lBQ3BDLHdCQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzNFO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtB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 - -/***/ }), - -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/staking.ts": -/*!*******************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/staking.ts ***! - \*******************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ValidatorUpdates = exports.Pool = exports.RedelegationResponse = exports.RedelegationEntryResponse = exports.DelegationResponse = exports.Params = exports.Redelegation = exports.RedelegationEntry = exports.UnbondingDelegationEntry = exports.UnbondingDelegation = exports.Delegation = exports.DVVTriplets = exports.DVVTriplet = exports.DVPairs = exports.DVPair = exports.ValAddresses = exports.Validator = exports.Description = exports.Commission = exports.CommissionRates = exports.HistoricalInfo = exports.infractionToJSON = exports.infractionFromJSON = exports.InfractionSDKType = exports.Infraction = exports.bondStatusToJSON = exports.bondStatusFromJSON = exports.BondStatusSDKType = exports.BondStatus = void 0; -const types_1 = __webpack_require__(/*! ../../../tendermint/types/types */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/types.ts"); -const timestamp_1 = __webpack_require__(/*! ../../../google/protobuf/timestamp */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/timestamp.ts"); -const any_1 = __webpack_require__(/*! ../../../google/protobuf/any */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/any.ts"); -const duration_1 = __webpack_require__(/*! ../../../google/protobuf/duration */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/duration.ts"); -const coin_1 = __webpack_require__(/*! ../../base/v1beta1/coin */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/v1beta1/coin.ts"); -const types_2 = __webpack_require__(/*! ../../../tendermint/abci/types */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/abci/types.ts"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ../../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); -/** BondStatus is the status of a validator. */ -var BondStatus; -(function (BondStatus) { - /** BOND_STATUS_UNSPECIFIED - UNSPECIFIED defines an invalid validator status. */ - BondStatus[BondStatus["BOND_STATUS_UNSPECIFIED"] = 0] = "BOND_STATUS_UNSPECIFIED"; - /** BOND_STATUS_UNBONDED - UNBONDED defines a validator that is not bonded. */ - BondStatus[BondStatus["BOND_STATUS_UNBONDED"] = 1] = "BOND_STATUS_UNBONDED"; - /** BOND_STATUS_UNBONDING - UNBONDING defines a validator that is unbonding. */ - BondStatus[BondStatus["BOND_STATUS_UNBONDING"] = 2] = "BOND_STATUS_UNBONDING"; - /** BOND_STATUS_BONDED - BONDED defines a validator that is bonded. */ - BondStatus[BondStatus["BOND_STATUS_BONDED"] = 3] = "BOND_STATUS_BONDED"; - BondStatus[BondStatus["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(BondStatus = exports.BondStatus || (exports.BondStatus = {})); -exports.BondStatusSDKType = BondStatus; -function bondStatusFromJSON(object) { - switch (object) { - case 0: - case "BOND_STATUS_UNSPECIFIED": - return BondStatus.BOND_STATUS_UNSPECIFIED; - case 1: - case "BOND_STATUS_UNBONDED": - return BondStatus.BOND_STATUS_UNBONDED; - case 2: - case "BOND_STATUS_UNBONDING": - return BondStatus.BOND_STATUS_UNBONDING; - case 3: - case "BOND_STATUS_BONDED": - return BondStatus.BOND_STATUS_BONDED; - case -1: - case "UNRECOGNIZED": - default: - return BondStatus.UNRECOGNIZED; - } -} -exports.bondStatusFromJSON = bondStatusFromJSON; -function bondStatusToJSON(object) { - switch (object) { - case BondStatus.BOND_STATUS_UNSPECIFIED: - return "BOND_STATUS_UNSPECIFIED"; - case BondStatus.BOND_STATUS_UNBONDED: - return "BOND_STATUS_UNBONDED"; - case BondStatus.BOND_STATUS_UNBONDING: - return "BOND_STATUS_UNBONDING"; - case BondStatus.BOND_STATUS_BONDED: - return "BOND_STATUS_BONDED"; - case BondStatus.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -exports.bondStatusToJSON = bondStatusToJSON; -/** Infraction indicates the infraction a validator commited. */ -var Infraction; -(function (Infraction) { - /** INFRACTION_UNSPECIFIED - UNSPECIFIED defines an empty infraction. */ - Infraction[Infraction["INFRACTION_UNSPECIFIED"] = 0] = "INFRACTION_UNSPECIFIED"; - /** INFRACTION_DOUBLE_SIGN - DOUBLE_SIGN defines a validator that double-signs a block. */ - Infraction[Infraction["INFRACTION_DOUBLE_SIGN"] = 1] = "INFRACTION_DOUBLE_SIGN"; - /** INFRACTION_DOWNTIME - DOWNTIME defines a validator that missed signing too many blocks. */ - Infraction[Infraction["INFRACTION_DOWNTIME"] = 2] = "INFRACTION_DOWNTIME"; - Infraction[Infraction["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(Infraction = exports.Infraction || (exports.Infraction = {})); -exports.InfractionSDKType = Infraction; -function infractionFromJSON(object) { - switch (object) { - case 0: - case "INFRACTION_UNSPECIFIED": - return Infraction.INFRACTION_UNSPECIFIED; - case 1: - case "INFRACTION_DOUBLE_SIGN": - return Infraction.INFRACTION_DOUBLE_SIGN; - case 2: - case "INFRACTION_DOWNTIME": - return Infraction.INFRACTION_DOWNTIME; - case -1: - case "UNRECOGNIZED": - default: - return Infraction.UNRECOGNIZED; - } -} -exports.infractionFromJSON = infractionFromJSON; -function infractionToJSON(object) { - switch (object) { - case Infraction.INFRACTION_UNSPECIFIED: - return "INFRACTION_UNSPECIFIED"; - case Infraction.INFRACTION_DOUBLE_SIGN: - return "INFRACTION_DOUBLE_SIGN"; - case Infraction.INFRACTION_DOWNTIME: - return "INFRACTION_DOWNTIME"; - case Infraction.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -exports.infractionToJSON = infractionToJSON; -function createBaseHistoricalInfo() { +function createBaseQueryDelayedCompleteBridgeMessagesRequest() { return { - header: undefined, - valset: [] + address: "" }; } -exports.HistoricalInfo = { +exports.QueryDelayedCompleteBridgeMessagesRequest = { encode(message, writer = _m0.Writer.create()) { - if (message.header !== undefined) { - types_1.Header.encode(message.header, writer.uint32(10).fork()).ldelim(); - } - for (const v of message.valset) { - exports.Validator.encode(v, writer.uint32(18).fork()).ldelim(); + if (message.address !== "") { + writer.uint32(10).string(message.address); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseHistoricalInfo(); + const message = createBaseQueryDelayedCompleteBridgeMessagesRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.header = types_1.Header.decode(reader, reader.uint32()); - break; - case 2: - message.valset.push(exports.Validator.decode(reader, reader.uint32())); + message.address = reader.string(); break; default: reader.skipType(tag & 7); @@ -182424,47 +182995,32 @@ exports.HistoricalInfo = { }, fromPartial(object) { var _a; - const message = createBaseHistoricalInfo(); - message.header = object.header !== undefined && object.header !== null ? types_1.Header.fromPartial(object.header) : undefined; - message.valset = ((_a = object.valset) === null || _a === void 0 ? void 0 : _a.map(e => exports.Validator.fromPartial(e))) || []; + const message = createBaseQueryDelayedCompleteBridgeMessagesRequest(); + message.address = (_a = object.address) !== null && _a !== void 0 ? _a : ""; return message; } }; -function createBaseCommissionRates() { +function createBaseQueryDelayedCompleteBridgeMessagesResponse() { return { - rate: "", - maxRate: "", - maxChangeRate: "" + messages: [] }; } -exports.CommissionRates = { +exports.QueryDelayedCompleteBridgeMessagesResponse = { encode(message, writer = _m0.Writer.create()) { - if (message.rate !== "") { - writer.uint32(10).string(message.rate); - } - if (message.maxRate !== "") { - writer.uint32(18).string(message.maxRate); - } - if (message.maxChangeRate !== "") { - writer.uint32(26).string(message.maxChangeRate); + for (const v of message.messages) { + exports.DelayedCompleteBridgeMessage.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCommissionRates(); + const message = createBaseQueryDelayedCompleteBridgeMessagesResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.rate = reader.string(); - break; - case 2: - message.maxRate = reader.string(); - break; - case 3: - message.maxChangeRate = reader.string(); + message.messages.push(exports.DelayedCompleteBridgeMessage.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -182474,42 +183030,40 @@ exports.CommissionRates = { return message; }, fromPartial(object) { - var _a, _b, _c; - const message = createBaseCommissionRates(); - message.rate = (_a = object.rate) !== null && _a !== void 0 ? _a : ""; - message.maxRate = (_b = object.maxRate) !== null && _b !== void 0 ? _b : ""; - message.maxChangeRate = (_c = object.maxChangeRate) !== null && _c !== void 0 ? _c : ""; + var _a; + const message = createBaseQueryDelayedCompleteBridgeMessagesResponse(); + message.messages = ((_a = object.messages) === null || _a === void 0 ? void 0 : _a.map(e => exports.DelayedCompleteBridgeMessage.fromPartial(e))) || []; return message; } }; -function createBaseCommission() { +function createBaseDelayedCompleteBridgeMessage() { return { - commissionRates: undefined, - updateTime: undefined + message: undefined, + blockHeight: 0 }; } -exports.Commission = { +exports.DelayedCompleteBridgeMessage = { encode(message, writer = _m0.Writer.create()) { - if (message.commissionRates !== undefined) { - exports.CommissionRates.encode(message.commissionRates, writer.uint32(10).fork()).ldelim(); + if (message.message !== undefined) { + tx_1.MsgCompleteBridge.encode(message.message, writer.uint32(10).fork()).ldelim(); } - if (message.updateTime !== undefined) { - timestamp_1.Timestamp.encode((0, helpers_1.toTimestamp)(message.updateTime), writer.uint32(18).fork()).ldelim(); + if (message.blockHeight !== 0) { + writer.uint32(16).uint32(message.blockHeight); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCommission(); + const message = createBaseDelayedCompleteBridgeMessage(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.commissionRates = exports.CommissionRates.decode(reader, reader.uint32()); + message.message = tx_1.MsgCompleteBridge.decode(reader, reader.uint32()); break; case 2: - message.updateTime = (0, helpers_1.fromTimestamp)(timestamp_1.Timestamp.decode(reader, reader.uint32())); + message.blockHeight = reader.uint32(); break; default: reader.skipType(tag & 7); @@ -182520,195 +183074,73 @@ exports.Commission = { }, fromPartial(object) { var _a; - const message = createBaseCommission(); - message.commissionRates = object.commissionRates !== undefined && object.commissionRates !== null ? exports.CommissionRates.fromPartial(object.commissionRates) : undefined; - message.updateTime = (_a = object.updateTime) !== null && _a !== void 0 ? _a : undefined; + const message = createBaseDelayedCompleteBridgeMessage(); + message.message = object.message !== undefined && object.message !== null ? tx_1.MsgCompleteBridge.fromPartial(object.message) : undefined; + message.blockHeight = (_a = object.blockHeight) !== null && _a !== void 0 ? _a : 0; return message; } }; -function createBaseDescription() { - return { - moniker: "", - identity: "", - website: "", - securityContact: "", - details: "" - }; -} -exports.Description = { - encode(message, writer = _m0.Writer.create()) { - if (message.moniker !== "") { - writer.uint32(10).string(message.moniker); - } - if (message.identity !== "") { - writer.uint32(18).string(message.identity); - } - if (message.website !== "") { - writer.uint32(26).string(message.website); - } - if (message.securityContact !== "") { - writer.uint32(34).string(message.securityContact); - } - if (message.details !== "") { - writer.uint32(42).string(message.details); - } - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDescription(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.moniker = reader.string(); - break; - case 2: - message.identity = reader.string(); - break; - case 3: - message.website = reader.string(); - break; - case 4: - message.securityContact = reader.string(); - break; - case 5: - message.details = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromPartial(object) { - var _a, _b, _c, _d, _e; - const message = createBaseDescription(); - message.moniker = (_a = object.moniker) !== null && _a !== void 0 ? _a : ""; - message.identity = (_b = object.identity) !== null && _b !== void 0 ? _b : ""; - message.website = (_c = object.website) !== null && _c !== void 0 ? _c : ""; - message.securityContact = (_d = object.securityContact) !== null && _d !== void 0 ? _d : ""; - message.details = (_e = object.details) !== null && _e !== void 0 ? _e : ""; - return message; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvYnJpZGdlL3F1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscUNBQW1JO0FBQ25JLDJEQUE4RTtBQUM5RSw2QkFBbUU7QUFDbkUsd0RBQTBDO0FBeUsxQyxTQUFTLGlDQUFpQztJQUN4QyxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFWSxRQUFBLHVCQUF1QixHQUFHO0lBQ3JDLE1BQU0sQ0FBQyxDQUEwQixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ3pFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxpQ0FBaUMsRUFBRSxDQUFDO1FBRXBELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRTVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakI7b0JBQ0UsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFD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 + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/tx.ts": +/*!***********************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/tx.ts ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; }; -function createBaseValidator() { +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.MsgUpdateSafetyParamsResponse = exports.MsgUpdateSafetyParams = exports.MsgUpdateProposeParamsResponse = exports.MsgUpdateProposeParams = exports.MsgUpdateEventParamsResponse = exports.MsgUpdateEventParams = exports.MsgCompleteBridgeResponse = exports.MsgCompleteBridge = exports.MsgAcknowledgeBridgesResponse = exports.MsgAcknowledgeBridges = void 0; +const bridge_event_1 = __webpack_require__(/*! ./bridge_event */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/bridge_event.ts"); +const params_1 = __webpack_require__(/*! ./params */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/params.ts"); +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +function createBaseMsgAcknowledgeBridges() { return { - operatorAddress: "", - consensusPubkey: undefined, - jailed: false, - status: 0, - tokens: "", - delegatorShares: "", - description: undefined, - unbondingHeight: helpers_1.Long.ZERO, - unbondingTime: undefined, - commission: undefined, - minSelfDelegation: "", - unbondingOnHoldRefCount: helpers_1.Long.ZERO, - unbondingIds: [] + events: [] }; } -exports.Validator = { +exports.MsgAcknowledgeBridges = { encode(message, writer = _m0.Writer.create()) { - if (message.operatorAddress !== "") { - writer.uint32(10).string(message.operatorAddress); - } - if (message.consensusPubkey !== undefined) { - any_1.Any.encode(message.consensusPubkey, writer.uint32(18).fork()).ldelim(); - } - if (message.jailed === true) { - writer.uint32(24).bool(message.jailed); - } - if (message.status !== 0) { - writer.uint32(32).int32(message.status); - } - if (message.tokens !== "") { - writer.uint32(42).string(message.tokens); - } - if (message.delegatorShares !== "") { - writer.uint32(50).string(message.delegatorShares); - } - if (message.description !== undefined) { - exports.Description.encode(message.description, writer.uint32(58).fork()).ldelim(); - } - if (!message.unbondingHeight.isZero()) { - writer.uint32(64).int64(message.unbondingHeight); - } - if (message.unbondingTime !== undefined) { - timestamp_1.Timestamp.encode((0, helpers_1.toTimestamp)(message.unbondingTime), writer.uint32(74).fork()).ldelim(); - } - if (message.commission !== undefined) { - exports.Commission.encode(message.commission, writer.uint32(82).fork()).ldelim(); - } - if (message.minSelfDelegation !== "") { - writer.uint32(90).string(message.minSelfDelegation); - } - if (!message.unbondingOnHoldRefCount.isZero()) { - writer.uint32(96).int64(message.unbondingOnHoldRefCount); - } - writer.uint32(106).fork(); - for (const v of message.unbondingIds) { - writer.uint64(v); + for (const v of message.events) { + bridge_event_1.BridgeEvent.encode(v, writer.uint32(10).fork()).ldelim(); } - writer.ldelim(); return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidator(); + const message = createBaseMsgAcknowledgeBridges(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.operatorAddress = reader.string(); - break; - case 2: - message.consensusPubkey = any_1.Any.decode(reader, reader.uint32()); - break; - case 3: - message.jailed = reader.bool(); - break; - case 4: - message.status = reader.int32(); - break; - case 5: - message.tokens = reader.string(); - break; - case 6: - message.delegatorShares = reader.string(); - break; - case 7: - message.description = exports.Description.decode(reader, reader.uint32()); - break; - case 8: - message.unbondingHeight = reader.int64(); - break; - case 9: - message.unbondingTime = (0, helpers_1.fromTimestamp)(timestamp_1.Timestamp.decode(reader, reader.uint32())); - break; - case 10: - message.commission = exports.Commission.decode(reader, reader.uint32()); - break; - case 11: - message.minSelfDelegation = reader.string(); - break; - case 12: - message.unbondingOnHoldRefCount = reader.int64(); - break; - case 13: - if ((tag & 7) === 2) { - const end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) { - message.unbondingIds.push(reader.uint64()); - } - } - else { - message.unbondingIds.push(reader.uint64()); - } + message.events.push(bridge_event_1.BridgeEvent.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -182718,46 +183150,26 @@ exports.Validator = { return message; }, fromPartial(object) { - var _a, _b, _c, _d, _e, _f, _g, _h; - const message = createBaseValidator(); - message.operatorAddress = (_a = object.operatorAddress) !== null && _a !== void 0 ? _a : ""; - message.consensusPubkey = object.consensusPubkey !== undefined && object.consensusPubkey !== null ? any_1.Any.fromPartial(object.consensusPubkey) : undefined; - message.jailed = (_b = object.jailed) !== null && _b !== void 0 ? _b : false; - message.status = (_c = object.status) !== null && _c !== void 0 ? _c : 0; - message.tokens = (_d = object.tokens) !== null && _d !== void 0 ? _d : ""; - message.delegatorShares = (_e = object.delegatorShares) !== null && _e !== void 0 ? _e : ""; - message.description = object.description !== undefined && object.description !== null ? exports.Description.fromPartial(object.description) : undefined; - message.unbondingHeight = object.unbondingHeight !== undefined && object.unbondingHeight !== null ? helpers_1.Long.fromValue(object.unbondingHeight) : helpers_1.Long.ZERO; - message.unbondingTime = (_f = object.unbondingTime) !== null && _f !== void 0 ? _f : undefined; - message.commission = object.commission !== undefined && object.commission !== null ? exports.Commission.fromPartial(object.commission) : undefined; - message.minSelfDelegation = (_g = object.minSelfDelegation) !== null && _g !== void 0 ? _g : ""; - message.unbondingOnHoldRefCount = object.unbondingOnHoldRefCount !== undefined && object.unbondingOnHoldRefCount !== null ? helpers_1.Long.fromValue(object.unbondingOnHoldRefCount) : helpers_1.Long.ZERO; - message.unbondingIds = ((_h = object.unbondingIds) === null || _h === void 0 ? void 0 : _h.map(e => helpers_1.Long.fromValue(e))) || []; + var _a; + const message = createBaseMsgAcknowledgeBridges(); + message.events = ((_a = object.events) === null || _a === void 0 ? void 0 : _a.map(e => bridge_event_1.BridgeEvent.fromPartial(e))) || []; return message; } }; -function createBaseValAddresses() { - return { - addresses: [] - }; +function createBaseMsgAcknowledgeBridgesResponse() { + return {}; } -exports.ValAddresses = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.addresses) { - writer.uint32(10).string(v); - } +exports.MsgAcknowledgeBridgesResponse = { + encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValAddresses(); + const message = createBaseMsgAcknowledgeBridgesResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.addresses.push(reader.string()); - break; default: reader.skipType(tag & 7); break; @@ -182765,41 +183177,39 @@ exports.ValAddresses = { } return message; }, - fromPartial(object) { - var _a; - const message = createBaseValAddresses(); - message.addresses = ((_a = object.addresses) === null || _a === void 0 ? void 0 : _a.map(e => e)) || []; + fromPartial(_) { + const message = createBaseMsgAcknowledgeBridgesResponse(); return message; } }; -function createBaseDVPair() { +function createBaseMsgCompleteBridge() { return { - delegatorAddress: "", - validatorAddress: "" + authority: "", + event: undefined }; } -exports.DVPair = { +exports.MsgCompleteBridge = { encode(message, writer = _m0.Writer.create()) { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); + if (message.authority !== "") { + writer.uint32(10).string(message.authority); } - if (message.validatorAddress !== "") { - writer.uint32(18).string(message.validatorAddress); + if (message.event !== undefined) { + bridge_event_1.BridgeEvent.encode(message.event, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDVPair(); + const message = createBaseMsgCompleteBridge(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.delegatorAddress = reader.string(); + message.authority = reader.string(); break; case 2: - message.validatorAddress = reader.string(); + message.event = bridge_event_1.BridgeEvent.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -182809,35 +183219,27 @@ exports.DVPair = { return message; }, fromPartial(object) { - var _a, _b; - const message = createBaseDVPair(); - message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : ""; - message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : ""; + var _a; + const message = createBaseMsgCompleteBridge(); + message.authority = (_a = object.authority) !== null && _a !== void 0 ? _a : ""; + message.event = object.event !== undefined && object.event !== null ? bridge_event_1.BridgeEvent.fromPartial(object.event) : undefined; return message; } }; -function createBaseDVPairs() { - return { - pairs: [] - }; +function createBaseMsgCompleteBridgeResponse() { + return {}; } -exports.DVPairs = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.pairs) { - exports.DVPair.encode(v, writer.uint32(10).fork()).ldelim(); - } +exports.MsgCompleteBridgeResponse = { + encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDVPairs(); + const message = createBaseMsgCompleteBridgeResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.pairs.push(exports.DVPair.decode(reader, reader.uint32())); - break; default: reader.skipType(tag & 7); break; @@ -182845,48 +183247,39 @@ exports.DVPairs = { } return message; }, - fromPartial(object) { - var _a; - const message = createBaseDVPairs(); - message.pairs = ((_a = object.pairs) === null || _a === void 0 ? void 0 : _a.map(e => exports.DVPair.fromPartial(e))) || []; + fromPartial(_) { + const message = createBaseMsgCompleteBridgeResponse(); return message; } }; -function createBaseDVVTriplet() { +function createBaseMsgUpdateEventParams() { return { - delegatorAddress: "", - validatorSrcAddress: "", - validatorDstAddress: "" + authority: "", + params: undefined }; } -exports.DVVTriplet = { +exports.MsgUpdateEventParams = { encode(message, writer = _m0.Writer.create()) { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); - } - if (message.validatorSrcAddress !== "") { - writer.uint32(18).string(message.validatorSrcAddress); + if (message.authority !== "") { + writer.uint32(10).string(message.authority); } - if (message.validatorDstAddress !== "") { - writer.uint32(26).string(message.validatorDstAddress); + if (message.params !== undefined) { + params_1.EventParams.encode(message.params, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDVVTriplet(); + const message = createBaseMsgUpdateEventParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.delegatorAddress = reader.string(); + message.authority = reader.string(); break; case 2: - message.validatorSrcAddress = reader.string(); - break; - case 3: - message.validatorDstAddress = reader.string(); + message.params = params_1.EventParams.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -182896,36 +183289,27 @@ exports.DVVTriplet = { return message; }, fromPartial(object) { - var _a, _b, _c; - const message = createBaseDVVTriplet(); - message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : ""; - message.validatorSrcAddress = (_b = object.validatorSrcAddress) !== null && _b !== void 0 ? _b : ""; - message.validatorDstAddress = (_c = object.validatorDstAddress) !== null && _c !== void 0 ? _c : ""; + var _a; + const message = createBaseMsgUpdateEventParams(); + message.authority = (_a = object.authority) !== null && _a !== void 0 ? _a : ""; + message.params = object.params !== undefined && object.params !== null ? params_1.EventParams.fromPartial(object.params) : undefined; return message; } }; -function createBaseDVVTriplets() { - return { - triplets: [] - }; +function createBaseMsgUpdateEventParamsResponse() { + return {}; } -exports.DVVTriplets = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.triplets) { - exports.DVVTriplet.encode(v, writer.uint32(10).fork()).ldelim(); - } +exports.MsgUpdateEventParamsResponse = { + encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDVVTriplets(); + const message = createBaseMsgUpdateEventParamsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.triplets.push(exports.DVVTriplet.decode(reader, reader.uint32())); - break; default: reader.skipType(tag & 7); break; @@ -182933,48 +183317,39 @@ exports.DVVTriplets = { } return message; }, - fromPartial(object) { - var _a; - const message = createBaseDVVTriplets(); - message.triplets = ((_a = object.triplets) === null || _a === void 0 ? void 0 : _a.map(e => exports.DVVTriplet.fromPartial(e))) || []; + fromPartial(_) { + const message = createBaseMsgUpdateEventParamsResponse(); return message; } }; -function createBaseDelegation() { +function createBaseMsgUpdateProposeParams() { return { - delegatorAddress: "", - validatorAddress: "", - shares: "" + authority: "", + params: undefined }; } -exports.Delegation = { +exports.MsgUpdateProposeParams = { encode(message, writer = _m0.Writer.create()) { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); - } - if (message.validatorAddress !== "") { - writer.uint32(18).string(message.validatorAddress); + if (message.authority !== "") { + writer.uint32(10).string(message.authority); } - if (message.shares !== "") { - writer.uint32(26).string(message.shares); + if (message.params !== undefined) { + params_1.ProposeParams.encode(message.params, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDelegation(); + const message = createBaseMsgUpdateProposeParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.delegatorAddress = reader.string(); + message.authority = reader.string(); break; case 2: - message.validatorAddress = reader.string(); - break; - case 3: - message.shares = reader.string(); + message.params = params_1.ProposeParams.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -182984,50 +183359,27 @@ exports.Delegation = { return message; }, fromPartial(object) { - var _a, _b, _c; - const message = createBaseDelegation(); - message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : ""; - message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : ""; - message.shares = (_c = object.shares) !== null && _c !== void 0 ? _c : ""; + var _a; + const message = createBaseMsgUpdateProposeParams(); + message.authority = (_a = object.authority) !== null && _a !== void 0 ? _a : ""; + message.params = object.params !== undefined && object.params !== null ? params_1.ProposeParams.fromPartial(object.params) : undefined; return message; } }; -function createBaseUnbondingDelegation() { - return { - delegatorAddress: "", - validatorAddress: "", - entries: [] - }; +function createBaseMsgUpdateProposeParamsResponse() { + return {}; } -exports.UnbondingDelegation = { - encode(message, writer = _m0.Writer.create()) { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); - } - if (message.validatorAddress !== "") { - writer.uint32(18).string(message.validatorAddress); - } - for (const v of message.entries) { - exports.UnbondingDelegationEntry.encode(v, writer.uint32(26).fork()).ldelim(); - } +exports.MsgUpdateProposeParamsResponse = { + encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseUnbondingDelegation(); + const message = createBaseMsgUpdateProposeParamsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.delegatorAddress = reader.string(); - break; - case 2: - message.validatorAddress = reader.string(); - break; - case 3: - message.entries.push(exports.UnbondingDelegationEntry.decode(reader, reader.uint32())); - break; default: reader.skipType(tag & 7); break; @@ -183035,71 +183387,39 @@ exports.UnbondingDelegation = { } return message; }, - fromPartial(object) { - var _a, _b, _c; - const message = createBaseUnbondingDelegation(); - message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : ""; - message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : ""; - message.entries = ((_c = object.entries) === null || _c === void 0 ? void 0 : _c.map(e => exports.UnbondingDelegationEntry.fromPartial(e))) || []; + fromPartial(_) { + const message = createBaseMsgUpdateProposeParamsResponse(); return message; } }; -function createBaseUnbondingDelegationEntry() { +function createBaseMsgUpdateSafetyParams() { return { - creationHeight: helpers_1.Long.ZERO, - completionTime: undefined, - initialBalance: "", - balance: "", - unbondingId: helpers_1.Long.UZERO, - unbondingOnHoldRefCount: helpers_1.Long.ZERO + authority: "", + params: undefined }; } -exports.UnbondingDelegationEntry = { +exports.MsgUpdateSafetyParams = { encode(message, writer = _m0.Writer.create()) { - if (!message.creationHeight.isZero()) { - writer.uint32(8).int64(message.creationHeight); - } - if (message.completionTime !== undefined) { - timestamp_1.Timestamp.encode((0, helpers_1.toTimestamp)(message.completionTime), writer.uint32(18).fork()).ldelim(); - } - if (message.initialBalance !== "") { - writer.uint32(26).string(message.initialBalance); - } - if (message.balance !== "") { - writer.uint32(34).string(message.balance); - } - if (!message.unbondingId.isZero()) { - writer.uint32(40).uint64(message.unbondingId); + if (message.authority !== "") { + writer.uint32(10).string(message.authority); } - if (!message.unbondingOnHoldRefCount.isZero()) { - writer.uint32(48).int64(message.unbondingOnHoldRefCount); + if (message.params !== undefined) { + params_1.SafetyParams.encode(message.params, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseUnbondingDelegationEntry(); + const message = createBaseMsgUpdateSafetyParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.creationHeight = reader.int64(); + message.authority = reader.string(); break; case 2: - message.completionTime = (0, helpers_1.fromTimestamp)(timestamp_1.Timestamp.decode(reader, reader.uint32())); - break; - case 3: - message.initialBalance = reader.string(); - break; - case 4: - message.balance = reader.string(); - break; - case 5: - message.unbondingId = reader.uint64(); - break; - case 6: - message.unbondingOnHoldRefCount = reader.int64(); + message.params = params_1.SafetyParams.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -183109,74 +183429,27 @@ exports.UnbondingDelegationEntry = { return message; }, fromPartial(object) { - var _a, _b, _c; - const message = createBaseUnbondingDelegationEntry(); - message.creationHeight = object.creationHeight !== undefined && object.creationHeight !== null ? helpers_1.Long.fromValue(object.creationHeight) : helpers_1.Long.ZERO; - message.completionTime = (_a = object.completionTime) !== null && _a !== void 0 ? _a : undefined; - message.initialBalance = (_b = object.initialBalance) !== null && _b !== void 0 ? _b : ""; - message.balance = (_c = object.balance) !== null && _c !== void 0 ? _c : ""; - message.unbondingId = object.unbondingId !== undefined && object.unbondingId !== null ? helpers_1.Long.fromValue(object.unbondingId) : helpers_1.Long.UZERO; - message.unbondingOnHoldRefCount = object.unbondingOnHoldRefCount !== undefined && object.unbondingOnHoldRefCount !== null ? helpers_1.Long.fromValue(object.unbondingOnHoldRefCount) : helpers_1.Long.ZERO; + var _a; + const message = createBaseMsgUpdateSafetyParams(); + message.authority = (_a = object.authority) !== null && _a !== void 0 ? _a : ""; + message.params = object.params !== undefined && object.params !== null ? params_1.SafetyParams.fromPartial(object.params) : undefined; return message; } }; -function createBaseRedelegationEntry() { - return { - creationHeight: helpers_1.Long.ZERO, - completionTime: undefined, - initialBalance: "", - sharesDst: "", - unbondingId: helpers_1.Long.UZERO, - unbondingOnHoldRefCount: helpers_1.Long.ZERO - }; +function createBaseMsgUpdateSafetyParamsResponse() { + return {}; } -exports.RedelegationEntry = { - encode(message, writer = _m0.Writer.create()) { - if (!message.creationHeight.isZero()) { - writer.uint32(8).int64(message.creationHeight); - } - if (message.completionTime !== undefined) { - timestamp_1.Timestamp.encode((0, helpers_1.toTimestamp)(message.completionTime), writer.uint32(18).fork()).ldelim(); - } - if (message.initialBalance !== "") { - writer.uint32(26).string(message.initialBalance); - } - if (message.sharesDst !== "") { - writer.uint32(34).string(message.sharesDst); - } - if (!message.unbondingId.isZero()) { - writer.uint32(40).uint64(message.unbondingId); - } - if (!message.unbondingOnHoldRefCount.isZero()) { - writer.uint32(48).int64(message.unbondingOnHoldRefCount); - } +exports.MsgUpdateSafetyParamsResponse = { + encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRedelegationEntry(); + const message = createBaseMsgUpdateSafetyParamsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.creationHeight = reader.int64(); - break; - case 2: - message.completionTime = (0, helpers_1.fromTimestamp)(timestamp_1.Timestamp.decode(reader, reader.uint32())); - break; - case 3: - message.initialBalance = reader.string(); - break; - case 4: - message.sharesDst = reader.string(); - break; - case 5: - message.unbondingId = reader.uint64(); - break; - case 6: - message.unbondingOnHoldRefCount = reader.int64(); - break; default: reader.skipType(tag & 7); break; @@ -183184,60 +183457,84 @@ exports.RedelegationEntry = { } return message; }, - fromPartial(object) { - var _a, _b, _c; - const message = createBaseRedelegationEntry(); - message.creationHeight = object.creationHeight !== undefined && object.creationHeight !== null ? helpers_1.Long.fromValue(object.creationHeight) : helpers_1.Long.ZERO; - message.completionTime = (_a = object.completionTime) !== null && _a !== void 0 ? _a : undefined; - message.initialBalance = (_b = object.initialBalance) !== null && _b !== void 0 ? _b : ""; - message.sharesDst = (_c = object.sharesDst) !== null && _c !== void 0 ? _c : ""; - message.unbondingId = object.unbondingId !== undefined && object.unbondingId !== null ? helpers_1.Long.fromValue(object.unbondingId) : helpers_1.Long.UZERO; - message.unbondingOnHoldRefCount = object.unbondingOnHoldRefCount !== undefined && object.unbondingOnHoldRefCount !== null ? helpers_1.Long.fromValue(object.unbondingOnHoldRefCount) : helpers_1.Long.ZERO; + fromPartial(_) { + const message = createBaseMsgUpdateSafetyParamsResponse(); return message; } }; -function createBaseRedelegation() { +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvYnJpZGdlL3R4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQWlFO0FBQ2pFLHFDQUFtSTtBQUNuSSx3REFBMEM7QUEwRzFDLFNBQVMsK0JBQStCO0lBQ3RDLE9BQU87UUFDTCxNQUFNLEVBQUUsRUFBRTtLQUNYLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxxQkFBcUIsR0FBRztJQUNuQyxNQUFNLENBQUMsT0FBOEIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUM3RSxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDOUIsMEJBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMzRDtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRywrQkFBK0IsRUFBRSxDQUFDO1FBRWxELE9BQU8s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 + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/block_rate_limit_config.ts": +/*!******************************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/block_rate_limit_config.ts ***! + \******************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.MaxPerNBlocksRateLimit = exports.BlockRateLimitConfiguration = void 0; +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +function createBaseBlockRateLimitConfiguration() { return { - delegatorAddress: "", - validatorSrcAddress: "", - validatorDstAddress: "", - entries: [] + maxShortTermOrdersPerNBlocks: [], + maxStatefulOrdersPerNBlocks: [], + maxShortTermOrderCancellationsPerNBlocks: [] }; } -exports.Redelegation = { +exports.BlockRateLimitConfiguration = { encode(message, writer = _m0.Writer.create()) { - if (message.delegatorAddress !== "") { - writer.uint32(10).string(message.delegatorAddress); - } - if (message.validatorSrcAddress !== "") { - writer.uint32(18).string(message.validatorSrcAddress); + for (const v of message.maxShortTermOrdersPerNBlocks) { + exports.MaxPerNBlocksRateLimit.encode(v, writer.uint32(10).fork()).ldelim(); } - if (message.validatorDstAddress !== "") { - writer.uint32(26).string(message.validatorDstAddress); + for (const v of message.maxStatefulOrdersPerNBlocks) { + exports.MaxPerNBlocksRateLimit.encode(v, writer.uint32(18).fork()).ldelim(); } - for (const v of message.entries) { - exports.RedelegationEntry.encode(v, writer.uint32(34).fork()).ldelim(); + for (const v of message.maxShortTermOrderCancellationsPerNBlocks) { + exports.MaxPerNBlocksRateLimit.encode(v, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRedelegation(); + const message = createBaseBlockRateLimitConfiguration(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.delegatorAddress = reader.string(); + message.maxShortTermOrdersPerNBlocks.push(exports.MaxPerNBlocksRateLimit.decode(reader, reader.uint32())); break; case 2: - message.validatorSrcAddress = reader.string(); + message.maxStatefulOrdersPerNBlocks.push(exports.MaxPerNBlocksRateLimit.decode(reader, reader.uint32())); break; case 3: - message.validatorDstAddress = reader.string(); - break; - case 4: - message.entries.push(exports.RedelegationEntry.decode(reader, reader.uint32())); + message.maxShortTermOrderCancellationsPerNBlocks.push(exports.MaxPerNBlocksRateLimit.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -183247,71 +183544,42 @@ exports.Redelegation = { return message; }, fromPartial(object) { - var _a, _b, _c, _d; - const message = createBaseRedelegation(); - message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : ""; - message.validatorSrcAddress = (_b = object.validatorSrcAddress) !== null && _b !== void 0 ? _b : ""; - message.validatorDstAddress = (_c = object.validatorDstAddress) !== null && _c !== void 0 ? _c : ""; - message.entries = ((_d = object.entries) === null || _d === void 0 ? void 0 : _d.map(e => exports.RedelegationEntry.fromPartial(e))) || []; + var _a, _b, _c; + const message = createBaseBlockRateLimitConfiguration(); + message.maxShortTermOrdersPerNBlocks = ((_a = object.maxShortTermOrdersPerNBlocks) === null || _a === void 0 ? void 0 : _a.map(e => exports.MaxPerNBlocksRateLimit.fromPartial(e))) || []; + message.maxStatefulOrdersPerNBlocks = ((_b = object.maxStatefulOrdersPerNBlocks) === null || _b === void 0 ? void 0 : _b.map(e => exports.MaxPerNBlocksRateLimit.fromPartial(e))) || []; + message.maxShortTermOrderCancellationsPerNBlocks = ((_c = object.maxShortTermOrderCancellationsPerNBlocks) === null || _c === void 0 ? void 0 : _c.map(e => exports.MaxPerNBlocksRateLimit.fromPartial(e))) || []; return message; } }; -function createBaseParams() { +function createBaseMaxPerNBlocksRateLimit() { return { - unbondingTime: undefined, - maxValidators: 0, - maxEntries: 0, - historicalEntries: 0, - bondDenom: "", - minCommissionRate: "" + numBlocks: 0, + limit: 0 }; } -exports.Params = { +exports.MaxPerNBlocksRateLimit = { encode(message, writer = _m0.Writer.create()) { - if (message.unbondingTime !== undefined) { - duration_1.Duration.encode(message.unbondingTime, writer.uint32(10).fork()).ldelim(); - } - if (message.maxValidators !== 0) { - writer.uint32(16).uint32(message.maxValidators); - } - if (message.maxEntries !== 0) { - writer.uint32(24).uint32(message.maxEntries); - } - if (message.historicalEntries !== 0) { - writer.uint32(32).uint32(message.historicalEntries); - } - if (message.bondDenom !== "") { - writer.uint32(42).string(message.bondDenom); + if (message.numBlocks !== 0) { + writer.uint32(8).uint32(message.numBlocks); } - if (message.minCommissionRate !== "") { - writer.uint32(50).string(message.minCommissionRate); + if (message.limit !== 0) { + writer.uint32(16).uint32(message.limit); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseParams(); + const message = createBaseMaxPerNBlocksRateLimit(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.unbondingTime = duration_1.Duration.decode(reader, reader.uint32()); + message.numBlocks = reader.uint32(); break; case 2: - message.maxValidators = reader.uint32(); - break; - case 3: - message.maxEntries = reader.uint32(); - break; - case 4: - message.historicalEntries = reader.uint32(); - break; - case 5: - message.bondDenom = reader.string(); - break; - case 6: - message.minCommissionRate = reader.string(); + message.limit = reader.uint32(); break; default: reader.skipType(tag & 7); @@ -183321,45 +183589,163 @@ exports.Params = { return message; }, fromPartial(object) { - var _a, _b, _c, _d, _e; - const message = createBaseParams(); - message.unbondingTime = object.unbondingTime !== undefined && object.unbondingTime !== null ? duration_1.Duration.fromPartial(object.unbondingTime) : undefined; - message.maxValidators = (_a = object.maxValidators) !== null && _a !== void 0 ? _a : 0; - message.maxEntries = (_b = object.maxEntries) !== null && _b !== void 0 ? _b : 0; - message.historicalEntries = (_c = object.historicalEntries) !== null && _c !== void 0 ? _c : 0; - message.bondDenom = (_d = object.bondDenom) !== null && _d !== void 0 ? _d : ""; - message.minCommissionRate = (_e = object.minCommissionRate) !== null && _e !== void 0 ? _e : ""; + var _a, _b; + const message = createBaseMaxPerNBlocksRateLimit(); + message.numBlocks = (_a = object.numBlocks) !== null && _a !== void 0 ? _a : 0; + message.limit = (_b = object.limit) !== null && _b !== void 0 ? _b : 0; return message; } }; -function createBaseDelegationResponse() { +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfcmF0ZV9saW1pdF9jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvY2xvYi9ibG9ja19yYXRlX2xpbWl0X2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdEQUEwQztBQXVEMUMsU0FBUyxxQ0FBcUM7SUFDNUMsT0FBTztRQUNMLDRCQUE0QixFQUFFLEVBQUU7UUFDaEMsMkJBQTJCLEVBQUUsRUFBRTtRQUMvQix3Q0FBd0MsRUFBRSxFQUFFO0tBQzdDLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSwyQkFBMkIsR0FBRztJQUN6QyxNQUFNLENBQUMsT0FBb0MsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNuRixLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyw0QkFBNEIsRUFBRTtZQUNwRCw4QkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN0RTtRQUVELEtBQUssTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLDJCQUEyQixFQUFFO1lBQ25ELDhCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFFLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3RFO1FBRUQsS0FBSyxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsd0NBQXdDLEVBQUU7WUFDaEUsOEJBQXNCLENBQUMsTUFBTSxDQUFDLENBQUUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxD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 + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/clob_pair.ts": +/*!****************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/clob_pair.ts ***! + \****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ClobPair = exports.SpotClobMetadata = exports.PerpetualClobMetadata = exports.clobPair_StatusToJSON = exports.clobPair_StatusFromJSON = exports.ClobPair_StatusSDKType = exports.ClobPair_Status = void 0; +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); +/** Status of the CLOB. */ +var ClobPair_Status; +(function (ClobPair_Status) { + /** STATUS_UNSPECIFIED - Default value. This value is invalid and unused. */ + ClobPair_Status[ClobPair_Status["STATUS_UNSPECIFIED"] = 0] = "STATUS_UNSPECIFIED"; + /** STATUS_ACTIVE - STATUS_ACTIVE represents an active clob pair. */ + ClobPair_Status[ClobPair_Status["STATUS_ACTIVE"] = 1] = "STATUS_ACTIVE"; + /** + * STATUS_PAUSED - STATUS_PAUSED behavior is unfinalized. + * TODO(DEC-600): update this documentation. + */ + ClobPair_Status[ClobPair_Status["STATUS_PAUSED"] = 2] = "STATUS_PAUSED"; + /** + * STATUS_CANCEL_ONLY - STATUS_CANCEL_ONLY behavior is unfinalized. + * TODO(DEC-600): update this documentation. + */ + ClobPair_Status[ClobPair_Status["STATUS_CANCEL_ONLY"] = 3] = "STATUS_CANCEL_ONLY"; + /** + * STATUS_POST_ONLY - STATUS_POST_ONLY behavior is unfinalized. + * TODO(DEC-600): update this documentation. + */ + ClobPair_Status[ClobPair_Status["STATUS_POST_ONLY"] = 4] = "STATUS_POST_ONLY"; + /** + * STATUS_INITIALIZING - STATUS_INITIALIZING represents a newly-added clob pair. + * Clob pairs in this state only accept orders which are + * both short-term and post-only. + */ + ClobPair_Status[ClobPair_Status["STATUS_INITIALIZING"] = 5] = "STATUS_INITIALIZING"; + /** + * STATUS_FINAL_SETTLEMENT - STATUS_FINAL_SETTLEMENT represents a clob pair which is deactivated + * and trading has ceased. All open positions will be closed by the + * protocol. Open stateful orders will be cancelled. Open short-term + * orders will be left to expire. + */ + ClobPair_Status[ClobPair_Status["STATUS_FINAL_SETTLEMENT"] = 6] = "STATUS_FINAL_SETTLEMENT"; + ClobPair_Status[ClobPair_Status["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(ClobPair_Status = exports.ClobPair_Status || (exports.ClobPair_Status = {})); +exports.ClobPair_StatusSDKType = ClobPair_Status; +function clobPair_StatusFromJSON(object) { + switch (object) { + case 0: + case "STATUS_UNSPECIFIED": + return ClobPair_Status.STATUS_UNSPECIFIED; + case 1: + case "STATUS_ACTIVE": + return ClobPair_Status.STATUS_ACTIVE; + case 2: + case "STATUS_PAUSED": + return ClobPair_Status.STATUS_PAUSED; + case 3: + case "STATUS_CANCEL_ONLY": + return ClobPair_Status.STATUS_CANCEL_ONLY; + case 4: + case "STATUS_POST_ONLY": + return ClobPair_Status.STATUS_POST_ONLY; + case 5: + case "STATUS_INITIALIZING": + return ClobPair_Status.STATUS_INITIALIZING; + case 6: + case "STATUS_FINAL_SETTLEMENT": + return ClobPair_Status.STATUS_FINAL_SETTLEMENT; + case -1: + case "UNRECOGNIZED": + default: + return ClobPair_Status.UNRECOGNIZED; + } +} +exports.clobPair_StatusFromJSON = clobPair_StatusFromJSON; +function clobPair_StatusToJSON(object) { + switch (object) { + case ClobPair_Status.STATUS_UNSPECIFIED: + return "STATUS_UNSPECIFIED"; + case ClobPair_Status.STATUS_ACTIVE: + return "STATUS_ACTIVE"; + case ClobPair_Status.STATUS_PAUSED: + return "STATUS_PAUSED"; + case ClobPair_Status.STATUS_CANCEL_ONLY: + return "STATUS_CANCEL_ONLY"; + case ClobPair_Status.STATUS_POST_ONLY: + return "STATUS_POST_ONLY"; + case ClobPair_Status.STATUS_INITIALIZING: + return "STATUS_INITIALIZING"; + case ClobPair_Status.STATUS_FINAL_SETTLEMENT: + return "STATUS_FINAL_SETTLEMENT"; + case ClobPair_Status.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} +exports.clobPair_StatusToJSON = clobPair_StatusToJSON; +function createBasePerpetualClobMetadata() { return { - delegation: undefined, - balance: undefined + perpetualId: 0 }; } -exports.DelegationResponse = { +exports.PerpetualClobMetadata = { encode(message, writer = _m0.Writer.create()) { - if (message.delegation !== undefined) { - exports.Delegation.encode(message.delegation, writer.uint32(10).fork()).ldelim(); - } - if (message.balance !== undefined) { - coin_1.Coin.encode(message.balance, writer.uint32(18).fork()).ldelim(); + if (message.perpetualId !== 0) { + writer.uint32(8).uint32(message.perpetualId); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDelegationResponse(); + const message = createBasePerpetualClobMetadata(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.delegation = exports.Delegation.decode(reader, reader.uint32()); - break; - case 2: - message.balance = coin_1.Coin.decode(reader, reader.uint32()); + message.perpetualId = reader.uint32(); break; default: reader.skipType(tag & 7); @@ -183369,40 +183755,40 @@ exports.DelegationResponse = { return message; }, fromPartial(object) { - const message = createBaseDelegationResponse(); - message.delegation = object.delegation !== undefined && object.delegation !== null ? exports.Delegation.fromPartial(object.delegation) : undefined; - message.balance = object.balance !== undefined && object.balance !== null ? coin_1.Coin.fromPartial(object.balance) : undefined; + var _a; + const message = createBasePerpetualClobMetadata(); + message.perpetualId = (_a = object.perpetualId) !== null && _a !== void 0 ? _a : 0; return message; } }; -function createBaseRedelegationEntryResponse() { +function createBaseSpotClobMetadata() { return { - redelegationEntry: undefined, - balance: "" + baseAssetId: 0, + quoteAssetId: 0 }; } -exports.RedelegationEntryResponse = { +exports.SpotClobMetadata = { encode(message, writer = _m0.Writer.create()) { - if (message.redelegationEntry !== undefined) { - exports.RedelegationEntry.encode(message.redelegationEntry, writer.uint32(10).fork()).ldelim(); + if (message.baseAssetId !== 0) { + writer.uint32(8).uint32(message.baseAssetId); } - if (message.balance !== "") { - writer.uint32(34).string(message.balance); + if (message.quoteAssetId !== 0) { + writer.uint32(16).uint32(message.quoteAssetId); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRedelegationEntryResponse(); + const message = createBaseSpotClobMetadata(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.redelegationEntry = exports.RedelegationEntry.decode(reader, reader.uint32()); + message.baseAssetId = reader.uint32(); break; - case 4: - message.balance = reader.string(); + case 2: + message.quoteAssetId = reader.uint32(); break; default: reader.skipType(tag & 7); @@ -183412,41 +183798,76 @@ exports.RedelegationEntryResponse = { return message; }, fromPartial(object) { - var _a; - const message = createBaseRedelegationEntryResponse(); - message.redelegationEntry = object.redelegationEntry !== undefined && object.redelegationEntry !== null ? exports.RedelegationEntry.fromPartial(object.redelegationEntry) : undefined; - message.balance = (_a = object.balance) !== null && _a !== void 0 ? _a : ""; + var _a, _b; + const message = createBaseSpotClobMetadata(); + message.baseAssetId = (_a = object.baseAssetId) !== null && _a !== void 0 ? _a : 0; + message.quoteAssetId = (_b = object.quoteAssetId) !== null && _b !== void 0 ? _b : 0; return message; } }; -function createBaseRedelegationResponse() { +function createBaseClobPair() { return { - redelegation: undefined, - entries: [] + id: 0, + perpetualClobMetadata: undefined, + spotClobMetadata: undefined, + stepBaseQuantums: helpers_1.Long.UZERO, + subticksPerTick: 0, + quantumConversionExponent: 0, + status: 0 }; } -exports.RedelegationResponse = { +exports.ClobPair = { encode(message, writer = _m0.Writer.create()) { - if (message.redelegation !== undefined) { - exports.Redelegation.encode(message.redelegation, writer.uint32(10).fork()).ldelim(); + if (message.id !== 0) { + writer.uint32(8).uint32(message.id); } - for (const v of message.entries) { - exports.RedelegationEntryResponse.encode(v, writer.uint32(18).fork()).ldelim(); + if (message.perpetualClobMetadata !== undefined) { + exports.PerpetualClobMetadata.encode(message.perpetualClobMetadata, writer.uint32(18).fork()).ldelim(); + } + if (message.spotClobMetadata !== undefined) { + exports.SpotClobMetadata.encode(message.spotClobMetadata, writer.uint32(26).fork()).ldelim(); + } + if (!message.stepBaseQuantums.isZero()) { + writer.uint32(32).uint64(message.stepBaseQuantums); + } + if (message.subticksPerTick !== 0) { + writer.uint32(40).uint32(message.subticksPerTick); + } + if (message.quantumConversionExponent !== 0) { + writer.uint32(48).sint32(message.quantumConversionExponent); + } + if (message.status !== 0) { + writer.uint32(56).int32(message.status); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRedelegationResponse(); + const message = createBaseClobPair(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.redelegation = exports.Redelegation.decode(reader, reader.uint32()); + message.id = reader.uint32(); break; case 2: - message.entries.push(exports.RedelegationEntryResponse.decode(reader, reader.uint32())); + message.perpetualClobMetadata = exports.PerpetualClobMetadata.decode(reader, reader.uint32()); + break; + case 3: + message.spotClobMetadata = exports.SpotClobMetadata.decode(reader, reader.uint32()); + break; + case 4: + message.stepBaseQuantums = reader.uint64(); + break; + case 5: + message.subticksPerTick = reader.uint32(); + break; + case 6: + message.quantumConversionExponent = reader.sint32(); + break; + case 7: + message.status = reader.int32(); break; default: reader.skipType(tag & 7); @@ -183456,41 +183877,84 @@ exports.RedelegationResponse = { return message; }, fromPartial(object) { - var _a; - const message = createBaseRedelegationResponse(); - message.redelegation = object.redelegation !== undefined && object.redelegation !== null ? exports.Redelegation.fromPartial(object.redelegation) : undefined; - message.entries = ((_a = object.entries) === null || _a === void 0 ? void 0 : _a.map(e => exports.RedelegationEntryResponse.fromPartial(e))) || []; + var _a, _b, _c, _d; + const message = createBaseClobPair(); + message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0; + message.perpetualClobMetadata = object.perpetualClobMetadata !== undefined && object.perpetualClobMetadata !== null ? exports.PerpetualClobMetadata.fromPartial(object.perpetualClobMetadata) : undefined; + message.spotClobMetadata = object.spotClobMetadata !== undefined && object.spotClobMetadata !== null ? exports.SpotClobMetadata.fromPartial(object.spotClobMetadata) : undefined; + message.stepBaseQuantums = object.stepBaseQuantums !== undefined && object.stepBaseQuantums !== null ? helpers_1.Long.fromValue(object.stepBaseQuantums) : helpers_1.Long.UZERO; + message.subticksPerTick = (_b = object.subticksPerTick) !== null && _b !== void 0 ? _b : 0; + message.quantumConversionExponent = (_c = object.quantumConversionExponent) !== null && _c !== void 0 ? _c : 0; + message.status = (_d = object.status) !== null && _d !== void 0 ? _d : 0; return message; } }; -function createBasePool() { +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvYl9wYWlyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vZHlkeHByb3RvY29sL2Nsb2IvY2xvYl9wYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0RBQTBDO0FBQzFDLDJDQUFrRDtBQUNsRCwwQkFBMEI7QUFFMUIsSUFBWSxlQXdDWDtBQXhDRCxXQUFZLGVBQWU7SUFDekIsNEVBQTRFO0lBQzVFLGlGQUFzQixDQUFBO0lBRXRCLG9FQUFvRTtJQUNwRSx1RUFBaUIsQ0FBQTtJQUVqQjs7O09BR0c7SUFDSCx1RUFBaUIsQ0FBQTtJQUVqQjs7O09BR0c7SUFDSCxpRkFBc0IsQ0FBQTtJQUV0Qjs7O09BR0c7SUFDSCw2RUFBb0IsQ0FBQTtJQUVwQjs7OztPQUlHO0lBQ0gsbUZBQXVCLENBQUE7SUFFdkI7Ozs7O09BS0c7SUFDSCwyRkFBMkIsQ0FBQTtJQUMzQixzRUFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBeENXLGVBQWUsR0FBZix1QkFBZSxLQUFmLHVCQUFlLFFBd0MxQjtBQUNZLFFBQUEsc0JBQXNCLEdBQUcsZUFBZSxDQUFDO0FBQ3RELFNBQWdCLHVCQUF1QixDQUFDLE1BQVc7SUFDakQsUUFBUSxNQUFNLEVBQUU7UUFDZCxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssb0JBQW9CO1lBQ3ZCLE9BQU8sZUFBZSxDQUFDLGtCQUFrQixDQUFDO1FBRTVDLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxlQUFlO1lBQ2xCLE9BQU8sZUFBZSxDQUFDLGFBQWEsQ0FBQztRQUV2QyxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssZUFBZTtZQUNsQixPQUFPLGVBQWUsQ0FBQyxhQUFhLENBQUM7UUFFdkMsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLG9CQUFvQjtZQUN2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 + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/equity_tier_limit_config.ts": +/*!*******************************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/equity_tier_limit_config.ts ***! + \*******************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.EquityTierLimit = exports.EquityTierLimitConfiguration = void 0; +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +function createBaseEquityTierLimitConfiguration() { return { - notBondedTokens: "", - bondedTokens: "" + shortTermOrderEquityTiers: [], + statefulOrderEquityTiers: [] }; } -exports.Pool = { +exports.EquityTierLimitConfiguration = { encode(message, writer = _m0.Writer.create()) { - if (message.notBondedTokens !== "") { - writer.uint32(10).string(message.notBondedTokens); + for (const v of message.shortTermOrderEquityTiers) { + exports.EquityTierLimit.encode(v, writer.uint32(10).fork()).ldelim(); } - if (message.bondedTokens !== "") { - writer.uint32(18).string(message.bondedTokens); + for (const v of message.statefulOrderEquityTiers) { + exports.EquityTierLimit.encode(v, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePool(); + const message = createBaseEquityTierLimitConfiguration(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.notBondedTokens = reader.string(); + message.shortTermOrderEquityTiers.push(exports.EquityTierLimit.decode(reader, reader.uint32())); break; case 2: - message.bondedTokens = reader.string(); + message.statefulOrderEquityTiers.push(exports.EquityTierLimit.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -183501,33 +183965,40 @@ exports.Pool = { }, fromPartial(object) { var _a, _b; - const message = createBasePool(); - message.notBondedTokens = (_a = object.notBondedTokens) !== null && _a !== void 0 ? _a : ""; - message.bondedTokens = (_b = object.bondedTokens) !== null && _b !== void 0 ? _b : ""; + const message = createBaseEquityTierLimitConfiguration(); + message.shortTermOrderEquityTiers = ((_a = object.shortTermOrderEquityTiers) === null || _a === void 0 ? void 0 : _a.map(e => exports.EquityTierLimit.fromPartial(e))) || []; + message.statefulOrderEquityTiers = ((_b = object.statefulOrderEquityTiers) === null || _b === void 0 ? void 0 : _b.map(e => exports.EquityTierLimit.fromPartial(e))) || []; return message; } }; -function createBaseValidatorUpdates() { +function createBaseEquityTierLimit() { return { - updates: [] + usdTncRequired: new Uint8Array(), + limit: 0 }; } -exports.ValidatorUpdates = { +exports.EquityTierLimit = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.updates) { - types_2.ValidatorUpdate.encode(v, writer.uint32(10).fork()).ldelim(); + if (message.usdTncRequired.length !== 0) { + writer.uint32(10).bytes(message.usdTncRequired); + } + if (message.limit !== 0) { + writer.uint32(16).uint32(message.limit); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorUpdates(); + const message = createBaseEquityTierLimit(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.updates.push(types_2.ValidatorUpdate.decode(reader, reader.uint32())); + message.usdTncRequired = reader.bytes(); + break; + case 2: + message.limit = reader.uint32(); break; default: reader.skipType(tag & 7); @@ -183537,20 +184008,21 @@ exports.ValidatorUpdates = { return message; }, fromPartial(object) { - var _a; - const message = createBaseValidatorUpdates(); - message.updates = ((_a = object.updates) === null || _a === void 0 ? void 0 : _a.map(e => types_2.ValidatorUpdate.fromPartial(e))) || []; + var _a, _b; + const message = createBaseEquityTierLimit(); + message.usdTncRequired = (_a = object.usdTncRequired) !== null && _a !== void 0 ? _a : new Uint8Array(); + message.limit = (_b = object.limit) !== null && _b !== void 0 ? _b : 0; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZHlkeHByb3RvY29sL3Y0LXByb3RvL3NyYy9jb2RlZ2VuL2Nvc21vcy9zdGFraW5nL3YxYmV0YTEvc3Rha2luZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJEQUF3RTtBQUN4RSxrRUFBK0Q7QUFDL0Qsc0RBQStEO0FBQy9ELGdFQUE4RTtBQUM5RSxrREFBNEQ7QUFDNUQsMERBQXlGO0FBQ3pGLHdEQUEwQztBQUMxQyw4Q0FBaUY7QUFDakYsK0NBQStDO0FBRS9DLElBQVksVUFhWDtBQWJELFdBQVksVUFBVTtJQUNwQixpRkFBaUY7SUFDakYsaUZBQTJCLENBQUE7SUFFM0IsOEVBQThFO0lBQzlFLDJFQUF3QixDQUFBO0lBRXhCLCtFQUErRTtJQUMvRSw2RUFBeUIsQ0FBQTtJQUV6QixzRUFBc0U7SUFDdEUsdUVBQXNCLENBQUE7SUFDdEIsNERBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQWJXLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBYXJCO0FBQ1ksUUFBQSxpQkFBaUIsR0FBRyxVQUFVLENBQUM7QUFDNUMsU0FBZ0Isa0JBQWtCLENBQUMsTUFBVztJQUM1QyxRQUFRLE1BQU0sRUFBRTtRQUNkLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyx5QkFBeUI7WUFDNUIsT0FBTyxVQUFVLENBQUMsdUJBQXVCLENBQUM7UUFFNUMsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLHNCQUFzQjtZQUN6QixPQUFPLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQztRQUV6QyxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssdUJBQXVCO1lBQzFCLE9BQU8sVUFBVSxDQUFDLHFCQUFxQixDQUFDO1FBRTFDLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxvQkFBb0I7WUFDdkIsT0FB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXF1aXR5X3RpZXJfbGltaXRfY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vZHlkeHByb3RvY29sL2Nsb2IvZXF1aXR5X3RpZXJfbGltaXRfY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0RBQTBDO0FBNkMxQyxTQUFTLHNDQUFzQztJQUM3QyxPQUFPO1FBQ0wseUJBQXlCLEVBQUUsRUFBRTtRQUM3Qix3QkFBd0IsRUFBRSxFQUFFO0tBQzdCLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSw0QkFBNEIsR0FBRztJQUMxQyxNQUFNLENBQUMsT0FBcUMsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNwRixLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyx5QkFBeUIsRUFBRTtZQUNqRCx1QkFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFFLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQy9EO1FBRUQsS0FBSyxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsd0JBQXdCLEVBQUU7WUFDaEQsdUJBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMvRDtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxD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 /***/ }), -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/asset.ts": -/*!**************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/asset.ts ***! - \**************************************************************************************/ +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/liquidations_config.ts": +/*!**************************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/liquidations_config.ts ***! + \**************************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -183579,71 +184051,97 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Asset = void 0; +exports.FillablePriceConfig = exports.SubaccountBlockLimits = exports.PositionBlockLimits = exports.LiquidationsConfig = void 0; const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -function createBaseAsset() { +const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); +function createBaseLiquidationsConfig() { return { - id: 0, - symbol: "", - denom: "", - denomExponent: 0, - hasMarket: false, - marketId: 0, - atomicResolution: 0 + maxLiquidationFeePpm: 0, + positionBlockLimits: undefined, + subaccountBlockLimits: undefined, + fillablePriceConfig: undefined }; } -exports.Asset = { +exports.LiquidationsConfig = { encode(message, writer = _m0.Writer.create()) { - if (message.id !== 0) { - writer.uint32(8).uint32(message.id); - } - if (message.symbol !== "") { - writer.uint32(18).string(message.symbol); - } - if (message.denom !== "") { - writer.uint32(26).string(message.denom); - } - if (message.denomExponent !== 0) { - writer.uint32(32).sint32(message.denomExponent); + if (message.maxLiquidationFeePpm !== 0) { + writer.uint32(8).uint32(message.maxLiquidationFeePpm); } - if (message.hasMarket === true) { - writer.uint32(40).bool(message.hasMarket); + if (message.positionBlockLimits !== undefined) { + exports.PositionBlockLimits.encode(message.positionBlockLimits, writer.uint32(18).fork()).ldelim(); } - if (message.marketId !== 0) { - writer.uint32(48).uint32(message.marketId); + if (message.subaccountBlockLimits !== undefined) { + exports.SubaccountBlockLimits.encode(message.subaccountBlockLimits, writer.uint32(26).fork()).ldelim(); } - if (message.atomicResolution !== 0) { - writer.uint32(56).sint32(message.atomicResolution); + if (message.fillablePriceConfig !== undefined) { + exports.FillablePriceConfig.encode(message.fillablePriceConfig, writer.uint32(34).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAsset(); + const message = createBaseLiquidationsConfig(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.id = reader.uint32(); + message.maxLiquidationFeePpm = reader.uint32(); break; case 2: - message.symbol = reader.string(); + message.positionBlockLimits = exports.PositionBlockLimits.decode(reader, reader.uint32()); break; case 3: - message.denom = reader.string(); + message.subaccountBlockLimits = exports.SubaccountBlockLimits.decode(reader, reader.uint32()); break; case 4: - message.denomExponent = reader.sint32(); + message.fillablePriceConfig = exports.FillablePriceConfig.decode(reader, reader.uint32()); break; - case 5: - message.hasMarket = reader.bool(); + default: + reader.skipType(tag & 7); break; - case 6: - message.marketId = reader.uint32(); + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseLiquidationsConfig(); + message.maxLiquidationFeePpm = (_a = object.maxLiquidationFeePpm) !== null && _a !== void 0 ? _a : 0; + message.positionBlockLimits = object.positionBlockLimits !== undefined && object.positionBlockLimits !== null ? exports.PositionBlockLimits.fromPartial(object.positionBlockLimits) : undefined; + message.subaccountBlockLimits = object.subaccountBlockLimits !== undefined && object.subaccountBlockLimits !== null ? exports.SubaccountBlockLimits.fromPartial(object.subaccountBlockLimits) : undefined; + message.fillablePriceConfig = object.fillablePriceConfig !== undefined && object.fillablePriceConfig !== null ? exports.FillablePriceConfig.fromPartial(object.fillablePriceConfig) : undefined; + return message; + } +}; +function createBasePositionBlockLimits() { + return { + minPositionNotionalLiquidated: helpers_1.Long.UZERO, + maxPositionPortionLiquidatedPpm: 0 + }; +} +exports.PositionBlockLimits = { + encode(message, writer = _m0.Writer.create()) { + if (!message.minPositionNotionalLiquidated.isZero()) { + writer.uint32(8).uint64(message.minPositionNotionalLiquidated); + } + if (message.maxPositionPortionLiquidatedPpm !== 0) { + writer.uint32(16).uint32(message.maxPositionPortionLiquidatedPpm); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBasePositionBlockLimits(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.minPositionNotionalLiquidated = reader.uint64(); break; - case 7: - message.atomicResolution = reader.sint32(); + case 2: + message.maxPositionPortionLiquidatedPpm = reader.uint32(); break; default: reader.skipType(tag & 7); @@ -183653,78 +184151,84 @@ exports.Asset = { return message; }, fromPartial(object) { - var _a, _b, _c, _d, _e, _f, _g; - const message = createBaseAsset(); - message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0; - message.symbol = (_b = object.symbol) !== null && _b !== void 0 ? _b : ""; - message.denom = (_c = object.denom) !== null && _c !== void 0 ? _c : ""; - message.denomExponent = (_d = object.denomExponent) !== null && _d !== void 0 ? _d : 0; - message.hasMarket = (_e = object.hasMarket) !== null && _e !== void 0 ? _e : false; - message.marketId = (_f = object.marketId) !== null && _f !== void 0 ? _f : 0; - message.atomicResolution = (_g = object.atomicResolution) !== null && _g !== void 0 ? _g : 0; + var _a; + const message = createBasePositionBlockLimits(); + message.minPositionNotionalLiquidated = object.minPositionNotionalLiquidated !== undefined && object.minPositionNotionalLiquidated !== null ? helpers_1.Long.fromValue(object.minPositionNotionalLiquidated) : helpers_1.Long.UZERO; + message.maxPositionPortionLiquidatedPpm = (_a = object.maxPositionPortionLiquidatedPpm) !== null && _a !== void 0 ? _a : 0; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvYXNzZXRzL2Fzc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0RBQTBDO0FBK0QxQyxTQUFTLGVBQWU7SUFDdEIsT0FBTztRQUNMLEVBQUUsRUFBRSxDQUFDO1FBQ0wsTUFBTSxFQUFFLEVBQUU7UUFDVixLQUFLLEVBQUUsRUFBRTtRQUNULGFBQWEsRUFBRSxDQUFDO1FBQ2hCLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLFFBQVEsRUFBRSxDQUFDO1FBQ1gsZ0JBQWdCLEVBQUUsQ0FBQztLQUNwQixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsS0FBSyxHQUFHO0lBQ25CLE1BQU0sQ0FBQyxPQUFjLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDN0QsSUFBSSxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDckM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMxQztRQUVELElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxFQUFFLEVBQUU7WUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsSUFBSSxPQUFPLENBQUMsYUFBYSxLQUFLLENBQUMs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 - -/***/ }), - -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/genesis.ts": -/*!****************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/genesis.ts ***! - \****************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; +function createBaseSubaccountBlockLimits() { + return { + maxNotionalLiquidated: helpers_1.Long.UZERO, + maxQuantumsInsuranceLost: helpers_1.Long.UZERO + }; +} +exports.SubaccountBlockLimits = { + encode(message, writer = _m0.Writer.create()) { + if (!message.maxNotionalLiquidated.isZero()) { + writer.uint32(8).uint64(message.maxNotionalLiquidated); + } + if (!message.maxQuantumsInsuranceLost.isZero()) { + writer.uint32(16).uint64(message.maxQuantumsInsuranceLost); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSubaccountBlockLimits(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.maxNotionalLiquidated = reader.uint64(); + break; + case 2: + message.maxQuantumsInsuranceLost = reader.uint64(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + const message = createBaseSubaccountBlockLimits(); + message.maxNotionalLiquidated = object.maxNotionalLiquidated !== undefined && object.maxNotionalLiquidated !== null ? helpers_1.Long.fromValue(object.maxNotionalLiquidated) : helpers_1.Long.UZERO; + message.maxQuantumsInsuranceLost = object.maxQuantumsInsuranceLost !== undefined && object.maxQuantumsInsuranceLost !== null ? helpers_1.Long.fromValue(object.maxQuantumsInsuranceLost) : helpers_1.Long.UZERO; + return message; } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; }; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.GenesisState = void 0; -const asset_1 = __webpack_require__(/*! ./asset */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/asset.ts"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -function createBaseGenesisState() { +function createBaseFillablePriceConfig() { return { - assets: [] + bankruptcyAdjustmentPpm: 0, + spreadToMaintenanceMarginRatioPpm: 0 }; } -exports.GenesisState = { +exports.FillablePriceConfig = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.assets) { - asset_1.Asset.encode(v, writer.uint32(10).fork()).ldelim(); + if (message.bankruptcyAdjustmentPpm !== 0) { + writer.uint32(8).uint32(message.bankruptcyAdjustmentPpm); + } + if (message.spreadToMaintenanceMarginRatioPpm !== 0) { + writer.uint32(16).uint32(message.spreadToMaintenanceMarginRatioPpm); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseGenesisState(); + const message = createBaseFillablePriceConfig(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.assets.push(asset_1.Asset.decode(reader, reader.uint32())); + message.bankruptcyAdjustmentPpm = reader.uint32(); + break; + case 2: + message.spreadToMaintenanceMarginRatioPpm = reader.uint32(); break; default: reader.skipType(tag & 7); @@ -183734,20 +184238,21 @@ exports.GenesisState = { return message; }, fromPartial(object) { - var _a; - const message = createBaseGenesisState(); - message.assets = ((_a = object.assets) === null || _a === void 0 ? void 0 : _a.map(e => asset_1.Asset.fromPartial(e))) || []; + var _a, _b; + const message = createBaseFillablePriceConfig(); + message.bankruptcyAdjustmentPpm = (_a = object.bankruptcyAdjustmentPpm) !== null && _a !== void 0 ? _a : 0; + message.spreadToMaintenanceMarginRatioPpm = (_b = object.spreadToMaintenanceMarginRatioPpm) !== null && _b !== void 0 ? _b : 0; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXNpcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZHlkeHByb3RvY29sL3Y0LXByb3RvL3NyYy9jb2RlZ2VuL2R5ZHhwcm90b2NvbC9hc3NldHMvZ2VuZXNpcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUE4QztBQUM5Qyx3REFBMEM7QUFhMUMsU0FBUyxzQkFBc0I7SUFDN0IsT0FBTztRQUNMLE1BQU0sRUFBRSxFQUFFO0tBQ1gsQ0FBQztBQUNKLENBQUM7QUFFWSxRQUFBLFlBQVksR0FBRztJQUMxQixNQUFNLENBQUMsT0FBcUIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNwRSxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDOUIsYUFBSyxDQUFDLE1BQU0sQ0FBQyxDQUFFLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3JEO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLHNCQUFzQixFQUFFLENBQUM7UUFFekMsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLENBQUM7b0JBQ0osT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDM0QsTUFBTTtnQkFFUjtvQkFDRSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDekIsTUFBTTthQUNUO1NBQ0Y7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWlDOztRQUMzQyxNQUFNLE9BQU8sR0FBRyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQSxNQUFBLE1BQU0sQ0FBQyxNQUFNLDBDQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGFBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxFQUFFLENBQUM7UUFDckUsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUVGLENBQUMifQ== +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlxdWlkYXRpb25zX2NvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZHlkeHByb3RvY29sL3Y0LXByb3RvL3NyYy9jb2RlZ2VuL2R5ZHhwcm90b2NvbC9jbG9iL2xpcXVpZGF0aW9uc19jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3REFBMEM7QUFDMUMsMkNBQWtEO0FBc0hsRCxTQUFTLDRCQUE0QjtJQUNuQyxPQUFPO1FBQ0wsb0JBQW9CLEVBQUUsQ0FBQztRQUN2QixtQkFBbUIsRUFBRSxTQUFTO1FBQzlCLHFCQUFxQixFQUFFLFNBQVM7UUFDaEMsbUJBQW1CLEVBQUUsU0FBUztLQUMvQixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsa0JBQWtCLEdBQUc7SUFDaEMsTUFBTSxDQUFDLE9BQTJCLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDMUUsSUFBSSxPQUFPLENBQUMsb0JBQW9CLEtBQUssQ0FBQyxFQUFFO1lBQ3RDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsSUFBSSxPQUFPLENBQUMsbUJBQW1CLEtBQUssU0FBUyxFQUFFO1lBQzdDLDJCQUFtQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzVGO1FBRUQsSUFBSSxPQUFPLENBQUMscUJBQXFCLEtBQUssU0FBUyxFQUFFO1lBQy9DLDZCQUFxQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFF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 /***/ }), -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/bridge_event.ts": -/*!*********************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/bridge_event.ts ***! - \*********************************************************************************************/ +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/matches.ts": +/*!**************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/matches.ts ***! + \**************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -183776,52 +184281,46 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.BridgeEvent = void 0; -const coin_1 = __webpack_require__(/*! ../../cosmos/base/v1beta1/coin */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/v1beta1/coin.ts"); -const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); +exports.MatchPerpetualDeleveraging_Fill = exports.MatchPerpetualDeleveraging = exports.MatchPerpetualLiquidation = exports.MatchOrders = exports.MakerFill = exports.ClobMatch = void 0; +const order_1 = __webpack_require__(/*! ./order */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order.ts"); +const subaccount_1 = __webpack_require__(/*! ../subaccounts/subaccount */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/subaccount.ts"); const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -function createBaseBridgeEvent() { +const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); +function createBaseClobMatch() { return { - id: 0, - coin: undefined, - address: "", - ethBlockHeight: helpers_1.Long.UZERO + matchOrders: undefined, + matchPerpetualLiquidation: undefined, + matchPerpetualDeleveraging: undefined }; } -exports.BridgeEvent = { +exports.ClobMatch = { encode(message, writer = _m0.Writer.create()) { - if (message.id !== 0) { - writer.uint32(8).uint32(message.id); - } - if (message.coin !== undefined) { - coin_1.Coin.encode(message.coin, writer.uint32(18).fork()).ldelim(); + if (message.matchOrders !== undefined) { + exports.MatchOrders.encode(message.matchOrders, writer.uint32(10).fork()).ldelim(); } - if (message.address !== "") { - writer.uint32(26).string(message.address); + if (message.matchPerpetualLiquidation !== undefined) { + exports.MatchPerpetualLiquidation.encode(message.matchPerpetualLiquidation, writer.uint32(18).fork()).ldelim(); } - if (!message.ethBlockHeight.isZero()) { - writer.uint32(32).uint64(message.ethBlockHeight); + if (message.matchPerpetualDeleveraging !== undefined) { + exports.MatchPerpetualDeleveraging.encode(message.matchPerpetualDeleveraging, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBridgeEvent(); + const message = createBaseClobMatch(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.id = reader.uint32(); + message.matchOrders = exports.MatchOrders.decode(reader, reader.uint32()); break; case 2: - message.coin = coin_1.Coin.decode(reader, reader.uint32()); + message.matchPerpetualLiquidation = exports.MatchPerpetualLiquidation.decode(reader, reader.uint32()); break; case 3: - message.address = reader.string(); - break; - case 4: - message.ethBlockHeight = reader.uint64(); + message.matchPerpetualDeleveraging = exports.MatchPerpetualDeleveraging.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -183831,82 +184330,84 @@ exports.BridgeEvent = { return message; }, fromPartial(object) { - var _a, _b; - const message = createBaseBridgeEvent(); - message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0; - message.coin = object.coin !== undefined && object.coin !== null ? coin_1.Coin.fromPartial(object.coin) : undefined; - message.address = (_b = object.address) !== null && _b !== void 0 ? _b : ""; - message.ethBlockHeight = object.ethBlockHeight !== undefined && object.ethBlockHeight !== null ? helpers_1.Long.fromValue(object.ethBlockHeight) : helpers_1.Long.UZERO; + const message = createBaseClobMatch(); + message.matchOrders = object.matchOrders !== undefined && object.matchOrders !== null ? exports.MatchOrders.fromPartial(object.matchOrders) : undefined; + message.matchPerpetualLiquidation = object.matchPerpetualLiquidation !== undefined && object.matchPerpetualLiquidation !== null ? exports.MatchPerpetualLiquidation.fromPartial(object.matchPerpetualLiquidation) : undefined; + message.matchPerpetualDeleveraging = object.matchPerpetualDeleveraging !== undefined && object.matchPerpetualDeleveraging !== null ? exports.MatchPerpetualDeleveraging.fromPartial(object.matchPerpetualDeleveraging) : undefined; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlX2V2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vZHlkeHByb3RvY29sL2JyaWRnZS9icmlkZ2VfZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5REFBbUU7QUFDbkUsMkNBQWtEO0FBQ2xELHdEQUEwQztBQXlCMUMsU0FBUyxxQkFBcUI7SUFDNUIsT0FBTztRQUNMLEVBQUUsRUFBRSxDQUFDO1FBQ0wsSUFBSSxFQUFFLFNBQVM7UUFDZixPQUFPLEVBQUUsRUFBRTtRQUNYLGNBQWMsRUFBRSxjQUFJLENBQUMsS0FBSztLQUMzQixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsV0FBVyxHQUFHO0lBQ3pCLE1BQU0sQ0FBQyxPQUFvQixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ25FLElBQUksT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3JDO1FBRUQsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUM5QixXQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzlEO1FBRUQsSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRTtZQUMxQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0M7UUFFRCxJ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 - -/***/ }), - -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/bridge_event_info.ts": -/*!**************************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/bridge_event_info.ts ***! - \**************************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; +function createBaseMakerFill() { + return { + fillAmount: helpers_1.Long.UZERO, + makerOrderId: undefined + }; +} +exports.MakerFill = { + encode(message, writer = _m0.Writer.create()) { + if (!message.fillAmount.isZero()) { + writer.uint32(8).uint64(message.fillAmount); + } + if (message.makerOrderId !== undefined) { + order_1.OrderId.encode(message.makerOrderId, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMakerFill(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.fillAmount = reader.uint64(); + break; + case 2: + message.makerOrderId = order_1.OrderId.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + const message = createBaseMakerFill(); + message.fillAmount = object.fillAmount !== undefined && object.fillAmount !== null ? helpers_1.Long.fromValue(object.fillAmount) : helpers_1.Long.UZERO; + message.makerOrderId = object.makerOrderId !== undefined && object.makerOrderId !== null ? order_1.OrderId.fromPartial(object.makerOrderId) : undefined; + return message; } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; }; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.BridgeEventInfo = void 0; -const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -function createBaseBridgeEventInfo() { +function createBaseMatchOrders() { return { - nextId: 0, - ethBlockHeight: helpers_1.Long.UZERO + takerOrderId: undefined, + fills: [] }; } -exports.BridgeEventInfo = { +exports.MatchOrders = { encode(message, writer = _m0.Writer.create()) { - if (message.nextId !== 0) { - writer.uint32(8).uint32(message.nextId); + if (message.takerOrderId !== undefined) { + order_1.OrderId.encode(message.takerOrderId, writer.uint32(10).fork()).ldelim(); } - if (!message.ethBlockHeight.isZero()) { - writer.uint32(16).uint64(message.ethBlockHeight); + for (const v of message.fills) { + exports.MakerFill.encode(v, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBridgeEventInfo(); + const message = createBaseMatchOrders(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.nextId = reader.uint32(); + message.takerOrderId = order_1.OrderId.decode(reader, reader.uint32()); break; case 2: - message.ethBlockHeight = reader.uint64(); + message.fills.push(exports.MakerFill.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -183917,87 +184418,68 @@ exports.BridgeEventInfo = { }, fromPartial(object) { var _a; - const message = createBaseBridgeEventInfo(); - message.nextId = (_a = object.nextId) !== null && _a !== void 0 ? _a : 0; - message.ethBlockHeight = object.ethBlockHeight !== undefined && object.ethBlockHeight !== null ? helpers_1.Long.fromValue(object.ethBlockHeight) : helpers_1.Long.UZERO; + const message = createBaseMatchOrders(); + message.takerOrderId = object.takerOrderId !== undefined && object.takerOrderId !== null ? order_1.OrderId.fromPartial(object.takerOrderId) : undefined; + message.fills = ((_a = object.fills) === null || _a === void 0 ? void 0 : _a.map(e => exports.MakerFill.fromPartial(e))) || []; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlX2V2ZW50X2luZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvYnJpZGdlL2JyaWRnZV9ldmVudF9pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQWtEO0FBQ2xELHdEQUEwQztBQTBCMUMsU0FBUyx5QkFBeUI7SUFDaEMsT0FBTztRQUNMLE1BQU0sRUFBRSxDQUFDO1FBQ1QsY0FBYyxFQUFFLGNBQUksQ0FBQyxLQUFLO0tBQzNCLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxlQUFlLEdBQUc7SUFDN0IsTUFBTSxDQUFDLE9BQXdCLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDdkUsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDekM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNwQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDbEQ7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcseUJBQXlCLEVBQUUsQ0FBQztRQUU1QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUU1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDakMsTUFBTTtnQkFFUixLQUFLLENBQUM7b0JBQ0osT0FBTyxDQUFDLGNBQWMsR0FBSSxNQUFNLENBQUMsTUFBTSxFQUFXLENBQUM7b0JBQ25ELE1BQU07Z0JBRVI7b0JBQ0UsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3pCLE1BQU07YUFDVDtTQUNGO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFvQzs7UUFDOUMsTUFBTSxPQUFPLEdBQUcseUJBQXlCLEVBQUUsQ0FBQztRQUM1QyxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQUEsTUFBTSxDQUFDLE1BQU0sbUNBQUksQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLGNBQWMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3BKLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FFRixDQUFDIn0= - -/***/ }), - -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/params.ts": -/*!***************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/params.ts ***! - \***************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.SafetyParams = exports.ProposeParams = exports.EventParams = void 0; -const duration_1 = __webpack_require__(/*! ../../google/protobuf/duration */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/duration.ts"); -const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -function createBaseEventParams() { +function createBaseMatchPerpetualLiquidation() { return { - denom: "", - ethChainId: helpers_1.Long.UZERO, - ethAddress: "" + liquidated: undefined, + clobPairId: 0, + perpetualId: 0, + totalSize: helpers_1.Long.UZERO, + isBuy: false, + fills: [] }; } -exports.EventParams = { +exports.MatchPerpetualLiquidation = { encode(message, writer = _m0.Writer.create()) { - if (message.denom !== "") { - writer.uint32(10).string(message.denom); + if (message.liquidated !== undefined) { + subaccount_1.SubaccountId.encode(message.liquidated, writer.uint32(10).fork()).ldelim(); } - if (!message.ethChainId.isZero()) { - writer.uint32(16).uint64(message.ethChainId); + if (message.clobPairId !== 0) { + writer.uint32(16).uint32(message.clobPairId); } - if (message.ethAddress !== "") { - writer.uint32(26).string(message.ethAddress); + if (message.perpetualId !== 0) { + writer.uint32(24).uint32(message.perpetualId); + } + if (!message.totalSize.isZero()) { + writer.uint32(32).uint64(message.totalSize); + } + if (message.isBuy === true) { + writer.uint32(40).bool(message.isBuy); + } + for (const v of message.fills) { + exports.MakerFill.encode(v, writer.uint32(50).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEventParams(); + const message = createBaseMatchPerpetualLiquidation(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.denom = reader.string(); + message.liquidated = subaccount_1.SubaccountId.decode(reader, reader.uint32()); break; case 2: - message.ethChainId = reader.uint64(); + message.clobPairId = reader.uint32(); break; case 3: - message.ethAddress = reader.string(); + message.perpetualId = reader.uint32(); + break; + case 4: + message.totalSize = reader.uint64(); + break; + case 5: + message.isBuy = reader.bool(); + break; + case 6: + message.fills.push(exports.MakerFill.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -184007,56 +184489,59 @@ exports.EventParams = { return message; }, fromPartial(object) { - var _a, _b; - const message = createBaseEventParams(); - message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : ""; - message.ethChainId = object.ethChainId !== undefined && object.ethChainId !== null ? helpers_1.Long.fromValue(object.ethChainId) : helpers_1.Long.UZERO; - message.ethAddress = (_b = object.ethAddress) !== null && _b !== void 0 ? _b : ""; + var _a, _b, _c, _d; + const message = createBaseMatchPerpetualLiquidation(); + message.liquidated = object.liquidated !== undefined && object.liquidated !== null ? subaccount_1.SubaccountId.fromPartial(object.liquidated) : undefined; + message.clobPairId = (_a = object.clobPairId) !== null && _a !== void 0 ? _a : 0; + message.perpetualId = (_b = object.perpetualId) !== null && _b !== void 0 ? _b : 0; + message.totalSize = object.totalSize !== undefined && object.totalSize !== null ? helpers_1.Long.fromValue(object.totalSize) : helpers_1.Long.UZERO; + message.isBuy = (_c = object.isBuy) !== null && _c !== void 0 ? _c : false; + message.fills = ((_d = object.fills) === null || _d === void 0 ? void 0 : _d.map(e => exports.MakerFill.fromPartial(e))) || []; return message; } }; -function createBaseProposeParams() { +function createBaseMatchPerpetualDeleveraging() { return { - maxBridgesPerBlock: 0, - proposeDelayDuration: undefined, - skipRatePpm: 0, - skipIfBlockDelayedByDuration: undefined + liquidated: undefined, + perpetualId: 0, + fills: [], + isFinalSettlement: false }; } -exports.ProposeParams = { +exports.MatchPerpetualDeleveraging = { encode(message, writer = _m0.Writer.create()) { - if (message.maxBridgesPerBlock !== 0) { - writer.uint32(8).uint32(message.maxBridgesPerBlock); + if (message.liquidated !== undefined) { + subaccount_1.SubaccountId.encode(message.liquidated, writer.uint32(10).fork()).ldelim(); } - if (message.proposeDelayDuration !== undefined) { - duration_1.Duration.encode(message.proposeDelayDuration, writer.uint32(18).fork()).ldelim(); + if (message.perpetualId !== 0) { + writer.uint32(16).uint32(message.perpetualId); } - if (message.skipRatePpm !== 0) { - writer.uint32(24).uint32(message.skipRatePpm); + for (const v of message.fills) { + exports.MatchPerpetualDeleveraging_Fill.encode(v, writer.uint32(26).fork()).ldelim(); } - if (message.skipIfBlockDelayedByDuration !== undefined) { - duration_1.Duration.encode(message.skipIfBlockDelayedByDuration, writer.uint32(34).fork()).ldelim(); + if (message.isFinalSettlement === true) { + writer.uint32(32).bool(message.isFinalSettlement); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseProposeParams(); + const message = createBaseMatchPerpetualDeleveraging(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.maxBridgesPerBlock = reader.uint32(); + message.liquidated = subaccount_1.SubaccountId.decode(reader, reader.uint32()); break; case 2: - message.proposeDelayDuration = duration_1.Duration.decode(reader, reader.uint32()); + message.perpetualId = reader.uint32(); break; case 3: - message.skipRatePpm = reader.uint32(); + message.fills.push(exports.MatchPerpetualDeleveraging_Fill.decode(reader, reader.uint32())); break; case 4: - message.skipIfBlockDelayedByDuration = duration_1.Duration.decode(reader, reader.uint32()); + message.isFinalSettlement = reader.bool(); break; default: reader.skipType(tag & 7); @@ -184066,43 +184551,43 @@ exports.ProposeParams = { return message; }, fromPartial(object) { - var _a, _b; - const message = createBaseProposeParams(); - message.maxBridgesPerBlock = (_a = object.maxBridgesPerBlock) !== null && _a !== void 0 ? _a : 0; - message.proposeDelayDuration = object.proposeDelayDuration !== undefined && object.proposeDelayDuration !== null ? duration_1.Duration.fromPartial(object.proposeDelayDuration) : undefined; - message.skipRatePpm = (_b = object.skipRatePpm) !== null && _b !== void 0 ? _b : 0; - message.skipIfBlockDelayedByDuration = object.skipIfBlockDelayedByDuration !== undefined && object.skipIfBlockDelayedByDuration !== null ? duration_1.Duration.fromPartial(object.skipIfBlockDelayedByDuration) : undefined; + var _a, _b, _c; + const message = createBaseMatchPerpetualDeleveraging(); + message.liquidated = object.liquidated !== undefined && object.liquidated !== null ? subaccount_1.SubaccountId.fromPartial(object.liquidated) : undefined; + message.perpetualId = (_a = object.perpetualId) !== null && _a !== void 0 ? _a : 0; + message.fills = ((_b = object.fills) === null || _b === void 0 ? void 0 : _b.map(e => exports.MatchPerpetualDeleveraging_Fill.fromPartial(e))) || []; + message.isFinalSettlement = (_c = object.isFinalSettlement) !== null && _c !== void 0 ? _c : false; return message; } }; -function createBaseSafetyParams() { +function createBaseMatchPerpetualDeleveraging_Fill() { return { - isDisabled: false, - delayBlocks: 0 + offsettingSubaccountId: undefined, + fillAmount: helpers_1.Long.UZERO }; } -exports.SafetyParams = { +exports.MatchPerpetualDeleveraging_Fill = { encode(message, writer = _m0.Writer.create()) { - if (message.isDisabled === true) { - writer.uint32(8).bool(message.isDisabled); + if (message.offsettingSubaccountId !== undefined) { + subaccount_1.SubaccountId.encode(message.offsettingSubaccountId, writer.uint32(10).fork()).ldelim(); } - if (message.delayBlocks !== 0) { - writer.uint32(16).uint32(message.delayBlocks); + if (!message.fillAmount.isZero()) { + writer.uint32(16).uint64(message.fillAmount); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSafetyParams(); + const message = createBaseMatchPerpetualDeleveraging_Fill(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.isDisabled = reader.bool(); + message.offsettingSubaccountId = subaccount_1.SubaccountId.decode(reader, reader.uint32()); break; case 2: - message.delayBlocks = reader.uint32(); + message.fillAmount = reader.uint64(); break; default: reader.skipType(tag & 7); @@ -184112,21 +184597,20 @@ exports.SafetyParams = { return message; }, fromPartial(object) { - var _a, _b; - const message = createBaseSafetyParams(); - message.isDisabled = (_a = object.isDisabled) !== null && _a !== void 0 ? _a : false; - message.delayBlocks = (_b = object.delayBlocks) !== null && _b !== void 0 ? _b : 0; + const message = createBaseMatchPerpetualDeleveraging_Fill(); + message.offsettingSubaccountId = object.offsettingSubaccountId !== undefined && object.offsettingSubaccountId !== null ? subaccount_1.SubaccountId.fromPartial(object.offsettingSubaccountId) : undefined; + message.fillAmount = object.fillAmount !== undefined && object.fillAmount !== null ? helpers_1.Long.fromValue(object.fillAmount) : helpers_1.Long.UZERO; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vZHlkeHByb3RvY29sL2JyaWRnZS9wYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2REFBMkU7QUFDM0UsMkNBQWtEO0FBQ2xELHdEQUEwQztBQW9GMUMsU0FBUyxxQkFBcUI7SUFDNUIsT0FBTztRQUNMLEtBQUssRUFBRSxFQUFFO1FBQ1QsVUFBVSxFQUFFLGNBQUksQ0FBQyxLQUFLO1FBQ3RCLFVBQVUsRUFBRSxFQUFFO0tBQ2YsQ0FBQztBQUNKLENBQUM7QUFFWSxRQUFBLFdBQVcsR0FBRztJQUN6QixNQUFNLENBQUMsT0FBb0IsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNuRSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssRUFBRSxFQUFFO1lBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2hDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUM5QztRQUVELElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxFQUFFLEVBQUU7WUFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzlDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQs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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2hlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZHlkeHByb3RvY29sL3Y0LXByb3RvL3NyYy9jb2RlZ2VuL2R5ZHhwcm90b2NvbC9jbG9iL21hdGNoZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBa0Q7QUFDbEQsMERBQThFO0FBQzlFLHdEQUEwQztBQUMxQywyQ0FBa0Q7QUFzSmxELFNBQVMsbUJBQW1CO0lBQzFCLE9BQU87UUFDTCxXQUFXLEVBQUUsU0FBUztRQUN0Qix5QkFBeUIsRUFBRSxTQUFTO1FBQ3BDLDBCQUEwQixFQUFFLFNBQVM7S0FDdEMsQ0FBQztBQUNKLENBQUM7QUFFWSxRQUFBLFNBQVMsR0FBRztJQUN2QixNQUFNLENBQUMsT0FBa0IsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNqRSxJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFO1lBQ3JDLG1CQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzVFO1FBRUQsSUFBSSxPQUFPLENBQUMseUJBQXlCLEtBQUssU0FBUyxFQUFFO1lBQ25ELGlDQUF5QixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMseUJBQXlCLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3hHO1FBRUQsSUFBSSxPQUFPLENBQUMsMEJBQTBCLEtBQUssU0FBUyxFQUFFO1lBQ3BELGtDQUEwQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsMEJBQTBCLEVBQUUsTUFBTSxDQUFDLE1B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 /***/ }), -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/query.ts": -/*!**************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/query.ts ***! - \**************************************************************************************/ +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/mev.ts": +/*!**********************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/mev.ts ***! + \**********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -184155,25 +184639,82 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.DelayedCompleteBridgeMessage = exports.QueryDelayedCompleteBridgeMessagesResponse = exports.QueryDelayedCompleteBridgeMessagesRequest = exports.QueryRecognizedEventInfoResponse = exports.QueryRecognizedEventInfoRequest = exports.QueryAcknowledgedEventInfoResponse = exports.QueryAcknowledgedEventInfoRequest = exports.QuerySafetyParamsResponse = exports.QuerySafetyParamsRequest = exports.QueryProposeParamsResponse = exports.QueryProposeParamsRequest = exports.QueryEventParamsResponse = exports.QueryEventParamsRequest = void 0; -const params_1 = __webpack_require__(/*! ./params */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/params.ts"); -const bridge_event_info_1 = __webpack_require__(/*! ./bridge_event_info */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/bridge_event_info.ts"); -const tx_1 = __webpack_require__(/*! ./tx */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/tx.ts"); +exports.MevNodeToNodeMetrics = exports.ValidatorMevMatches = exports.ClobMidPrice = exports.MEVLiquidationMatch = exports.MEVMatch = void 0; +const subaccount_1 = __webpack_require__(/*! ../subaccounts/subaccount */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/subaccount.ts"); +const clob_pair_1 = __webpack_require__(/*! ./clob_pair */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/clob_pair.ts"); +const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -function createBaseQueryEventParamsRequest() { - return {}; +function createBaseMEVMatch() { + return { + takerOrderSubaccountId: undefined, + takerFeePpm: 0, + makerOrderSubaccountId: undefined, + makerOrderSubticks: helpers_1.Long.UZERO, + makerOrderIsBuy: false, + makerFeePpm: 0, + clobPairId: 0, + fillAmount: helpers_1.Long.UZERO + }; } -exports.QueryEventParamsRequest = { - encode(_, writer = _m0.Writer.create()) { +exports.MEVMatch = { + encode(message, writer = _m0.Writer.create()) { + if (message.takerOrderSubaccountId !== undefined) { + subaccount_1.SubaccountId.encode(message.takerOrderSubaccountId, writer.uint32(10).fork()).ldelim(); + } + if (message.takerFeePpm !== 0) { + writer.uint32(16).int32(message.takerFeePpm); + } + if (message.makerOrderSubaccountId !== undefined) { + subaccount_1.SubaccountId.encode(message.makerOrderSubaccountId, writer.uint32(26).fork()).ldelim(); + } + if (!message.makerOrderSubticks.isZero()) { + writer.uint32(32).uint64(message.makerOrderSubticks); + } + if (message.makerOrderIsBuy === true) { + writer.uint32(40).bool(message.makerOrderIsBuy); + } + if (message.makerFeePpm !== 0) { + writer.uint32(48).int32(message.makerFeePpm); + } + if (message.clobPairId !== 0) { + writer.uint32(56).uint32(message.clobPairId); + } + if (!message.fillAmount.isZero()) { + writer.uint32(64).uint64(message.fillAmount); + } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryEventParamsRequest(); + const message = createBaseMEVMatch(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.takerOrderSubaccountId = subaccount_1.SubaccountId.decode(reader, reader.uint32()); + break; + case 2: + message.takerFeePpm = reader.int32(); + break; + case 3: + message.makerOrderSubaccountId = subaccount_1.SubaccountId.decode(reader, reader.uint32()); + break; + case 4: + message.makerOrderSubticks = reader.uint64(); + break; + case 5: + message.makerOrderIsBuy = reader.bool(); + break; + case 6: + message.makerFeePpm = reader.int32(); + break; + case 7: + message.clobPairId = reader.uint32(); + break; + case 8: + message.fillAmount = reader.uint64(); + break; default: reader.skipType(tag & 7); break; @@ -184181,32 +184722,90 @@ exports.QueryEventParamsRequest = { } return message; }, - fromPartial(_) { - const message = createBaseQueryEventParamsRequest(); + fromPartial(object) { + var _a, _b, _c, _d; + const message = createBaseMEVMatch(); + message.takerOrderSubaccountId = object.takerOrderSubaccountId !== undefined && object.takerOrderSubaccountId !== null ? subaccount_1.SubaccountId.fromPartial(object.takerOrderSubaccountId) : undefined; + message.takerFeePpm = (_a = object.takerFeePpm) !== null && _a !== void 0 ? _a : 0; + message.makerOrderSubaccountId = object.makerOrderSubaccountId !== undefined && object.makerOrderSubaccountId !== null ? subaccount_1.SubaccountId.fromPartial(object.makerOrderSubaccountId) : undefined; + message.makerOrderSubticks = object.makerOrderSubticks !== undefined && object.makerOrderSubticks !== null ? helpers_1.Long.fromValue(object.makerOrderSubticks) : helpers_1.Long.UZERO; + message.makerOrderIsBuy = (_b = object.makerOrderIsBuy) !== null && _b !== void 0 ? _b : false; + message.makerFeePpm = (_c = object.makerFeePpm) !== null && _c !== void 0 ? _c : 0; + message.clobPairId = (_d = object.clobPairId) !== null && _d !== void 0 ? _d : 0; + message.fillAmount = object.fillAmount !== undefined && object.fillAmount !== null ? helpers_1.Long.fromValue(object.fillAmount) : helpers_1.Long.UZERO; return message; } }; -function createBaseQueryEventParamsResponse() { +function createBaseMEVLiquidationMatch() { return { - params: undefined + liquidatedSubaccountId: undefined, + insuranceFundDeltaQuoteQuantums: helpers_1.Long.ZERO, + makerOrderSubaccountId: undefined, + makerOrderSubticks: helpers_1.Long.UZERO, + makerOrderIsBuy: false, + makerFeePpm: 0, + clobPairId: 0, + fillAmount: helpers_1.Long.UZERO }; } -exports.QueryEventParamsResponse = { +exports.MEVLiquidationMatch = { encode(message, writer = _m0.Writer.create()) { - if (message.params !== undefined) { - params_1.EventParams.encode(message.params, writer.uint32(10).fork()).ldelim(); + if (message.liquidatedSubaccountId !== undefined) { + subaccount_1.SubaccountId.encode(message.liquidatedSubaccountId, writer.uint32(10).fork()).ldelim(); + } + if (!message.insuranceFundDeltaQuoteQuantums.isZero()) { + writer.uint32(16).int64(message.insuranceFundDeltaQuoteQuantums); + } + if (message.makerOrderSubaccountId !== undefined) { + subaccount_1.SubaccountId.encode(message.makerOrderSubaccountId, writer.uint32(26).fork()).ldelim(); + } + if (!message.makerOrderSubticks.isZero()) { + writer.uint32(32).uint64(message.makerOrderSubticks); + } + if (message.makerOrderIsBuy === true) { + writer.uint32(40).bool(message.makerOrderIsBuy); + } + if (message.makerFeePpm !== 0) { + writer.uint32(48).int32(message.makerFeePpm); + } + if (message.clobPairId !== 0) { + writer.uint32(56).uint32(message.clobPairId); + } + if (!message.fillAmount.isZero()) { + writer.uint32(64).uint64(message.fillAmount); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryEventParamsResponse(); + const message = createBaseMEVLiquidationMatch(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.params = params_1.EventParams.decode(reader, reader.uint32()); + message.liquidatedSubaccountId = subaccount_1.SubaccountId.decode(reader, reader.uint32()); + break; + case 2: + message.insuranceFundDeltaQuoteQuantums = reader.int64(); + break; + case 3: + message.makerOrderSubaccountId = subaccount_1.SubaccountId.decode(reader, reader.uint32()); + break; + case 4: + message.makerOrderSubticks = reader.uint64(); + break; + case 5: + message.makerOrderIsBuy = reader.bool(); + break; + case 6: + message.makerFeePpm = reader.int32(); + break; + case 7: + message.clobPairId = reader.uint32(); + break; + case 8: + message.fillAmount = reader.uint64(); break; default: reader.skipType(tag & 7); @@ -184216,25 +184815,48 @@ exports.QueryEventParamsResponse = { return message; }, fromPartial(object) { - const message = createBaseQueryEventParamsResponse(); - message.params = object.params !== undefined && object.params !== null ? params_1.EventParams.fromPartial(object.params) : undefined; + var _a, _b, _c; + const message = createBaseMEVLiquidationMatch(); + message.liquidatedSubaccountId = object.liquidatedSubaccountId !== undefined && object.liquidatedSubaccountId !== null ? subaccount_1.SubaccountId.fromPartial(object.liquidatedSubaccountId) : undefined; + message.insuranceFundDeltaQuoteQuantums = object.insuranceFundDeltaQuoteQuantums !== undefined && object.insuranceFundDeltaQuoteQuantums !== null ? helpers_1.Long.fromValue(object.insuranceFundDeltaQuoteQuantums) : helpers_1.Long.ZERO; + message.makerOrderSubaccountId = object.makerOrderSubaccountId !== undefined && object.makerOrderSubaccountId !== null ? subaccount_1.SubaccountId.fromPartial(object.makerOrderSubaccountId) : undefined; + message.makerOrderSubticks = object.makerOrderSubticks !== undefined && object.makerOrderSubticks !== null ? helpers_1.Long.fromValue(object.makerOrderSubticks) : helpers_1.Long.UZERO; + message.makerOrderIsBuy = (_a = object.makerOrderIsBuy) !== null && _a !== void 0 ? _a : false; + message.makerFeePpm = (_b = object.makerFeePpm) !== null && _b !== void 0 ? _b : 0; + message.clobPairId = (_c = object.clobPairId) !== null && _c !== void 0 ? _c : 0; + message.fillAmount = object.fillAmount !== undefined && object.fillAmount !== null ? helpers_1.Long.fromValue(object.fillAmount) : helpers_1.Long.UZERO; return message; } }; -function createBaseQueryProposeParamsRequest() { - return {}; +function createBaseClobMidPrice() { + return { + clobPair: undefined, + subticks: helpers_1.Long.UZERO + }; } -exports.QueryProposeParamsRequest = { - encode(_, writer = _m0.Writer.create()) { +exports.ClobMidPrice = { + encode(message, writer = _m0.Writer.create()) { + if (message.clobPair !== undefined) { + clob_pair_1.ClobPair.encode(message.clobPair, writer.uint32(10).fork()).ldelim(); + } + if (!message.subticks.isZero()) { + writer.uint32(16).uint64(message.subticks); + } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryProposeParamsRequest(); + const message = createBaseClobMidPrice(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.clobPair = clob_pair_1.ClobPair.decode(reader, reader.uint32()); + break; + case 2: + message.subticks = reader.uint64(); + break; default: reader.skipType(tag & 7); break; @@ -184242,32 +184864,41 @@ exports.QueryProposeParamsRequest = { } return message; }, - fromPartial(_) { - const message = createBaseQueryProposeParamsRequest(); + fromPartial(object) { + const message = createBaseClobMidPrice(); + message.clobPair = object.clobPair !== undefined && object.clobPair !== null ? clob_pair_1.ClobPair.fromPartial(object.clobPair) : undefined; + message.subticks = object.subticks !== undefined && object.subticks !== null ? helpers_1.Long.fromValue(object.subticks) : helpers_1.Long.UZERO; return message; } }; -function createBaseQueryProposeParamsResponse() { +function createBaseValidatorMevMatches() { return { - params: undefined + matches: [], + liquidationMatches: [] }; } -exports.QueryProposeParamsResponse = { +exports.ValidatorMevMatches = { encode(message, writer = _m0.Writer.create()) { - if (message.params !== undefined) { - params_1.ProposeParams.encode(message.params, writer.uint32(10).fork()).ldelim(); + for (const v of message.matches) { + exports.MEVMatch.encode(v, writer.uint32(10).fork()).ldelim(); + } + for (const v of message.liquidationMatches) { + exports.MEVLiquidationMatch.encode(v, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryProposeParamsResponse(); + const message = createBaseValidatorMevMatches(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.params = params_1.ProposeParams.decode(reader, reader.uint32()); + message.matches.push(exports.MEVMatch.decode(reader, reader.uint32())); + break; + case 2: + message.liquidationMatches.push(exports.MEVLiquidationMatch.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -184277,25 +184908,56 @@ exports.QueryProposeParamsResponse = { return message; }, fromPartial(object) { - const message = createBaseQueryProposeParamsResponse(); - message.params = object.params !== undefined && object.params !== null ? params_1.ProposeParams.fromPartial(object.params) : undefined; + var _a, _b; + const message = createBaseValidatorMevMatches(); + message.matches = ((_a = object.matches) === null || _a === void 0 ? void 0 : _a.map(e => exports.MEVMatch.fromPartial(e))) || []; + message.liquidationMatches = ((_b = object.liquidationMatches) === null || _b === void 0 ? void 0 : _b.map(e => exports.MEVLiquidationMatch.fromPartial(e))) || []; return message; } }; -function createBaseQuerySafetyParamsRequest() { - return {}; +function createBaseMevNodeToNodeMetrics() { + return { + validatorMevMatches: undefined, + clobMidPrices: [], + bpMevMatches: undefined, + proposalReceiveTime: helpers_1.Long.UZERO + }; } -exports.QuerySafetyParamsRequest = { - encode(_, writer = _m0.Writer.create()) { +exports.MevNodeToNodeMetrics = { + encode(message, writer = _m0.Writer.create()) { + if (message.validatorMevMatches !== undefined) { + exports.ValidatorMevMatches.encode(message.validatorMevMatches, writer.uint32(10).fork()).ldelim(); + } + for (const v of message.clobMidPrices) { + exports.ClobMidPrice.encode(v, writer.uint32(18).fork()).ldelim(); + } + if (message.bpMevMatches !== undefined) { + exports.ValidatorMevMatches.encode(message.bpMevMatches, writer.uint32(26).fork()).ldelim(); + } + if (!message.proposalReceiveTime.isZero()) { + writer.uint32(32).uint64(message.proposalReceiveTime); + } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQuerySafetyParamsRequest(); + const message = createBaseMevNodeToNodeMetrics(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.validatorMevMatches = exports.ValidatorMevMatches.decode(reader, reader.uint32()); + break; + case 2: + message.clobMidPrices.push(exports.ClobMidPrice.decode(reader, reader.uint32())); + break; + case 3: + message.bpMevMatches = exports.ValidatorMevMatches.decode(reader, reader.uint32()); + break; + case 4: + message.proposalReceiveTime = reader.uint64(); + break; default: reader.skipType(tag & 7); break; @@ -184303,32 +184965,272 @@ exports.QuerySafetyParamsRequest = { } return message; }, - fromPartial(_) { - const message = createBaseQuerySafetyParamsRequest(); + fromPartial(object) { + var _a; + const message = createBaseMevNodeToNodeMetrics(); + message.validatorMevMatches = object.validatorMevMatches !== undefined && object.validatorMevMatches !== null ? exports.ValidatorMevMatches.fromPartial(object.validatorMevMatches) : undefined; + message.clobMidPrices = ((_a = object.clobMidPrices) === null || _a === void 0 ? void 0 : _a.map(e => exports.ClobMidPrice.fromPartial(e))) || []; + message.bpMevMatches = object.bpMevMatches !== undefined && object.bpMevMatches !== null ? exports.ValidatorMevMatches.fromPartial(object.bpMevMatches) : undefined; + message.proposalReceiveTime = object.proposalReceiveTime !== undefined && object.proposalReceiveTime !== null ? helpers_1.Long.fromValue(object.proposalReceiveTime) : helpers_1.Long.UZERO; return message; } }; -function createBaseQuerySafetyParamsResponse() { +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV2LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vZHlkeHByb3RvY29sL2Nsb2IvbWV2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMERBQThFO0FBQzlFLDJDQUF3RDtBQUN4RCwyQ0FBa0Q7QUFDbEQsd0RBQTBDO0FBNEcxQyxTQUFTLGtCQUFrQjtJQUN6QixPQUFPO1FBQ0wsc0JBQXNCLEVBQUUsU0FBUztRQUNqQyxXQUFXLEVBQUUsQ0FBQztRQUNkLHNCQUFzQixFQUFFLFNBQVM7UUFDakMsa0JBQWtCLEVBQUUsY0FBSSxDQUFDLEtBQUs7UUFDOUIsZUFBZSxFQUFFLEtBQUs7UUFDdEIsV0FBVyxFQUFFLENBQUM7UUFDZCxVQUFVLEVBQUUsQ0FBQztRQUNiLFVBQVUsRUFBRSxjQUFJLENBQUMsS0FBSztLQUN2QixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsUUFBUSxHQUFHO0lBQ3RCLE1BQU0sQ0FBQyxPQUFpQixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ2hFLElBQUksT0FBTyxDQUFDLHNCQUFzQixLQUFLLFNBQVMsRUFBRTtZQUNoRCx5QkFBWSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3hGO1FBRUQsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLENBQUMsRUFBRTtZQUM3QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDOUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxzQkFBc0IsS0FBSyxTQUFTLEVBQUU7WUFDaEQseUJBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN4RjtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDeEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7U0FDdEQ7UUFFRCxJQUFJLE9BQU8sQ0FBQyxlQUFlLEtBQUssSUFBSSxFQUFFO1lBQ3BDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNqRDtRQUVELElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxDQUFDLEVBQUU7WUFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQzlDO1FBRUQsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLENBQUMsRUFBRTtZQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDOUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNoQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDOUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQztRQUVyQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUU1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsc0JBQXNCLEdBQUcseUJBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUM5RSxNQUFNO2dCQUVSLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDckMsTUFBTTtnQkFFUixLQUFLLENBQUM7b0JBQ0osT0FBTyxDQUFDLHNCQUFzQixHQUFHLHlCQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDOUUsTUFBTTtnQkFFUixLQUFLLENBQUM7b0JBQ0osT0FBTyxDQUFDLGtCQUFrQixHQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQVcsQ0FBQztvQkFDdkQsTUFBTTtnQkFFUixLQUFLLENBQUM7b0JBQ0osT0FBTyxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3hDLE1BQU07Z0JBRVIsS0FBSyxDQUFDO29CQUNKLE9BQU8sQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNyQyxNQUFNO2dCQUVSLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDckMsTUFBTTtnQkFFUixLQUFLLENBQUM7b0JBQ0osT0FBTyxDQUFDLFVBQVUsR0FBSSxNQUFNLENBQUMsTUFBTSxFQUFXLENBQUM7b0JBQy9DLE1BQU07Z0JBRVI7b0JBQ0UsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3pCLE1BQU07YUFDVDtTQUNGO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUE2Qjs7UUFDdkMsTUFBTSxPQUFPLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQztRQUNyQyxPQUFPLENBQUMsc0JBQXNCLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsc0JBQXNCLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyx5QkFBWSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzdMLE9BQU8sQ0FBQyxXQUFXLEdBQUcsTUFBQSxNQUFNLENBQUMsV0FBVyxtQ0FBSSxDQUFDLENBQUM7UUFDOUMsT0FBTyxDQUFDLHNCQUFzQixHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLHNCQUFzQixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMseUJBQVksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUM3TCxPQUFPLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsa0JBQWtCLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3BLLE9BQU8sQ0FBQyxlQUFlLEdBQUcsTUFBQSxNQUFNLENBQUMsZUFBZSxtQ0FBSSxLQUFLLENBQUM7UUFDMUQsT0FBTyxDQUFDLFdBQVcsR0FBRyxNQUFBLE1BQU0sQ0FBQyxXQUFXLG1DQUFJLENBQUMsQ0FBQztRQUM5QyxPQUFPLENBQUMsVUFBVSxHQUFHLE1BQUEsTUFBTSxDQUFDLFVBQVUsbUNBQUksQ0FBQyxDQUFDO1FBQzVDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3BJLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FFRixDQUFDO0FBRUYsU0FBUyw2QkFBNkI7SUFDcEMsT0FBTztRQUNMLHNCQUFzQixFQUFFLFNBQVM7UUFDakMsK0JBQStCLEVBQUUsY0FBSSxDQUFDLElBQUk7UUFDMUMsc0JBQXNCLEVBQUUsU0FBUztRQUNqQyxrQkFBa0IsRUFBRSxjQUFJLENBQUMsS0FBSztRQUM5QixlQUFlLEVBQUUsS0FBSztRQUN0QixXQUFXLEVBQUUsQ0FBQztRQUNkLFVBQVUsRUFBRSxDQUFDO1FBQ2IsVUFBVSxFQUFFLGNBQUksQ0FBQyxLQUFLO0tBQ3ZCLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxtQkFBbUIsR0FBRztJQUNqQyxNQUFNLENBQUMsT0FBNEIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUMzRSxJQUFJLE9BQU8sQ0FBQyxzQkFBc0IsS0FBSyxTQUFTLEVBQUU7WUFDaEQseUJBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN4RjtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsK0JBQStCLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDckQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLCtCQUErQixDQUFDLENBQUM7U0FDbEU7UUFFRCxJQUFJLE9BQU8sQ0FBQyxzQkFBc0IsS0FBSyxTQUFTLEVBQUU7WUFDaEQseUJBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN4RjtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDeEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7U0FDdEQ7UUFFRCxJQUFJLE9BQU8sQ0FBQyxlQUFlLEtBQUssSUFBSSxFQUFFO1lBQ3BDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNqRDtRQUVELElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxDQUFDLEVBQUU7WUFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQzlDO1FBRUQsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLENBQUMsRUFBRTtZQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDOUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNoQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDOUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsNkJBQTZCLEVBQUUsQ0FBQztRQUVoRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUU1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsc0JBQXNCLEdBQUcseUJBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUM5RSxNQUFNO2dCQUVSLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsK0JBQStCLEdBQUksTUFBTSxDQUFDLEtBQUssRUFBVyxDQUFDO29CQUNuRSxNQUFNO2dCQUVSLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsc0JBQXNCLEdBQUcseUJBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUM5RSxNQUFNO2dCQUVSLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsa0JBQWtCLEdBQUksTUFBTSxDQUFDLE1BQU0sRUFBVyxDQUFDO29CQUN2RCxNQUFNO2dCQUVSLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDeEMsTUFBTTtnQkFFUixLQUFLLENBQUM7b0JBQ0osT0FBTyxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ3JDLE1BQU07Z0JBRVIsS0FBSyxDQUFDO29CQUNKLE9BQU8sQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNyQyxNQUFNO2dCQUVSLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsVUFBVSxHQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQVcsQ0FBQztvQkFDL0MsTUFBTTtnQkFFUjtvQkFDRSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDekIsTUFBTTthQUNUO1NBQ0Y7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQXdDOztRQUNsRCxNQUFNLE9BQU8sR0FBRyw2QkFBNkIsRUFBRSxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxzQkFBc0IsR0FBRyxNQUFNLENBQUMsc0JBQXNCLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxzQkFBc0IsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLHlCQUFZLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDN0wsT0FBTyxDQUFDLCtCQUErQixHQUFHLE1BQU0sQ0FBQywrQkFBK0IsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLCtCQUErQixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsK0JBQStCLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBSSxDQUFDLElBQUksQ0FBQztRQUN2TixPQUFPLENBQUMsc0JBQXNCLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsc0JBQXNCLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyx5QkFBWSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzdMLE9BQU8sQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxrQkFBa0IsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQUksQ0FBQyxLQUFLLENBQUM7UUFDcEssT0FBTyxDQUFDLGVBQWUsR0FBRyxNQUFBLE1BQU0sQ0FBQyxlQUFlLG1DQUFJLEtBQUssQ0FBQztRQUMxRCxPQUFPLENBQUMsV0FBVyxHQUFHLE1BQUEsTUFBTSxDQUFDLFdBQVcsbUNBQUksQ0FBQyxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsTUFBQSxNQUFNLENBQUMsVUFBVSxtQ0FBSSxDQUFDLENBQUM7UUFDNUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQUksQ0FBQyxLQUFLLENBQUM7UUFDcEksT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUVGLENBQUM7QUFFRixTQUFTLHNCQUFzQjtJQUM3QixPQUFPO1FBQ0wsUUFBUSxFQUFFLFNBQVM7UUFDbkIsUUFBUSxFQUFFLGNBQUksQ0FBQyxLQUFLO0tBQ3JCLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxZQUFZLEdBQUc7SUFDMUIsTUFBTSxDQUFDLE9BQXFCLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDcEUsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUNsQyxvQkFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN0RTtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQzlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUM1QztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxzQkFBc0IsRUFBRSxDQUFDO1FBRXpDLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRTVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLE9BQU8sQ0FBQyxRQUFRLEdBQUcsb0JBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUM1RCxNQUFNO2dCQUVSLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsUUFBUSxHQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQVcsQ0FBQztvQkFDN0MsTUFBTTtnQkFFUjtvQkFDRSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDekIsTUFBTTthQUNUO1NBQ0Y7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWlDO1FBQzNDLE1BQU0sT0FBTyxHQUFHLHNCQUFzQixFQUFFLENBQUM7UUFDekMsT0FBTyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsb0JBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDakksT0FBTyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQUksQ0FBQyxLQUFLLENBQUM7UUFDNUgsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUVGLENBQUM7QUFFRixTQUFTLDZCQUE2QjtJQUNwQyxPQUFPO1FBQ0wsT0FBTyxFQUFFLEVBQUU7UUFDWCxrQkFBa0IsRUFBRSxFQUFFO0tBQ3ZCLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxtQkFBbUIsR0FBRztJQUNqQyxNQUFNLENBQUMsT0FBNEIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUMzRSxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDL0IsZ0JBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN4RDtRQUVELEtBQUssTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLGtCQUFrQixFQUFFO1lBQzFDLDJCQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFFLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ25FO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLDZCQUE2QixFQUFFLENBQUM7UUFFaEQsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLENBQUM7b0JBQ0osT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQy9ELE1BQU07Z0JBRVIsS0FBSyxDQUFDO29CQUNKLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsMkJBQW1CLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNyRixNQUFNO2dCQUVSO29CQUNFLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN6QixNQUFNO2FBQ1Q7U0FDRjtRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBd0M7O1FBQ2xELE1BQU0sT0FBTyxHQUFHLDZCQUE2QixFQUFFLENBQUM7UUFDaEQsT0FBTyxDQUFDLE9BQU8sR0FBRyxDQUFBLE1BQUEsTUFBTSxDQUFDLE9BQU8sMENBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsZ0JBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxFQUFFLENBQUM7UUFDMUUsT0FBTyxDQUFDLGtCQUFrQixHQUFHLENBQUEsTUFBQSxNQUFNLENBQUMsa0JBQWtCLDBDQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLDJCQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLEVBQUUsQ0FBQztRQUMzRyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBRUYsQ0FBQztBQUVGLFNBQVMsOEJBQThCO0lBQ3JDLE9BQU87UUFDTCxtQkFBbUIsRUFBRSxTQUFTO1FBQzlCLGFBQWEsRUFBRSxFQUFFO1FBQ2pCLFlBQVksRUFBRSxTQUFTO1FBQ3ZCLG1CQUFtQixFQUFFLGNBQUksQ0FBQyxLQUFLO0tBQ2hDLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxvQkFBb0IsR0FBRztJQUNsQyxNQUFNLENBQUMsT0FBNkIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUM1RSxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsS0FBSyxTQUFTLEVBQUU7WUFDN0MsMkJBQW1CLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDNUY7UUFFRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDckMsb0JBQVksQ0FBQyxNQUFNLENBQUMsQ0FBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUM1RDtRQUVELElBQUksT0FBTyxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUU7WUFDdEMsMkJBQW1CLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3JGO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUN6QyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUN2RDtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyw4QkFBOEIsRUFBRSxDQUFDO1FBRWpELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRTVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLE9BQU8sQ0FBQyxtQkFBbUIsR0FBRywyQkFBbUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUNsRixNQUFNO2dCQUVSLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxvQkFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDekUsTUFBTTtnQkFFUixLQUFLLENBQUM7b0JBQ0osT0FBTyxDQUFDLFlBQVksR0FBRywyQkFBbUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUMzRSxNQUFNO2dCQUVSLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsbUJBQW1CLEdBQUksTUFBTSxDQUFDLE1BQU0sRUFBVyxDQUFDO29CQUN4RCxNQUFNO2dCQUVSO29CQUNFLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN6QixNQUFNO2FBQ1Q7U0FDRjtRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBeUM7O1FBQ25ELE1BQU0sT0FBTyxHQUFHLDhCQUE4QixFQUFFLENBQUM7UUFDakQsT0FBTyxDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLG1CQUFtQixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsMkJBQW1CLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDeEwsT0FBTyxDQUFDLGFBQWEsR0FBRyxDQUFBLE1BQUEsTUFBTSxDQUFDLGFBQWEsMENBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsb0JBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxFQUFFLENBQUM7UUFDMUYsT0FBTyxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsMkJBQW1CLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzVKLE9BQU8sQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQUksQ0FBQyxLQUFLLENBQUM7UUFDeEssT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUVGLENBQUMifQ== + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order.ts": +/*!************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order.ts ***! + \************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.TransactionOrdering = exports.Order = exports.ConditionalOrderPlacement = exports.LongTermOrderPlacement = exports.StatefulOrderTimeSliceValue = exports.OrderFillState = exports.PotentiallyPrunableOrders = exports.OrdersFilledDuringLatestBlock = exports.OrderId = exports.order_ConditionTypeToJSON = exports.order_ConditionTypeFromJSON = exports.Order_ConditionTypeSDKType = exports.Order_ConditionType = exports.order_TimeInForceToJSON = exports.order_TimeInForceFromJSON = exports.Order_TimeInForceSDKType = exports.Order_TimeInForce = exports.order_SideToJSON = exports.order_SideFromJSON = exports.Order_SideSDKType = exports.Order_Side = void 0; +const subaccount_1 = __webpack_require__(/*! ../subaccounts/subaccount */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/subaccount.ts"); +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); +/** + * Represents the side of the orderbook the order will be placed on. + * Note that Side.SIDE_UNSPECIFIED is an invalid order and cannot be + * placed on the orderbook. + */ +var Order_Side; +(function (Order_Side) { + /** SIDE_UNSPECIFIED - Default value. This value is invalid and unused. */ + Order_Side[Order_Side["SIDE_UNSPECIFIED"] = 0] = "SIDE_UNSPECIFIED"; + /** SIDE_BUY - SIDE_BUY is used to represent a BUY order. */ + Order_Side[Order_Side["SIDE_BUY"] = 1] = "SIDE_BUY"; + /** SIDE_SELL - SIDE_SELL is used to represent a SELL order. */ + Order_Side[Order_Side["SIDE_SELL"] = 2] = "SIDE_SELL"; + Order_Side[Order_Side["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(Order_Side = exports.Order_Side || (exports.Order_Side = {})); +exports.Order_SideSDKType = Order_Side; +function order_SideFromJSON(object) { + switch (object) { + case 0: + case "SIDE_UNSPECIFIED": + return Order_Side.SIDE_UNSPECIFIED; + case 1: + case "SIDE_BUY": + return Order_Side.SIDE_BUY; + case 2: + case "SIDE_SELL": + return Order_Side.SIDE_SELL; + case -1: + case "UNRECOGNIZED": + default: + return Order_Side.UNRECOGNIZED; + } +} +exports.order_SideFromJSON = order_SideFromJSON; +function order_SideToJSON(object) { + switch (object) { + case Order_Side.SIDE_UNSPECIFIED: + return "SIDE_UNSPECIFIED"; + case Order_Side.SIDE_BUY: + return "SIDE_BUY"; + case Order_Side.SIDE_SELL: + return "SIDE_SELL"; + case Order_Side.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} +exports.order_SideToJSON = order_SideToJSON; +/** + * TimeInForce indicates how long an order will remain active before it + * is executed or expires. + */ +var Order_TimeInForce; +(function (Order_TimeInForce) { + /** + * TIME_IN_FORCE_UNSPECIFIED - TIME_IN_FORCE_UNSPECIFIED represents the default behavior where an + * order will first match with existing orders on the book, and any + * remaining size will be added to the book as a maker order. + */ + Order_TimeInForce[Order_TimeInForce["TIME_IN_FORCE_UNSPECIFIED"] = 0] = "TIME_IN_FORCE_UNSPECIFIED"; + /** + * TIME_IN_FORCE_IOC - TIME_IN_FORCE_IOC enforces that an order only be matched with + * maker orders on the book. If the order has remaining size after + * matching with existing orders on the book, the remaining size + * is not placed on the book. + */ + Order_TimeInForce[Order_TimeInForce["TIME_IN_FORCE_IOC"] = 1] = "TIME_IN_FORCE_IOC"; + /** + * TIME_IN_FORCE_POST_ONLY - TIME_IN_FORCE_POST_ONLY enforces that an order only be placed + * on the book as a maker order. Note this means that validators will cancel + * any newly-placed post only orders that would cross with other maker + * orders. + */ + Order_TimeInForce[Order_TimeInForce["TIME_IN_FORCE_POST_ONLY"] = 2] = "TIME_IN_FORCE_POST_ONLY"; + /** + * TIME_IN_FORCE_FILL_OR_KILL - TIME_IN_FORCE_FILL_OR_KILL enforces that an order will either be filled + * completely and immediately by maker orders on the book or canceled if the + * entire amount can‘t be matched. + */ + Order_TimeInForce[Order_TimeInForce["TIME_IN_FORCE_FILL_OR_KILL"] = 3] = "TIME_IN_FORCE_FILL_OR_KILL"; + Order_TimeInForce[Order_TimeInForce["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(Order_TimeInForce = exports.Order_TimeInForce || (exports.Order_TimeInForce = {})); +exports.Order_TimeInForceSDKType = Order_TimeInForce; +function order_TimeInForceFromJSON(object) { + switch (object) { + case 0: + case "TIME_IN_FORCE_UNSPECIFIED": + return Order_TimeInForce.TIME_IN_FORCE_UNSPECIFIED; + case 1: + case "TIME_IN_FORCE_IOC": + return Order_TimeInForce.TIME_IN_FORCE_IOC; + case 2: + case "TIME_IN_FORCE_POST_ONLY": + return Order_TimeInForce.TIME_IN_FORCE_POST_ONLY; + case 3: + case "TIME_IN_FORCE_FILL_OR_KILL": + return Order_TimeInForce.TIME_IN_FORCE_FILL_OR_KILL; + case -1: + case "UNRECOGNIZED": + default: + return Order_TimeInForce.UNRECOGNIZED; + } +} +exports.order_TimeInForceFromJSON = order_TimeInForceFromJSON; +function order_TimeInForceToJSON(object) { + switch (object) { + case Order_TimeInForce.TIME_IN_FORCE_UNSPECIFIED: + return "TIME_IN_FORCE_UNSPECIFIED"; + case Order_TimeInForce.TIME_IN_FORCE_IOC: + return "TIME_IN_FORCE_IOC"; + case Order_TimeInForce.TIME_IN_FORCE_POST_ONLY: + return "TIME_IN_FORCE_POST_ONLY"; + case Order_TimeInForce.TIME_IN_FORCE_FILL_OR_KILL: + return "TIME_IN_FORCE_FILL_OR_KILL"; + case Order_TimeInForce.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} +exports.order_TimeInForceToJSON = order_TimeInForceToJSON; +var Order_ConditionType; +(function (Order_ConditionType) { + /** + * CONDITION_TYPE_UNSPECIFIED - CONDITION_TYPE_UNSPECIFIED represents the default behavior where an + * order will be placed immediately on the orderbook. + */ + Order_ConditionType[Order_ConditionType["CONDITION_TYPE_UNSPECIFIED"] = 0] = "CONDITION_TYPE_UNSPECIFIED"; + /** + * CONDITION_TYPE_STOP_LOSS - CONDITION_TYPE_STOP_LOSS represents a stop order. A stop order will + * trigger when the oracle price moves at or above the trigger price for + * buys, and at or below the trigger price for sells. + */ + Order_ConditionType[Order_ConditionType["CONDITION_TYPE_STOP_LOSS"] = 1] = "CONDITION_TYPE_STOP_LOSS"; + /** + * CONDITION_TYPE_TAKE_PROFIT - CONDITION_TYPE_TAKE_PROFIT represents a take profit order. A take profit + * order will trigger when the oracle price moves at or below the trigger + * price for buys and at or above the trigger price for sells. + */ + Order_ConditionType[Order_ConditionType["CONDITION_TYPE_TAKE_PROFIT"] = 2] = "CONDITION_TYPE_TAKE_PROFIT"; + Order_ConditionType[Order_ConditionType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(Order_ConditionType = exports.Order_ConditionType || (exports.Order_ConditionType = {})); +exports.Order_ConditionTypeSDKType = Order_ConditionType; +function order_ConditionTypeFromJSON(object) { + switch (object) { + case 0: + case "CONDITION_TYPE_UNSPECIFIED": + return Order_ConditionType.CONDITION_TYPE_UNSPECIFIED; + case 1: + case "CONDITION_TYPE_STOP_LOSS": + return Order_ConditionType.CONDITION_TYPE_STOP_LOSS; + case 2: + case "CONDITION_TYPE_TAKE_PROFIT": + return Order_ConditionType.CONDITION_TYPE_TAKE_PROFIT; + case -1: + case "UNRECOGNIZED": + default: + return Order_ConditionType.UNRECOGNIZED; + } +} +exports.order_ConditionTypeFromJSON = order_ConditionTypeFromJSON; +function order_ConditionTypeToJSON(object) { + switch (object) { + case Order_ConditionType.CONDITION_TYPE_UNSPECIFIED: + return "CONDITION_TYPE_UNSPECIFIED"; + case Order_ConditionType.CONDITION_TYPE_STOP_LOSS: + return "CONDITION_TYPE_STOP_LOSS"; + case Order_ConditionType.CONDITION_TYPE_TAKE_PROFIT: + return "CONDITION_TYPE_TAKE_PROFIT"; + case Order_ConditionType.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} +exports.order_ConditionTypeToJSON = order_ConditionTypeToJSON; +function createBaseOrderId() { return { - params: undefined + subaccountId: undefined, + clientId: 0, + orderFlags: 0, + clobPairId: 0 }; } -exports.QuerySafetyParamsResponse = { +exports.OrderId = { encode(message, writer = _m0.Writer.create()) { - if (message.params !== undefined) { - params_1.SafetyParams.encode(message.params, writer.uint32(10).fork()).ldelim(); + if (message.subaccountId !== undefined) { + subaccount_1.SubaccountId.encode(message.subaccountId, writer.uint32(10).fork()).ldelim(); + } + if (message.clientId !== 0) { + writer.uint32(21).fixed32(message.clientId); + } + if (message.orderFlags !== 0) { + writer.uint32(24).uint32(message.orderFlags); + } + if (message.clobPairId !== 0) { + writer.uint32(32).uint32(message.clobPairId); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQuerySafetyParamsResponse(); + const message = createBaseOrderId(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.params = params_1.SafetyParams.decode(reader, reader.uint32()); + message.subaccountId = subaccount_1.SubaccountId.decode(reader, reader.uint32()); + break; + case 2: + message.clientId = reader.fixed32(); + break; + case 3: + message.orderFlags = reader.uint32(); + break; + case 4: + message.clobPairId = reader.uint32(); break; default: reader.skipType(tag & 7); @@ -184338,25 +185240,37 @@ exports.QuerySafetyParamsResponse = { return message; }, fromPartial(object) { - const message = createBaseQuerySafetyParamsResponse(); - message.params = object.params !== undefined && object.params !== null ? params_1.SafetyParams.fromPartial(object.params) : undefined; + var _a, _b, _c; + const message = createBaseOrderId(); + message.subaccountId = object.subaccountId !== undefined && object.subaccountId !== null ? subaccount_1.SubaccountId.fromPartial(object.subaccountId) : undefined; + message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : 0; + message.orderFlags = (_b = object.orderFlags) !== null && _b !== void 0 ? _b : 0; + message.clobPairId = (_c = object.clobPairId) !== null && _c !== void 0 ? _c : 0; return message; } }; -function createBaseQueryAcknowledgedEventInfoRequest() { - return {}; +function createBaseOrdersFilledDuringLatestBlock() { + return { + orderIds: [] + }; } -exports.QueryAcknowledgedEventInfoRequest = { - encode(_, writer = _m0.Writer.create()) { +exports.OrdersFilledDuringLatestBlock = { + encode(message, writer = _m0.Writer.create()) { + for (const v of message.orderIds) { + exports.OrderId.encode(v, writer.uint32(10).fork()).ldelim(); + } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAcknowledgedEventInfoRequest(); + const message = createBaseOrdersFilledDuringLatestBlock(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.orderIds.push(exports.OrderId.decode(reader, reader.uint32())); + break; default: reader.skipType(tag & 7); break; @@ -184364,32 +185278,34 @@ exports.QueryAcknowledgedEventInfoRequest = { } return message; }, - fromPartial(_) { - const message = createBaseQueryAcknowledgedEventInfoRequest(); + fromPartial(object) { + var _a; + const message = createBaseOrdersFilledDuringLatestBlock(); + message.orderIds = ((_a = object.orderIds) === null || _a === void 0 ? void 0 : _a.map(e => exports.OrderId.fromPartial(e))) || []; return message; } }; -function createBaseQueryAcknowledgedEventInfoResponse() { +function createBasePotentiallyPrunableOrders() { return { - info: undefined + orderIds: [] }; } -exports.QueryAcknowledgedEventInfoResponse = { +exports.PotentiallyPrunableOrders = { encode(message, writer = _m0.Writer.create()) { - if (message.info !== undefined) { - bridge_event_info_1.BridgeEventInfo.encode(message.info, writer.uint32(10).fork()).ldelim(); + for (const v of message.orderIds) { + exports.OrderId.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAcknowledgedEventInfoResponse(); + const message = createBasePotentiallyPrunableOrders(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.info = bridge_event_info_1.BridgeEventInfo.decode(reader, reader.uint32()); + message.orderIds.push(exports.OrderId.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -184399,25 +185315,78 @@ exports.QueryAcknowledgedEventInfoResponse = { return message; }, fromPartial(object) { - const message = createBaseQueryAcknowledgedEventInfoResponse(); - message.info = object.info !== undefined && object.info !== null ? bridge_event_info_1.BridgeEventInfo.fromPartial(object.info) : undefined; + var _a; + const message = createBasePotentiallyPrunableOrders(); + message.orderIds = ((_a = object.orderIds) === null || _a === void 0 ? void 0 : _a.map(e => exports.OrderId.fromPartial(e))) || []; return message; } }; -function createBaseQueryRecognizedEventInfoRequest() { - return {}; +function createBaseOrderFillState() { + return { + fillAmount: helpers_1.Long.UZERO, + prunableBlockHeight: 0 + }; } -exports.QueryRecognizedEventInfoRequest = { - encode(_, writer = _m0.Writer.create()) { +exports.OrderFillState = { + encode(message, writer = _m0.Writer.create()) { + if (!message.fillAmount.isZero()) { + writer.uint32(8).uint64(message.fillAmount); + } + if (message.prunableBlockHeight !== 0) { + writer.uint32(16).uint32(message.prunableBlockHeight); + } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryRecognizedEventInfoRequest(); + const message = createBaseOrderFillState(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.fillAmount = reader.uint64(); + break; + case 2: + message.prunableBlockHeight = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseOrderFillState(); + message.fillAmount = object.fillAmount !== undefined && object.fillAmount !== null ? helpers_1.Long.fromValue(object.fillAmount) : helpers_1.Long.UZERO; + message.prunableBlockHeight = (_a = object.prunableBlockHeight) !== null && _a !== void 0 ? _a : 0; + return message; + } +}; +function createBaseStatefulOrderTimeSliceValue() { + return { + orderIds: [] + }; +} +exports.StatefulOrderTimeSliceValue = { + encode(message, writer = _m0.Writer.create()) { + for (const v of message.orderIds) { + exports.OrderId.encode(v, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseStatefulOrderTimeSliceValue(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.orderIds.push(exports.OrderId.decode(reader, reader.uint32())); + break; default: reader.skipType(tag & 7); break; @@ -184425,32 +185394,41 @@ exports.QueryRecognizedEventInfoRequest = { } return message; }, - fromPartial(_) { - const message = createBaseQueryRecognizedEventInfoRequest(); + fromPartial(object) { + var _a; + const message = createBaseStatefulOrderTimeSliceValue(); + message.orderIds = ((_a = object.orderIds) === null || _a === void 0 ? void 0 : _a.map(e => exports.OrderId.fromPartial(e))) || []; return message; } }; -function createBaseQueryRecognizedEventInfoResponse() { +function createBaseLongTermOrderPlacement() { return { - info: undefined + order: undefined, + placementIndex: undefined }; } -exports.QueryRecognizedEventInfoResponse = { +exports.LongTermOrderPlacement = { encode(message, writer = _m0.Writer.create()) { - if (message.info !== undefined) { - bridge_event_info_1.BridgeEventInfo.encode(message.info, writer.uint32(10).fork()).ldelim(); + if (message.order !== undefined) { + exports.Order.encode(message.order, writer.uint32(10).fork()).ldelim(); + } + if (message.placementIndex !== undefined) { + exports.TransactionOrdering.encode(message.placementIndex, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryRecognizedEventInfoResponse(); + const message = createBaseLongTermOrderPlacement(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.info = bridge_event_info_1.BridgeEventInfo.decode(reader, reader.uint32()); + message.order = exports.Order.decode(reader, reader.uint32()); + break; + case 2: + message.placementIndex = exports.TransactionOrdering.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -184460,32 +185438,47 @@ exports.QueryRecognizedEventInfoResponse = { return message; }, fromPartial(object) { - const message = createBaseQueryRecognizedEventInfoResponse(); - message.info = object.info !== undefined && object.info !== null ? bridge_event_info_1.BridgeEventInfo.fromPartial(object.info) : undefined; + const message = createBaseLongTermOrderPlacement(); + message.order = object.order !== undefined && object.order !== null ? exports.Order.fromPartial(object.order) : undefined; + message.placementIndex = object.placementIndex !== undefined && object.placementIndex !== null ? exports.TransactionOrdering.fromPartial(object.placementIndex) : undefined; return message; } }; -function createBaseQueryDelayedCompleteBridgeMessagesRequest() { +function createBaseConditionalOrderPlacement() { return { - address: "" + order: undefined, + placementIndex: undefined, + triggerIndex: undefined }; } -exports.QueryDelayedCompleteBridgeMessagesRequest = { +exports.ConditionalOrderPlacement = { encode(message, writer = _m0.Writer.create()) { - if (message.address !== "") { - writer.uint32(10).string(message.address); + if (message.order !== undefined) { + exports.Order.encode(message.order, writer.uint32(10).fork()).ldelim(); + } + if (message.placementIndex !== undefined) { + exports.TransactionOrdering.encode(message.placementIndex, writer.uint32(18).fork()).ldelim(); + } + if (message.triggerIndex !== undefined) { + exports.TransactionOrdering.encode(message.triggerIndex, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelayedCompleteBridgeMessagesRequest(); + const message = createBaseConditionalOrderPlacement(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.address = reader.string(); + message.order = exports.Order.decode(reader, reader.uint32()); + break; + case 2: + message.placementIndex = exports.TransactionOrdering.decode(reader, reader.uint32()); + break; + case 3: + message.triggerIndex = exports.TransactionOrdering.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -184495,33 +185488,104 @@ exports.QueryDelayedCompleteBridgeMessagesRequest = { return message; }, fromPartial(object) { - var _a; - const message = createBaseQueryDelayedCompleteBridgeMessagesRequest(); - message.address = (_a = object.address) !== null && _a !== void 0 ? _a : ""; + const message = createBaseConditionalOrderPlacement(); + message.order = object.order !== undefined && object.order !== null ? exports.Order.fromPartial(object.order) : undefined; + message.placementIndex = object.placementIndex !== undefined && object.placementIndex !== null ? exports.TransactionOrdering.fromPartial(object.placementIndex) : undefined; + message.triggerIndex = object.triggerIndex !== undefined && object.triggerIndex !== null ? exports.TransactionOrdering.fromPartial(object.triggerIndex) : undefined; return message; } }; -function createBaseQueryDelayedCompleteBridgeMessagesResponse() { +function createBaseOrder() { return { - messages: [] + orderId: undefined, + side: 0, + quantums: helpers_1.Long.UZERO, + subticks: helpers_1.Long.UZERO, + goodTilBlock: undefined, + goodTilBlockTime: undefined, + timeInForce: 0, + reduceOnly: false, + clientMetadata: 0, + conditionType: 0, + conditionalOrderTriggerSubticks: helpers_1.Long.UZERO }; } -exports.QueryDelayedCompleteBridgeMessagesResponse = { +exports.Order = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.messages) { - exports.DelayedCompleteBridgeMessage.encode(v, writer.uint32(10).fork()).ldelim(); + if (message.orderId !== undefined) { + exports.OrderId.encode(message.orderId, writer.uint32(10).fork()).ldelim(); + } + if (message.side !== 0) { + writer.uint32(16).int32(message.side); + } + if (!message.quantums.isZero()) { + writer.uint32(24).uint64(message.quantums); + } + if (!message.subticks.isZero()) { + writer.uint32(32).uint64(message.subticks); + } + if (message.goodTilBlock !== undefined) { + writer.uint32(40).uint32(message.goodTilBlock); + } + if (message.goodTilBlockTime !== undefined) { + writer.uint32(53).fixed32(message.goodTilBlockTime); + } + if (message.timeInForce !== 0) { + writer.uint32(56).int32(message.timeInForce); + } + if (message.reduceOnly === true) { + writer.uint32(64).bool(message.reduceOnly); + } + if (message.clientMetadata !== 0) { + writer.uint32(72).uint32(message.clientMetadata); + } + if (message.conditionType !== 0) { + writer.uint32(80).int32(message.conditionType); + } + if (!message.conditionalOrderTriggerSubticks.isZero()) { + writer.uint32(88).uint64(message.conditionalOrderTriggerSubticks); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryDelayedCompleteBridgeMessagesResponse(); + const message = createBaseOrder(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.messages.push(exports.DelayedCompleteBridgeMessage.decode(reader, reader.uint32())); + message.orderId = exports.OrderId.decode(reader, reader.uint32()); + break; + case 2: + message.side = reader.int32(); + break; + case 3: + message.quantums = reader.uint64(); + break; + case 4: + message.subticks = reader.uint64(); + break; + case 5: + message.goodTilBlock = reader.uint32(); + break; + case 6: + message.goodTilBlockTime = reader.fixed32(); + break; + case 7: + message.timeInForce = reader.int32(); + break; + case 8: + message.reduceOnly = reader.bool(); + break; + case 9: + message.clientMetadata = reader.uint32(); + break; + case 10: + message.conditionType = reader.int32(); + break; + case 11: + message.conditionalOrderTriggerSubticks = reader.uint64(); break; default: reader.skipType(tag & 7); @@ -184531,40 +185595,50 @@ exports.QueryDelayedCompleteBridgeMessagesResponse = { return message; }, fromPartial(object) { - var _a; - const message = createBaseQueryDelayedCompleteBridgeMessagesResponse(); - message.messages = ((_a = object.messages) === null || _a === void 0 ? void 0 : _a.map(e => exports.DelayedCompleteBridgeMessage.fromPartial(e))) || []; + var _a, _b, _c, _d, _e, _f, _g; + const message = createBaseOrder(); + message.orderId = object.orderId !== undefined && object.orderId !== null ? exports.OrderId.fromPartial(object.orderId) : undefined; + message.side = (_a = object.side) !== null && _a !== void 0 ? _a : 0; + message.quantums = object.quantums !== undefined && object.quantums !== null ? helpers_1.Long.fromValue(object.quantums) : helpers_1.Long.UZERO; + message.subticks = object.subticks !== undefined && object.subticks !== null ? helpers_1.Long.fromValue(object.subticks) : helpers_1.Long.UZERO; + message.goodTilBlock = (_b = object.goodTilBlock) !== null && _b !== void 0 ? _b : undefined; + message.goodTilBlockTime = (_c = object.goodTilBlockTime) !== null && _c !== void 0 ? _c : undefined; + message.timeInForce = (_d = object.timeInForce) !== null && _d !== void 0 ? _d : 0; + message.reduceOnly = (_e = object.reduceOnly) !== null && _e !== void 0 ? _e : false; + message.clientMetadata = (_f = object.clientMetadata) !== null && _f !== void 0 ? _f : 0; + message.conditionType = (_g = object.conditionType) !== null && _g !== void 0 ? _g : 0; + message.conditionalOrderTriggerSubticks = object.conditionalOrderTriggerSubticks !== undefined && object.conditionalOrderTriggerSubticks !== null ? helpers_1.Long.fromValue(object.conditionalOrderTriggerSubticks) : helpers_1.Long.UZERO; return message; } }; -function createBaseDelayedCompleteBridgeMessage() { +function createBaseTransactionOrdering() { return { - message: undefined, - blockHeight: 0 + blockHeight: 0, + transactionIndex: 0 }; } -exports.DelayedCompleteBridgeMessage = { +exports.TransactionOrdering = { encode(message, writer = _m0.Writer.create()) { - if (message.message !== undefined) { - tx_1.MsgCompleteBridge.encode(message.message, writer.uint32(10).fork()).ldelim(); - } if (message.blockHeight !== 0) { - writer.uint32(16).uint32(message.blockHeight); + writer.uint32(8).uint32(message.blockHeight); + } + if (message.transactionIndex !== 0) { + writer.uint32(16).uint32(message.transactionIndex); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDelayedCompleteBridgeMessage(); + const message = createBaseTransactionOrdering(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.message = tx_1.MsgCompleteBridge.decode(reader, reader.uint32()); + message.blockHeight = reader.uint32(); break; case 2: - message.blockHeight = reader.uint32(); + message.transactionIndex = reader.uint32(); break; default: reader.skipType(tag & 7); @@ -184574,21 +185648,21 @@ exports.DelayedCompleteBridgeMessage = { return message; }, fromPartial(object) { - var _a; - const message = createBaseDelayedCompleteBridgeMessage(); - message.message = object.message !== undefined && object.message !== null ? tx_1.MsgCompleteBridge.fromPartial(object.message) : undefined; + var _a, _b; + const message = createBaseTransactionOrdering(); message.blockHeight = (_a = object.blockHeight) !== null && _a !== void 0 ? _a : 0; + message.transactionIndex = (_b = object.transactionIndex) !== null && _b !== void 0 ? _b : 0; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvYnJpZGdlL3F1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscUNBQW1JO0FBQ25JLDJEQUE4RTtBQUM5RSw2QkFBbUU7QUFDbkUsd0RBQTBDO0FBeUsxQyxTQUFTLGlDQUFpQztJQUN4QyxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFWSxRQUFBLHVCQUF1QixHQUFHO0lBQ3JDLE1BQU0sQ0FBQyxDQUEwQixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ3pFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxpQ0FBaUMsRUFBRSxDQUFDO1FBRXBELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRTVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakI7b0JBQ0UsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFD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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvY2xvYi9vcmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBEQUE4RTtBQUM5RSx3REFBMEM7QUFDMUMsMkNBQWtEO0FBQ2xEOzs7O0dBSUc7QUFFSCxJQUFZLFVBVVg7QUFWRCxXQUFZLFVBQVU7SUFDcEIsMEVBQTBFO0lBQzFFLG1FQUFvQixDQUFBO0lBRXBCLDREQUE0RDtJQUM1RCxtREFBWSxDQUFBO0lBRVosK0RBQStEO0lBQy9ELHFEQUFhLENBQUE7SUFDYiw0REFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBVlcsVUFBVSxHQUFWLGtCQUFVLEtBQVYsa0JBQVUsUUFVckI7QUFDWSxRQUFBLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztBQUM1QyxTQUFnQixrQkFBa0IsQ0FBQyxNQUFXO0lBQzVDLFFBQVEsTUFBTSxFQUFFO1FBQ2QsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLGtCQUFrQjtZQUNyQixPQUFPLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUVyQyxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssVUFBVTtZQUNiLE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUU3QixLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssV0FBVztZQUNkLE9BQU8sVUFBVSxDQUFDLFNBQVMsQ0FBQztRQUU5QixLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ1IsS0FBSyxjQUFjLENBQUM7UUFDcEI7WUFDRSxPQUFPLFVBQVUsQ0FBQyxZQUFZLENBQUM7S0FDbEM7QUFDSCxDQUFDO0FBbkJELGdEQW1CQztBQUNELFNBQWdCLGdCQUFnQixDQUFDLE1BQWtCO0lBQ2pELFFBQVEsTUFBTSxFQUFFO1FBQ2QsS0FB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 /***/ }), -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/tx.ts": -/*!***********************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/tx.ts ***! - \***********************************************************************************/ +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order_removals.ts": +/*!*********************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order_removals.ts ***! + \*********************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -184617,31 +185691,149 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.MsgUpdateSafetyParamsResponse = exports.MsgUpdateSafetyParams = exports.MsgUpdateProposeParamsResponse = exports.MsgUpdateProposeParams = exports.MsgUpdateEventParamsResponse = exports.MsgUpdateEventParams = exports.MsgCompleteBridgeResponse = exports.MsgCompleteBridge = exports.MsgAcknowledgeBridgesResponse = exports.MsgAcknowledgeBridges = void 0; -const bridge_event_1 = __webpack_require__(/*! ./bridge_event */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/bridge_event.ts"); -const params_1 = __webpack_require__(/*! ./params */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/params.ts"); +exports.OrderRemoval = exports.orderRemoval_RemovalReasonToJSON = exports.orderRemoval_RemovalReasonFromJSON = exports.OrderRemoval_RemovalReasonSDKType = exports.OrderRemoval_RemovalReason = void 0; +const order_1 = __webpack_require__(/*! ./order */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order.ts"); const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -function createBaseMsgAcknowledgeBridges() { +var OrderRemoval_RemovalReason; +(function (OrderRemoval_RemovalReason) { + /** + * REMOVAL_REASON_UNSPECIFIED - REMOVAL_REASON_UNSPECIFIED represents an unspecified removal reason. This + * removal reason is used as a catchall and should never appear on an + * OrderRemoval in the operations queue. + */ + OrderRemoval_RemovalReason[OrderRemoval_RemovalReason["REMOVAL_REASON_UNSPECIFIED"] = 0] = "REMOVAL_REASON_UNSPECIFIED"; + /** + * REMOVAL_REASON_UNDERCOLLATERALIZED - REMOVAL_REASON_UNDERCOLLATERALIZED represents a removal of an order which + * if filled in isolation with respect to the current state of the + * subaccount would leave the subaccount undercollateralized. + */ + OrderRemoval_RemovalReason[OrderRemoval_RemovalReason["REMOVAL_REASON_UNDERCOLLATERALIZED"] = 1] = "REMOVAL_REASON_UNDERCOLLATERALIZED"; + /** + * REMOVAL_REASON_INVALID_REDUCE_ONLY - REMOVAL_REASON_INVALID_REDUCE_ONLY represents a removal of a reduce-only + * order which if filled in isolation with respect to the current state of + * the subaccount would cause the subaccount's existing position to increase + * or change sides. + */ + OrderRemoval_RemovalReason[OrderRemoval_RemovalReason["REMOVAL_REASON_INVALID_REDUCE_ONLY"] = 2] = "REMOVAL_REASON_INVALID_REDUCE_ONLY"; + /** + * REMOVAL_REASON_POST_ONLY_WOULD_CROSS_MAKER_ORDER - REMOVAL_REASON_POST_ONLY_WOULD_CROSS_MAKER_ORDER represents a removal of + * a stateful post-only order that was deemed invalid because it crossed + * maker orders on the book of the proposer. + */ + OrderRemoval_RemovalReason[OrderRemoval_RemovalReason["REMOVAL_REASON_POST_ONLY_WOULD_CROSS_MAKER_ORDER"] = 3] = "REMOVAL_REASON_POST_ONLY_WOULD_CROSS_MAKER_ORDER"; + /** + * REMOVAL_REASON_INVALID_SELF_TRADE - REMOVAL_REASON_INVALID_SELF_TRADE represents a removal of a stateful + * order that was deemed invalid because it constituted a self trade on the + * proposers orderbook. + */ + OrderRemoval_RemovalReason[OrderRemoval_RemovalReason["REMOVAL_REASON_INVALID_SELF_TRADE"] = 4] = "REMOVAL_REASON_INVALID_SELF_TRADE"; + /** + * REMOVAL_REASON_CONDITIONAL_FOK_COULD_NOT_BE_FULLY_FILLED - REMOVAL_REASON_CONDITIONAL_FOK_COULD_NOT_BE_FULLY_FILLED represents a + * removal of a conditional FOK order that was deemed invalid because it + * could not be completely filled. Conditional FOK orders should always be + * fully-filled or removed in the block after they are triggered. + */ + OrderRemoval_RemovalReason[OrderRemoval_RemovalReason["REMOVAL_REASON_CONDITIONAL_FOK_COULD_NOT_BE_FULLY_FILLED"] = 5] = "REMOVAL_REASON_CONDITIONAL_FOK_COULD_NOT_BE_FULLY_FILLED"; + /** + * REMOVAL_REASON_CONDITIONAL_IOC_WOULD_REST_ON_BOOK - REMOVAL_REASON_CONDITIONAL_IOC_WOULD_REST_ON_BOOK represents a removal + * of a conditional IOC order. + * Conditional IOC orders should always have their remaining size removed + * in the block after they are triggered. + */ + OrderRemoval_RemovalReason[OrderRemoval_RemovalReason["REMOVAL_REASON_CONDITIONAL_IOC_WOULD_REST_ON_BOOK"] = 6] = "REMOVAL_REASON_CONDITIONAL_IOC_WOULD_REST_ON_BOOK"; + /** + * REMOVAL_REASON_FULLY_FILLED - REMOVAL_REASON_FULLY_FILLED represents a removal of an order that + * was fully filled and should therefore be removed from state. + */ + OrderRemoval_RemovalReason[OrderRemoval_RemovalReason["REMOVAL_REASON_FULLY_FILLED"] = 7] = "REMOVAL_REASON_FULLY_FILLED"; + OrderRemoval_RemovalReason[OrderRemoval_RemovalReason["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(OrderRemoval_RemovalReason = exports.OrderRemoval_RemovalReason || (exports.OrderRemoval_RemovalReason = {})); +exports.OrderRemoval_RemovalReasonSDKType = OrderRemoval_RemovalReason; +function orderRemoval_RemovalReasonFromJSON(object) { + switch (object) { + case 0: + case "REMOVAL_REASON_UNSPECIFIED": + return OrderRemoval_RemovalReason.REMOVAL_REASON_UNSPECIFIED; + case 1: + case "REMOVAL_REASON_UNDERCOLLATERALIZED": + return OrderRemoval_RemovalReason.REMOVAL_REASON_UNDERCOLLATERALIZED; + case 2: + case "REMOVAL_REASON_INVALID_REDUCE_ONLY": + return OrderRemoval_RemovalReason.REMOVAL_REASON_INVALID_REDUCE_ONLY; + case 3: + case "REMOVAL_REASON_POST_ONLY_WOULD_CROSS_MAKER_ORDER": + return OrderRemoval_RemovalReason.REMOVAL_REASON_POST_ONLY_WOULD_CROSS_MAKER_ORDER; + case 4: + case "REMOVAL_REASON_INVALID_SELF_TRADE": + return OrderRemoval_RemovalReason.REMOVAL_REASON_INVALID_SELF_TRADE; + case 5: + case "REMOVAL_REASON_CONDITIONAL_FOK_COULD_NOT_BE_FULLY_FILLED": + return OrderRemoval_RemovalReason.REMOVAL_REASON_CONDITIONAL_FOK_COULD_NOT_BE_FULLY_FILLED; + case 6: + case "REMOVAL_REASON_CONDITIONAL_IOC_WOULD_REST_ON_BOOK": + return OrderRemoval_RemovalReason.REMOVAL_REASON_CONDITIONAL_IOC_WOULD_REST_ON_BOOK; + case 7: + case "REMOVAL_REASON_FULLY_FILLED": + return OrderRemoval_RemovalReason.REMOVAL_REASON_FULLY_FILLED; + case -1: + case "UNRECOGNIZED": + default: + return OrderRemoval_RemovalReason.UNRECOGNIZED; + } +} +exports.orderRemoval_RemovalReasonFromJSON = orderRemoval_RemovalReasonFromJSON; +function orderRemoval_RemovalReasonToJSON(object) { + switch (object) { + case OrderRemoval_RemovalReason.REMOVAL_REASON_UNSPECIFIED: + return "REMOVAL_REASON_UNSPECIFIED"; + case OrderRemoval_RemovalReason.REMOVAL_REASON_UNDERCOLLATERALIZED: + return "REMOVAL_REASON_UNDERCOLLATERALIZED"; + case OrderRemoval_RemovalReason.REMOVAL_REASON_INVALID_REDUCE_ONLY: + return "REMOVAL_REASON_INVALID_REDUCE_ONLY"; + case OrderRemoval_RemovalReason.REMOVAL_REASON_POST_ONLY_WOULD_CROSS_MAKER_ORDER: + return "REMOVAL_REASON_POST_ONLY_WOULD_CROSS_MAKER_ORDER"; + case OrderRemoval_RemovalReason.REMOVAL_REASON_INVALID_SELF_TRADE: + return "REMOVAL_REASON_INVALID_SELF_TRADE"; + case OrderRemoval_RemovalReason.REMOVAL_REASON_CONDITIONAL_FOK_COULD_NOT_BE_FULLY_FILLED: + return "REMOVAL_REASON_CONDITIONAL_FOK_COULD_NOT_BE_FULLY_FILLED"; + case OrderRemoval_RemovalReason.REMOVAL_REASON_CONDITIONAL_IOC_WOULD_REST_ON_BOOK: + return "REMOVAL_REASON_CONDITIONAL_IOC_WOULD_REST_ON_BOOK"; + case OrderRemoval_RemovalReason.REMOVAL_REASON_FULLY_FILLED: + return "REMOVAL_REASON_FULLY_FILLED"; + case OrderRemoval_RemovalReason.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} +exports.orderRemoval_RemovalReasonToJSON = orderRemoval_RemovalReasonToJSON; +function createBaseOrderRemoval() { return { - events: [] + orderId: undefined, + removalReason: 0 }; } -exports.MsgAcknowledgeBridges = { +exports.OrderRemoval = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.events) { - bridge_event_1.BridgeEvent.encode(v, writer.uint32(10).fork()).ldelim(); + if (message.orderId !== undefined) { + order_1.OrderId.encode(message.orderId, writer.uint32(10).fork()).ldelim(); + } + if (message.removalReason !== 0) { + writer.uint32(16).int32(message.removalReason); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgAcknowledgeBridges(); + const message = createBaseOrderRemoval(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.events.push(bridge_event_1.BridgeEvent.decode(reader, reader.uint32())); + message.orderId = order_1.OrderId.decode(reader, reader.uint32()); + break; + case 2: + message.removalReason = reader.int32(); break; default: reader.skipType(tag & 7); @@ -184652,65 +185844,78 @@ exports.MsgAcknowledgeBridges = { }, fromPartial(object) { var _a; - const message = createBaseMsgAcknowledgeBridges(); - message.events = ((_a = object.events) === null || _a === void 0 ? void 0 : _a.map(e => bridge_event_1.BridgeEvent.fromPartial(e))) || []; + const message = createBaseOrderRemoval(); + message.orderId = object.orderId !== undefined && object.orderId !== null ? order_1.OrderId.fromPartial(object.orderId) : undefined; + message.removalReason = (_a = object.removalReason) !== null && _a !== void 0 ? _a : 0; return message; } }; -function createBaseMsgAcknowledgeBridgesResponse() { - return {}; -} -exports.MsgAcknowledgeBridgesResponse = { - encode(_, writer = _m0.Writer.create()) { - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgAcknowledgeBridgesResponse(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromPartial(_) { - const message = createBaseMsgAcknowledgeBridgesResponse(); - return message; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJfcmVtb3ZhbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvY2xvYi9vcmRlcl9yZW1vdmFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFrRDtBQUNsRCx3REFBMEM7QUFFMUMsSUFBWSwwQkEyRFg7QUEzREQsV0FBWSwwQkFBMEI7SUFDcEM7Ozs7T0FJRztJQUNILHVIQUE4QixDQUFBO0lBRTlCOzs7O09BSUc7SUFDSCx1SUFBc0MsQ0FBQTtJQUV0Qzs7Ozs7T0FLRztJQUNILHVJQUFzQyxDQUFBO0lBRXRDOzs7O09BSUc7SUFDSCxtS0FBb0QsQ0FBQTtJQUVwRDs7OztPQUlHO0lBQ0gscUlBQXFDLENBQUE7SUFFckM7Ozs7O09BS0c7SUFDSCxtTEFBNEQsQ0FBQTtJQUU1RDs7Ozs7T0FLRztJQUNILHFLQUFxRCxDQUFBO0lBRXJEOzs7T0FHRztJQUNILHlIQUErQixDQUFBO0lBQy9CLDRGQUFpQixDQUFBO0FBQ25CLENBQUMsRUEzRFcsMEJBQTBCLEdBQTFCLGtDQUEwQixLQUExQixrQ0FBMEIsUUEyRHJDO0FBQ1ksUUFBQSxpQ0FBaUMsR0FBRywwQkFBMEIsQ0FBQztBQUM1RSxTQUFnQixrQ0FBa0MsQ0FBQyxNQUFXO0lBQzVELFFBQVEsTUFBTSxFQUFFO1FBQ2QsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLDRCQUE0QjtZQUMvQixPQUFPLDBCQUEwQixDQUFDLDBCQUEwQixDQUFDO1FBRS9ELEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxvQ0FBb0M7WUFDdkMsT0FBTywwQkFBMEIsQ0FBQyxrQ0FBa0MsQ0FBQztRQUV2RSxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssb0NBQW9DO1lBQ3ZDLE9BQU8sMEJBQTBCLENB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 + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/query.ts": +/*!************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/query.ts ***! + \************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; }; -function createBaseMsgCompleteBridge() { +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.QueryLiquidationsConfigurationResponse = exports.QueryLiquidationsConfigurationRequest = exports.QueryBlockRateLimitConfigurationResponse = exports.QueryBlockRateLimitConfigurationRequest = exports.QueryEquityTierLimitConfigurationResponse = exports.QueryEquityTierLimitConfigurationRequest = exports.MevNodeToNodeCalculationResponse_MevAndVolumePerClob = exports.MevNodeToNodeCalculationResponse = exports.MevNodeToNodeCalculationRequest = exports.QueryClobPairAllResponse = exports.QueryAllClobPairRequest = exports.QueryClobPairResponse = exports.QueryGetClobPairRequest = void 0; +const pagination_1 = __webpack_require__(/*! ../../cosmos/base/query/v1beta1/pagination */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/query/v1beta1/pagination.ts"); +const mev_1 = __webpack_require__(/*! ./mev */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/mev.ts"); +const clob_pair_1 = __webpack_require__(/*! ./clob_pair */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/clob_pair.ts"); +const equity_tier_limit_config_1 = __webpack_require__(/*! ./equity_tier_limit_config */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/equity_tier_limit_config.ts"); +const block_rate_limit_config_1 = __webpack_require__(/*! ./block_rate_limit_config */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/block_rate_limit_config.ts"); +const liquidations_config_1 = __webpack_require__(/*! ./liquidations_config */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/liquidations_config.ts"); +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); +function createBaseQueryGetClobPairRequest() { return { - authority: "", - event: undefined + id: 0 }; } -exports.MsgCompleteBridge = { +exports.QueryGetClobPairRequest = { encode(message, writer = _m0.Writer.create()) { - if (message.authority !== "") { - writer.uint32(10).string(message.authority); - } - if (message.event !== undefined) { - bridge_event_1.BridgeEvent.encode(message.event, writer.uint32(18).fork()).ldelim(); + if (message.id !== 0) { + writer.uint32(8).uint32(message.id); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCompleteBridge(); + const message = createBaseQueryGetClobPairRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.authority = reader.string(); - break; - case 2: - message.event = bridge_event_1.BridgeEvent.decode(reader, reader.uint32()); + message.id = reader.uint32(); break; default: reader.skipType(tag & 7); @@ -184721,66 +185926,32 @@ exports.MsgCompleteBridge = { }, fromPartial(object) { var _a; - const message = createBaseMsgCompleteBridge(); - message.authority = (_a = object.authority) !== null && _a !== void 0 ? _a : ""; - message.event = object.event !== undefined && object.event !== null ? bridge_event_1.BridgeEvent.fromPartial(object.event) : undefined; - return message; - } -}; -function createBaseMsgCompleteBridgeResponse() { - return {}; -} -exports.MsgCompleteBridgeResponse = { - encode(_, writer = _m0.Writer.create()) { - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCompleteBridgeResponse(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromPartial(_) { - const message = createBaseMsgCompleteBridgeResponse(); + const message = createBaseQueryGetClobPairRequest(); + message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0; return message; } }; -function createBaseMsgUpdateEventParams() { +function createBaseQueryClobPairResponse() { return { - authority: "", - params: undefined + clobPair: undefined }; } -exports.MsgUpdateEventParams = { +exports.QueryClobPairResponse = { encode(message, writer = _m0.Writer.create()) { - if (message.authority !== "") { - writer.uint32(10).string(message.authority); - } - if (message.params !== undefined) { - params_1.EventParams.encode(message.params, writer.uint32(18).fork()).ldelim(); + if (message.clobPair !== undefined) { + clob_pair_1.ClobPair.encode(message.clobPair, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateEventParams(); + const message = createBaseQueryClobPairResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.authority = reader.string(); - break; - case 2: - message.params = params_1.EventParams.decode(reader, reader.uint32()); + message.clobPair = clob_pair_1.ClobPair.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -184790,27 +185961,33 @@ exports.MsgUpdateEventParams = { return message; }, fromPartial(object) { - var _a; - const message = createBaseMsgUpdateEventParams(); - message.authority = (_a = object.authority) !== null && _a !== void 0 ? _a : ""; - message.params = object.params !== undefined && object.params !== null ? params_1.EventParams.fromPartial(object.params) : undefined; + const message = createBaseQueryClobPairResponse(); + message.clobPair = object.clobPair !== undefined && object.clobPair !== null ? clob_pair_1.ClobPair.fromPartial(object.clobPair) : undefined; return message; } }; -function createBaseMsgUpdateEventParamsResponse() { - return {}; +function createBaseQueryAllClobPairRequest() { + return { + pagination: undefined + }; } -exports.MsgUpdateEventParamsResponse = { - encode(_, writer = _m0.Writer.create()) { +exports.QueryAllClobPairRequest = { + encode(message, writer = _m0.Writer.create()) { + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); + } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateEventParamsResponse(); + const message = createBaseQueryAllClobPairRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -184818,39 +185995,40 @@ exports.MsgUpdateEventParamsResponse = { } return message; }, - fromPartial(_) { - const message = createBaseMsgUpdateEventParamsResponse(); + fromPartial(object) { + const message = createBaseQueryAllClobPairRequest(); + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; return message; } }; -function createBaseMsgUpdateProposeParams() { +function createBaseQueryClobPairAllResponse() { return { - authority: "", - params: undefined + clobPair: [], + pagination: undefined }; } -exports.MsgUpdateProposeParams = { +exports.QueryClobPairAllResponse = { encode(message, writer = _m0.Writer.create()) { - if (message.authority !== "") { - writer.uint32(10).string(message.authority); + for (const v of message.clobPair) { + clob_pair_1.ClobPair.encode(v, writer.uint32(10).fork()).ldelim(); } - if (message.params !== undefined) { - params_1.ProposeParams.encode(message.params, writer.uint32(18).fork()).ldelim(); + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateProposeParams(); + const message = createBaseQueryClobPairAllResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.authority = reader.string(); + message.clobPair.push(clob_pair_1.ClobPair.decode(reader, reader.uint32())); break; case 2: - message.params = params_1.ProposeParams.decode(reader, reader.uint32()); + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -184861,66 +186039,40 @@ exports.MsgUpdateProposeParams = { }, fromPartial(object) { var _a; - const message = createBaseMsgUpdateProposeParams(); - message.authority = (_a = object.authority) !== null && _a !== void 0 ? _a : ""; - message.params = object.params !== undefined && object.params !== null ? params_1.ProposeParams.fromPartial(object.params) : undefined; - return message; - } -}; -function createBaseMsgUpdateProposeParamsResponse() { - return {}; -} -exports.MsgUpdateProposeParamsResponse = { - encode(_, writer = _m0.Writer.create()) { - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateProposeParamsResponse(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromPartial(_) { - const message = createBaseMsgUpdateProposeParamsResponse(); + const message = createBaseQueryClobPairAllResponse(); + message.clobPair = ((_a = object.clobPair) === null || _a === void 0 ? void 0 : _a.map(e => clob_pair_1.ClobPair.fromPartial(e))) || []; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; return message; } }; -function createBaseMsgUpdateSafetyParams() { +function createBaseMevNodeToNodeCalculationRequest() { return { - authority: "", - params: undefined + blockProposerMatches: undefined, + validatorMevMetrics: undefined }; } -exports.MsgUpdateSafetyParams = { +exports.MevNodeToNodeCalculationRequest = { encode(message, writer = _m0.Writer.create()) { - if (message.authority !== "") { - writer.uint32(10).string(message.authority); + if (message.blockProposerMatches !== undefined) { + mev_1.ValidatorMevMatches.encode(message.blockProposerMatches, writer.uint32(10).fork()).ldelim(); } - if (message.params !== undefined) { - params_1.SafetyParams.encode(message.params, writer.uint32(18).fork()).ldelim(); + if (message.validatorMevMetrics !== undefined) { + mev_1.MevNodeToNodeMetrics.encode(message.validatorMevMetrics, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateSafetyParams(); + const message = createBaseMevNodeToNodeCalculationRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.authority = reader.string(); + message.blockProposerMatches = mev_1.ValidatorMevMatches.decode(reader, reader.uint32()); break; case 2: - message.params = params_1.SafetyParams.decode(reader, reader.uint32()); + message.validatorMevMetrics = mev_1.MevNodeToNodeMetrics.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -184930,27 +186082,34 @@ exports.MsgUpdateSafetyParams = { return message; }, fromPartial(object) { - var _a; - const message = createBaseMsgUpdateSafetyParams(); - message.authority = (_a = object.authority) !== null && _a !== void 0 ? _a : ""; - message.params = object.params !== undefined && object.params !== null ? params_1.SafetyParams.fromPartial(object.params) : undefined; + const message = createBaseMevNodeToNodeCalculationRequest(); + message.blockProposerMatches = object.blockProposerMatches !== undefined && object.blockProposerMatches !== null ? mev_1.ValidatorMevMatches.fromPartial(object.blockProposerMatches) : undefined; + message.validatorMevMetrics = object.validatorMevMetrics !== undefined && object.validatorMevMetrics !== null ? mev_1.MevNodeToNodeMetrics.fromPartial(object.validatorMevMetrics) : undefined; return message; } }; -function createBaseMsgUpdateSafetyParamsResponse() { - return {}; +function createBaseMevNodeToNodeCalculationResponse() { + return { + results: [] + }; } -exports.MsgUpdateSafetyParamsResponse = { - encode(_, writer = _m0.Writer.create()) { +exports.MevNodeToNodeCalculationResponse = { + encode(message, writer = _m0.Writer.create()) { + for (const v of message.results) { + exports.MevNodeToNodeCalculationResponse_MevAndVolumePerClob.encode(v, writer.uint32(10).fork()).ldelim(); + } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateSafetyParamsResponse(); + const message = createBaseMevNodeToNodeCalculationResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.results.push(exports.MevNodeToNodeCalculationResponse_MevAndVolumePerClob.decode(reader, reader.uint32())); + break; default: reader.skipType(tag & 7); break; @@ -184958,84 +186117,48 @@ exports.MsgUpdateSafetyParamsResponse = { } return message; }, - fromPartial(_) { - const message = createBaseMsgUpdateSafetyParamsResponse(); + fromPartial(object) { + var _a; + const message = createBaseMevNodeToNodeCalculationResponse(); + message.results = ((_a = object.results) === null || _a === void 0 ? void 0 : _a.map(e => exports.MevNodeToNodeCalculationResponse_MevAndVolumePerClob.fromPartial(e))) || []; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvYnJpZGdlL3R4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQWlFO0FBQ2pFLHFDQUFtSTtBQUNuSSx3REFBMEM7QUEwRzFDLFNBQVMsK0JBQStCO0lBQ3RDLE9BQU87UUFDTCxNQUFNLEVBQUUsRUFBRTtLQUNYLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxxQkFBcUIsR0FBRztJQUNuQyxNQUFNLENBQUMsT0FBOEIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUM3RSxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDOUIsMEJBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMzRDtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRywrQkFBK0IsRUFBRSxDQUFDO1FBRWxELE9BQU8s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 - -/***/ }), - -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/block_rate_limit_config.ts": -/*!******************************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/block_rate_limit_config.ts ***! - \******************************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.MaxPerNBlocksRateLimit = exports.BlockRateLimitConfiguration = void 0; -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -function createBaseBlockRateLimitConfiguration() { +function createBaseMevNodeToNodeCalculationResponse_MevAndVolumePerClob() { return { - maxShortTermOrdersPerNBlocks: [], - maxStatefulOrdersPerNBlocks: [], - maxShortTermOrderCancellationsPerNBlocks: [] + clobPairId: 0, + mev: 0, + volume: helpers_1.Long.UZERO }; } -exports.BlockRateLimitConfiguration = { +exports.MevNodeToNodeCalculationResponse_MevAndVolumePerClob = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.maxShortTermOrdersPerNBlocks) { - exports.MaxPerNBlocksRateLimit.encode(v, writer.uint32(10).fork()).ldelim(); + if (message.clobPairId !== 0) { + writer.uint32(8).uint32(message.clobPairId); } - for (const v of message.maxStatefulOrdersPerNBlocks) { - exports.MaxPerNBlocksRateLimit.encode(v, writer.uint32(18).fork()).ldelim(); + if (message.mev !== 0) { + writer.uint32(21).float(message.mev); } - for (const v of message.maxShortTermOrderCancellationsPerNBlocks) { - exports.MaxPerNBlocksRateLimit.encode(v, writer.uint32(26).fork()).ldelim(); + if (!message.volume.isZero()) { + writer.uint32(24).uint64(message.volume); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseBlockRateLimitConfiguration(); + const message = createBaseMevNodeToNodeCalculationResponse_MevAndVolumePerClob(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.maxShortTermOrdersPerNBlocks.push(exports.MaxPerNBlocksRateLimit.decode(reader, reader.uint32())); + message.clobPairId = reader.uint32(); break; case 2: - message.maxStatefulOrdersPerNBlocks.push(exports.MaxPerNBlocksRateLimit.decode(reader, reader.uint32())); + message.mev = reader.float(); break; case 3: - message.maxShortTermOrderCancellationsPerNBlocks.push(exports.MaxPerNBlocksRateLimit.decode(reader, reader.uint32())); + message.volume = reader.uint64(); break; default: reader.skipType(tag & 7); @@ -185045,43 +186168,28 @@ exports.BlockRateLimitConfiguration = { return message; }, fromPartial(object) { - var _a, _b, _c; - const message = createBaseBlockRateLimitConfiguration(); - message.maxShortTermOrdersPerNBlocks = ((_a = object.maxShortTermOrdersPerNBlocks) === null || _a === void 0 ? void 0 : _a.map(e => exports.MaxPerNBlocksRateLimit.fromPartial(e))) || []; - message.maxStatefulOrdersPerNBlocks = ((_b = object.maxStatefulOrdersPerNBlocks) === null || _b === void 0 ? void 0 : _b.map(e => exports.MaxPerNBlocksRateLimit.fromPartial(e))) || []; - message.maxShortTermOrderCancellationsPerNBlocks = ((_c = object.maxShortTermOrderCancellationsPerNBlocks) === null || _c === void 0 ? void 0 : _c.map(e => exports.MaxPerNBlocksRateLimit.fromPartial(e))) || []; + var _a, _b; + const message = createBaseMevNodeToNodeCalculationResponse_MevAndVolumePerClob(); + message.clobPairId = (_a = object.clobPairId) !== null && _a !== void 0 ? _a : 0; + message.mev = (_b = object.mev) !== null && _b !== void 0 ? _b : 0; + message.volume = object.volume !== undefined && object.volume !== null ? helpers_1.Long.fromValue(object.volume) : helpers_1.Long.UZERO; return message; } }; -function createBaseMaxPerNBlocksRateLimit() { - return { - numBlocks: 0, - limit: 0 - }; +function createBaseQueryEquityTierLimitConfigurationRequest() { + return {}; } -exports.MaxPerNBlocksRateLimit = { - encode(message, writer = _m0.Writer.create()) { - if (message.numBlocks !== 0) { - writer.uint32(8).uint32(message.numBlocks); - } - if (message.limit !== 0) { - writer.uint32(16).uint32(message.limit); - } +exports.QueryEquityTierLimitConfigurationRequest = { + encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMaxPerNBlocksRateLimit(); + const message = createBaseQueryEquityTierLimitConfigurationRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.numBlocks = reader.uint32(); - break; - case 2: - message.limit = reader.uint32(); - break; default: reader.skipType(tag & 7); break; @@ -185089,152 +186197,32 @@ exports.MaxPerNBlocksRateLimit = { } return message; }, - fromPartial(object) { - var _a, _b; - const message = createBaseMaxPerNBlocksRateLimit(); - message.numBlocks = (_a = object.numBlocks) !== null && _a !== void 0 ? _a : 0; - message.limit = (_b = object.limit) !== null && _b !== void 0 ? _b : 0; + fromPartial(_) { + const message = createBaseQueryEquityTierLimitConfigurationRequest(); return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfcmF0ZV9saW1pdF9jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvY2xvYi9ibG9ja19yYXRlX2xpbWl0X2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdEQUEwQztBQXVEMUMsU0FBUyxxQ0FBcUM7SUFDNUMsT0FBTztRQUNMLDRCQUE0QixFQUFFLEVBQUU7UUFDaEMsMkJBQTJCLEVBQUUsRUFBRTtRQUMvQix3Q0FBd0MsRUFBRSxFQUFFO0tBQzdDLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSwyQkFBMkIsR0FBRztJQUN6QyxNQUFNLENBQUMsT0FBb0MsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNuRixLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyw0QkFBNEIsRUFBRTtZQUNwRCw4QkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN0RTtRQUVELEtBQUssTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLDJCQUEyQixFQUFFO1lBQ25ELDhCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFFLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3RFO1FBRUQsS0FBSyxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsd0NBQXdDLEVBQUU7WUFDaEUsOEJBQXNCLENBQUMsTUFBTSxDQUFDLENBQUUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxD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 - -/***/ }), - -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/clob_pair.ts": -/*!****************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/clob_pair.ts ***! - \****************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ClobPair = exports.SpotClobMetadata = exports.PerpetualClobMetadata = exports.clobPair_StatusToJSON = exports.clobPair_StatusFromJSON = exports.ClobPair_StatusSDKType = exports.ClobPair_Status = void 0; -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); -/** Status of the CLOB. */ -var ClobPair_Status; -(function (ClobPair_Status) { - /** STATUS_UNSPECIFIED - Default value. This value is invalid and unused. */ - ClobPair_Status[ClobPair_Status["STATUS_UNSPECIFIED"] = 0] = "STATUS_UNSPECIFIED"; - /** STATUS_ACTIVE - STATUS_ACTIVE represents an active clob pair. */ - ClobPair_Status[ClobPair_Status["STATUS_ACTIVE"] = 1] = "STATUS_ACTIVE"; - /** - * STATUS_PAUSED - STATUS_PAUSED behavior is unfinalized. - * TODO(DEC-600): update this documentation. - */ - ClobPair_Status[ClobPair_Status["STATUS_PAUSED"] = 2] = "STATUS_PAUSED"; - /** - * STATUS_CANCEL_ONLY - STATUS_CANCEL_ONLY behavior is unfinalized. - * TODO(DEC-600): update this documentation. - */ - ClobPair_Status[ClobPair_Status["STATUS_CANCEL_ONLY"] = 3] = "STATUS_CANCEL_ONLY"; - /** - * STATUS_POST_ONLY - STATUS_POST_ONLY behavior is unfinalized. - * TODO(DEC-600): update this documentation. - */ - ClobPair_Status[ClobPair_Status["STATUS_POST_ONLY"] = 4] = "STATUS_POST_ONLY"; - /** - * STATUS_INITIALIZING - STATUS_INITIALIZING represents a newly-added clob pair. - * Clob pairs in this state only accept orders which are - * both short-term and post-only. - */ - ClobPair_Status[ClobPair_Status["STATUS_INITIALIZING"] = 5] = "STATUS_INITIALIZING"; - ClobPair_Status[ClobPair_Status["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(ClobPair_Status = exports.ClobPair_Status || (exports.ClobPair_Status = {})); -exports.ClobPair_StatusSDKType = ClobPair_Status; -function clobPair_StatusFromJSON(object) { - switch (object) { - case 0: - case "STATUS_UNSPECIFIED": - return ClobPair_Status.STATUS_UNSPECIFIED; - case 1: - case "STATUS_ACTIVE": - return ClobPair_Status.STATUS_ACTIVE; - case 2: - case "STATUS_PAUSED": - return ClobPair_Status.STATUS_PAUSED; - case 3: - case "STATUS_CANCEL_ONLY": - return ClobPair_Status.STATUS_CANCEL_ONLY; - case 4: - case "STATUS_POST_ONLY": - return ClobPair_Status.STATUS_POST_ONLY; - case 5: - case "STATUS_INITIALIZING": - return ClobPair_Status.STATUS_INITIALIZING; - case -1: - case "UNRECOGNIZED": - default: - return ClobPair_Status.UNRECOGNIZED; - } -} -exports.clobPair_StatusFromJSON = clobPair_StatusFromJSON; -function clobPair_StatusToJSON(object) { - switch (object) { - case ClobPair_Status.STATUS_UNSPECIFIED: - return "STATUS_UNSPECIFIED"; - case ClobPair_Status.STATUS_ACTIVE: - return "STATUS_ACTIVE"; - case ClobPair_Status.STATUS_PAUSED: - return "STATUS_PAUSED"; - case ClobPair_Status.STATUS_CANCEL_ONLY: - return "STATUS_CANCEL_ONLY"; - case ClobPair_Status.STATUS_POST_ONLY: - return "STATUS_POST_ONLY"; - case ClobPair_Status.STATUS_INITIALIZING: - return "STATUS_INITIALIZING"; - case ClobPair_Status.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -exports.clobPair_StatusToJSON = clobPair_StatusToJSON; -function createBasePerpetualClobMetadata() { +function createBaseQueryEquityTierLimitConfigurationResponse() { return { - perpetualId: 0 + equityTierLimitConfig: undefined }; } -exports.PerpetualClobMetadata = { +exports.QueryEquityTierLimitConfigurationResponse = { encode(message, writer = _m0.Writer.create()) { - if (message.perpetualId !== 0) { - writer.uint32(8).uint32(message.perpetualId); + if (message.equityTierLimitConfig !== undefined) { + equity_tier_limit_config_1.EquityTierLimitConfiguration.encode(message.equityTierLimitConfig, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePerpetualClobMetadata(); + const message = createBaseQueryEquityTierLimitConfigurationResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.perpetualId = reader.uint32(); + message.equityTierLimitConfig = equity_tier_limit_config_1.EquityTierLimitConfiguration.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -185244,41 +186232,25 @@ exports.PerpetualClobMetadata = { return message; }, fromPartial(object) { - var _a; - const message = createBasePerpetualClobMetadata(); - message.perpetualId = (_a = object.perpetualId) !== null && _a !== void 0 ? _a : 0; + const message = createBaseQueryEquityTierLimitConfigurationResponse(); + message.equityTierLimitConfig = object.equityTierLimitConfig !== undefined && object.equityTierLimitConfig !== null ? equity_tier_limit_config_1.EquityTierLimitConfiguration.fromPartial(object.equityTierLimitConfig) : undefined; return message; } }; -function createBaseSpotClobMetadata() { - return { - baseAssetId: 0, - quoteAssetId: 0 - }; +function createBaseQueryBlockRateLimitConfigurationRequest() { + return {}; } -exports.SpotClobMetadata = { - encode(message, writer = _m0.Writer.create()) { - if (message.baseAssetId !== 0) { - writer.uint32(8).uint32(message.baseAssetId); - } - if (message.quoteAssetId !== 0) { - writer.uint32(16).uint32(message.quoteAssetId); - } +exports.QueryBlockRateLimitConfigurationRequest = { + encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSpotClobMetadata(); + const message = createBaseQueryBlockRateLimitConfigurationRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.baseAssetId = reader.uint32(); - break; - case 2: - message.quoteAssetId = reader.uint32(); - break; default: reader.skipType(tag & 7); break; @@ -185286,77 +186258,32 @@ exports.SpotClobMetadata = { } return message; }, - fromPartial(object) { - var _a, _b; - const message = createBaseSpotClobMetadata(); - message.baseAssetId = (_a = object.baseAssetId) !== null && _a !== void 0 ? _a : 0; - message.quoteAssetId = (_b = object.quoteAssetId) !== null && _b !== void 0 ? _b : 0; + fromPartial(_) { + const message = createBaseQueryBlockRateLimitConfigurationRequest(); return message; } }; -function createBaseClobPair() { +function createBaseQueryBlockRateLimitConfigurationResponse() { return { - id: 0, - perpetualClobMetadata: undefined, - spotClobMetadata: undefined, - stepBaseQuantums: helpers_1.Long.UZERO, - subticksPerTick: 0, - quantumConversionExponent: 0, - status: 0 + blockRateLimitConfig: undefined }; } -exports.ClobPair = { +exports.QueryBlockRateLimitConfigurationResponse = { encode(message, writer = _m0.Writer.create()) { - if (message.id !== 0) { - writer.uint32(8).uint32(message.id); - } - if (message.perpetualClobMetadata !== undefined) { - exports.PerpetualClobMetadata.encode(message.perpetualClobMetadata, writer.uint32(18).fork()).ldelim(); - } - if (message.spotClobMetadata !== undefined) { - exports.SpotClobMetadata.encode(message.spotClobMetadata, writer.uint32(26).fork()).ldelim(); - } - if (!message.stepBaseQuantums.isZero()) { - writer.uint32(32).uint64(message.stepBaseQuantums); - } - if (message.subticksPerTick !== 0) { - writer.uint32(40).uint32(message.subticksPerTick); - } - if (message.quantumConversionExponent !== 0) { - writer.uint32(48).sint32(message.quantumConversionExponent); - } - if (message.status !== 0) { - writer.uint32(56).int32(message.status); + if (message.blockRateLimitConfig !== undefined) { + block_rate_limit_config_1.BlockRateLimitConfiguration.encode(message.blockRateLimitConfig, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseClobPair(); + const message = createBaseQueryBlockRateLimitConfigurationResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.id = reader.uint32(); - break; - case 2: - message.perpetualClobMetadata = exports.PerpetualClobMetadata.decode(reader, reader.uint32()); - break; - case 3: - message.spotClobMetadata = exports.SpotClobMetadata.decode(reader, reader.uint32()); - break; - case 4: - message.stepBaseQuantums = reader.uint64(); - break; - case 5: - message.subticksPerTick = reader.uint32(); - break; - case 6: - message.quantumConversionExponent = reader.sint32(); - break; - case 7: - message.status = reader.int32(); + message.blockRateLimitConfig = block_rate_limit_config_1.BlockRateLimitConfiguration.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -185366,85 +186293,25 @@ exports.ClobPair = { return message; }, fromPartial(object) { - var _a, _b, _c, _d; - const message = createBaseClobPair(); - message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0; - message.perpetualClobMetadata = object.perpetualClobMetadata !== undefined && object.perpetualClobMetadata !== null ? exports.PerpetualClobMetadata.fromPartial(object.perpetualClobMetadata) : undefined; - message.spotClobMetadata = object.spotClobMetadata !== undefined && object.spotClobMetadata !== null ? exports.SpotClobMetadata.fromPartial(object.spotClobMetadata) : undefined; - message.stepBaseQuantums = object.stepBaseQuantums !== undefined && object.stepBaseQuantums !== null ? helpers_1.Long.fromValue(object.stepBaseQuantums) : helpers_1.Long.UZERO; - message.subticksPerTick = (_b = object.subticksPerTick) !== null && _b !== void 0 ? _b : 0; - message.quantumConversionExponent = (_c = object.quantumConversionExponent) !== null && _c !== void 0 ? _c : 0; - message.status = (_d = object.status) !== null && _d !== void 0 ? _d : 0; + const message = createBaseQueryBlockRateLimitConfigurationResponse(); + message.blockRateLimitConfig = object.blockRateLimitConfig !== undefined && object.blockRateLimitConfig !== null ? block_rate_limit_config_1.BlockRateLimitConfiguration.fromPartial(object.blockRateLimitConfig) : undefined; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvYl9wYWlyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vZHlkeHByb3RvY29sL2Nsb2IvY2xvYl9wYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0RBQTBDO0FBQzFDLDJDQUFrRDtBQUNsRCwwQkFBMEI7QUFFMUIsSUFBWSxlQWdDWDtBQWhDRCxXQUFZLGVBQWU7SUFDekIsNEVBQTRFO0lBQzVFLGlGQUFzQixDQUFBO0lBRXRCLG9FQUFvRTtJQUNwRSx1RUFBaUIsQ0FBQTtJQUVqQjs7O09BR0c7SUFDSCx1RUFBaUIsQ0FBQTtJQUVqQjs7O09BR0c7SUFDSCxpRkFBc0IsQ0FBQTtJQUV0Qjs7O09BR0c7SUFDSCw2RUFBb0IsQ0FBQTtJQUVwQjs7OztPQUlHO0lBQ0gsbUZBQXVCLENBQUE7SUFDdkIsc0VBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQWhDVyxlQUFlLEdBQWYsdUJBQWUsS0FBZix1QkFBZSxRQWdDMUI7QUFDWSxRQUFBLHNCQUFzQixHQUFHLGVBQWUsQ0FBQztBQUN0RCxTQUFnQix1QkFBdUIsQ0FBQyxNQUFXO0lBQ2pELFFBQVEsTUFBTSxFQUFFO1FBQ2QsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLG9CQUFvQjtZQUN2QixPQUFPLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQztRQUU1QyxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssZUFBZTtZQUNsQixPQUFPLGVBQWUsQ0FBQyxhQUFhLENBQUM7UUFFdkMsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLGVBQWU7WUFDbEIsT0FBTyxlQUFlLENBQUMsYUFBYSxDQUFDO1FBRXZDLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxvQkFBb0I7WUFDdkIsT0FBTyxlQUFlLENBQUMsa0JBQWtCLENBQUM7UUFF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 - -/***/ }), - -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/equity_tier_limit_config.ts": -/*!*******************************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/equity_tier_limit_config.ts ***! - \*******************************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.EquityTierLimit = exports.EquityTierLimitConfiguration = void 0; -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -function createBaseEquityTierLimitConfiguration() { - return { - shortTermOrderEquityTiers: [], - statefulOrderEquityTiers: [] - }; +function createBaseQueryLiquidationsConfigurationRequest() { + return {}; } -exports.EquityTierLimitConfiguration = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.shortTermOrderEquityTiers) { - exports.EquityTierLimit.encode(v, writer.uint32(10).fork()).ldelim(); - } - for (const v of message.statefulOrderEquityTiers) { - exports.EquityTierLimit.encode(v, writer.uint32(18).fork()).ldelim(); - } +exports.QueryLiquidationsConfigurationRequest = { + encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEquityTierLimitConfiguration(); + const message = createBaseQueryLiquidationsConfigurationRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.shortTermOrderEquityTiers.push(exports.EquityTierLimit.decode(reader, reader.uint32())); - break; - case 2: - message.statefulOrderEquityTiers.push(exports.EquityTierLimit.decode(reader, reader.uint32())); - break; default: reader.skipType(tag & 7); break; @@ -185452,42 +186319,32 @@ exports.EquityTierLimitConfiguration = { } return message; }, - fromPartial(object) { - var _a, _b; - const message = createBaseEquityTierLimitConfiguration(); - message.shortTermOrderEquityTiers = ((_a = object.shortTermOrderEquityTiers) === null || _a === void 0 ? void 0 : _a.map(e => exports.EquityTierLimit.fromPartial(e))) || []; - message.statefulOrderEquityTiers = ((_b = object.statefulOrderEquityTiers) === null || _b === void 0 ? void 0 : _b.map(e => exports.EquityTierLimit.fromPartial(e))) || []; + fromPartial(_) { + const message = createBaseQueryLiquidationsConfigurationRequest(); return message; } }; -function createBaseEquityTierLimit() { +function createBaseQueryLiquidationsConfigurationResponse() { return { - usdTncRequired: new Uint8Array(), - limit: 0 + liquidationsConfig: undefined }; } -exports.EquityTierLimit = { +exports.QueryLiquidationsConfigurationResponse = { encode(message, writer = _m0.Writer.create()) { - if (message.usdTncRequired.length !== 0) { - writer.uint32(10).bytes(message.usdTncRequired); - } - if (message.limit !== 0) { - writer.uint32(16).uint32(message.limit); + if (message.liquidationsConfig !== undefined) { + liquidations_config_1.LiquidationsConfig.encode(message.liquidationsConfig, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseEquityTierLimit(); + const message = createBaseQueryLiquidationsConfigurationResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.usdTncRequired = reader.bytes(); - break; - case 2: - message.limit = reader.uint32(); + message.liquidationsConfig = liquidations_config_1.LiquidationsConfig.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -185497,21 +186354,19 @@ exports.EquityTierLimit = { return message; }, fromPartial(object) { - var _a, _b; - const message = createBaseEquityTierLimit(); - message.usdTncRequired = (_a = object.usdTncRequired) !== null && _a !== void 0 ? _a : new Uint8Array(); - message.limit = (_b = object.limit) !== null && _b !== void 0 ? _b : 0; + const message = createBaseQueryLiquidationsConfigurationResponse(); + message.liquidationsConfig = object.liquidationsConfig !== undefined && object.liquidationsConfig !== null ? liquidations_config_1.LiquidationsConfig.fromPartial(object.liquidationsConfig) : undefined; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXF1aXR5X3RpZXJfbGltaXRfY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vZHlkeHByb3RvY29sL2Nsb2IvZXF1aXR5X3RpZXJfbGltaXRfY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0RBQTBDO0FBNkMxQyxTQUFTLHNDQUFzQztJQUM3QyxPQUFPO1FBQ0wseUJBQXlCLEVBQUUsRUFBRTtRQUM3Qix3QkFBd0IsRUFBRSxFQUFFO0tBQzdCLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSw0QkFBNEIsR0FBRztJQUMxQyxNQUFNLENBQUMsT0FBcUMsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNwRixLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyx5QkFBeUIsRUFBRTtZQUNqRCx1QkFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFFLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQy9EO1FBRUQsS0FBSyxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsd0JBQXdCLEVBQUU7WUFDaEQsdUJBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMvRDtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxD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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvY2xvYi9xdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJFQUFnSTtBQUNoSSwrQkFBMkg7QUFDM0gsMkNBQXdEO0FBQ3hELHlFQUErRztBQUMvRyx1RUFBNEc7QUFDNUcsK0RBQXNGO0FBQ3RGLHdEQUEwQztBQUMxQywyQ0FBa0Q7QUF5TGxELFNBQVMsaUNBQWlDO0lBQ3hDLE9BQU87UUFDTCxFQUFFLEVBQUUsQ0FBQztLQUNOLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSx1QkFBdUIsR0FBRztJQUNyQyxNQUFNLENBQUMsT0FBZ0MsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUMvRSxJQUFJLE9BQU8sQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNyQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8s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 /***/ }), -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/liquidations_config.ts": -/*!**************************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/liquidations_config.ts ***! - \**************************************************************************************************/ +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/tx.ts": +/*!*********************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/tx.ts ***! + \*********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -185540,51 +186395,43 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.FillablePriceConfig = exports.SubaccountBlockLimits = exports.PositionBlockLimits = exports.LiquidationsConfig = void 0; +exports.MsgUpdateLiquidationsConfigResponse = exports.MsgUpdateLiquidationsConfig = exports.MsgUpdateBlockRateLimitConfigurationResponse = exports.MsgUpdateBlockRateLimitConfiguration = exports.MsgUpdateEquityTierLimitConfigurationResponse = exports.MsgUpdateEquityTierLimitConfiguration = exports.OperationRaw = exports.MsgUpdateClobPairResponse = exports.MsgUpdateClobPair = exports.MsgCancelOrderResponse = exports.MsgCancelOrder = exports.MsgPlaceOrderResponse = exports.MsgPlaceOrder = exports.MsgProposedOperationsResponse = exports.MsgProposedOperations = exports.MsgCreateClobPairResponse = exports.MsgCreateClobPair = void 0; +const order_1 = __webpack_require__(/*! ./order */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order.ts"); +const clob_pair_1 = __webpack_require__(/*! ./clob_pair */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/clob_pair.ts"); +const equity_tier_limit_config_1 = __webpack_require__(/*! ./equity_tier_limit_config */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/equity_tier_limit_config.ts"); +const block_rate_limit_config_1 = __webpack_require__(/*! ./block_rate_limit_config */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/block_rate_limit_config.ts"); +const liquidations_config_1 = __webpack_require__(/*! ./liquidations_config */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/liquidations_config.ts"); +const matches_1 = __webpack_require__(/*! ./matches */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/matches.ts"); +const order_removals_1 = __webpack_require__(/*! ./order_removals */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order_removals.ts"); const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); -function createBaseLiquidationsConfig() { +function createBaseMsgCreateClobPair() { return { - maxLiquidationFeePpm: 0, - positionBlockLimits: undefined, - subaccountBlockLimits: undefined, - fillablePriceConfig: undefined + authority: "", + clobPair: undefined }; } -exports.LiquidationsConfig = { +exports.MsgCreateClobPair = { encode(message, writer = _m0.Writer.create()) { - if (message.maxLiquidationFeePpm !== 0) { - writer.uint32(8).uint32(message.maxLiquidationFeePpm); - } - if (message.positionBlockLimits !== undefined) { - exports.PositionBlockLimits.encode(message.positionBlockLimits, writer.uint32(18).fork()).ldelim(); - } - if (message.subaccountBlockLimits !== undefined) { - exports.SubaccountBlockLimits.encode(message.subaccountBlockLimits, writer.uint32(26).fork()).ldelim(); + if (message.authority !== "") { + writer.uint32(10).string(message.authority); } - if (message.fillablePriceConfig !== undefined) { - exports.FillablePriceConfig.encode(message.fillablePriceConfig, writer.uint32(34).fork()).ldelim(); + if (message.clobPair !== undefined) { + clob_pair_1.ClobPair.encode(message.clobPair, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseLiquidationsConfig(); + const message = createBaseMsgCreateClobPair(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.maxLiquidationFeePpm = reader.uint32(); + message.authority = reader.string(); break; case 2: - message.positionBlockLimits = exports.PositionBlockLimits.decode(reader, reader.uint32()); - break; - case 3: - message.subaccountBlockLimits = exports.SubaccountBlockLimits.decode(reader, reader.uint32()); - break; - case 4: - message.fillablePriceConfig = exports.FillablePriceConfig.decode(reader, reader.uint32()); + message.clobPair = clob_pair_1.ClobPair.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -185595,42 +186442,59 @@ exports.LiquidationsConfig = { }, fromPartial(object) { var _a; - const message = createBaseLiquidationsConfig(); - message.maxLiquidationFeePpm = (_a = object.maxLiquidationFeePpm) !== null && _a !== void 0 ? _a : 0; - message.positionBlockLimits = object.positionBlockLimits !== undefined && object.positionBlockLimits !== null ? exports.PositionBlockLimits.fromPartial(object.positionBlockLimits) : undefined; - message.subaccountBlockLimits = object.subaccountBlockLimits !== undefined && object.subaccountBlockLimits !== null ? exports.SubaccountBlockLimits.fromPartial(object.subaccountBlockLimits) : undefined; - message.fillablePriceConfig = object.fillablePriceConfig !== undefined && object.fillablePriceConfig !== null ? exports.FillablePriceConfig.fromPartial(object.fillablePriceConfig) : undefined; + const message = createBaseMsgCreateClobPair(); + message.authority = (_a = object.authority) !== null && _a !== void 0 ? _a : ""; + message.clobPair = object.clobPair !== undefined && object.clobPair !== null ? clob_pair_1.ClobPair.fromPartial(object.clobPair) : undefined; return message; } }; -function createBasePositionBlockLimits() { +function createBaseMsgCreateClobPairResponse() { + return {}; +} +exports.MsgCreateClobPairResponse = { + encode(_, writer = _m0.Writer.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgCreateClobPairResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(_) { + const message = createBaseMsgCreateClobPairResponse(); + return message; + } +}; +function createBaseMsgProposedOperations() { return { - minPositionNotionalLiquidated: helpers_1.Long.UZERO, - maxPositionPortionLiquidatedPpm: 0 + operationsQueue: [] }; } -exports.PositionBlockLimits = { +exports.MsgProposedOperations = { encode(message, writer = _m0.Writer.create()) { - if (!message.minPositionNotionalLiquidated.isZero()) { - writer.uint32(8).uint64(message.minPositionNotionalLiquidated); - } - if (message.maxPositionPortionLiquidatedPpm !== 0) { - writer.uint32(16).uint32(message.maxPositionPortionLiquidatedPpm); + for (const v of message.operationsQueue) { + exports.OperationRaw.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePositionBlockLimits(); + const message = createBaseMsgProposedOperations(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.minPositionNotionalLiquidated = reader.uint64(); - break; - case 2: - message.maxPositionPortionLiquidatedPpm = reader.uint32(); + message.operationsQueue.push(exports.OperationRaw.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -185641,41 +186505,25 @@ exports.PositionBlockLimits = { }, fromPartial(object) { var _a; - const message = createBasePositionBlockLimits(); - message.minPositionNotionalLiquidated = object.minPositionNotionalLiquidated !== undefined && object.minPositionNotionalLiquidated !== null ? helpers_1.Long.fromValue(object.minPositionNotionalLiquidated) : helpers_1.Long.UZERO; - message.maxPositionPortionLiquidatedPpm = (_a = object.maxPositionPortionLiquidatedPpm) !== null && _a !== void 0 ? _a : 0; + const message = createBaseMsgProposedOperations(); + message.operationsQueue = ((_a = object.operationsQueue) === null || _a === void 0 ? void 0 : _a.map(e => exports.OperationRaw.fromPartial(e))) || []; return message; } }; -function createBaseSubaccountBlockLimits() { - return { - maxNotionalLiquidated: helpers_1.Long.UZERO, - maxQuantumsInsuranceLost: helpers_1.Long.UZERO - }; +function createBaseMsgProposedOperationsResponse() { + return {}; } -exports.SubaccountBlockLimits = { - encode(message, writer = _m0.Writer.create()) { - if (!message.maxNotionalLiquidated.isZero()) { - writer.uint32(8).uint64(message.maxNotionalLiquidated); - } - if (!message.maxQuantumsInsuranceLost.isZero()) { - writer.uint32(16).uint64(message.maxQuantumsInsuranceLost); - } +exports.MsgProposedOperationsResponse = { + encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseSubaccountBlockLimits(); + const message = createBaseMsgProposedOperationsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.maxNotionalLiquidated = reader.uint64(); - break; - case 2: - message.maxQuantumsInsuranceLost = reader.uint64(); - break; default: reader.skipType(tag & 7); break; @@ -185683,41 +186531,32 @@ exports.SubaccountBlockLimits = { } return message; }, - fromPartial(object) { - const message = createBaseSubaccountBlockLimits(); - message.maxNotionalLiquidated = object.maxNotionalLiquidated !== undefined && object.maxNotionalLiquidated !== null ? helpers_1.Long.fromValue(object.maxNotionalLiquidated) : helpers_1.Long.UZERO; - message.maxQuantumsInsuranceLost = object.maxQuantumsInsuranceLost !== undefined && object.maxQuantumsInsuranceLost !== null ? helpers_1.Long.fromValue(object.maxQuantumsInsuranceLost) : helpers_1.Long.UZERO; + fromPartial(_) { + const message = createBaseMsgProposedOperationsResponse(); return message; } }; -function createBaseFillablePriceConfig() { +function createBaseMsgPlaceOrder() { return { - bankruptcyAdjustmentPpm: 0, - spreadToMaintenanceMarginRatioPpm: 0 + order: undefined }; } -exports.FillablePriceConfig = { +exports.MsgPlaceOrder = { encode(message, writer = _m0.Writer.create()) { - if (message.bankruptcyAdjustmentPpm !== 0) { - writer.uint32(8).uint32(message.bankruptcyAdjustmentPpm); - } - if (message.spreadToMaintenanceMarginRatioPpm !== 0) { - writer.uint32(16).uint32(message.spreadToMaintenanceMarginRatioPpm); + if (message.order !== undefined) { + order_1.Order.encode(message.order, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseFillablePriceConfig(); + const message = createBaseMsgPlaceOrder(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.bankruptcyAdjustmentPpm = reader.uint32(); - break; - case 2: - message.spreadToMaintenanceMarginRatioPpm = reader.uint32(); + message.order = order_1.Order.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -185727,89 +186566,72 @@ exports.FillablePriceConfig = { return message; }, fromPartial(object) { - var _a, _b; - const message = createBaseFillablePriceConfig(); - message.bankruptcyAdjustmentPpm = (_a = object.bankruptcyAdjustmentPpm) !== null && _a !== void 0 ? _a : 0; - message.spreadToMaintenanceMarginRatioPpm = (_b = object.spreadToMaintenanceMarginRatioPpm) !== null && _b !== void 0 ? _b : 0; + const message = createBaseMsgPlaceOrder(); + message.order = object.order !== undefined && object.order !== null ? order_1.Order.fromPartial(object.order) : undefined; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlxdWlkYXRpb25zX2NvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZHlkeHByb3RvY29sL3Y0LXByb3RvL3NyYy9jb2RlZ2VuL2R5ZHhwcm90b2NvbC9jbG9iL2xpcXVpZGF0aW9uc19jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3REFBMEM7QUFDMUMsMkNBQWtEO0FBc0hsRCxTQUFTLDRCQUE0QjtJQUNuQyxPQUFPO1FBQ0wsb0JBQW9CLEVBQUUsQ0FBQztRQUN2QixtQkFBbUIsRUFBRSxTQUFTO1FBQzlCLHFCQUFxQixFQUFFLFNBQVM7UUFDaEMsbUJBQW1CLEVBQUUsU0FBUztLQUMvQixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsa0JBQWtCLEdBQUc7SUFDaEMsTUFBTSxDQUFDLE9BQTJCLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDMUUsSUFBSSxPQUFPLENBQUMsb0JBQW9CLEtBQUssQ0FBQyxFQUFFO1lBQ3RDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsSUFBSSxPQUFPLENBQUMsbUJBQW1CLEtBQUssU0FBUyxFQUFFO1lBQzdDLDJCQUFtQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzVGO1FBRUQsSUFBSSxPQUFPLENBQUMscUJBQXFCLEtBQUssU0FBUyxFQUFFO1lBQy9DLDZCQUFxQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFF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 - -/***/ }), - -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/matches.ts": -/*!**************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/matches.ts ***! - \**************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; +function createBaseMsgPlaceOrderResponse() { + return {}; +} +exports.MsgPlaceOrderResponse = { + encode(_, writer = _m0.Writer.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgPlaceOrderResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(_) { + const message = createBaseMsgPlaceOrderResponse(); + return message; } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; }; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.MatchPerpetualDeleveraging_Fill = exports.MatchPerpetualDeleveraging = exports.MatchPerpetualLiquidation = exports.MatchOrders = exports.MakerFill = exports.ClobMatch = void 0; -const order_1 = __webpack_require__(/*! ./order */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order.ts"); -const subaccount_1 = __webpack_require__(/*! ../subaccounts/subaccount */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/subaccount.ts"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); -function createBaseClobMatch() { +function createBaseMsgCancelOrder() { return { - matchOrders: undefined, - matchPerpetualLiquidation: undefined, - matchPerpetualDeleveraging: undefined + orderId: undefined, + goodTilBlock: undefined, + goodTilBlockTime: undefined }; } -exports.ClobMatch = { +exports.MsgCancelOrder = { encode(message, writer = _m0.Writer.create()) { - if (message.matchOrders !== undefined) { - exports.MatchOrders.encode(message.matchOrders, writer.uint32(10).fork()).ldelim(); + if (message.orderId !== undefined) { + order_1.OrderId.encode(message.orderId, writer.uint32(10).fork()).ldelim(); } - if (message.matchPerpetualLiquidation !== undefined) { - exports.MatchPerpetualLiquidation.encode(message.matchPerpetualLiquidation, writer.uint32(18).fork()).ldelim(); + if (message.goodTilBlock !== undefined) { + writer.uint32(16).uint32(message.goodTilBlock); } - if (message.matchPerpetualDeleveraging !== undefined) { - exports.MatchPerpetualDeleveraging.encode(message.matchPerpetualDeleveraging, writer.uint32(26).fork()).ldelim(); + if (message.goodTilBlockTime !== undefined) { + writer.uint32(29).fixed32(message.goodTilBlockTime); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseClobMatch(); + const message = createBaseMsgCancelOrder(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.matchOrders = exports.MatchOrders.decode(reader, reader.uint32()); + message.orderId = order_1.OrderId.decode(reader, reader.uint32()); break; case 2: - message.matchPerpetualLiquidation = exports.MatchPerpetualLiquidation.decode(reader, reader.uint32()); + message.goodTilBlock = reader.uint32(); break; case 3: - message.matchPerpetualDeleveraging = exports.MatchPerpetualDeleveraging.decode(reader, reader.uint32()); + message.goodTilBlockTime = reader.fixed32(); break; default: reader.skipType(tag & 7); @@ -185819,42 +186641,28 @@ exports.ClobMatch = { return message; }, fromPartial(object) { - const message = createBaseClobMatch(); - message.matchOrders = object.matchOrders !== undefined && object.matchOrders !== null ? exports.MatchOrders.fromPartial(object.matchOrders) : undefined; - message.matchPerpetualLiquidation = object.matchPerpetualLiquidation !== undefined && object.matchPerpetualLiquidation !== null ? exports.MatchPerpetualLiquidation.fromPartial(object.matchPerpetualLiquidation) : undefined; - message.matchPerpetualDeleveraging = object.matchPerpetualDeleveraging !== undefined && object.matchPerpetualDeleveraging !== null ? exports.MatchPerpetualDeleveraging.fromPartial(object.matchPerpetualDeleveraging) : undefined; + var _a, _b; + const message = createBaseMsgCancelOrder(); + message.orderId = object.orderId !== undefined && object.orderId !== null ? order_1.OrderId.fromPartial(object.orderId) : undefined; + message.goodTilBlock = (_a = object.goodTilBlock) !== null && _a !== void 0 ? _a : undefined; + message.goodTilBlockTime = (_b = object.goodTilBlockTime) !== null && _b !== void 0 ? _b : undefined; return message; } }; -function createBaseMakerFill() { - return { - fillAmount: helpers_1.Long.UZERO, - makerOrderId: undefined - }; +function createBaseMsgCancelOrderResponse() { + return {}; } -exports.MakerFill = { - encode(message, writer = _m0.Writer.create()) { - if (!message.fillAmount.isZero()) { - writer.uint32(8).uint64(message.fillAmount); - } - if (message.makerOrderId !== undefined) { - order_1.OrderId.encode(message.makerOrderId, writer.uint32(18).fork()).ldelim(); - } +exports.MsgCancelOrderResponse = { + encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMakerFill(); + const message = createBaseMsgCancelOrderResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.fillAmount = reader.uint64(); - break; - case 2: - message.makerOrderId = order_1.OrderId.decode(reader, reader.uint32()); - break; default: reader.skipType(tag & 7); break; @@ -185862,41 +186670,39 @@ exports.MakerFill = { } return message; }, - fromPartial(object) { - const message = createBaseMakerFill(); - message.fillAmount = object.fillAmount !== undefined && object.fillAmount !== null ? helpers_1.Long.fromValue(object.fillAmount) : helpers_1.Long.UZERO; - message.makerOrderId = object.makerOrderId !== undefined && object.makerOrderId !== null ? order_1.OrderId.fromPartial(object.makerOrderId) : undefined; + fromPartial(_) { + const message = createBaseMsgCancelOrderResponse(); return message; } }; -function createBaseMatchOrders() { +function createBaseMsgUpdateClobPair() { return { - takerOrderId: undefined, - fills: [] + authority: "", + clobPair: undefined }; } -exports.MatchOrders = { +exports.MsgUpdateClobPair = { encode(message, writer = _m0.Writer.create()) { - if (message.takerOrderId !== undefined) { - order_1.OrderId.encode(message.takerOrderId, writer.uint32(10).fork()).ldelim(); + if (message.authority !== "") { + writer.uint32(10).string(message.authority); } - for (const v of message.fills) { - exports.MakerFill.encode(v, writer.uint32(18).fork()).ldelim(); + if (message.clobPair !== undefined) { + clob_pair_1.ClobPair.encode(message.clobPair, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMatchOrders(); + const message = createBaseMsgUpdateClobPair(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.takerOrderId = order_1.OrderId.decode(reader, reader.uint32()); + message.authority = reader.string(); break; case 2: - message.fills.push(exports.MakerFill.decode(reader, reader.uint32())); + message.clobPair = clob_pair_1.ClobPair.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -185907,69 +186713,26 @@ exports.MatchOrders = { }, fromPartial(object) { var _a; - const message = createBaseMatchOrders(); - message.takerOrderId = object.takerOrderId !== undefined && object.takerOrderId !== null ? order_1.OrderId.fromPartial(object.takerOrderId) : undefined; - message.fills = ((_a = object.fills) === null || _a === void 0 ? void 0 : _a.map(e => exports.MakerFill.fromPartial(e))) || []; + const message = createBaseMsgUpdateClobPair(); + message.authority = (_a = object.authority) !== null && _a !== void 0 ? _a : ""; + message.clobPair = object.clobPair !== undefined && object.clobPair !== null ? clob_pair_1.ClobPair.fromPartial(object.clobPair) : undefined; return message; } }; -function createBaseMatchPerpetualLiquidation() { - return { - liquidated: undefined, - clobPairId: 0, - perpetualId: 0, - totalSize: helpers_1.Long.UZERO, - isBuy: false, - fills: [] - }; +function createBaseMsgUpdateClobPairResponse() { + return {}; } -exports.MatchPerpetualLiquidation = { - encode(message, writer = _m0.Writer.create()) { - if (message.liquidated !== undefined) { - subaccount_1.SubaccountId.encode(message.liquidated, writer.uint32(10).fork()).ldelim(); - } - if (message.clobPairId !== 0) { - writer.uint32(16).uint32(message.clobPairId); - } - if (message.perpetualId !== 0) { - writer.uint32(24).uint32(message.perpetualId); - } - if (!message.totalSize.isZero()) { - writer.uint32(32).uint64(message.totalSize); - } - if (message.isBuy === true) { - writer.uint32(40).bool(message.isBuy); - } - for (const v of message.fills) { - exports.MakerFill.encode(v, writer.uint32(50).fork()).ldelim(); - } +exports.MsgUpdateClobPairResponse = { + encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMatchPerpetualLiquidation(); + const message = createBaseMsgUpdateClobPairResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.liquidated = subaccount_1.SubaccountId.decode(reader, reader.uint32()); - break; - case 2: - message.clobPairId = reader.uint32(); - break; - case 3: - message.perpetualId = reader.uint32(); - break; - case 4: - message.totalSize = reader.uint64(); - break; - case 5: - message.isBuy = reader.bool(); - break; - case 6: - message.fills.push(exports.MakerFill.decode(reader, reader.uint32())); - break; default: reader.skipType(tag & 7); break; @@ -185977,53 +186740,46 @@ exports.MatchPerpetualLiquidation = { } return message; }, - fromPartial(object) { - var _a, _b, _c, _d; - const message = createBaseMatchPerpetualLiquidation(); - message.liquidated = object.liquidated !== undefined && object.liquidated !== null ? subaccount_1.SubaccountId.fromPartial(object.liquidated) : undefined; - message.clobPairId = (_a = object.clobPairId) !== null && _a !== void 0 ? _a : 0; - message.perpetualId = (_b = object.perpetualId) !== null && _b !== void 0 ? _b : 0; - message.totalSize = object.totalSize !== undefined && object.totalSize !== null ? helpers_1.Long.fromValue(object.totalSize) : helpers_1.Long.UZERO; - message.isBuy = (_c = object.isBuy) !== null && _c !== void 0 ? _c : false; - message.fills = ((_d = object.fills) === null || _d === void 0 ? void 0 : _d.map(e => exports.MakerFill.fromPartial(e))) || []; + fromPartial(_) { + const message = createBaseMsgUpdateClobPairResponse(); return message; } }; -function createBaseMatchPerpetualDeleveraging() { +function createBaseOperationRaw() { return { - liquidated: undefined, - perpetualId: 0, - fills: [] + match: undefined, + shortTermOrderPlacement: undefined, + orderRemoval: undefined }; } -exports.MatchPerpetualDeleveraging = { +exports.OperationRaw = { encode(message, writer = _m0.Writer.create()) { - if (message.liquidated !== undefined) { - subaccount_1.SubaccountId.encode(message.liquidated, writer.uint32(10).fork()).ldelim(); + if (message.match !== undefined) { + matches_1.ClobMatch.encode(message.match, writer.uint32(10).fork()).ldelim(); } - if (message.perpetualId !== 0) { - writer.uint32(16).uint32(message.perpetualId); + if (message.shortTermOrderPlacement !== undefined) { + writer.uint32(18).bytes(message.shortTermOrderPlacement); } - for (const v of message.fills) { - exports.MatchPerpetualDeleveraging_Fill.encode(v, writer.uint32(26).fork()).ldelim(); + if (message.orderRemoval !== undefined) { + order_removals_1.OrderRemoval.encode(message.orderRemoval, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMatchPerpetualDeleveraging(); + const message = createBaseOperationRaw(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.liquidated = subaccount_1.SubaccountId.decode(reader, reader.uint32()); + message.match = matches_1.ClobMatch.decode(reader, reader.uint32()); break; case 2: - message.perpetualId = reader.uint32(); + message.shortTermOrderPlacement = reader.bytes(); break; case 3: - message.fills.push(exports.MatchPerpetualDeleveraging_Fill.decode(reader, reader.uint32())); + message.orderRemoval = order_removals_1.OrderRemoval.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -186033,42 +186789,42 @@ exports.MatchPerpetualDeleveraging = { return message; }, fromPartial(object) { - var _a, _b; - const message = createBaseMatchPerpetualDeleveraging(); - message.liquidated = object.liquidated !== undefined && object.liquidated !== null ? subaccount_1.SubaccountId.fromPartial(object.liquidated) : undefined; - message.perpetualId = (_a = object.perpetualId) !== null && _a !== void 0 ? _a : 0; - message.fills = ((_b = object.fills) === null || _b === void 0 ? void 0 : _b.map(e => exports.MatchPerpetualDeleveraging_Fill.fromPartial(e))) || []; + var _a; + const message = createBaseOperationRaw(); + message.match = object.match !== undefined && object.match !== null ? matches_1.ClobMatch.fromPartial(object.match) : undefined; + message.shortTermOrderPlacement = (_a = object.shortTermOrderPlacement) !== null && _a !== void 0 ? _a : undefined; + message.orderRemoval = object.orderRemoval !== undefined && object.orderRemoval !== null ? order_removals_1.OrderRemoval.fromPartial(object.orderRemoval) : undefined; return message; } }; -function createBaseMatchPerpetualDeleveraging_Fill() { +function createBaseMsgUpdateEquityTierLimitConfiguration() { return { - offsettingSubaccountId: undefined, - fillAmount: helpers_1.Long.UZERO + authority: "", + equityTierLimitConfig: undefined }; } -exports.MatchPerpetualDeleveraging_Fill = { +exports.MsgUpdateEquityTierLimitConfiguration = { encode(message, writer = _m0.Writer.create()) { - if (message.offsettingSubaccountId !== undefined) { - subaccount_1.SubaccountId.encode(message.offsettingSubaccountId, writer.uint32(10).fork()).ldelim(); + if (message.authority !== "") { + writer.uint32(10).string(message.authority); } - if (!message.fillAmount.isZero()) { - writer.uint32(16).uint64(message.fillAmount); + if (message.equityTierLimitConfig !== undefined) { + equity_tier_limit_config_1.EquityTierLimitConfiguration.encode(message.equityTierLimitConfig, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMatchPerpetualDeleveraging_Fill(); + const message = createBaseMsgUpdateEquityTierLimitConfiguration(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.offsettingSubaccountId = subaccount_1.SubaccountId.decode(reader, reader.uint32()); + message.authority = reader.string(); break; case 2: - message.fillAmount = reader.uint64(); + message.equityTierLimitConfig = equity_tier_limit_config_1.EquityTierLimitConfiguration.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -186078,124 +186834,27 @@ exports.MatchPerpetualDeleveraging_Fill = { return message; }, fromPartial(object) { - const message = createBaseMatchPerpetualDeleveraging_Fill(); - message.offsettingSubaccountId = object.offsettingSubaccountId !== undefined && object.offsettingSubaccountId !== null ? subaccount_1.SubaccountId.fromPartial(object.offsettingSubaccountId) : undefined; - message.fillAmount = object.fillAmount !== undefined && object.fillAmount !== null ? helpers_1.Long.fromValue(object.fillAmount) : helpers_1.Long.UZERO; + var _a; + const message = createBaseMsgUpdateEquityTierLimitConfiguration(); + message.authority = (_a = object.authority) !== null && _a !== void 0 ? _a : ""; + message.equityTierLimitConfig = object.equityTierLimitConfig !== undefined && object.equityTierLimitConfig !== null ? equity_tier_limit_config_1.EquityTierLimitConfiguration.fromPartial(object.equityTierLimitConfig) : undefined; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2hlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AZHlkeHByb3RvY29sL3Y0LXByb3RvL3NyYy9jb2RlZ2VuL2R5ZHhwcm90b2NvbC9jbG9iL21hdGNoZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBa0Q7QUFDbEQsMERBQThFO0FBQzlFLHdEQUEwQztBQUMxQywyQ0FBa0Q7QUE2SWxELFNBQVMsbUJBQW1CO0lBQzFCLE9BQU87UUFDTCxXQUFXLEVBQUUsU0FBUztRQUN0Qix5QkFBeUIsRUFBRSxTQUFTO1FBQ3BDLDBCQUEwQixFQUFFLFNBQVM7S0FDdEMsQ0FBQztBQUNKLENBQUM7QUFFWSxRQUFBLFNBQVMsR0FBRztJQUN2QixNQUFNLENBQUMsT0FBa0IsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNqRSxJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFO1lBQ3JDLG1CQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzVFO1FBRUQsSUFBSSxPQUFPLENBQUMseUJBQXlCLEtBQUssU0FBUyxFQUFFO1lBQ25ELGlDQUF5QixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMseUJBQXlCLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3hHO1FBRUQsSUFBSSxPQUFPLENBQUMsMEJBQTBCLEtBQUssU0FBUyxFQUFFO1lBQ3BELGtDQUEwQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsMEJBQTBCLEVBQUUsTUFBTSxDQUFDLE1B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 - -/***/ }), - -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/mev.ts": -/*!**********************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/mev.ts ***! - \**********************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.MevNodeToNodeMetrics = exports.ValidatorMevMatches = exports.ClobMidPrice = exports.MEVLiquidationMatch = exports.MEVMatch = void 0; -const subaccount_1 = __webpack_require__(/*! ../subaccounts/subaccount */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/subaccount.ts"); -const clob_pair_1 = __webpack_require__(/*! ./clob_pair */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/clob_pair.ts"); -const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -function createBaseMEVMatch() { - return { - takerOrderSubaccountId: undefined, - takerFeePpm: 0, - makerOrderSubaccountId: undefined, - makerOrderSubticks: helpers_1.Long.UZERO, - makerOrderIsBuy: false, - makerFeePpm: 0, - clobPairId: 0, - fillAmount: helpers_1.Long.UZERO - }; +function createBaseMsgUpdateEquityTierLimitConfigurationResponse() { + return {}; } -exports.MEVMatch = { - encode(message, writer = _m0.Writer.create()) { - if (message.takerOrderSubaccountId !== undefined) { - subaccount_1.SubaccountId.encode(message.takerOrderSubaccountId, writer.uint32(10).fork()).ldelim(); - } - if (message.takerFeePpm !== 0) { - writer.uint32(16).int32(message.takerFeePpm); - } - if (message.makerOrderSubaccountId !== undefined) { - subaccount_1.SubaccountId.encode(message.makerOrderSubaccountId, writer.uint32(26).fork()).ldelim(); - } - if (!message.makerOrderSubticks.isZero()) { - writer.uint32(32).uint64(message.makerOrderSubticks); - } - if (message.makerOrderIsBuy === true) { - writer.uint32(40).bool(message.makerOrderIsBuy); - } - if (message.makerFeePpm !== 0) { - writer.uint32(48).int32(message.makerFeePpm); - } - if (message.clobPairId !== 0) { - writer.uint32(56).uint32(message.clobPairId); - } - if (!message.fillAmount.isZero()) { - writer.uint32(64).uint64(message.fillAmount); - } +exports.MsgUpdateEquityTierLimitConfigurationResponse = { + encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMEVMatch(); + const message = createBaseMsgUpdateEquityTierLimitConfigurationResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.takerOrderSubaccountId = subaccount_1.SubaccountId.decode(reader, reader.uint32()); - break; - case 2: - message.takerFeePpm = reader.int32(); - break; - case 3: - message.makerOrderSubaccountId = subaccount_1.SubaccountId.decode(reader, reader.uint32()); - break; - case 4: - message.makerOrderSubticks = reader.uint64(); - break; - case 5: - message.makerOrderIsBuy = reader.bool(); - break; - case 6: - message.makerFeePpm = reader.int32(); - break; - case 7: - message.clobPairId = reader.uint32(); - break; - case 8: - message.fillAmount = reader.uint64(); - break; default: reader.skipType(tag & 7); break; @@ -186203,90 +186862,39 @@ exports.MEVMatch = { } return message; }, - fromPartial(object) { - var _a, _b, _c, _d; - const message = createBaseMEVMatch(); - message.takerOrderSubaccountId = object.takerOrderSubaccountId !== undefined && object.takerOrderSubaccountId !== null ? subaccount_1.SubaccountId.fromPartial(object.takerOrderSubaccountId) : undefined; - message.takerFeePpm = (_a = object.takerFeePpm) !== null && _a !== void 0 ? _a : 0; - message.makerOrderSubaccountId = object.makerOrderSubaccountId !== undefined && object.makerOrderSubaccountId !== null ? subaccount_1.SubaccountId.fromPartial(object.makerOrderSubaccountId) : undefined; - message.makerOrderSubticks = object.makerOrderSubticks !== undefined && object.makerOrderSubticks !== null ? helpers_1.Long.fromValue(object.makerOrderSubticks) : helpers_1.Long.UZERO; - message.makerOrderIsBuy = (_b = object.makerOrderIsBuy) !== null && _b !== void 0 ? _b : false; - message.makerFeePpm = (_c = object.makerFeePpm) !== null && _c !== void 0 ? _c : 0; - message.clobPairId = (_d = object.clobPairId) !== null && _d !== void 0 ? _d : 0; - message.fillAmount = object.fillAmount !== undefined && object.fillAmount !== null ? helpers_1.Long.fromValue(object.fillAmount) : helpers_1.Long.UZERO; + fromPartial(_) { + const message = createBaseMsgUpdateEquityTierLimitConfigurationResponse(); return message; } }; -function createBaseMEVLiquidationMatch() { +function createBaseMsgUpdateBlockRateLimitConfiguration() { return { - liquidatedSubaccountId: undefined, - insuranceFundDeltaQuoteQuantums: helpers_1.Long.ZERO, - makerOrderSubaccountId: undefined, - makerOrderSubticks: helpers_1.Long.UZERO, - makerOrderIsBuy: false, - makerFeePpm: 0, - clobPairId: 0, - fillAmount: helpers_1.Long.UZERO + authority: "", + blockRateLimitConfig: undefined }; } -exports.MEVLiquidationMatch = { +exports.MsgUpdateBlockRateLimitConfiguration = { encode(message, writer = _m0.Writer.create()) { - if (message.liquidatedSubaccountId !== undefined) { - subaccount_1.SubaccountId.encode(message.liquidatedSubaccountId, writer.uint32(10).fork()).ldelim(); - } - if (!message.insuranceFundDeltaQuoteQuantums.isZero()) { - writer.uint32(16).int64(message.insuranceFundDeltaQuoteQuantums); - } - if (message.makerOrderSubaccountId !== undefined) { - subaccount_1.SubaccountId.encode(message.makerOrderSubaccountId, writer.uint32(26).fork()).ldelim(); - } - if (!message.makerOrderSubticks.isZero()) { - writer.uint32(32).uint64(message.makerOrderSubticks); - } - if (message.makerOrderIsBuy === true) { - writer.uint32(40).bool(message.makerOrderIsBuy); - } - if (message.makerFeePpm !== 0) { - writer.uint32(48).int32(message.makerFeePpm); - } - if (message.clobPairId !== 0) { - writer.uint32(56).uint32(message.clobPairId); + if (message.authority !== "") { + writer.uint32(10).string(message.authority); } - if (!message.fillAmount.isZero()) { - writer.uint32(64).uint64(message.fillAmount); + if (message.blockRateLimitConfig !== undefined) { + block_rate_limit_config_1.BlockRateLimitConfiguration.encode(message.blockRateLimitConfig, writer.uint32(26).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMEVLiquidationMatch(); + const message = createBaseMsgUpdateBlockRateLimitConfiguration(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.liquidatedSubaccountId = subaccount_1.SubaccountId.decode(reader, reader.uint32()); - break; - case 2: - message.insuranceFundDeltaQuoteQuantums = reader.int64(); + message.authority = reader.string(); break; case 3: - message.makerOrderSubaccountId = subaccount_1.SubaccountId.decode(reader, reader.uint32()); - break; - case 4: - message.makerOrderSubticks = reader.uint64(); - break; - case 5: - message.makerOrderIsBuy = reader.bool(); - break; - case 6: - message.makerFeePpm = reader.int32(); - break; - case 7: - message.clobPairId = reader.uint32(); - break; - case 8: - message.fillAmount = reader.uint64(); + message.blockRateLimitConfig = block_rate_limit_config_1.BlockRateLimitConfiguration.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -186296,48 +186904,27 @@ exports.MEVLiquidationMatch = { return message; }, fromPartial(object) { - var _a, _b, _c; - const message = createBaseMEVLiquidationMatch(); - message.liquidatedSubaccountId = object.liquidatedSubaccountId !== undefined && object.liquidatedSubaccountId !== null ? subaccount_1.SubaccountId.fromPartial(object.liquidatedSubaccountId) : undefined; - message.insuranceFundDeltaQuoteQuantums = object.insuranceFundDeltaQuoteQuantums !== undefined && object.insuranceFundDeltaQuoteQuantums !== null ? helpers_1.Long.fromValue(object.insuranceFundDeltaQuoteQuantums) : helpers_1.Long.ZERO; - message.makerOrderSubaccountId = object.makerOrderSubaccountId !== undefined && object.makerOrderSubaccountId !== null ? subaccount_1.SubaccountId.fromPartial(object.makerOrderSubaccountId) : undefined; - message.makerOrderSubticks = object.makerOrderSubticks !== undefined && object.makerOrderSubticks !== null ? helpers_1.Long.fromValue(object.makerOrderSubticks) : helpers_1.Long.UZERO; - message.makerOrderIsBuy = (_a = object.makerOrderIsBuy) !== null && _a !== void 0 ? _a : false; - message.makerFeePpm = (_b = object.makerFeePpm) !== null && _b !== void 0 ? _b : 0; - message.clobPairId = (_c = object.clobPairId) !== null && _c !== void 0 ? _c : 0; - message.fillAmount = object.fillAmount !== undefined && object.fillAmount !== null ? helpers_1.Long.fromValue(object.fillAmount) : helpers_1.Long.UZERO; + var _a; + const message = createBaseMsgUpdateBlockRateLimitConfiguration(); + message.authority = (_a = object.authority) !== null && _a !== void 0 ? _a : ""; + message.blockRateLimitConfig = object.blockRateLimitConfig !== undefined && object.blockRateLimitConfig !== null ? block_rate_limit_config_1.BlockRateLimitConfiguration.fromPartial(object.blockRateLimitConfig) : undefined; return message; } }; -function createBaseClobMidPrice() { - return { - clobPair: undefined, - subticks: helpers_1.Long.UZERO - }; +function createBaseMsgUpdateBlockRateLimitConfigurationResponse() { + return {}; } -exports.ClobMidPrice = { - encode(message, writer = _m0.Writer.create()) { - if (message.clobPair !== undefined) { - clob_pair_1.ClobPair.encode(message.clobPair, writer.uint32(10).fork()).ldelim(); - } - if (!message.subticks.isZero()) { - writer.uint32(16).uint64(message.subticks); - } +exports.MsgUpdateBlockRateLimitConfigurationResponse = { + encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseClobMidPrice(); + const message = createBaseMsgUpdateBlockRateLimitConfigurationResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.clobPair = clob_pair_1.ClobPair.decode(reader, reader.uint32()); - break; - case 2: - message.subticks = reader.uint64(); - break; default: reader.skipType(tag & 7); break; @@ -186345,41 +186932,39 @@ exports.ClobMidPrice = { } return message; }, - fromPartial(object) { - const message = createBaseClobMidPrice(); - message.clobPair = object.clobPair !== undefined && object.clobPair !== null ? clob_pair_1.ClobPair.fromPartial(object.clobPair) : undefined; - message.subticks = object.subticks !== undefined && object.subticks !== null ? helpers_1.Long.fromValue(object.subticks) : helpers_1.Long.UZERO; + fromPartial(_) { + const message = createBaseMsgUpdateBlockRateLimitConfigurationResponse(); return message; } }; -function createBaseValidatorMevMatches() { +function createBaseMsgUpdateLiquidationsConfig() { return { - matches: [], - liquidationMatches: [] + authority: "", + liquidationsConfig: undefined }; } -exports.ValidatorMevMatches = { +exports.MsgUpdateLiquidationsConfig = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.matches) { - exports.MEVMatch.encode(v, writer.uint32(10).fork()).ldelim(); + if (message.authority !== "") { + writer.uint32(10).string(message.authority); } - for (const v of message.liquidationMatches) { - exports.MEVLiquidationMatch.encode(v, writer.uint32(18).fork()).ldelim(); + if (message.liquidationsConfig !== undefined) { + liquidations_config_1.LiquidationsConfig.encode(message.liquidationsConfig, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValidatorMevMatches(); + const message = createBaseMsgUpdateLiquidationsConfig(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.matches.push(exports.MEVMatch.decode(reader, reader.uint32())); + message.authority = reader.string(); break; case 2: - message.liquidationMatches.push(exports.MEVLiquidationMatch.decode(reader, reader.uint32())); + message.liquidationsConfig = liquidations_config_1.LiquidationsConfig.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -186389,42 +186974,27 @@ exports.ValidatorMevMatches = { return message; }, fromPartial(object) { - var _a, _b; - const message = createBaseValidatorMevMatches(); - message.matches = ((_a = object.matches) === null || _a === void 0 ? void 0 : _a.map(e => exports.MEVMatch.fromPartial(e))) || []; - message.liquidationMatches = ((_b = object.liquidationMatches) === null || _b === void 0 ? void 0 : _b.map(e => exports.MEVLiquidationMatch.fromPartial(e))) || []; + var _a; + const message = createBaseMsgUpdateLiquidationsConfig(); + message.authority = (_a = object.authority) !== null && _a !== void 0 ? _a : ""; + message.liquidationsConfig = object.liquidationsConfig !== undefined && object.liquidationsConfig !== null ? liquidations_config_1.LiquidationsConfig.fromPartial(object.liquidationsConfig) : undefined; return message; } }; -function createBaseMevNodeToNodeMetrics() { - return { - validatorMevMatches: undefined, - clobMidPrices: [] - }; +function createBaseMsgUpdateLiquidationsConfigResponse() { + return {}; } -exports.MevNodeToNodeMetrics = { - encode(message, writer = _m0.Writer.create()) { - if (message.validatorMevMatches !== undefined) { - exports.ValidatorMevMatches.encode(message.validatorMevMatches, writer.uint32(10).fork()).ldelim(); - } - for (const v of message.clobMidPrices) { - exports.ClobMidPrice.encode(v, writer.uint32(18).fork()).ldelim(); - } +exports.MsgUpdateLiquidationsConfigResponse = { + encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMevNodeToNodeMetrics(); + const message = createBaseMsgUpdateLiquidationsConfigResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.validatorMevMatches = exports.ValidatorMevMatches.decode(reader, reader.uint32()); - break; - case 2: - message.clobMidPrices.push(exports.ClobMidPrice.decode(reader, reader.uint32())); - break; default: reader.skipType(tag & 7); break; @@ -186432,22 +187002,19 @@ exports.MevNodeToNodeMetrics = { } return message; }, - fromPartial(object) { - var _a; - const message = createBaseMevNodeToNodeMetrics(); - message.validatorMevMatches = object.validatorMevMatches !== undefined && object.validatorMevMatches !== null ? exports.ValidatorMevMatches.fromPartial(object.validatorMevMatches) : undefined; - message.clobMidPrices = ((_a = object.clobMidPrices) === null || _a === void 0 ? void 0 : _a.map(e => exports.ClobMidPrice.fromPartial(e))) || []; + fromPartial(_) { + const message = createBaseMsgUpdateLiquidationsConfigResponse(); return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV2LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vZHlkeHByb3RvY29sL2Nsb2IvbWV2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMERBQThFO0FBQzlFLDJDQUF3RDtBQUN4RCwyQ0FBa0Q7QUFDbEQsd0RBQTBDO0FBd0cxQyxTQUFTLGtCQUFrQjtJQUN6QixPQUFPO1FBQ0wsc0JBQXNCLEVBQUUsU0FBUztRQUNqQyxXQUFXLEVBQUUsQ0FBQztRQUNkLHNCQUFzQixFQUFFLFNBQVM7UUFDakMsa0JBQWtCLEVBQUUsY0FBSSxDQUFDLEtBQUs7UUFDOUIsZUFBZSxFQUFFLEtBQUs7UUFDdEIsV0FBVyxFQUFFLENBQUM7UUFDZCxVQUFVLEVBQUUsQ0FBQztRQUNiLFVBQVUsRUFBRSxjQUFJLENBQUMsS0FBSztLQUN2QixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsUUFBUSxHQUFHO0lBQ3RCLE1BQU0sQ0FBQyxPQUFpQixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ2hFLElBQUksT0FBTyxDQUFDLHNCQUFzQixLQUFLLFNBQVMsRUFBRTtZQUNoRCx5QkFBWSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3hGO1FBRUQsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLENBQUMsRUFBRTtZQUM3QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDOUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxzQkFBc0IsS0FB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvY2xvYi90eC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUF1RTtBQUN2RSwyQ0FBd0Q7QUFDeEQseUVBQStHO0FBQy9HLHVFQUE0RztBQUM1RywrREFBc0Y7QUFDdEYsdUNBQXdEO0FBQ3hELHFEQUFxRTtBQUNyRSx3REFBMEM7QUEwUDFDLFNBQVMsMkJBQTJCO0lBQ2xDLE9BQU87UUFDTCxTQUFTLEVBQUUsRUFBRTtRQUNiLFFBQVEsRUFBRSxTQUFTO0tBQ3BCLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxpQkFBaUIsR0FBRztJQUMvQixNQUFNLENBQUMsT0FBMEIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUN6RSxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFO1lBQzVCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM3QztRQUVELElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDbEMsb0JBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDdEU7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFD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 /***/ }), -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order.ts": -/*!************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order.ts ***! - \************************************************************************************/ +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/tx.ts": +/*!*************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/tx.ts ***! + \*************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -186476,226 +187043,45 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.TransactionOrdering = exports.Order = exports.ConditionalOrderPlacement = exports.LongTermOrderPlacement = exports.StatefulOrderTimeSliceValue = exports.OrderFillState = exports.PotentiallyPrunableOrders = exports.OrdersFilledDuringLatestBlock = exports.OrderId = exports.order_ConditionTypeToJSON = exports.order_ConditionTypeFromJSON = exports.Order_ConditionTypeSDKType = exports.Order_ConditionType = exports.order_TimeInForceToJSON = exports.order_TimeInForceFromJSON = exports.Order_TimeInForceSDKType = exports.Order_TimeInForce = exports.order_SideToJSON = exports.order_SideFromJSON = exports.Order_SideSDKType = exports.Order_Side = void 0; -const subaccount_1 = __webpack_require__(/*! ../subaccounts/subaccount */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/subaccount.ts"); +exports.MsgDelayMessageResponse = exports.MsgDelayMessage = void 0; +const any_1 = __webpack_require__(/*! ../../google/protobuf/any */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/any.ts"); const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); -/** - * Represents the side of the orderbook the order will be placed on. - * Note that Side.SIDE_UNSPECIFIED is an invalid order and cannot be - * placed on the orderbook. - */ -var Order_Side; -(function (Order_Side) { - /** SIDE_UNSPECIFIED - Default value. This value is invalid and unused. */ - Order_Side[Order_Side["SIDE_UNSPECIFIED"] = 0] = "SIDE_UNSPECIFIED"; - /** SIDE_BUY - SIDE_BUY is used to represent a BUY order. */ - Order_Side[Order_Side["SIDE_BUY"] = 1] = "SIDE_BUY"; - /** SIDE_SELL - SIDE_SELL is used to represent a SELL order. */ - Order_Side[Order_Side["SIDE_SELL"] = 2] = "SIDE_SELL"; - Order_Side[Order_Side["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(Order_Side = exports.Order_Side || (exports.Order_Side = {})); -exports.Order_SideSDKType = Order_Side; -function order_SideFromJSON(object) { - switch (object) { - case 0: - case "SIDE_UNSPECIFIED": - return Order_Side.SIDE_UNSPECIFIED; - case 1: - case "SIDE_BUY": - return Order_Side.SIDE_BUY; - case 2: - case "SIDE_SELL": - return Order_Side.SIDE_SELL; - case -1: - case "UNRECOGNIZED": - default: - return Order_Side.UNRECOGNIZED; - } -} -exports.order_SideFromJSON = order_SideFromJSON; -function order_SideToJSON(object) { - switch (object) { - case Order_Side.SIDE_UNSPECIFIED: - return "SIDE_UNSPECIFIED"; - case Order_Side.SIDE_BUY: - return "SIDE_BUY"; - case Order_Side.SIDE_SELL: - return "SIDE_SELL"; - case Order_Side.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -exports.order_SideToJSON = order_SideToJSON; -/** - * TimeInForce indicates how long an order will remain active before it - * is executed or expires. - */ -var Order_TimeInForce; -(function (Order_TimeInForce) { - /** - * TIME_IN_FORCE_UNSPECIFIED - TIME_IN_FORCE_UNSPECIFIED represents the default behavior where an - * order will first match with existing orders on the book, and any - * remaining size will be added to the book as a maker order. - */ - Order_TimeInForce[Order_TimeInForce["TIME_IN_FORCE_UNSPECIFIED"] = 0] = "TIME_IN_FORCE_UNSPECIFIED"; - /** - * TIME_IN_FORCE_IOC - TIME_IN_FORCE_IOC enforces that an order only be matched with - * maker orders on the book. If the order has remaining size after - * matching with existing orders on the book, the remaining size - * is not placed on the book. - */ - Order_TimeInForce[Order_TimeInForce["TIME_IN_FORCE_IOC"] = 1] = "TIME_IN_FORCE_IOC"; - /** - * TIME_IN_FORCE_POST_ONLY - TIME_IN_FORCE_POST_ONLY enforces that an order only be placed - * on the book as a maker order. Note this means that validators will cancel - * any newly-placed post only orders that would cross with other maker - * orders. - */ - Order_TimeInForce[Order_TimeInForce["TIME_IN_FORCE_POST_ONLY"] = 2] = "TIME_IN_FORCE_POST_ONLY"; - /** - * TIME_IN_FORCE_FILL_OR_KILL - TIME_IN_FORCE_FILL_OR_KILL enforces that an order will either be filled - * completely and immediately by maker orders on the book or canceled if the - * entire amount can‘t be matched. - */ - Order_TimeInForce[Order_TimeInForce["TIME_IN_FORCE_FILL_OR_KILL"] = 3] = "TIME_IN_FORCE_FILL_OR_KILL"; - Order_TimeInForce[Order_TimeInForce["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(Order_TimeInForce = exports.Order_TimeInForce || (exports.Order_TimeInForce = {})); -exports.Order_TimeInForceSDKType = Order_TimeInForce; -function order_TimeInForceFromJSON(object) { - switch (object) { - case 0: - case "TIME_IN_FORCE_UNSPECIFIED": - return Order_TimeInForce.TIME_IN_FORCE_UNSPECIFIED; - case 1: - case "TIME_IN_FORCE_IOC": - return Order_TimeInForce.TIME_IN_FORCE_IOC; - case 2: - case "TIME_IN_FORCE_POST_ONLY": - return Order_TimeInForce.TIME_IN_FORCE_POST_ONLY; - case 3: - case "TIME_IN_FORCE_FILL_OR_KILL": - return Order_TimeInForce.TIME_IN_FORCE_FILL_OR_KILL; - case -1: - case "UNRECOGNIZED": - default: - return Order_TimeInForce.UNRECOGNIZED; - } -} -exports.order_TimeInForceFromJSON = order_TimeInForceFromJSON; -function order_TimeInForceToJSON(object) { - switch (object) { - case Order_TimeInForce.TIME_IN_FORCE_UNSPECIFIED: - return "TIME_IN_FORCE_UNSPECIFIED"; - case Order_TimeInForce.TIME_IN_FORCE_IOC: - return "TIME_IN_FORCE_IOC"; - case Order_TimeInForce.TIME_IN_FORCE_POST_ONLY: - return "TIME_IN_FORCE_POST_ONLY"; - case Order_TimeInForce.TIME_IN_FORCE_FILL_OR_KILL: - return "TIME_IN_FORCE_FILL_OR_KILL"; - case Order_TimeInForce.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -exports.order_TimeInForceToJSON = order_TimeInForceToJSON; -var Order_ConditionType; -(function (Order_ConditionType) { - /** - * CONDITION_TYPE_UNSPECIFIED - CONDITION_TYPE_UNSPECIFIED represents the default behavior where an - * order will be placed immediately on the orderbook. - */ - Order_ConditionType[Order_ConditionType["CONDITION_TYPE_UNSPECIFIED"] = 0] = "CONDITION_TYPE_UNSPECIFIED"; - /** - * CONDITION_TYPE_STOP_LOSS - CONDITION_TYPE_STOP_LOSS represents a stop order. A stop order will - * trigger when the oracle price moves at or above the trigger price for - * buys, and at or below the trigger price for sells. - */ - Order_ConditionType[Order_ConditionType["CONDITION_TYPE_STOP_LOSS"] = 1] = "CONDITION_TYPE_STOP_LOSS"; - /** - * CONDITION_TYPE_TAKE_PROFIT - CONDITION_TYPE_TAKE_PROFIT represents a take profit order. A take profit - * order will trigger when the oracle price moves at or below the trigger - * price for buys and at or above the trigger price for sells. - */ - Order_ConditionType[Order_ConditionType["CONDITION_TYPE_TAKE_PROFIT"] = 2] = "CONDITION_TYPE_TAKE_PROFIT"; - Order_ConditionType[Order_ConditionType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(Order_ConditionType = exports.Order_ConditionType || (exports.Order_ConditionType = {})); -exports.Order_ConditionTypeSDKType = Order_ConditionType; -function order_ConditionTypeFromJSON(object) { - switch (object) { - case 0: - case "CONDITION_TYPE_UNSPECIFIED": - return Order_ConditionType.CONDITION_TYPE_UNSPECIFIED; - case 1: - case "CONDITION_TYPE_STOP_LOSS": - return Order_ConditionType.CONDITION_TYPE_STOP_LOSS; - case 2: - case "CONDITION_TYPE_TAKE_PROFIT": - return Order_ConditionType.CONDITION_TYPE_TAKE_PROFIT; - case -1: - case "UNRECOGNIZED": - default: - return Order_ConditionType.UNRECOGNIZED; - } -} -exports.order_ConditionTypeFromJSON = order_ConditionTypeFromJSON; -function order_ConditionTypeToJSON(object) { - switch (object) { - case Order_ConditionType.CONDITION_TYPE_UNSPECIFIED: - return "CONDITION_TYPE_UNSPECIFIED"; - case Order_ConditionType.CONDITION_TYPE_STOP_LOSS: - return "CONDITION_TYPE_STOP_LOSS"; - case Order_ConditionType.CONDITION_TYPE_TAKE_PROFIT: - return "CONDITION_TYPE_TAKE_PROFIT"; - case Order_ConditionType.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -exports.order_ConditionTypeToJSON = order_ConditionTypeToJSON; -function createBaseOrderId() { +function createBaseMsgDelayMessage() { return { - subaccountId: undefined, - clientId: 0, - orderFlags: 0, - clobPairId: 0 + authority: "", + msg: undefined, + delayBlocks: 0 }; } -exports.OrderId = { +exports.MsgDelayMessage = { encode(message, writer = _m0.Writer.create()) { - if (message.subaccountId !== undefined) { - subaccount_1.SubaccountId.encode(message.subaccountId, writer.uint32(10).fork()).ldelim(); - } - if (message.clientId !== 0) { - writer.uint32(21).fixed32(message.clientId); + if (message.authority !== "") { + writer.uint32(10).string(message.authority); } - if (message.orderFlags !== 0) { - writer.uint32(24).uint32(message.orderFlags); + if (message.msg !== undefined) { + any_1.Any.encode(message.msg, writer.uint32(18).fork()).ldelim(); } - if (message.clobPairId !== 0) { - writer.uint32(32).uint32(message.clobPairId); + if (message.delayBlocks !== 0) { + writer.uint32(24).uint32(message.delayBlocks); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseOrderId(); + const message = createBaseMsgDelayMessage(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.subaccountId = subaccount_1.SubaccountId.decode(reader, reader.uint32()); + message.authority = reader.string(); break; case 2: - message.clientId = reader.fixed32(); + message.msg = any_1.Any.decode(reader, reader.uint32()); break; case 3: - message.orderFlags = reader.uint32(); - break; - case 4: - message.clobPairId = reader.uint32(); + message.delayBlocks = reader.uint32(); break; default: reader.skipType(tag & 7); @@ -186705,36 +187091,35 @@ exports.OrderId = { return message; }, fromPartial(object) { - var _a, _b, _c; - const message = createBaseOrderId(); - message.subaccountId = object.subaccountId !== undefined && object.subaccountId !== null ? subaccount_1.SubaccountId.fromPartial(object.subaccountId) : undefined; - message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : 0; - message.orderFlags = (_b = object.orderFlags) !== null && _b !== void 0 ? _b : 0; - message.clobPairId = (_c = object.clobPairId) !== null && _c !== void 0 ? _c : 0; + var _a, _b; + const message = createBaseMsgDelayMessage(); + message.authority = (_a = object.authority) !== null && _a !== void 0 ? _a : ""; + message.msg = object.msg !== undefined && object.msg !== null ? any_1.Any.fromPartial(object.msg) : undefined; + message.delayBlocks = (_b = object.delayBlocks) !== null && _b !== void 0 ? _b : 0; return message; } }; -function createBaseOrdersFilledDuringLatestBlock() { +function createBaseMsgDelayMessageResponse() { return { - orderIds: [] + id: helpers_1.Long.UZERO }; } -exports.OrdersFilledDuringLatestBlock = { +exports.MsgDelayMessageResponse = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.orderIds) { - exports.OrderId.encode(v, writer.uint32(10).fork()).ldelim(); + if (!message.id.isZero()) { + writer.uint32(8).uint64(message.id); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseOrdersFilledDuringLatestBlock(); + const message = createBaseMsgDelayMessageResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.orderIds.push(exports.OrderId.decode(reader, reader.uint32())); + message.id = reader.uint64(); break; default: reader.skipType(tag & 7); @@ -186744,33 +187129,71 @@ exports.OrdersFilledDuringLatestBlock = { return message; }, fromPartial(object) { - var _a; - const message = createBaseOrdersFilledDuringLatestBlock(); - message.orderIds = ((_a = object.orderIds) === null || _a === void 0 ? void 0 : _a.map(e => exports.OrderId.fromPartial(e))) || []; + const message = createBaseMsgDelayMessageResponse(); + message.id = object.id !== undefined && object.id !== null ? helpers_1.Long.fromValue(object.id) : helpers_1.Long.UZERO; return message; } }; -function createBasePotentiallyPrunableOrders() { +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvZGVsYXltc2cvdHgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtREFBNEQ7QUFDNUQsd0RBQTBDO0FBQzFDLDJDQUFrRDtBQStCbEQsU0FBUyx5QkFBeUI7SUFDaEMsT0FBTztRQUNMLFNBQVMsRUFBRSxFQUFFO1FBQ2IsR0FBRyxFQUFFLFNBQVM7UUFDZCxXQUFXLEVBQUUsQ0FBQztLQUNmLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxlQUFlLEdBQUc7SUFDN0IsTUFBTSxDQUFDLE9BQXdCLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDdkUsSUFBSSxPQUFPLENBQUMsU0FBUyxLQUFLLEVBQUUsRUFBRTtZQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDN0M7UUFFRCxJQUFJLE9BQU8sQ0FBQyxHQUFHLEtBQUssU0FBUyxFQUFFO1lBQzdCLFNBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDNUQ7UUFFRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssQ0FBQyxFQUFFO1lBQzdCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMvQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFB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 + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/params.ts": +/*!*****************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/params.ts ***! + \*****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.PerpetualFeeTier = exports.PerpetualFeeParams = void 0; +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); +function createBasePerpetualFeeParams() { return { - orderIds: [] + tiers: [] }; } -exports.PotentiallyPrunableOrders = { +exports.PerpetualFeeParams = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.orderIds) { - exports.OrderId.encode(v, writer.uint32(10).fork()).ldelim(); + for (const v of message.tiers) { + exports.PerpetualFeeTier.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePotentiallyPrunableOrders(); + const message = createBasePerpetualFeeParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.orderIds.push(exports.OrderId.decode(reader, reader.uint32())); + message.tiers.push(exports.PerpetualFeeTier.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -186781,76 +187204,67 @@ exports.PotentiallyPrunableOrders = { }, fromPartial(object) { var _a; - const message = createBasePotentiallyPrunableOrders(); - message.orderIds = ((_a = object.orderIds) === null || _a === void 0 ? void 0 : _a.map(e => exports.OrderId.fromPartial(e))) || []; + const message = createBasePerpetualFeeParams(); + message.tiers = ((_a = object.tiers) === null || _a === void 0 ? void 0 : _a.map(e => exports.PerpetualFeeTier.fromPartial(e))) || []; return message; } }; -function createBaseOrderFillState() { +function createBasePerpetualFeeTier() { return { - fillAmount: helpers_1.Long.UZERO, - prunableBlockHeight: 0 + name: "", + absoluteVolumeRequirement: helpers_1.Long.UZERO, + totalVolumeShareRequirementPpm: 0, + makerVolumeShareRequirementPpm: 0, + makerFeePpm: 0, + takerFeePpm: 0 }; } -exports.OrderFillState = { +exports.PerpetualFeeTier = { encode(message, writer = _m0.Writer.create()) { - if (!message.fillAmount.isZero()) { - writer.uint32(8).uint64(message.fillAmount); + if (message.name !== "") { + writer.uint32(10).string(message.name); } - if (message.prunableBlockHeight !== 0) { - writer.uint32(16).uint32(message.prunableBlockHeight); + if (!message.absoluteVolumeRequirement.isZero()) { + writer.uint32(16).uint64(message.absoluteVolumeRequirement); + } + if (message.totalVolumeShareRequirementPpm !== 0) { + writer.uint32(24).uint32(message.totalVolumeShareRequirementPpm); + } + if (message.makerVolumeShareRequirementPpm !== 0) { + writer.uint32(32).uint32(message.makerVolumeShareRequirementPpm); + } + if (message.makerFeePpm !== 0) { + writer.uint32(40).sint32(message.makerFeePpm); + } + if (message.takerFeePpm !== 0) { + writer.uint32(48).sint32(message.takerFeePpm); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseOrderFillState(); + const message = createBasePerpetualFeeTier(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.fillAmount = reader.uint64(); + message.name = reader.string(); break; case 2: - message.prunableBlockHeight = reader.uint32(); + message.absoluteVolumeRequirement = reader.uint64(); break; - default: - reader.skipType(tag & 7); + case 3: + message.totalVolumeShareRequirementPpm = reader.uint32(); break; - } - } - return message; - }, - fromPartial(object) { - var _a; - const message = createBaseOrderFillState(); - message.fillAmount = object.fillAmount !== undefined && object.fillAmount !== null ? helpers_1.Long.fromValue(object.fillAmount) : helpers_1.Long.UZERO; - message.prunableBlockHeight = (_a = object.prunableBlockHeight) !== null && _a !== void 0 ? _a : 0; - return message; - } -}; -function createBaseStatefulOrderTimeSliceValue() { - return { - orderIds: [] - }; -} -exports.StatefulOrderTimeSliceValue = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.orderIds) { - exports.OrderId.encode(v, writer.uint32(10).fork()).ldelim(); - } - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseStatefulOrderTimeSliceValue(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.orderIds.push(exports.OrderId.decode(reader, reader.uint32())); + case 4: + message.makerVolumeShareRequirementPpm = reader.uint32(); + break; + case 5: + message.makerFeePpm = reader.sint32(); + break; + case 6: + message.takerFeePpm = reader.sint32(); break; default: reader.skipType(tag & 7); @@ -186860,41 +187274,70 @@ exports.StatefulOrderTimeSliceValue = { return message; }, fromPartial(object) { - var _a; - const message = createBaseStatefulOrderTimeSliceValue(); - message.orderIds = ((_a = object.orderIds) === null || _a === void 0 ? void 0 : _a.map(e => exports.OrderId.fromPartial(e))) || []; + var _a, _b, _c, _d, _e; + const message = createBasePerpetualFeeTier(); + message.name = (_a = object.name) !== null && _a !== void 0 ? _a : ""; + message.absoluteVolumeRequirement = object.absoluteVolumeRequirement !== undefined && object.absoluteVolumeRequirement !== null ? helpers_1.Long.fromValue(object.absoluteVolumeRequirement) : helpers_1.Long.UZERO; + message.totalVolumeShareRequirementPpm = (_b = object.totalVolumeShareRequirementPpm) !== null && _b !== void 0 ? _b : 0; + message.makerVolumeShareRequirementPpm = (_c = object.makerVolumeShareRequirementPpm) !== null && _c !== void 0 ? _c : 0; + message.makerFeePpm = (_d = object.makerFeePpm) !== null && _d !== void 0 ? _d : 0; + message.takerFeePpm = (_e = object.takerFeePpm) !== null && _e !== void 0 ? _e : 0; return message; } }; -function createBaseLongTermOrderPlacement() { - return { - order: undefined, - placementIndex: undefined - }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vZHlkeHByb3RvY29sL2ZlZXRpZXJzL3BhcmFtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdEQUEwQztBQUMxQywyQ0FBa0Q7QUE0Q2xELFNBQVMsNEJBQTRCO0lBQ25DLE9BQU87UUFDTCxLQUFLLEVBQUUsRUFBRTtLQUNWLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxrQkFBa0IsR0FBRztJQUNoQyxNQUFNLENBQUMsT0FBMkIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUMxRSxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDN0Isd0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDaEU7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsNEJBQTRCLEVBQUUsQ0FBQztRQUUvQyxPQUFPLE1B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 + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/query.ts": +/*!****************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/query.ts ***! + \****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.QueryUserFeeTierResponse = exports.QueryUserFeeTierRequest = exports.QueryPerpetualFeeParamsResponse = exports.QueryPerpetualFeeParamsRequest = void 0; +const params_1 = __webpack_require__(/*! ./params */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/params.ts"); +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +function createBaseQueryPerpetualFeeParamsRequest() { + return {}; } -exports.LongTermOrderPlacement = { - encode(message, writer = _m0.Writer.create()) { - if (message.order !== undefined) { - exports.Order.encode(message.order, writer.uint32(10).fork()).ldelim(); - } - if (message.placementIndex !== undefined) { - exports.TransactionOrdering.encode(message.placementIndex, writer.uint32(18).fork()).ldelim(); - } +exports.QueryPerpetualFeeParamsRequest = { + encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseLongTermOrderPlacement(); + const message = createBaseQueryPerpetualFeeParamsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.order = exports.Order.decode(reader, reader.uint32()); - break; - case 2: - message.placementIndex = exports.TransactionOrdering.decode(reader, reader.uint32()); - break; default: reader.skipType(tag & 7); break; @@ -186902,48 +187345,32 @@ exports.LongTermOrderPlacement = { } return message; }, - fromPartial(object) { - const message = createBaseLongTermOrderPlacement(); - message.order = object.order !== undefined && object.order !== null ? exports.Order.fromPartial(object.order) : undefined; - message.placementIndex = object.placementIndex !== undefined && object.placementIndex !== null ? exports.TransactionOrdering.fromPartial(object.placementIndex) : undefined; + fromPartial(_) { + const message = createBaseQueryPerpetualFeeParamsRequest(); return message; } }; -function createBaseConditionalOrderPlacement() { +function createBaseQueryPerpetualFeeParamsResponse() { return { - order: undefined, - placementIndex: undefined, - triggerIndex: undefined + params: undefined }; } -exports.ConditionalOrderPlacement = { +exports.QueryPerpetualFeeParamsResponse = { encode(message, writer = _m0.Writer.create()) { - if (message.order !== undefined) { - exports.Order.encode(message.order, writer.uint32(10).fork()).ldelim(); - } - if (message.placementIndex !== undefined) { - exports.TransactionOrdering.encode(message.placementIndex, writer.uint32(18).fork()).ldelim(); - } - if (message.triggerIndex !== undefined) { - exports.TransactionOrdering.encode(message.triggerIndex, writer.uint32(26).fork()).ldelim(); + if (message.params !== undefined) { + params_1.PerpetualFeeParams.encode(message.params, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseConditionalOrderPlacement(); + const message = createBaseQueryPerpetualFeeParamsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.order = exports.Order.decode(reader, reader.uint32()); - break; - case 2: - message.placementIndex = exports.TransactionOrdering.decode(reader, reader.uint32()); - break; - case 3: - message.triggerIndex = exports.TransactionOrdering.decode(reader, reader.uint32()); + message.params = params_1.PerpetualFeeParams.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -186953,104 +187380,32 @@ exports.ConditionalOrderPlacement = { return message; }, fromPartial(object) { - const message = createBaseConditionalOrderPlacement(); - message.order = object.order !== undefined && object.order !== null ? exports.Order.fromPartial(object.order) : undefined; - message.placementIndex = object.placementIndex !== undefined && object.placementIndex !== null ? exports.TransactionOrdering.fromPartial(object.placementIndex) : undefined; - message.triggerIndex = object.triggerIndex !== undefined && object.triggerIndex !== null ? exports.TransactionOrdering.fromPartial(object.triggerIndex) : undefined; + const message = createBaseQueryPerpetualFeeParamsResponse(); + message.params = object.params !== undefined && object.params !== null ? params_1.PerpetualFeeParams.fromPartial(object.params) : undefined; return message; } }; -function createBaseOrder() { +function createBaseQueryUserFeeTierRequest() { return { - orderId: undefined, - side: 0, - quantums: helpers_1.Long.UZERO, - subticks: helpers_1.Long.UZERO, - goodTilBlock: undefined, - goodTilBlockTime: undefined, - timeInForce: 0, - reduceOnly: false, - clientMetadata: 0, - conditionType: 0, - conditionalOrderTriggerSubticks: helpers_1.Long.UZERO + user: "" }; } -exports.Order = { +exports.QueryUserFeeTierRequest = { encode(message, writer = _m0.Writer.create()) { - if (message.orderId !== undefined) { - exports.OrderId.encode(message.orderId, writer.uint32(10).fork()).ldelim(); - } - if (message.side !== 0) { - writer.uint32(16).int32(message.side); - } - if (!message.quantums.isZero()) { - writer.uint32(24).uint64(message.quantums); - } - if (!message.subticks.isZero()) { - writer.uint32(32).uint64(message.subticks); - } - if (message.goodTilBlock !== undefined) { - writer.uint32(40).uint32(message.goodTilBlock); - } - if (message.goodTilBlockTime !== undefined) { - writer.uint32(53).fixed32(message.goodTilBlockTime); - } - if (message.timeInForce !== 0) { - writer.uint32(56).int32(message.timeInForce); - } - if (message.reduceOnly === true) { - writer.uint32(64).bool(message.reduceOnly); - } - if (message.clientMetadata !== 0) { - writer.uint32(72).uint32(message.clientMetadata); - } - if (message.conditionType !== 0) { - writer.uint32(80).int32(message.conditionType); - } - if (!message.conditionalOrderTriggerSubticks.isZero()) { - writer.uint32(88).uint64(message.conditionalOrderTriggerSubticks); + if (message.user !== "") { + writer.uint32(10).string(message.user); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseOrder(); + const message = createBaseQueryUserFeeTierRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.orderId = exports.OrderId.decode(reader, reader.uint32()); - break; - case 2: - message.side = reader.int32(); - break; - case 3: - message.quantums = reader.uint64(); - break; - case 4: - message.subticks = reader.uint64(); - break; - case 5: - message.goodTilBlock = reader.uint32(); - break; - case 6: - message.goodTilBlockTime = reader.fixed32(); - break; - case 7: - message.timeInForce = reader.int32(); - break; - case 8: - message.reduceOnly = reader.bool(); - break; - case 9: - message.clientMetadata = reader.uint32(); - break; - case 10: - message.conditionType = reader.int32(); - break; - case 11: - message.conditionalOrderTriggerSubticks = reader.uint64(); + message.user = reader.string(); break; default: reader.skipType(tag & 7); @@ -187060,50 +187415,40 @@ exports.Order = { return message; }, fromPartial(object) { - var _a, _b, _c, _d, _e, _f, _g; - const message = createBaseOrder(); - message.orderId = object.orderId !== undefined && object.orderId !== null ? exports.OrderId.fromPartial(object.orderId) : undefined; - message.side = (_a = object.side) !== null && _a !== void 0 ? _a : 0; - message.quantums = object.quantums !== undefined && object.quantums !== null ? helpers_1.Long.fromValue(object.quantums) : helpers_1.Long.UZERO; - message.subticks = object.subticks !== undefined && object.subticks !== null ? helpers_1.Long.fromValue(object.subticks) : helpers_1.Long.UZERO; - message.goodTilBlock = (_b = object.goodTilBlock) !== null && _b !== void 0 ? _b : undefined; - message.goodTilBlockTime = (_c = object.goodTilBlockTime) !== null && _c !== void 0 ? _c : undefined; - message.timeInForce = (_d = object.timeInForce) !== null && _d !== void 0 ? _d : 0; - message.reduceOnly = (_e = object.reduceOnly) !== null && _e !== void 0 ? _e : false; - message.clientMetadata = (_f = object.clientMetadata) !== null && _f !== void 0 ? _f : 0; - message.conditionType = (_g = object.conditionType) !== null && _g !== void 0 ? _g : 0; - message.conditionalOrderTriggerSubticks = object.conditionalOrderTriggerSubticks !== undefined && object.conditionalOrderTriggerSubticks !== null ? helpers_1.Long.fromValue(object.conditionalOrderTriggerSubticks) : helpers_1.Long.UZERO; + var _a; + const message = createBaseQueryUserFeeTierRequest(); + message.user = (_a = object.user) !== null && _a !== void 0 ? _a : ""; return message; } }; -function createBaseTransactionOrdering() { +function createBaseQueryUserFeeTierResponse() { return { - blockHeight: 0, - transactionIndex: 0 + index: 0, + tier: undefined }; } -exports.TransactionOrdering = { +exports.QueryUserFeeTierResponse = { encode(message, writer = _m0.Writer.create()) { - if (message.blockHeight !== 0) { - writer.uint32(8).uint32(message.blockHeight); + if (message.index !== 0) { + writer.uint32(8).uint32(message.index); } - if (message.transactionIndex !== 0) { - writer.uint32(16).uint32(message.transactionIndex); + if (message.tier !== undefined) { + params_1.PerpetualFeeTier.encode(message.tier, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseTransactionOrdering(); + const message = createBaseQueryUserFeeTierResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.blockHeight = reader.uint32(); + message.index = reader.uint32(); break; case 2: - message.transactionIndex = reader.uint32(); + message.tier = params_1.PerpetualFeeTier.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -187113,21 +187458,21 @@ exports.TransactionOrdering = { return message; }, fromPartial(object) { - var _a, _b; - const message = createBaseTransactionOrdering(); - message.blockHeight = (_a = object.blockHeight) !== null && _a !== void 0 ? _a : 0; - message.transactionIndex = (_b = object.transactionIndex) !== null && _b !== void 0 ? _b : 0; + var _a; + const message = createBaseQueryUserFeeTierResponse(); + message.index = (_a = object.index) !== null && _a !== void 0 ? _a : 0; + message.tier = object.tier !== undefined && object.tier !== null ? params_1.PerpetualFeeTier.fromPartial(object.tier) : undefined; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvY2xvYi9vcmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBEQUE4RTtBQUM5RSx3REFBMEM7QUFDMUMsMkNBQWtEO0FBQ2xEOzs7O0dBSUc7QUFFSCxJQUFZLFVBVVg7QUFWRCxXQUFZLFVBQVU7SUFDcEIsMEVBQTBFO0lBQzFFLG1FQUFvQixDQUFBO0lBRXBCLDREQUE0RDtJQUM1RCxtREFBWSxDQUFBO0lBRVosK0RBQStEO0lBQy9ELHFEQUFhLENBQUE7SUFDYiw0REFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBVlcsVUFBVSxHQUFWLGtCQUFVLEtBQVYsa0JBQVUsUUFVckI7QUFDWSxRQUFBLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztBQUM1QyxTQUFnQixrQkFBa0IsQ0FBQyxNQUFXO0lBQzVDLFFBQVEsTUFBTSxFQUFFO1FBQ2QsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLGtCQUFrQjtZQUNyQixPQUFPLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUVyQyxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssVUFBVTtZQUNiLE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUU3QixLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssV0FBVztZQUNkLE9BQU8sVUFBVSxDQUFDLFNBQVMsQ0FBQztRQUU5QixLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ1IsS0FBSyxjQUFjLENBQUM7UUFDcEI7WUFDRSxPQUFPLFVBQVUsQ0FBQyxZQUFZLENBQUM7S0FDbEM7QUFDSCxDQUFDO0FBbkJELGdEQW1CQztBQUNELFNBQWdCLGdCQUFnQixDQUFDLE1BQWtCO0lBQ2pELFFBQVEsTUFBTSxFQUFFO1FBQ2QsS0FB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvZmVldGllcnMvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxQ0FBb0g7QUFDcEgsd0RBQTBDO0FBc0QxQyxTQUFTLHdDQUF3QztJQUMvQyxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFWSxRQUFBLDhCQUE4QixHQUFHO0lBQzVDLE1BQU0sQ0FBQyxDQUFpQyxFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ2hGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyx3Q0FBd0MsRUFBRSxDQUFDO1FBRTNELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRTVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakI7b0JBQ0UsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3pCLE1BQU07YUFDVDtT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 /***/ }), -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order_removals.ts": -/*!*********************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order_removals.ts ***! - \*********************************************************************************************/ +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/params.ts": +/*!*******************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/params.ts ***! + \*******************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -187156,149 +187501,43 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.OrderRemoval = exports.orderRemoval_RemovalReasonToJSON = exports.orderRemoval_RemovalReasonFromJSON = exports.OrderRemoval_RemovalReasonSDKType = exports.OrderRemoval_RemovalReason = void 0; -const order_1 = __webpack_require__(/*! ./order */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order.ts"); +exports.Params = void 0; const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -var OrderRemoval_RemovalReason; -(function (OrderRemoval_RemovalReason) { - /** - * REMOVAL_REASON_UNSPECIFIED - REMOVAL_REASON_UNSPECIFIED represents an unspecified removal reason. This - * removal reason is used as a catchall and should never appear on an - * OrderRemoval in the operations queue. - */ - OrderRemoval_RemovalReason[OrderRemoval_RemovalReason["REMOVAL_REASON_UNSPECIFIED"] = 0] = "REMOVAL_REASON_UNSPECIFIED"; - /** - * REMOVAL_REASON_UNDERCOLLATERALIZED - REMOVAL_REASON_UNDERCOLLATERALIZED represents a removal of an order which - * if filled in isolation with respect to the current state of the - * subaccount would leave the subaccount undercollateralized. - */ - OrderRemoval_RemovalReason[OrderRemoval_RemovalReason["REMOVAL_REASON_UNDERCOLLATERALIZED"] = 1] = "REMOVAL_REASON_UNDERCOLLATERALIZED"; - /** - * REMOVAL_REASON_INVALID_REDUCE_ONLY - REMOVAL_REASON_INVALID_REDUCE_ONLY represents a removal of a reduce-only - * order which if filled in isolation with respect to the current state of - * the subaccount would cause the subaccount's existing position to increase - * or change sides. - */ - OrderRemoval_RemovalReason[OrderRemoval_RemovalReason["REMOVAL_REASON_INVALID_REDUCE_ONLY"] = 2] = "REMOVAL_REASON_INVALID_REDUCE_ONLY"; - /** - * REMOVAL_REASON_POST_ONLY_WOULD_CROSS_MAKER_ORDER - REMOVAL_REASON_POST_ONLY_WOULD_CROSS_MAKER_ORDER represents a removal of - * a stateful post-only order that was deemed invalid because it crossed - * maker orders on the book of the proposer. - */ - OrderRemoval_RemovalReason[OrderRemoval_RemovalReason["REMOVAL_REASON_POST_ONLY_WOULD_CROSS_MAKER_ORDER"] = 3] = "REMOVAL_REASON_POST_ONLY_WOULD_CROSS_MAKER_ORDER"; - /** - * REMOVAL_REASON_INVALID_SELF_TRADE - REMOVAL_REASON_INVALID_SELF_TRADE represents a removal of a stateful - * order that was deemed invalid because it constituted a self trade on the - * proposers orderbook. - */ - OrderRemoval_RemovalReason[OrderRemoval_RemovalReason["REMOVAL_REASON_INVALID_SELF_TRADE"] = 4] = "REMOVAL_REASON_INVALID_SELF_TRADE"; - /** - * REMOVAL_REASON_CONDITIONAL_FOK_COULD_NOT_BE_FULLY_FILLED - REMOVAL_REASON_CONDITIONAL_FOK_COULD_NOT_BE_FULLY_FILLED represents a - * removal of a conditional FOK order that was deemed invalid because it - * could not be completely filled. Conditional FOK orders should always be - * fully-filled or removed in the block after they are triggered. - */ - OrderRemoval_RemovalReason[OrderRemoval_RemovalReason["REMOVAL_REASON_CONDITIONAL_FOK_COULD_NOT_BE_FULLY_FILLED"] = 5] = "REMOVAL_REASON_CONDITIONAL_FOK_COULD_NOT_BE_FULLY_FILLED"; - /** - * REMOVAL_REASON_CONDITIONAL_IOC_WOULD_REST_ON_BOOK - REMOVAL_REASON_CONDITIONAL_IOC_WOULD_REST_ON_BOOK represents a removal - * of a conditional IOC order. - * Conditional IOC orders should always have their remaining size removed - * in the block after they are triggered. - */ - OrderRemoval_RemovalReason[OrderRemoval_RemovalReason["REMOVAL_REASON_CONDITIONAL_IOC_WOULD_REST_ON_BOOK"] = 6] = "REMOVAL_REASON_CONDITIONAL_IOC_WOULD_REST_ON_BOOK"; - /** - * REMOVAL_REASON_FULLY_FILLED - REMOVAL_REASON_FULLY_FILLED represents a removal of an order that - * was fully filled and should therefore be removed from state. - */ - OrderRemoval_RemovalReason[OrderRemoval_RemovalReason["REMOVAL_REASON_FULLY_FILLED"] = 7] = "REMOVAL_REASON_FULLY_FILLED"; - OrderRemoval_RemovalReason[OrderRemoval_RemovalReason["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(OrderRemoval_RemovalReason = exports.OrderRemoval_RemovalReason || (exports.OrderRemoval_RemovalReason = {})); -exports.OrderRemoval_RemovalReasonSDKType = OrderRemoval_RemovalReason; -function orderRemoval_RemovalReasonFromJSON(object) { - switch (object) { - case 0: - case "REMOVAL_REASON_UNSPECIFIED": - return OrderRemoval_RemovalReason.REMOVAL_REASON_UNSPECIFIED; - case 1: - case "REMOVAL_REASON_UNDERCOLLATERALIZED": - return OrderRemoval_RemovalReason.REMOVAL_REASON_UNDERCOLLATERALIZED; - case 2: - case "REMOVAL_REASON_INVALID_REDUCE_ONLY": - return OrderRemoval_RemovalReason.REMOVAL_REASON_INVALID_REDUCE_ONLY; - case 3: - case "REMOVAL_REASON_POST_ONLY_WOULD_CROSS_MAKER_ORDER": - return OrderRemoval_RemovalReason.REMOVAL_REASON_POST_ONLY_WOULD_CROSS_MAKER_ORDER; - case 4: - case "REMOVAL_REASON_INVALID_SELF_TRADE": - return OrderRemoval_RemovalReason.REMOVAL_REASON_INVALID_SELF_TRADE; - case 5: - case "REMOVAL_REASON_CONDITIONAL_FOK_COULD_NOT_BE_FULLY_FILLED": - return OrderRemoval_RemovalReason.REMOVAL_REASON_CONDITIONAL_FOK_COULD_NOT_BE_FULLY_FILLED; - case 6: - case "REMOVAL_REASON_CONDITIONAL_IOC_WOULD_REST_ON_BOOK": - return OrderRemoval_RemovalReason.REMOVAL_REASON_CONDITIONAL_IOC_WOULD_REST_ON_BOOK; - case 7: - case "REMOVAL_REASON_FULLY_FILLED": - return OrderRemoval_RemovalReason.REMOVAL_REASON_FULLY_FILLED; - case -1: - case "UNRECOGNIZED": - default: - return OrderRemoval_RemovalReason.UNRECOGNIZED; - } -} -exports.orderRemoval_RemovalReasonFromJSON = orderRemoval_RemovalReasonFromJSON; -function orderRemoval_RemovalReasonToJSON(object) { - switch (object) { - case OrderRemoval_RemovalReason.REMOVAL_REASON_UNSPECIFIED: - return "REMOVAL_REASON_UNSPECIFIED"; - case OrderRemoval_RemovalReason.REMOVAL_REASON_UNDERCOLLATERALIZED: - return "REMOVAL_REASON_UNDERCOLLATERALIZED"; - case OrderRemoval_RemovalReason.REMOVAL_REASON_INVALID_REDUCE_ONLY: - return "REMOVAL_REASON_INVALID_REDUCE_ONLY"; - case OrderRemoval_RemovalReason.REMOVAL_REASON_POST_ONLY_WOULD_CROSS_MAKER_ORDER: - return "REMOVAL_REASON_POST_ONLY_WOULD_CROSS_MAKER_ORDER"; - case OrderRemoval_RemovalReason.REMOVAL_REASON_INVALID_SELF_TRADE: - return "REMOVAL_REASON_INVALID_SELF_TRADE"; - case OrderRemoval_RemovalReason.REMOVAL_REASON_CONDITIONAL_FOK_COULD_NOT_BE_FULLY_FILLED: - return "REMOVAL_REASON_CONDITIONAL_FOK_COULD_NOT_BE_FULLY_FILLED"; - case OrderRemoval_RemovalReason.REMOVAL_REASON_CONDITIONAL_IOC_WOULD_REST_ON_BOOK: - return "REMOVAL_REASON_CONDITIONAL_IOC_WOULD_REST_ON_BOOK"; - case OrderRemoval_RemovalReason.REMOVAL_REASON_FULLY_FILLED: - return "REMOVAL_REASON_FULLY_FILLED"; - case OrderRemoval_RemovalReason.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -exports.orderRemoval_RemovalReasonToJSON = orderRemoval_RemovalReasonToJSON; -function createBaseOrderRemoval() { +function createBaseParams() { return { - orderId: undefined, - removalReason: 0 + fundingRateClampFactorPpm: 0, + premiumVoteClampFactorPpm: 0, + minNumVotesPerSample: 0 }; } -exports.OrderRemoval = { +exports.Params = { encode(message, writer = _m0.Writer.create()) { - if (message.orderId !== undefined) { - order_1.OrderId.encode(message.orderId, writer.uint32(10).fork()).ldelim(); + if (message.fundingRateClampFactorPpm !== 0) { + writer.uint32(8).uint32(message.fundingRateClampFactorPpm); } - if (message.removalReason !== 0) { - writer.uint32(16).int32(message.removalReason); + if (message.premiumVoteClampFactorPpm !== 0) { + writer.uint32(16).uint32(message.premiumVoteClampFactorPpm); + } + if (message.minNumVotesPerSample !== 0) { + writer.uint32(24).uint32(message.minNumVotesPerSample); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseOrderRemoval(); + const message = createBaseParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.orderId = order_1.OrderId.decode(reader, reader.uint32()); + message.fundingRateClampFactorPpm = reader.uint32(); break; case 2: - message.removalReason = reader.int32(); + message.premiumVoteClampFactorPpm = reader.uint32(); + break; + case 3: + message.minNumVotesPerSample = reader.uint32(); break; default: reader.skipType(tag & 7); @@ -187308,21 +187547,22 @@ exports.OrderRemoval = { return message; }, fromPartial(object) { - var _a; - const message = createBaseOrderRemoval(); - message.orderId = object.orderId !== undefined && object.orderId !== null ? order_1.OrderId.fromPartial(object.orderId) : undefined; - message.removalReason = (_a = object.removalReason) !== null && _a !== void 0 ? _a : 0; + var _a, _b, _c; + const message = createBaseParams(); + message.fundingRateClampFactorPpm = (_a = object.fundingRateClampFactorPpm) !== null && _a !== void 0 ? _a : 0; + message.premiumVoteClampFactorPpm = (_b = object.premiumVoteClampFactorPpm) !== null && _b !== void 0 ? _b : 0; + message.minNumVotesPerSample = (_c = object.minNumVotesPerSample) !== null && _c !== void 0 ? _c : 0; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJfcmVtb3ZhbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvY2xvYi9vcmRlcl9yZW1vdmFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFrRDtBQUNsRCx3REFBMEM7QUFFMUMsSUFBWSwwQkEyRFg7QUEzREQsV0FBWSwwQkFBMEI7SUFDcEM7Ozs7T0FJRztJQUNILHVIQUE4QixDQUFBO0lBRTlCOzs7O09BSUc7SUFDSCx1SUFBc0MsQ0FBQTtJQUV0Qzs7Ozs7T0FLRztJQUNILHVJQUFzQyxDQUFBO0lBRXRDOzs7O09BSUc7SUFDSCxtS0FBb0QsQ0FBQTtJQUVwRDs7OztPQUlHO0lBQ0gscUlBQXFDLENBQUE7SUFFckM7Ozs7O09BS0c7SUFDSCxtTEFBNEQsQ0FBQTtJQUU1RDs7Ozs7T0FLRztJQUNILHFLQUFxRCxDQUFBO0lBRXJEOzs7T0FHRztJQUNILHlIQUErQixDQUFBO0lBQy9CLDRGQUFpQixDQUFBO0FBQ25CLENBQUMsRUEzRFcsMEJBQTBCLEdBQTFCLGtDQUEwQixLQUExQixrQ0FBMEIsUUEyRHJDO0FBQ1ksUUFBQSxpQ0FBaUMsR0FBRywwQkFBMEIsQ0FBQztBQUM1RSxTQUFnQixrQ0FBa0MsQ0FBQyxNQUFXO0lBQzVELFFBQVEsTUFBTSxFQUFFO1FBQ2QsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLDRCQUE0QjtZQUMvQixPQUFPLDBCQUEwQixDQUFDLDBCQUEwQixDQUFDO1FBRS9ELEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxvQ0FBb0M7WUFDdkMsT0FBTywwQkFBMEIsQ0FBQyxrQ0FBa0MsQ0FBQztRQUV2RSxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssb0NBQW9DO1lBQ3ZDLE9BQU8sMEJBQTBCLENBQUMsa0NBQWtDLENBQUM7UUFFdkUsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLGtEQUFrRDtZQUNyRCxPQUFPLDBCQUEwQixDQUFDLGdEQUFnRCxDQUFDO1FBRXJGLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxtQ0FBbUM7WUFDdEMsT0FBTywwQkFBMEIsQ0FBQyxpQ0FBaUMsQ0FBQztRQUV0RSxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssMERBQTBEO1lBQzdELE9BQU8sMEJBQTBCLENBQUMsd0RBQXdELENBQUM7UUFFN0YsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLG1EQUFtRDtZQUN0RCxPQUFPLDBCQUEwQixDQUFDLGlEQUFpRCxDQUFDO1FBRXRGLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyw2QkFBNkI7WUFDaEMsT0FBTywwQkFBMEIsQ0FBQywyQkFBMkIsQ0FBQztRQUVoRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ1IsS0FBSyxjQUFjLENBQUM7UUFDcEI7WUFDRSxPQUFPLDBCQUEwQixDQUFDLFlBQVksQ0FBQztLQUNsRDtBQUNILENBQUM7QUF2Q0QsZ0ZBdUNDO0FBQ0QsU0FBZ0IsZ0NBQWdDLENBQUMsTUFBa0M7SUFDakYsUUFBUSxNQUFNLEVBQUU7UUFDZCxLQUFLLDBCQUEwQixDQUFDLDBCQUEwQjtZQUN4RCxPQUFPLDRCQUE0QixDQUFDO1FBRXRDLEtBQUssMEJBQTBCLENBQUMsa0NBQWtDO1lBQ2hFLE9BQU8sb0NBQW9DLENBQUM7UUFFOUMsS0FBSywwQkFBMEIsQ0FBQyxrQ0FBa0M7WUFDaEUsT0FBTyxvQ0FBb0MsQ0FBQztRQUU5QyxLQUFLLDBCQUEwQixDQUFDLGdEQUFnRDtZQUM5RSxPQUFPLGtEQUFrRCxDQUFDO1FBRTVELEtBQUssMEJBQTBCLENBQUMsaUNBQWlDO1lBQy9ELE9BQU8sbUNBQW1DLENBQUM7UUFFN0MsS0FBSywwQkFBMEIsQ0FBQyx3REFBd0Q7WUFDdEYsT0FBTywwREFBMEQsQ0FBQztRQUVwRSxLQUFLLDBCQUEwQixDQUFDLGlEQUFpRDtZQUMvRSxPQUFPLG1EQUFtRCxDQUFDO1FBRTdELEtBQUssMEJBQTBCLENBQUMsMkJBQTJCO1lBQ3pELE9BQU8sNkJBQTZCLENBQUM7UUFFdkMsS0FBSywwQkFBMEIsQ0FBQyxZQUFZLENBQUM7UUFDN0M7WUFDRSxPQUFPLGNBQWMsQ0FBQztLQUN6QjtBQUNILENBQUM7QUE5QkQsNEVBOEJDO0FBY0QsU0FBUyxzQkFBc0I7SUFDN0IsT0FBTztRQUNMLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLGFBQWEsRUFBRSxDQUFDO0tBQ2pCLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxZQUFZLEdBQUc7SUFDMUIsTUFBTSxDQUFDLE9BQXFCLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDcEUsSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTtZQUNqQyxlQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3BFO1FBRUQsSUFBSSxPQUFPLENBQUMsYUFBYSxLQUFLLENBQUMsRUFBRTtZQUMvQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDaEQ7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLEVBQUUsQ0FBQztRQUV6QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUU1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsT0FBTyxHQUFHLGVBQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUMxRCxNQUFNO2dCQUVSLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsYUFBYSxHQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQVUsQ0FBQztvQkFDaEQsTUFBTTtnQkFFUjtvQkFDRSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDekIsTUFBTTthQUNUO1NBQ0Y7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWlDOztRQUMzQyxNQUFNLE9BQU8sR0FBRyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDNUgsT0FBTyxDQUFDLGFBQWEsR0FBRyxNQUFBLE1BQU0sQ0FBQyxhQUFhLG1DQUFJLENBQUMsQ0FBQztRQUNsRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBRUYsQ0FBQyJ9 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vZHlkeHByb3RvY29sL3BlcnBldHVhbHMvcGFyYW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0RBQTBDO0FBaUMxQyxTQUFTLGdCQUFnQjtJQUN2QixPQUFPO1FBQ0wseUJBQXlCLEVBQUUsQ0FBQztRQUM1Qix5QkFBeUIsRUFBRSxDQUFDO1FBQzVCLG9CQUFvQixFQUFFLENBQUM7S0FDeEIsQ0FBQztBQUNKLENBQUM7QUFFWSxRQUFBLE1BQU0sR0FBRztJQUNwQixNQUFNLENBQUMsT0FBZSxFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQzlELElBQUksT0FBTyxDQUFDLHlCQUF5QixLQUFLLENBQUMsRUFBRTtZQUMzQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztTQUM1RDtRQUVELElBQUksT0FBTyxDQUFDLHlCQUF5QixLQUFLLENBQUMsRUFBRTtZQUMzQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztTQUM3RDtRQUVELElBQUksT0FBTyxDQUFDLG9CQUFvQixLQUFLLENBQUMsRUFBRTtZQUN0QyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUN4RDtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBRW5DLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRTVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLE9BQU8sQ0FBQyx5QkFBeUIsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3BELE1BQU07Z0JBRVIsS0FBSyxDQUFDO29CQUNKLE9BQU8sQ0FBQyx5QkFBeUIsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3BELE1BQU07Z0JBRVIsS0FBSyxDQUFDO29CQUNKLE9BQU8sQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQy9DLE1BQU07Z0JBRVI7b0JBQ0UsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3pCLE1BQU07YUFDVDtTQUNGO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUEyQjs7UUFDckMsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUNuQyxPQUFPLENBQUMseUJBQXlCLEdBQUcsTUFBQSxNQUFNLENBQUMseUJBQXlCLG1DQUFJLENBQUMsQ0FBQztRQUMxRSxPQUFPLENBQUMseUJBQXlCLEdBQUcsTUFBQSxNQUFNLENBQUMseUJBQXlCLG1DQUFJLENBQUMsQ0FBQztRQUMxRSxPQUFPLENBQUMsb0JBQW9CLEdBQUcsTUFBQSxNQUFNLENBQUMsb0JBQW9CLG1DQUFJLENBQUMsQ0FBQztRQUNoRSxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBRUYsQ0FBQyJ9 /***/ }), -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/query.ts": -/*!************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/query.ts ***! - \************************************************************************************/ +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/perpetual.ts": +/*!**********************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/perpetual.ts ***! + \**********************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -187351,35 +187591,37 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.QueryEquityTierLimitConfigurationResponse = exports.QueryEquityTierLimitConfigurationRequest = exports.MevNodeToNodeCalculationResponse_MevAndVolumePerClob = exports.MevNodeToNodeCalculationResponse = exports.MevNodeToNodeCalculationRequest = exports.AreSubaccountsLiquidatableResponse_Result = exports.AreSubaccountsLiquidatableResponse = exports.AreSubaccountsLiquidatableRequest = exports.QueryClobPairAllResponse = exports.QueryAllClobPairRequest = exports.QueryClobPairResponse = exports.QueryGetClobPairRequest = void 0; -const pagination_1 = __webpack_require__(/*! ../../cosmos/base/query/v1beta1/pagination */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/query/v1beta1/pagination.ts"); -const subaccount_1 = __webpack_require__(/*! ../subaccounts/subaccount */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/subaccount.ts"); -const mev_1 = __webpack_require__(/*! ./mev */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/mev.ts"); -const clob_pair_1 = __webpack_require__(/*! ./clob_pair */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/clob_pair.ts"); -const equity_tier_limit_config_1 = __webpack_require__(/*! ./equity_tier_limit_config */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/equity_tier_limit_config.ts"); +exports.LiquidityTier = exports.PremiumStore = exports.MarketPremiums = exports.PerpetualParams = exports.Perpetual = void 0; const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); -function createBaseQueryGetClobPairRequest() { +function createBasePerpetual() { return { - id: 0 + params: undefined, + fundingIndex: new Uint8Array() }; } -exports.QueryGetClobPairRequest = { +exports.Perpetual = { encode(message, writer = _m0.Writer.create()) { - if (message.id !== 0) { - writer.uint32(8).uint32(message.id); + if (message.params !== undefined) { + exports.PerpetualParams.encode(message.params, writer.uint32(10).fork()).ldelim(); + } + if (message.fundingIndex.length !== 0) { + writer.uint32(18).bytes(message.fundingIndex); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryGetClobPairRequest(); + const message = createBasePerpetual(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.id = reader.uint32(); + message.params = exports.PerpetualParams.decode(reader, reader.uint32()); + break; + case 2: + message.fundingIndex = reader.bytes(); break; default: reader.skipType(tag & 7); @@ -187390,32 +187632,68 @@ exports.QueryGetClobPairRequest = { }, fromPartial(object) { var _a; - const message = createBaseQueryGetClobPairRequest(); - message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0; + const message = createBasePerpetual(); + message.params = object.params !== undefined && object.params !== null ? exports.PerpetualParams.fromPartial(object.params) : undefined; + message.fundingIndex = (_a = object.fundingIndex) !== null && _a !== void 0 ? _a : new Uint8Array(); return message; } }; -function createBaseQueryClobPairResponse() { +function createBasePerpetualParams() { return { - clobPair: undefined + id: 0, + ticker: "", + marketId: 0, + atomicResolution: 0, + defaultFundingPpm: 0, + liquidityTier: 0 }; } -exports.QueryClobPairResponse = { +exports.PerpetualParams = { encode(message, writer = _m0.Writer.create()) { - if (message.clobPair !== undefined) { - clob_pair_1.ClobPair.encode(message.clobPair, writer.uint32(10).fork()).ldelim(); + if (message.id !== 0) { + writer.uint32(8).uint32(message.id); + } + if (message.ticker !== "") { + writer.uint32(18).string(message.ticker); + } + if (message.marketId !== 0) { + writer.uint32(24).uint32(message.marketId); + } + if (message.atomicResolution !== 0) { + writer.uint32(32).sint32(message.atomicResolution); + } + if (message.defaultFundingPpm !== 0) { + writer.uint32(40).sint32(message.defaultFundingPpm); + } + if (message.liquidityTier !== 0) { + writer.uint32(48).uint32(message.liquidityTier); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryClobPairResponse(); + const message = createBasePerpetualParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.clobPair = clob_pair_1.ClobPair.decode(reader, reader.uint32()); + message.id = reader.uint32(); + break; + case 2: + message.ticker = reader.string(); + break; + case 3: + message.marketId = reader.uint32(); + break; + case 4: + message.atomicResolution = reader.sint32(); + break; + case 5: + message.defaultFundingPpm = reader.sint32(); + break; + case 6: + message.liquidityTier = reader.uint32(); break; default: reader.skipType(tag & 7); @@ -187425,32 +187703,55 @@ exports.QueryClobPairResponse = { return message; }, fromPartial(object) { - const message = createBaseQueryClobPairResponse(); - message.clobPair = object.clobPair !== undefined && object.clobPair !== null ? clob_pair_1.ClobPair.fromPartial(object.clobPair) : undefined; + var _a, _b, _c, _d, _e, _f; + const message = createBasePerpetualParams(); + message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0; + message.ticker = (_b = object.ticker) !== null && _b !== void 0 ? _b : ""; + message.marketId = (_c = object.marketId) !== null && _c !== void 0 ? _c : 0; + message.atomicResolution = (_d = object.atomicResolution) !== null && _d !== void 0 ? _d : 0; + message.defaultFundingPpm = (_e = object.defaultFundingPpm) !== null && _e !== void 0 ? _e : 0; + message.liquidityTier = (_f = object.liquidityTier) !== null && _f !== void 0 ? _f : 0; return message; } }; -function createBaseQueryAllClobPairRequest() { +function createBaseMarketPremiums() { return { - pagination: undefined + perpetualId: 0, + premiums: [] }; } -exports.QueryAllClobPairRequest = { +exports.MarketPremiums = { encode(message, writer = _m0.Writer.create()) { - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); + if (message.perpetualId !== 0) { + writer.uint32(8).uint32(message.perpetualId); + } + writer.uint32(18).fork(); + for (const v of message.premiums) { + writer.sint32(v); } + writer.ldelim(); return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllClobPairRequest(); + const message = createBaseMarketPremiums(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.perpetualId = reader.uint32(); + break; + case 2: + if ((tag & 7) === 2) { + const end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) { + message.premiums.push(reader.sint32()); + } + } + else { + message.premiums.push(reader.sint32()); + } break; default: reader.skipType(tag & 7); @@ -187460,39 +187761,41 @@ exports.QueryAllClobPairRequest = { return message; }, fromPartial(object) { - const message = createBaseQueryAllClobPairRequest(); - message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; + var _a, _b; + const message = createBaseMarketPremiums(); + message.perpetualId = (_a = object.perpetualId) !== null && _a !== void 0 ? _a : 0; + message.premiums = ((_b = object.premiums) === null || _b === void 0 ? void 0 : _b.map(e => e)) || []; return message; } }; -function createBaseQueryClobPairAllResponse() { +function createBasePremiumStore() { return { - clobPair: [], - pagination: undefined + allMarketPremiums: [], + numPremiums: 0 }; } -exports.QueryClobPairAllResponse = { +exports.PremiumStore = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.clobPair) { - clob_pair_1.ClobPair.encode(v, writer.uint32(10).fork()).ldelim(); + for (const v of message.allMarketPremiums) { + exports.MarketPremiums.encode(v, writer.uint32(10).fork()).ldelim(); } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (message.numPremiums !== 0) { + writer.uint32(16).uint32(message.numPremiums); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryClobPairAllResponse(); + const message = createBasePremiumStore(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.clobPair.push(clob_pair_1.ClobPair.decode(reader, reader.uint32())); + message.allMarketPremiums.push(exports.MarketPremiums.decode(reader, reader.uint32())); break; case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + message.numPremiums = reader.uint32(); break; default: reader.skipType(tag & 7); @@ -187502,34 +187805,69 @@ exports.QueryClobPairAllResponse = { return message; }, fromPartial(object) { - var _a; - const message = createBaseQueryClobPairAllResponse(); - message.clobPair = ((_a = object.clobPair) === null || _a === void 0 ? void 0 : _a.map(e => clob_pair_1.ClobPair.fromPartial(e))) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; + var _a, _b; + const message = createBasePremiumStore(); + message.allMarketPremiums = ((_a = object.allMarketPremiums) === null || _a === void 0 ? void 0 : _a.map(e => exports.MarketPremiums.fromPartial(e))) || []; + message.numPremiums = (_b = object.numPremiums) !== null && _b !== void 0 ? _b : 0; return message; } }; -function createBaseAreSubaccountsLiquidatableRequest() { +function createBaseLiquidityTier() { return { - subaccountIds: [] + id: 0, + name: "", + initialMarginPpm: 0, + maintenanceFractionPpm: 0, + basePositionNotional: helpers_1.Long.UZERO, + impactNotional: helpers_1.Long.UZERO }; } -exports.AreSubaccountsLiquidatableRequest = { +exports.LiquidityTier = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.subaccountIds) { - subaccount_1.SubaccountId.encode(v, writer.uint32(10).fork()).ldelim(); + if (message.id !== 0) { + writer.uint32(8).uint32(message.id); + } + if (message.name !== "") { + writer.uint32(18).string(message.name); + } + if (message.initialMarginPpm !== 0) { + writer.uint32(24).uint32(message.initialMarginPpm); + } + if (message.maintenanceFractionPpm !== 0) { + writer.uint32(32).uint32(message.maintenanceFractionPpm); + } + if (!message.basePositionNotional.isZero()) { + writer.uint32(40).uint64(message.basePositionNotional); + } + if (!message.impactNotional.isZero()) { + writer.uint32(48).uint64(message.impactNotional); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAreSubaccountsLiquidatableRequest(); + const message = createBaseLiquidityTier(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.subaccountIds.push(subaccount_1.SubaccountId.decode(reader, reader.uint32())); + message.id = reader.uint32(); + break; + case 2: + message.name = reader.string(); + break; + case 3: + message.initialMarginPpm = reader.uint32(); + break; + case 4: + message.maintenanceFractionPpm = reader.uint32(); + break; + case 5: + message.basePositionNotional = reader.uint64(); + break; + case 6: + message.impactNotional = reader.uint64(); break; default: reader.skipType(tag & 7); @@ -187539,33 +187877,79 @@ exports.AreSubaccountsLiquidatableRequest = { return message; }, fromPartial(object) { - var _a; - const message = createBaseAreSubaccountsLiquidatableRequest(); - message.subaccountIds = ((_a = object.subaccountIds) === null || _a === void 0 ? void 0 : _a.map(e => subaccount_1.SubaccountId.fromPartial(e))) || []; + var _a, _b, _c, _d; + const message = createBaseLiquidityTier(); + message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0; + message.name = (_b = object.name) !== null && _b !== void 0 ? _b : ""; + message.initialMarginPpm = (_c = object.initialMarginPpm) !== null && _c !== void 0 ? _c : 0; + message.maintenanceFractionPpm = (_d = object.maintenanceFractionPpm) !== null && _d !== void 0 ? _d : 0; + message.basePositionNotional = object.basePositionNotional !== undefined && object.basePositionNotional !== null ? helpers_1.Long.fromValue(object.basePositionNotional) : helpers_1.Long.UZERO; + message.impactNotional = object.impactNotional !== undefined && object.impactNotional !== null ? helpers_1.Long.fromValue(object.impactNotional) : helpers_1.Long.UZERO; return message; } }; -function createBaseAreSubaccountsLiquidatableResponse() { +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVycGV0dWFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vZHlkeHByb3RvY29sL3BlcnBldHVhbHMvcGVycGV0dWFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0RBQTBDO0FBQzFDLDJDQUFrRDtBQXNMbEQsU0FBUyxtQkFBbUI7SUFDMUIsT0FBTztRQUNMLE1BQU0sRUFBRSxTQUFTO1FBQ2pCLFlBQVksRUFBRSxJQUFJLFVBQVUsRUFBRTtLQUMvQixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsU0FBUyxHQUFHO0lBQ3ZCLE1BQU0sQ0FBQyxPQUFrQixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ2pFLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDaEMsdUJBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDM0U7UUFFRCxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDL0M7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FB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 + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/query.ts": +/*!******************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/query.ts ***! + \******************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryPremiumSamplesResponse = exports.QueryPremiumSamplesRequest = exports.QueryPremiumVotesResponse = exports.QueryPremiumVotesRequest = exports.QueryAllLiquidityTiersResponse = exports.QueryAllLiquidityTiersRequest = exports.QueryAllPerpetualsResponse = exports.QueryAllPerpetualsRequest = exports.QueryPerpetualResponse = exports.QueryPerpetualRequest = void 0; +const pagination_1 = __webpack_require__(/*! ../../cosmos/base/query/v1beta1/pagination */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/query/v1beta1/pagination.ts"); +const perpetual_1 = __webpack_require__(/*! ./perpetual */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/perpetual.ts"); +const params_1 = __webpack_require__(/*! ./params */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/params.ts"); +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +function createBaseQueryPerpetualRequest() { return { - results: [] + id: 0 }; } -exports.AreSubaccountsLiquidatableResponse = { +exports.QueryPerpetualRequest = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.results) { - exports.AreSubaccountsLiquidatableResponse_Result.encode(v, writer.uint32(10).fork()).ldelim(); + if (message.id !== 0) { + writer.uint32(8).uint32(message.id); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAreSubaccountsLiquidatableResponse(); + const message = createBaseQueryPerpetualRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.results.push(exports.AreSubaccountsLiquidatableResponse_Result.decode(reader, reader.uint32())); + message.id = reader.uint32(); break; default: reader.skipType(tag & 7); @@ -187576,39 +187960,32 @@ exports.AreSubaccountsLiquidatableResponse = { }, fromPartial(object) { var _a; - const message = createBaseAreSubaccountsLiquidatableResponse(); - message.results = ((_a = object.results) === null || _a === void 0 ? void 0 : _a.map(e => exports.AreSubaccountsLiquidatableResponse_Result.fromPartial(e))) || []; + const message = createBaseQueryPerpetualRequest(); + message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0; return message; } }; -function createBaseAreSubaccountsLiquidatableResponse_Result() { +function createBaseQueryPerpetualResponse() { return { - subaccountId: undefined, - isLiquidatable: false + perpetual: undefined }; } -exports.AreSubaccountsLiquidatableResponse_Result = { +exports.QueryPerpetualResponse = { encode(message, writer = _m0.Writer.create()) { - if (message.subaccountId !== undefined) { - subaccount_1.SubaccountId.encode(message.subaccountId, writer.uint32(10).fork()).ldelim(); - } - if (message.isLiquidatable === true) { - writer.uint32(16).bool(message.isLiquidatable); + if (message.perpetual !== undefined) { + perpetual_1.Perpetual.encode(message.perpetual, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseAreSubaccountsLiquidatableResponse_Result(); + const message = createBaseQueryPerpetualResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.subaccountId = subaccount_1.SubaccountId.decode(reader, reader.uint32()); - break; - case 2: - message.isLiquidatable = reader.bool(); + message.perpetual = perpetual_1.Perpetual.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -187618,41 +187995,32 @@ exports.AreSubaccountsLiquidatableResponse_Result = { return message; }, fromPartial(object) { - var _a; - const message = createBaseAreSubaccountsLiquidatableResponse_Result(); - message.subaccountId = object.subaccountId !== undefined && object.subaccountId !== null ? subaccount_1.SubaccountId.fromPartial(object.subaccountId) : undefined; - message.isLiquidatable = (_a = object.isLiquidatable) !== null && _a !== void 0 ? _a : false; + const message = createBaseQueryPerpetualResponse(); + message.perpetual = object.perpetual !== undefined && object.perpetual !== null ? perpetual_1.Perpetual.fromPartial(object.perpetual) : undefined; return message; } }; -function createBaseMevNodeToNodeCalculationRequest() { +function createBaseQueryAllPerpetualsRequest() { return { - blockProposerMatches: undefined, - validatorMevMetrics: undefined + pagination: undefined }; } -exports.MevNodeToNodeCalculationRequest = { +exports.QueryAllPerpetualsRequest = { encode(message, writer = _m0.Writer.create()) { - if (message.blockProposerMatches !== undefined) { - mev_1.ValidatorMevMatches.encode(message.blockProposerMatches, writer.uint32(10).fork()).ldelim(); - } - if (message.validatorMevMetrics !== undefined) { - mev_1.MevNodeToNodeMetrics.encode(message.validatorMevMetrics, writer.uint32(18).fork()).ldelim(); + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMevNodeToNodeCalculationRequest(); + const message = createBaseQueryAllPerpetualsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.blockProposerMatches = mev_1.ValidatorMevMatches.decode(reader, reader.uint32()); - break; - case 2: - message.validatorMevMetrics = mev_1.MevNodeToNodeMetrics.decode(reader, reader.uint32()); + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -187662,33 +188030,39 @@ exports.MevNodeToNodeCalculationRequest = { return message; }, fromPartial(object) { - const message = createBaseMevNodeToNodeCalculationRequest(); - message.blockProposerMatches = object.blockProposerMatches !== undefined && object.blockProposerMatches !== null ? mev_1.ValidatorMevMatches.fromPartial(object.blockProposerMatches) : undefined; - message.validatorMevMetrics = object.validatorMevMetrics !== undefined && object.validatorMevMetrics !== null ? mev_1.MevNodeToNodeMetrics.fromPartial(object.validatorMevMetrics) : undefined; + const message = createBaseQueryAllPerpetualsRequest(); + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; return message; } }; -function createBaseMevNodeToNodeCalculationResponse() { +function createBaseQueryAllPerpetualsResponse() { return { - results: [] + perpetual: [], + pagination: undefined }; } -exports.MevNodeToNodeCalculationResponse = { +exports.QueryAllPerpetualsResponse = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.results) { - exports.MevNodeToNodeCalculationResponse_MevAndVolumePerClob.encode(v, writer.uint32(10).fork()).ldelim(); + for (const v of message.perpetual) { + perpetual_1.Perpetual.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMevNodeToNodeCalculationResponse(); + const message = createBaseQueryAllPerpetualsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.results.push(exports.MevNodeToNodeCalculationResponse_MevAndVolumePerClob.decode(reader, reader.uint32())); + message.perpetual.push(perpetual_1.Perpetual.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -187699,46 +188073,33 @@ exports.MevNodeToNodeCalculationResponse = { }, fromPartial(object) { var _a; - const message = createBaseMevNodeToNodeCalculationResponse(); - message.results = ((_a = object.results) === null || _a === void 0 ? void 0 : _a.map(e => exports.MevNodeToNodeCalculationResponse_MevAndVolumePerClob.fromPartial(e))) || []; + const message = createBaseQueryAllPerpetualsResponse(); + message.perpetual = ((_a = object.perpetual) === null || _a === void 0 ? void 0 : _a.map(e => perpetual_1.Perpetual.fromPartial(e))) || []; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; return message; } }; -function createBaseMevNodeToNodeCalculationResponse_MevAndVolumePerClob() { +function createBaseQueryAllLiquidityTiersRequest() { return { - clobPairId: 0, - mev: 0, - volume: helpers_1.Long.UZERO + pagination: undefined }; } -exports.MevNodeToNodeCalculationResponse_MevAndVolumePerClob = { +exports.QueryAllLiquidityTiersRequest = { encode(message, writer = _m0.Writer.create()) { - if (message.clobPairId !== 0) { - writer.uint32(8).uint32(message.clobPairId); - } - if (message.mev !== 0) { - writer.uint32(21).float(message.mev); - } - if (!message.volume.isZero()) { - writer.uint32(24).uint64(message.volume); + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMevNodeToNodeCalculationResponse_MevAndVolumePerClob(); + const message = createBaseQueryAllLiquidityTiersRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.clobPairId = reader.uint32(); - break; - case 2: - message.mev = reader.float(); - break; - case 3: - message.volume = reader.uint64(); + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -187748,28 +188109,40 @@ exports.MevNodeToNodeCalculationResponse_MevAndVolumePerClob = { return message; }, fromPartial(object) { - var _a, _b; - const message = createBaseMevNodeToNodeCalculationResponse_MevAndVolumePerClob(); - message.clobPairId = (_a = object.clobPairId) !== null && _a !== void 0 ? _a : 0; - message.mev = (_b = object.mev) !== null && _b !== void 0 ? _b : 0; - message.volume = object.volume !== undefined && object.volume !== null ? helpers_1.Long.fromValue(object.volume) : helpers_1.Long.UZERO; + const message = createBaseQueryAllLiquidityTiersRequest(); + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; return message; } }; -function createBaseQueryEquityTierLimitConfigurationRequest() { - return {}; +function createBaseQueryAllLiquidityTiersResponse() { + return { + liquidityTiers: [], + pagination: undefined + }; } -exports.QueryEquityTierLimitConfigurationRequest = { - encode(_, writer = _m0.Writer.create()) { +exports.QueryAllLiquidityTiersResponse = { + encode(message, writer = _m0.Writer.create()) { + for (const v of message.liquidityTiers) { + perpetual_1.LiquidityTier.encode(v, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryEquityTierLimitConfigurationRequest(); + const message = createBaseQueryAllLiquidityTiersResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.liquidityTiers.push(perpetual_1.LiquidityTier.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -187777,33 +188150,28 @@ exports.QueryEquityTierLimitConfigurationRequest = { } return message; }, - fromPartial(_) { - const message = createBaseQueryEquityTierLimitConfigurationRequest(); + fromPartial(object) { + var _a; + const message = createBaseQueryAllLiquidityTiersResponse(); + message.liquidityTiers = ((_a = object.liquidityTiers) === null || _a === void 0 ? void 0 : _a.map(e => perpetual_1.LiquidityTier.fromPartial(e))) || []; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; return message; } }; -function createBaseQueryEquityTierLimitConfigurationResponse() { - return { - equityTierLimitConfig: undefined - }; +function createBaseQueryPremiumVotesRequest() { + return {}; } -exports.QueryEquityTierLimitConfigurationResponse = { - encode(message, writer = _m0.Writer.create()) { - if (message.equityTierLimitConfig !== undefined) { - equity_tier_limit_config_1.EquityTierLimitConfiguration.encode(message.equityTierLimitConfig, writer.uint32(10).fork()).ldelim(); - } +exports.QueryPremiumVotesRequest = { + encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryEquityTierLimitConfigurationResponse(); + const message = createBaseQueryPremiumVotesRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.equityTierLimitConfig = equity_tier_limit_config_1.EquityTierLimitConfiguration.decode(reader, reader.uint32()); - break; default: reader.skipType(tag & 7); break; @@ -187811,85 +188179,32 @@ exports.QueryEquityTierLimitConfigurationResponse = { } return message; }, - fromPartial(object) { - const message = createBaseQueryEquityTierLimitConfigurationResponse(); - message.equityTierLimitConfig = object.equityTierLimitConfig !== undefined && object.equityTierLimitConfig !== null ? equity_tier_limit_config_1.EquityTierLimitConfiguration.fromPartial(object.equityTierLimitConfig) : undefined; + fromPartial(_) { + const message = createBaseQueryPremiumVotesRequest(); return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvY2xvYi9xdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJFQUFnSTtBQUNoSSwwREFBOEU7QUFDOUUsK0JBQTJIO0FBQzNILDJDQUF3RDtBQUN4RCx5RUFBK0c7QUFDL0csd0RBQTBDO0FBQzFDLDJDQUFrRDtBQStLbEQsU0FBUyxpQ0FBaUM7SUFDeEMsT0FBTztRQUNMLEVBQUUsRUFBRSxDQUFDO0tBQ04sQ0FBQztBQUNKLENBQUM7QUFFWSxRQUFBLHVCQUF1QixHQUFHO0lBQ3JDLE1BQU0sQ0FBQyxPQUFnQyxFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQy9FLElBQUksT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3JDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLGlDQUFpQyxF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 - -/***/ }), - -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/tx.ts": -/*!*********************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/tx.ts ***! - \*********************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.MsgUpdateLiquidationsConfigResponse = exports.MsgUpdateLiquidationsConfig = exports.MsgUpdateBlockRateLimitConfigurationResponse = exports.MsgUpdateBlockRateLimitConfiguration = exports.MsgUpdateEquityTierLimitConfigurationResponse = exports.MsgUpdateEquityTierLimitConfiguration = exports.OperationRaw = exports.MsgUpdateClobPairResponse = exports.MsgUpdateClobPair = exports.MsgCancelOrderResponse = exports.MsgCancelOrder = exports.MsgPlaceOrderResponse = exports.MsgPlaceOrder = exports.MsgProposedOperationsResponse = exports.MsgProposedOperations = exports.MsgCreateClobPairResponse = exports.MsgCreateClobPair = void 0; -const order_1 = __webpack_require__(/*! ./order */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order.ts"); -const clob_pair_1 = __webpack_require__(/*! ./clob_pair */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/clob_pair.ts"); -const equity_tier_limit_config_1 = __webpack_require__(/*! ./equity_tier_limit_config */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/equity_tier_limit_config.ts"); -const block_rate_limit_config_1 = __webpack_require__(/*! ./block_rate_limit_config */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/block_rate_limit_config.ts"); -const liquidations_config_1 = __webpack_require__(/*! ./liquidations_config */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/liquidations_config.ts"); -const matches_1 = __webpack_require__(/*! ./matches */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/matches.ts"); -const order_removals_1 = __webpack_require__(/*! ./order_removals */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order_removals.ts"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -function createBaseMsgCreateClobPair() { +function createBaseQueryPremiumVotesResponse() { return { - authority: "", - clobPair: undefined + premiumVotes: undefined }; } -exports.MsgCreateClobPair = { +exports.QueryPremiumVotesResponse = { encode(message, writer = _m0.Writer.create()) { - if (message.authority !== "") { - writer.uint32(10).string(message.authority); - } - if (message.clobPair !== undefined) { - clob_pair_1.ClobPair.encode(message.clobPair, writer.uint32(18).fork()).ldelim(); + if (message.premiumVotes !== undefined) { + perpetual_1.PremiumStore.encode(message.premiumVotes, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCreateClobPair(); + const message = createBaseQueryPremiumVotesResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.authority = reader.string(); - break; - case 2: - message.clobPair = clob_pair_1.ClobPair.decode(reader, reader.uint32()); + message.premiumVotes = perpetual_1.PremiumStore.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -187899,24 +188214,22 @@ exports.MsgCreateClobPair = { return message; }, fromPartial(object) { - var _a; - const message = createBaseMsgCreateClobPair(); - message.authority = (_a = object.authority) !== null && _a !== void 0 ? _a : ""; - message.clobPair = object.clobPair !== undefined && object.clobPair !== null ? clob_pair_1.ClobPair.fromPartial(object.clobPair) : undefined; + const message = createBaseQueryPremiumVotesResponse(); + message.premiumVotes = object.premiumVotes !== undefined && object.premiumVotes !== null ? perpetual_1.PremiumStore.fromPartial(object.premiumVotes) : undefined; return message; } }; -function createBaseMsgCreateClobPairResponse() { +function createBaseQueryPremiumSamplesRequest() { return {}; } -exports.MsgCreateClobPairResponse = { +exports.QueryPremiumSamplesRequest = { encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCreateClobPairResponse(); + const message = createBaseQueryPremiumSamplesRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { @@ -187928,31 +188241,31 @@ exports.MsgCreateClobPairResponse = { return message; }, fromPartial(_) { - const message = createBaseMsgCreateClobPairResponse(); + const message = createBaseQueryPremiumSamplesRequest(); return message; } }; -function createBaseMsgProposedOperations() { +function createBaseQueryPremiumSamplesResponse() { return { - operationsQueue: [] + premiumSamples: undefined }; } -exports.MsgProposedOperations = { +exports.QueryPremiumSamplesResponse = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.operationsQueue) { - exports.OperationRaw.encode(v, writer.uint32(10).fork()).ldelim(); + if (message.premiumSamples !== undefined) { + perpetual_1.PremiumStore.encode(message.premiumSamples, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgProposedOperations(); + const message = createBaseQueryPremiumSamplesResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.operationsQueue.push(exports.OperationRaw.decode(reader, reader.uint32())); + message.premiumSamples = perpetual_1.PremiumStore.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -187962,87 +188275,59 @@ exports.MsgProposedOperations = { return message; }, fromPartial(object) { - var _a; - const message = createBaseMsgProposedOperations(); - message.operationsQueue = ((_a = object.operationsQueue) === null || _a === void 0 ? void 0 : _a.map(e => exports.OperationRaw.fromPartial(e))) || []; + const message = createBaseQueryPremiumSamplesResponse(); + message.premiumSamples = object.premiumSamples !== undefined && object.premiumSamples !== null ? perpetual_1.PremiumStore.fromPartial(object.premiumSamples) : undefined; return message; } }; -function createBaseMsgProposedOperationsResponse() { +function createBaseQueryParamsRequest() { return {}; } -exports.MsgProposedOperationsResponse = { +exports.QueryParamsRequest = { encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgProposedOperationsResponse(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromPartial(_) { - const message = createBaseMsgProposedOperationsResponse(); - return message; - } -}; -function createBaseMsgPlaceOrder() { - return { - order: undefined - }; -} -exports.MsgPlaceOrder = { - encode(message, writer = _m0.Writer.create()) { - if (message.order !== undefined) { - order_1.Order.encode(message.order, writer.uint32(10).fork()).ldelim(); - } - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgPlaceOrder(); + const message = createBaseQueryParamsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.order = order_1.Order.decode(reader, reader.uint32()); - break; default: reader.skipType(tag & 7); break; } } return message; - }, - fromPartial(object) { - const message = createBaseMsgPlaceOrder(); - message.order = object.order !== undefined && object.order !== null ? order_1.Order.fromPartial(object.order) : undefined; + }, + fromPartial(_) { + const message = createBaseQueryParamsRequest(); return message; } }; -function createBaseMsgPlaceOrderResponse() { - return {}; +function createBaseQueryParamsResponse() { + return { + params: undefined + }; } -exports.MsgPlaceOrderResponse = { - encode(_, writer = _m0.Writer.create()) { +exports.QueryParamsResponse = { + encode(message, writer = _m0.Writer.create()) { + if (message.params !== undefined) { + params_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim(); + } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgPlaceOrderResponse(); + const message = createBaseQueryParamsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.params = params_1.Params.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -188050,46 +188335,80 @@ exports.MsgPlaceOrderResponse = { } return message; }, - fromPartial(_) { - const message = createBaseMsgPlaceOrderResponse(); + fromPartial(object) { + const message = createBaseQueryParamsResponse(); + message.params = object.params !== undefined && object.params !== null ? params_1.Params.fromPartial(object.params) : undefined; return message; } }; -function createBaseMsgCancelOrder() { +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvcGVycGV0dWFscy9xdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJFQUFnSTtBQUNoSSwyQ0FBa0k7QUFDbEkscUNBQWlEO0FBQ2pELHdEQUEwQztBQTRJMUMsU0FBUywrQkFBK0I7SUFDdEMsT0FBTztRQUNMLEVBQUUsRUFBRSxDQUFDO0tBQ04sQ0FBQztBQUNKLENBQUM7QUFFWSxRQUFBLHFCQUFxQixHQUFHO0lBQ25DLE1BQU0sQ0FBQyxPQUE4QixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQzdFLElBQUksT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3JDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLCtCQUErQixFQUFFLENBQUM7UUFFbEQsT0FBTyxNQUFNLENBQUMsR0FB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 + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/tx.ts": +/*!***************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/tx.ts ***! + \***************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.MsgUpdateParamsResponse = exports.MsgUpdateParams = exports.MsgAddPremiumVotesResponse = exports.MsgAddPremiumVotes = exports.FundingPremium = exports.MsgUpdatePerpetualParamsResponse = exports.MsgUpdatePerpetualParams = exports.MsgSetLiquidityTierResponse = exports.MsgSetLiquidityTier = exports.MsgCreatePerpetualResponse = exports.MsgCreatePerpetual = void 0; +const perpetual_1 = __webpack_require__(/*! ./perpetual */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/perpetual.ts"); +const params_1 = __webpack_require__(/*! ./params */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/params.ts"); +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +function createBaseMsgCreatePerpetual() { return { - orderId: undefined, - goodTilBlock: undefined, - goodTilBlockTime: undefined + authority: "", + params: undefined }; } -exports.MsgCancelOrder = { +exports.MsgCreatePerpetual = { encode(message, writer = _m0.Writer.create()) { - if (message.orderId !== undefined) { - order_1.OrderId.encode(message.orderId, writer.uint32(10).fork()).ldelim(); - } - if (message.goodTilBlock !== undefined) { - writer.uint32(16).uint32(message.goodTilBlock); + if (message.authority !== "") { + writer.uint32(10).string(message.authority); } - if (message.goodTilBlockTime !== undefined) { - writer.uint32(29).fixed32(message.goodTilBlockTime); + if (message.params !== undefined) { + perpetual_1.PerpetualParams.encode(message.params, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCancelOrder(); + const message = createBaseMsgCreatePerpetual(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.orderId = order_1.OrderId.decode(reader, reader.uint32()); + message.authority = reader.string(); break; case 2: - message.goodTilBlock = reader.uint32(); - break; - case 3: - message.goodTilBlockTime = reader.fixed32(); + message.params = perpetual_1.PerpetualParams.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -188099,25 +188418,24 @@ exports.MsgCancelOrder = { return message; }, fromPartial(object) { - var _a, _b; - const message = createBaseMsgCancelOrder(); - message.orderId = object.orderId !== undefined && object.orderId !== null ? order_1.OrderId.fromPartial(object.orderId) : undefined; - message.goodTilBlock = (_a = object.goodTilBlock) !== null && _a !== void 0 ? _a : undefined; - message.goodTilBlockTime = (_b = object.goodTilBlockTime) !== null && _b !== void 0 ? _b : undefined; + var _a; + const message = createBaseMsgCreatePerpetual(); + message.authority = (_a = object.authority) !== null && _a !== void 0 ? _a : ""; + message.params = object.params !== undefined && object.params !== null ? perpetual_1.PerpetualParams.fromPartial(object.params) : undefined; return message; } }; -function createBaseMsgCancelOrderResponse() { +function createBaseMsgCreatePerpetualResponse() { return {}; } -exports.MsgCancelOrderResponse = { +exports.MsgCreatePerpetualResponse = { encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgCancelOrderResponse(); + const message = createBaseMsgCreatePerpetualResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { @@ -188129,30 +188447,30 @@ exports.MsgCancelOrderResponse = { return message; }, fromPartial(_) { - const message = createBaseMsgCancelOrderResponse(); + const message = createBaseMsgCreatePerpetualResponse(); return message; } }; -function createBaseMsgUpdateClobPair() { +function createBaseMsgSetLiquidityTier() { return { authority: "", - clobPair: undefined + liquidityTier: undefined }; } -exports.MsgUpdateClobPair = { +exports.MsgSetLiquidityTier = { encode(message, writer = _m0.Writer.create()) { if (message.authority !== "") { writer.uint32(10).string(message.authority); } - if (message.clobPair !== undefined) { - clob_pair_1.ClobPair.encode(message.clobPair, writer.uint32(18).fork()).ldelim(); + if (message.liquidityTier !== undefined) { + perpetual_1.LiquidityTier.encode(message.liquidityTier, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateClobPair(); + const message = createBaseMsgSetLiquidityTier(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { @@ -188160,7 +188478,7 @@ exports.MsgUpdateClobPair = { message.authority = reader.string(); break; case 2: - message.clobPair = clob_pair_1.ClobPair.decode(reader, reader.uint32()); + message.liquidityTier = perpetual_1.LiquidityTier.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -188171,23 +188489,23 @@ exports.MsgUpdateClobPair = { }, fromPartial(object) { var _a; - const message = createBaseMsgUpdateClobPair(); + const message = createBaseMsgSetLiquidityTier(); message.authority = (_a = object.authority) !== null && _a !== void 0 ? _a : ""; - message.clobPair = object.clobPair !== undefined && object.clobPair !== null ? clob_pair_1.ClobPair.fromPartial(object.clobPair) : undefined; + message.liquidityTier = object.liquidityTier !== undefined && object.liquidityTier !== null ? perpetual_1.LiquidityTier.fromPartial(object.liquidityTier) : undefined; return message; } }; -function createBaseMsgUpdateClobPairResponse() { +function createBaseMsgSetLiquidityTierResponse() { return {}; } -exports.MsgUpdateClobPairResponse = { +exports.MsgSetLiquidityTierResponse = { encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateClobPairResponse(); + const message = createBaseMsgSetLiquidityTierResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { @@ -188199,45 +188517,38 @@ exports.MsgUpdateClobPairResponse = { return message; }, fromPartial(_) { - const message = createBaseMsgUpdateClobPairResponse(); + const message = createBaseMsgSetLiquidityTierResponse(); return message; } }; -function createBaseOperationRaw() { +function createBaseMsgUpdatePerpetualParams() { return { - match: undefined, - shortTermOrderPlacement: undefined, - orderRemoval: undefined + authority: "", + perpetualParams: undefined }; } -exports.OperationRaw = { +exports.MsgUpdatePerpetualParams = { encode(message, writer = _m0.Writer.create()) { - if (message.match !== undefined) { - matches_1.ClobMatch.encode(message.match, writer.uint32(10).fork()).ldelim(); - } - if (message.shortTermOrderPlacement !== undefined) { - writer.uint32(18).bytes(message.shortTermOrderPlacement); + if (message.authority !== "") { + writer.uint32(10).string(message.authority); } - if (message.orderRemoval !== undefined) { - order_removals_1.OrderRemoval.encode(message.orderRemoval, writer.uint32(26).fork()).ldelim(); + if (message.perpetualParams !== undefined) { + perpetual_1.PerpetualParams.encode(message.perpetualParams, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseOperationRaw(); + const message = createBaseMsgUpdatePerpetualParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.match = matches_1.ClobMatch.decode(reader, reader.uint32()); + message.authority = reader.string(); break; case 2: - message.shortTermOrderPlacement = reader.bytes(); - break; - case 3: - message.orderRemoval = order_removals_1.OrderRemoval.decode(reader, reader.uint32()); + message.perpetualParams = perpetual_1.PerpetualParams.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -188248,42 +188559,26 @@ exports.OperationRaw = { }, fromPartial(object) { var _a; - const message = createBaseOperationRaw(); - message.match = object.match !== undefined && object.match !== null ? matches_1.ClobMatch.fromPartial(object.match) : undefined; - message.shortTermOrderPlacement = (_a = object.shortTermOrderPlacement) !== null && _a !== void 0 ? _a : undefined; - message.orderRemoval = object.orderRemoval !== undefined && object.orderRemoval !== null ? order_removals_1.OrderRemoval.fromPartial(object.orderRemoval) : undefined; + const message = createBaseMsgUpdatePerpetualParams(); + message.authority = (_a = object.authority) !== null && _a !== void 0 ? _a : ""; + message.perpetualParams = object.perpetualParams !== undefined && object.perpetualParams !== null ? perpetual_1.PerpetualParams.fromPartial(object.perpetualParams) : undefined; return message; } }; -function createBaseMsgUpdateEquityTierLimitConfiguration() { - return { - authority: "", - equityTierLimitConfig: undefined - }; +function createBaseMsgUpdatePerpetualParamsResponse() { + return {}; } -exports.MsgUpdateEquityTierLimitConfiguration = { - encode(message, writer = _m0.Writer.create()) { - if (message.authority !== "") { - writer.uint32(10).string(message.authority); - } - if (message.equityTierLimitConfig !== undefined) { - equity_tier_limit_config_1.EquityTierLimitConfiguration.encode(message.equityTierLimitConfig, writer.uint32(18).fork()).ldelim(); - } +exports.MsgUpdatePerpetualParamsResponse = { + encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateEquityTierLimitConfiguration(); + const message = createBaseMsgUpdatePerpetualParamsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.authority = reader.string(); - break; - case 2: - message.equityTierLimitConfig = equity_tier_limit_config_1.EquityTierLimitConfiguration.decode(reader, reader.uint32()); - break; default: reader.skipType(tag & 7); break; @@ -188291,28 +188586,40 @@ exports.MsgUpdateEquityTierLimitConfiguration = { } return message; }, - fromPartial(object) { - var _a; - const message = createBaseMsgUpdateEquityTierLimitConfiguration(); - message.authority = (_a = object.authority) !== null && _a !== void 0 ? _a : ""; - message.equityTierLimitConfig = object.equityTierLimitConfig !== undefined && object.equityTierLimitConfig !== null ? equity_tier_limit_config_1.EquityTierLimitConfiguration.fromPartial(object.equityTierLimitConfig) : undefined; + fromPartial(_) { + const message = createBaseMsgUpdatePerpetualParamsResponse(); return message; } }; -function createBaseMsgUpdateEquityTierLimitConfigurationResponse() { - return {}; +function createBaseFundingPremium() { + return { + perpetualId: 0, + premiumPpm: 0 + }; } -exports.MsgUpdateEquityTierLimitConfigurationResponse = { - encode(_, writer = _m0.Writer.create()) { +exports.FundingPremium = { + encode(message, writer = _m0.Writer.create()) { + if (message.perpetualId !== 0) { + writer.uint32(8).uint32(message.perpetualId); + } + if (message.premiumPpm !== 0) { + writer.uint32(16).int32(message.premiumPpm); + } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateEquityTierLimitConfigurationResponse(); + const message = createBaseFundingPremium(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.perpetualId = reader.uint32(); + break; + case 2: + message.premiumPpm = reader.int32(); + break; default: reader.skipType(tag & 7); break; @@ -188320,39 +188627,35 @@ exports.MsgUpdateEquityTierLimitConfigurationResponse = { } return message; }, - fromPartial(_) { - const message = createBaseMsgUpdateEquityTierLimitConfigurationResponse(); + fromPartial(object) { + var _a, _b; + const message = createBaseFundingPremium(); + message.perpetualId = (_a = object.perpetualId) !== null && _a !== void 0 ? _a : 0; + message.premiumPpm = (_b = object.premiumPpm) !== null && _b !== void 0 ? _b : 0; return message; } }; -function createBaseMsgUpdateBlockRateLimitConfiguration() { +function createBaseMsgAddPremiumVotes() { return { - authority: "", - blockRateLimitConfig: undefined + votes: [] }; } -exports.MsgUpdateBlockRateLimitConfiguration = { +exports.MsgAddPremiumVotes = { encode(message, writer = _m0.Writer.create()) { - if (message.authority !== "") { - writer.uint32(10).string(message.authority); - } - if (message.blockRateLimitConfig !== undefined) { - block_rate_limit_config_1.BlockRateLimitConfiguration.encode(message.blockRateLimitConfig, writer.uint32(26).fork()).ldelim(); + for (const v of message.votes) { + exports.FundingPremium.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateBlockRateLimitConfiguration(); + const message = createBaseMsgAddPremiumVotes(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.authority = reader.string(); - break; - case 3: - message.blockRateLimitConfig = block_rate_limit_config_1.BlockRateLimitConfiguration.decode(reader, reader.uint32()); + message.votes.push(exports.FundingPremium.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -188363,23 +188666,22 @@ exports.MsgUpdateBlockRateLimitConfiguration = { }, fromPartial(object) { var _a; - const message = createBaseMsgUpdateBlockRateLimitConfiguration(); - message.authority = (_a = object.authority) !== null && _a !== void 0 ? _a : ""; - message.blockRateLimitConfig = object.blockRateLimitConfig !== undefined && object.blockRateLimitConfig !== null ? block_rate_limit_config_1.BlockRateLimitConfiguration.fromPartial(object.blockRateLimitConfig) : undefined; + const message = createBaseMsgAddPremiumVotes(); + message.votes = ((_a = object.votes) === null || _a === void 0 ? void 0 : _a.map(e => exports.FundingPremium.fromPartial(e))) || []; return message; } }; -function createBaseMsgUpdateBlockRateLimitConfigurationResponse() { +function createBaseMsgAddPremiumVotesResponse() { return {}; } -exports.MsgUpdateBlockRateLimitConfigurationResponse = { +exports.MsgAddPremiumVotesResponse = { encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateBlockRateLimitConfigurationResponse(); + const message = createBaseMsgAddPremiumVotesResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { @@ -188391,30 +188693,30 @@ exports.MsgUpdateBlockRateLimitConfigurationResponse = { return message; }, fromPartial(_) { - const message = createBaseMsgUpdateBlockRateLimitConfigurationResponse(); + const message = createBaseMsgAddPremiumVotesResponse(); return message; } }; -function createBaseMsgUpdateLiquidationsConfig() { +function createBaseMsgUpdateParams() { return { authority: "", - liquidationsConfig: undefined + params: undefined }; } -exports.MsgUpdateLiquidationsConfig = { +exports.MsgUpdateParams = { encode(message, writer = _m0.Writer.create()) { if (message.authority !== "") { writer.uint32(10).string(message.authority); } - if (message.liquidationsConfig !== undefined) { - liquidations_config_1.LiquidationsConfig.encode(message.liquidationsConfig, writer.uint32(18).fork()).ldelim(); + if (message.params !== undefined) { + params_1.Params.encode(message.params, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateLiquidationsConfig(); + const message = createBaseMsgUpdateParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { @@ -188422,7 +188724,7 @@ exports.MsgUpdateLiquidationsConfig = { message.authority = reader.string(); break; case 2: - message.liquidationsConfig = liquidations_config_1.LiquidationsConfig.decode(reader, reader.uint32()); + message.params = params_1.Params.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -188433,23 +188735,23 @@ exports.MsgUpdateLiquidationsConfig = { }, fromPartial(object) { var _a; - const message = createBaseMsgUpdateLiquidationsConfig(); + const message = createBaseMsgUpdateParams(); message.authority = (_a = object.authority) !== null && _a !== void 0 ? _a : ""; - message.liquidationsConfig = object.liquidationsConfig !== undefined && object.liquidationsConfig !== null ? liquidations_config_1.LiquidationsConfig.fromPartial(object.liquidationsConfig) : undefined; + message.params = object.params !== undefined && object.params !== null ? params_1.Params.fromPartial(object.params) : undefined; return message; } }; -function createBaseMsgUpdateLiquidationsConfigResponse() { +function createBaseMsgUpdateParamsResponse() { return {}; } -exports.MsgUpdateLiquidationsConfigResponse = { +exports.MsgUpdateParamsResponse = { encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMsgUpdateLiquidationsConfigResponse(); + const message = createBaseMsgUpdateParamsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { @@ -188461,18 +188763,18 @@ exports.MsgUpdateLiquidationsConfigResponse = { return message; }, fromPartial(_) { - const message = createBaseMsgUpdateLiquidationsConfigResponse(); + const message = createBaseMsgUpdateParamsResponse(); return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvY2xvYi90eC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUF1RTtBQUN2RSwyQ0FBd0Q7QUFDeEQseUVBQStHO0FBQy9HLHVFQUE0RztBQUM1RywrREFBc0Y7QUFDdEYsdUNBQXdEO0FBQ3hELHFEQUFxRTtBQUNyRSx3REFBMEM7QUEwUDFDLFNBQVMsMkJBQTJCO0lBQ2xDLE9BQU87UUFDTCxTQUFTLEVBQUUsRUFBRTtRQUNiLFFBQVEsRUFBRSxTQUFTO0tBQ3BCLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxpQkFBaUIsR0FBRztJQUMvQixNQUFNLENBQUMsT0FBMEIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUN6RSxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFO1lBQzVCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM3QztRQUVELElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDbEMsb0JBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDdEU7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFD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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvcGVycGV0dWFscy90eC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUEyRztBQUMzRyxxQ0FBaUQ7QUFDakQsd0RBQTBDO0FBOEoxQyxTQUFTLDRCQUE0QjtJQUNuQyxPQUFPO1FBQ0wsU0FBUyxFQUFFLEVBQUU7UUFDYixNQUFNLEVBQUUsU0FBUztLQUNsQixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsa0JBQWtCLEdBQUc7SUFDaEMsTUFBTSxDQUFDLE9BQTJCLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDMUUsSUFBSSxPQUFPLENBQUMsU0FBUyxLQUFLLEVBQUUsRUFBRTtZQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDN0M7UUFFRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ2hDLDJCQUFlLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzNFO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNFLElB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 /***/ }), -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/params.ts": -/*!*****************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/params.ts ***! - \*****************************************************************************************/ +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/market_param.ts": +/*!*********************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/market_param.ts ***! + \*********************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -188501,101 +188803,64 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.PerpetualFeeTier = exports.PerpetualFeeParams = void 0; +exports.MarketParam = void 0; const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); -function createBasePerpetualFeeParams() { - return { - tiers: [] - }; -} -exports.PerpetualFeeParams = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.tiers) { - exports.PerpetualFeeTier.encode(v, writer.uint32(10).fork()).ldelim(); - } - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePerpetualFeeParams(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.tiers.push(exports.PerpetualFeeTier.decode(reader, reader.uint32())); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromPartial(object) { - var _a; - const message = createBasePerpetualFeeParams(); - message.tiers = ((_a = object.tiers) === null || _a === void 0 ? void 0 : _a.map(e => exports.PerpetualFeeTier.fromPartial(e))) || []; - return message; - } -}; -function createBasePerpetualFeeTier() { +function createBaseMarketParam() { return { - name: "", - absoluteVolumeRequirement: helpers_1.Long.UZERO, - totalVolumeShareRequirementPpm: 0, - makerVolumeShareRequirementPpm: 0, - makerFeePpm: 0, - takerFeePpm: 0 + id: 0, + pair: "", + exponent: 0, + minExchanges: 0, + minPriceChangePpm: 0, + exchangeConfigJson: "" }; } -exports.PerpetualFeeTier = { +exports.MarketParam = { encode(message, writer = _m0.Writer.create()) { - if (message.name !== "") { - writer.uint32(10).string(message.name); + if (message.id !== 0) { + writer.uint32(8).uint32(message.id); } - if (!message.absoluteVolumeRequirement.isZero()) { - writer.uint32(16).uint64(message.absoluteVolumeRequirement); + if (message.pair !== "") { + writer.uint32(18).string(message.pair); } - if (message.totalVolumeShareRequirementPpm !== 0) { - writer.uint32(24).uint32(message.totalVolumeShareRequirementPpm); + if (message.exponent !== 0) { + writer.uint32(24).sint32(message.exponent); } - if (message.makerVolumeShareRequirementPpm !== 0) { - writer.uint32(32).uint32(message.makerVolumeShareRequirementPpm); + if (message.minExchanges !== 0) { + writer.uint32(32).uint32(message.minExchanges); } - if (message.makerFeePpm !== 0) { - writer.uint32(40).sint32(message.makerFeePpm); + if (message.minPriceChangePpm !== 0) { + writer.uint32(40).uint32(message.minPriceChangePpm); } - if (message.takerFeePpm !== 0) { - writer.uint32(48).sint32(message.takerFeePpm); + if (message.exchangeConfigJson !== "") { + writer.uint32(50).string(message.exchangeConfigJson); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePerpetualFeeTier(); + const message = createBaseMarketParam(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.name = reader.string(); + message.id = reader.uint32(); break; case 2: - message.absoluteVolumeRequirement = reader.uint64(); + message.pair = reader.string(); break; case 3: - message.totalVolumeShareRequirementPpm = reader.uint32(); + message.exponent = reader.sint32(); break; case 4: - message.makerVolumeShareRequirementPpm = reader.uint32(); + message.minExchanges = reader.uint32(); break; case 5: - message.makerFeePpm = reader.sint32(); + message.minPriceChangePpm = reader.uint32(); break; case 6: - message.takerFeePpm = reader.sint32(); + message.exchangeConfigJson = reader.string(); break; default: reader.skipType(tag & 7); @@ -188605,25 +188870,25 @@ exports.PerpetualFeeTier = { return message; }, fromPartial(object) { - var _a, _b, _c, _d, _e; - const message = createBasePerpetualFeeTier(); - message.name = (_a = object.name) !== null && _a !== void 0 ? _a : ""; - message.absoluteVolumeRequirement = object.absoluteVolumeRequirement !== undefined && object.absoluteVolumeRequirement !== null ? helpers_1.Long.fromValue(object.absoluteVolumeRequirement) : helpers_1.Long.UZERO; - message.totalVolumeShareRequirementPpm = (_b = object.totalVolumeShareRequirementPpm) !== null && _b !== void 0 ? _b : 0; - message.makerVolumeShareRequirementPpm = (_c = object.makerVolumeShareRequirementPpm) !== null && _c !== void 0 ? _c : 0; - message.makerFeePpm = (_d = object.makerFeePpm) !== null && _d !== void 0 ? _d : 0; - message.takerFeePpm = (_e = object.takerFeePpm) !== null && _e !== void 0 ? _e : 0; + var _a, _b, _c, _d, _e, _f; + const message = createBaseMarketParam(); + message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0; + message.pair = (_b = object.pair) !== null && _b !== void 0 ? _b : ""; + message.exponent = (_c = object.exponent) !== null && _c !== void 0 ? _c : 0; + message.minExchanges = (_d = object.minExchanges) !== null && _d !== void 0 ? _d : 0; + message.minPriceChangePpm = (_e = object.minPriceChangePpm) !== null && _e !== void 0 ? _e : 0; + message.exchangeConfigJson = (_f = object.exchangeConfigJson) !== null && _f !== void 0 ? _f : ""; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vZHlkeHByb3RvY29sL2ZlZXRpZXJzL3BhcmFtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdEQUEwQztBQUMxQywyQ0FBa0Q7QUE0Q2xELFNBQVMsNEJBQTRCO0lBQ25DLE9BQU87UUFDTCxLQUFLLEVBQUUsRUFBRTtLQUNWLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxrQkFBa0IsR0FBRztJQUNoQyxNQUFNLENBQUMsT0FBMkIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUMxRSxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDN0Isd0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDaEU7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsNEJBQTRCLEVBQUUsQ0FBQztRQUUvQyxPQUFPLE1B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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2V0X3BhcmFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vZHlkeHByb3RvY29sL3ByaWNlcy9tYXJrZXRfcGFyYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3REFBMEM7QUEwRDFDLFNBQVMscUJBQXFCO0lBQzVCLE9BQU87UUFDTCxFQUFFLEVBQUUsQ0FBQztRQUNMLElBQUksRUFBRSxFQUFFO1FBQ1IsUUFBUSxFQUFFLENBQUM7UUFDWCxZQUFZLEVBQUUsQ0FBQztRQUNmLGlCQUFpQixFQUFFLENBQUM7UUFDcEIsa0JBQWtCLEVBQUUsRUFBRTtLQUN2QixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsV0FBVyxHQUFHO0lBQ3pCLE1BQU0sQ0FBQyxPQUFvQixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ25FLElBQUksT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3JDO1FBRUQsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRTtZQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDeEM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssQ0FBQyxFQUFFO1lBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUM1QztRQUVELElBQUksT0FBTyxDQUFDLFlBQVksS0FBSyxDQUFDLEVB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 /***/ }), -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/query.ts": -/*!****************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/query.ts ***! - \****************************************************************************************/ +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/market_price.ts": +/*!*********************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/market_price.ts ***! + \*********************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -188652,23 +188917,45 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.QueryUserFeeTierResponse = exports.QueryUserFeeTierRequest = exports.QueryPerpetualFeeParamsResponse = exports.QueryPerpetualFeeParamsRequest = void 0; -const params_1 = __webpack_require__(/*! ./params */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/params.ts"); +exports.MarketPrice = void 0; +const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -function createBaseQueryPerpetualFeeParamsRequest() { - return {}; +function createBaseMarketPrice() { + return { + id: 0, + exponent: 0, + price: helpers_1.Long.UZERO + }; } -exports.QueryPerpetualFeeParamsRequest = { - encode(_, writer = _m0.Writer.create()) { +exports.MarketPrice = { + encode(message, writer = _m0.Writer.create()) { + if (message.id !== 0) { + writer.uint32(8).uint32(message.id); + } + if (message.exponent !== 0) { + writer.uint32(16).sint32(message.exponent); + } + if (!message.price.isZero()) { + writer.uint32(24).uint64(message.price); + } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryPerpetualFeeParamsRequest(); + const message = createBaseMarketPrice(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { + case 1: + message.id = reader.uint32(); + break; + case 2: + message.exponent = reader.sint32(); + break; + case 3: + message.price = reader.uint64(); + break; default: reader.skipType(tag & 7); break; @@ -188676,32 +188963,77 @@ exports.QueryPerpetualFeeParamsRequest = { } return message; }, - fromPartial(_) { - const message = createBaseQueryPerpetualFeeParamsRequest(); + fromPartial(object) { + var _a, _b; + const message = createBaseMarketPrice(); + message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0; + message.exponent = (_b = object.exponent) !== null && _b !== void 0 ? _b : 0; + message.price = object.price !== undefined && object.price !== null ? helpers_1.Long.fromValue(object.price) : helpers_1.Long.UZERO; return message; } }; -function createBaseQueryPerpetualFeeParamsResponse() { +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2V0X3ByaWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vZHlkeHByb3RvY29sL3ByaWNlcy9tYXJrZXRfcHJpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBa0Q7QUFDbEQsd0RBQTBDO0FBMkIxQyxTQUFTLHFCQUFxQjtJQUM1QixPQUFPO1FBQ0wsRUFBRSxFQUFFLENBQUM7UUFDTCxRQUFRLEVBQUUsQ0FBQztRQUNYLEtBQUssRUFBRSxjQUFJLENBQUMsS0FBSztLQUNsQixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsV0FBVyxHQUFHO0lBQ3pCLE1BQU0sQ0FBQyxPQUFvQixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ25FLElBQUksT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3JDO1FBRUQsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLENBQUMsRUFBRTtZQUMxQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDNUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMzQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcscUJBQXFCLEVBQUUsQ0FBQztRQUV4QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUU1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDN0IsTUFBTTtnQkFFUixLQUFLLENBQUM7b0JBQ0osT0FBTyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ25DLE1BQU07Z0JBRVIsS0FBSyxDQUFDO29CQUNKLE9BQU8sQ0FBQyxLQUFLLEdBQUksTUFBTSxDQUFDLE1BQU0sRUFBVyxDQUFDO29CQUMxQyxNQUFNO2dCQUVSO29CQUNFLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN6QixNQUFNO2FBQ1Q7U0FDRjtRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBZ0M7O1FBQzFDLE1BQU0sT0FBTyxHQUFHLHFCQUFxQixFQUFFLENBQUM7UUFDeEMsT0FBTyxDQUFDLEVBQUUsR0FBRyxNQUFBLE1BQU0sQ0FBQyxFQUFFLG1DQUFJLENBQUMsQ0FBQztRQUM1QixPQUFPLENBQUMsUUFBUSxHQUFHLE1BQUEsTUFBTSxDQUFDLFFBQVEsbUNBQUksQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2hILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FFRixDQUFDIn0= + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/query.ts": +/*!**************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/query.ts ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.QueryAllMarketParamsResponse = exports.QueryAllMarketParamsRequest = exports.QueryMarketParamResponse = exports.QueryMarketParamRequest = exports.QueryAllMarketPricesResponse = exports.QueryAllMarketPricesRequest = exports.QueryMarketPriceResponse = exports.QueryMarketPriceRequest = void 0; +const pagination_1 = __webpack_require__(/*! ../../cosmos/base/query/v1beta1/pagination */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/query/v1beta1/pagination.ts"); +const market_price_1 = __webpack_require__(/*! ./market_price */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/market_price.ts"); +const market_param_1 = __webpack_require__(/*! ./market_param */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/market_param.ts"); +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +function createBaseQueryMarketPriceRequest() { return { - params: undefined + id: 0 }; } -exports.QueryPerpetualFeeParamsResponse = { +exports.QueryMarketPriceRequest = { encode(message, writer = _m0.Writer.create()) { - if (message.params !== undefined) { - params_1.PerpetualFeeParams.encode(message.params, writer.uint32(10).fork()).ldelim(); + if (message.id !== 0) { + writer.uint32(8).uint32(message.id); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryPerpetualFeeParamsResponse(); + const message = createBaseQueryMarketPriceRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.params = params_1.PerpetualFeeParams.decode(reader, reader.uint32()); + message.id = reader.uint32(); break; default: reader.skipType(tag & 7); @@ -188711,32 +189043,33 @@ exports.QueryPerpetualFeeParamsResponse = { return message; }, fromPartial(object) { - const message = createBaseQueryPerpetualFeeParamsResponse(); - message.params = object.params !== undefined && object.params !== null ? params_1.PerpetualFeeParams.fromPartial(object.params) : undefined; + var _a; + const message = createBaseQueryMarketPriceRequest(); + message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0; return message; } }; -function createBaseQueryUserFeeTierRequest() { +function createBaseQueryMarketPriceResponse() { return { - user: "" + marketPrice: undefined }; } -exports.QueryUserFeeTierRequest = { +exports.QueryMarketPriceResponse = { encode(message, writer = _m0.Writer.create()) { - if (message.user !== "") { - writer.uint32(10).string(message.user); + if (message.marketPrice !== undefined) { + market_price_1.MarketPrice.encode(message.marketPrice, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryUserFeeTierRequest(); + const message = createBaseQueryMarketPriceResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.user = reader.string(); + message.marketPrice = market_price_1.MarketPrice.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -188746,40 +189079,32 @@ exports.QueryUserFeeTierRequest = { return message; }, fromPartial(object) { - var _a; - const message = createBaseQueryUserFeeTierRequest(); - message.user = (_a = object.user) !== null && _a !== void 0 ? _a : ""; + const message = createBaseQueryMarketPriceResponse(); + message.marketPrice = object.marketPrice !== undefined && object.marketPrice !== null ? market_price_1.MarketPrice.fromPartial(object.marketPrice) : undefined; return message; } }; -function createBaseQueryUserFeeTierResponse() { +function createBaseQueryAllMarketPricesRequest() { return { - index: 0, - tier: undefined + pagination: undefined }; } -exports.QueryUserFeeTierResponse = { +exports.QueryAllMarketPricesRequest = { encode(message, writer = _m0.Writer.create()) { - if (message.index !== 0) { - writer.uint32(8).uint32(message.index); - } - if (message.tier !== undefined) { - params_1.PerpetualFeeTier.encode(message.tier, writer.uint32(18).fork()).ldelim(); + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryUserFeeTierResponse(); + const message = createBaseQueryAllMarketPricesRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.index = reader.uint32(); - break; - case 2: - message.tier = params_1.PerpetualFeeTier.decode(reader, reader.uint32()); + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -188789,80 +189114,39 @@ exports.QueryUserFeeTierResponse = { return message; }, fromPartial(object) { - var _a; - const message = createBaseQueryUserFeeTierResponse(); - message.index = (_a = object.index) !== null && _a !== void 0 ? _a : 0; - message.tier = object.tier !== undefined && object.tier !== null ? params_1.PerpetualFeeTier.fromPartial(object.tier) : undefined; + const message = createBaseQueryAllMarketPricesRequest(); + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvZmVldGllcnMvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxQ0FBb0g7QUFDcEgsd0RBQTBDO0FBc0QxQyxTQUFTLHdDQUF3QztJQUMvQyxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFWSxRQUFBLDhCQUE4QixHQUFHO0lBQzVDLE1BQU0sQ0FBQyxDQUFpQyxFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ2hGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyx3Q0FBd0MsRUFBRSxDQUFDO1FBRTNELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRTVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakI7b0JBQ0UsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3pCLE1BQU07YUFDVDtT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 - -/***/ }), - -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/perpetual.ts": -/*!**********************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/perpetual.ts ***! - \**********************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.LiquidityTier = exports.PremiumStore = exports.MarketPremiums = exports.PerpetualParams = exports.Perpetual = void 0; -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); -function createBasePerpetual() { +function createBaseQueryAllMarketPricesResponse() { return { - params: undefined, - fundingIndex: new Uint8Array() + marketPrices: [], + pagination: undefined }; } -exports.Perpetual = { +exports.QueryAllMarketPricesResponse = { encode(message, writer = _m0.Writer.create()) { - if (message.params !== undefined) { - exports.PerpetualParams.encode(message.params, writer.uint32(10).fork()).ldelim(); + for (const v of message.marketPrices) { + market_price_1.MarketPrice.encode(v, writer.uint32(10).fork()).ldelim(); } - if (message.fundingIndex.length !== 0) { - writer.uint32(18).bytes(message.fundingIndex); + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePerpetual(); + const message = createBaseQueryAllMarketPricesResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.params = exports.PerpetualParams.decode(reader, reader.uint32()); + message.marketPrices.push(market_price_1.MarketPrice.decode(reader, reader.uint32())); break; case 2: - message.fundingIndex = reader.bytes(); + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -188873,69 +189157,34 @@ exports.Perpetual = { }, fromPartial(object) { var _a; - const message = createBasePerpetual(); - message.params = object.params !== undefined && object.params !== null ? exports.PerpetualParams.fromPartial(object.params) : undefined; - message.fundingIndex = (_a = object.fundingIndex) !== null && _a !== void 0 ? _a : new Uint8Array(); + const message = createBaseQueryAllMarketPricesResponse(); + message.marketPrices = ((_a = object.marketPrices) === null || _a === void 0 ? void 0 : _a.map(e => market_price_1.MarketPrice.fromPartial(e))) || []; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; return message; } }; -function createBasePerpetualParams() { +function createBaseQueryMarketParamRequest() { return { - id: 0, - ticker: "", - marketId: 0, - atomicResolution: 0, - defaultFundingPpm: 0, - liquidityTier: 0 + id: 0 }; } -exports.PerpetualParams = { +exports.QueryMarketParamRequest = { encode(message, writer = _m0.Writer.create()) { if (message.id !== 0) { writer.uint32(8).uint32(message.id); } - if (message.ticker !== "") { - writer.uint32(18).string(message.ticker); - } - if (message.marketId !== 0) { - writer.uint32(24).uint32(message.marketId); - } - if (message.atomicResolution !== 0) { - writer.uint32(32).sint32(message.atomicResolution); - } - if (message.defaultFundingPpm !== 0) { - writer.uint32(40).sint32(message.defaultFundingPpm); - } - if (message.liquidityTier !== 0) { - writer.uint32(48).uint32(message.liquidityTier); - } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePerpetualParams(); + const message = createBaseQueryMarketParamRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.id = reader.uint32(); break; - case 2: - message.ticker = reader.string(); - break; - case 3: - message.marketId = reader.uint32(); - break; - case 4: - message.atomicResolution = reader.sint32(); - break; - case 5: - message.defaultFundingPpm = reader.sint32(); - break; - case 6: - message.liquidityTier = reader.uint32(); - break; default: reader.skipType(tag & 7); break; @@ -188944,55 +189193,33 @@ exports.PerpetualParams = { return message; }, fromPartial(object) { - var _a, _b, _c, _d, _e, _f; - const message = createBasePerpetualParams(); + var _a; + const message = createBaseQueryMarketParamRequest(); message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0; - message.ticker = (_b = object.ticker) !== null && _b !== void 0 ? _b : ""; - message.marketId = (_c = object.marketId) !== null && _c !== void 0 ? _c : 0; - message.atomicResolution = (_d = object.atomicResolution) !== null && _d !== void 0 ? _d : 0; - message.defaultFundingPpm = (_e = object.defaultFundingPpm) !== null && _e !== void 0 ? _e : 0; - message.liquidityTier = (_f = object.liquidityTier) !== null && _f !== void 0 ? _f : 0; return message; } }; -function createBaseMarketPremiums() { +function createBaseQueryMarketParamResponse() { return { - perpetualId: 0, - premiums: [] + marketParam: undefined }; } -exports.MarketPremiums = { +exports.QueryMarketParamResponse = { encode(message, writer = _m0.Writer.create()) { - if (message.perpetualId !== 0) { - writer.uint32(8).uint32(message.perpetualId); - } - writer.uint32(18).fork(); - for (const v of message.premiums) { - writer.sint32(v); + if (message.marketParam !== undefined) { + market_param_1.MarketParam.encode(message.marketParam, writer.uint32(10).fork()).ldelim(); } - writer.ldelim(); return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMarketPremiums(); + const message = createBaseQueryMarketParamResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.perpetualId = reader.uint32(); - break; - case 2: - if ((tag & 7) === 2) { - const end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) { - message.premiums.push(reader.sint32()); - } - } - else { - message.premiums.push(reader.sint32()); - } + message.marketParam = market_param_1.MarketParam.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -189002,41 +189229,32 @@ exports.MarketPremiums = { return message; }, fromPartial(object) { - var _a, _b; - const message = createBaseMarketPremiums(); - message.perpetualId = (_a = object.perpetualId) !== null && _a !== void 0 ? _a : 0; - message.premiums = ((_b = object.premiums) === null || _b === void 0 ? void 0 : _b.map(e => e)) || []; + const message = createBaseQueryMarketParamResponse(); + message.marketParam = object.marketParam !== undefined && object.marketParam !== null ? market_param_1.MarketParam.fromPartial(object.marketParam) : undefined; return message; } }; -function createBasePremiumStore() { +function createBaseQueryAllMarketParamsRequest() { return { - allMarketPremiums: [], - numPremiums: 0 + pagination: undefined }; } -exports.PremiumStore = { +exports.QueryAllMarketParamsRequest = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.allMarketPremiums) { - exports.MarketPremiums.encode(v, writer.uint32(10).fork()).ldelim(); - } - if (message.numPremiums !== 0) { - writer.uint32(16).uint32(message.numPremiums); + if (message.pagination !== undefined) { + pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBasePremiumStore(); + const message = createBaseQueryAllMarketParamsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.allMarketPremiums.push(exports.MarketPremiums.decode(reader, reader.uint32())); - break; - case 2: - message.numPremiums = reader.uint32(); + message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -189046,69 +189264,39 @@ exports.PremiumStore = { return message; }, fromPartial(object) { - var _a, _b; - const message = createBasePremiumStore(); - message.allMarketPremiums = ((_a = object.allMarketPremiums) === null || _a === void 0 ? void 0 : _a.map(e => exports.MarketPremiums.fromPartial(e))) || []; - message.numPremiums = (_b = object.numPremiums) !== null && _b !== void 0 ? _b : 0; + const message = createBaseQueryAllMarketParamsRequest(); + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; return message; } }; -function createBaseLiquidityTier() { +function createBaseQueryAllMarketParamsResponse() { return { - id: 0, - name: "", - initialMarginPpm: 0, - maintenanceFractionPpm: 0, - basePositionNotional: helpers_1.Long.UZERO, - impactNotional: helpers_1.Long.UZERO + marketParams: [], + pagination: undefined }; } -exports.LiquidityTier = { +exports.QueryAllMarketParamsResponse = { encode(message, writer = _m0.Writer.create()) { - if (message.id !== 0) { - writer.uint32(8).uint32(message.id); - } - if (message.name !== "") { - writer.uint32(18).string(message.name); - } - if (message.initialMarginPpm !== 0) { - writer.uint32(24).uint32(message.initialMarginPpm); - } - if (message.maintenanceFractionPpm !== 0) { - writer.uint32(32).uint32(message.maintenanceFractionPpm); - } - if (!message.basePositionNotional.isZero()) { - writer.uint32(40).uint64(message.basePositionNotional); + for (const v of message.marketParams) { + market_param_1.MarketParam.encode(v, writer.uint32(10).fork()).ldelim(); } - if (!message.impactNotional.isZero()) { - writer.uint32(48).uint64(message.impactNotional); + if (message.pagination !== undefined) { + pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseLiquidityTier(); + const message = createBaseQueryAllMarketParamsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.id = reader.uint32(); + message.marketParams.push(market_param_1.MarketParam.decode(reader, reader.uint32())); break; case 2: - message.name = reader.string(); - break; - case 3: - message.initialMarginPpm = reader.uint32(); - break; - case 4: - message.maintenanceFractionPpm = reader.uint32(); - break; - case 5: - message.basePositionNotional = reader.uint64(); - break; - case 6: - message.impactNotional = reader.uint64(); + message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -189118,25 +189306,21 @@ exports.LiquidityTier = { return message; }, fromPartial(object) { - var _a, _b, _c, _d; - const message = createBaseLiquidityTier(); - message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0; - message.name = (_b = object.name) !== null && _b !== void 0 ? _b : ""; - message.initialMarginPpm = (_c = object.initialMarginPpm) !== null && _c !== void 0 ? _c : 0; - message.maintenanceFractionPpm = (_d = object.maintenanceFractionPpm) !== null && _d !== void 0 ? _d : 0; - message.basePositionNotional = object.basePositionNotional !== undefined && object.basePositionNotional !== null ? helpers_1.Long.fromValue(object.basePositionNotional) : helpers_1.Long.UZERO; - message.impactNotional = object.impactNotional !== undefined && object.impactNotional !== null ? helpers_1.Long.fromValue(object.impactNotional) : helpers_1.Long.UZERO; + var _a; + const message = createBaseQueryAllMarketParamsResponse(); + message.marketParams = ((_a = object.marketParams) === null || _a === void 0 ? void 0 : _a.map(e => market_param_1.MarketParam.fromPartial(e))) || []; + message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVycGV0dWFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vZHlkeHByb3RvY29sL3BlcnBldHVhbHMvcGVycGV0dWFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0RBQTBDO0FBQzFDLDJDQUFrRDtBQWdMbEQsU0FBUyxtQkFBbUI7SUFDMUIsT0FBTztRQUNMLE1BQU0sRUFBRSxTQUFTO1FBQ2pCLFlBQVksRUFBRSxJQUFJLFVBQVUsRUFBRTtLQUMvQixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsU0FBUyxHQUFHO0lBQ3ZCLE1BQU0sQ0FBQyxPQUFrQixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ2pFLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDaEMsdUJBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDM0U7UUFFRCxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDL0M7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvcHJpY2VzL3F1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkVBQWdJO0FBQ2hJLGlEQUFpRTtBQUNqRSxpREFBaUU7QUFDakUsd0RBQTBDO0FBK0kxQyxTQUFTLGlDQUFpQztJQUN4QyxPQUFPO1FBQ0wsRUFBRSxFQUFFLENBQUM7S0FDTixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsdUJBQXVCLEdBQUc7SUFDckMsTUFBTSxDQUFDLE9BQWdDLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDL0UsSUFBSSxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDckM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsaUNBQWlDLEVBQUUsQ0FBQztRQUVwRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdB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 /***/ }), -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/query.ts": -/*!******************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/query.ts ***! - \******************************************************************************************/ +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/tx.ts": +/*!***********************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/tx.ts ***! + \***********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -189165,31 +189349,38 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.QueryAllPerpetualsResponse = exports.QueryAllPerpetualsRequest = exports.QueryPerpetualResponse = exports.QueryPerpetualRequest = void 0; -const pagination_1 = __webpack_require__(/*! ../../cosmos/base/query/v1beta1/pagination */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/query/v1beta1/pagination.ts"); -const perpetual_1 = __webpack_require__(/*! ./perpetual */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/perpetual.ts"); +exports.MsgUpdateMarketParamResponse = exports.MsgUpdateMarketParam = exports.MsgUpdateMarketPricesResponse = exports.MsgUpdateMarketPrices_MarketPrice = exports.MsgUpdateMarketPrices = exports.MsgCreateOracleMarketResponse = exports.MsgCreateOracleMarket = void 0; +const market_param_1 = __webpack_require__(/*! ./market_param */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/market_param.ts"); const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -function createBaseQueryPerpetualRequest() { +const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); +function createBaseMsgCreateOracleMarket() { return { - id: 0 + authority: "", + params: undefined }; } -exports.QueryPerpetualRequest = { +exports.MsgCreateOracleMarket = { encode(message, writer = _m0.Writer.create()) { - if (message.id !== 0) { - writer.uint32(8).uint32(message.id); + if (message.authority !== "") { + writer.uint32(10).string(message.authority); + } + if (message.params !== undefined) { + market_param_1.MarketParam.encode(message.params, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryPerpetualRequest(); + const message = createBaseMsgCreateOracleMarket(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.id = reader.uint32(); + message.authority = reader.string(); + break; + case 2: + message.params = market_param_1.MarketParam.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -189200,33 +189391,26 @@ exports.QueryPerpetualRequest = { }, fromPartial(object) { var _a; - const message = createBaseQueryPerpetualRequest(); - message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0; + const message = createBaseMsgCreateOracleMarket(); + message.authority = (_a = object.authority) !== null && _a !== void 0 ? _a : ""; + message.params = object.params !== undefined && object.params !== null ? market_param_1.MarketParam.fromPartial(object.params) : undefined; return message; } }; -function createBaseQueryPerpetualResponse() { - return { - perpetual: undefined - }; +function createBaseMsgCreateOracleMarketResponse() { + return {}; } -exports.QueryPerpetualResponse = { - encode(message, writer = _m0.Writer.create()) { - if (message.perpetual !== undefined) { - perpetual_1.Perpetual.encode(message.perpetual, writer.uint32(10).fork()).ldelim(); - } +exports.MsgCreateOracleMarketResponse = { + encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryPerpetualResponse(); + const message = createBaseMsgCreateOracleMarketResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.perpetual = perpetual_1.Perpetual.decode(reader, reader.uint32()); - break; default: reader.skipType(tag & 7); break; @@ -189234,33 +189418,32 @@ exports.QueryPerpetualResponse = { } return message; }, - fromPartial(object) { - const message = createBaseQueryPerpetualResponse(); - message.perpetual = object.perpetual !== undefined && object.perpetual !== null ? perpetual_1.Perpetual.fromPartial(object.perpetual) : undefined; + fromPartial(_) { + const message = createBaseMsgCreateOracleMarketResponse(); return message; } }; -function createBaseQueryAllPerpetualsRequest() { +function createBaseMsgUpdateMarketPrices() { return { - pagination: undefined + marketPriceUpdates: [] }; } -exports.QueryAllPerpetualsRequest = { +exports.MsgUpdateMarketPrices = { encode(message, writer = _m0.Writer.create()) { - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); + for (const v of message.marketPriceUpdates) { + exports.MsgUpdateMarketPrices_MarketPrice.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllPerpetualsRequest(); + const message = createBaseMsgUpdateMarketPrices(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.marketPriceUpdates.push(exports.MsgUpdateMarketPrices_MarketPrice.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -189270,39 +189453,40 @@ exports.QueryAllPerpetualsRequest = { return message; }, fromPartial(object) { - const message = createBaseQueryAllPerpetualsRequest(); - message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; + var _a; + const message = createBaseMsgUpdateMarketPrices(); + message.marketPriceUpdates = ((_a = object.marketPriceUpdates) === null || _a === void 0 ? void 0 : _a.map(e => exports.MsgUpdateMarketPrices_MarketPrice.fromPartial(e))) || []; return message; } }; -function createBaseQueryAllPerpetualsResponse() { +function createBaseMsgUpdateMarketPrices_MarketPrice() { return { - perpetual: [], - pagination: undefined + marketId: 0, + price: helpers_1.Long.UZERO }; } -exports.QueryAllPerpetualsResponse = { +exports.MsgUpdateMarketPrices_MarketPrice = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.perpetual) { - perpetual_1.Perpetual.encode(v, writer.uint32(10).fork()).ldelim(); + if (message.marketId !== 0) { + writer.uint32(8).uint32(message.marketId); } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (!message.price.isZero()) { + writer.uint32(16).uint64(message.price); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllPerpetualsResponse(); + const message = createBaseMsgUpdateMarketPrices_MarketPrice(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.perpetual.push(perpetual_1.Perpetual.decode(reader, reader.uint32())); + message.marketId = reader.uint32(); break; case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + message.price = reader.uint64(); break; default: reader.skipType(tag & 7); @@ -189313,106 +189497,66 @@ exports.QueryAllPerpetualsResponse = { }, fromPartial(object) { var _a; - const message = createBaseQueryAllPerpetualsResponse(); - message.perpetual = ((_a = object.perpetual) === null || _a === void 0 ? void 0 : _a.map(e => perpetual_1.Perpetual.fromPartial(e))) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; + const message = createBaseMsgUpdateMarketPrices_MarketPrice(); + message.marketId = (_a = object.marketId) !== null && _a !== void 0 ? _a : 0; + message.price = object.price !== undefined && object.price !== null ? helpers_1.Long.fromValue(object.price) : helpers_1.Long.UZERO; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvcGVycGV0dWFscy9xdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJFQUFnSTtBQUNoSSwyQ0FBMEQ7QUFDMUQsd0RBQTBDO0FBOEMxQyxTQUFTLCtCQUErQjtJQUN0QyxPQUFPO1FBQ0wsRUFBRSxFQUFFLENBQUM7S0FDTixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEscUJBQXFCLEdBQUc7SUFDbkMsTUFBTSxDQUFDLE9BQThCLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDN0UsSUFBSSxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDckM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsK0JBQStCLEVBQUUsQ0FBQztRQUVsRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxF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 - -/***/ }), - -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/market_param.ts": -/*!*********************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/market_param.ts ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; +function createBaseMsgUpdateMarketPricesResponse() { + return {}; +} +exports.MsgUpdateMarketPricesResponse = { + encode(_, writer = _m0.Writer.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgUpdateMarketPricesResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(_) { + const message = createBaseMsgUpdateMarketPricesResponse(); + return message; } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; }; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.MarketParam = void 0; -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -function createBaseMarketParam() { +function createBaseMsgUpdateMarketParam() { return { - id: 0, - pair: "", - exponent: 0, - minExchanges: 0, - minPriceChangePpm: 0, - exchangeConfigJson: "" + authority: "", + marketParam: undefined }; } -exports.MarketParam = { +exports.MsgUpdateMarketParam = { encode(message, writer = _m0.Writer.create()) { - if (message.id !== 0) { - writer.uint32(8).uint32(message.id); - } - if (message.pair !== "") { - writer.uint32(18).string(message.pair); - } - if (message.exponent !== 0) { - writer.uint32(24).sint32(message.exponent); - } - if (message.minExchanges !== 0) { - writer.uint32(32).uint32(message.minExchanges); - } - if (message.minPriceChangePpm !== 0) { - writer.uint32(40).uint32(message.minPriceChangePpm); + if (message.authority !== "") { + writer.uint32(10).string(message.authority); } - if (message.exchangeConfigJson !== "") { - writer.uint32(50).string(message.exchangeConfigJson); + if (message.marketParam !== undefined) { + market_param_1.MarketParam.encode(message.marketParam, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMarketParam(); + const message = createBaseMsgUpdateMarketParam(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.id = reader.uint32(); + message.authority = reader.string(); break; case 2: - message.pair = reader.string(); - break; - case 3: - message.exponent = reader.sint32(); - break; - case 4: - message.minExchanges = reader.uint32(); - break; - case 5: - message.minPriceChangePpm = reader.uint32(); - break; - case 6: - message.exchangeConfigJson = reader.string(); + message.marketParam = market_param_1.MarketParam.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -189422,92 +189566,27 @@ exports.MarketParam = { return message; }, fromPartial(object) { - var _a, _b, _c, _d, _e, _f; - const message = createBaseMarketParam(); - message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0; - message.pair = (_b = object.pair) !== null && _b !== void 0 ? _b : ""; - message.exponent = (_c = object.exponent) !== null && _c !== void 0 ? _c : 0; - message.minExchanges = (_d = object.minExchanges) !== null && _d !== void 0 ? _d : 0; - message.minPriceChangePpm = (_e = object.minPriceChangePpm) !== null && _e !== void 0 ? _e : 0; - message.exchangeConfigJson = (_f = object.exchangeConfigJson) !== null && _f !== void 0 ? _f : ""; + var _a; + const message = createBaseMsgUpdateMarketParam(); + message.authority = (_a = object.authority) !== null && _a !== void 0 ? _a : ""; + message.marketParam = object.marketParam !== undefined && object.marketParam !== null ? market_param_1.MarketParam.fromPartial(object.marketParam) : undefined; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2V0X3BhcmFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vZHlkeHByb3RvY29sL3ByaWNlcy9tYXJrZXRfcGFyYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3REFBMEM7QUEwRDFDLFNBQVMscUJBQXFCO0lBQzVCLE9BQU87UUFDTCxFQUFFLEVBQUUsQ0FBQztRQUNMLElBQUksRUFBRSxFQUFFO1FBQ1IsUUFBUSxFQUFFLENBQUM7UUFDWCxZQUFZLEVBQUUsQ0FBQztRQUNmLGlCQUFpQixFQUFFLENBQUM7UUFDcEIsa0JBQWtCLEVBQUUsRUFBRTtLQUN2QixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsV0FBVyxHQUFHO0lBQ3pCLE1BQU0sQ0FBQyxPQUFvQixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ25FLElBQUksT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3JDO1FBRUQsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRTtZQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDeEM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssQ0FBQyxFQUFFO1lBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUM1QztRQUVELElBQUksT0FBTyxDQUFDLFlBQVksS0FBSyxDQUFDLEVB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 - -/***/ }), - -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/market_price.ts": -/*!*********************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/market_price.ts ***! - \*********************************************************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.MarketPrice = void 0; -const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); -const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -function createBaseMarketPrice() { - return { - id: 0, - exponent: 0, - price: helpers_1.Long.UZERO - }; +function createBaseMsgUpdateMarketParamResponse() { + return {}; } -exports.MarketPrice = { - encode(message, writer = _m0.Writer.create()) { - if (message.id !== 0) { - writer.uint32(8).uint32(message.id); - } - if (message.exponent !== 0) { - writer.uint32(16).sint32(message.exponent); - } - if (!message.price.isZero()) { - writer.uint32(24).uint64(message.price); - } +exports.MsgUpdateMarketParamResponse = { + encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseMarketPrice(); + const message = createBaseMsgUpdateMarketParamResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.id = reader.uint32(); - break; - case 2: - message.exponent = reader.sint32(); - break; - case 3: - message.price = reader.uint64(); - break; default: reader.skipType(tag & 7); break; @@ -189515,23 +189594,19 @@ exports.MarketPrice = { } return message; }, - fromPartial(object) { - var _a, _b; - const message = createBaseMarketPrice(); - message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0; - message.exponent = (_b = object.exponent) !== null && _b !== void 0 ? _b : 0; - message.price = object.price !== undefined && object.price !== null ? helpers_1.Long.fromValue(object.price) : helpers_1.Long.UZERO; + fromPartial(_) { + const message = createBaseMsgUpdateMarketParamResponse(); return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2V0X3ByaWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vZHlkeHByb3RvY29sL3ByaWNlcy9tYXJrZXRfcHJpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBa0Q7QUFDbEQsd0RBQTBDO0FBMkIxQyxTQUFTLHFCQUFxQjtJQUM1QixPQUFPO1FBQ0wsRUFBRSxFQUFFLENBQUM7UUFDTCxRQUFRLEVBQUUsQ0FBQztRQUNYLEtBQUssRUFBRSxjQUFJLENBQUMsS0FBSztLQUNsQixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsV0FBVyxHQUFHO0lBQ3pCLE1BQU0sQ0FBQyxPQUFvQixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ25FLElBQUksT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3JDO1FBRUQsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLENBQUMsRUFBRTtZQUMxQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDNUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMzQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcscUJBQXFCLEVBQUUsQ0FBQztRQUV4QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUU1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDN0IsTUFBTTtnQkFFUixLQUFLLENBQUM7b0JBQ0osT0FBTyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ25DLE1BQU07Z0JBRVIsS0FBSyxDQUFDO29CQUNKLE9BQU8sQ0FBQyxLQUFLLEdBQUksTUFBTSxDQUFDLE1BQU0sRUFBVyxDQUFDO29CQUMxQyxNQUFNO2dCQUVSO29CQUNFLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN6QixNQUFNO2FBQ1Q7U0FDRjtRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBZ0M7O1FBQzFDLE1BQU0sT0FBTyxHQUFHLHFCQUFxQixFQUFFLENBQUM7UUFDeEMsT0FBTyxDQUFDLEVBQUUsR0FBRyxNQUFBLE1BQU0sQ0FBQyxFQUFFLG1DQUFJLENBQUMsQ0FBQztRQUM1QixPQUFPLENBQUMsUUFBUSxHQUFHLE1BQUEsTUFBTSxDQUFDLFFBQVEsbUNBQUksQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2hILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FFRixDQUFDIn0= +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvcHJpY2VzL3R4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQWlFO0FBQ2pFLHdEQUEwQztBQUMxQywyQ0FBa0Q7QUE0RmxELFNBQVMsK0JBQStCO0lBQ3RDLE9BQU87UUFDTCxTQUFTLEVBQUUsRUFBRTtRQUNiLE1BQU0sRUFBRSxTQUFTO0tBQ2xCLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxxQkFBcUIsR0FBRztJQUNuQyxNQUFNLENBQUMsT0FBOEIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUM3RSxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFO1lBQzVCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM3QztRQUVELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDaEMsMEJBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDdkU7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsK0JBQStCLEVBQUUsQ0FBQztRQUVsRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUU1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDcEMsTUFBTTtnQkFFUixLQUFLLENBQUM7b0JBQ0osT0FBTyxDQUFDLE1BQU0sR0FBRywwQkFBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQzdELE1BQU07Z0JBRVI7b0JBQ0UsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3pCLE1BQU07YUFDVDtTQUNGO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUEwQzs7UUFDcEQsTUFBTSxPQUFPLEdBQUcsK0JBQStCLEVBQUUsQ0FBQztRQUNsRCxPQUFPLENBQUMsU0FBUyxHQUFHLE1BQUEsTUFBTSxDQUFDLFNBQVMsbUNBQUksRUFBRSxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLDBCQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzVILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FFRixDQUFDO0FBRUYsU0FBUyx1Q0FBdUM7SUFDOUMsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRVksUUFBQSw2QkFBNkIsR0FBRztJQUMzQyxNQUFNLENBQUMsQ0FBZ0MsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUMvRSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsdUNBQXVDLEVBQUUsQ0FBQztRQUUxRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUU1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCO29CQUNFLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN6QixNQUFNO2FBQ1Q7U0FDRjtRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxXQUFXLENBQUMsQ0FBNkM7UUFDdkQsTUFBTSxPQUFPLEdBQUcsdUNBQXVDLEVBQUUsQ0FBQztRQUMxRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBRUYsQ0FBQztBQUVGLFNBQVMsK0JBQStCO0lBQ3RDLE9BQU87UUFDTCxrQkFBa0IsRUFBRSxFQUFFO0tBQ3ZCLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxxQkFBcUIsR0FBRztJQUNuQyxNQUFNLENBQUMsT0FBOEIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUM3RSxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtZQUMxQyx5Q0FBaUMsQ0FBQyxNQUFNLENBQUMsQ0FBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNqRjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRywrQkFBK0IsRUFBRSxDQUFDO1FBRWxELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRTVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMseUNBQWlDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNuRyxNQUFNO2dCQUVSO29CQUNFLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN6QixNQUFNO2FBQ1Q7U0FDRjtRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBMEM7O1FBQ3BELE1BQU0sT0FBTyxHQUFHLCtCQUErQixFQUFFLENBQUM7UUFDbEQsT0FBTyxDQUFDLGtCQUFrQixHQUFHLENBQUEsTUFBQSxNQUFNLENBQUMsa0JBQWtCLDBDQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLHlDQUFpQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLEVBQUUsQ0FBQztRQUN6SCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBRUYsQ0FBQztBQUVGLFNBQVMsMkNBQTJDO0lBQ2xELE9BQU87UUFDTCxRQUFRLEVBQUUsQ0FBQztRQUNYLEtBQUssRUFBRSxjQUFJLENBQUMsS0FBSztLQUNsQixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsaUNBQWlDLEdBQUc7SUFDL0MsTUFBTSxDQUFDLE9BQTBDLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDekYsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLENBQUMsRUFBRTtZQUMxQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDM0M7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMzQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsMkNBQTJDLEVBQUUsQ0FBQztRQUU5RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUU1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDbkMsTUFBTTtnQkFFUixLQUFLLENBQUM7b0JBQ0osT0FBTyxDQUFDLEtBQUssR0FBSSxNQUFNLENBQUMsTUFBTSxFQUFXLENBQUM7b0JBQzFDLE1BQU07Z0JBRVI7b0JBQ0UsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3pCLE1BQU07YUFDVDtTQUNGO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFzRDs7UUFDaEUsTUFBTSxPQUFPLEdBQUcsMkNBQTJDLEVBQUUsQ0FBQztRQUM5RCxPQUFPLENBQUMsUUFBUSxHQUFHLE1BQUEsTUFBTSxDQUFDLFFBQVEsbUNBQUksQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2hILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FFRixDQUFDO0FBRUYsU0FBUyx1Q0FBdUM7SUFDOUMsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRVksUUFBQSw2QkFBNkIsR0FBRztJQUMzQyxNQUFNLENBQUMsQ0FBZ0MsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUMvRSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsdUNBQXVDLEVBQUUsQ0FBQztRQUUxRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUU1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCO29CQUNFLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN6QixNQUFNO2FBQ1Q7U0FDRjtRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxXQUFXLENBQUMsQ0FBNkM7UUFDdkQsTUFBTSxPQUFPLEdBQUcsdUNBQXVDLEVBQUUsQ0FBQztRQUMxRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBRUYsQ0FBQztBQUVGLFNBQVMsOEJBQThCO0lBQ3JDLE9BQU87UUFDTCxTQUFTLEVBQUUsRUFBRTtRQUNiLFdBQVcsRUFBRSxTQUFTO0tBQ3ZCLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxvQkFBb0IsR0FBRztJQUNsQyxNQUFNLENBQUMsT0FBNkIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUM1RSxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFO1lBQzVCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM3QztRQUVELElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUU7WUFDckMsMEJBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDNUU7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsOEJBQThCLEVBQUUsQ0FBQztRQUVqRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUU1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDcEMsTUFBTTtnQkFFUixLQUFLLENBQUM7b0JBQ0osT0FBTyxDQUFDLFdBQVcsR0FBRywwQkFBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQ2xFLE1BQU07Z0JBRVI7b0JBQ0UsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3pCLE1BQU07YUFDVDtTQUNGO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUF5Qzs7UUFDbkQsTUFBTSxPQUFPLEdBQUcsOEJBQThCLEVBQUUsQ0FBQztRQUNqRCxPQUFPLENBQUMsU0FBUyxHQUFHLE1BQUEsTUFBTSxDQUFDLFNBQVMsbUNBQUksRUFBRSxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLDBCQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hKLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FFRixDQUFDO0FBRUYsU0FBUyxzQ0FBc0M7SUFDN0MsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRVksUUFBQSw0QkFBNEIsR0FBRztJQUMxQyxNQUFNLENBQUMsQ0FBK0IsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUM5RSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsc0NBQXNDLEVBQUUsQ0FBQztRQUV6RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUU1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCO29CQUNFLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN6QixNQUFNO2FBQ1Q7U0FDRjtRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxXQUFXLENBQUMsQ0FBNEM7UUFDdEQsTUFBTSxPQUFPLEdBQUcsc0NBQXNDLEVBQUUsQ0FBQztRQUN6RCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBRUYsQ0FBQyJ9 /***/ }), -/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/query.ts": -/*!**************************************************************************************!*\ - !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/query.ts ***! - \**************************************************************************************/ +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/capacity.ts": +/*!********************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/capacity.ts ***! + \********************************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -189560,32 +189635,37 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.QueryAllMarketParamsResponse = exports.QueryAllMarketParamsRequest = exports.QueryMarketParamResponse = exports.QueryMarketParamRequest = exports.QueryAllMarketPricesResponse = exports.QueryAllMarketPricesRequest = exports.QueryMarketPriceResponse = exports.QueryMarketPriceRequest = void 0; -const pagination_1 = __webpack_require__(/*! ../../cosmos/base/query/v1beta1/pagination */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/query/v1beta1/pagination.ts"); -const market_price_1 = __webpack_require__(/*! ./market_price */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/market_price.ts"); -const market_param_1 = __webpack_require__(/*! ./market_param */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/market_param.ts"); +exports.LimiterCapacity = exports.DenomCapacity = void 0; +const limit_params_1 = __webpack_require__(/*! ./limit_params */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/limit_params.ts"); const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -function createBaseQueryMarketPriceRequest() { +function createBaseDenomCapacity() { return { - id: 0 + denom: "", + capacityList: [] }; } -exports.QueryMarketPriceRequest = { +exports.DenomCapacity = { encode(message, writer = _m0.Writer.create()) { - if (message.id !== 0) { - writer.uint32(8).uint32(message.id); + if (message.denom !== "") { + writer.uint32(10).string(message.denom); + } + for (const v of message.capacityList) { + writer.uint32(18).bytes(v); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryMarketPriceRequest(); + const message = createBaseDenomCapacity(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.id = reader.uint32(); + message.denom = reader.string(); + break; + case 2: + message.capacityList.push(reader.bytes()); break; default: reader.skipType(tag & 7); @@ -189595,33 +189675,41 @@ exports.QueryMarketPriceRequest = { return message; }, fromPartial(object) { - var _a; - const message = createBaseQueryMarketPriceRequest(); - message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0; + var _a, _b; + const message = createBaseDenomCapacity(); + message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : ""; + message.capacityList = ((_b = object.capacityList) === null || _b === void 0 ? void 0 : _b.map(e => e)) || []; return message; } }; -function createBaseQueryMarketPriceResponse() { +function createBaseLimiterCapacity() { return { - marketPrice: undefined + limiter: undefined, + capacity: new Uint8Array() }; } -exports.QueryMarketPriceResponse = { +exports.LimiterCapacity = { encode(message, writer = _m0.Writer.create()) { - if (message.marketPrice !== undefined) { - market_price_1.MarketPrice.encode(message.marketPrice, writer.uint32(10).fork()).ldelim(); + if (message.limiter !== undefined) { + limit_params_1.Limiter.encode(message.limiter, writer.uint32(10).fork()).ldelim(); + } + if (message.capacity.length !== 0) { + writer.uint32(18).bytes(message.capacity); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryMarketPriceResponse(); + const message = createBaseLimiterCapacity(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.marketPrice = market_price_1.MarketPrice.decode(reader, reader.uint32()); + message.limiter = limit_params_1.Limiter.decode(reader, reader.uint32()); + break; + case 2: + message.capacity = reader.bytes(); break; default: reader.skipType(tag & 7); @@ -189631,32 +189719,80 @@ exports.QueryMarketPriceResponse = { return message; }, fromPartial(object) { - const message = createBaseQueryMarketPriceResponse(); - message.marketPrice = object.marketPrice !== undefined && object.marketPrice !== null ? market_price_1.MarketPrice.fromPartial(object.marketPrice) : undefined; + var _a; + const message = createBaseLimiterCapacity(); + message.limiter = object.limiter !== undefined && object.limiter !== null ? limit_params_1.Limiter.fromPartial(object.limiter) : undefined; + message.capacity = (_a = object.capacity) !== null && _a !== void 0 ? _a : new Uint8Array(); return message; } }; -function createBaseQueryAllMarketPricesRequest() { +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwYWNpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvcmF0ZWxpbWl0L2NhcGFjaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQXlEO0FBQ3pELHdEQUEwQztBQXFDMUMsU0FBUyx1QkFBdUI7SUFDOUIsT0FBTztRQUNMLEtBQUssRUFBRSxFQUFFO1FBQ1QsWUFBWSxFQUFFLEVBQUU7S0FDakIsQ0FBQztBQUNKLENBQUM7QUFFWSxRQUFBLGFBQWEsR0FBRztJQUMzQixNQUFNLENBQUMsT0FBc0IsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNyRSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssRUFBRSxFQUFFO1lBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QztRQUVELEtBQUssTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLFlBQVksRUFBRTtZQUNwQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFFLENBQUMsQ0FBQztTQUM3QjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENB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 + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/limit_params.ts": +/*!************************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/limit_params.ts ***! + \************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Limiter = exports.LimitParams = void 0; +const duration_1 = __webpack_require__(/*! ../../google/protobuf/duration */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/duration.ts"); +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +function createBaseLimitParams() { return { - pagination: undefined + denom: "", + limiters: [] }; } -exports.QueryAllMarketPricesRequest = { +exports.LimitParams = { encode(message, writer = _m0.Writer.create()) { - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); + if (message.denom !== "") { + writer.uint32(10).string(message.denom); + } + for (const v of message.limiters) { + exports.Limiter.encode(v, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllMarketPricesRequest(); + const message = createBaseLimitParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.denom = reader.string(); + break; + case 2: + message.limiters.push(exports.Limiter.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -189666,39 +189802,48 @@ exports.QueryAllMarketPricesRequest = { return message; }, fromPartial(object) { - const message = createBaseQueryAllMarketPricesRequest(); - message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; + var _a, _b; + const message = createBaseLimitParams(); + message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : ""; + message.limiters = ((_b = object.limiters) === null || _b === void 0 ? void 0 : _b.map(e => exports.Limiter.fromPartial(e))) || []; return message; } }; -function createBaseQueryAllMarketPricesResponse() { +function createBaseLimiter() { return { - marketPrices: [], - pagination: undefined + period: undefined, + baselineMinimum: new Uint8Array(), + baselineTvlPpm: 0 }; } -exports.QueryAllMarketPricesResponse = { +exports.Limiter = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.marketPrices) { - market_price_1.MarketPrice.encode(v, writer.uint32(10).fork()).ldelim(); + if (message.period !== undefined) { + duration_1.Duration.encode(message.period, writer.uint32(10).fork()).ldelim(); } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + if (message.baselineMinimum.length !== 0) { + writer.uint32(26).bytes(message.baselineMinimum); + } + if (message.baselineTvlPpm !== 0) { + writer.uint32(32).uint32(message.baselineTvlPpm); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllMarketPricesResponse(); + const message = createBaseLimiter(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.marketPrices.push(market_price_1.MarketPrice.decode(reader, reader.uint32())); + message.period = duration_1.Duration.decode(reader, reader.uint32()); break; - case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + case 3: + message.baselineMinimum = reader.bytes(); + break; + case 4: + message.baselineTvlPpm = reader.uint32(); break; default: reader.skipType(tag & 7); @@ -189708,35 +189853,68 @@ exports.QueryAllMarketPricesResponse = { return message; }, fromPartial(object) { - var _a; - const message = createBaseQueryAllMarketPricesResponse(); - message.marketPrices = ((_a = object.marketPrices) === null || _a === void 0 ? void 0 : _a.map(e => market_price_1.MarketPrice.fromPartial(e))) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; + var _a, _b; + const message = createBaseLimiter(); + message.period = object.period !== undefined && object.period !== null ? duration_1.Duration.fromPartial(object.period) : undefined; + message.baselineMinimum = (_a = object.baselineMinimum) !== null && _a !== void 0 ? _a : new Uint8Array(); + message.baselineTvlPpm = (_b = object.baselineTvlPpm) !== null && _b !== void 0 ? _b : 0; return message; } }; -function createBaseQueryMarketParamRequest() { - return { - id: 0 - }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGltaXRfcGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vZHlkeHByb3RvY29sL3JhdGVsaW1pdC9saW1pdF9wYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2REFBMkU7QUFDM0Usd0RBQTBDO0FBc0QxQyxTQUFTLHFCQUFxQjtJQUM1QixPQUFPO1FBQ0wsS0FBSyxFQUFFLEVBQUU7UUFDVCxRQUFRLEVBQUUsRUFBRTtLQUNiLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxXQUFXLEdBQUc7SUFDekIsTUFBTSxDQUFDLE9BQW9CLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDbkUsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRTtZQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekM7UUFFRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDaEMsZUFBTyxDQUFDLE1BQU0sQ0FBQyxDQUFFLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3ZEO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNFLElBQUks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 + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/query.ts": +/*!*****************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/query.ts ***! + \*****************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.QueryCapacityByDenomResponse = exports.QueryCapacityByDenomRequest = exports.ListLimitParamsResponse = exports.ListLimitParamsRequest = void 0; +const limit_params_1 = __webpack_require__(/*! ./limit_params */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/limit_params.ts"); +const capacity_1 = __webpack_require__(/*! ./capacity */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/capacity.ts"); +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +function createBaseListLimitParamsRequest() { + return {}; } -exports.QueryMarketParamRequest = { - encode(message, writer = _m0.Writer.create()) { - if (message.id !== 0) { - writer.uint32(8).uint32(message.id); - } +exports.ListLimitParamsRequest = { + encode(_, writer = _m0.Writer.create()) { return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryMarketParamRequest(); + const message = createBaseListLimitParamsRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.id = reader.uint32(); - break; default: reader.skipType(tag & 7); break; @@ -189744,34 +189922,32 @@ exports.QueryMarketParamRequest = { } return message; }, - fromPartial(object) { - var _a; - const message = createBaseQueryMarketParamRequest(); - message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0; + fromPartial(_) { + const message = createBaseListLimitParamsRequest(); return message; } }; -function createBaseQueryMarketParamResponse() { +function createBaseListLimitParamsResponse() { return { - marketParam: undefined + limitParamsList: [] }; } -exports.QueryMarketParamResponse = { +exports.ListLimitParamsResponse = { encode(message, writer = _m0.Writer.create()) { - if (message.marketParam !== undefined) { - market_param_1.MarketParam.encode(message.marketParam, writer.uint32(10).fork()).ldelim(); + for (const v of message.limitParamsList) { + limit_params_1.LimitParams.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryMarketParamResponse(); + const message = createBaseListLimitParamsResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.marketParam = market_param_1.MarketParam.decode(reader, reader.uint32()); + message.limitParamsList.push(limit_params_1.LimitParams.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -189781,32 +189957,33 @@ exports.QueryMarketParamResponse = { return message; }, fromPartial(object) { - const message = createBaseQueryMarketParamResponse(); - message.marketParam = object.marketParam !== undefined && object.marketParam !== null ? market_param_1.MarketParam.fromPartial(object.marketParam) : undefined; + var _a; + const message = createBaseListLimitParamsResponse(); + message.limitParamsList = ((_a = object.limitParamsList) === null || _a === void 0 ? void 0 : _a.map(e => limit_params_1.LimitParams.fromPartial(e))) || []; return message; } }; -function createBaseQueryAllMarketParamsRequest() { +function createBaseQueryCapacityByDenomRequest() { return { - pagination: undefined + denom: "" }; } -exports.QueryAllMarketParamsRequest = { +exports.QueryCapacityByDenomRequest = { encode(message, writer = _m0.Writer.create()) { - if (message.pagination !== undefined) { - pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); + if (message.denom !== "") { + writer.uint32(10).string(message.denom); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllMarketParamsRequest(); + const message = createBaseQueryCapacityByDenomRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32()); + message.denom = reader.string(); break; default: reader.skipType(tag & 7); @@ -189816,39 +189993,33 @@ exports.QueryAllMarketParamsRequest = { return message; }, fromPartial(object) { - const message = createBaseQueryAllMarketParamsRequest(); - message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageRequest.fromPartial(object.pagination) : undefined; + var _a; + const message = createBaseQueryCapacityByDenomRequest(); + message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : ""; return message; } }; -function createBaseQueryAllMarketParamsResponse() { +function createBaseQueryCapacityByDenomResponse() { return { - marketParams: [], - pagination: undefined + limiterCapacityList: [] }; } -exports.QueryAllMarketParamsResponse = { +exports.QueryCapacityByDenomResponse = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.marketParams) { - market_param_1.MarketParam.encode(v, writer.uint32(10).fork()).ldelim(); - } - if (message.pagination !== undefined) { - pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + for (const v of message.limiterCapacityList) { + capacity_1.LimiterCapacity.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseQueryAllMarketParamsResponse(); + const message = createBaseQueryCapacityByDenomResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.marketParams.push(market_param_1.MarketParam.decode(reader, reader.uint32())); - break; - case 2: - message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32()); + message.limiterCapacityList.push(capacity_1.LimiterCapacity.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -189859,13 +190030,12 @@ exports.QueryAllMarketParamsResponse = { }, fromPartial(object) { var _a; - const message = createBaseQueryAllMarketParamsResponse(); - message.marketParams = ((_a = object.marketParams) === null || _a === void 0 ? void 0 : _a.map(e => market_param_1.MarketParam.fromPartial(e))) || []; - message.pagination = object.pagination !== undefined && object.pagination !== null ? pagination_1.PageResponse.fromPartial(object.pagination) : undefined; + const message = createBaseQueryCapacityByDenomResponse(); + message.limiterCapacityList = ((_a = object.limiterCapacityList) === null || _a === void 0 ? void 0 : _a.map(e => capacity_1.LimiterCapacity.fromPartial(e))) || []; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvcHJpY2VzL3F1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkVBQWdJO0FBQ2hJLGlEQUFpRTtBQUNqRSxpREFBaUU7QUFDakUsd0RBQTBDO0FBK0kxQyxTQUFTLGlDQUFpQztJQUN4QyxPQUFPO1FBQ0wsRUFBRSxFQUFFLENBQUM7S0FDTixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsdUJBQXVCLEdBQUc7SUFDckMsTUFBTSxDQUFDLE9BQWdDLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDL0UsSUFBSSxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDckM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsaUNBQWlDLEVBQUUsQ0FBQztRQUVwRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvcmF0ZWxpbWl0L3F1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQWlFO0FBQ2pFLHlDQUFxRTtBQUNyRSx3REFBMEM7QUF1RDFDLFNBQVMsZ0NBQWdDO0lBQ3ZDLE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVZLFFBQUEsc0JBQXNCLEdBQUc7SUFDcEMsTUFBTSxDQUFDLENBQXlCLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDeEUsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLGdDQUFnQyxFQUFFLENBQUM7UUFFbkQsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNqQjtvQkFDRSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFD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 /***/ }), @@ -191445,7 +191615,7 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.QuerySubaccountAllResponse = exports.QueryAllSubaccountRequest = exports.QuerySubaccountResponse = exports.QueryGetSubaccountRequest = void 0; +exports.QueryGetWithdrawalAndTransfersBlockedInfoResponse = exports.QueryGetWithdrawalAndTransfersBlockedInfoRequest = exports.QuerySubaccountAllResponse = exports.QueryAllSubaccountRequest = exports.QuerySubaccountResponse = exports.QueryGetSubaccountRequest = void 0; const pagination_1 = __webpack_require__(/*! ../../cosmos/base/query/v1beta1/pagination */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/query/v1beta1/pagination.ts"); const subaccount_1 = __webpack_require__(/*! ./subaccount */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/subaccount.ts"); const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); @@ -191607,7 +191777,85 @@ exports.QuerySubaccountAllResponse = { return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvc3ViYWNjb3VudHMvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyRUFBZ0k7QUFDaEksNkNBQTZEO0FBQzdELHdEQUEwQztBQStDMUMsU0FBUyxtQ0FBbUM7SUFDMUMsT0FBTztRQUNMLEtBQUssRUFBRSxFQUFFO1FBQ1QsTUFBTSxFQUFFLENBQUM7S0FDVixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEseUJBQXlCLEdBQUc7SUFDdkMsTUFBTSxDQUFDLE9BQWtDLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDakYsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRTtZQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMxQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENB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 +function createBaseQueryGetWithdrawalAndTransfersBlockedInfoRequest() { + return {}; +} +exports.QueryGetWithdrawalAndTransfersBlockedInfoRequest = { + encode(_, writer = _m0.Writer.create()) { + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryGetWithdrawalAndTransfersBlockedInfoRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(_) { + const message = createBaseQueryGetWithdrawalAndTransfersBlockedInfoRequest(); + return message; + } +}; +function createBaseQueryGetWithdrawalAndTransfersBlockedInfoResponse() { + return { + negativeTncSubaccountSeenAtBlock: 0, + chainOutageSeenAtBlock: 0, + withdrawalsAndTransfersUnblockedAtBlock: 0 + }; +} +exports.QueryGetWithdrawalAndTransfersBlockedInfoResponse = { + encode(message, writer = _m0.Writer.create()) { + if (message.negativeTncSubaccountSeenAtBlock !== 0) { + writer.uint32(8).uint32(message.negativeTncSubaccountSeenAtBlock); + } + if (message.chainOutageSeenAtBlock !== 0) { + writer.uint32(16).uint32(message.chainOutageSeenAtBlock); + } + if (message.withdrawalsAndTransfersUnblockedAtBlock !== 0) { + writer.uint32(24).uint32(message.withdrawalsAndTransfersUnblockedAtBlock); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryGetWithdrawalAndTransfersBlockedInfoResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.negativeTncSubaccountSeenAtBlock = reader.uint32(); + break; + case 2: + message.chainOutageSeenAtBlock = reader.uint32(); + break; + case 3: + message.withdrawalsAndTransfersUnblockedAtBlock = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b, _c; + const message = createBaseQueryGetWithdrawalAndTransfersBlockedInfoResponse(); + message.negativeTncSubaccountSeenAtBlock = (_a = object.negativeTncSubaccountSeenAtBlock) !== null && _a !== void 0 ? _a : 0; + message.chainOutageSeenAtBlock = (_b = object.chainOutageSeenAtBlock) !== null && _b !== void 0 ? _b : 0; + message.withdrawalsAndTransfersUnblockedAtBlock = (_c = object.withdrawalsAndTransfersUnblockedAtBlock) !== null && _c !== void 0 ? _c : 0; + return message; + } +}; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi9keWR4cHJvdG9jb2wvc3ViYWNjb3VudHMvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyRUFBZ0k7QUFDaEksNkNBQTZEO0FBQzdELHdEQUEwQztBQStFMUMsU0FBUyxtQ0FBbUM7SUFDMUMsT0FBTztRQUNMLEtBQUssRUFBRSxFQUFFO1FBQ1QsTUFBTSxFQUFFLENBQUM7S0FDVixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEseUJBQXlCLEdBQUc7SUFDdkMsTUFBTSxDQUFDLE9BQWtDLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDakYsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRTtZQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMxQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxtQ0FBbUMsRUFBRSxDQUFDO1FBRXRELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRTVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLE9BQU8sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNoQyxNQUFNO2dCQUVSLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDakMsTUFBTTtnQkFFUjtvQkFDRSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDekIsTUFBTTthQUNUO1NBQ0Y7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQThDOztRQUN4RCxNQUFNLE9BQU8sR0FBRyxtQ0FBbUMsRUFBRSxDQUFDO1FBQ3RELE9BQU8sQ0FBQyxLQUFLLEdBQUcsTUFBQSxNQUFNLENBQUMsS0FBSyxtQ0FBSSxFQUFFLENBQUM7UUFDbkMsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFBLE1BQU0sQ0FBQyxNQUFNLG1DQUFJLENBQUMsQ0FBQztRQUNwQyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBRUYsQ0FBQztBQUVGLFNBQVMsaUNBQWlDO0lBQ3hDLE9BQU87UUFDTCxVQUFVLEVBQUUsU0FBUztLQUN0QixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsdUJBQXVCLEdBQUc7SUFDckMsTUFBTSxDQUFDLE9BQWdDLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDL0UsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUNwQyx1QkFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMxRTtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxpQ0FBaUMsRUFBRSxDQUFDO1FBRXBELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRTVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLE9BQU8sQ0FBQyxVQUFVLEdBQUcsdUJBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUNoRSxNQUFNO2dCQUVSO29CQUNFLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN6QixNQUFNO2FBQ1Q7U0FDRjtRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBNEM7UUFDdEQsTUFBTSxPQUFPLEdBQUcsaUNBQWlDLEVBQUUsQ0FBQztRQUNwRCxPQUFPLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyx1QkFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUMzSSxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBRUYsQ0FBQztBQUVGLFNBQVMsbUNBQW1DO0lBQzFDLE9BQU87UUFDTCxVQUFVLEVBQUUsU0FBUztLQUN0QixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEseUJBQXlCLEdBQUc7SUFDdkMsTUFBTSxDQUFDLE9BQWtDLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDakYsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUNwQyx3QkFBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMzRTtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxtQ0FBbUMsRUFBRSxDQUFDO1FBRXRELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRTVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLE9BQU8sQ0FBQyxVQUFVLEdBQUcsd0JBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUNqRSxNQUFNO2dCQUVSO29CQUNFLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN6QixNQUFNO2FBQ1Q7U0FDRjtRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBOEM7UUFDeEQsTUFBTSxPQUFPLEdBQUcsbUNBQW1DLEVBQUUsQ0FBQztRQUN0RCxPQUFPLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyx3QkFBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUM1SSxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBRUYsQ0FBQztBQUVGLFNBQVMsb0NBQW9DO0lBQzNDLE9BQU87UUFDTCxVQUFVLEVBQUUsRUFBRTtRQUNkLFVBQVUsRUFBRSxTQUFTO0tBQ3RCLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSwwQkFBMEIsR0FBRztJQUN4QyxNQUFNLENBQUMsT0FBbUMsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNsRixLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDbEMsdUJBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMxRDtRQUVELElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDcEMseUJBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDNUU7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsb0NBQW9DLEVBQUUsQ0FBQztRQUV2RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUU1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyx1QkFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDcEUsTUFBTTtnQkFFUixLQUFLLENBQUM7b0JBQ0osT0FBTyxDQUFDLFVBQVUsR0FBRyx5QkFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQ2xFLE1BQU07Z0JBRVI7b0JBQ0UsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3pCLE1BQU07YUFDVDtTQUNGO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUErQzs7UUFDekQsTUFBTSxPQUFPLEdBQUcsb0NBQW9DLEVBQUUsQ0FBQztRQUN2RCxPQUFPLENBQUMsVUFBVSxHQUFHLENBQUEsTUFBQSxNQUFNLENBQUMsVUFBVSwwQ0FBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyx1QkFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLEVBQUUsQ0FBQztRQUNsRixPQUFPLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyx5QkFBWSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUM3SSxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBRUYsQ0FBQztBQUVGLFNBQVMsMERBQTBEO0lBQ2pFLE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVZLFFBQUEsZ0RBQWdELEdBQUc7SUFDOUQsTUFBTSxDQUFDLENBQW1ELEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDbEcsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLDBEQUEwRCxFQUFFLENBQUM7UUFFN0UsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNqQjtvQkFDRSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDekIsTUFBTTthQUNUO1NBQ0Y7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsV0FBVyxDQUFDLENBQWdFO1FBQzFFLE1BQU0sT0FBTyxHQUFHLDBEQUEwRCxFQUFFLENBQUM7UUFDN0UsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUVGLENBQUM7QUFFRixTQUFTLDJEQUEyRDtJQUNsRSxPQUFPO1FBQ0wsZ0NBQWdDLEVBQUUsQ0FBQztRQUNuQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3pCLHVDQUF1QyxFQUFFLENBQUM7S0FDM0MsQ0FBQztBQUNKLENBQUM7QUFFWSxRQUFBLGlEQUFpRCxHQUFHO0lBQy9ELE1BQU0sQ0FBQyxPQUEwRCxFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ3pHLElBQUksT0FBTyxDQUFDLGdDQUFnQyxLQUFLLENBQUMsRUFBRTtZQUNsRCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztTQUNuRTtRQUVELElBQUksT0FBTyxDQUFDLHNCQUFzQixLQUFLLENBQUMsRUFBRTtZQUN4QyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQztTQUMxRDtRQUVELElBQUksT0FBTyxDQUFDLHVDQUF1QyxLQUFLLENBQUMsRUFBRTtZQUN6RCxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsdUNBQXVDLENBQUMsQ0FBQztTQUMzRTtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRywyREFBMkQsRUFBRSxDQUFDO1FBRTlFLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRTVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLE9BQU8sQ0FBQyxnQ0FBZ0MsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzNELE1BQU07Z0JBRVIsS0FBSyxDQUFDO29CQUNKLE9BQU8sQ0FBQyxzQkFBc0IsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2pELE1BQU07Z0JBRVIsS0FBSyxDQUFDO29CQUNKLE9BQU8sQ0FBQyx1Q0FBdUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2xFLE1BQU07Z0JBRVI7b0JBQ0UsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3pCLE1BQU07YUFDVDtTQUNGO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFzRTs7UUFDaEYsTUFBTSxPQUFPLEdBQUcsMkRBQTJELEVBQUUsQ0FBQztRQUM5RSxPQUFPLENBQUMsZ0NBQWdDLEdBQUcsTUFBQSxNQUFNLENBQUMsZ0NBQWdDLG1DQUFJLENBQUMsQ0FBQztRQUN4RixPQUFPLENBQUMsc0JBQXNCLEdBQUcsTUFBQSxNQUFNLENBQUMsc0JBQXNCLG1DQUFJLENBQUMsQ0FBQztRQUNwRSxPQUFPLENBQUMsdUNBQXVDLEdBQUcsTUFBQSxNQUFNLENBQUMsdUNBQXVDLG1DQUFJLENBQUMsQ0FBQztRQUN0RyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBRUYsQ0FBQyJ9 /***/ }), @@ -192230,11 +192478,10 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ResponseListSnapshots = exports.ResponseCommit = exports.ResponseEndBlock = exports.ResponseDeliverTx = exports.ResponseCheckTx = exports.ResponseBeginBlock = exports.ResponseQuery = exports.ResponseInitChain = exports.ResponseInfo = exports.ResponseFlush = exports.ResponseEcho = exports.ResponseException = exports.Response = exports.RequestProcessProposal = exports.RequestPrepareProposal = exports.RequestApplySnapshotChunk = exports.RequestLoadSnapshotChunk = exports.RequestOfferSnapshot = exports.RequestListSnapshots = exports.RequestCommit = exports.RequestEndBlock = exports.RequestDeliverTx = exports.RequestCheckTx = exports.RequestBeginBlock = exports.RequestQuery = exports.RequestInitChain = exports.RequestInfo = exports.RequestFlush = exports.RequestEcho = exports.Request = exports.misbehaviorTypeToJSON = exports.misbehaviorTypeFromJSON = exports.MisbehaviorTypeSDKType = exports.MisbehaviorType = exports.responseProcessProposal_ProposalStatusToJSON = exports.responseProcessProposal_ProposalStatusFromJSON = exports.ResponseProcessProposal_ProposalStatusSDKType = exports.ResponseProcessProposal_ProposalStatus = exports.responseApplySnapshotChunk_ResultToJSON = exports.responseApplySnapshotChunk_ResultFromJSON = exports.ResponseApplySnapshotChunk_ResultSDKType = exports.ResponseApplySnapshotChunk_Result = exports.responseOfferSnapshot_ResultToJSON = exports.responseOfferSnapshot_ResultFromJSON = exports.ResponseOfferSnapshot_ResultSDKType = exports.ResponseOfferSnapshot_Result = exports.checkTxTypeToJSON = exports.checkTxTypeFromJSON = exports.CheckTxTypeSDKType = exports.CheckTxType = void 0; -exports.Snapshot = exports.Misbehavior = exports.ExtendedVoteInfo = exports.VoteInfo = exports.ValidatorUpdate = exports.Validator = exports.TxResult = exports.EventAttribute = exports.Event = exports.ExtendedCommitInfo = exports.CommitInfo = exports.ResponseProcessProposal = exports.ResponsePrepareProposal = exports.ResponseApplySnapshotChunk = exports.ResponseLoadSnapshotChunk = exports.ResponseOfferSnapshot = void 0; +exports.ResponseCommit = exports.ResponseCheckTx = exports.ResponseQuery = exports.ResponseInitChain = exports.ResponseInfo = exports.ResponseFlush = exports.ResponseEcho = exports.ResponseException = exports.Response = exports.RequestFinalizeBlock = exports.RequestVerifyVoteExtension = exports.RequestExtendVote = exports.RequestProcessProposal = exports.RequestPrepareProposal = exports.RequestApplySnapshotChunk = exports.RequestLoadSnapshotChunk = exports.RequestOfferSnapshot = exports.RequestListSnapshots = exports.RequestCommit = exports.RequestCheckTx = exports.RequestQuery = exports.RequestInitChain = exports.RequestInfo = exports.RequestFlush = exports.RequestEcho = exports.Request = exports.misbehaviorTypeToJSON = exports.misbehaviorTypeFromJSON = exports.MisbehaviorTypeSDKType = exports.MisbehaviorType = exports.responseVerifyVoteExtension_VerifyStatusToJSON = exports.responseVerifyVoteExtension_VerifyStatusFromJSON = exports.ResponseVerifyVoteExtension_VerifyStatusSDKType = exports.ResponseVerifyVoteExtension_VerifyStatus = exports.responseProcessProposal_ProposalStatusToJSON = exports.responseProcessProposal_ProposalStatusFromJSON = exports.ResponseProcessProposal_ProposalStatusSDKType = exports.ResponseProcessProposal_ProposalStatus = exports.responseApplySnapshotChunk_ResultToJSON = exports.responseApplySnapshotChunk_ResultFromJSON = exports.ResponseApplySnapshotChunk_ResultSDKType = exports.ResponseApplySnapshotChunk_Result = exports.responseOfferSnapshot_ResultToJSON = exports.responseOfferSnapshot_ResultFromJSON = exports.ResponseOfferSnapshot_ResultSDKType = exports.ResponseOfferSnapshot_Result = exports.checkTxTypeToJSON = exports.checkTxTypeFromJSON = exports.CheckTxTypeSDKType = exports.CheckTxType = void 0; +exports.Snapshot = exports.Misbehavior = exports.ExtendedVoteInfo = exports.VoteInfo = exports.ValidatorUpdate = exports.Validator = exports.TxResult = exports.ExecTxResult = exports.EventAttribute = exports.Event = exports.ExtendedCommitInfo = exports.CommitInfo = exports.ResponseFinalizeBlock = exports.ResponseVerifyVoteExtension = exports.ResponseExtendVote = exports.ResponseProcessProposal = exports.ResponsePrepareProposal = exports.ResponseApplySnapshotChunk = exports.ResponseLoadSnapshotChunk = exports.ResponseOfferSnapshot = exports.ResponseListSnapshots = void 0; const timestamp_1 = __webpack_require__(/*! ../../google/protobuf/timestamp */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/timestamp.ts"); const params_1 = __webpack_require__(/*! ../types/params */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/params.ts"); -const types_1 = __webpack_require__(/*! ../types/types */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/types.ts"); const proof_1 = __webpack_require__(/*! ../crypto/proof */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/crypto/proof.ts"); const keys_1 = __webpack_require__(/*! ../crypto/keys */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/crypto/keys.ts"); const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); @@ -192441,6 +192688,52 @@ function responseProcessProposal_ProposalStatusToJSON(object) { } } exports.responseProcessProposal_ProposalStatusToJSON = responseProcessProposal_ProposalStatusToJSON; +var ResponseVerifyVoteExtension_VerifyStatus; +(function (ResponseVerifyVoteExtension_VerifyStatus) { + ResponseVerifyVoteExtension_VerifyStatus[ResponseVerifyVoteExtension_VerifyStatus["UNKNOWN"] = 0] = "UNKNOWN"; + ResponseVerifyVoteExtension_VerifyStatus[ResponseVerifyVoteExtension_VerifyStatus["ACCEPT"] = 1] = "ACCEPT"; + /** + * REJECT - Rejecting the vote extension will reject the entire precommit by the sender. + * Incorrectly implementing this thus has liveness implications as it may affect + * CometBFT's ability to receive 2/3+ valid votes to finalize the block. + * Honest nodes should never be rejected. + */ + ResponseVerifyVoteExtension_VerifyStatus[ResponseVerifyVoteExtension_VerifyStatus["REJECT"] = 2] = "REJECT"; + ResponseVerifyVoteExtension_VerifyStatus[ResponseVerifyVoteExtension_VerifyStatus["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(ResponseVerifyVoteExtension_VerifyStatus = exports.ResponseVerifyVoteExtension_VerifyStatus || (exports.ResponseVerifyVoteExtension_VerifyStatus = {})); +exports.ResponseVerifyVoteExtension_VerifyStatusSDKType = ResponseVerifyVoteExtension_VerifyStatus; +function responseVerifyVoteExtension_VerifyStatusFromJSON(object) { + switch (object) { + case 0: + case "UNKNOWN": + return ResponseVerifyVoteExtension_VerifyStatus.UNKNOWN; + case 1: + case "ACCEPT": + return ResponseVerifyVoteExtension_VerifyStatus.ACCEPT; + case 2: + case "REJECT": + return ResponseVerifyVoteExtension_VerifyStatus.REJECT; + case -1: + case "UNRECOGNIZED": + default: + return ResponseVerifyVoteExtension_VerifyStatus.UNRECOGNIZED; + } +} +exports.responseVerifyVoteExtension_VerifyStatusFromJSON = responseVerifyVoteExtension_VerifyStatusFromJSON; +function responseVerifyVoteExtension_VerifyStatusToJSON(object) { + switch (object) { + case ResponseVerifyVoteExtension_VerifyStatus.UNKNOWN: + return "UNKNOWN"; + case ResponseVerifyVoteExtension_VerifyStatus.ACCEPT: + return "ACCEPT"; + case ResponseVerifyVoteExtension_VerifyStatus.REJECT: + return "REJECT"; + case ResponseVerifyVoteExtension_VerifyStatus.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} +exports.responseVerifyVoteExtension_VerifyStatusToJSON = responseVerifyVoteExtension_VerifyStatusToJSON; var MisbehaviorType; (function (MisbehaviorType) { MisbehaviorType[MisbehaviorType["UNKNOWN"] = 0] = "UNKNOWN"; @@ -192488,17 +192781,17 @@ function createBaseRequest() { info: undefined, initChain: undefined, query: undefined, - beginBlock: undefined, checkTx: undefined, - deliverTx: undefined, - endBlock: undefined, commit: undefined, listSnapshots: undefined, offerSnapshot: undefined, loadSnapshotChunk: undefined, applySnapshotChunk: undefined, prepareProposal: undefined, - processProposal: undefined + processProposal: undefined, + extendVote: undefined, + verifyVoteExtension: undefined, + finalizeBlock: undefined }; } exports.Request = { @@ -192518,18 +192811,9 @@ exports.Request = { if (message.query !== undefined) { exports.RequestQuery.encode(message.query, writer.uint32(50).fork()).ldelim(); } - if (message.beginBlock !== undefined) { - exports.RequestBeginBlock.encode(message.beginBlock, writer.uint32(58).fork()).ldelim(); - } if (message.checkTx !== undefined) { exports.RequestCheckTx.encode(message.checkTx, writer.uint32(66).fork()).ldelim(); } - if (message.deliverTx !== undefined) { - exports.RequestDeliverTx.encode(message.deliverTx, writer.uint32(74).fork()).ldelim(); - } - if (message.endBlock !== undefined) { - exports.RequestEndBlock.encode(message.endBlock, writer.uint32(82).fork()).ldelim(); - } if (message.commit !== undefined) { exports.RequestCommit.encode(message.commit, writer.uint32(90).fork()).ldelim(); } @@ -192551,6 +192835,15 @@ exports.Request = { if (message.processProposal !== undefined) { exports.RequestProcessProposal.encode(message.processProposal, writer.uint32(138).fork()).ldelim(); } + if (message.extendVote !== undefined) { + exports.RequestExtendVote.encode(message.extendVote, writer.uint32(146).fork()).ldelim(); + } + if (message.verifyVoteExtension !== undefined) { + exports.RequestVerifyVoteExtension.encode(message.verifyVoteExtension, writer.uint32(154).fork()).ldelim(); + } + if (message.finalizeBlock !== undefined) { + exports.RequestFinalizeBlock.encode(message.finalizeBlock, writer.uint32(162).fork()).ldelim(); + } return writer; }, decode(input, length) { @@ -192575,18 +192868,9 @@ exports.Request = { case 6: message.query = exports.RequestQuery.decode(reader, reader.uint32()); break; - case 7: - message.beginBlock = exports.RequestBeginBlock.decode(reader, reader.uint32()); - break; case 8: message.checkTx = exports.RequestCheckTx.decode(reader, reader.uint32()); break; - case 9: - message.deliverTx = exports.RequestDeliverTx.decode(reader, reader.uint32()); - break; - case 10: - message.endBlock = exports.RequestEndBlock.decode(reader, reader.uint32()); - break; case 11: message.commit = exports.RequestCommit.decode(reader, reader.uint32()); break; @@ -192608,6 +192892,15 @@ exports.Request = { case 17: message.processProposal = exports.RequestProcessProposal.decode(reader, reader.uint32()); break; + case 18: + message.extendVote = exports.RequestExtendVote.decode(reader, reader.uint32()); + break; + case 19: + message.verifyVoteExtension = exports.RequestVerifyVoteExtension.decode(reader, reader.uint32()); + break; + case 20: + message.finalizeBlock = exports.RequestFinalizeBlock.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -192622,10 +192915,7 @@ exports.Request = { message.info = object.info !== undefined && object.info !== null ? exports.RequestInfo.fromPartial(object.info) : undefined; message.initChain = object.initChain !== undefined && object.initChain !== null ? exports.RequestInitChain.fromPartial(object.initChain) : undefined; message.query = object.query !== undefined && object.query !== null ? exports.RequestQuery.fromPartial(object.query) : undefined; - message.beginBlock = object.beginBlock !== undefined && object.beginBlock !== null ? exports.RequestBeginBlock.fromPartial(object.beginBlock) : undefined; message.checkTx = object.checkTx !== undefined && object.checkTx !== null ? exports.RequestCheckTx.fromPartial(object.checkTx) : undefined; - message.deliverTx = object.deliverTx !== undefined && object.deliverTx !== null ? exports.RequestDeliverTx.fromPartial(object.deliverTx) : undefined; - message.endBlock = object.endBlock !== undefined && object.endBlock !== null ? exports.RequestEndBlock.fromPartial(object.endBlock) : undefined; message.commit = object.commit !== undefined && object.commit !== null ? exports.RequestCommit.fromPartial(object.commit) : undefined; message.listSnapshots = object.listSnapshots !== undefined && object.listSnapshots !== null ? exports.RequestListSnapshots.fromPartial(object.listSnapshots) : undefined; message.offerSnapshot = object.offerSnapshot !== undefined && object.offerSnapshot !== null ? exports.RequestOfferSnapshot.fromPartial(object.offerSnapshot) : undefined; @@ -192633,6 +192923,9 @@ exports.Request = { message.applySnapshotChunk = object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null ? exports.RequestApplySnapshotChunk.fromPartial(object.applySnapshotChunk) : undefined; message.prepareProposal = object.prepareProposal !== undefined && object.prepareProposal !== null ? exports.RequestPrepareProposal.fromPartial(object.prepareProposal) : undefined; message.processProposal = object.processProposal !== undefined && object.processProposal !== null ? exports.RequestProcessProposal.fromPartial(object.processProposal) : undefined; + message.extendVote = object.extendVote !== undefined && object.extendVote !== null ? exports.RequestExtendVote.fromPartial(object.extendVote) : undefined; + message.verifyVoteExtension = object.verifyVoteExtension !== undefined && object.verifyVoteExtension !== null ? exports.RequestVerifyVoteExtension.fromPartial(object.verifyVoteExtension) : undefined; + message.finalizeBlock = object.finalizeBlock !== undefined && object.finalizeBlock !== null ? exports.RequestFinalizeBlock.fromPartial(object.finalizeBlock) : undefined; return message; } }; @@ -192894,66 +193187,6 @@ exports.RequestQuery = { return message; } }; -function createBaseRequestBeginBlock() { - return { - hash: new Uint8Array(), - header: undefined, - lastCommitInfo: undefined, - byzantineValidators: [] - }; -} -exports.RequestBeginBlock = { - encode(message, writer = _m0.Writer.create()) { - if (message.hash.length !== 0) { - writer.uint32(10).bytes(message.hash); - } - if (message.header !== undefined) { - types_1.Header.encode(message.header, writer.uint32(18).fork()).ldelim(); - } - if (message.lastCommitInfo !== undefined) { - exports.CommitInfo.encode(message.lastCommitInfo, writer.uint32(26).fork()).ldelim(); - } - for (const v of message.byzantineValidators) { - exports.Misbehavior.encode(v, writer.uint32(34).fork()).ldelim(); - } - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRequestBeginBlock(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.hash = reader.bytes(); - break; - case 2: - message.header = types_1.Header.decode(reader, reader.uint32()); - break; - case 3: - message.lastCommitInfo = exports.CommitInfo.decode(reader, reader.uint32()); - break; - case 4: - message.byzantineValidators.push(exports.Misbehavior.decode(reader, reader.uint32())); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromPartial(object) { - var _a, _b; - const message = createBaseRequestBeginBlock(); - message.hash = (_a = object.hash) !== null && _a !== void 0 ? _a : new Uint8Array(); - message.header = object.header !== undefined && object.header !== null ? types_1.Header.fromPartial(object.header) : undefined; - message.lastCommitInfo = object.lastCommitInfo !== undefined && object.lastCommitInfo !== null ? exports.CommitInfo.fromPartial(object.lastCommitInfo) : undefined; - message.byzantineValidators = ((_b = object.byzantineValidators) === null || _b === void 0 ? void 0 : _b.map(e => exports.Misbehavior.fromPartial(e))) || []; - return message; - } -}; function createBaseRequestCheckTx() { return { tx: new Uint8Array(), @@ -192998,77 +193231,6 @@ exports.RequestCheckTx = { return message; } }; -function createBaseRequestDeliverTx() { - return { - tx: new Uint8Array() - }; -} -exports.RequestDeliverTx = { - encode(message, writer = _m0.Writer.create()) { - if (message.tx.length !== 0) { - writer.uint32(10).bytes(message.tx); - } - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRequestDeliverTx(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.tx = reader.bytes(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromPartial(object) { - var _a; - const message = createBaseRequestDeliverTx(); - message.tx = (_a = object.tx) !== null && _a !== void 0 ? _a : new Uint8Array(); - return message; - } -}; -function createBaseRequestEndBlock() { - return { - height: helpers_1.Long.ZERO - }; -} -exports.RequestEndBlock = { - encode(message, writer = _m0.Writer.create()) { - if (!message.height.isZero()) { - writer.uint32(8).int64(message.height); - } - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseRequestEndBlock(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.height = reader.int64(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromPartial(object) { - const message = createBaseRequestEndBlock(); - message.height = object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; - return message; - } -}; function createBaseRequestCommit() { return {}; } @@ -193453,6 +193615,250 @@ exports.RequestProcessProposal = { return message; } }; +function createBaseRequestExtendVote() { + return { + hash: new Uint8Array(), + height: helpers_1.Long.ZERO, + time: undefined, + txs: [], + proposedLastCommit: undefined, + misbehavior: [], + nextValidatorsHash: new Uint8Array(), + proposerAddress: new Uint8Array() + }; +} +exports.RequestExtendVote = { + encode(message, writer = _m0.Writer.create()) { + if (message.hash.length !== 0) { + writer.uint32(10).bytes(message.hash); + } + if (!message.height.isZero()) { + writer.uint32(16).int64(message.height); + } + if (message.time !== undefined) { + timestamp_1.Timestamp.encode((0, helpers_1.toTimestamp)(message.time), writer.uint32(26).fork()).ldelim(); + } + for (const v of message.txs) { + writer.uint32(34).bytes(v); + } + if (message.proposedLastCommit !== undefined) { + exports.CommitInfo.encode(message.proposedLastCommit, writer.uint32(42).fork()).ldelim(); + } + for (const v of message.misbehavior) { + exports.Misbehavior.encode(v, writer.uint32(50).fork()).ldelim(); + } + if (message.nextValidatorsHash.length !== 0) { + writer.uint32(58).bytes(message.nextValidatorsHash); + } + if (message.proposerAddress.length !== 0) { + writer.uint32(66).bytes(message.proposerAddress); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseRequestExtendVote(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.hash = reader.bytes(); + break; + case 2: + message.height = reader.int64(); + break; + case 3: + message.time = (0, helpers_1.fromTimestamp)(timestamp_1.Timestamp.decode(reader, reader.uint32())); + break; + case 4: + message.txs.push(reader.bytes()); + break; + case 5: + message.proposedLastCommit = exports.CommitInfo.decode(reader, reader.uint32()); + break; + case 6: + message.misbehavior.push(exports.Misbehavior.decode(reader, reader.uint32())); + break; + case 7: + message.nextValidatorsHash = reader.bytes(); + break; + case 8: + message.proposerAddress = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b, _c, _d, _e, _f; + const message = createBaseRequestExtendVote(); + message.hash = (_a = object.hash) !== null && _a !== void 0 ? _a : new Uint8Array(); + message.height = object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; + message.time = (_b = object.time) !== null && _b !== void 0 ? _b : undefined; + message.txs = ((_c = object.txs) === null || _c === void 0 ? void 0 : _c.map(e => e)) || []; + message.proposedLastCommit = object.proposedLastCommit !== undefined && object.proposedLastCommit !== null ? exports.CommitInfo.fromPartial(object.proposedLastCommit) : undefined; + message.misbehavior = ((_d = object.misbehavior) === null || _d === void 0 ? void 0 : _d.map(e => exports.Misbehavior.fromPartial(e))) || []; + message.nextValidatorsHash = (_e = object.nextValidatorsHash) !== null && _e !== void 0 ? _e : new Uint8Array(); + message.proposerAddress = (_f = object.proposerAddress) !== null && _f !== void 0 ? _f : new Uint8Array(); + return message; + } +}; +function createBaseRequestVerifyVoteExtension() { + return { + hash: new Uint8Array(), + validatorAddress: new Uint8Array(), + height: helpers_1.Long.ZERO, + voteExtension: new Uint8Array() + }; +} +exports.RequestVerifyVoteExtension = { + encode(message, writer = _m0.Writer.create()) { + if (message.hash.length !== 0) { + writer.uint32(10).bytes(message.hash); + } + if (message.validatorAddress.length !== 0) { + writer.uint32(18).bytes(message.validatorAddress); + } + if (!message.height.isZero()) { + writer.uint32(24).int64(message.height); + } + if (message.voteExtension.length !== 0) { + writer.uint32(34).bytes(message.voteExtension); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseRequestVerifyVoteExtension(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.hash = reader.bytes(); + break; + case 2: + message.validatorAddress = reader.bytes(); + break; + case 3: + message.height = reader.int64(); + break; + case 4: + message.voteExtension = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b, _c; + const message = createBaseRequestVerifyVoteExtension(); + message.hash = (_a = object.hash) !== null && _a !== void 0 ? _a : new Uint8Array(); + message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : new Uint8Array(); + message.height = object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; + message.voteExtension = (_c = object.voteExtension) !== null && _c !== void 0 ? _c : new Uint8Array(); + return message; + } +}; +function createBaseRequestFinalizeBlock() { + return { + txs: [], + decidedLastCommit: undefined, + misbehavior: [], + hash: new Uint8Array(), + height: helpers_1.Long.ZERO, + time: undefined, + nextValidatorsHash: new Uint8Array(), + proposerAddress: new Uint8Array() + }; +} +exports.RequestFinalizeBlock = { + encode(message, writer = _m0.Writer.create()) { + for (const v of message.txs) { + writer.uint32(10).bytes(v); + } + if (message.decidedLastCommit !== undefined) { + exports.CommitInfo.encode(message.decidedLastCommit, writer.uint32(18).fork()).ldelim(); + } + for (const v of message.misbehavior) { + exports.Misbehavior.encode(v, writer.uint32(26).fork()).ldelim(); + } + if (message.hash.length !== 0) { + writer.uint32(34).bytes(message.hash); + } + if (!message.height.isZero()) { + writer.uint32(40).int64(message.height); + } + if (message.time !== undefined) { + timestamp_1.Timestamp.encode((0, helpers_1.toTimestamp)(message.time), writer.uint32(50).fork()).ldelim(); + } + if (message.nextValidatorsHash.length !== 0) { + writer.uint32(58).bytes(message.nextValidatorsHash); + } + if (message.proposerAddress.length !== 0) { + writer.uint32(66).bytes(message.proposerAddress); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseRequestFinalizeBlock(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.txs.push(reader.bytes()); + break; + case 2: + message.decidedLastCommit = exports.CommitInfo.decode(reader, reader.uint32()); + break; + case 3: + message.misbehavior.push(exports.Misbehavior.decode(reader, reader.uint32())); + break; + case 4: + message.hash = reader.bytes(); + break; + case 5: + message.height = reader.int64(); + break; + case 6: + message.time = (0, helpers_1.fromTimestamp)(timestamp_1.Timestamp.decode(reader, reader.uint32())); + break; + case 7: + message.nextValidatorsHash = reader.bytes(); + break; + case 8: + message.proposerAddress = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b, _c, _d, _e, _f; + const message = createBaseRequestFinalizeBlock(); + message.txs = ((_a = object.txs) === null || _a === void 0 ? void 0 : _a.map(e => e)) || []; + message.decidedLastCommit = object.decidedLastCommit !== undefined && object.decidedLastCommit !== null ? exports.CommitInfo.fromPartial(object.decidedLastCommit) : undefined; + message.misbehavior = ((_b = object.misbehavior) === null || _b === void 0 ? void 0 : _b.map(e => exports.Misbehavior.fromPartial(e))) || []; + message.hash = (_c = object.hash) !== null && _c !== void 0 ? _c : new Uint8Array(); + message.height = object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; + message.time = (_d = object.time) !== null && _d !== void 0 ? _d : undefined; + message.nextValidatorsHash = (_e = object.nextValidatorsHash) !== null && _e !== void 0 ? _e : new Uint8Array(); + message.proposerAddress = (_f = object.proposerAddress) !== null && _f !== void 0 ? _f : new Uint8Array(); + return message; + } +}; function createBaseResponse() { return { exception: undefined, @@ -193461,17 +193867,17 @@ function createBaseResponse() { info: undefined, initChain: undefined, query: undefined, - beginBlock: undefined, checkTx: undefined, - deliverTx: undefined, - endBlock: undefined, commit: undefined, listSnapshots: undefined, offerSnapshot: undefined, loadSnapshotChunk: undefined, applySnapshotChunk: undefined, prepareProposal: undefined, - processProposal: undefined + processProposal: undefined, + extendVote: undefined, + verifyVoteExtension: undefined, + finalizeBlock: undefined }; } exports.Response = { @@ -193494,18 +193900,9 @@ exports.Response = { if (message.query !== undefined) { exports.ResponseQuery.encode(message.query, writer.uint32(58).fork()).ldelim(); } - if (message.beginBlock !== undefined) { - exports.ResponseBeginBlock.encode(message.beginBlock, writer.uint32(66).fork()).ldelim(); - } if (message.checkTx !== undefined) { exports.ResponseCheckTx.encode(message.checkTx, writer.uint32(74).fork()).ldelim(); } - if (message.deliverTx !== undefined) { - exports.ResponseDeliverTx.encode(message.deliverTx, writer.uint32(82).fork()).ldelim(); - } - if (message.endBlock !== undefined) { - exports.ResponseEndBlock.encode(message.endBlock, writer.uint32(90).fork()).ldelim(); - } if (message.commit !== undefined) { exports.ResponseCommit.encode(message.commit, writer.uint32(98).fork()).ldelim(); } @@ -193527,6 +193924,15 @@ exports.Response = { if (message.processProposal !== undefined) { exports.ResponseProcessProposal.encode(message.processProposal, writer.uint32(146).fork()).ldelim(); } + if (message.extendVote !== undefined) { + exports.ResponseExtendVote.encode(message.extendVote, writer.uint32(154).fork()).ldelim(); + } + if (message.verifyVoteExtension !== undefined) { + exports.ResponseVerifyVoteExtension.encode(message.verifyVoteExtension, writer.uint32(162).fork()).ldelim(); + } + if (message.finalizeBlock !== undefined) { + exports.ResponseFinalizeBlock.encode(message.finalizeBlock, writer.uint32(170).fork()).ldelim(); + } return writer; }, decode(input, length) { @@ -193554,18 +193960,9 @@ exports.Response = { case 7: message.query = exports.ResponseQuery.decode(reader, reader.uint32()); break; - case 8: - message.beginBlock = exports.ResponseBeginBlock.decode(reader, reader.uint32()); - break; case 9: message.checkTx = exports.ResponseCheckTx.decode(reader, reader.uint32()); break; - case 10: - message.deliverTx = exports.ResponseDeliverTx.decode(reader, reader.uint32()); - break; - case 11: - message.endBlock = exports.ResponseEndBlock.decode(reader, reader.uint32()); - break; case 12: message.commit = exports.ResponseCommit.decode(reader, reader.uint32()); break; @@ -193587,6 +193984,15 @@ exports.Response = { case 18: message.processProposal = exports.ResponseProcessProposal.decode(reader, reader.uint32()); break; + case 19: + message.extendVote = exports.ResponseExtendVote.decode(reader, reader.uint32()); + break; + case 20: + message.verifyVoteExtension = exports.ResponseVerifyVoteExtension.decode(reader, reader.uint32()); + break; + case 21: + message.finalizeBlock = exports.ResponseFinalizeBlock.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -193602,10 +194008,7 @@ exports.Response = { message.info = object.info !== undefined && object.info !== null ? exports.ResponseInfo.fromPartial(object.info) : undefined; message.initChain = object.initChain !== undefined && object.initChain !== null ? exports.ResponseInitChain.fromPartial(object.initChain) : undefined; message.query = object.query !== undefined && object.query !== null ? exports.ResponseQuery.fromPartial(object.query) : undefined; - message.beginBlock = object.beginBlock !== undefined && object.beginBlock !== null ? exports.ResponseBeginBlock.fromPartial(object.beginBlock) : undefined; message.checkTx = object.checkTx !== undefined && object.checkTx !== null ? exports.ResponseCheckTx.fromPartial(object.checkTx) : undefined; - message.deliverTx = object.deliverTx !== undefined && object.deliverTx !== null ? exports.ResponseDeliverTx.fromPartial(object.deliverTx) : undefined; - message.endBlock = object.endBlock !== undefined && object.endBlock !== null ? exports.ResponseEndBlock.fromPartial(object.endBlock) : undefined; message.commit = object.commit !== undefined && object.commit !== null ? exports.ResponseCommit.fromPartial(object.commit) : undefined; message.listSnapshots = object.listSnapshots !== undefined && object.listSnapshots !== null ? exports.ResponseListSnapshots.fromPartial(object.listSnapshots) : undefined; message.offerSnapshot = object.offerSnapshot !== undefined && object.offerSnapshot !== null ? exports.ResponseOfferSnapshot.fromPartial(object.offerSnapshot) : undefined; @@ -193613,6 +194016,9 @@ exports.Response = { message.applySnapshotChunk = object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null ? exports.ResponseApplySnapshotChunk.fromPartial(object.applySnapshotChunk) : undefined; message.prepareProposal = object.prepareProposal !== undefined && object.prepareProposal !== null ? exports.ResponsePrepareProposal.fromPartial(object.prepareProposal) : undefined; message.processProposal = object.processProposal !== undefined && object.processProposal !== null ? exports.ResponseProcessProposal.fromPartial(object.processProposal) : undefined; + message.extendVote = object.extendVote !== undefined && object.extendVote !== null ? exports.ResponseExtendVote.fromPartial(object.extendVote) : undefined; + message.verifyVoteExtension = object.verifyVoteExtension !== undefined && object.verifyVoteExtension !== null ? exports.ResponseVerifyVoteExtension.fromPartial(object.verifyVoteExtension) : undefined; + message.finalizeBlock = object.finalizeBlock !== undefined && object.finalizeBlock !== null ? exports.ResponseFinalizeBlock.fromPartial(object.finalizeBlock) : undefined; return message; } }; @@ -193934,42 +194340,6 @@ exports.ResponseQuery = { return message; } }; -function createBaseResponseBeginBlock() { - return { - events: [] - }; -} -exports.ResponseBeginBlock = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.events) { - exports.Event.encode(v, writer.uint32(10).fork()).ldelim(); - } - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResponseBeginBlock(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.events.push(exports.Event.decode(reader, reader.uint32())); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromPartial(object) { - var _a; - const message = createBaseResponseBeginBlock(); - message.events = ((_a = object.events) === null || _a === void 0 ? void 0 : _a.map(e => exports.Event.fromPartial(e))) || []; - return message; - } -}; function createBaseResponseCheckTx() { return { code: 0, @@ -193979,10 +194349,7 @@ function createBaseResponseCheckTx() { gasWanted: helpers_1.Long.ZERO, gasUsed: helpers_1.Long.ZERO, events: [], - codespace: "", - sender: "", - priority: helpers_1.Long.ZERO, - mempoolError: "" + codespace: "" }; } exports.ResponseCheckTx = { @@ -194011,125 +194378,12 @@ exports.ResponseCheckTx = { if (message.codespace !== "") { writer.uint32(66).string(message.codespace); } - if (message.sender !== "") { - writer.uint32(74).string(message.sender); - } - if (!message.priority.isZero()) { - writer.uint32(80).int64(message.priority); - } - if (message.mempoolError !== "") { - writer.uint32(90).string(message.mempoolError); - } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseResponseCheckTx(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.code = reader.uint32(); - break; - case 2: - message.data = reader.bytes(); - break; - case 3: - message.log = reader.string(); - break; - case 4: - message.info = reader.string(); - break; - case 5: - message.gasWanted = reader.int64(); - break; - case 6: - message.gasUsed = reader.int64(); - break; - case 7: - message.events.push(exports.Event.decode(reader, reader.uint32())); - break; - case 8: - message.codespace = reader.string(); - break; - case 9: - message.sender = reader.string(); - break; - case 10: - message.priority = reader.int64(); - break; - case 11: - message.mempoolError = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromPartial(object) { - var _a, _b, _c, _d, _e, _f, _g, _h; - const message = createBaseResponseCheckTx(); - message.code = (_a = object.code) !== null && _a !== void 0 ? _a : 0; - message.data = (_b = object.data) !== null && _b !== void 0 ? _b : new Uint8Array(); - message.log = (_c = object.log) !== null && _c !== void 0 ? _c : ""; - message.info = (_d = object.info) !== null && _d !== void 0 ? _d : ""; - message.gasWanted = object.gasWanted !== undefined && object.gasWanted !== null ? helpers_1.Long.fromValue(object.gasWanted) : helpers_1.Long.ZERO; - message.gasUsed = object.gasUsed !== undefined && object.gasUsed !== null ? helpers_1.Long.fromValue(object.gasUsed) : helpers_1.Long.ZERO; - message.events = ((_e = object.events) === null || _e === void 0 ? void 0 : _e.map(e => exports.Event.fromPartial(e))) || []; - message.codespace = (_f = object.codespace) !== null && _f !== void 0 ? _f : ""; - message.sender = (_g = object.sender) !== null && _g !== void 0 ? _g : ""; - message.priority = object.priority !== undefined && object.priority !== null ? helpers_1.Long.fromValue(object.priority) : helpers_1.Long.ZERO; - message.mempoolError = (_h = object.mempoolError) !== null && _h !== void 0 ? _h : ""; - return message; - } -}; -function createBaseResponseDeliverTx() { - return { - code: 0, - data: new Uint8Array(), - log: "", - info: "", - gasWanted: helpers_1.Long.ZERO, - gasUsed: helpers_1.Long.ZERO, - events: [], - codespace: "" - }; -} -exports.ResponseDeliverTx = { - encode(message, writer = _m0.Writer.create()) { - if (message.code !== 0) { - writer.uint32(8).uint32(message.code); - } - if (message.data.length !== 0) { - writer.uint32(18).bytes(message.data); - } - if (message.log !== "") { - writer.uint32(26).string(message.log); - } - if (message.info !== "") { - writer.uint32(34).string(message.info); - } - if (!message.gasWanted.isZero()) { - writer.uint32(40).int64(message.gasWanted); - } - if (!message.gasUsed.isZero()) { - writer.uint32(48).int64(message.gasUsed); - } - for (const v of message.events) { - exports.Event.encode(v, writer.uint32(58).fork()).ldelim(); - } - if (message.codespace !== "") { - writer.uint32(66).string(message.codespace); - } - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResponseDeliverTx(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { @@ -194166,7 +194420,7 @@ exports.ResponseDeliverTx = { }, fromPartial(object) { var _a, _b, _c, _d, _e, _f; - const message = createBaseResponseDeliverTx(); + const message = createBaseResponseCheckTx(); message.code = (_a = object.code) !== null && _a !== void 0 ? _a : 0; message.data = (_b = object.data) !== null && _b !== void 0 ? _b : new Uint8Array(); message.log = (_c = object.log) !== null && _c !== void 0 ? _c : ""; @@ -194178,69 +194432,13 @@ exports.ResponseDeliverTx = { return message; } }; -function createBaseResponseEndBlock() { - return { - validatorUpdates: [], - consensusParamUpdates: undefined, - events: [] - }; -} -exports.ResponseEndBlock = { - encode(message, writer = _m0.Writer.create()) { - for (const v of message.validatorUpdates) { - exports.ValidatorUpdate.encode(v, writer.uint32(10).fork()).ldelim(); - } - if (message.consensusParamUpdates !== undefined) { - params_1.ConsensusParams.encode(message.consensusParamUpdates, writer.uint32(18).fork()).ldelim(); - } - for (const v of message.events) { - exports.Event.encode(v, writer.uint32(26).fork()).ldelim(); - } - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseResponseEndBlock(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.validatorUpdates.push(exports.ValidatorUpdate.decode(reader, reader.uint32())); - break; - case 2: - message.consensusParamUpdates = params_1.ConsensusParams.decode(reader, reader.uint32()); - break; - case 3: - message.events.push(exports.Event.decode(reader, reader.uint32())); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - fromPartial(object) { - var _a, _b; - const message = createBaseResponseEndBlock(); - message.validatorUpdates = ((_a = object.validatorUpdates) === null || _a === void 0 ? void 0 : _a.map(e => exports.ValidatorUpdate.fromPartial(e))) || []; - message.consensusParamUpdates = object.consensusParamUpdates !== undefined && object.consensusParamUpdates !== null ? params_1.ConsensusParams.fromPartial(object.consensusParamUpdates) : undefined; - message.events = ((_b = object.events) === null || _b === void 0 ? void 0 : _b.map(e => exports.Event.fromPartial(e))) || []; - return message; - } -}; function createBaseResponseCommit() { return { - data: new Uint8Array(), retainHeight: helpers_1.Long.ZERO }; } exports.ResponseCommit = { encode(message, writer = _m0.Writer.create()) { - if (message.data.length !== 0) { - writer.uint32(18).bytes(message.data); - } if (!message.retainHeight.isZero()) { writer.uint32(24).int64(message.retainHeight); } @@ -194253,9 +194451,6 @@ exports.ResponseCommit = { while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 2: - message.data = reader.bytes(); - break; case 3: message.retainHeight = reader.int64(); break; @@ -194267,9 +194462,7 @@ exports.ResponseCommit = { return message; }, fromPartial(object) { - var _a; const message = createBaseResponseCommit(); - message.data = (_a = object.data) !== null && _a !== void 0 ? _a : new Uint8Array(); message.retainHeight = object.retainHeight !== undefined && object.retainHeight !== null ? helpers_1.Long.fromValue(object.retainHeight) : helpers_1.Long.ZERO; return message; } @@ -194516,6 +194709,146 @@ exports.ResponseProcessProposal = { return message; } }; +function createBaseResponseExtendVote() { + return { + voteExtension: new Uint8Array() + }; +} +exports.ResponseExtendVote = { + encode(message, writer = _m0.Writer.create()) { + if (message.voteExtension.length !== 0) { + writer.uint32(10).bytes(message.voteExtension); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseResponseExtendVote(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.voteExtension = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseResponseExtendVote(); + message.voteExtension = (_a = object.voteExtension) !== null && _a !== void 0 ? _a : new Uint8Array(); + return message; + } +}; +function createBaseResponseVerifyVoteExtension() { + return { + status: 0 + }; +} +exports.ResponseVerifyVoteExtension = { + encode(message, writer = _m0.Writer.create()) { + if (message.status !== 0) { + writer.uint32(8).int32(message.status); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseResponseVerifyVoteExtension(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.status = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseResponseVerifyVoteExtension(); + message.status = (_a = object.status) !== null && _a !== void 0 ? _a : 0; + return message; + } +}; +function createBaseResponseFinalizeBlock() { + return { + events: [], + txResults: [], + validatorUpdates: [], + consensusParamUpdates: undefined, + appHash: new Uint8Array() + }; +} +exports.ResponseFinalizeBlock = { + encode(message, writer = _m0.Writer.create()) { + for (const v of message.events) { + exports.Event.encode(v, writer.uint32(10).fork()).ldelim(); + } + for (const v of message.txResults) { + exports.ExecTxResult.encode(v, writer.uint32(18).fork()).ldelim(); + } + for (const v of message.validatorUpdates) { + exports.ValidatorUpdate.encode(v, writer.uint32(26).fork()).ldelim(); + } + if (message.consensusParamUpdates !== undefined) { + params_1.ConsensusParams.encode(message.consensusParamUpdates, writer.uint32(34).fork()).ldelim(); + } + if (message.appHash.length !== 0) { + writer.uint32(42).bytes(message.appHash); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseResponseFinalizeBlock(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.events.push(exports.Event.decode(reader, reader.uint32())); + break; + case 2: + message.txResults.push(exports.ExecTxResult.decode(reader, reader.uint32())); + break; + case 3: + message.validatorUpdates.push(exports.ValidatorUpdate.decode(reader, reader.uint32())); + break; + case 4: + message.consensusParamUpdates = params_1.ConsensusParams.decode(reader, reader.uint32()); + break; + case 5: + message.appHash = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b, _c, _d; + const message = createBaseResponseFinalizeBlock(); + message.events = ((_a = object.events) === null || _a === void 0 ? void 0 : _a.map(e => exports.Event.fromPartial(e))) || []; + message.txResults = ((_b = object.txResults) === null || _b === void 0 ? void 0 : _b.map(e => exports.ExecTxResult.fromPartial(e))) || []; + message.validatorUpdates = ((_c = object.validatorUpdates) === null || _c === void 0 ? void 0 : _c.map(e => exports.ValidatorUpdate.fromPartial(e))) || []; + message.consensusParamUpdates = object.consensusParamUpdates !== undefined && object.consensusParamUpdates !== null ? params_1.ConsensusParams.fromPartial(object.consensusParamUpdates) : undefined; + message.appHash = (_d = object.appHash) !== null && _d !== void 0 ? _d : new Uint8Array(); + return message; + } +}; function createBaseCommitInfo() { return { round: 0, @@ -194700,6 +195033,98 @@ exports.EventAttribute = { return message; } }; +function createBaseExecTxResult() { + return { + code: 0, + data: new Uint8Array(), + log: "", + info: "", + gasWanted: helpers_1.Long.ZERO, + gasUsed: helpers_1.Long.ZERO, + events: [], + codespace: "" + }; +} +exports.ExecTxResult = { + encode(message, writer = _m0.Writer.create()) { + if (message.code !== 0) { + writer.uint32(8).uint32(message.code); + } + if (message.data.length !== 0) { + writer.uint32(18).bytes(message.data); + } + if (message.log !== "") { + writer.uint32(26).string(message.log); + } + if (message.info !== "") { + writer.uint32(34).string(message.info); + } + if (!message.gasWanted.isZero()) { + writer.uint32(40).int64(message.gasWanted); + } + if (!message.gasUsed.isZero()) { + writer.uint32(48).int64(message.gasUsed); + } + for (const v of message.events) { + exports.Event.encode(v, writer.uint32(58).fork()).ldelim(); + } + if (message.codespace !== "") { + writer.uint32(66).string(message.codespace); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseExecTxResult(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.code = reader.uint32(); + break; + case 2: + message.data = reader.bytes(); + break; + case 3: + message.log = reader.string(); + break; + case 4: + message.info = reader.string(); + break; + case 5: + message.gasWanted = reader.int64(); + break; + case 6: + message.gasUsed = reader.int64(); + break; + case 7: + message.events.push(exports.Event.decode(reader, reader.uint32())); + break; + case 8: + message.codespace = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b, _c, _d, _e, _f; + const message = createBaseExecTxResult(); + message.code = (_a = object.code) !== null && _a !== void 0 ? _a : 0; + message.data = (_b = object.data) !== null && _b !== void 0 ? _b : new Uint8Array(); + message.log = (_c = object.log) !== null && _c !== void 0 ? _c : ""; + message.info = (_d = object.info) !== null && _d !== void 0 ? _d : ""; + message.gasWanted = object.gasWanted !== undefined && object.gasWanted !== null ? helpers_1.Long.fromValue(object.gasWanted) : helpers_1.Long.ZERO; + message.gasUsed = object.gasUsed !== undefined && object.gasUsed !== null ? helpers_1.Long.fromValue(object.gasUsed) : helpers_1.Long.ZERO; + message.events = ((_e = object.events) === null || _e === void 0 ? void 0 : _e.map(e => exports.Event.fromPartial(e))) || []; + message.codespace = (_f = object.codespace) !== null && _f !== void 0 ? _f : ""; + return message; + } +}; function createBaseTxResult() { return { height: helpers_1.Long.ZERO, @@ -194720,7 +195145,7 @@ exports.TxResult = { writer.uint32(26).bytes(message.tx); } if (message.result !== undefined) { - exports.ResponseDeliverTx.encode(message.result, writer.uint32(34).fork()).ldelim(); + exports.ExecTxResult.encode(message.result, writer.uint32(34).fork()).ldelim(); } return writer; }, @@ -194741,7 +195166,7 @@ exports.TxResult = { message.tx = reader.bytes(); break; case 4: - message.result = exports.ResponseDeliverTx.decode(reader, reader.uint32()); + message.result = exports.ExecTxResult.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -194756,7 +195181,7 @@ exports.TxResult = { message.height = object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; message.index = (_a = object.index) !== null && _a !== void 0 ? _a : 0; message.tx = (_b = object.tx) !== null && _b !== void 0 ? _b : new Uint8Array(); - message.result = object.result !== undefined && object.result !== null ? exports.ResponseDeliverTx.fromPartial(object.result) : undefined; + message.result = object.result !== undefined && object.result !== null ? exports.ExecTxResult.fromPartial(object.result) : undefined; return message; } }; @@ -194850,7 +195275,7 @@ exports.ValidatorUpdate = { function createBaseVoteInfo() { return { validator: undefined, - signedLastBlock: false + blockIdFlag: 0 }; } exports.VoteInfo = { @@ -194858,8 +195283,8 @@ exports.VoteInfo = { if (message.validator !== undefined) { exports.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim(); } - if (message.signedLastBlock === true) { - writer.uint32(16).bool(message.signedLastBlock); + if (message.blockIdFlag !== 0) { + writer.uint32(24).int32(message.blockIdFlag); } return writer; }, @@ -194873,8 +195298,8 @@ exports.VoteInfo = { case 1: message.validator = exports.Validator.decode(reader, reader.uint32()); break; - case 2: - message.signedLastBlock = reader.bool(); + case 3: + message.blockIdFlag = reader.int32(); break; default: reader.skipType(tag & 7); @@ -194887,15 +195312,16 @@ exports.VoteInfo = { var _a; const message = createBaseVoteInfo(); message.validator = object.validator !== undefined && object.validator !== null ? exports.Validator.fromPartial(object.validator) : undefined; - message.signedLastBlock = (_a = object.signedLastBlock) !== null && _a !== void 0 ? _a : false; + message.blockIdFlag = (_a = object.blockIdFlag) !== null && _a !== void 0 ? _a : 0; return message; } }; function createBaseExtendedVoteInfo() { return { validator: undefined, - signedLastBlock: false, - voteExtension: new Uint8Array() + voteExtension: new Uint8Array(), + extensionSignature: new Uint8Array(), + blockIdFlag: 0 }; } exports.ExtendedVoteInfo = { @@ -194903,12 +195329,15 @@ exports.ExtendedVoteInfo = { if (message.validator !== undefined) { exports.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim(); } - if (message.signedLastBlock === true) { - writer.uint32(16).bool(message.signedLastBlock); - } if (message.voteExtension.length !== 0) { writer.uint32(26).bytes(message.voteExtension); } + if (message.extensionSignature.length !== 0) { + writer.uint32(34).bytes(message.extensionSignature); + } + if (message.blockIdFlag !== 0) { + writer.uint32(40).int32(message.blockIdFlag); + } return writer; }, decode(input, length) { @@ -194921,12 +195350,15 @@ exports.ExtendedVoteInfo = { case 1: message.validator = exports.Validator.decode(reader, reader.uint32()); break; - case 2: - message.signedLastBlock = reader.bool(); - break; case 3: message.voteExtension = reader.bytes(); break; + case 4: + message.extensionSignature = reader.bytes(); + break; + case 5: + message.blockIdFlag = reader.int32(); + break; default: reader.skipType(tag & 7); break; @@ -194935,11 +195367,12 @@ exports.ExtendedVoteInfo = { return message; }, fromPartial(object) { - var _a, _b; + var _a, _b, _c; const message = createBaseExtendedVoteInfo(); message.validator = object.validator !== undefined && object.validator !== null ? exports.Validator.fromPartial(object.validator) : undefined; - message.signedLastBlock = (_a = object.signedLastBlock) !== null && _a !== void 0 ? _a : false; - message.voteExtension = (_b = object.voteExtension) !== null && _b !== void 0 ? _b : new Uint8Array(); + message.voteExtension = (_a = object.voteExtension) !== null && _a !== void 0 ? _a : new Uint8Array(); + message.extensionSignature = (_b = object.extensionSignature) !== null && _b !== void 0 ? _b : new Uint8Array(); + message.blockIdFlag = (_c = object.blockIdFlag) !== null && _c !== void 0 ? _c : 0; return message; } }; @@ -195079,7 +195512,7 @@ exports.Snapshot = { return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi90ZW5kZXJtaW50L2FiY2kvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0RBQTREO0FBQzVELDRDQUEwRTtBQUMxRSwwQ0FBdUQ7QUFDdkQsMkNBQTREO0FBQzVELHlDQUE2RDtBQUM3RCx3REFBMEM7QUFDMUMsMkNBQThFO0FBQzlFLElBQVksV0FJWDtBQUpELFdBQVksV0FBVztJQUNyQiwyQ0FBTyxDQUFBO0lBQ1AsbURBQVcsQ0FBQTtJQUNYLDhEQUFpQixDQUFBO0FBQ25CLENBQUMsRUFKVyxXQUFXLEdBQVgsbUJBQVcsS0FBWCxtQkFBVyxRQUl0QjtBQUNZLFFBQUEsa0JBQWtCLEdBQUcsV0FBVyxDQUFDO0FBQzlDLFNBQWdCLG1CQUFtQixDQUFDLE1BQVc7SUFDN0MsUUFBUSxNQUFNLEVBQUU7UUFDZCxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssS0FBSztZQUNSLE9BQU8sV0FBVyxDQUFDLEdBQUcsQ0FBQztRQUV6QixLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssU0FBUztZQUNaLE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBQztRQUU3QixLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ1IsS0FBSyxjQUFjLENBQUM7UUFDcEI7WUFDRSxPQUFPLFdBQVcsQ0FBQyxZQUFZLENBQUM7S0FDbkM7QUFDSCxDQUFDO0FBZkQsa0RBZUM7QUFDRCxTQUFnQixpQkFBaUIsQ0FBQyxNQUFtQjtJQUNuRCxRQUFRLE1BQU0sRUFBRTtRQUNkLEtBQUssV0FBVyxDQUFDLEdBQUc7WUFDbEIsT0FBTyxLQUFLLENBQUM7UUFFZixLQUFLLFdBQVcsQ0FBQyxPQUFPO1lBQ3RCLE9BQU8sU0FBUyxDQUFDO1FBRW5CLEtB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi90ZW5kZXJtaW50L2FiY2kvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0RBQTREO0FBQzVELDRDQUEwRTtBQUMxRSwyQ0FBNEQ7QUFDNUQseUNBQTZEO0FBRTdELHdEQUEwQztBQUMxQywyQ0FBOEU7QUFDOUUsSUFBWSxXQUlYO0FBSkQsV0FBWSxXQUFXO0lBQ3JCLDJDQUFPLENBQUE7SUFDUCxtREFBVyxDQUFBO0lBQ1gsOERBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUpXLFdBQVcsR0FBWCxtQkFBVyxLQUFYLG1CQUFXLFFBSXRCO0FBQ1ksUUFBQSxrQkFBa0IsR0FBRyxXQUFXLENBQUM7QUFDOUMsU0FBZ0IsbUJBQW1CLENBQUMsTUFBVztJQUM3QyxRQUFRLE1BQU0sRUFBRTtRQUNkLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxLQUFLO1lBQ1IsT0FBTyxXQUFXLENBQUMsR0FBRyxDQUFDO1FBRXpCLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxTQUFTO1lBQ1osT0FBTyxXQUFXLENBQUMsT0FBTyxDQUFDO1FBRTdCLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDUixLQUFLLGNBQWMsQ0FBQztRQUNwQjtZQUNFLE9BQU8sV0FBVyxDQUFDLFlBQVksQ0FBQztLQUNuQztBQUNILENBQUM7QUFmRCxrREFlQztBQUNELFNBQWdCLGlCQUFpQixDQUFDLE1BQW1CO0lBQ25ELFFBQVEsTUFBTSxFQUFFO1FBQ2QsS0FBSyxXQUFXLENBQUMsR0FBRztZQUNsQixPQUFPLEtBQUssQ0FBQztRQUVmLEtBQUssV0FBVyxDQUFDLE9BQU87WUFDdEIsT0FBTyxTQUFTLENBQUM7UUFFbkIsS0FBSyxXQUFXLENBQUMs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 /***/ }), @@ -195197,51 +195630,422 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ProofOps = exports.ProofOp = exports.DominoOp = exports.ValueOp = exports.Proof = void 0; -const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); +exports.ProofOps = exports.ProofOp = exports.DominoOp = exports.ValueOp = exports.Proof = void 0; +const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +function createBaseProof() { + return { + total: helpers_1.Long.ZERO, + index: helpers_1.Long.ZERO, + leafHash: new Uint8Array(), + aunts: [] + }; +} +exports.Proof = { + encode(message, writer = _m0.Writer.create()) { + if (!message.total.isZero()) { + writer.uint32(8).int64(message.total); + } + if (!message.index.isZero()) { + writer.uint32(16).int64(message.index); + } + if (message.leafHash.length !== 0) { + writer.uint32(26).bytes(message.leafHash); + } + for (const v of message.aunts) { + writer.uint32(34).bytes(v); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseProof(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.total = reader.int64(); + break; + case 2: + message.index = reader.int64(); + break; + case 3: + message.leafHash = reader.bytes(); + break; + case 4: + message.aunts.push(reader.bytes()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b; + const message = createBaseProof(); + message.total = object.total !== undefined && object.total !== null ? helpers_1.Long.fromValue(object.total) : helpers_1.Long.ZERO; + message.index = object.index !== undefined && object.index !== null ? helpers_1.Long.fromValue(object.index) : helpers_1.Long.ZERO; + message.leafHash = (_a = object.leafHash) !== null && _a !== void 0 ? _a : new Uint8Array(); + message.aunts = ((_b = object.aunts) === null || _b === void 0 ? void 0 : _b.map(e => e)) || []; + return message; + } +}; +function createBaseValueOp() { + return { + key: new Uint8Array(), + proof: undefined + }; +} +exports.ValueOp = { + encode(message, writer = _m0.Writer.create()) { + if (message.key.length !== 0) { + writer.uint32(10).bytes(message.key); + } + if (message.proof !== undefined) { + exports.Proof.encode(message.proof, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseValueOp(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.key = reader.bytes(); + break; + case 2: + message.proof = exports.Proof.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseValueOp(); + message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array(); + message.proof = object.proof !== undefined && object.proof !== null ? exports.Proof.fromPartial(object.proof) : undefined; + return message; + } +}; +function createBaseDominoOp() { + return { + key: "", + input: "", + output: "" + }; +} +exports.DominoOp = { + encode(message, writer = _m0.Writer.create()) { + if (message.key !== "") { + writer.uint32(10).string(message.key); + } + if (message.input !== "") { + writer.uint32(18).string(message.input); + } + if (message.output !== "") { + writer.uint32(26).string(message.output); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDominoOp(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.key = reader.string(); + break; + case 2: + message.input = reader.string(); + break; + case 3: + message.output = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b, _c; + const message = createBaseDominoOp(); + message.key = (_a = object.key) !== null && _a !== void 0 ? _a : ""; + message.input = (_b = object.input) !== null && _b !== void 0 ? _b : ""; + message.output = (_c = object.output) !== null && _c !== void 0 ? _c : ""; + return message; + } +}; +function createBaseProofOp() { + return { + type: "", + key: new Uint8Array(), + data: new Uint8Array() + }; +} +exports.ProofOp = { + encode(message, writer = _m0.Writer.create()) { + if (message.type !== "") { + writer.uint32(10).string(message.type); + } + if (message.key.length !== 0) { + writer.uint32(18).bytes(message.key); + } + if (message.data.length !== 0) { + writer.uint32(26).bytes(message.data); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseProofOp(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.type = reader.string(); + break; + case 2: + message.key = reader.bytes(); + break; + case 3: + message.data = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b, _c; + const message = createBaseProofOp(); + message.type = (_a = object.type) !== null && _a !== void 0 ? _a : ""; + message.key = (_b = object.key) !== null && _b !== void 0 ? _b : new Uint8Array(); + message.data = (_c = object.data) !== null && _c !== void 0 ? _c : new Uint8Array(); + return message; + } +}; +function createBaseProofOps() { + return { + ops: [] + }; +} +exports.ProofOps = { + encode(message, writer = _m0.Writer.create()) { + for (const v of message.ops) { + exports.ProofOp.encode(v, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseProofOps(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.ops.push(exports.ProofOp.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a; + const message = createBaseProofOps(); + message.ops = ((_a = object.ops) === null || _a === void 0 ? void 0 : _a.map(e => exports.ProofOp.fromPartial(e))) || []; + return message; + } +}; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvb2YuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi90ZW5kZXJtaW50L2NyeXB0by9wcm9vZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUFrRDtBQUNsRCx3REFBMEM7QUFtRTFDLFNBQVMsZUFBZTtJQUN0QixPQUFPO1FBQ0wsS0FBSyxFQUFFLGNBQUksQ0FBQyxJQUFJO1FBQ2hCLEtBQUssRUFBRSxjQUFJLENBQUMsSUFBSTtRQUNoQixRQUFRLEVBQUUsSUFBSSxVQUFVLEVBQUU7UUFDMUIsS0FBSyxFQUFFLEVBQUU7S0FDVixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsS0FBSyxHQUFHO0lBQ25CLE1BQU0sQ0FBQyxPQUFjLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDN0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3ZDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDakMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzNDO1FBRUQsS0FBSyxNQUFNLENBQUMsSUFBSSxP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 + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/block.ts": +/*!***********************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/block.ts ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Block = void 0; +const types_1 = __webpack_require__(/*! ./types */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/types.ts"); +const evidence_1 = __webpack_require__(/*! ./evidence */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/evidence.ts"); +const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +function createBaseBlock() { + return { + header: undefined, + data: undefined, + evidence: undefined, + lastCommit: undefined + }; +} +exports.Block = { + encode(message, writer = _m0.Writer.create()) { + if (message.header !== undefined) { + types_1.Header.encode(message.header, writer.uint32(10).fork()).ldelim(); + } + if (message.data !== undefined) { + types_1.Data.encode(message.data, writer.uint32(18).fork()).ldelim(); + } + if (message.evidence !== undefined) { + evidence_1.EvidenceList.encode(message.evidence, writer.uint32(26).fork()).ldelim(); + } + if (message.lastCommit !== undefined) { + types_1.Commit.encode(message.lastCommit, writer.uint32(34).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseBlock(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.header = types_1.Header.decode(reader, reader.uint32()); + break; + case 2: + message.data = types_1.Data.decode(reader, reader.uint32()); + break; + case 3: + message.evidence = evidence_1.EvidenceList.decode(reader, reader.uint32()); + break; + case 4: + message.lastCommit = types_1.Commit.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + const message = createBaseBlock(); + message.header = object.header !== undefined && object.header !== null ? types_1.Header.fromPartial(object.header) : undefined; + message.data = object.data !== undefined && object.data !== null ? types_1.Data.fromPartial(object.data) : undefined; + message.evidence = object.evidence !== undefined && object.evidence !== null ? evidence_1.EvidenceList.fromPartial(object.evidence) : undefined; + message.lastCommit = object.lastCommit !== undefined && object.lastCommit !== null ? types_1.Commit.fromPartial(object.lastCommit) : undefined; + return message; + } +}; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi90ZW5kZXJtaW50L3R5cGVzL2Jsb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUNBQTBGO0FBQzFGLHlDQUErRDtBQUMvRCx3REFBMEM7QUFlMUMsU0FBUyxlQUFlO0lBQ3RCLE9BQU87UUFDTCxNQUFNLEVBQUUsU0FBUztRQUNqQixJQUFJLEVBQUUsU0FBUztRQUNmLFFBQVEsRUFBRSxTQUFTO1FBQ25CLFVBQVUsRUFBRSxTQUFTO0tBQ3RCLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxLQUFLLEdBQUc7SUFDbkIsTUFBTSxDQUFDLE9BQWMsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUM3RCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ2hDLGNBQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDbEU7UUFFRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQzlCLFlBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDOUQ7UUFFRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQ2xDLHVCQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMs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 + +/***/ }), + +/***/ "./node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/evidence.ts": +/*!**************************************************************************************!*\ + !*** ./node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/evidence.ts ***! + \**************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.EvidenceList = exports.LightClientAttackEvidence = exports.DuplicateVoteEvidence = exports.Evidence = void 0; +const types_1 = __webpack_require__(/*! ./types */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/types.ts"); +const timestamp_1 = __webpack_require__(/*! ../../google/protobuf/timestamp */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/timestamp.ts"); +const validator_1 = __webpack_require__(/*! ./validator */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/validator.ts"); const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); -function createBaseProof() { +const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); +function createBaseEvidence() { return { - total: helpers_1.Long.ZERO, - index: helpers_1.Long.ZERO, - leafHash: new Uint8Array(), - aunts: [] + duplicateVoteEvidence: undefined, + lightClientAttackEvidence: undefined }; } -exports.Proof = { +exports.Evidence = { encode(message, writer = _m0.Writer.create()) { - if (!message.total.isZero()) { - writer.uint32(8).int64(message.total); - } - if (!message.index.isZero()) { - writer.uint32(16).int64(message.index); - } - if (message.leafHash.length !== 0) { - writer.uint32(26).bytes(message.leafHash); + if (message.duplicateVoteEvidence !== undefined) { + exports.DuplicateVoteEvidence.encode(message.duplicateVoteEvidence, writer.uint32(10).fork()).ldelim(); } - for (const v of message.aunts) { - writer.uint32(34).bytes(v); + if (message.lightClientAttackEvidence !== undefined) { + exports.LightClientAttackEvidence.encode(message.lightClientAttackEvidence, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseProof(); + const message = createBaseEvidence(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.total = reader.int64(); + message.duplicateVoteEvidence = exports.DuplicateVoteEvidence.decode(reader, reader.uint32()); break; case 2: - message.index = reader.int64(); - break; - case 3: - message.leafHash = reader.bytes(); - break; - case 4: - message.aunts.push(reader.bytes()); + message.lightClientAttackEvidence = exports.LightClientAttackEvidence.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -195251,94 +196055,61 @@ exports.Proof = { return message; }, fromPartial(object) { - var _a, _b; - const message = createBaseProof(); - message.total = object.total !== undefined && object.total !== null ? helpers_1.Long.fromValue(object.total) : helpers_1.Long.ZERO; - message.index = object.index !== undefined && object.index !== null ? helpers_1.Long.fromValue(object.index) : helpers_1.Long.ZERO; - message.leafHash = (_a = object.leafHash) !== null && _a !== void 0 ? _a : new Uint8Array(); - message.aunts = ((_b = object.aunts) === null || _b === void 0 ? void 0 : _b.map(e => e)) || []; + const message = createBaseEvidence(); + message.duplicateVoteEvidence = object.duplicateVoteEvidence !== undefined && object.duplicateVoteEvidence !== null ? exports.DuplicateVoteEvidence.fromPartial(object.duplicateVoteEvidence) : undefined; + message.lightClientAttackEvidence = object.lightClientAttackEvidence !== undefined && object.lightClientAttackEvidence !== null ? exports.LightClientAttackEvidence.fromPartial(object.lightClientAttackEvidence) : undefined; return message; } }; -function createBaseValueOp() { +function createBaseDuplicateVoteEvidence() { return { - key: new Uint8Array(), - proof: undefined + voteA: undefined, + voteB: undefined, + totalVotingPower: helpers_1.Long.ZERO, + validatorPower: helpers_1.Long.ZERO, + timestamp: undefined }; } -exports.ValueOp = { +exports.DuplicateVoteEvidence = { encode(message, writer = _m0.Writer.create()) { - if (message.key.length !== 0) { - writer.uint32(10).bytes(message.key); - } - if (message.proof !== undefined) { - exports.Proof.encode(message.proof, writer.uint32(18).fork()).ldelim(); + if (message.voteA !== undefined) { + types_1.Vote.encode(message.voteA, writer.uint32(10).fork()).ldelim(); } - return writer; - }, - decode(input, length) { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseValueOp(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.key = reader.bytes(); - break; - case 2: - message.proof = exports.Proof.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } + if (message.voteB !== undefined) { + types_1.Vote.encode(message.voteB, writer.uint32(18).fork()).ldelim(); } - return message; - }, - fromPartial(object) { - var _a; - const message = createBaseValueOp(); - message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array(); - message.proof = object.proof !== undefined && object.proof !== null ? exports.Proof.fromPartial(object.proof) : undefined; - return message; - } -}; -function createBaseDominoOp() { - return { - key: "", - input: "", - output: "" - }; -} -exports.DominoOp = { - encode(message, writer = _m0.Writer.create()) { - if (message.key !== "") { - writer.uint32(10).string(message.key); + if (!message.totalVotingPower.isZero()) { + writer.uint32(24).int64(message.totalVotingPower); } - if (message.input !== "") { - writer.uint32(18).string(message.input); + if (!message.validatorPower.isZero()) { + writer.uint32(32).int64(message.validatorPower); } - if (message.output !== "") { - writer.uint32(26).string(message.output); + if (message.timestamp !== undefined) { + timestamp_1.Timestamp.encode((0, helpers_1.toTimestamp)(message.timestamp), writer.uint32(42).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseDominoOp(); + const message = createBaseDuplicateVoteEvidence(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.key = reader.string(); + message.voteA = types_1.Vote.decode(reader, reader.uint32()); break; case 2: - message.input = reader.string(); + message.voteB = types_1.Vote.decode(reader, reader.uint32()); break; case 3: - message.output = reader.string(); + message.totalVotingPower = reader.int64(); + break; + case 4: + message.validatorPower = reader.int64(); + break; + case 5: + message.timestamp = (0, helpers_1.fromTimestamp)(timestamp_1.Timestamp.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -195348,49 +196119,65 @@ exports.DominoOp = { return message; }, fromPartial(object) { - var _a, _b, _c; - const message = createBaseDominoOp(); - message.key = (_a = object.key) !== null && _a !== void 0 ? _a : ""; - message.input = (_b = object.input) !== null && _b !== void 0 ? _b : ""; - message.output = (_c = object.output) !== null && _c !== void 0 ? _c : ""; + var _a; + const message = createBaseDuplicateVoteEvidence(); + message.voteA = object.voteA !== undefined && object.voteA !== null ? types_1.Vote.fromPartial(object.voteA) : undefined; + message.voteB = object.voteB !== undefined && object.voteB !== null ? types_1.Vote.fromPartial(object.voteB) : undefined; + message.totalVotingPower = object.totalVotingPower !== undefined && object.totalVotingPower !== null ? helpers_1.Long.fromValue(object.totalVotingPower) : helpers_1.Long.ZERO; + message.validatorPower = object.validatorPower !== undefined && object.validatorPower !== null ? helpers_1.Long.fromValue(object.validatorPower) : helpers_1.Long.ZERO; + message.timestamp = (_a = object.timestamp) !== null && _a !== void 0 ? _a : undefined; return message; } }; -function createBaseProofOp() { +function createBaseLightClientAttackEvidence() { return { - type: "", - key: new Uint8Array(), - data: new Uint8Array() + conflictingBlock: undefined, + commonHeight: helpers_1.Long.ZERO, + byzantineValidators: [], + totalVotingPower: helpers_1.Long.ZERO, + timestamp: undefined }; } -exports.ProofOp = { +exports.LightClientAttackEvidence = { encode(message, writer = _m0.Writer.create()) { - if (message.type !== "") { - writer.uint32(10).string(message.type); + if (message.conflictingBlock !== undefined) { + types_1.LightBlock.encode(message.conflictingBlock, writer.uint32(10).fork()).ldelim(); } - if (message.key.length !== 0) { - writer.uint32(18).bytes(message.key); + if (!message.commonHeight.isZero()) { + writer.uint32(16).int64(message.commonHeight); } - if (message.data.length !== 0) { - writer.uint32(26).bytes(message.data); + for (const v of message.byzantineValidators) { + validator_1.Validator.encode(v, writer.uint32(26).fork()).ldelim(); + } + if (!message.totalVotingPower.isZero()) { + writer.uint32(32).int64(message.totalVotingPower); + } + if (message.timestamp !== undefined) { + timestamp_1.Timestamp.encode((0, helpers_1.toTimestamp)(message.timestamp), writer.uint32(42).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseProofOp(); + const message = createBaseLightClientAttackEvidence(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.type = reader.string(); + message.conflictingBlock = types_1.LightBlock.decode(reader, reader.uint32()); break; case 2: - message.key = reader.bytes(); + message.commonHeight = reader.int64(); break; case 3: - message.data = reader.bytes(); + message.byzantineValidators.push(validator_1.Validator.decode(reader, reader.uint32())); + break; + case 4: + message.totalVotingPower = reader.int64(); + break; + case 5: + message.timestamp = (0, helpers_1.fromTimestamp)(timestamp_1.Timestamp.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -195400,35 +196187,37 @@ exports.ProofOp = { return message; }, fromPartial(object) { - var _a, _b, _c; - const message = createBaseProofOp(); - message.type = (_a = object.type) !== null && _a !== void 0 ? _a : ""; - message.key = (_b = object.key) !== null && _b !== void 0 ? _b : new Uint8Array(); - message.data = (_c = object.data) !== null && _c !== void 0 ? _c : new Uint8Array(); + var _a, _b; + const message = createBaseLightClientAttackEvidence(); + message.conflictingBlock = object.conflictingBlock !== undefined && object.conflictingBlock !== null ? types_1.LightBlock.fromPartial(object.conflictingBlock) : undefined; + message.commonHeight = object.commonHeight !== undefined && object.commonHeight !== null ? helpers_1.Long.fromValue(object.commonHeight) : helpers_1.Long.ZERO; + message.byzantineValidators = ((_a = object.byzantineValidators) === null || _a === void 0 ? void 0 : _a.map(e => validator_1.Validator.fromPartial(e))) || []; + message.totalVotingPower = object.totalVotingPower !== undefined && object.totalVotingPower !== null ? helpers_1.Long.fromValue(object.totalVotingPower) : helpers_1.Long.ZERO; + message.timestamp = (_b = object.timestamp) !== null && _b !== void 0 ? _b : undefined; return message; } }; -function createBaseProofOps() { +function createBaseEvidenceList() { return { - ops: [] + evidence: [] }; } -exports.ProofOps = { +exports.EvidenceList = { encode(message, writer = _m0.Writer.create()) { - for (const v of message.ops) { - exports.ProofOp.encode(v, writer.uint32(10).fork()).ldelim(); + for (const v of message.evidence) { + exports.Evidence.encode(v, writer.uint32(10).fork()).ldelim(); } return writer; }, decode(input, length) { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseProofOps(); + const message = createBaseEvidenceList(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.ops.push(exports.ProofOp.decode(reader, reader.uint32())); + message.evidence.push(exports.Evidence.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -195439,12 +196228,12 @@ exports.ProofOps = { }, fromPartial(object) { var _a; - const message = createBaseProofOps(); - message.ops = ((_a = object.ops) === null || _a === void 0 ? void 0 : _a.map(e => exports.ProofOp.fromPartial(e))) || []; + const message = createBaseEvidenceList(); + message.evidence = ((_a = object.evidence) === null || _a === void 0 ? void 0 : _a.map(e => exports.Evidence.fromPartial(e))) || []; return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvb2YuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi90ZW5kZXJtaW50L2NyeXB0by9wcm9vZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUFrRDtBQUNsRCx3REFBMEM7QUFtRTFDLFNBQVMsZUFBZTtJQUN0QixPQUFPO1FBQ0wsS0FBSyxFQUFFLGNBQUksQ0FBQyxJQUFJO1FBQ2hCLEtBQUssRUFBRSxjQUFJLENBQUMsSUFBSTtRQUNoQixRQUFRLEVBQUUsSUFBSSxVQUFVLEVBQUU7UUFDMUIsS0FBSyxFQUFFLEVBQUU7S0FDVixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsS0FBSyxHQUFHO0lBQ25CLE1BQU0sQ0FBQyxPQUFjLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDN0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3ZDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDakMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzNDO1FBRUQsS0FBSyxNQUFNLENBQUMsSUFBSSxP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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZpZGVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi90ZW5kZXJtaW50L3R5cGVzL2V2aWRlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUNBQTJFO0FBQzNFLCtEQUE0RDtBQUM1RCwyQ0FBMEQ7QUFDMUQsd0RBQTBDO0FBQzFDLDJDQUE4RTtBQW9EOUUsU0FBUyxrQkFBa0I7SUFDekIsT0FBTztRQUNMLHFCQUFxQixFQUFFLFNBQVM7UUFDaEMseUJBQXlCLEVBQUUsU0FBUztLQUNyQyxDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsUUFBUSxHQUFHO0lBQ3RCLE1BQU0sQ0FBQyxPQUFpQixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ2hFLElBQUksT0FBTyxDQUFDLHFCQUFxQixLQUFLLFNBQVMsRUFBRTtZQUMvQyw2QkFBcUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNoRztRQUVELElBQUksT0FBTyxDQUFDLHlCQUF5QixLQUFLLFNBQVMsRUFBRTtZQUNuRCxpQ0FBeUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLHlCQUF5QixFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN4RztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFB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 /***/ }), @@ -195480,7 +196269,7 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.HashedParams = exports.VersionParams = exports.ValidatorParams = exports.EvidenceParams = exports.BlockParams = exports.ConsensusParams = void 0; +exports.ABCIParams = exports.HashedParams = exports.VersionParams = exports.ValidatorParams = exports.EvidenceParams = exports.BlockParams = exports.ConsensusParams = void 0; const duration_1 = __webpack_require__(/*! ../../google/protobuf/duration */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/duration.ts"); const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); @@ -195489,7 +196278,8 @@ function createBaseConsensusParams() { block: undefined, evidence: undefined, validator: undefined, - version: undefined + version: undefined, + abci: undefined }; } exports.ConsensusParams = { @@ -195506,6 +196296,9 @@ exports.ConsensusParams = { if (message.version !== undefined) { exports.VersionParams.encode(message.version, writer.uint32(34).fork()).ldelim(); } + if (message.abci !== undefined) { + exports.ABCIParams.encode(message.abci, writer.uint32(42).fork()).ldelim(); + } return writer; }, decode(input, length) { @@ -195527,6 +196320,9 @@ exports.ConsensusParams = { case 4: message.version = exports.VersionParams.decode(reader, reader.uint32()); break; + case 5: + message.abci = exports.ABCIParams.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -195540,6 +196336,7 @@ exports.ConsensusParams = { message.evidence = object.evidence !== undefined && object.evidence !== null ? exports.EvidenceParams.fromPartial(object.evidence) : undefined; message.validator = object.validator !== undefined && object.validator !== null ? exports.ValidatorParams.fromPartial(object.validator) : undefined; message.version = object.version !== undefined && object.version !== null ? exports.VersionParams.fromPartial(object.version) : undefined; + message.abci = object.abci !== undefined && object.abci !== null ? exports.ABCIParams.fromPartial(object.abci) : undefined; return message; } }; @@ -195751,7 +196548,42 @@ exports.HashedParams = { return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vdGVuZGVybWludC90eXBlcy9wYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2REFBMkU7QUFDM0Usd0RBQTBDO0FBQzFDLDJDQUFrRDtBQTZIbEQsU0FBUyx5QkFBeUI7SUFDaEMsT0FBTztRQUNMLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLFNBQVMsRUFBRSxTQUFTO1FBQ3BCLE9BQU8sRUFBRSxTQUFTO0tBQ25CLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxlQUFlLEdBQUc7SUFDN0IsTUFBTSxDQUFDLE9BQXdCLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDdkUsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUMvQixtQkFBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN0RTtRQUVELElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDbEMsc0JBQWMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDNUU7UUFFRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFO1lBQ25DLHVCQUFlLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxF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 +function createBaseABCIParams() { + return { + voteExtensionsEnableHeight: helpers_1.Long.ZERO + }; +} +exports.ABCIParams = { + encode(message, writer = _m0.Writer.create()) { + if (!message.voteExtensionsEnableHeight.isZero()) { + writer.uint32(8).int64(message.voteExtensionsEnableHeight); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseABCIParams(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.voteExtensionsEnableHeight = reader.int64(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + const message = createBaseABCIParams(); + message.voteExtensionsEnableHeight = object.voteExtensionsEnableHeight !== undefined && object.voteExtensionsEnableHeight !== null ? helpers_1.Long.fromValue(object.voteExtensionsEnableHeight) : helpers_1.Long.ZERO; + return message; + } +}; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vdGVuZGVybWludC90eXBlcy9wYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2REFBMkU7QUFDM0Usd0RBQTBDO0FBQzFDLDJDQUFrRDtBQW9KbEQsU0FBUyx5QkFBeUI7SUFDaEMsT0FBTztRQUNMLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLFNBQVMsRUFBRSxTQUFTO1FBQ3BCLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLElBQUksRUFBRSxTQUFTO0tBQ2hCLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxlQUFlLEdBQUc7SUFDN0IsTUFBTSxDQUFDLE9BQXdCLEVBQUUsU0FBcUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDdkUsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUMvQixtQkFBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN0RTtRQUVELElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDbEMsc0JBQWMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDNUU7UUFFRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFO1lBQ25DLHVCQUFlLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzlFO1FBRUQsSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTtZQUNqQyxxQkFBYSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMxRTtRQUVELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDOUIsa0JBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDcEU7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcseUJBQXlCLEVBQUUsQ0FBQztRQUU1QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUU1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsS0FBSyxHQUFHLG1CQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDNUQsTUFBTTtnQkFFUixLQUFLLENBQUM7b0JBQ0osT0FBTyxDQUFDLFFBQVEsR0FBRyxzQkFBYyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQ2xFLE1BQU07Z0JBRVIsS0FBSyxDQUFDO29CQUNKLE9BQU8sQ0FBQyxTQUFTLEdBQUcsdUJBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUNwRSxNQUFNO2dCQUVSLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsT0FBTyxHQUFHLHFCQUFhLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDaEUsTUFBTTtnQkFFUixLQUFLLENBQUM7b0JBQ0osT0FBTyxDQUFDLElBQUksR0FBRyxrQkFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQzFELE1BQU07Z0JBRVI7b0JBQ0UsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3pCLE1BQU07YUFDVDtTQUNGO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFvQztRQUM5QyxNQUFNLE9BQU8sR0FBRyx5QkFBeUIsRUFBRSxDQUFDO1FBQzVDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLG1CQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3hILE9BQU8sQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLHNCQUFjLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3ZJLE9BQU8sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLHVCQUFlLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzVJLE9BQU8sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLHFCQUFhLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2xJLE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLGtCQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ25ILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FFRixDQUFDO0FBRUYsU0FBUyxxQkFBcUI7SUFDNUIsT0FBTztRQUNMLFFBQVEsRUFBRSxjQUFJLENBQUMsSUFBSTtRQUNuQixNQUFNLEVBQUUsY0FBSSxDQUFDLElBQUk7S0FDbEIsQ0FBQztBQUNKLENBQUM7QUFFWSxRQUFBLFdBQVcsR0FBRztJQUN6QixNQUFNLENBQUMsT0FBb0IsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNuRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM5QixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDMUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDekM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcscUJBQXFCLEVBQUUsQ0FBQztRQUV4QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUU1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsUUFBUSxHQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQVcsQ0FBQztvQkFDNUMsTUFBTTtnQkFFUixLQUFLLENBQUM7b0JBQ0osT0FBTyxDQUFDLE1BQU0sR0FBSSxNQUFNLENBQUMsS0FBSyxFQUFXLENBQUM7b0JBQzFDLE1BQU07Z0JBRVI7b0JBQ0UsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3pCLE1BQU07YUFDVDtTQUNGO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFnQztRQUMxQyxNQUFNLE9BQU8sR0FBRyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFJLENBQUMsSUFBSSxDQUFDO1FBQzNILE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFJLENBQUMsSUFBSSxDQUFDO1FBQ25ILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FFRixDQUFDO0FBRUYsU0FBUyx3QkFBd0I7SUFDL0IsT0FBTztRQUNMLGVBQWUsRUFBRSxjQUFJLENBQUMsSUFBSTtRQUMxQixjQUFjLEVBQUUsU0FBUztRQUN6QixRQUFRLEVBQUUsY0FBSSxDQUFDLElBQUk7S0FDcEIsQ0FBQztBQUNKLENBQUM7QUFFWSxRQUFBLGNBQWMsR0FBRztJQUM1QixNQUFNLENBQUMsT0FBdUIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUN0RSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDakQ7UUFFRCxJQUFJLE9BQU8sQ0FBQyxjQUFjLEtBQUssU0FBUyxFQUFFO1lBQ3hDLG1CQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzVFO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDOUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzNDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLHdCQUF3QixFQUFFLENBQUM7UUFFM0MsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLENBQUM7b0JBQ0osT0FBTyxDQUFDLGVBQWUsR0FBSSxNQUFNLENBQUMsS0FBSyxFQUFXLENBQUM7b0JBQ25ELE1BQU07Z0JBRVIsS0FBSyxDQUFDO29CQUNKLE9BQU8sQ0FBQyxjQUFjLEdBQUcsbUJBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUNsRSxNQUFNO2dCQUVSLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsUUFBUSxHQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQVcsQ0FBQztvQkFDNUMsTUFBTTtnQkFFUjtvQkFDRSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDekIsTUFBTTthQUNUO1NBQ0Y7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQW1DO1FBQzdDLE1BQU0sT0FBTyxHQUFHLHdCQUF3QixFQUFFLENBQUM7UUFDM0MsT0FBTyxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsZUFBZSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkosT0FBTyxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsY0FBYyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsbUJBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDekosT0FBTyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0gsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUVGLENBQUM7QUFFRixTQUFTLHlCQUF5QjtJQUNoQyxPQUFPO1FBQ0wsV0FBVyxFQUFFLEVBQUU7S0FDaEIsQ0FBQztBQUNKLENBQUM7QUFFWSxRQUFBLGVBQWUsR0FBRztJQUM3QixNQUFNLENBQUMsT0FBd0IsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUN2RSxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDbkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBRSxDQUFDLENBQUM7U0FDOUI7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcseUJBQXlCLEVBQUUsQ0FBQztRQUU1QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUU1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDMUMsTUFBTTtnQkFFUjtvQkFDRSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDekIsTUFBTTthQUNUO1NBQ0Y7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQW9DOztRQUM5QyxNQUFNLE9BQU8sR0FBRyx5QkFBeUIsRUFBRSxDQUFDO1FBQzVDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsQ0FBQSxNQUFBLE1BQU0sQ0FBQyxXQUFXLDBDQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFJLEVBQUUsQ0FBQztRQUM1RCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBRUYsQ0FBQztBQUVGLFNBQVMsdUJBQXVCO0lBQzlCLE9BQU87UUFDTCxHQUFHLEVBQUUsY0FBSSxDQUFDLEtBQUs7S0FDaEIsQ0FBQztBQUNKLENBQUM7QUFFWSxRQUFBLGFBQWEsR0FBRztJQUMzQixNQUFNLENBQUMsT0FBc0IsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNyRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUN6QixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdEM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsdUJBQXVCLEVBQUUsQ0FBQztRQUUxQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUU1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsR0FBRyxHQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQVcsQ0FBQztvQkFDeEMsTUFBTTtnQkFFUjtvQkFDRSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDekIsTUFBTTthQUNUO1NBQ0Y7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWtDO1FBQzVDLE1BQU0sT0FBTyxHQUFHLHVCQUF1QixFQUFFLENBQUM7UUFDMUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQUksQ0FBQyxLQUFLLENBQUM7UUFDeEcsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUVGLENBQUM7QUFFRixTQUFTLHNCQUFzQjtJQUM3QixPQUFPO1FBQ0wsYUFBYSxFQUFFLGNBQUksQ0FBQyxJQUFJO1FBQ3hCLFdBQVcsRUFBRSxjQUFJLENBQUMsSUFBSTtLQUN2QixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsWUFBWSxHQUFHO0lBQzFCLE1BQU0sQ0FBQyxPQUFxQixFQUFFLFNBQXFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ3BFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ25DLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUMvQztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2pDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUM5QztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxzQkFBc0IsRUFBRSxDQUFDO1FBRXpDLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRTVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLE9BQU8sQ0FBQyxhQUFhLEdBQUksTUFBTSxDQUFDLEtBQUssRUFBVyxDQUFDO29CQUNqRCxNQUFNO2dCQUVSLEtBQUssQ0FBQztvQkFDSixPQUFPLENBQUMsV0FBVyxHQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQVcsQ0FBQztvQkFDL0MsTUFBTTtnQkFFUjtvQkFDRSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDekIsTUFBTTthQUNUO1NBQ0Y7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWlDO1FBQzNDLE1BQU0sT0FBTyxHQUFHLHNCQUFzQixFQUFFLENBQUM7UUFDekMsT0FBTyxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUM7UUFDL0ksT0FBTyxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkksT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUVGLENBQUM7QUFFRixTQUFTLG9CQUFvQjtJQUMzQixPQUFPO1FBQ0wsMEJBQTBCLEVBQUUsY0FBSSxDQUFDLElBQUk7S0FDdEMsQ0FBQztBQUNKLENBQUM7QUFFWSxRQUFBLFVBQVUsR0FBRztJQUN4QixNQUFNLENBQUMsT0FBbUIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNsRSxJQUFJLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2hELE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQzVEO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLG9CQUFvQixFQUFFLENBQUM7UUFFdkMsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLENBQUM7b0JBQ0osT0FBTyxDQUFDLDBCQUEwQixHQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQVcsQ0FBQztvQkFDOUQsTUFBTTtnQkFFUjtvQkFDRSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDekIsTUFBTTthQUNUO1NBQ0Y7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQStCO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLG9CQUFvQixFQUFFLENBQUM7UUFDdkMsT0FBTyxDQUFDLDBCQUEwQixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLDBCQUEwQixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBSSxDQUFDLElBQUksQ0FBQztRQUNuTSxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBRUYsQ0FBQyJ9 /***/ }), @@ -195787,60 +196619,13 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.TxProof = exports.BlockMeta = exports.LightBlock = exports.SignedHeader = exports.Proposal = exports.CommitSig = exports.Commit = exports.Vote = exports.Data = exports.Header = exports.BlockID = exports.Part = exports.PartSetHeader = exports.signedMsgTypeToJSON = exports.signedMsgTypeFromJSON = exports.SignedMsgTypeSDKType = exports.SignedMsgType = exports.blockIDFlagToJSON = exports.blockIDFlagFromJSON = exports.BlockIDFlagSDKType = exports.BlockIDFlag = void 0; +exports.TxProof = exports.BlockMeta = exports.LightBlock = exports.SignedHeader = exports.Proposal = exports.ExtendedCommitSig = exports.ExtendedCommit = exports.CommitSig = exports.Commit = exports.Vote = exports.Data = exports.Header = exports.BlockID = exports.Part = exports.PartSetHeader = exports.signedMsgTypeToJSON = exports.signedMsgTypeFromJSON = exports.SignedMsgTypeSDKType = exports.SignedMsgType = void 0; const proof_1 = __webpack_require__(/*! ../crypto/proof */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/crypto/proof.ts"); const types_1 = __webpack_require__(/*! ../version/types */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/version/types.ts"); const timestamp_1 = __webpack_require__(/*! ../../google/protobuf/timestamp */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/timestamp.ts"); const validator_1 = __webpack_require__(/*! ./validator */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/types/validator.ts"); const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); -/** BlockIdFlag indicates which BlcokID the signature is for */ -var BlockIDFlag; -(function (BlockIDFlag) { - BlockIDFlag[BlockIDFlag["BLOCK_ID_FLAG_UNKNOWN"] = 0] = "BLOCK_ID_FLAG_UNKNOWN"; - BlockIDFlag[BlockIDFlag["BLOCK_ID_FLAG_ABSENT"] = 1] = "BLOCK_ID_FLAG_ABSENT"; - BlockIDFlag[BlockIDFlag["BLOCK_ID_FLAG_COMMIT"] = 2] = "BLOCK_ID_FLAG_COMMIT"; - BlockIDFlag[BlockIDFlag["BLOCK_ID_FLAG_NIL"] = 3] = "BLOCK_ID_FLAG_NIL"; - BlockIDFlag[BlockIDFlag["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; -})(BlockIDFlag = exports.BlockIDFlag || (exports.BlockIDFlag = {})); -exports.BlockIDFlagSDKType = BlockIDFlag; -function blockIDFlagFromJSON(object) { - switch (object) { - case 0: - case "BLOCK_ID_FLAG_UNKNOWN": - return BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN; - case 1: - case "BLOCK_ID_FLAG_ABSENT": - return BlockIDFlag.BLOCK_ID_FLAG_ABSENT; - case 2: - case "BLOCK_ID_FLAG_COMMIT": - return BlockIDFlag.BLOCK_ID_FLAG_COMMIT; - case 3: - case "BLOCK_ID_FLAG_NIL": - return BlockIDFlag.BLOCK_ID_FLAG_NIL; - case -1: - case "UNRECOGNIZED": - default: - return BlockIDFlag.UNRECOGNIZED; - } -} -exports.blockIDFlagFromJSON = blockIDFlagFromJSON; -function blockIDFlagToJSON(object) { - switch (object) { - case BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN: - return "BLOCK_ID_FLAG_UNKNOWN"; - case BlockIDFlag.BLOCK_ID_FLAG_ABSENT: - return "BLOCK_ID_FLAG_ABSENT"; - case BlockIDFlag.BLOCK_ID_FLAG_COMMIT: - return "BLOCK_ID_FLAG_COMMIT"; - case BlockIDFlag.BLOCK_ID_FLAG_NIL: - return "BLOCK_ID_FLAG_NIL"; - case BlockIDFlag.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} -exports.blockIDFlagToJSON = blockIDFlagToJSON; /** SignedMsgType is a type of signed message in the consensus. */ var SignedMsgType; (function (SignedMsgType) { @@ -196215,7 +197000,9 @@ function createBaseVote() { timestamp: undefined, validatorAddress: new Uint8Array(), validatorIndex: 0, - signature: new Uint8Array() + signature: new Uint8Array(), + extension: new Uint8Array(), + extensionSignature: new Uint8Array() }; } exports.Vote = { @@ -196244,6 +197031,12 @@ exports.Vote = { if (message.signature.length !== 0) { writer.uint32(66).bytes(message.signature); } + if (message.extension.length !== 0) { + writer.uint32(74).bytes(message.extension); + } + if (message.extensionSignature.length !== 0) { + writer.uint32(82).bytes(message.extensionSignature); + } return writer; }, decode(input, length) { @@ -196277,6 +197070,12 @@ exports.Vote = { case 8: message.signature = reader.bytes(); break; + case 9: + message.extension = reader.bytes(); + break; + case 10: + message.extensionSignature = reader.bytes(); + break; default: reader.skipType(tag & 7); break; @@ -196285,7 +197084,7 @@ exports.Vote = { return message; }, fromPartial(object) { - var _a, _b, _c, _d, _e, _f; + var _a, _b, _c, _d, _e, _f, _g, _h; const message = createBaseVote(); message.type = (_a = object.type) !== null && _a !== void 0 ? _a : 0; message.height = object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; @@ -196295,6 +197094,8 @@ exports.Vote = { message.validatorAddress = (_d = object.validatorAddress) !== null && _d !== void 0 ? _d : new Uint8Array(); message.validatorIndex = (_e = object.validatorIndex) !== null && _e !== void 0 ? _e : 0; message.signature = (_f = object.signature) !== null && _f !== void 0 ? _f : new Uint8Array(); + message.extension = (_g = object.extension) !== null && _g !== void 0 ? _g : new Uint8Array(); + message.extensionSignature = (_h = object.extensionSignature) !== null && _h !== void 0 ? _h : new Uint8Array(); return message; } }; @@ -196418,6 +197219,142 @@ exports.CommitSig = { return message; } }; +function createBaseExtendedCommit() { + return { + height: helpers_1.Long.ZERO, + round: 0, + blockId: undefined, + extendedSignatures: [] + }; +} +exports.ExtendedCommit = { + encode(message, writer = _m0.Writer.create()) { + if (!message.height.isZero()) { + writer.uint32(8).int64(message.height); + } + if (message.round !== 0) { + writer.uint32(16).int32(message.round); + } + if (message.blockId !== undefined) { + exports.BlockID.encode(message.blockId, writer.uint32(26).fork()).ldelim(); + } + for (const v of message.extendedSignatures) { + exports.ExtendedCommitSig.encode(v, writer.uint32(34).fork()).ldelim(); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseExtendedCommit(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.height = reader.int64(); + break; + case 2: + message.round = reader.int32(); + break; + case 3: + message.blockId = exports.BlockID.decode(reader, reader.uint32()); + break; + case 4: + message.extendedSignatures.push(exports.ExtendedCommitSig.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b; + const message = createBaseExtendedCommit(); + message.height = object.height !== undefined && object.height !== null ? helpers_1.Long.fromValue(object.height) : helpers_1.Long.ZERO; + message.round = (_a = object.round) !== null && _a !== void 0 ? _a : 0; + message.blockId = object.blockId !== undefined && object.blockId !== null ? exports.BlockID.fromPartial(object.blockId) : undefined; + message.extendedSignatures = ((_b = object.extendedSignatures) === null || _b === void 0 ? void 0 : _b.map(e => exports.ExtendedCommitSig.fromPartial(e))) || []; + return message; + } +}; +function createBaseExtendedCommitSig() { + return { + blockIdFlag: 0, + validatorAddress: new Uint8Array(), + timestamp: undefined, + signature: new Uint8Array(), + extension: new Uint8Array(), + extensionSignature: new Uint8Array() + }; +} +exports.ExtendedCommitSig = { + encode(message, writer = _m0.Writer.create()) { + if (message.blockIdFlag !== 0) { + writer.uint32(8).int32(message.blockIdFlag); + } + if (message.validatorAddress.length !== 0) { + writer.uint32(18).bytes(message.validatorAddress); + } + if (message.timestamp !== undefined) { + timestamp_1.Timestamp.encode((0, helpers_1.toTimestamp)(message.timestamp), writer.uint32(26).fork()).ldelim(); + } + if (message.signature.length !== 0) { + writer.uint32(34).bytes(message.signature); + } + if (message.extension.length !== 0) { + writer.uint32(42).bytes(message.extension); + } + if (message.extensionSignature.length !== 0) { + writer.uint32(50).bytes(message.extensionSignature); + } + return writer; + }, + decode(input, length) { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseExtendedCommitSig(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.blockIdFlag = reader.int32(); + break; + case 2: + message.validatorAddress = reader.bytes(); + break; + case 3: + message.timestamp = (0, helpers_1.fromTimestamp)(timestamp_1.Timestamp.decode(reader, reader.uint32())); + break; + case 4: + message.signature = reader.bytes(); + break; + case 5: + message.extension = reader.bytes(); + break; + case 6: + message.extensionSignature = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + fromPartial(object) { + var _a, _b, _c, _d, _e, _f; + const message = createBaseExtendedCommitSig(); + message.blockIdFlag = (_a = object.blockIdFlag) !== null && _a !== void 0 ? _a : 0; + message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : new Uint8Array(); + message.timestamp = (_c = object.timestamp) !== null && _c !== void 0 ? _c : undefined; + message.signature = (_d = object.signature) !== null && _d !== void 0 ? _d : new Uint8Array(); + message.extension = (_e = object.extension) !== null && _e !== void 0 ? _e : new Uint8Array(); + message.extensionSignature = (_f = object.extensionSignature) !== null && _f !== void 0 ? _f : new Uint8Array(); + return message; + } +}; function createBaseProposal() { return { type: 0, @@ -196699,7 +197636,7 @@ exports.TxProof = { return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi90ZW5kZXJtaW50L3R5cGVzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXNEO0FBQ3RELDRDQUErRDtBQUMvRCwrREFBNEQ7QUFDNUQsMkNBQWdFO0FBQ2hFLHdEQUEwQztBQUMxQywyQ0FBOEU7QUFDOUUsK0RBQStEO0FBRS9ELElBQVksV0FNWDtBQU5ELFdBQVksV0FBVztJQUNyQiwrRUFBeUIsQ0FBQTtJQUN6Qiw2RUFBd0IsQ0FBQTtJQUN4Qiw2RUFBd0IsQ0FBQTtJQUN4Qix1RUFBcUIsQ0FBQTtJQUNyQiw4REFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBTlcsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFNdEI7QUFDWSxRQUFBLGtCQUFrQixHQUFHLFdBQVcsQ0FBQztBQUM5QyxTQUFnQixtQkFBbUIsQ0FBQyxNQUFXO0lBQzdDLFFBQVEsTUFBTSxFQUFFO1FBQ2QsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLHVCQUF1QjtZQUMxQixPQUFPLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQztRQUUzQyxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssc0JBQXNCO1lBQ3pCLE9BQU8sV0FBVyxDQUFDLG9CQUFvQixDQUFDO1FBRTFDLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxzQkFBc0I7WUFDekIsT0FBTyxXQUFXLENBQUMsb0JBQW9CLENBQUM7UUFFMUMsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLG1CQUFtQjtZQUN0QixPQUFPLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQztRQUV2QyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ1IsS0FBSyxjQUFjLENBQUM7UUFDcEI7WUFDRSxPQUFPLFdBQVcs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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGR5ZHhwcm90b2NvbC92NC1wcm90by9zcmMvY29kZWdlbi90ZW5kZXJtaW50L3R5cGVzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXNEO0FBQ3RELDRDQUErRDtBQUMvRCwrREFBNEQ7QUFDNUQsMkNBQTZFO0FBQzdFLHdEQUEwQztBQUMxQywyQ0FBOEU7QUFDOUUsa0VBQWtFO0FBRWxFLElBQVksYUFVWDtBQVZELFdBQVksYUFBYTtJQUN2Qix1RkFBMkIsQ0FBQTtJQUUzQixzQ0FBc0M7SUFDdEMsdUZBQTJCLENBQUE7SUFDM0IsMkZBQTZCLENBQUE7SUFFN0IsMkNBQTJDO0lBQzNDLDBGQUE2QixDQUFBO0lBQzdCLGtFQUFpQixDQUFBO0FBQ25CLENBQUMsRUFWVyxhQUFhLEdBQWIscUJBQWEsS0FBYixxQkFBYSxRQVV4QjtBQUNZLFFBQUEsb0JBQW9CLEdBQUcsYUFBYSxDQUFDO0FBQ2xELFNBQWdCLHFCQUFxQixDQUFDLE1BQVc7SUFDL0MsUUFBUSxNQUFNLEVBQUU7UUFDZCxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUsseUJBQXlCO1lBQzVCLE9BQU8sYUFBYSxDQUFDLHVCQUF1QixDQUFDO1FBRS9DLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyx5QkFBeUI7WUFDNUIsT0FBTyxhQUFhLENBQUMsdUJBQXVCLENBQUM7UUFFL0MsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLDJCQUEyQjtZQUM5QixPQUFPLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQztRQUVqRCxLQUFLLEVBQUUsQ0FBQztRQUNSLEtBQUssMEJBQTBCO1lBQzdCLE9BQU8sYUFBYSxDQUFDLHdCQUF3QixDQUFDO1FBRWhELEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDUixLQUFLLGNBQWMs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 /***/ }), @@ -196735,10 +197672,60 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.SimpleValidator = exports.Validator = exports.ValidatorSet = void 0; +exports.SimpleValidator = exports.Validator = exports.ValidatorSet = exports.blockIDFlagToJSON = exports.blockIDFlagFromJSON = exports.BlockIDFlagSDKType = exports.BlockIDFlag = void 0; const keys_1 = __webpack_require__(/*! ../crypto/keys */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/crypto/keys.ts"); const helpers_1 = __webpack_require__(/*! ../../helpers */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/helpers.ts"); const _m0 = __importStar(__webpack_require__(/*! protobufjs/minimal */ "./node_modules/protobufjs/minimal.js")); +/** BlockIdFlag indicates which BlockID the signature is for */ +var BlockIDFlag; +(function (BlockIDFlag) { + /** BLOCK_ID_FLAG_UNKNOWN - indicates an error condition */ + BlockIDFlag[BlockIDFlag["BLOCK_ID_FLAG_UNKNOWN"] = 0] = "BLOCK_ID_FLAG_UNKNOWN"; + /** BLOCK_ID_FLAG_ABSENT - the vote was not received */ + BlockIDFlag[BlockIDFlag["BLOCK_ID_FLAG_ABSENT"] = 1] = "BLOCK_ID_FLAG_ABSENT"; + BlockIDFlag[BlockIDFlag["BLOCK_ID_FLAG_COMMIT"] = 2] = "BLOCK_ID_FLAG_COMMIT"; + /** BLOCK_ID_FLAG_NIL - voted for nil */ + BlockIDFlag[BlockIDFlag["BLOCK_ID_FLAG_NIL"] = 3] = "BLOCK_ID_FLAG_NIL"; + BlockIDFlag[BlockIDFlag["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; +})(BlockIDFlag = exports.BlockIDFlag || (exports.BlockIDFlag = {})); +exports.BlockIDFlagSDKType = BlockIDFlag; +function blockIDFlagFromJSON(object) { + switch (object) { + case 0: + case "BLOCK_ID_FLAG_UNKNOWN": + return BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN; + case 1: + case "BLOCK_ID_FLAG_ABSENT": + return BlockIDFlag.BLOCK_ID_FLAG_ABSENT; + case 2: + case "BLOCK_ID_FLAG_COMMIT": + return BlockIDFlag.BLOCK_ID_FLAG_COMMIT; + case 3: + case "BLOCK_ID_FLAG_NIL": + return BlockIDFlag.BLOCK_ID_FLAG_NIL; + case -1: + case "UNRECOGNIZED": + default: + return BlockIDFlag.UNRECOGNIZED; + } +} +exports.blockIDFlagFromJSON = blockIDFlagFromJSON; +function blockIDFlagToJSON(object) { + switch (object) { + case BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN: + return "BLOCK_ID_FLAG_UNKNOWN"; + case BlockIDFlag.BLOCK_ID_FLAG_ABSENT: + return "BLOCK_ID_FLAG_ABSENT"; + case BlockIDFlag.BLOCK_ID_FLAG_COMMIT: + return "BLOCK_ID_FLAG_COMMIT"; + case BlockIDFlag.BLOCK_ID_FLAG_NIL: + return "BLOCK_ID_FLAG_NIL"; + case BlockIDFlag.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} +exports.blockIDFlagToJSON = blockIDFlagToJSON; function createBaseValidatorSet() { return { validators: [], @@ -196894,7 +197881,7 @@ exports.SimpleValidator = { return message; } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vdGVuZGVybWludC90eXBlcy92YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5Q0FBNkQ7QUFDN0QsMkNBQWtEO0FBQ2xELHdEQUEwQztBQWdDMUMsU0FBUyxzQkFBc0I7SUFDN0IsT0FBTztRQUNMLFVBQVUsRUFBRSxFQUFFO1FBQ2QsUUFBUSxFQUFFLFNBQVM7UUFDbkIsZ0JBQWdCLEVBQUUsY0FBSSxDQUFDLElBQUk7S0FDNUIsQ0FBQztBQUNKLENBQUM7QUFFWSxRQUFBLFlBQVksR0FBRztJQUMxQixNQUFNLENBQUMsT0FBcUIsRUFBRSxTQUFxQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNwRSxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDbEMsaUJBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN6RDtRQUVELElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDbEMsaUJBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDdkU7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3RDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxnQkFB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BkeWR4cHJvdG9jb2wvdjQtcHJvdG8vc3JjL2NvZGVnZW4vdGVuZGVybWludC90eXBlcy92YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5Q0FBNkQ7QUFDN0QsMkNBQWtEO0FBQ2xELHdEQUEwQztBQUMxQywrREFBK0Q7QUFFL0QsSUFBWSxXQVdYO0FBWEQsV0FBWSxXQUFXO0lBQ3JCLDJEQUEyRDtJQUMzRCwrRUFBeUIsQ0FBQTtJQUV6Qix1REFBdUQ7SUFDdkQsNkVBQXdCLENBQUE7SUFDeEIsNkVBQXdCLENBQUE7SUFFeEIsd0NBQXdDO0lBQ3hDLHVFQUFxQixDQUFBO0lBQ3JCLDhEQUFpQixDQUFBO0FBQ25CLENBQUMsRUFYVyxXQUFXLEdBQVgsbUJBQVcsS0FBWCxtQkFBVyxRQVd0QjtBQUNZLFFBQUEsa0JBQWtCLEdBQUcsV0FBVyxDQUFDO0FBQzlDLFNBQWdCLG1CQUFtQixDQUFDLE1BQVc7SUFDN0MsUUFBUSxNQUFNLEVBQUU7UUFDZCxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssdUJBQXVCO1lBQzFCLE9BQU8sV0FBVyxDQUFDLHFCQUFxQixDQUFDO1FBRTNDLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxzQkFBc0I7WUFDekIsT0FBTyxXQUFXLENBQUMsb0JBQW9CLENBQUM7UUFFMUMsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLHNCQUFzQjtZQUN6QixPQUFPLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQztRQUUxQyxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssbUJBQW1CO1lBQ3RCLE9BQU8sV0FBVyxDQUFDLGlCQUFpQixDQUFDO1FBRXZDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDUixLQUFLLGNBQWMsQ0FBQztRQUNwQjtZQUNFLE9B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 /***/ }), @@ -197048,6 +198035,7 @@ const constants_1 = __webpack_require__(/*! ./constants */ "./src/clients/consta const chain_helpers_1 = __webpack_require__(/*! ./helpers/chain-helpers */ "./src/clients/helpers/chain-helpers.ts"); const indexer_client_1 = __webpack_require__(/*! ./indexer-client */ "./src/clients/indexer-client.ts"); const errors_1 = __webpack_require__(/*! ./lib/errors */ "./src/clients/lib/errors.ts"); +const registry_1 = __webpack_require__(/*! ./lib/registry */ "./src/clients/lib/registry.ts"); const validator_client_1 = __webpack_require__(/*! ./validator-client */ "./src/clients/validator-client.ts"); // Required for encoding and decoding queries that are of type Long. // Must be done once but since the individal modules should be usable @@ -197204,7 +198192,7 @@ class CompositeClient { * at any point. * @returns The transaction hash. */ - async placeShortTermOrder(subaccount, marketId, side, price, size, clientId, goodTilBlock, timeInForce, reduceOnly) { + async placeShortTermOrder(subaccount, marketId, side, price, size, clientId, goodTilBlock, timeInForce, reduceOnly, memo) { const msgs = new Promise((resolve) => { const msg = this.placeShortTermOrderMessage(subaccount, marketId, side, price, size, clientId, goodTilBlock, timeInForce, reduceOnly); msg.then((it) => resolve([it])).catch((err) => { @@ -197212,7 +198200,7 @@ class CompositeClient { }); }); const account = this.validatorClient.post.account(subaccount.address, undefined); - return this.send(subaccount.wallet, () => msgs, true, undefined, undefined, () => account); + return this.send(subaccount.wallet, () => msgs, true, undefined, memo, () => account); } /** * @description Place an order with human readable input. @@ -197245,7 +198233,7 @@ class CompositeClient { * at any point. * @returns The transaction hash. */ - async placeOrder(subaccount, marketId, type, side, price, size, clientId, timeInForce, goodTilTimeInSeconds, execution, postOnly, reduceOnly, triggerPrice, marketInfo, currentHeight) { + async placeOrder(subaccount, marketId, type, side, price, size, clientId, timeInForce, goodTilTimeInSeconds, execution, postOnly, reduceOnly, triggerPrice, marketInfo, currentHeight, memo) { const msgs = new Promise((resolve) => { const msg = this.placeOrderMessage(subaccount, marketId, type, side, price, // trigger_price: number, // not used for MARKET and LIMIT @@ -197256,7 +198244,7 @@ class CompositeClient { }); const orderFlags = (0, chain_helpers_1.calculateOrderFlags)(type, timeInForce); const account = this.validatorClient.post.account(subaccount.address, orderFlags); - return this.send(subaccount.wallet, () => msgs, true, undefined, undefined, () => account); + return this.send(subaccount.wallet, () => msgs, true, undefined, memo, () => account); } /** * @description Calculate and create the place order message @@ -197446,12 +198434,12 @@ class CompositeClient { * at any point. * @returns The transaction hash. */ - async transferToSubaccount(subaccount, recipientAddress, recipientSubaccountNumber, amount) { + async transferToSubaccount(subaccount, recipientAddress, recipientSubaccountNumber, amount, memo) { const msgs = new Promise((resolve) => { const msg = this.transferToSubaccountMessage(subaccount, recipientAddress, recipientSubaccountNumber, amount); resolve([msg]); }); - return this.send(subaccount.wallet, () => msgs, true); + return this.send(subaccount.wallet, () => msgs, true, undefined, memo); } /** * @description Create message to transfer from a subaccount to another subaccount @@ -197490,12 +198478,12 @@ class CompositeClient { * at any point. * @returns The transaction hash. */ - async depositToSubaccount(subaccount, amount) { + async depositToSubaccount(subaccount, amount, memo) { const msgs = new Promise((resolve) => { const msg = this.depositToSubaccountMessage(subaccount, amount); resolve([msg]); }); - return this.validatorClient.post.send(subaccount.wallet, () => msgs, false); + return this.validatorClient.post.send(subaccount.wallet, () => msgs, false, undefined, memo); } /** * @description Create message to deposit from wallet to subaccount @@ -197532,12 +198520,12 @@ class CompositeClient { * at any point. * @returns The transaction hash */ - async withdrawFromSubaccount(subaccount, amount, recipient) { + async withdrawFromSubaccount(subaccount, amount, recipient, memo) { const msgs = new Promise((resolve) => { const msg = this.withdrawFromSubaccountMessage(subaccount, amount, recipient); resolve([msg]); }); - return this.send(subaccount.wallet, () => msgs, false); + return this.send(subaccount.wallet, () => msgs, false, undefined, memo); } /** * @description Create message to withdraw from subaccount to wallet @@ -197612,9 +198600,51 @@ class CompositeClient { const signature = await this.sign(subaccount.wallet, () => msgs, true); return Buffer.from(signature).toString('base64'); } + /** + * @description Submit a governance proposal to add a new market. + * + * @param params Parameters neeeded to create a new market. + * @param title Title of the gov proposal. + * @param summary Summary of the gov proposal. + * @param initialDepositAmount Initial deposit amount of the gov proposal. + * @param proposer proposer of the gov proposal. + * + * @returns the transaction hash. + */ + async submitGovAddNewMarketProposal(wallet, params, title, summary, initialDepositAmount, memo) { + const msg = new Promise((resolve) => { + const composer = this.validatorClient.post.composer; + const registry = (0, registry_1.generateRegistry)(); + const msgs = []; + // x/prices.MsgCreateOracleMarket + const createOracleMarket = composer.composeMsgCreateOracleMarket(params.id, params.ticker, params.priceExponent, params.minExchanges, params.minPriceChange, params.exchangeConfigJson); + // x/perpetuals.MsgCreatePerpetual + const createPerpetual = composer.composeMsgCreatePerpetual(params.id, params.id, params.ticker, params.atomicResolution, params.liquidityTier); + // x/clob.MsgCreateClobPair + const createClobPair = composer.composeMsgCreateClobPair(params.id, params.id, params.quantumConversionExponent, params.stepBaseQuantums, params.subticksPerTick); + // x/clob.MsgUpdateClobPair + const updateClobPair = composer.composeMsgUpdateClobPair(params.id, params.id, params.quantumConversionExponent, params.stepBaseQuantums, params.subticksPerTick); + // x/delaymsg.MsgDelayMessage + const delayMessage = composer.composeMsgDelayMessage( + // IMPORTANT: must wrap messages in Any type to fit into delaymsg. + composer.wrapMessageAsAny(registry, updateClobPair), params.delayBlocks); + // The order matters. + msgs.push(createOracleMarket); + msgs.push(createPerpetual); + msgs.push(createClobPair); + msgs.push(delayMessage); + // x/gov.v1.MsgSubmitProposal + const submitProposal = composer.composeMsgSubmitProposal(title, initialDepositAmount, this.validatorClient.config.denoms, // use the client denom. + summary, + // IMPORTANT: must wrap messages in Any type for gov's submit proposal. + composer.wrapMessageArrAsAny(registry, msgs), wallet.address); + resolve([submitProposal]); + }); + return this.send(wallet, () => msg, false, undefined, memo); + } } exports.CompositeClient = CompositeClient; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaXRlLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnRzL2NvbXBvc2l0ZS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS0Esc0ZBQW9IO0FBQ3BILG1DQUFvQztBQUNwQyxnREFBd0I7QUFDeEIsNERBQWtDO0FBRWxDLGtEQUFzRTtBQUN0RSxvQ0FBc0M7QUFDdEMsMkNBUXFCO0FBQ3JCLDJEQVNpQztBQUNqQyxxREFBaUQ7QUFDakQseUNBQXlDO0FBR3pDLHlEQUFxRDtBQUVyRCxvRUFBb0U7QUFDcEUscUVBQXFFO0FBQ3JFLHdFQUF3RTtBQUN4RSxrRUFBa0U7QUFDbEUsb0JBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLGNBQUksQ0FBQztBQUMxQixvQkFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBVXJCLE1BQWEsZUFBZTtJQVcxQixZQUNFLE9BQWdCLEVBQ2hCLFVBQW1CO1FBRW5CLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSw4QkFBYSxDQUNyQyxPQUFPLENBQUMsYUFBYSxFQUNyQixVQUFVLENBQ1gsQ0FBQztJQUNKLENBQUM7SUFmRCxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFnQjtRQUNuQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QyxNQUFNLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMxQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBYU8sS0FBSyxDQUFDLFVBQVU7UUFDdEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sa0NBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2Y7O1dBRUc7UUFDSCxPQUFP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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaXRlLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnRzL2NvbXBvc2l0ZS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS0Esc0ZBQW9IO0FBQ3BILG1DQUFvQztBQUNwQyxnREFBd0I7QUFDeEIsNERBQWtDO0FBRWxDLGtEQUFzRTtBQUN0RSxvQ0FBNkQ7QUFDN0QsMkNBUXFCO0FBQ3JCLDJEQVNpQztBQUNqQyxxREFBaUQ7QUFDakQseUNBQXlDO0FBQ3pDLDZDQUFrRDtBQUdsRCx5REFBcUQ7QUFFckQsb0VBQW9FO0FBQ3BFLHFFQUFxRTtBQUNyRSx3RUFBd0U7QUFDeEUsa0VBQWtFO0FBQ2xFLG9CQUFRLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxjQUFJLENBQUM7QUFDMUIsb0JBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQVVyQixNQUFhLGVBQWU7SUFXMUIsWUFDRSxPQUFnQixFQUNoQixVQUFtQjtRQUVuQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksOEJBQWEsQ0FDckMsT0FBTyxDQUFDLGFBQWEsRUFDckIsVUFBVSxDQUNYLENBQUM7SUFDSixDQUFDO0lBZkQsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBZ0I7UUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUMsTUFBTSxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDMUIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQWFPLEtBQUssQ0FBQyxVQUFVO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLGtDQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmOztX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 /***/ }), @@ -197644,7 +198674,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Network = exports.ValidatorConfig = exports.IndexerConfig = exports.PAGE_REQUEST = exports.SHORT_BLOCK_FORWARD = exports.SHORT_BLOCK_WINDOW = exports.MAX_MEMO_CHARACTERS = exports.DEFAULT_API_TIMEOUT = exports.TimePeriod = exports.PositionStatus = exports.TickerType = exports.OrderStatus = exports.OrderExecution = exports.OrderTimeInForce = exports.OrderSide = exports.OrderType = exports.MarketStatisticDay = exports.NETWORK_ID_TESTNET = exports.NETWORK_ID_MAINNET = exports.NetworkId = exports.ValidatorApiHost = exports.FaucetApiHost = exports.IndexerWSHost = exports.IndexerApiHost = exports.LOCAL_CHAIN_ID = exports.TESTNET_CHAIN_ID = exports.STAGING_CHAIN_ID = exports.DEV_CHAIN_ID = void 0; +exports.Network = exports.ValidatorConfig = exports.IndexerConfig = exports.PAGE_REQUEST = exports.SHORT_BLOCK_FORWARD = exports.SHORT_BLOCK_WINDOW = exports.MAX_MEMO_CHARACTERS = exports.DEFAULT_API_TIMEOUT = exports.TimePeriod = exports.PositionStatus = exports.TickerType = exports.OrderStatus = exports.OrderExecution = exports.OrderTimeInForce = exports.OrderSide = exports.OrderType = exports.MarketStatisticDay = exports.DELAYMSG_MODULE_ADDRESS = exports.GOV_MODULE_ADDRESS = exports.TYPE_URL_MSG_DEPOSIT_TO_SUBACCOUNT = exports.TYPE_URL_MSG_WITHDRAW_FROM_SUBACCOUNT = exports.TYPE_URL_MSG_CREATE_TRANSFER = exports.TYPE_URL_MSG_CREATE_ORACLE_MARKET = exports.TYPE_URL_MSG_CREATE_PERPETUAL = exports.TYPE_URL_MSG_DELAY_MESSAGE = exports.TYPE_URL_MSG_UPDATE_CLOB_PAIR = exports.TYPE_URL_MSG_CREATE_CLOB_PAIR = exports.TYPE_URL_MSG_CANCEL_ORDER = exports.TYPE_URL_MSG_PLACE_ORDER = exports.TYPE_URL_MSG_SUBMIT_PROPOSAL = exports.TYPE_URL_MSG_SEND = exports.NETWORK_ID_TESTNET = exports.NETWORK_ID_MAINNET = exports.NetworkId = exports.ValidatorApiHost = exports.FaucetApiHost = exports.IndexerWSHost = exports.IndexerApiHost = exports.LOCAL_CHAIN_ID = exports.TESTNET_CHAIN_ID = exports.STAGING_CHAIN_ID = exports.DEV_CHAIN_ID = void 0; const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); __exportStar(__webpack_require__(/*! ../lib/constants */ "./src/lib/constants.ts"), exports); // Chain ID @@ -197683,6 +198713,32 @@ var NetworkId; })(NetworkId = exports.NetworkId || (exports.NetworkId = {})); exports.NETWORK_ID_MAINNET = null; exports.NETWORK_ID_TESTNET = 'dydxprotocol-testnet'; +// ------------ MsgType URLs ------------ +// Default CosmosSDK +// x/bank +exports.TYPE_URL_MSG_SEND = '/cosmos.bank.v1beta1.MsgSend'; +// x/gov +exports.TYPE_URL_MSG_SUBMIT_PROPOSAL = '/cosmos.gov.v1.MsgSubmitProposal'; +// dYdX Specific +// x/clob +exports.TYPE_URL_MSG_PLACE_ORDER = '/dydxprotocol.clob.MsgPlaceOrder'; +exports.TYPE_URL_MSG_CANCEL_ORDER = '/dydxprotocol.clob.MsgCancelOrder'; +exports.TYPE_URL_MSG_CREATE_CLOB_PAIR = '/dydxprotocol.clob.MsgCreateClobPair'; +exports.TYPE_URL_MSG_UPDATE_CLOB_PAIR = '/dydxprotocol.clob.MsgUpdateClobPair'; +// x/delaymsg +exports.TYPE_URL_MSG_DELAY_MESSAGE = '/dydxprotocol.delaymsg.MsgDelayMessage'; +// x/perpetuals +exports.TYPE_URL_MSG_CREATE_PERPETUAL = '/dydxprotocol.perpetuals.MsgCreatePerpetual'; +// x/prices +exports.TYPE_URL_MSG_CREATE_ORACLE_MARKET = '/dydxprotocol.prices.MsgCreateOracleMarket'; +// x/sending +exports.TYPE_URL_MSG_CREATE_TRANSFER = '/dydxprotocol.sending.MsgCreateTransfer'; +exports.TYPE_URL_MSG_WITHDRAW_FROM_SUBACCOUNT = '/dydxprotocol.sending.MsgWithdrawFromSubaccount'; +exports.TYPE_URL_MSG_DEPOSIT_TO_SUBACCOUNT = '/dydxprotocol.sending.MsgDepositToSubaccount'; +// ------------ Chain Constants ------------ +// The following are same across different networks / deployments. +exports.GOV_MODULE_ADDRESS = 'dydx10d07y265gmmuvt4z0w9aw880jnsr700jnmapky'; +exports.DELAYMSG_MODULE_ADDRESS = 'dydx1mkkvp26dngu6n8rmalaxyp3gwkjuzztq5zx6tr'; // ------------ Market Statistic Day Types ------------ var MarketStatisticDay; (function (MarketStatisticDay) { @@ -197772,11 +198828,12 @@ class IndexerConfig { } exports.IndexerConfig = IndexerConfig; class ValidatorConfig { - constructor(restEndpoint, chainId, denoms, broadcastOptions) { + constructor(restEndpoint, chainId, denoms, broadcastOptions, defaultClientMemo) { this.restEndpoint = (restEndpoint === null || restEndpoint === void 0 ? void 0 : restEndpoint.endsWith('/')) ? restEndpoint.slice(0, -1) : restEndpoint; this.chainId = chainId; this.denoms = denoms; this.broadcastOptions = broadcastOptions; + this.defaultClientMemo = defaultClientMemo; } } exports.ValidatorConfig = ValidatorConfig; @@ -197794,7 +198851,7 @@ class Network { USDC_GAS_DENOM: 'uusdc', USDC_DECIMALS: 6, CHAINTOKEN_DECIMALS: 18, - }); + }, undefined, 'Client Example'); return new Network('testnet', indexerConfig, validatorConfig); } static local() { @@ -197805,7 +198862,7 @@ class Network { USDC_GAS_DENOM: 'uusdc', USDC_DECIMALS: 6, CHAINTOKEN_DECIMALS: 18, - }); + }, undefined, 'Client Example'); return new Network('local', indexerConfig, validatorConfig); } // TODO: Add mainnet(): Network @@ -197814,7 +198871,7 @@ class Network { } } exports.Network = Network; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudHMvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsZ0RBQXdCO0FBSXhCLG1EQUFpQztBQUVqQyxXQUFXO0FBQ0UsUUFBQSxZQUFZLEdBQUcsc0JBQXNCLENBQUM7QUFDdEMsUUFBQSxnQkFBZ0IsR0FBRyxzQkFBc0IsQ0FBQztBQUMxQyxRQUFBLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0FBQ3BDLFFBQUEsY0FBYyxHQUFHLG1CQUFtQixDQUFDO0FBRWxELHFDQUFxQztBQUNyQyxJQUFZLGNBSVg7QUFKRCxXQUFZLGNBQWM7SUFDeEIsK0RBQTZDLENBQUE7SUFDN0MsaURBQStCLENBQUE7SUFDL0Isb0JBQW9CO0FBQ3RCLENBQUMsRUFKVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQUl6QjtBQUVELElBQVksYUFJWDtBQUpELFdBQVksYUFBYTtJQUN2QixrRUFBaUQsQ0FBQTtJQUNqRCxvQkFBb0I7SUFDcEIsOENBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQUpXLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBSXhCO0FBRUQsSUFBWSxhQUVYO0FBRkQsV0FBWSxhQUFhO0lBQ3ZCLG1FQUFrRCxDQUFBO0FBQ3BELENBQUMsRUFGVyxhQUFhLEdBQWIscUJBQWEsS0FBYixxQkFBYSxRQUV4QjtBQUVELElBQVksZ0JBSVg7QUFKRCxXQUFZLGdCQUFnQjtJQUMxQiwrREFBMkMsQ0FBQTtJQUMzQyxvQkFBb0I7SUFDcEIsb0RBQWdDLENBQUE7QUFDbEMsQ0FBQyxFQUpXLGdCQUFnQixHQUFoQix3QkFBZ0IsS0FBaEIsd0JBQWdCLFFBSTNCO0FBRUQsd0NBQXdDO0FBRXhDLElBQVksU0FHWDtBQUhELFdBQVksU0FBUztJQUNuQix1Q0FBMEIsQ0FBQTtJQUMxQixvQkFBb0I7QUFDdEIsQ0FB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudHMvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsZ0RBQXdCO0FBSXhCLG1EQUFpQztBQUVqQyxXQUFXO0FBQ0UsUUFBQSxZQUFZLEdBQUcsc0JBQXNCLENBQUM7QUFDdEMsUUFBQSxnQkFBZ0IsR0FBRyxzQkFBc0IsQ0FBQztBQUMxQyxRQUFBLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0FBQ3BDLFFBQUEsY0FBYyxHQUFHLG1CQUFtQixDQUFDO0FBRWxELHFDQUFxQztBQUNyQyxJQUFZLGNBSVg7QUFKRCxXQUFZLGNBQWM7SUFDeEIsK0RBQTZDLENBQUE7SUFDN0MsaURBQStCLENBQUE7SUFDL0Isb0JBQW9CO0FBQ3RCLENBQUMsRUFKVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQUl6QjtBQUVELElBQVksYUFJWDtBQUpELFdBQVksYUFBYTtJQUN2QixrRUFBaUQsQ0FBQTtJQUNqRCxvQkFBb0I7SUFDcEIsOENBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQUpXLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBSXhCO0FBRUQsSUFBWSxhQUVYO0FBRkQsV0FBWSxhQUFhO0lBQ3ZCLG1FQUFrRCxDQUFBO0FBQ3BELENBQUMsRUFGVyxhQUFhLEdBQWIscUJBQWEsS0FBYixxQkFBYSxRQUV4QjtBQUVELElBQVksZ0JBSVg7QUFKRCxXQUFZLGdCQUFnQjtJQUMxQiwrREFBMkMsQ0FBQTtJQUMzQyxvQkFBb0I7SUFDcEIsb0RBQWdDLENBQUE7QUFDbEMsQ0FBQyxFQUpXLGdCQUFnQixHQUFoQix3QkFBZ0IsS0FBaEIsd0JBQWdCLFFBSTNCO0FBRUQsd0NBQXdDO0FBRXhDLElBQVksU0FHWDtBQUhELFdBQVksU0FBUztJQUNuQix1Q0FBMEIsQ0FBQTtJQUMxQixvQkFBb0I7QUFDdEIsQ0FB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 /***/ }), @@ -201333,229 +202390,1682 @@ class MsgClientImpl { const promise = this.rpc.request(this.service, "ReplaceDepositForBurn", data); return promise.then((data) => exports.MsgReplaceDepositForBurnResponse.decode(minimal_1.default.Reader.create(data))); } - ReplaceMessage(request) { - const data = exports.MsgReplaceMessage.encode(request).finish(); - const promise = this.rpc.request(this.service, "ReplaceMessage", data); - return promise.then((data) => exports.MsgReplaceMessageResponse.decode(minimal_1.default.Reader.create(data))); + ReplaceMessage(request) { + const data = exports.MsgReplaceMessage.encode(request).finish(); + const promise = this.rpc.request(this.service, "ReplaceMessage", data); + return promise.then((data) => exports.MsgReplaceMessageResponse.decode(minimal_1.default.Reader.create(data))); + } + SendMessage(request) { + const data = exports.MsgSendMessage.encode(request).finish(); + const promise = this.rpc.request(this.service, "SendMessage", data); + return promise.then((data) => exports.MsgSendMessageResponse.decode(minimal_1.default.Reader.create(data))); + } + SendMessageWithCaller(request) { + const data = exports.MsgSendMessageWithCaller.encode(request).finish(); + const promise = this.rpc.request(this.service, "SendMessageWithCaller", data); + return promise.then((data) => exports.MsgSendMessageWithCallerResponse.decode(minimal_1.default.Reader.create(data))); + } + UnlinkTokenPair(request) { + const data = exports.MsgUnlinkTokenPair.encode(request).finish(); + const promise = this.rpc.request(this.service, "UnlinkTokenPair", data); + return promise.then((data) => exports.MsgUnlinkTokenPairResponse.decode(minimal_1.default.Reader.create(data))); + } + UnpauseBurningAndMinting(request) { + const data = exports.MsgUnpauseBurningAndMinting.encode(request).finish(); + const promise = this.rpc.request(this.service, "UnpauseBurningAndMinting", data); + return promise.then((data) => exports.MsgUnpauseBurningAndMintingResponse.decode(minimal_1.default.Reader.create(data))); + } + UnpauseSendingAndReceivingMessages(request) { + const data = exports.MsgUnpauseSendingAndReceivingMessages.encode(request).finish(); + const promise = this.rpc.request(this.service, "UnpauseSendingAndReceivingMessages", data); + return promise.then((data) => exports.MsgUnpauseSendingAndReceivingMessagesResponse.decode(minimal_1.default.Reader.create(data))); + } + UpdateOwner(request) { + const data = exports.MsgUpdateOwner.encode(request).finish(); + const promise = this.rpc.request(this.service, "UpdateOwner", data); + return promise.then((data) => exports.MsgUpdateOwnerResponse.decode(minimal_1.default.Reader.create(data))); + } + UpdateAttesterManager(request) { + const data = exports.MsgUpdateAttesterManager.encode(request).finish(); + const promise = this.rpc.request(this.service, "UpdateAttesterManager", data); + return promise.then((data) => exports.MsgUpdateAttesterManagerResponse.decode(minimal_1.default.Reader.create(data))); + } + UpdateTokenController(request) { + const data = exports.MsgUpdateTokenController.encode(request).finish(); + const promise = this.rpc.request(this.service, "UpdateTokenController", data); + return promise.then((data) => exports.MsgUpdateTokenControllerResponse.decode(minimal_1.default.Reader.create(data))); + } + UpdatePauser(request) { + const data = exports.MsgUpdatePauser.encode(request).finish(); + const promise = this.rpc.request(this.service, "UpdatePauser", data); + return promise.then((data) => exports.MsgUpdatePauserResponse.decode(minimal_1.default.Reader.create(data))); + } + UpdateMaxMessageBodySize(request) { + const data = exports.MsgUpdateMaxMessageBodySize.encode(request).finish(); + const promise = this.rpc.request(this.service, "UpdateMaxMessageBodySize", data); + return promise.then((data) => exports.MsgUpdateMaxMessageBodySizeResponse.decode(minimal_1.default.Reader.create(data))); + } + SetMaxBurnAmountPerMessage(request) { + const data = exports.MsgSetMaxBurnAmountPerMessage.encode(request).finish(); + const promise = this.rpc.request(this.service, "SetMaxBurnAmountPerMessage", data); + return promise.then((data) => exports.MsgSetMaxBurnAmountPerMessageResponse.decode(minimal_1.default.Reader.create(data))); + } + UpdateSignatureThreshold(request) { + const data = exports.MsgUpdateSignatureThreshold.encode(request).finish(); + const promise = this.rpc.request(this.service, "UpdateSignatureThreshold", data); + return promise.then((data) => exports.MsgUpdateSignatureThresholdResponse.decode(minimal_1.default.Reader.create(data))); + } +} +exports.MsgClientImpl = MsgClientImpl; +const gt = (() => { + if (typeof globalThis !== "undefined") { + return globalThis; + } + if (typeof self !== "undefined") { + return self; + } + if (typeof window !== "undefined") { + return window; + } + if (typeof __webpack_require__.g !== "undefined") { + return __webpack_require__.g; + } + throw "Unable to locate global object"; +})(); +function bytesFromBase64(b64) { + if (gt.Buffer) { + return Uint8Array.from(gt.Buffer.from(b64, "base64")); + } + else { + const bin = gt.atob(b64); + const arr = new Uint8Array(bin.length); + for (let i = 0; i < bin.length; ++i) { + arr[i] = bin.charCodeAt(i); + } + return arr; + } +} +function base64FromBytes(arr) { + if (gt.Buffer) { + return gt.Buffer.from(arr).toString("base64"); + } + else { + const bin = []; + arr.forEach((byte) => { + bin.push(gt.String.fromCharCode(byte)); + }); + return gt.btoa(bin.join("")); + } +} +if (minimal_1.default.util.Long !== long_1.default) { + minimal_1.default.util.Long = long_1.default; + minimal_1.default.configure(); +} +function isSet(value) { + return value !== null && value !== undefined; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2N0cFByb3RvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NsaWVudHMvbGliL2NjdHBQcm90by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLGdEQUF3QjtBQUN4QixpRUFBcUM7QUFFeEIsUUFBQSxlQUFlLEdBQUcsZ0JBQWdCLENBQUM7QUFvUGhELFNBQVMsd0JBQXdCO0lBQy9CLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUNwQyxDQUFDO0FBRVksUUFBQSxjQUFjLEdBQUc7SUFDNUIsTUFBTSxDQUFDLE9BQXVCLEVBQUUsU0FBcUIsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ3RFLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUU7WUFDdkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLEVBQUUsRUFBRTtZQUMzQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDNUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksaUJBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1B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 + +/***/ }), + +/***/ "./src/clients/lib/errors.ts": +/*!***********************************!*\ + !*** ./src/clients/lib/errors.ts ***! + \***********************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.WrappedError = exports.CustomError = exports.UserError = exports.BroadcastErrorObject = exports.UnexpectedClientError = void 0; +/** + * An edge-case was hit in the client that should never have been reached. + */ +class UnexpectedClientError extends Error { + constructor() { + super('An unexpected error occurred on the client'); + this.name = 'UnexpectedClientError'; + } +} +exports.UnexpectedClientError = UnexpectedClientError; +/** + * An error occurred during the broadcasting process. + */ +class BroadcastErrorObject extends Error { + constructor(message, result) { + super(message); + this.name = 'BroadcastError'; + this.result = result; + this.code = result.code; + this.codespace = result.codespace; + } +} +exports.BroadcastErrorObject = BroadcastErrorObject; +/** + * User error occurred during a client operation. + */ +class UserError extends Error { + constructor(message) { + super(message); + this.name = 'UserError'; + } +} +exports.UserError = UserError; +/** + * @description Base class for custom errors. + */ +class CustomError extends Error { + constructor(message) { + super(message); + // Set a more specific name. This will show up in e.g. console.log. + this.name = this.constructor.toString(); + } +} +exports.CustomError = CustomError; +/** + * @description Base class for a custom error which wraps another error. + */ +class WrappedError extends CustomError { + constructor(message, originalError) { + super(message); + this.originalError = originalError; + } +} +exports.WrappedError = WrappedError; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NsaWVudHMvbGliL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQTs7R0FFRztBQUNILE1BQWEscUJBQXNCLFNBQVEsS0FBSztJQUM5QztRQUVFLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxJQUFJLEdBQUcsdUJBQXVCLENBQUM7SUFDdEMsQ0FBQztDQUNGO0FBTkQsc0RBTUM7QUFFRDs7R0FFRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsS0FBSztJQUs3QyxZQUNFLE9BQWUsRUFDZixNQUErQjtRQUUvQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBZkQsb0RBZUM7QUFFRDs7R0FFRztBQUNILE1BQWEsU0FBVSxTQUFRLEtBQUs7SUFDbEMsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDO0lBQzFCLENBQUM7Q0FDRjtBQUxELDhCQUtDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLFdBQVksU0FBUSxLQUFLO0lBQ3BDLFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixtRUFBbUU7UUFDbkUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFDLENBQUM7Q0FDRjtBQU5ELGtDQU1DO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLFlBQWEsU0FBUSxXQUFXO0lBR3pDLFlBQ0UsT0FBZSxFQUNmLGFBQW9CO1FBRXBCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQ3JDLENBQUM7Q0FDSjtBQVZELG9DQVVDIn0= + +/***/ }), + +/***/ "./src/clients/lib/registry.ts": +/*!*************************************!*\ + !*** ./src/clients/lib/registry.ts ***! + \*************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.generateRegistry = exports.registry = void 0; +const proto_signing_1 = __webpack_require__(/*! @cosmjs/proto-signing */ "./node_modules/@cosmjs/proto-signing/build/index.js"); +const stargate_1 = __webpack_require__(/*! @cosmjs/stargate */ "./node_modules/@cosmjs/stargate/build/index.js"); +const tx_1 = __webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/tx */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/tx.ts"); +const tx_2 = __webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/tx */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/tx.ts"); +const tx_3 = __webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/tx */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/tx.ts"); +const tx_4 = __webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/tx */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/tx.ts"); +const transfer_1 = __webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/transfer */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/transfer.ts"); +const tx_5 = __webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/tx */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/tx.ts"); +const constants_1 = __webpack_require__(/*! ../constants */ "./src/clients/constants.ts"); +exports.registry = []; +function generateRegistry() { + return new proto_signing_1.Registry([ + // clob + [constants_1.TYPE_URL_MSG_PLACE_ORDER, tx_1.MsgPlaceOrder], + [constants_1.TYPE_URL_MSG_CANCEL_ORDER, tx_1.MsgCancelOrder], + [constants_1.TYPE_URL_MSG_CREATE_CLOB_PAIR, tx_1.MsgCreateClobPair], + [constants_1.TYPE_URL_MSG_UPDATE_CLOB_PAIR, tx_1.MsgUpdateClobPair], + // delaymsg + [constants_1.TYPE_URL_MSG_DELAY_MESSAGE, tx_2.MsgDelayMessage], + // perpetuals + [constants_1.TYPE_URL_MSG_CREATE_PERPETUAL, tx_3.MsgCreatePerpetual], + // prices + [constants_1.TYPE_URL_MSG_CREATE_ORACLE_MARKET, tx_4.MsgCreateOracleMarket], + // sending + [constants_1.TYPE_URL_MSG_CREATE_TRANSFER, tx_5.MsgCreateTransfer], + [constants_1.TYPE_URL_MSG_WITHDRAW_FROM_SUBACCOUNT, transfer_1.MsgWithdrawFromSubaccount], + [constants_1.TYPE_URL_MSG_DEPOSIT_TO_SUBACCOUNT, transfer_1.MsgDepositToSubaccount], + // default types + ...stargate_1.defaultRegistryTypes, + ]); +} +exports.generateRegistry = generateRegistry; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50cy9saWIvcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseURBQWdFO0FBQ2hFLCtDQUF3RDtBQUN4RCxnRkFLaUU7QUFDakUsb0ZBQThGO0FBQzlGLHNGQUFtRztBQUNuRyxrRkFBa0c7QUFDbEcsK0ZBRzBFO0FBQzFFLG1GQUErRjtBQUUvRiw0Q0FXc0I7QUFFVCxRQUFBLFFBQVEsR0FBMkMsRUFBRSxDQUFDO0FBQ25FLFNBQWdCLGdCQUFnQjtJQUM5QixPQUFPLElBQUksd0JBQVEsQ0FBQztRQUNsQixPQUFPO1FBQ1AsQ0FBQyxvQ0FBd0IsRUFBRSxrQkFBOEIsQ0FBQztRQUMxRCxDQUFDLHFDQUF5QixFQUFFLG1CQUErQixDQUFDO1FBQzVELENBQUMseUNBQTZCLEVBQUUsc0JBQWtDLENBQUM7UUFDbkUsQ0FBQyx5Q0FBNkIsRUFBRSxzQkFBa0MsQ0FBQztRQUVuRSxXQUFXO1FBQ1gsQ0FBQyxzQ0FBMEIsRUFBRSxvQkFBZ0MsQ0FBQztRQUU5RCxhQUFhO1FBQ2IsQ0FBQyx5Q0FBNkIsRUFBRSx1QkFBbUMsQ0FBQztRQUVwRSxTQUFTO1FBQ1QsQ0FBQyw2Q0FBaUMsRUFBRSwwQkFBc0MsQ0FBQztRQUUzRSxVQUFVO1FBQ1YsQ0FBQyx3Q0FBNEIsRUFBRSxzQkFBa0MsQ0FBQztRQUNsRSxDQUFDLGlEQUFxQyxFQUFFLG9DQUEwQyxDQUFDO1FBQ25GLENBQUMsOENBQWtDLEVBQUUsaUNBQXVDLENBQUM7UUFFN0UsZ0JBQWdCO1FBQ2hCLEdBQUcsK0JBQW9CO0tBQ3hCLENBQUMsQ0FBQztBQUNMLENBQUM7QUF6QkQsNENBeUJDIn0= + +/***/ }), + +/***/ "./src/clients/modules/account.ts": +/*!****************************************!*\ + !*** ./src/clients/modules/account.ts ***! + \****************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const constants_1 = __webpack_require__(/*! ../constants */ "./src/clients/constants.ts"); +const rest_1 = __importDefault(__webpack_require__(/*! ./rest */ "./src/clients/modules/rest.ts")); +/** + * @description REST endpoints for data related to a particular address. + */ +class AccountClient extends rest_1.default { + async getSubaccounts(address, limit) { + const uri = `/v4/addresses/${address}`; + return this.get(uri, { limit }); + } + async getSubaccount(address, subaccountNumber) { + const uri = `/v4/addresses/${address}/subaccountNumber/${subaccountNumber}`; + return this.get(uri); + } + async getSubaccountPerpetualPositions(address, subaccountNumber, status, limit, createdBeforeOrAtHeight, createdBeforeOrAt) { + const uri = '/v4/perpetualPositions'; + return this.get(uri, { + address, + subaccountNumber, + status, + limit, + createdBeforeOrAtHeight, + createdBeforeOrAt, + }); + } + async getSubaccountAssetPositions(address, subaccountNumber, status, limit, createdBeforeOrAtHeight, createdBeforeOrAt) { + const uri = '/v4/assetPositions'; + return this.get(uri, { + address, + subaccountNumber, + status, + limit, + createdBeforeOrAtHeight, + createdBeforeOrAt, + }); + } + async getSubaccountTransfers(address, subaccountNumber, limit, createdBeforeOrAtHeight, createdBeforeOrAt) { + const uri = '/v4/transfers'; + return this.get(uri, { + address, + subaccountNumber, + limit, + createdBeforeOrAtHeight, + createdBeforeOrAt, + }); + } + async getSubaccountOrders(address, subaccountNumber, ticker, tickerType = constants_1.TickerType.PERPETUAL, side, status, type, limit, goodTilBlockBeforeOrAt, goodTilBlockTimeBeforeOrAt, returnLatestOrders) { + const uri = '/v4/orders'; + return this.get(uri, { + address, + subaccountNumber, + ticker, + tickerType, + side, + status, + type, + limit, + goodTilBlockBeforeOrAt, + goodTilBlockTimeBeforeOrAt, + returnLatestOrders, + }); + } + async getOrder(orderId) { + const uri = `/v4/orders${orderId}`; + return this.get(uri); + } + async getSubaccountFills(address, subaccountNumber, ticker, tickerType = constants_1.TickerType.PERPETUAL, limit, createdBeforeOrAtHeight, createdBeforeOrAt) { + const uri = '/v4/fills'; + return this.get(uri, { + address, + subaccountNumber, + ticker, + tickerType, + limit, + createdBeforeOrAtHeight, + createdBeforeOrAt, + }); + } + async getSubaccountHistoricalPNLs(address, subaccountNumber, effectiveBeforeOrAt, effectiveAtOrAfter) { + const uri = '/v4/historical-pnl'; + return this.get(uri, { + address, + subaccountNumber, + effectiveBeforeOrAt, + effectiveAtOrAfter, + }); + } +} +exports["default"] = AccountClient; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL21vZHVsZXMvYWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUVzQjtBQUV0QixrREFBZ0M7QUFFaEM7O0dBRUc7QUFDSCxNQUFxQixhQUFjLFNBQVEsY0FBVTtJQUNuRCxLQUFLLENBQUMsY0FBYyxDQUNsQixPQUFlLEVBQ2YsS0FBYztRQUVkLE1BQU0sR0FBRyxHQUFHLGlCQUFpQixPQUFPLEVBQUUsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FDakIsT0FBZSxFQUNmLGdCQUF3QjtRQUV4QixNQUFNLEdBQUcsR0FBRyxpQkFBaUIsT0FBTyxxQkFBcUIsZ0JBQWdCLEVBQUUsQ0FBQztRQUM1RSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQywrQkFBK0IsQ0FDbkMsT0FBZSxFQUNmLGdCQUF3QixFQUN4QixNQUE4QixFQUM5QixLQUFxQixFQUNyQix1QkFBdUMsRUFDdkMsaUJBQWlDO1FBRWpDLE1BQU0sR0FBRyxHQUFHLHdCQUF3QixDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsT0FBTztZQUNQLGdCQUFnQjtZQUNoQixNQUFNO1lBQ04sS0FBSztZQUNMLHVCQUF1QjtZQUN2QixpQkFBaUI7U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQywyQkFBMkIsQ0FDL0IsT0FBZSxFQUNmLGdCQUF3QixFQUN4QixNQUE4QixFQUM5QixLQUFxQixFQUNyQix1QkFBdUMsRUFDdkMsaUJBQWlDO1FBRWpDLE1BQU0sR0FBRyxHQUFHLG9CQUFvQixDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsT0FBTztZQUNQLGdCQUFnQjtZQUNoQixNQUFNO1lBQ04sS0FBSztZQUNMLHVCQUF1QjtZQUN2QixpQkFBaUI7U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxzQkFBc0IsQ0FDMUIsT0FBZSxFQUNmLGdCQUF3QixFQUN4QixLQUFxQixFQUNyQix1QkFBdUMsRUFDdkMsaUJBQWlDO1FBRWpDLE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ25CLE9BQU87WUFDUCxnQkFBZ0I7WUFDaEIsS0FBSztZQUNMLHVCQUF1QjtZQUN2QixpQkFBaUI7U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxtQkFBbUIsQ0FDdkIsT0FBZSxFQUNmLGdCQUF3QixFQUN4QixNQUFzQixFQUN0QixhQUF5QixzQkFBVSxDQUFDLFNBQVMsRUFDN0MsSUFBdUIsRUFDdkIsTUFBMkIsRUFDM0IsSUFBdUIsRUFDdkIsS0FBcUIsRUFDckIsc0JBQXNDLEVBQ3RDLDBCQUEwQyxFQUMxQyxrQkFBbUM7UUFFbkMsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsT0FBTztZQUNQLGdCQUFnQjtZQUNoQixNQUFNO1lBQ04sVUFBVTtZQUNWLElBQUk7WUFDSixNQUFNO1lBQ04sSUFBSTtZQUNKLEtBQUs7WUFDTCxzQkFBc0I7WUFDdEIsMEJBQTBCO1lBQzFCLGtCQUFrQjtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFlO1FBQzVCLE1BQU0sR0FBRyxHQUFHLGFBQWEsT0FBTyxFQUFFLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxLQUFLLENBQUMsa0JBQWtCLENBQ3RCLE9BQWUsRUFDZixnQkFBd0IsRUFDeEIsTUFBc0IsRUFDdEIsYUFBeUIsc0JBQVUsQ0FBQyxTQUFTLEVBQzdDLEtBQXFCLEVBQ3JCLHVCQUF1QyxFQUN2QyxpQkFBaUM7UUFFakMsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsT0FBTztZQUNQLGdCQUFnQjtZQUNoQixNQUFNO1lBQ04sVUFBVTtZQUNWLEtBQUs7WUFDTCx1QkFBdUI7WUFDdkIsaUJBQWlCO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsMkJBQTJCLENBQy9CLE9BQWUsRUFDZixnQkFBd0IsRUFDeEIsbUJBQW1DLEVBQ25DLGtCQUFrQztRQUVsQyxNQUFNLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ25CLE9BQU87WUFDUCxnQkFBZ0I7WUFDaEIsbUJBQW1CO1lBQ25CLGtCQUFrQjtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUE3SUQsZ0NBNklDIn0= + +/***/ }), + +/***/ "./src/clients/modules/composer.ts": +/*!*****************************************!*\ + !*** ./src/clients/modules/composer.ts ***! + \*****************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Composer = void 0; +const clob_pair_1 = __webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/clob_pair */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/clob_pair.ts"); +const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); +const protobufjs_1 = __importDefault(__webpack_require__(/*! protobufjs */ "./node_modules/protobufjs/index.js")); +const constants_1 = __webpack_require__(/*! ../constants */ "./src/clients/constants.ts"); +const proto_includes_1 = __webpack_require__(/*! ./proto-includes */ "./src/clients/modules/proto-includes.ts"); +protobufjs_1.default.util.Long = long_1.default; +protobufjs_1.default.configure(); +class Composer { + // ------------ x/clob ------------ + composeMsgPlaceOrder(address, subaccountNumber, clientId, clobPairId, orderFlags, goodTilBlock, goodTilBlockTime, side, quantums, subticks, timeInForce, reduceOnly, clientMetadata, conditionType = proto_includes_1.Order_ConditionType.CONDITION_TYPE_UNSPECIFIED, conditionalOrderTriggerSubticks = long_1.default.fromInt(0)) { + this.validateGoodTilBlockAndTime(orderFlags, goodTilBlock, goodTilBlockTime); + const subaccountId = { + owner: address, + number: subaccountNumber, + }; + const orderId = { + subaccountId, + clientId, + orderFlags, + clobPairId, + }; + const order = { + orderId, + side, + quantums, + subticks, + goodTilBlock: goodTilBlock === 0 ? undefined : goodTilBlock, + goodTilBlockTime: goodTilBlock === 0 ? goodTilBlockTime : undefined, + timeInForce, + reduceOnly, + clientMetadata: clientMetadata !== null && clientMetadata !== void 0 ? clientMetadata : 0, + conditionType, + conditionalOrderTriggerSubticks, + }; + const msg = { + order, + }; + return { + typeUrl: constants_1.TYPE_URL_MSG_PLACE_ORDER, + value: msg, + }; + } + composeMsgCancelOrder(address, subaccountNumber, clientId, clobPairId, orderFlags, goodTilBlock, goodTilBlockTime) { + this.validateGoodTilBlockAndTime(orderFlags, goodTilBlock, goodTilBlockTime); + const subaccountId = { + owner: address, + number: subaccountNumber, + }; + const orderId = { + subaccountId, + clientId, + orderFlags, + clobPairId, + }; + const msg = { + orderId, + goodTilBlock: goodTilBlock === 0 ? undefined : goodTilBlock, + goodTilBlockTime: goodTilBlock === 0 ? goodTilBlockTime : undefined, + }; + return { + typeUrl: constants_1.TYPE_URL_MSG_CANCEL_ORDER, + value: msg, + }; + } + composeMsgCreateClobPair(clobId, perpetualId, quantumConversionExponent, stepBaseQuantums, subticksPerTick) { + const msg = { + // uses x/gov module account since creating the clob pair is a governance action. + authority: constants_1.GOV_MODULE_ADDRESS, + clobPair: { + id: clobId, + perpetualClobMetadata: { + perpetualId, + }, + quantumConversionExponent, + stepBaseQuantums, + subticksPerTick, + status: clob_pair_1.ClobPair_Status.STATUS_INITIALIZING, + }, + }; + return { + typeUrl: constants_1.TYPE_URL_MSG_CREATE_CLOB_PAIR, + value: msg, + }; + } + composeMsgUpdateClobPair(clobId, perpetualId, quantumConversionExponent, stepBaseQuantums, subticksPerTick) { + const msg = { + // uses x/delaymsg module account since updating the clob pair is a delayedmsg action. + authority: constants_1.DELAYMSG_MODULE_ADDRESS, + clobPair: { + id: clobId, + perpetualClobMetadata: { + perpetualId, + }, + quantumConversionExponent, + stepBaseQuantums, + subticksPerTick, + status: clob_pair_1.ClobPair_Status.STATUS_ACTIVE, + }, + }; + return { + typeUrl: constants_1.TYPE_URL_MSG_UPDATE_CLOB_PAIR, + value: msg, + }; + } + // ------------ x/sending ------------ + composeMsgTransfer(address, subaccountNumber, recipientAddress, recipientSubaccountNumber, assetId, amount) { + const sender = { + owner: address, + number: subaccountNumber, + }; + const recipient = { + owner: recipientAddress, + number: recipientSubaccountNumber, + }; + const transfer = { + sender, + recipient, + assetId, + amount, + }; + const msg = { + transfer, + }; + return { + typeUrl: constants_1.TYPE_URL_MSG_CREATE_TRANSFER, + value: msg, + }; + } + composeMsgDepositToSubaccount(address, subaccountNumber, assetId, quantums) { + const recipient = { + owner: address, + number: subaccountNumber, + }; + const msg = { + sender: address, + recipient, + assetId, + quantums, + }; + return { + typeUrl: constants_1.TYPE_URL_MSG_DEPOSIT_TO_SUBACCOUNT, + value: msg, + }; + } + composeMsgWithdrawFromSubaccount(address, subaccountNumber, assetId, quantums, recipient = address) { + const sender = { + owner: address, + number: subaccountNumber, + }; + const msg = { + sender, + recipient, + assetId, + quantums, + }; + return { + typeUrl: constants_1.TYPE_URL_MSG_WITHDRAW_FROM_SUBACCOUNT, + value: msg, + }; + } + // ------------ x/bank ------------ + composeMsgSendToken(address, recipient, coinDenom, quantums) { + const coin = { + denom: coinDenom, + amount: quantums, + }; + const msg = { + fromAddress: address, + toAddress: recipient, + amount: [coin], + }; + return { + typeUrl: constants_1.TYPE_URL_MSG_SEND, + value: msg, + }; + } + // ------------ x/prices ------------ + composeMsgCreateOracleMarket(marketId, pair, exponent, minExchanges, minPriceChangePpm, exchangeConfigJson) { + const msg = { + // uses x/gov module account since creating the oracle market is a governance action. + authority: constants_1.GOV_MODULE_ADDRESS, + params: { + id: marketId, + pair, + exponent, + minExchanges, + minPriceChangePpm, + exchangeConfigJson, + }, + }; + return { + typeUrl: constants_1.TYPE_URL_MSG_CREATE_ORACLE_MARKET, + value: msg, + }; + } + // ------------ x/perpetuals ------------ + composeMsgCreatePerpetual(perpetualId, marketId, ticker, atomicResolution, liquidityTier) { + const msg = { + // uses x/gov module account since creating the perpetual is a governance action. + authority: constants_1.GOV_MODULE_ADDRESS, + params: { + id: perpetualId, + marketId, + ticker, + atomicResolution, + defaultFundingPpm: 0, + liquidityTier, + }, + }; + return { + typeUrl: constants_1.TYPE_URL_MSG_CREATE_PERPETUAL, + value: msg, + }; + } + // ------------ x/delaymsg ------------ + composeMsgDelayMessage(embeddedMsg, delayBlocks) { + const msg = { + // all msgs sent to x/delay must be from x/gov module account. + authority: constants_1.GOV_MODULE_ADDRESS, + msg: embeddedMsg, + delayBlocks, + }; + return { + typeUrl: constants_1.TYPE_URL_MSG_DELAY_MESSAGE, + value: msg, + }; + } + // ------------ x/gov ------------ + composeMsgSubmitProposal(title, initialDepositAmount, initialDepositDenomConfig, summary, messages, proposer, metadata = '', expedited = false) { + const initialDeposit = [{ + amount: initialDepositAmount, + denom: initialDepositDenomConfig.CHAINTOKEN_DENOM, + }]; + const msg = { + title, + initialDeposit, + summary, + messages, + proposer, + metadata, + expedited, + }; + return { + typeUrl: constants_1.TYPE_URL_MSG_SUBMIT_PROPOSAL, + value: msg, + }; + } + // ------------ util ------------ + validateGoodTilBlockAndTime(orderFlags, goodTilBlock, goodTilBlockTime) { + if (orderFlags === 0 && goodTilBlock === 0) { + throw new Error('goodTilBlock must be set if orderFlags is 0'); + } + else if (orderFlags !== 0 && goodTilBlockTime === 0) { + throw new Error('goodTilBlockTime must be set if orderFlags is not 0'); + } + } + wrapMessageAsAny(registry, message) { + return registry.encodeAsAny(message); + } + wrapMessageArrAsAny(registry, messages) { + const encodedMessages = messages.map((message) => this.wrapMessageAsAny(registry, message)); + return encodedMessages; + } +} +exports.Composer = Composer; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50cy9tb2R1bGVzL2NvbXBvc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUlBLDhGQUV3RTtBQVd4RSxnREFBd0I7QUFDeEIsNERBQWtDO0FBRWxDLDRDQWVzQjtBQUV0QixxREFhMEI7QUFFMUIsb0JBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLGNBQUksQ0FBQztBQUMxQixvQkFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBRXJCLE1BQWEsUUFBUTtJQUVuQixtQ0FBbUM7SUFDNUIsb0JBQW9CLENBQ3pCLE9BQWUsRUFDZixnQkFBd0IsRUFDeEIsUUFBZ0IsRUFDaEIsVUFBa0IsRUFDbEIsVUFBa0IsRUFDbEIsWUFBb0IsRUFDcEIsZ0JBQXdCLEVBQ3hCLElBQWdCLEVBQ2hCLFFBQWMsRUFDZCxRQUFjLEVBQ2QsV0FBOEIsRUFDOUIsVUFBbUIsRUFDbkIsY0FBc0IsRUFDdEIsZ0JBQXFDLG9DQUFtQixDQUFDLDBCQUEwQixFQUNuRixrQ0FBd0MsY0FBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFdkQsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUU3RSxNQUFNLFlBQVksR0FBaUI7WUFDakMsS0FBSyxFQUFFLE9BQU87WUFDZCxNQUFNLEVBQUUsZ0JBQWdCO1NBQ3pCLENBQUM7UUFFRixNQUFNLE9BQU8sR0FBWTtZQUN2QixZQUFZO1lBQ1osUUFBUTtZQUNSLFVBQVU7WUFDVixVQUFVO1NBQ1gsQ0FBQztRQUNGLE1BQU0sS0FBSyxHQUFVO1lBQ25CLE9BQU87WUFDUCxJQUFJO1lBQ0osUUFBUTtZQUNSLFFBQVE7WUFDUixZQUFZLEVBQUUsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxZQUFZO1lBQzNELGdCQUFnQixFQUFFLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQ25FLFdBQVc7WUFDWCxVQUFVO1lBQ1YsY0FBYyxFQUFFLGNBQWMsYUFBZCxjQUFjLGNBQWQsY0FBYyxHQUFJLENBQUM7WUFDbkMsYUFBYTtZQUNiLCtCQUErQjtTQUNoQyxDQUFDO1FBQ0YsTUFBTSxHQUFHLEdBQWtCO1lBQ3pCLEtBQUs7U0FDTixDQUFDO1FBQ0YsT0FBTztZQUNMLE9BQU8sRUFBRSxvQ0FBd0I7WUFDakMsS0FBSyxFQUFFLEdBQUc7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVNLHFCQUFxQixDQUMxQixPQUFlLEVBQ2YsZ0JBQXdCLEVBQ3hCLFFBQWdCLEVBQ2hCLFVBQWtCLEVBQ2xCLFVBQWtCLEVBQ2xCLFlBQW9CLEVBQ3BCLGdCQUF3QjtRQUV4QixJQUFJLENBQUMsMkJBQTJCLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTdFLE1BQU0sWUFBWSxHQUFpQjtZQUNqQyxLQUFLLEVBQUUsT0FBTztZQUNkLE1BQU0sRUFBRSxnQkFBZ0I7U0FDekIsQ0FBQztRQUVGLE1BQU0sT0FBTyxHQUFZO1lBQ3ZCLFlBQVk7WUFDWixRQUFRO1lBQ1IsVUFBVTtZQUNWLFVBQVU7U0FDWCxDQUFDO1FBRUYsTUFBTSxHQUFHLEdBQW1CO1lBQzFCLE9BQU87WUFDUCxZQUFZLEVBQUUsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxZQUFZO1lBQzNELGdCQUFnQixFQUFFLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQ3BFLENBQUM7UUFFRixPQUFPO1lBQ0wsT0FBTyxFQUFFLHFDQUF5QjtZQUNsQyxLQUFLLEVBQUUsR0FBRztTQUNYLENBQUM7SUFDSixDQUFDO0lBRU0sd0JBQXdCLENBQzdCLE1BQWMsRUFDZCxXQUFtQixFQUNuQix5QkFBaUMsRUFDakMsZ0JBQXNCLEVBQ3RCLGVBQXVCO1FBRXZCLE1BQU0sR0FBRyxHQUFzQjtZQUM3QixpRkFBaUY7WUFDakYsU0FBUyxFQUFFLDhCQUFrQjtZQUM3QixRQUFRLEVBQUU7Z0JBQ1IsRUFBRSxFQUFFLE1BQU07Z0JBQ1YscUJBQXFCLEVBQUU7b0JBQ3JCLFdBQVc7aUJBQ1o7Z0JBQ0QseUJBQXlCO2dCQUN6QixnQkFBZ0I7Z0JBQ2hCLGVBQWU7Z0JBQ2YsTUFBTSxFQUFFLDJCQUFlLENBQUMsbUJBQW1CO2FBQzVDO1NBQ0YsQ0FBQztRQUVGLE9BQU87WUFDTCxPQUFPLEVBQUUseUNBQTZCO1lBQ3RDLEtBQUssRUFBRSxHQUFHO1NBQ1gsQ0FBQztJQUNKLENBQUM7SUFFTSx3QkFBd0IsQ0FDN0IsTUFBYyxFQUNkLFdBQW1CLEVBQ25CLHlCQUFpQyxFQUNqQyxnQkFBc0IsRUFDdEIsZUFBdUI7UUFFdkIsTUFBTSxHQUFHLEdBQXNCO1lBQzdCLHNGQUFzRjtZQUN0RixTQUFTLEVBQUUsbUNBQXVCO1lBQ2xDLFFBQVEsRUFBRTtnQkFDUixFQUFFLEVBQUUsTUFBTTtnQkFDVixxQkFBcUIsRUFBRTtvQkFDckIsV0FBVztpQkFDWjtnQkFDRCx5QkFBeUI7Z0JBQ3pCLGdCQUFnQjtnQkFDaEIsZUFBZTtnQkFDZixNQUFNLEVBQUUsMkJBQWUsQ0FBQyxhQUFhO2FBQ3RDO1NBQ0YsQ0FBQztRQUVGLE9BQU87WUFDTCxPQUFPLEVBQUUseUNBQTZCO1lBQ3RDLEtBQUssRUFBRSxHQUFHO1NBQ1gsQ0FBQztJQUNKLENBQUM7SUFFRCxzQ0FBc0M7SUFDL0Isa0JBQWtCLENBQ3ZCLE9BQWUsRUFDZixnQkFBd0IsRUFDeEIsZ0JBQXdCLEVBQ3hCLHlCQUFpQyxFQUNqQyxPQUFlLEVBQ2YsTUFBWTtRQUVaLE1BQU0sTUFBTSxHQUFpQjtZQUMzQixLQUFLLEVBQUUsT0FBTztZQUNkLE1BQU0sRUFBRSxnQkFBZ0I7U0FDekIsQ0FBQztRQUNGLE1BQU0sU0FBUyxHQUFpQjtZQUM5QixLQUFLLEVBQUUsZ0JBQWdCO1lBQ3ZCLE1BQU0sRUFBRSx5QkFBeUI7U0FDbEMsQ0FBQztRQUVGLE1BQU0sUUFBUSxHQUFhO1lBQ3pCLE1BQU07WUFDTixTQUFTO1lBQ1QsT0FBTztZQUNQLE1BQU07U0FDUCxDQUFDO1FBRUYsTUFBTSxHQUFHLEdBQXNCO1lBQzdCLFFBQVE7U0FDVCxDQUFDO1FBRUYsT0FBTztZQUNMLE9BQU8sRUFBRSx3Q0FBNEI7WUFDckMsS0FBSyxFQUFFLEdBQUc7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVNLDZCQUE2QixDQUNsQyxPQUFlLEVBQ2YsZ0JBQXdCLEVBQ3hCLE9BQWUsRUFDZixRQUFjO1FBRWQsTUFBTSxTQUFTLEdBQWlCO1lBQzlCLEtBQUssRUFBRSxPQUFPO1lBQ2QsTUFBTSxFQUFFLGdCQUFnQjtTQUN6QixDQUFDO1FBRUYsTUFBTSxHQUFHLEdBQTJCO1lBQ2xDLE1BQU0sRUFBRSxPQUFPO1lBQ2YsU0FBUztZQUNULE9BQU87WUFDUCxRQUFRO1NBQ1QsQ0FBQztRQUVGLE9BQU87WUFDTCxPQUFPLEVBQUUsOENBQWtDO1lBQzNDLEtBQUssRUFBRSxHQUFHO1NBQ1gsQ0FBQztJQUNKLENBQUM7SUFFTSxnQ0FBZ0MsQ0FDckMsT0FBZSxFQUNmLGdCQUF3QixFQUN4QixPQUFlLEVBQ2YsUUFBYyxFQUNkLFlBQW9CLE9BQU87UUFFM0IsTUFBTSxNQUFNLEdBQWlCO1lBQzNCLEtBQUssRUFBRSxPQUFPO1lBQ2QsTUFBTSxFQUFFLGdCQUFnQjtTQUN6QixDQUFDO1FBRUYsTUFBTSxHQUFHLEdBQThCO1lBQ3JDLE1BQU07WUFDTixTQUFTO1lBQ1QsT0FBTztZQUNQLFFBQVE7U0FDVCxDQUFDO1FBRUYsT0FBTztZQUNMLE9BQU8sRUFBRSxpREFBcUM7WUFDOUMsS0FBSyxFQUFFLEdBQUc7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVELG1DQUFtQztJQUM1QixtQkFBbUIsQ0FDeEIsT0FBZSxFQUNmLFNBQWlCLEVBQ2pCLFNBQWlCLEVBQ2pCLFFBQWdCO1FBRWhCLE1BQU0sSUFBSSxHQUFTO1lBQ2pCLEtBQUssRUFBRSxTQUFTO1lBQ2hCLE1BQU0sRUFBRSxRQUFRO1NBQ2pCLENBQUM7UUFFRixNQUFNLEdBQUcsR0FBWTtZQUNuQixXQUFXLEVBQUUsT0FBTztZQUNwQixTQUFTLEVBQUUsU0FBUztZQUNwQixNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUM7U0FDZixDQUFDO1FBRUYsT0FBTztZQUNMLE9BQU8sRUFBRSw2QkFBaUI7WUFDMUIsS0FBSyxFQUFFLEdBQUc7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVELHFDQUFxQztJQUM5Qiw0QkFBNEIsQ0FDakMsUUFBZ0IsRUFDaEIsSUFBWSxFQUNaLFFBQWdCLEVBQ2hCLFlBQW9CLEVBQ3BCLGlCQUF5QixFQUN6QixrQkFBMEI7UUFFMUIsTUFBTSxHQUFHLEdBQTBCO1lBQ2pDLHFGQUFxRjtZQUNyRixTQUFTLEVBQUUsOEJBQWtCO1lBQzdCLE1BQU0sRUFBRTtnQkFDTixFQUFFLEVBQUUsUUFBUTtnQkFDWixJQUFJO2dCQUNKLFFBQVE7Z0JBQ1IsWUFBWTtnQkFDWixpQkFBaUI7Z0JBQ2pCLGtCQUFrQjthQUNuQjtTQUNGLENBQUM7UUFFRixPQUFPO1lBQ0wsT0FBTyxFQUFFLDZDQUFpQztZQUMxQyxLQUFLLEVBQUUsR0FBRztTQUNYLENBQUM7SUFDSixDQUFDO0lBRUQseUNBQXlDO0lBQ2xDLHlCQUF5QixDQUM5QixXQUFtQixFQUNuQixRQUFnQixFQUNoQixNQUFjLEVBQ2QsZ0JBQXdCLEVBQ3hCLGFBQXFCO1FBRXJCLE1BQU0sR0FBRyxHQUF1QjtZQUM5QixpRkFBaUY7WUFDakYsU0FBUyxFQUFFLDhCQUFrQjtZQUM3QixNQUFNLEVBQUU7Z0JBQ04sRUFBRSxFQUFFLFdBQVc7Z0JBQ2YsUUFBUTtnQkFDUixNQUFNO2dCQUNOLGdCQUFnQjtnQkFDaEIsaUJBQWlCLEVBQUUsQ0FBQztnQkFDcEIsYUFBYTthQUNkO1NBQ0YsQ0FBQztRQUVGLE9BQU87WUFDTCxPQUFPLEVBQUUseUNBQTZCO1lBQ3RDLEtBQUssRUFBRSxHQUFHO1NBQ1gsQ0FBQztJQUNKLENBQUM7SUFFRCx1Q0FBdUM7SUFDaEMsc0JBQXNCLENBQzNCLFdBQXlCLEVBQ3pCLFdBQW1CO1FBRW5CLE1BQU0sR0FBRyxHQUFvQjtZQUMzQiw4REFBOEQ7WUFDOUQsU0FBUyxFQUFFLDhCQUFrQjtZQUM3QixHQUFHLEVBQUUsV0FBVztZQUNoQixXQUFXO1NBQ1osQ0FBQztRQUVGLE9BQU87WUFDTCxPQUFPLEVBQUUsc0NBQTBCO1lBQ25DLEtBQUssRUFBRSxHQUFHO1NBQ1gsQ0FBQztJQUNKLENBQUM7SUFFRCxrQ0FBa0M7SUFDM0Isd0JBQXdCLENBQzdCLEtBQWEsRUFDYixvQkFBNEIsRUFDNUIseUJBQXNDLEVBQ3RDLE9BQWUsRUFDZixRQUF3QixFQUN4QixRQUFnQixFQUNoQixXQUFtQixFQUFFLEVBQ3JCLFlBQXFCLEtBQUs7UUFFMUIsTUFBTSxjQUFjLEdBQVcsQ0FBQztnQkFDOUIsTUFBTSxFQUFFLG9CQUFvQjtnQkFDNUIsS0FBSyxFQUFFLHlCQUF5QixDQUFDLGdCQUFnQjthQUNsRCxDQUFDLENBQUM7UUFFSCxNQUFNLEdBQUcsR0FBc0I7WUFDN0IsS0FBSztZQUNMLGNBQWM7WUFDZCxPQUFPO1lBQ1AsUUFBUTtZQUNSLFFBQVE7WUFDUixRQUFRO1lBQ1IsU0FBUztTQUNWLENBQUM7UUFFRixPQUFPO1lBQ0wsT0FBTyxFQUFFLHdDQUE0QjtZQUNyQyxLQUFLLEVBQUUsR0FBRztTQUNYLENBQUM7SUFDSixDQUFDO0lBRUQsaUNBQWlDO0lBQzFCLDJCQUEyQixDQUNoQyxVQUFrQixFQUNsQixZQUFvQixFQUNwQixnQkFBd0I7UUFFeEIsSUFBSSxVQUFVLEtBQUssQ0FBQyxJQUFJLFlBQVksS0FBSyxDQUFDLEVBQUU7WUFDMUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1NBQ2hFO2FBQU0sSUFBSSxVQUFVLEtBQUssQ0FBQyxJQUFJLGdCQUFnQixLQUFLLENBQUMsRUFBRTtZQUNyRCxNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDeEU7SUFDSCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsUUFBa0IsRUFBRSxPQUFxQjtRQUMvRCxPQUFPLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVNLG1CQUFtQixDQUN4QixRQUFrQixFQUNsQixRQUF3QjtRQUV4QixNQUFNLGVBQWUsR0FBVSxRQUFRLENBQUMsR0FBRyxDQUN6QyxDQUFDLE9BQXFCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQ3BFLENBQUM7UUFDRixPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0NBQ0Y7QUFqWUQsNEJBaVlDIn0= + +/***/ }), + +/***/ "./src/clients/modules/get.ts": +/*!************************************!*\ + !*** ./src/clients/modules/get.ts ***! + \************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Get = void 0; +const stargate_1 = __webpack_require__(/*! @cosmjs/stargate */ "./node_modules/@cosmjs/stargate/build/index.js"); +const AuthModule = __importStar(__webpack_require__(/*! cosmjs-types/cosmos/auth/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/auth/v1beta1/query.js")); +const BankModule = __importStar(__webpack_require__(/*! cosmjs-types/cosmos/bank/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/bank/v1beta1/query.js")); +const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); +const protobufjs_1 = __importDefault(__webpack_require__(/*! protobufjs */ "./node_modules/protobufjs/index.js")); +const constants_1 = __webpack_require__(/*! ../constants */ "./src/clients/constants.ts"); +const errors_1 = __webpack_require__(/*! ../lib/errors */ "./src/clients/lib/errors.ts"); +const proto_includes_1 = __webpack_require__(/*! ./proto-includes */ "./src/clients/modules/proto-includes.ts"); +// Required for encoding and decoding queries that are of type Long. +// Must be done once but since the individal modules should be usable without +// dYdXClient - must be set in each module that encounters encoding/decoding Longs. +// Reference: https://github.com/protobufjs/protobuf.js/issues/921 +protobufjs_1.default.util.Long = long_1.default; +protobufjs_1.default.configure(); +class Get { + constructor(tendermintClient, stargateQueryClient) { + this.tendermintClient = tendermintClient; + this.stargateQueryClient = stargateQueryClient; + } + /** + * @description Get latest block + * + * @returns last block structure + */ + async latestBlock() { + return this.tendermintClient.getBlock(); + } + /** + * @description Get latest block height + * + * @returns last height + */ + async latestBlockHeight() { + const block = await this.latestBlock(); + return block.header.height; + } + /** + * @description Get all fee tier params. + * + * @returns All fee tier params. + */ + async getFeeTiers() { + const requestData = Uint8Array.from(proto_includes_1.FeeTierModule.QueryPerpetualFeeParamsRequest.encode({}) + .finish()); + const data = await this.sendQuery('/dydxprotocol.feetiers.Query/PerpetualFeeParams', requestData); + return proto_includes_1.FeeTierModule.QueryPerpetualFeeParamsResponse.decode(data); + } + /** + * @description Get fee tier the user belongs to + * + * @returns the fee tier user belongs to. + */ + async getUserFeeTier(address) { + const requestData = Uint8Array.from(proto_includes_1.FeeTierModule.QueryUserFeeTierRequest.encode({ user: address }) + .finish()); + const data = await this.sendQuery('/dydxprotocol.feetiers.Query/UserFeeTier', requestData); + return proto_includes_1.FeeTierModule.QueryUserFeeTierResponse.decode(data); + } + /** + * @description Get get trading stats + * + * @returns return the user's taker and maker volume + */ + async getUserStats(address) { + const requestData = Uint8Array.from(proto_includes_1.StatsModule.QueryUserStatsRequest.encode({ user: address }) + .finish()); + const data = await this.sendQuery('/dydxprotocol.stats.Query/UserStats', requestData); + return proto_includes_1.StatsModule.QueryUserStatsResponse.decode(data).stats; + } + /** + * @description Get all balances for an account. + * + * @returns Array of Coin balances for all tokens held by an account. + */ + async getAccountBalances(address) { + const requestData = Uint8Array.from(BankModule.QueryAllBalancesRequest.encode({ address }) + .finish()); + const data = await this.sendQuery('/cosmos.bank.v1beta1.Query/AllBalances', requestData); + return BankModule.QueryAllBalancesResponse.decode(data).balances; + } + /** + * @description Get balances of one denom for an account. + * + * @returns Coin balance for denom tokens held by an account. + */ + async getAccountBalance(address, denom) { + const requestData = Uint8Array.from(BankModule.QueryBalanceRequest.encode({ + address, + denom, + }) + .finish()); + const data = await this.sendQuery('/cosmos.bank.v1beta1.Query/Balance', requestData); + const coin = BankModule.QueryBalanceResponse.decode(data).balance; + return coin; + } + /** + * @description Get all subaccounts + * + * @returns All subaccounts + */ + async getSubaccounts() { + const requestData = Uint8Array.from(proto_includes_1.SubaccountsModule.QueryAllSubaccountRequest.encode({}) + .finish()); + const data = await this.sendQuery('/dydxprotocol.subaccounts.Query/SubaccountAll', requestData); + return proto_includes_1.SubaccountsModule.QuerySubaccountAllResponse.decode(data); + } + /** + * @description Get a specific subaccount for an account. + * + * @returns Subaccount for account with given accountNumber or default subaccount if none exists. + */ + async getSubaccount(address, accountNumber) { + const requestData = Uint8Array.from(proto_includes_1.SubaccountsModule.QueryGetSubaccountRequest.encode({ + owner: address, + number: accountNumber, + }) + .finish()); + const data = await this.sendQuery('/dydxprotocol.subaccounts.Query/Subaccount', requestData); + return proto_includes_1.SubaccountsModule.QuerySubaccountResponse.decode(data); + } + /** + * @description Get the params for the rewards module. + * + * @returns Params for the rewards module. + */ + async getRewardsParams() { + const requestData = Uint8Array.from(proto_includes_1.RewardsModule.QueryParamsRequest.encode({}) + .finish()); + const data = await this.sendQuery('/dydxprotocol.rewards.Query/Params', requestData); + return proto_includes_1.RewardsModule.QueryParamsResponse.decode(data); + } + /** + * @description Get all Clob Pairs. + * + * @returns Information on all Clob Pairs. + */ + async getAllClobPairs() { + const requestData = Uint8Array.from(proto_includes_1.ClobModule.QueryAllClobPairRequest.encode({ pagination: constants_1.PAGE_REQUEST }) + .finish()); + const data = await this.sendQuery('/dydxprotocol.clob.Query/ClobPairAll', requestData); + return proto_includes_1.ClobModule.QueryClobPairAllResponse.decode(data); + } + /** + * @description Get Clob Pair for an Id or the promise is rejected if no pair exists. + * + * @returns Clob Pair for a given Clob Pair Id. + */ + async getClobPair(pairId) { + const requestData = Uint8Array.from(proto_includes_1.ClobModule.QueryGetClobPairRequest.encode({ id: pairId }) + .finish()); + const data = await this.sendQuery('/dydxprotocol.clob.Query/ClobPair', requestData); + return proto_includes_1.ClobModule.QueryClobPairResponse.decode(data); + } + /** + * @description Get all Prices across markets. + * + * @returns Prices across all markets. + */ + async getAllPrices() { + const requestData = Uint8Array.from(proto_includes_1.PricesModule.QueryAllMarketPricesRequest.encode({ pagination: constants_1.PAGE_REQUEST }) + .finish()); + const data = await this.sendQuery('/dydxprotocol.prices.Query/AllMarketPrices', requestData); + return proto_includes_1.PricesModule.QueryAllMarketPricesResponse.decode(data); + } + /** + * @description Get Price for a clob Id or the promise is rejected if none exists. + * + * @returns Price for a given Market Id. + */ + async getPrice(marketId) { + const requestData = Uint8Array.from(proto_includes_1.PricesModule.QueryMarketPriceRequest.encode({ id: marketId }) + .finish()); + const data = await this.sendQuery('/dydxprotocol.prices.Query/MarketPrice', requestData); + return proto_includes_1.PricesModule.QueryMarketPriceResponse.decode(data); + } + /** + * @description Get all Perpetuals. + * + * @returns Information on all Perpetual pairs. + */ + async getAllPerpetuals() { + const requestData = Uint8Array.from(proto_includes_1.PerpetualsModule.QueryAllPerpetualsRequest.encode({ pagination: constants_1.PAGE_REQUEST }) + .finish()); + const data = await this.sendQuery('/dydxprotocol.perpetuals.Query/AllPerpetuals', requestData); + return proto_includes_1.PerpetualsModule.QueryAllPerpetualsResponse.decode(data); + } + /** + * @description Get Perpetual for an Id or the promise is rejected if none exists. + * + * @returns The Perpetual for a given Perpetual Id. + */ + async getPerpetual(perpetualId) { + const requestData = Uint8Array.from(proto_includes_1.PerpetualsModule.QueryPerpetualRequest.encode({ id: perpetualId }) + .finish()); + const data = await this.sendQuery('/dydxprotocol.perpetuals.Query/Perpetual', requestData); + return proto_includes_1.PerpetualsModule.QueryPerpetualResponse.decode(data); + } + /** + * @description Get Account for an address or the promise is rejected if the account + * does not exist on-chain. + * + * @throws UnexpectedClientError if a malformed response is returned with no GRPC error. + * @returns An account for a given address. + */ + async getAccount(address) { + const requestData = Uint8Array.from(AuthModule.QueryAccountRequest.encode({ address }) + .finish()); + const data = await this.sendQuery('/cosmos.auth.v1beta1.Query/Account', requestData); + const rawAccount = AuthModule.QueryAccountResponse.decode(data).account; + // The promise should have been rejected if the rawAccount was undefined. + if (rawAccount === undefined) { + throw new errors_1.UnexpectedClientError(); + } + return (0, stargate_1.accountFromAny)(rawAccount); + } + /** + * @description Get equity tier limit configuration. + * + * @returns Information on all equity tiers that are configured. + */ + async getEquityTierLimitConfiguration() { + const requestData = Uint8Array.from(proto_includes_1.ClobModule.QueryEquityTierLimitConfigurationRequest.encode({}) + .finish()); + const data = await this.sendQuery('/dydxprotocol.clob.Query/EquityTierLimitConfiguration', requestData); + return proto_includes_1.ClobModule.QueryEquityTierLimitConfigurationResponse.decode(data); + } + /** + * + * @description Get all delegations from a delegator. + * + * @returns All delegations from a delegator. + */ + async getDelegatorDelegations(delegatorAddr) { + const requestData = Uint8Array.from(proto_includes_1.StakingModule.QueryDelegatorDelegationsRequest.encode({ + delegatorAddr, + pagination: constants_1.PAGE_REQUEST, + }) + .finish()); + const data = await this.sendQuery('/cosmos.staking.v1beta1.Query/DelegatorDelegations', requestData); + return proto_includes_1.StakingModule.QueryDelegatorDelegationsResponse.decode(data); + } + /** + * + * @description Get all unbonding delegations from a delegator. + * + * @returns All unbonding delegations from a delegator. + */ + async getDelegatorUnbondingDelegations(delegatorAddr) { + const requestData = Uint8Array.from(proto_includes_1.StakingModule.QueryDelegatorUnbondingDelegationsRequest.encode({ + delegatorAddr, + pagination: constants_1.PAGE_REQUEST, + }) + .finish()); + const data = await this.sendQuery('/cosmos.staking.v1beta1.Query/DelegatorUnbondingDelegations', requestData); + return proto_includes_1.StakingModule.QueryDelegatorUnbondingDelegationsResponse.decode(data); + } + /** + * @description Get all delayed complete bridge messages, optionally filtered by address. + * + * @returns Information on all delayed complete bridge messages. + */ + async getDelayedCompleteBridgeMessages(address = '') { + const requestData = Uint8Array.from(proto_includes_1.BridgeModule.QueryDelayedCompleteBridgeMessagesRequest.encode({ address }) + .finish()); + const data = await this.sendQuery('/dydxprotocol.bridge.Query/DelayedCompleteBridgeMessages', requestData); + return proto_includes_1.BridgeModule.QueryDelayedCompleteBridgeMessagesResponse.decode(data); + } + /** + * @description Get all validators of a status. + * + * @returns all validators of a status. + */ + async getAllValidators(status = '') { + const requestData = Uint8Array.from(proto_includes_1.StakingModule.QueryValidatorsRequest + .encode({ + status, + pagination: constants_1.PAGE_REQUEST, + }) + .finish()); + const data = await this.sendQuery('/cosmos.staking.v1beta1.Query/Validators', requestData); + return proto_includes_1.StakingModule.QueryValidatorsResponse.decode(data); + } + /** + * @description Get all gov proposals. + * + * @param proposalStatus Status of the proposal to filter by. + * @param voter Voter to filter by. + * @param depositor Depositor to filter by. + * + * @returns All gov proposals that match the filters above. + */ + async getAllGovProposals(proposalStatus = proto_includes_1.ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD, voter = '', depositor = '') { + const requestData = Uint8Array.from(proto_includes_1.GovV1Module.QueryProposalsRequest + .encode({ + proposalStatus, + voter, + depositor, + pagination: constants_1.PAGE_REQUEST, + }) + .finish()); + const data = await this.sendQuery('/cosmos.gov.v1.Query/Proposals', requestData); + return proto_includes_1.GovV1Module.QueryProposalsResponse.decode(data); + } + async GetWithdrawalAndTransferGatingStatus() { + const requestData = Uint8Array.from(proto_includes_1.SubaccountsModule.QueryGetWithdrawalAndTransfersBlockedInfoRequest + .encode({}) + .finish()); + const data = await this.sendQuery('/dydxprotocol.subaccounts.Query/GetWithdrawalAndTransfersBlockedInfo', requestData); + return proto_includes_1.SubaccountsModule.QueryGetWithdrawalAndTransfersBlockedInfoResponse.decode(data); + } + async getWithdrawalCapacityByDenom(denom) { + const requestData = Uint8Array.from(proto_includes_1.RateLimitModule.QueryCapacityByDenomRequest + .encode({ + denom, + }) + .finish()); + const data = await this.sendQuery('/dydxprotocol.ratelimit.Query/CapacityByDenom', requestData); + return proto_includes_1.RateLimitModule.QueryCapacityByDenomResponse.decode(data); + } + async sendQuery(requestUrl, requestData) { + // eslint-disable-next-line max-len + const resp = await this.stargateQueryClient.queryAbci(requestUrl, requestData); + return resp.value; + } +} +exports.Get = Get; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NsaWVudHMvbW9kdWxlcy9nZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSwrQ0FPMEI7QUFDMUIsbUZBQXFFO0FBQ3JFLG1GQUFxRTtBQUVyRSxnREFBd0I7QUFDeEIsNERBQWtDO0FBRWxDLDRDQUE0QztBQUM1QywwQ0FBc0Q7QUFDdEQscURBYTBCO0FBRzFCLG9FQUFvRTtBQUNwRSw2RUFBNkU7QUFDN0UsbUZBQW1GO0FBQ25GLGtFQUFrRTtBQUNsRSxvQkFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBSSxDQUFDO0FBQzFCLG9CQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7QUFFckIsTUFBYSxHQUFHO0lBSWQsWUFDRSxnQkFBa0MsRUFDbEMsbUJBQXdEO1FBRXhELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsV0FBVztRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGlCQUFpQjtRQUNyQixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLFdBQVc7UUFDZixNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUNqQyw4QkFBYSxDQUFDLDhCQUE4QixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7YUFDcEQsTUFBTSxFQUFFLENBQ1osQ0FBQztRQUVGLE1B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 + +/***/ }), + +/***/ "./src/clients/modules/local-wallet.ts": +/*!*********************************************!*\ + !*** ./src/clients/modules/local-wallet.ts ***! + \*********************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const amino_1 = __webpack_require__(/*! @cosmjs/amino */ "./node_modules/@cosmjs/amino/build/index.js"); +const proto_signing_1 = __webpack_require__(/*! @cosmjs/proto-signing */ "./node_modules/@cosmjs/proto-signing/build/index.js"); +const stargate_1 = __webpack_require__(/*! @cosmjs/stargate */ "./node_modules/@cosmjs/stargate/build/index.js"); +const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); +const protobufjs_1 = __importDefault(__webpack_require__(/*! protobufjs */ "./node_modules/protobufjs/index.js")); +const registry_1 = __webpack_require__(/*! ../lib/registry */ "./src/clients/lib/registry.ts"); +const signer_1 = __webpack_require__(/*! ./signer */ "./src/clients/modules/signer.ts"); +// Required for encoding and decoding queries that are of type Long. +protobufjs_1.default.util.Long = long_1.default; +protobufjs_1.default.configure(); +class LocalWallet { + static async fromOfflineSigner(signer) { + const wallet = new LocalWallet(); + await wallet.setSigner(signer); + return wallet; + } + static async fromMnemonic(mnemonic, prefix) { + const wallet = new LocalWallet(); + await wallet.setMnemonic(mnemonic, prefix); + return wallet; + } + async setSigner(signer) { + this.offlineSigner = signer; + const stargateClient = await stargate_1.SigningStargateClient.offline(signer, { + registry: (0, registry_1.generateRegistry)(), + }); + const accountData = await signer.getAccounts(); + const firstAccount = accountData[0]; + this.accounts = [...accountData]; + this.address = firstAccount.address; + this.pubKey = (0, amino_1.encodeSecp256k1Pubkey)(firstAccount.pubkey); + this.signer = new signer_1.TransactionSigner(this.address, stargateClient); + } + async setMnemonic(mnemonic, prefix) { + const signer = await proto_signing_1.DirectSecp256k1HdWallet.fromMnemonic(mnemonic, { prefix }); + return this.setSigner(signer); + } + async signTransaction(messages, transactionOptions, fee, memo = '') { + return this.signer.signTransaction(messages, transactionOptions, fee, memo); + } +} +exports["default"] = LocalWallet; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtd2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NsaWVudHMvbW9kdWxlcy9sb2NhbC13YWxsZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5Q0FJdUI7QUFDdkIseURBSytCO0FBQy9CLCtDQUUwQjtBQUMxQixnREFBd0I7QUFDeEIsNERBQWtDO0FBRWxDLDhDQUFtRDtBQUVuRCxxQ0FBNkM7QUFFN0Msb0VBQW9FO0FBQ3BFLG9CQUFRLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxjQUFJLENBQUM7QUFDMUIsb0JBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUVyQixNQUFxQixXQUFXO0lBTzVCLE1BQU0sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBb0I7UUFDakQsTUFBTSxNQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNqQyxNQUFNLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0IsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQWdCLEVBQUUsTUFBZTtRQUN6RCxNQUFNLE1BQU0sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDM0MsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBcUI7UUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7UUFDNUIsTUFBTSxjQUFjLEdBQUcsTUFBTSxnQ0FBcUIsQ0FBQyxPQUFPLENBQ3hELE1BQU0sRUFDTjtZQUNFLFFBQVEsRUFBRSxJQUFBLDJCQUFnQixHQUFFO1NBQzdCLENBQ0YsQ0FBQztRQUNGLE1BQU0sV0FBVyxHQUFHLE1BQU0sTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQy9DLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFBLDZCQUFxQixFQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksMEJBQWlCLENBQ2pDLElBQUksQ0FBQyxPQUFPLEVBQ1osY0FBYyxDQUNmLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFnQixFQUFFLE1BQWU7UUFDakQsTUFBTSxNQUFNLEdBQUcsTUFBTSx1Q0FBdUIsQ0FBQyxZQUFZLENBQ3ZELFFBQVEsRUFDUixFQUFFLE1BQU0sRUFBRSxDQUNYLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxlQUFlLENBQzFCLFFBQXdCLEVBQ3hCLGtCQUFzQyxFQUN0QyxHQUFZLEVBQ1osT0FBZSxFQUFFO1FBRWpCLE9BQU8sSUFBSSxDQUFDLE1BQU8sQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLGtCQUFrQixFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvRSxDQUFDO0NBQ0o7QUF0REQsOEJBc0RDIn0= + +/***/ }), + +/***/ "./src/clients/modules/markets.ts": +/*!****************************************!*\ + !*** ./src/clients/modules/markets.ts ***! + \****************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const constants_1 = __webpack_require__(/*! ../constants */ "./src/clients/constants.ts"); +const rest_1 = __importDefault(__webpack_require__(/*! ./rest */ "./src/clients/modules/rest.ts")); +/** + * @description REST endpoints for data unrelated to a particular address. + */ +class MarketsClient extends rest_1.default { + async getPerpetualMarkets(market) { + const uri = '/v4/perpetualMarkets'; + return this.get(uri, { ticker: market }); + } + async getPerpetualMarketOrderbook(market) { + const uri = `/v4/orderbooks/perpetualMarket/${market}`; + return this.get(uri); + } + async getPerpetualMarketTrades(market, startingBeforeOrAtHeight, limit) { + const uri = `/v4/trades/perpetualMarket/${market}`; + return this.get(uri, { + createdBeforeOrAtHeight: startingBeforeOrAtHeight, + limit, + }); + } + async getPerpetualMarketCandles(market, resolution, fromISO, toISO, limit) { + const uri = `/v4/candles/perpetualMarkets/${market}`; + return this.get(uri, { + resolution, + fromISO, + toISO, + limit, + }); } - SendMessage(request) { - const data = exports.MsgSendMessage.encode(request).finish(); - const promise = this.rpc.request(this.service, "SendMessage", data); - return promise.then((data) => exports.MsgSendMessageResponse.decode(minimal_1.default.Reader.create(data))); + async getPerpetualMarketHistoricalFunding(market, effectiveBeforeOrAt, effectiveBeforeOrAtHeight, limit) { + const uri = `/v4/historicalFunding/${market}`; + return this.get(uri, { + effectiveBeforeOrAt, + effectiveBeforeOrAtHeight, + limit, + }); } - SendMessageWithCaller(request) { - const data = exports.MsgSendMessageWithCaller.encode(request).finish(); - const promise = this.rpc.request(this.service, "SendMessageWithCaller", data); - return promise.then((data) => exports.MsgSendMessageWithCallerResponse.decode(minimal_1.default.Reader.create(data))); + async getPerpetualMarketSparklines(period = constants_1.TimePeriod.ONE_DAY) { + const uri = '/v4/sparklines'; + return this.get(uri, { + timePeriod: period, + }); } - UnlinkTokenPair(request) { - const data = exports.MsgUnlinkTokenPair.encode(request).finish(); - const promise = this.rpc.request(this.service, "UnlinkTokenPair", data); - return promise.then((data) => exports.MsgUnlinkTokenPairResponse.decode(minimal_1.default.Reader.create(data))); +} +exports["default"] = MarketsClient; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL21vZHVsZXMvbWFya2V0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUEwQztBQUUxQyxrREFBZ0M7QUFFaEM7O0dBRUc7QUFDSCxNQUFxQixhQUFjLFNBQVEsY0FBVTtJQUNuRCxLQUFLLENBQUMsbUJBQW1CLENBQUMsTUFBZTtRQUN2QyxNQUFNLEdBQUcsR0FBRyxzQkFBc0IsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxNQUFjO1FBQzlDLE1BQU0sR0FBRyxHQUFHLGtDQUFrQyxNQUFNLEVBQUUsQ0FBQztRQUN2RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyx3QkFBd0IsQ0FDNUIsTUFBYyxFQUNkLHdCQUF3QyxFQUN4QyxLQUFxQjtRQUVyQixNQUFNLEdBQUcsR0FBRyw4QkFBOEIsTUFBTSxFQUFFLENBQUM7UUFDbkQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNuQix1QkFBdUIsRUFBRSx3QkFBd0I7WUFDakQsS0FBSztTQUNOLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMseUJBQXlCLENBQzdCLE1BQWMsRUFDZCxVQUFrQixFQUNsQixPQUF1QixFQUN2QixLQUFxQixFQUNyQixLQUFxQjtRQUVyQixNQUFNLEdBQUcsR0FBRyxnQ0FBZ0MsTUFBTSxFQUFFLENBQUM7UUFDckQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNuQixVQUFVO1lBQ1YsT0FBTztZQUNQLEtBQUs7WUFDTCxLQUFLO1NBQ04sQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxtQ0FBbUMsQ0FDdkMsTUFBYyxFQUNkLG1CQUFtQyxFQUNuQyx5QkFBeUMsRUFDekMsS0FBcUI7UUFFckIsTUFBTSxHQUFHLEdBQUcseUJBQXlCLE1BQU0sRUFBRSxDQUFDO1FBQzlDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsbUJBQW1CO1lBQ25CLHlCQUF5QjtZQUN6QixLQUFLO1NBQ04sQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxTQUFpQixzQkFBVSxDQUFDLE9BQU87UUFDcEUsTUFBTSxHQUFHLEdBQUcsZ0JBQWdCLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNuQixVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEzREQsZ0NBMkRDIn0= + +/***/ }), + +/***/ "./src/clients/modules/post.ts": +/*!*************************************!*\ + !*** ./src/clients/modules/post.ts ***! + \*************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Post = void 0; +const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/math/build/index.js"); +const stargate_1 = __webpack_require__(/*! @cosmjs/stargate */ "./node_modules/@cosmjs/stargate/build/index.js"); +const tendermint_rpc_1 = __webpack_require__(/*! @cosmjs/tendermint-rpc */ "./node_modules/@cosmjs/tendermint-rpc/build/index.js"); +const lodash_1 = __importDefault(__webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js")); +const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); +const protobufjs_1 = __importDefault(__webpack_require__(/*! protobufjs */ "./node_modules/protobufjs/index.js")); +const constants_1 = __webpack_require__(/*! ../constants */ "./src/clients/constants.ts"); +const errors_1 = __webpack_require__(/*! ../lib/errors */ "./src/clients/lib/errors.ts"); +const registry_1 = __webpack_require__(/*! ../lib/registry */ "./src/clients/lib/registry.ts"); +const types_1 = __webpack_require__(/*! ../types */ "./src/clients/types.ts"); +const composer_1 = __webpack_require__(/*! ./composer */ "./src/clients/modules/composer.ts"); +const proto_includes_1 = __webpack_require__(/*! ./proto-includes */ "./src/clients/modules/proto-includes.ts"); +// Required for encoding and decoding queries that are of type Long. +// Must be done once but since the individal modules should be usable +// - must be set in each module that encounters encoding/decoding Longs. +// Reference: https://github.com/protobufjs/protobuf.js/issues/921 +protobufjs_1.default.util.Long = long_1.default; +protobufjs_1.default.configure(); +class Post { + constructor(get, chainId, denoms, defaultClientMemo) { + this.accountNumberCache = new Map(); + this.get = get; + this.chainId = chainId; + this.registry = (0, registry_1.generateRegistry)(); + this.composer = new composer_1.Composer(); + this.denoms = denoms; + this.defaultClientMemo = defaultClientMemo; + this.defaultGasPrice = stargate_1.GasPrice + .fromString(`0.025${denoms.USDC_GAS_DENOM !== undefined ? denoms.USDC_GAS_DENOM : denoms.USDC_DENOM}`); + this.defaultDydxGasPrice = stargate_1.GasPrice + .fromString(`25000000000${denoms.CHAINTOKEN_GAS_DENOM !== undefined ? denoms.CHAINTOKEN_GAS_DENOM : denoms.CHAINTOKEN_DENOM}`); } - UnpauseBurningAndMinting(request) { - const data = exports.MsgUnpauseBurningAndMinting.encode(request).finish(); - const promise = this.rpc.request(this.service, "UnpauseBurningAndMinting", data); - return promise.then((data) => exports.MsgUnpauseBurningAndMintingResponse.decode(minimal_1.default.Reader.create(data))); + /** + * @description Simulate a transaction + * the calling function is responsible for creating the messages. + * + * @throws UnexpectedClientError if a malformed response is returned with no GRPC error + * at any point. + * @returns The Fee for broadcasting a transaction. + */ + async simulate(wallet, messaging, gasPrice = this.defaultGasPrice, memo, account) { + const msgsPromise = messaging(); + const accountPromise = account ? (await account()) : this.account(wallet.address); + const msgsAndAccount = await Promise.all([msgsPromise, accountPromise]); + const msgs = msgsAndAccount[0]; + return this.simulateTransaction(wallet.pubKey, msgsAndAccount[1].sequence, msgs, gasPrice, memo); } - UnpauseSendingAndReceivingMessages(request) { - const data = exports.MsgUnpauseSendingAndReceivingMessages.encode(request).finish(); - const promise = this.rpc.request(this.service, "UnpauseSendingAndReceivingMessages", data); - return promise.then((data) => exports.MsgUnpauseSendingAndReceivingMessagesResponse.decode(minimal_1.default.Reader.create(data))); + /** + * @description Sign a transaction + * the calling function is responsible for creating the messages. + * + * @throws UnexpectedClientError if a malformed response is returned with no GRPC error + * at any point. + * @returns The Signature. + */ + async sign(wallet, messaging, zeroFee, gasPrice = this.defaultGasPrice, memo, account) { + const msgsPromise = await messaging(); + const accountPromise = account ? (await account()) : this.account(wallet.address); + const msgsAndAccount = await Promise.all([msgsPromise, accountPromise]); + const msgs = msgsAndAccount[0]; + return this.signTransaction(wallet, msgs, msgsAndAccount[1], zeroFee, gasPrice, memo); } - UpdateOwner(request) { - const data = exports.MsgUpdateOwner.encode(request).finish(); - const promise = this.rpc.request(this.service, "UpdateOwner", data); - return promise.then((data) => exports.MsgUpdateOwnerResponse.decode(minimal_1.default.Reader.create(data))); + /** + * @description Send a transaction + * the calling function is responsible for creating the messages. + * + * @throws UnexpectedClientError if a malformed response is returned with no GRPC error + * at any point. + * @returns The Tx Hash. + */ + async send(wallet, messaging, zeroFee, gasPrice = this.defaultGasPrice, memo, broadcastMode, account) { + const msgsPromise = messaging(); + const accountPromise = account ? (await account()) : this.account(wallet.address); + const msgsAndAccount = await Promise.all([msgsPromise, accountPromise]); + const msgs = msgsAndAccount[0]; + return this.signAndSendTransaction(wallet, msgsAndAccount[1], msgs, zeroFee, gasPrice, memo !== null && memo !== void 0 ? memo : this.defaultClientMemo, broadcastMode !== null && broadcastMode !== void 0 ? broadcastMode : this.defaultBroadcastMode(msgs)); } - UpdateAttesterManager(request) { - const data = exports.MsgUpdateAttesterManager.encode(request).finish(); - const promise = this.rpc.request(this.service, "UpdateAttesterManager", data); - return promise.then((data) => exports.MsgUpdateAttesterManagerResponse.decode(minimal_1.default.Reader.create(data))); + /** + * @description Calculate the default broadcast mode. + */ + defaultBroadcastMode(msgs) { + var _a, _b, _c; + if (msgs.length === 1 && + (msgs[0].typeUrl === '/dydxprotocol.clob.MsgPlaceOrder' || + msgs[0].typeUrl === '/dydxprotocol.clob.MsgCancelOrder')) { + const orderFlags = msgs[0].typeUrl === '/dydxprotocol.clob.MsgPlaceOrder' + ? (_b = (_a = msgs[0].value.order) === null || _a === void 0 ? void 0 : _a.orderId) === null || _b === void 0 ? void 0 : _b.orderFlags + : (_c = msgs[0].value.orderId) === null || _c === void 0 ? void 0 : _c.orderFlags; + switch (orderFlags) { + case types_1.OrderFlags.SHORT_TERM: + return tendermint_rpc_1.Method.BroadcastTxSync; + case types_1.OrderFlags.LONG_TERM: + case types_1.OrderFlags.CONDITIONAL: + return tendermint_rpc_1.Method.BroadcastTxCommit; + default: + break; + } + } + return tendermint_rpc_1.Method.BroadcastTxSync; } - UpdateTokenController(request) { - const data = exports.MsgUpdateTokenController.encode(request).finish(); - const promise = this.rpc.request(this.service, "UpdateTokenController", data); - return promise.then((data) => exports.MsgUpdateTokenControllerResponse.decode(minimal_1.default.Reader.create(data))); + /** + * @description Sign and send a message + * + * @returns The Tx Response. + */ + async signTransaction(wallet, messages, account, zeroFee, gasPrice = this.defaultGasPrice, memo) { + // Simulate transaction if no fee is specified. + const fee = zeroFee ? { + amount: [], + gas: '1000000', + } : await this.simulateTransaction(wallet.pubKey, account.sequence, messages, gasPrice, memo); + const txOptions = { + sequence: account.sequence, + accountNumber: account.accountNumber, + chainId: this.chainId, + }; + // Generate signed transaction. + return wallet.signTransaction(messages, txOptions, fee, memo); } - UpdatePauser(request) { - const data = exports.MsgUpdatePauser.encode(request).finish(); - const promise = this.rpc.request(this.service, "UpdatePauser", data); - return promise.then((data) => exports.MsgUpdatePauserResponse.decode(minimal_1.default.Reader.create(data))); + /** + * @description Retrieve an account structure for transactions. + * For short term orders, the sequence doesn't matter. Use cached if available. + * For long term and conditional orders, a round trip to validator must be made. + */ + async account(address, orderFlags) { + if (orderFlags === types_1.OrderFlags.SHORT_TERM) { + if (this.accountNumberCache.has(address)) { + // For SHORT_TERM orders, the sequence doesn't matter + return this.accountNumberCache.get(address); + } + } + const account = await this.get.getAccount(address); + this.accountNumberCache.set(address, account); + return account; } - UpdateMaxMessageBodySize(request) { - const data = exports.MsgUpdateMaxMessageBodySize.encode(request).finish(); - const promise = this.rpc.request(this.service, "UpdateMaxMessageBodySize", data); - return promise.then((data) => exports.MsgUpdateMaxMessageBodySizeResponse.decode(minimal_1.default.Reader.create(data))); + /** + * @description Sign and send a message + * + * @returns The Tx Response. + */ + async signAndSendTransaction(wallet, account, messages, zeroFee, gasPrice = this.defaultGasPrice, memo, broadcastMode) { + const signedTransaction = await this.signTransaction(wallet, messages, account, zeroFee, gasPrice, memo); + return this.sendSignedTransaction(signedTransaction, broadcastMode); } - SetMaxBurnAmountPerMessage(request) { - const data = exports.MsgSetMaxBurnAmountPerMessage.encode(request).finish(); - const promise = this.rpc.request(this.service, "SetMaxBurnAmountPerMessage", data); - return promise.then((data) => exports.MsgSetMaxBurnAmountPerMessageResponse.decode(minimal_1.default.Reader.create(data))); + /** + * @description Send signed transaction. + * + * @returns The Tx Response. + */ + async sendSignedTransaction(signedTransaction, broadcastMode) { + return this.get.tendermintClient.broadcastTransaction(signedTransaction, broadcastMode !== undefined + ? broadcastMode + : tendermint_rpc_1.Method.BroadcastTxSync); } - UpdateSignatureThreshold(request) { - const data = exports.MsgUpdateSignatureThreshold.encode(request).finish(); - const promise = this.rpc.request(this.service, "UpdateSignatureThreshold", data); - return promise.then((data) => exports.MsgUpdateSignatureThresholdResponse.decode(minimal_1.default.Reader.create(data))); + /** + * @description Simulate broadcasting a transaction. + * + * @throws UnexpectedClientError if a malformed response is returned with no GRPC error + * at any point. + * @returns The Fee for broadcasting a transaction. + */ + async simulateTransaction(pubKey, sequence, messages, gasPrice = this.defaultGasPrice, memo) { + // Get simulated response. + const encodedMessages = messages.map((message) => this.registry.encodeAsAny(message)); + const simulationResponse = await this.get.stargateQueryClient.tx.simulate(encodedMessages, memo, pubKey, sequence); + // The promise should have been rejected if the gasInfo was undefined. + if (simulationResponse.gasInfo === undefined) { + throw new errors_1.UnexpectedClientError(); + } + // Calculate and return fee from gasEstimate. + const gasEstimate = math_1.Uint53.fromString(simulationResponse.gasInfo.gasUsed.toString()).toNumber(); + const fee = (0, stargate_1.calculateFee)(Math.floor(gasEstimate * constants_1.GAS_MULTIPLIER), gasPrice); + // TODO(TRCL-2550): Temporary workaround before IBC denom is supported in '@cosmjs/stargate'. + // The '@cosmjs/stargate' does not support denom with '/', so currently GAS_PRICE is + // represented in 'uusdc', and the output of `calculateFee` is in '', which is replaced + // below by USDC_DENOM string. + const amount = lodash_1.default.map(fee.amount, (coin) => { + if (coin.denom === 'uusdc') { + return { + amount: coin.amount, + denom: this.denoms.USDC_DENOM, + }; + } + return coin; + }); + return { + ...fee, + amount, + }; } -} -exports.MsgClientImpl = MsgClientImpl; -const gt = (() => { - if (typeof globalThis !== "undefined") { - return globalThis; + // ------ State-Changing Requests ------ // + async placeOrder(subaccount, clientId, clobPairId, side, quantums, subticks, timeInForce, orderFlags, reduceOnly, goodTilBlock, goodTilBlockTime, clientMetadata = 0, conditionType = proto_includes_1.Order_ConditionType.CONDITION_TYPE_UNSPECIFIED, conditionalOrderTriggerSubticks = long_1.default.fromInt(0), broadcastMode) { + const msgs = new Promise((resolve) => { + const msg = this.composer.composeMsgPlaceOrder(subaccount.address, subaccount.subaccountNumber, clientId, clobPairId, orderFlags, goodTilBlock !== null && goodTilBlock !== void 0 ? goodTilBlock : 0, goodTilBlockTime !== null && goodTilBlockTime !== void 0 ? goodTilBlockTime : 0, side, quantums, subticks, timeInForce, reduceOnly, clientMetadata, conditionType, conditionalOrderTriggerSubticks); + resolve([msg]); + }); + const account = this.account(subaccount.address, orderFlags); + return this.send(subaccount.wallet, () => msgs, true, undefined, undefined, broadcastMode, () => account); } - if (typeof self !== "undefined") { - return self; + async placeOrderObject(subaccount, placeOrder, broadcastMode) { + var _a, _b; + return this.placeOrder(subaccount, placeOrder.clientId, placeOrder.clobPairId, placeOrder.side, placeOrder.quantums, placeOrder.subticks, placeOrder.timeInForce, placeOrder.orderFlags, placeOrder.reduceOnly, placeOrder.goodTilBlock, placeOrder.goodTilBlockTime, placeOrder.clientMetadata, (_a = placeOrder.conditionType) !== null && _a !== void 0 ? _a : proto_includes_1.Order_ConditionType.CONDITION_TYPE_UNSPECIFIED, (_b = placeOrder.conditionalOrderTriggerSubticks) !== null && _b !== void 0 ? _b : long_1.default.fromInt(0), broadcastMode); } - if (typeof window !== "undefined") { - return window; + async cancelOrder(subaccount, clientId, orderFlags, clobPairId, goodTilBlock, goodTilBlockTime, broadcastMode) { + const msgs = new Promise((resolve) => { + const msg = this.composer.composeMsgCancelOrder(subaccount.address, subaccount.subaccountNumber, clientId, clobPairId, orderFlags, goodTilBlock !== null && goodTilBlock !== void 0 ? goodTilBlock : 0, goodTilBlockTime !== null && goodTilBlockTime !== void 0 ? goodTilBlockTime : 0); + resolve([msg]); + }); + return this.send(subaccount.wallet, () => msgs, true, undefined, undefined, broadcastMode); } - if (typeof __webpack_require__.g !== "undefined") { - return __webpack_require__.g; + async cancelOrderObject(subaccount, cancelOrder, broadcastMode) { + return this.cancelOrder(subaccount, cancelOrder.clientId, cancelOrder.orderFlags, cancelOrder.clobPairId, cancelOrder.goodTilBlock, cancelOrder.goodTilBlockTime, broadcastMode); } - throw "Unable to locate global object"; -})(); -function bytesFromBase64(b64) { - if (gt.Buffer) { - return Uint8Array.from(gt.Buffer.from(b64, "base64")); + async transfer(subaccount, recipientAddress, recipientSubaccountNumber, assetId, amount, broadcastMode) { + const msgs = new Promise((resolve) => { + const msg = this.composer.composeMsgTransfer(subaccount.address, subaccount.subaccountNumber, recipientAddress, recipientSubaccountNumber, assetId, amount); + resolve([msg]); + }); + return this.send(subaccount.wallet, () => msgs, false, undefined, undefined, broadcastMode); } - else { - const bin = gt.atob(b64); - const arr = new Uint8Array(bin.length); - for (let i = 0; i < bin.length; ++i) { - arr[i] = bin.charCodeAt(i); - } - return arr; + async deposit(subaccount, assetId, quantums, broadcastMode) { + const msgs = new Promise((resolve) => { + const msg = this.composer.composeMsgDepositToSubaccount(subaccount.address, subaccount.subaccountNumber, assetId, quantums); + resolve([msg]); + }); + return this.send(subaccount.wallet, () => msgs, false, undefined, undefined, broadcastMode); } -} -function base64FromBytes(arr) { - if (gt.Buffer) { - return gt.Buffer.from(arr).toString("base64"); + async withdraw(subaccount, assetId, quantums, recipient, broadcastMode) { + const msgs = new Promise((resolve) => { + const msg = this.composer.composeMsgWithdrawFromSubaccount(subaccount.address, subaccount.subaccountNumber, assetId, quantums, recipient); + resolve([msg]); + }); + return this.send(subaccount.wallet, () => msgs, false, undefined, undefined, broadcastMode); } - else { - const bin = []; - arr.forEach((byte) => { - bin.push(gt.String.fromCharCode(byte)); + async sendToken(subaccount, recipient, coinDenom, quantums, zeroFee = true, broadcastMode) { + if (coinDenom !== this.denoms.CHAINTOKEN_DENOM && coinDenom !== this.denoms.USDC_DENOM) { + throw new Error('Unsupported coinDenom'); + } + const msgs = new Promise((resolve) => { + const msg = this.composer.composeMsgSendToken(subaccount.address, recipient, coinDenom, quantums); + resolve([msg]); }); - return gt.btoa(bin.join("")); + return this.send(subaccount.wallet, () => msgs, zeroFee, coinDenom === this.denoms.CHAINTOKEN_DENOM + ? this.defaultDydxGasPrice + : this.defaultGasPrice, undefined, broadcastMode); } } -if (minimal_1.default.util.Long !== long_1.default) { - minimal_1.default.util.Long = long_1.default; - minimal_1.default.configure(); -} -function isSet(value) { - return value !== null && value !== undefined; -} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2N0cFByb3RvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NsaWVudHMvbGliL2NjdHBQcm90by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLGdEQUF3QjtBQUN4QixpRUFBcUM7QUFFeEIsUUFBQSxlQUFlLEdBQUcsZ0JBQWdCLENBQUM7QUFvUGhELFNBQVMsd0JBQXdCO0lBQy9CLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUNwQyxDQUFDO0FBRVksUUFBQSxjQUFjLEdBQUc7SUFDNUIsTUFBTSxDQUFDLE9BQXVCLEVBQUUsU0FBcUIsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ3RFLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUU7WUFDdkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLEVBQUUsRUFBRTtZQUMzQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDNUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQThCLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksaUJBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLElBQUksR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1B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 +exports.Post = Post; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL21vZHVsZXMvcG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSx1Q0FBc0M7QUFLdEMsK0NBTTBCO0FBQzFCLDJEQUVnQztBQUtoQyxvREFBdUI7QUFDdkIsZ0RBQXdCO0FBQ3hCLDREQUFrQztBQUVsQyw0Q0FBOEM7QUFDOUMsMENBQXNEO0FBQ3RELDhDQUFtRDtBQUVuRCxvQ0FPa0I7QUFDbEIseUNBQXNDO0FBR3RDLHFEQUUwQjtBQUUxQixvRUFBb0U7QUFDcEUscUVBQXFFO0FBQ3JFLHdFQUF3RTtBQUN4RSxrRUFBa0U7QUFDbEUsb0JBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLGNBQUksQ0FBQztBQUMxQixvQkFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBRXJCLE1BQWEsSUFBSTtJQWFiLFlBQ0UsR0FBUSxFQUNSLE9BQWUsRUFDZixNQUFtQixFQUNuQixpQkFBMEI7UUFOcEIsdUJBQWtCLEdBQXlCLElBQUksR0FBRyxFQUFFLENBQUM7UUFRM0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUEsMkJBQWdCLEdBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksbUJBQVEsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsZUFBZSxHQUFHLG1CQUFRO2FBQzVCLFVBQVUsQ0FBQyxRQUFRLE1BQU0sQ0FBQyxjQUFjLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxF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 /***/ }), -/***/ "./src/clients/lib/errors.ts": -/*!***********************************!*\ - !*** ./src/clients/lib/errors.ts ***! - \***********************************/ -/***/ (function(__unused_webpack_module, exports) { +/***/ "./src/clients/modules/proto-includes.ts": +/*!***********************************************!*\ + !*** ./src/clients/modules/proto-includes.ts ***! + \***********************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.BridgeModule = exports.StakingModule = exports.RewardsModule = exports.RateLimitModule = exports.FeeTierModule = exports.SubaccountsModule = exports.PricesModule = exports.PerpetualsModule = exports.ClobModule = exports.StatsModule = exports.GovV1Module = void 0; +exports.GovV1Module = __importStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/query */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/query.ts")); +exports.StatsModule = __importStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/stats/query */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/stats/query.ts")); +exports.ClobModule = __importStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/query */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/query.ts")); +exports.PerpetualsModule = __importStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/query */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/query.ts")); +exports.PricesModule = __importStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/query */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/query.ts")); +exports.SubaccountsModule = __importStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/query */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/query.ts")); +exports.FeeTierModule = __importStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/query */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/query.ts")); +exports.RateLimitModule = __importStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/query */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/ratelimit/query.ts")); +exports.RewardsModule = __importStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/rewards/query */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rewards/query.ts")); +exports.StakingModule = __importStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/query */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/query.ts")); +exports.BridgeModule = __importStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/query */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/query.ts")); +__exportStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/cosmos/base/abci/v1beta1/abci */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/abci/v1beta1/abci.ts"), exports); +__exportStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/gov */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/gov/v1/gov.ts"), exports); +__exportStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order.ts"), exports); +__exportStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/tx */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/tx.ts"), exports); +__exportStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/tx */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/tx.ts"), exports); +__exportStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/tx */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/tx.ts"), exports); +__exportStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/tx */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/tx.ts"), exports); +__exportStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/google/protobuf/any */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/any.ts"), exports); +__exportStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/subaccount */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/subaccount.ts"), exports); +__exportStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/tx */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/tx.ts"), exports); +__exportStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/transfer */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/transfer.ts"), exports); +__exportStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/genesis */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/genesis.ts"), exports); +__exportStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/asset */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/asset.ts"), exports); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG8taW5jbHVkZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50cy9tb2R1bGVzL3Byb3RvLWluY2x1ZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0dBQXNGO0FBQ3RGLDJHQUEyRjtBQUUzRix5R0FBeUY7QUFDekYscUhBQXFHO0FBQ3JHLDZHQUE2RjtBQUM3Rix1SEFBdUc7QUFDdkcsZ0hBQWdHO0FBQ2hHLG1IQUFtRztBQUNuRywrR0FBK0Y7QUFDL0YsaUhBQWlHO0FBQ2pHLDZHQUE2RjtBQUU3RixtR0FBaUY7QUFDakYsdUZBQXFFO0FBQ3JFLDZGQUEyRTtBQUMzRSwwRkFBd0U7QUFDeEUsOEZBQTRFO0FBQzVFLGdHQUE4RTtBQUM5RSw0RkFBMEU7QUFDMUUseUZBQXVFO0FBQ3ZFLHlHQUF1RjtBQUN2Riw2RkFBMkU7QUFDM0UsbUdBQWlGO0FBQ2pGLGlHQUErRTtBQUMvRSwrRkFBNkUifQ== + +/***/ }), + +/***/ "./src/clients/modules/rest.ts": +/*!*************************************!*\ + !*** ./src/clients/modules/rest.ts ***! + \*************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.WrappedError = exports.CustomError = exports.UserError = exports.BroadcastErrorObject = exports.UnexpectedClientError = void 0; -/** - * An edge-case was hit in the client that should never have been reached. - */ -class UnexpectedClientError extends Error { - constructor() { - super('An unexpected error occurred on the client'); - this.name = 'UnexpectedClientError'; +const constants_1 = __webpack_require__(/*! ../constants */ "./src/clients/constants.ts"); +const request_helpers_1 = __webpack_require__(/*! ../helpers/request-helpers */ "./src/clients/helpers/request-helpers.ts"); +const axios_1 = __webpack_require__(/*! ../lib/axios */ "./src/clients/lib/axios/index.ts"); +class RestClient { + constructor(host, apiTimeout) { + if (host.endsWith('/')) { + this.host = host.slice(0, -1); + } + else { + this.host = host; + } + this.apiTimeout = apiTimeout || constants_1.DEFAULT_API_TIMEOUT; } -} -exports.UnexpectedClientError = UnexpectedClientError; -/** - * An error occurred during the broadcasting process. - */ -class BroadcastErrorObject extends Error { - constructor(message, result) { - super(message); - this.name = 'BroadcastError'; - this.result = result; - this.code = result.code; - this.codespace = result.codespace; + async get(requestPath, params = {}) { + const url = `${this.host}${(0, request_helpers_1.generateQueryPath)(requestPath, params)}`; + const response = await (0, axios_1.request)(url); + return response.data; } -} -exports.BroadcastErrorObject = BroadcastErrorObject; -/** - * User error occurred during a client operation. - */ -class UserError extends Error { - constructor(message) { - super(message); - this.name = 'UserError'; + async post(requestPath, params = {}, body, headers = {}) { + const url = `${this.host}${(0, request_helpers_1.generateQueryPath)(requestPath, params)}`; + return (0, axios_1.request)(url, axios_1.RequestMethod.POST, body, headers); } } -exports.UserError = UserError; -/** - * @description Base class for custom errors. - */ -class CustomError extends Error { - constructor(message) { - super(message); - // Set a more specific name. This will show up in e.g. console.log. - this.name = this.constructor.toString(); +exports["default"] = RestClient; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL21vZHVsZXMvcmVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDRDQUFtRDtBQUNuRCxnRUFBK0Q7QUFDL0Qsd0NBQWdFO0FBR2hFLE1BQXFCLFVBQVU7SUFJM0IsWUFBWSxJQUFZLEVBQUUsVUFBeUI7UUFDakQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMvQjthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7U0FDbEI7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsSUFBSSwrQkFBbUIsQ0FBQztJQUN0RCxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FDUCxXQUFtQixFQUNuQixTQUFhLEVBQUU7UUFFZixNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBQSxtQ0FBaUIsRUFBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNwRSxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsZUFBTyxFQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FDUixXQUFtQixFQUNuQixTQUFhLEVBQUUsRUFDZixJQUFxQixFQUNyQixVQUFjLEVBQUU7UUFFaEIsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUEsbUNBQWlCLEVBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDcEUsT0FBTyxJQUFBLGVBQU8sRUFBQyxHQUFHLEVBQUUscUJBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDSjtBQS9CRCw2QkErQkMifQ== + +/***/ }), + +/***/ "./src/clients/modules/signer.ts": +/*!***************************************!*\ + !*** ./src/clients/modules/signer.ts ***! + \***************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.TransactionSigner = void 0; +const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/tx/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/tx/v1beta1/tx.js"); +const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); +const protobufjs_1 = __importDefault(__webpack_require__(/*! protobufjs */ "./node_modules/protobufjs/index.js")); +const errors_1 = __webpack_require__(/*! ../lib/errors */ "./src/clients/lib/errors.ts"); +// Required for encoding and decoding queries that are of type Long. +// Must be done once but since the individal modules should be usable +// - must be set in each module that encounters encoding/decoding Longs. +// Reference: https://github.com/protobufjs/protobuf.js/issues/921 +protobufjs_1.default.util.Long = long_1.default; +protobufjs_1.default.configure(); +class TransactionSigner { + constructor(address, stargateSigningClient) { + this.address = address; + this.stargateSigningClient = stargateSigningClient; } -} -exports.CustomError = CustomError; -/** - * @description Base class for a custom error which wraps another error. - */ -class WrappedError extends CustomError { - constructor(message, originalError) { - super(message); - this.originalError = originalError; + /** + * @description Get the encoded signed transaction or the promise is rejected if + * no fee can be set for the transaction. + * + * @throws UserError if the fee is undefined. + * @returns The signed and encoded transaction. + */ + async signTransaction(messages, transactionOptions, fee, memo = '') { + // Verify there is either a fee or a path to getting the fee present. + if (fee === undefined) { + throw new errors_1.UserError('fee cannot be undefined'); + } + // Sign, encode and return the transaction. + const rawTx = await this.stargateSigningClient.sign(this.address, messages, fee, memo, { + accountNumber: transactionOptions.accountNumber, + sequence: transactionOptions.sequence, + chainId: transactionOptions.chainId, + }); + return Uint8Array.from(tx_1.TxRaw.encode(rawTx).finish()); } } -exports.WrappedError = WrappedError; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NsaWVudHMvbGliL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQTs7R0FFRztBQUNILE1BQWEscUJBQXNCLFNBQVEsS0FBSztJQUM5QztRQUVFLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxJQUFJLEdBQUcsdUJBQXVCLENBQUM7SUFDdEMsQ0FBQztDQUNGO0FBTkQsc0RBTUM7QUFFRDs7R0FFRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsS0FBSztJQUs3QyxZQUNFLE9BQWUsRUFDZixNQUErQjtRQUUvQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBZkQsb0RBZUM7QUFFRDs7R0FFRztBQUNILE1BQWEsU0FBVSxTQUFRLEtBQUs7SUFDbEMsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDO0lBQzFCLENBQUM7Q0FDRjtBQUxELDhCQUtDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLFdBQVksU0FBUSxLQUFLO0lBQ3BDLFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixtRUFBbUU7UUFDbkUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFDLENBQUM7Q0FDRjtBQU5ELGtDQU1DO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLFlBQWEsU0FBUSxXQUFXO0lBR3pDLFlBQ0UsT0FBZSxFQUNmLGFBQW9CO1FBRXBCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQ3JDLENBQUM7Q0FDSjtBQVZELG9DQVVDIn0= +exports.TransactionSigner = TransactionSigner; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NsaWVudHMvbW9kdWxlcy9zaWduZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS0EsMERBQTBEO0FBQzFELGdEQUF3QjtBQUN4Qiw0REFBa0M7QUFFbEMsMENBQTBDO0FBSzFDLG9FQUFvRTtBQUNwRSxxRUFBcUU7QUFDckUsd0VBQXdFO0FBQ3hFLGtFQUFrRTtBQUNsRSxvQkFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBSSxDQUFDO0FBQzFCLG9CQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7QUFFckIsTUFBYSxpQkFBaUI7SUFJNUIsWUFDRSxPQUFlLEVBQ2YscUJBQTRDO1FBRTVDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FDbkIsUUFBd0IsRUFDeEIsa0JBQXNDLEVBQ3RDLEdBQVksRUFDWixPQUFlLEVBQUU7UUFFakIscUVBQXFFO1FBQ3JFLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRTtZQUNyQixNQUFNLElBQUksa0JBQVMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1NBQ2hEO1FBRUQsMkNBQTJDO1FBQzNDLE1BQU0sS0FBSyxHQUFVLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FDeEQsSUFBSSxDQUFDLE9BQU8sRUFDWixRQUFRLEVBQ1IsR0FBRyxFQUNILElBQUksRUFDSjtZQUNFLGFBQWEsRUFBRSxrQkFBa0IsQ0FBQyxhQUFhO1lBQy9DLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRO1lBQ3JDLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxPQUFPO1NBQ3BDLENBQ0YsQ0FBQztRQUNGLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztDQUNGO0FBNUNELDhDQTRDQyJ9 /***/ }), -/***/ "./src/clients/lib/registry.ts": -/*!*************************************!*\ - !*** ./src/clients/lib/registry.ts ***! - \*************************************/ +/***/ "./src/clients/modules/tendermintClient.ts": +/*!*************************************************!*\ + !*** ./src/clients/modules/tendermintClient.ts ***! + \*************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; +/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.generateRegistry = exports.registry = void 0; -const proto_signing_1 = __webpack_require__(/*! @cosmjs/proto-signing */ "./node_modules/@cosmjs/proto-signing/build/index.js"); +exports.TendermintClient = void 0; +const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); +const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/math/build/index.js"); const stargate_1 = __webpack_require__(/*! @cosmjs/stargate */ "./node_modules/@cosmjs/stargate/build/index.js"); -const tx_1 = __webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/tx */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/tx.ts"); -const transfer_1 = __webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/transfer */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/transfer.ts"); -const tx_2 = __webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/tx */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/tx.ts"); -exports.registry = []; -function generateRegistry() { - return new proto_signing_1.Registry([ - // clob - ['/dydxprotocol.clob.MsgPlaceOrder', tx_1.MsgPlaceOrder], - ['/dydxprotocol.clob.MsgCancelOrder', tx_1.MsgCancelOrder], - // sending - ['/dydxprotocol.sending.MsgCreateTransfer', tx_2.MsgCreateTransfer], - ['/dydxprotocol.sending.MsgWithdrawFromSubaccount', transfer_1.MsgWithdrawFromSubaccount], - ['/dydxprotocol.sending.MsgDepositToSubaccount', transfer_1.MsgDepositToSubaccount], - // default types - ...stargate_1.defaultRegistryTypes, - ]); +const tendermint_rpc_1 = __webpack_require__(/*! @cosmjs/tendermint-rpc */ "./node_modules/@cosmjs/tendermint-rpc/build/index.js"); +const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/utils/build/index.js"); +const errors_1 = __webpack_require__(/*! ../lib/errors */ "./src/clients/lib/errors.ts"); +class TendermintClient { + constructor(baseClient, broadcastOptions) { + this.baseClient = baseClient; + this.broadcastOptions = broadcastOptions; + } + /** + * @description Get a specific block if height is specified. Otherwise, get the most recent block. + * + * @returns Information about the block queried. + */ + async getBlock(height) { + const response = await this.baseClient.block(height); + return { + id: (0, encoding_1.toHex)(response.blockId.hash).toUpperCase(), + header: { + version: { + block: new math_1.Uint53(response.block.header.version.block).toString(), + app: new math_1.Uint53(response.block.header.version.app).toString(), + }, + height: response.block.header.height, + chainId: response.block.header.chainId, + time: (0, tendermint_rpc_1.toRfc3339WithNanoseconds)(response.block.header.time), + }, + txs: response.block.txs, + }; + } + /** + * @description Broadcast a signed transaction with a specific mode. + * @throws BroadcastErrorObject when result code is not zero. TypeError when mode is invalid. + * @returns Differs depending on the BroadcastMode used. + * See https://docs.cosmos.network/master/run-node/txs.html for more information. + */ + async broadcastTransaction(tx, mode) { + switch (mode) { + case tendermint_rpc_1.Method.BroadcastTxAsync: + return this.broadcastTransactionAsync(tx); + case tendermint_rpc_1.Method.BroadcastTxSync: + return this.broadcastTransactionSync(tx); + case tendermint_rpc_1.Method.BroadcastTxCommit: + return this.broadcastTransactionCommit(tx); + default: + throw new TypeError('broadcastTransaction: invalid BroadcastMode'); + } + } + /** + * @description Broadcast a signed transaction. + * @returns The transaction hash. + */ + broadcastTransactionAsync(tx) { + return this.baseClient.broadcastTxAsync({ tx }); + } + /** + * @description Broadcast a signed transaction and await the response. + * @throws BroadcastErrorObject when result code is not zero. + * @returns The response from the node once the transaction is processed by `CheckTx`. + */ + async broadcastTransactionSync(tx) { + const result = await this.baseClient.broadcastTxSync({ tx }); + if (result.code !== 0) { + throw new errors_1.BroadcastErrorObject(`Broadcasting transaction failed: ${result.log}`, result); + } + return result; + } + /** + * @description Broadcast a signed transaction and await for it to be included in the blockchain. + * @throws BroadcastErrorObject when result code is not zero. + * @returns The result of the transaction once included in the blockchain. + */ + async broadcastTransactionCommit(tx) { + const result = await this.broadcastTransactionSync(tx); + return this.queryHash(result.hash); + } + /** + * @description Using tx method, query for a transaction on-chain with retries specified by + * the client BroadcastOptions. + * + * @throws TimeoutError if the transaction is not committed on-chain within the timeout limit. + * @returns An indexed transaction containing information about the transaction when committed. + */ + async queryHash(hash, time = 0) { + const now = Date.now(); + const transactionId = (0, encoding_1.toHex)(hash).toUpperCase(); + if (time >= this.broadcastOptions.broadcastTimeoutMs) { + throw new stargate_1.TimeoutError(`Transaction with hash [${hash}] was submitted but was not yet found on the chain. You might want to check later. Query timed out after ${this.broadcastOptions.broadcastTimeoutMs / 1000} seconds.`, transactionId); + } + await (0, utils_1.sleep)(this.broadcastOptions.broadcastPollIntervalMs); + // If the transaction is not found, the tx method will throw an Internal Error. + try { + const tx = await this.baseClient.tx({ hash }); + return { + height: tx.height, + hash: (0, encoding_1.toHex)(tx.hash).toUpperCase(), + code: tx.result.code, + rawLog: tx.result.log !== undefined ? tx.result.log : '', + tx: tx.tx, + txIndex: tx.index, + gasUsed: tx.result.gasUsed, + gasWanted: tx.result.gasWanted, + // Convert stargate events to tendermint events. + events: tx.result.events.map((event) => { + return { + ...event, + attributes: event.attributes.map((attr) => { + return { + ...attr, + key: Buffer.from(attr.key).toString(), + value: Buffer.from(attr.value).toString(), + }; + }), + }; + }), + // @ts-ignore + msgResponses: [], + }; + } + catch (error) { + return this.queryHash(hash, time + Date.now() - now); + } + } + /** + * @description Set the broadcast options for this module. + */ + setBroadcastOptions(broadcastOptions) { + this.broadcastOptions = broadcastOptions; + } } -exports.generateRegistry = generateRegistry; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50cy9saWIvcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseURBQWdFO0FBQ2hFLCtDQUF3RDtBQUN4RCxnRkFHaUU7QUFDakUsK0ZBRzBFO0FBQzFFLG1GQUVvRTtBQUV2RCxRQUFBLFFBQVEsR0FBMkMsRUFBRSxDQUFDO0FBQ25FLFNBQWdCLGdCQUFnQjtJQUM5QixPQUFPLElBQUksd0JBQVEsQ0FBQztRQUNsQixPQUFPO1FBQ1AsQ0FBQyxrQ0FBa0MsRUFBRSxrQkFBOEIsQ0FBQztRQUNwRSxDQUFDLG1DQUFtQyxFQUFFLG1CQUErQixDQUFDO1FBRXRFLFVBQVU7UUFDVixDQUFDLHlDQUF5QyxFQUFFLHNCQUFrQyxDQUFDO1FBQy9FLENBQUMsaURBQWlELEVBQUUsb0NBQTBDLENBQUM7UUFDL0YsQ0FBQyw4Q0FBOEMsRUFBRSxpQ0FBdUMsQ0FBQztRQUV6RixnQkFBZ0I7UUFDaEIsR0FBRywrQkFBb0I7S0FDeEIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQWRELDRDQWNDIn0= +exports.TendermintClient = TendermintClient; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuZGVybWludENsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL21vZHVsZXMvdGVuZGVybWludENsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBeUM7QUFDekMsdUNBQXNDO0FBQ3RDLCtDQUkwQjtBQUMxQiwyREFJZ0M7QUFTaEMseUNBQXNDO0FBRXRDLDBDQUFxRDtBQUdyRCxNQUFhLGdCQUFnQjtJQUkzQixZQUNFLFVBQThCLEVBQzlCLGdCQUFrQztRQUVsQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQWU7UUFDNUIsTUFBTSxRQUFRLEdBQWtCLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEUsT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFBLGdCQUFLLEVBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFDOUMsTUFBTSxFQUFFO2dCQUNOLE9BQU8sRUFBRTtvQkFDUCxLQUFLLEVBQUUsSUFBSSxhQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRTtvQkFDakUsR0FBRyxFQUFFLElBQUksYUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUU7aUJBQzlEO2dCQUNELE1BQU0sRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO2dCQUNwQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztn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 /***/ }), -/***/ "./src/clients/modules/account.ts": +/***/ "./src/clients/modules/utility.ts": /*!****************************************!*\ - !*** ./src/clients/modules/account.ts ***! + !*** ./src/clients/modules/utility.ts ***! \****************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { @@ -201565,969 +204075,1143 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -const constants_1 = __webpack_require__(/*! ../constants */ "./src/clients/constants.ts"); const rest_1 = __importDefault(__webpack_require__(/*! ./rest */ "./src/clients/modules/rest.ts")); -/** - * @description REST endpoints for data related to a particular address. - */ -class AccountClient extends rest_1.default { - async getSubaccounts(address, limit) { - const uri = `/v4/addresses/${address}`; - return this.get(uri, { limit }); +class UtilityClient extends rest_1.default { + /** + * @description Get the current time of the Indexer + * @returns {TimeResponse} isoString and epoch + */ + async getTime() { + const uri = '/v4/time'; + return this.get(uri); } - async getSubaccount(address, subaccountNumber) { - const uri = `/v4/addresses/${address}/subaccountNumber/${subaccountNumber}`; + /** + * @description Get the block height of the most recent block processed by the Indexer + * @returns {HeightResponse} block height and time + */ + async getHeight() { + const uri = '/v4/height'; return this.get(uri); } - async getSubaccountPerpetualPositions(address, subaccountNumber, status, limit, createdBeforeOrAtHeight, createdBeforeOrAt) { - const uri = '/v4/perpetualPositions'; - return this.get(uri, { - address, - subaccountNumber, - status, - limit, - createdBeforeOrAtHeight, - createdBeforeOrAt, - }); + /** + * @description Screen an address to see if it is restricted + * @param {string} address evm or dydx address + * @returns {ComplianceResponse} whether the specified address is restricted + */ + async screen(address) { + const uri = '/v4/screen'; + return this.get(uri, { address }); } - async getSubaccountAssetPositions(address, subaccountNumber, status, limit, createdBeforeOrAtHeight, createdBeforeOrAt) { - const uri = '/v4/assetPositions'; - return this.get(uri, { - address, - subaccountNumber, - status, - limit, - createdBeforeOrAtHeight, - createdBeforeOrAt, +} +exports["default"] = UtilityClient; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL21vZHVsZXMvdXRpbGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLGtEQUFnQztBQUVoQyxNQUFxQixhQUFjLFNBQVEsY0FBVTtJQUNuRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxTQUFTO1FBQ2IsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBZTtRQUMxQixNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBNUJELGdDQTRCQyJ9 + +/***/ }), + +/***/ "./src/clients/native.ts": +/*!*******************************!*\ + !*** ./src/clients/native.ts ***! + \*******************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; + +/* + Native app can call JS functions with primitives. +*/ +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.cctpWithdraw = exports.withdrawToNobleIBC = exports.sendNobleIBC = exports.getNobleBalance = exports.getMarketPrice = exports.getDelegatorUnbondingDelegations = exports.getDelegatorDelegations = exports.getRewardsParams = exports.getOptimalIndexer = exports.getOptimalNode = exports.decodeAccountResponseValue = exports.encodeAccountRequestData = exports.signCancelOrder = exports.signPlaceOrder = exports.signRawPlaceOrder = exports.simulateTransferNativeToken = exports.simulateWithdraw = exports.simulateDeposit = exports.getUserStats = exports.getAccountBalances = exports.getAccountBalance = exports.transferNativeToken = exports.withdrawToIBC = exports.faucet = exports.withdraw = exports.deposit = exports.cancelOrder = exports.wrappedError = exports.placeOrder = exports.getPerpetualMarkets = exports.getEquityTiers = exports.getUserFeeTier = exports.getFeeTiers = exports.getHeight = exports.deriveMnemomicFromEthereumSignature = exports.connect = exports.connectWallet = exports.connectNetwork = exports.connectClient = void 0; +const proto_signing_1 = __webpack_require__(/*! @cosmjs/proto-signing */ "./node_modules/@cosmjs/proto-signing/build/index.js"); +const stargate_1 = __webpack_require__(/*! @cosmjs/stargate */ "./node_modules/@cosmjs/stargate/build/index.js"); +const AuthModule = __importStar(__webpack_require__(/*! cosmjs-types/cosmos/auth/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/auth/v1beta1/query.js")); +const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); +const constants_1 = __webpack_require__(/*! ../lib/constants */ "./src/lib/constants.ts"); +const errors_1 = __webpack_require__(/*! ../lib/errors */ "./src/lib/errors.ts"); +const helpers_1 = __webpack_require__(/*! ../lib/helpers */ "./src/lib/helpers.ts"); +const onboarding_1 = __webpack_require__(/*! ../lib/onboarding */ "./src/lib/onboarding.ts"); +const network_optimizer_1 = __webpack_require__(/*! ../network_optimizer */ "./src/network_optimizer.ts"); +const composite_client_1 = __webpack_require__(/*! ./composite-client */ "./src/clients/composite-client.ts"); +const constants_2 = __webpack_require__(/*! ./constants */ "./src/clients/constants.ts"); +const faucet_client_1 = __webpack_require__(/*! ./faucet-client */ "./src/clients/faucet-client.ts"); +const local_wallet_1 = __importDefault(__webpack_require__(/*! ./modules/local-wallet */ "./src/clients/modules/local-wallet.ts")); +const noble_client_1 = __webpack_require__(/*! ./noble-client */ "./src/clients/noble-client.ts"); +const subaccount_1 = __webpack_require__(/*! ./subaccount */ "./src/clients/subaccount.ts"); +async function connectClient(network) { + try { + globalThis.client = await composite_client_1.CompositeClient.connect(network); + return (0, helpers_1.encodeJson)(network); + } + catch (e) { + return wrappedError(e); + } +} +exports.connectClient = connectClient; +async function connectNetwork(paramsJSON) { + try { + const params = JSON.parse(paramsJSON); + const { indexerUrl, websocketUrl, validatorUrl, chainId, faucetUrl, nobleValidatorUrl, USDC_DENOM, USDC_DECIMALS, USDC_GAS_DENOM, CHAINTOKEN_DENOM, CHAINTOKEN_DECIMALS, CHAINTOKEN_GAS_DENOM, txnMemo, } = params; + if (indexerUrl === undefined || + websocketUrl === undefined || + validatorUrl === undefined || + chainId === undefined) { + throw new errors_1.UserError('Missing required network params'); + } + if (USDC_DENOM === undefined || + USDC_DECIMALS === undefined || + CHAINTOKEN_DENOM === undefined || + CHAINTOKEN_DECIMALS === undefined) { + throw new errors_1.UserError('Missing required token params'); + } + if (txnMemo === undefined) { + throw new errors_1.UserError('Missing required transaction memo (`txnMemo`)'); + } + const denomConfig = { + USDC_DENOM, + USDC_DECIMALS, + USDC_GAS_DENOM, + CHAINTOKEN_DENOM, + CHAINTOKEN_DECIMALS, + CHAINTOKEN_GAS_DENOM, + }; + const indexerConfig = new constants_2.IndexerConfig(indexerUrl, websocketUrl); + const validatorConfig = new constants_2.ValidatorConfig(validatorUrl, chainId, denomConfig, undefined, txnMemo); + const config = new constants_2.Network('native', indexerConfig, validatorConfig); + globalThis.client = await composite_client_1.CompositeClient.connect(config); + if (faucetUrl !== undefined) { + globalThis.faucetClient = new faucet_client_1.FaucetClient(faucetUrl); + } + else { + globalThis.faucetClient = null; + } + try { + globalThis.nobleClient = new noble_client_1.NobleClient(nobleValidatorUrl, txnMemo); + if (globalThis.nobleWallet) { + await globalThis.nobleClient.connect(globalThis.nobleWallet); + } + } + catch (e) { + console.error('Failed to connect to noble validator'); + } + return (0, helpers_1.encodeJson)(config); + } + catch (e) { + return wrappedError(e); + } +} +exports.connectNetwork = connectNetwork; +async function connectWallet(mnemonic) { + var _a; + try { + globalThis.wallet = await local_wallet_1.default.fromMnemonic(mnemonic, constants_1.BECH32_PREFIX); + globalThis.nobleWallet = await local_wallet_1.default.fromMnemonic(mnemonic, constants_1.NOBLE_BECH32_PREFIX); + try { + await ((_a = globalThis.nobleClient) === null || _a === void 0 ? void 0 : _a.connect(globalThis.nobleWallet)); + } + catch (e) { + console.error('Failed to connect to noble validator'); + } + const address = globalThis.wallet.address; + return (0, helpers_1.encodeJson)({ address }); + } + catch (e) { + return wrappedError(e); + } +} +exports.connectWallet = connectWallet; +async function connect(network, mnemonic) { + try { + await connectClient(network); + return connectWallet(mnemonic); + } + catch (e) { + return wrappedError(e); + } +} +exports.connect = connect; +async function deriveMnemomicFromEthereumSignature(signature) { + try { + const { mnemonic } = (0, onboarding_1.deriveHDKeyFromEthereumSignature)(signature); + const wallet = await local_wallet_1.default.fromMnemonic(mnemonic, constants_1.BECH32_PREFIX); + const result = { mnemonic, address: wallet.address }; + return new Promise((resolve) => { + resolve((0, helpers_1.encodeJson)(result)); }); } - async getSubaccountTransfers(address, subaccountNumber, limit, createdBeforeOrAtHeight, createdBeforeOrAt) { - const uri = '/v4/transfers'; - return this.get(uri, { - address, - subaccountNumber, - limit, - createdBeforeOrAtHeight, - createdBeforeOrAt, - }); + catch (e) { + return wrappedError(e); + } +} +exports.deriveMnemomicFromEthereumSignature = deriveMnemomicFromEthereumSignature; +async function getHeight() { + var _a; + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectClient() first'); + } + const block = await ((_a = globalThis.client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.latestBlock()); + return (0, helpers_1.encodeJson)(block); + } + catch (e) { + return wrappedError(e); + } +} +exports.getHeight = getHeight; +async function getFeeTiers() { + var _a; + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectClient() first'); + } + const feeTiers = await ((_a = globalThis.client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.getFeeTiers()); + return (0, helpers_1.encodeJson)(feeTiers); + } + catch (e) { + return wrappedError(e); + } +} +exports.getFeeTiers = getFeeTiers; +async function getUserFeeTier(address) { + var _a; + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectClient() first'); + } + const feeTiers = await ((_a = globalThis.client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.getUserFeeTier(address)); + return (0, helpers_1.encodeJson)(feeTiers); + } + catch (e) { + return wrappedError(e); + } +} +exports.getUserFeeTier = getUserFeeTier; +async function getEquityTiers() { + var _a; + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectClient() first'); + } + const equityTiers = await ((_a = globalThis.client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.getEquityTierLimitConfiguration()); + return (0, helpers_1.encodeJson)(equityTiers, helpers_1.ByteArrayEncoding.BIGINT); + } + catch (e) { + return wrappedError(e); + } +} +exports.getEquityTiers = getEquityTiers; +async function getPerpetualMarkets() { + var _a; + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectClient() first'); + } + const markets = await ((_a = globalThis.client) === null || _a === void 0 ? void 0 : _a.indexerClient.markets.getPerpetualMarkets()); + return (0, helpers_1.encodeJson)(markets); + } + catch (e) { + return wrappedError(e); + } +} +exports.getPerpetualMarkets = getPerpetualMarkets; +async function placeOrder(payload) { + var _a, _b; + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectClient() first'); + } + const wallet = globalThis.wallet; + if (wallet === undefined) { + throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); + } + const json = JSON.parse(payload); + const subaccountNumber = json.subaccountNumber; + if (subaccountNumber === undefined) { + throw new errors_1.UserError('subaccountNumber is not set'); + } + const marketId = json.marketId; + if (marketId === undefined) { + throw new errors_1.UserError('marketId is not set'); + } + const type = json.type; + if (type === undefined) { + throw new errors_1.UserError('type is not set'); + } + const side = json.side; + if (side === undefined) { + throw new errors_1.UserError('side is not set'); + } + const price = json.price; + if (price === undefined) { + throw new errors_1.UserError('price is not set'); + } + // trigger_price: number, // not used for MARKET and LIMIT + const size = json.size; + if (size === undefined) { + throw new errors_1.UserError('size is not set'); + } + const clientId = json.clientId; + if (clientId === undefined) { + throw new errors_1.UserError('clientId is not set'); + } + const timeInForce = json.timeInForce; + const goodTilTimeInSeconds = json.goodTilTimeInSeconds; + const execution = json.execution; + const postOnly = (_a = json.postOnly) !== null && _a !== void 0 ? _a : false; + const reduceOnly = (_b = json.reduceOnly) !== null && _b !== void 0 ? _b : false; + const triggerPrice = json.triggerPrice; + const marketInfo = json.marketInfo; + const currentHeight = json.currentHeight; + const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber); + const tx = await client.placeOrder(subaccount, marketId, type, side, price, size, clientId, timeInForce, goodTilTimeInSeconds, execution, postOnly, reduceOnly, triggerPrice, marketInfo, currentHeight); + return (0, helpers_1.encodeJson)(tx); + } + catch (error) { + return wrappedError(error); } - async getSubaccountOrders(address, subaccountNumber, ticker, tickerType = constants_1.TickerType.PERPETUAL, side, status, type, limit, goodTilBlockBeforeOrAt, goodTilBlockTimeBeforeOrAt, returnLatestOrders) { - const uri = '/v4/orders'; - return this.get(uri, { - address, - subaccountNumber, - ticker, - tickerType, - side, - status, - type, - limit, - goodTilBlockBeforeOrAt, - goodTilBlockTimeBeforeOrAt, - returnLatestOrders, - }); +} +exports.placeOrder = placeOrder; +function wrappedError(error) { + const text = JSON.stringify(error, Object.getOwnPropertyNames(error)); + return `{"error": ${text}}`; +} +exports.wrappedError = wrappedError; +async function cancelOrder(payload) { + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectNetwork() first'); + } + const wallet = globalThis.wallet; + if (wallet === undefined) { + throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); + } + const json = JSON.parse(payload); + const subaccountNumber = json.subaccountNumber; + if (subaccountNumber === undefined) { + throw new errors_1.UserError('subaccountNumber is not set'); + } + const clientId = json.clientId; + if (clientId === undefined) { + throw new errors_1.UserError('clientId is not set'); + } + const orderFlags = json.orderFlags; + if (orderFlags === undefined) { + throw new errors_1.UserError('orderFlags is not set'); + } + const clobPairId = json.clobPairId; + if (clobPairId === undefined) { + throw new errors_1.UserError('clobPairId is not set'); + } + const goodTilBlock = json.goodTilBlock; + const goodTilBlockTime = json.goodTilBlockTime; + const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber); + const tx = await client.cancelRawOrder(subaccount, clientId, orderFlags, clobPairId, goodTilBlock !== 0 ? goodTilBlock : undefined, goodTilBlockTime !== 0 ? goodTilBlockTime : undefined); + return (0, helpers_1.encodeJson)(tx); } - async getOrder(orderId) { - const uri = `/v4/orders${orderId}`; - return this.get(uri); + catch (error) { + return wrappedError(error); } - async getSubaccountFills(address, subaccountNumber, ticker, tickerType = constants_1.TickerType.PERPETUAL, limit, createdBeforeOrAtHeight, createdBeforeOrAt) { - const uri = '/v4/fills'; - return this.get(uri, { - address, - subaccountNumber, - ticker, - tickerType, - limit, - createdBeforeOrAtHeight, - createdBeforeOrAt, - }); +} +exports.cancelOrder = cancelOrder; +async function deposit(payload) { + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectNetwork() first'); + } + const wallet = globalThis.wallet; + if (wallet === undefined) { + throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); + } + const json = JSON.parse(payload); + const subaccountNumber = json.subaccountNumber; + if (subaccountNumber === undefined) { + throw new errors_1.UserError('subaccountNumber is not set'); + } + const amount = json.amount; + if (amount === undefined) { + throw new errors_1.UserError('amount is not set'); + } + const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber); + const tx = await client.depositToSubaccount(subaccount, amount); + return (0, helpers_1.encodeJson)(tx); } - async getSubaccountHistoricalPNLs(address, subaccountNumber, effectiveBeforeOrAt, effectiveAtOrAfter) { - const uri = '/v4/historical-pnl'; - return this.get(uri, { - address, - subaccountNumber, - effectiveBeforeOrAt, - effectiveAtOrAfter, - }); + catch (error) { + return wrappedError(error); } } -exports["default"] = AccountClient; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL21vZHVsZXMvYWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUVzQjtBQUV0QixrREFBZ0M7QUFFaEM7O0dBRUc7QUFDSCxNQUFxQixhQUFjLFNBQVEsY0FBVTtJQUNuRCxLQUFLLENBQUMsY0FBYyxDQUNsQixPQUFlLEVBQ2YsS0FBYztRQUVkLE1BQU0sR0FBRyxHQUFHLGlCQUFpQixPQUFPLEVBQUUsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FDakIsT0FBZSxFQUNmLGdCQUF3QjtRQUV4QixNQUFNLEdBQUcsR0FBRyxpQkFBaUIsT0FBTyxxQkFBcUIsZ0JBQWdCLEVBQUUsQ0FBQztRQUM1RSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQywrQkFBK0IsQ0FDbkMsT0FBZSxFQUNmLGdCQUF3QixFQUN4QixNQUE4QixFQUM5QixLQUFxQixFQUNyQix1QkFBdUMsRUFDdkMsaUJBQWlDO1FBRWpDLE1BQU0sR0FBRyxHQUFHLHdCQUF3QixDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsT0FBTztZQUNQLGdCQUFnQjtZQUNoQixNQUFNO1lBQ04sS0FBSztZQUNMLHVCQUF1QjtZQUN2QixpQkFBaUI7U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQywyQkFBMkIsQ0FDL0IsT0FBZSxFQUNmLGdCQUF3QixFQUN4QixNQUE4QixFQUM5QixLQUFxQixFQUNyQix1QkFBdUMsRUFDdkMsaUJBQWlDO1FBRWpDLE1BQU0sR0FBRyxHQUFHLG9CQUFvQixDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsT0FBTztZQUNQLGdCQUFnQjtZQUNoQixNQUFNO1lBQ04sS0FBSztZQUNMLHVCQUF1QjtZQUN2QixpQkFBaUI7U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxzQkFBc0IsQ0FDMUIsT0FBZSxFQUNmLGdCQUF3QixFQUN4QixLQUFxQixFQUNyQix1QkFBdUMsRUFDdkMsaUJBQWlDO1FBRWpDLE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ25CLE9BQU87WUFDUCxnQkFBZ0I7WUFDaEIsS0FBSztZQUNMLHVCQUF1QjtZQUN2QixpQkFBaUI7U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxtQkFBbUIsQ0FDdkIsT0FBZSxFQUNmLGdCQUF3QixFQUN4QixNQUFzQixFQUN0QixhQUF5QixzQkFBVSxDQUFDLFNBQVMsRUFDN0MsSUFBdUIsRUFDdkIsTUFBMkIsRUFDM0IsSUFBdUIsRUFDdkIsS0FBcUIsRUFDckIsc0JBQXNDLEVBQ3RDLDBCQUEwQyxFQUMxQyxrQkFBbUM7UUFFbkMsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsT0FBTztZQUNQLGdCQUFnQjtZQUNoQixNQUFNO1lBQ04sVUFBVTtZQUNWLElBQUk7WUFDSixNQUFNO1lBQ04sSUFBSTtZQUNKLEtBQUs7WUFDTCxzQkFBc0I7WUFDdEIsMEJBQTBCO1lBQzFCLGtCQUFrQjtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFlO1FBQzVCLE1BQU0sR0FBRyxHQUFHLGFBQWEsT0FBTyxFQUFFLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxLQUFLLENBQUMsa0JBQWtCLENBQ3RCLE9BQWUsRUFDZixnQkFBd0IsRUFDeEIsTUFBc0IsRUFDdEIsYUFBeUIsc0JBQVUsQ0FBQyxTQUFTLEVBQzdDLEtBQXFCLEVBQ3JCLHVCQUF1QyxFQUN2QyxpQkFBaUM7UUFFakMsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsT0FBTztZQUNQLGdCQUFnQjtZQUNoQixNQUFNO1lBQ04sVUFBVTtZQUNWLEtBQUs7WUFDTCx1QkFBdUI7WUFDdkIsaUJBQWlCO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsMkJBQTJCLENBQy9CLE9BQWUsRUFDZixnQkFBd0IsRUFDeEIsbUJBQW1DLEVBQ25DLGtCQUFrQztRQUVsQyxNQUFNLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ25CLE9BQU87WUFDUCxnQkFBZ0I7WUFDaEIsbUJBQW1CO1lBQ25CLGtCQUFrQjtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUE3SUQsZ0NBNklDIn0= - -/***/ }), - -/***/ "./src/clients/modules/composer.ts": -/*!*****************************************!*\ - !*** ./src/clients/modules/composer.ts ***! - \*****************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Composer = void 0; -const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); -const protobufjs_1 = __importDefault(__webpack_require__(/*! protobufjs */ "./node_modules/protobufjs/index.js")); -const proto_includes_1 = __webpack_require__(/*! ./proto-includes */ "./src/clients/modules/proto-includes.ts"); -protobufjs_1.default.util.Long = long_1.default; -protobufjs_1.default.configure(); -class Composer { - composeMsgPlaceOrder(address, subaccountNumber, clientId, clobPairId, orderFlags, goodTilBlock, goodTilBlockTime, side, quantums, subticks, timeInForce, reduceOnly, clientMetadata, conditionType = proto_includes_1.Order_ConditionType.CONDITION_TYPE_UNSPECIFIED, conditionalOrderTriggerSubticks = long_1.default.fromInt(0)) { - this.validateGoodTilBlockAndTime(orderFlags, goodTilBlock, goodTilBlockTime); - const subaccountId = { - owner: address, - number: subaccountNumber, - }; - const orderId = { - subaccountId, - clientId, - orderFlags, - clobPairId, - }; - const order = { - orderId, - side, - quantums, - subticks, - goodTilBlock: goodTilBlock === 0 ? undefined : goodTilBlock, - goodTilBlockTime: goodTilBlock === 0 ? goodTilBlockTime : undefined, - timeInForce, - reduceOnly, - clientMetadata: clientMetadata !== null && clientMetadata !== void 0 ? clientMetadata : 0, - conditionType, - conditionalOrderTriggerSubticks, - }; - const msg = { - order, - }; - return { - typeUrl: '/dydxprotocol.clob.MsgPlaceOrder', - value: msg, - }; +exports.deposit = deposit; +async function withdraw(payload) { + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectNetwork() first'); + } + const wallet = globalThis.wallet; + if (wallet === undefined) { + throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); + } + const json = JSON.parse(payload); + const subaccountNumber = json.subaccountNumber; + if (subaccountNumber === undefined) { + throw new errors_1.UserError('subaccountNumber is not set'); + } + const amount = json.amount; + if (amount === undefined) { + throw new errors_1.UserError('amount is not set'); + } + const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber); + const tx = await client.withdrawFromSubaccount(subaccount, amount, json.recipient); + return (0, helpers_1.encodeJson)(tx); } - composeMsgCancelOrder(address, subaccountNumber, clientId, clobPairId, orderFlags, goodTilBlock, goodTilBlockTime) { - this.validateGoodTilBlockAndTime(orderFlags, goodTilBlock, goodTilBlockTime); - const subaccountId = { - owner: address, - number: subaccountNumber, - }; - const orderId = { - subaccountId, - clientId, - orderFlags, - clobPairId, - }; - const msg = { - orderId, - goodTilBlock: goodTilBlock === 0 ? undefined : goodTilBlock, - goodTilBlockTime: goodTilBlock === 0 ? goodTilBlockTime : undefined, - }; - return { - typeUrl: '/dydxprotocol.clob.MsgCancelOrder', - value: msg, - }; + catch (error) { + return wrappedError(error); } - composeMsgTransfer(address, subaccountNumber, recipientAddress, recipientSubaccountNumber, assetId, amount) { - const sender = { - owner: address, - number: subaccountNumber, - }; - const recipient = { - owner: recipientAddress, - number: recipientSubaccountNumber, - }; - const transfer = { - sender, - recipient, - assetId, - amount, - }; - const msg = { - transfer, - }; - return { - typeUrl: '/dydxprotocol.sending.MsgCreateTransfer', - value: msg, +} +exports.withdraw = withdraw; +async function faucet(payload) { + try { + const faucetClient = globalThis.faucetClient; + if (!faucetClient) { + throw new errors_1.UserError('faucetClient is not connected. Call connectNetwork() first'); + } + const wallet = globalThis.wallet; + if (wallet === undefined) { + throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); + } + const json = JSON.parse(payload); + const subaccountNumber = json.subaccountNumber; + if (subaccountNumber === undefined) { + throw new errors_1.UserError('subaccountNumber is not set'); + } + const amount = json.amount; + if (amount === undefined) { + throw new errors_1.UserError('amount is not set'); + } + const response = await faucetClient.fill(wallet.address, subaccountNumber, amount); + const sanitized = { + data: response.data, + status: response.status, + headers: response.headers, }; + return (0, helpers_1.encodeJson)(sanitized); } - composeMsgDepositToSubaccount(address, subaccountNumber, assetId, quantums) { - const recipient = { - owner: address, - number: subaccountNumber, - }; - const msg = { - sender: address, - recipient, - assetId, - quantums, - }; - return { - typeUrl: '/dydxprotocol.sending.MsgDepositToSubaccount', - value: msg, - }; + catch (error) { + return wrappedError(error); } - composeMsgWithdrawFromSubaccount(address, subaccountNumber, assetId, quantums, recipient = address) { - const sender = { - owner: address, - number: subaccountNumber, - }; - const msg = { - sender, - recipient, - assetId, - quantums, - }; - return { - typeUrl: '/dydxprotocol.sending.MsgWithdrawFromSubaccount', - value: msg, +} +exports.faucet = faucet; +async function withdrawToIBC(subaccountNumber, amount, payload) { + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectClient() first'); + } + const wallet = globalThis.wallet; + if (wallet === undefined) { + throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); + } + const decode = (str) => Buffer.from(str, 'base64').toString('binary'); + const decoded = decode(payload); + const json = JSON.parse(decoded); + const ibcMsg = { + typeUrl: json.msgTypeUrl, + value: { + ...json.msg, + // Squid returns timeoutTimestamp as Long, but the signer expects BigInt + timeoutTimestamp: json.msg.timeoutTimestamp + ? BigInt(long_1.default.fromValue(json.msg.timeoutTimestamp).toString()) + : undefined, + }, }; + const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber); + const subaccountMsg = client.withdrawFromSubaccountMessage(subaccount, amount); + const msgs = [subaccountMsg, ibcMsg]; + const encodeObjects = new Promise((resolve) => resolve(msgs)); + const tx = await client.send(wallet, () => { + return encodeObjects; + }, false, undefined, undefined); + return (0, helpers_1.encodeJson)(tx); } - composeMsgSendToken(address, recipient, coinDenom, quantums) { - const coin = { - denom: coinDenom, - amount: quantums, - }; - const msg = { - fromAddress: address, - toAddress: recipient, - amount: [coin], - }; - return { - typeUrl: '/cosmos.bank.v1beta1.MsgSend', - value: msg, - }; + catch (error) { + return wrappedError(error); } - validateGoodTilBlockAndTime(orderFlags, goodTilBlock, goodTilBlockTime) { - if (orderFlags === 0 && goodTilBlock === 0) { - throw new Error('goodTilBlock must be set if orderFlags is 0'); +} +exports.withdrawToIBC = withdrawToIBC; +async function transferNativeToken(payload) { + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectClient() first'); } - else if (orderFlags !== 0 && goodTilBlockTime === 0) { - throw new Error('goodTilBlockTime must be set if orderFlags is not 0'); + const wallet = globalThis.wallet; + if (wallet === undefined) { + throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); + } + const json = JSON.parse(payload); + const amount = json.amount; + if (amount === undefined) { + throw new errors_1.UserError('amount is not set'); } + const msg = client.sendTokenMessage(wallet, amount, json.recipient); + const msgs = [msg]; + const encodeObjects = new Promise((resolve) => resolve(msgs)); + const tx = await client.send(wallet, () => { + return encodeObjects; + }, false); + return (0, helpers_1.encodeJson)(tx); + } + catch (error) { + return wrappedError(error); } } -exports.Composer = Composer; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50cy9tb2R1bGVzL2NvbXBvc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUdBLGdEQUF3QjtBQUN4Qiw0REFBa0M7QUFFbEMscURBYTBCO0FBRTFCLG9CQUFRLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxjQUFJLENBQUM7QUFDMUIsb0JBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUVyQixNQUFhLFFBQVE7SUFDWixvQkFBb0IsQ0FDekIsT0FBZSxFQUNmLGdCQUF3QixFQUN4QixRQUFnQixFQUNoQixVQUFrQixFQUNsQixVQUFrQixFQUNsQixZQUFvQixFQUNwQixnQkFBd0IsRUFDeEIsSUFBZ0IsRUFDaEIsUUFBYyxFQUNkLFFBQWMsRUFDZCxXQUE4QixFQUM5QixVQUFtQixFQUNuQixjQUFzQixFQUN0QixnQkFBcUMsb0NBQW1CLENBQUMsMEJBQTBCLEVBQ25GLGtDQUF3QyxjQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUV2RCxJQUFJLENBQUMsMkJBQTJCLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTdFLE1BQU0sWUFBWSxHQUFpQjtZQUNqQyxLQUFLLEVBQUUsT0FBTztZQUNkLE1BQU0sRUFBRSxnQkFBZ0I7U0FDekIsQ0FBQztRQUVGLE1BQU0sT0FBTyxHQUFZO1lBQ3ZCLFlBQVk7WUFDWixRQUFRO1lBQ1IsVUFBVTtZQUNWLFVBQVU7U0FDWCxDQUFDO1FBQ0YsTUFBTSxLQUFLLEdBQVU7WUFDbkIsT0FBTztZQUNQLElBQUk7WUFDSixRQUFRO1lBQ1IsUUFBUTtZQUNSLFlBQVksRUFBRSxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVk7WUFDM0QsZ0JBQWdCLEVBQUUsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMs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 - -/***/ }), - -/***/ "./src/clients/modules/get.ts": -/*!************************************!*\ - !*** ./src/clients/modules/get.ts ***! - \************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; +exports.transferNativeToken = transferNativeToken; +async function getAccountBalance() { + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectClient() first'); + } + const wallet = globalThis.wallet; + if (wallet === undefined) { + throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); + } + const address = globalThis.wallet.address; + const tx = await client.validatorClient.get + .getAccountBalance(address, client.validatorClient.config.denoms.USDC_DENOM); + return (0, helpers_1.encodeJson)(tx); } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Get = void 0; -const stargate_1 = __webpack_require__(/*! @cosmjs/stargate */ "./node_modules/@cosmjs/stargate/build/index.js"); -const AuthModule = __importStar(__webpack_require__(/*! cosmjs-types/cosmos/auth/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/auth/v1beta1/query.js")); -const BankModule = __importStar(__webpack_require__(/*! cosmjs-types/cosmos/bank/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/bank/v1beta1/query.js")); -const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); -const protobufjs_1 = __importDefault(__webpack_require__(/*! protobufjs */ "./node_modules/protobufjs/index.js")); -const constants_1 = __webpack_require__(/*! ../constants */ "./src/clients/constants.ts"); -const errors_1 = __webpack_require__(/*! ../lib/errors */ "./src/clients/lib/errors.ts"); -const proto_includes_1 = __webpack_require__(/*! ./proto-includes */ "./src/clients/modules/proto-includes.ts"); -// Required for encoding and decoding queries that are of type Long. -// Must be done once but since the individal modules should be usable without -// dYdXClient - must be set in each module that encounters encoding/decoding Longs. -// Reference: https://github.com/protobufjs/protobuf.js/issues/921 -protobufjs_1.default.util.Long = long_1.default; -protobufjs_1.default.configure(); -class Get { - constructor(tendermintClient, stargateQueryClient) { - this.tendermintClient = tendermintClient; - this.stargateQueryClient = stargateQueryClient; + catch (error) { + return wrappedError(error); } - /** - * @description Get latest block - * - * @returns last block structure - */ - async latestBlock() { - return this.tendermintClient.getBlock(); +} +exports.getAccountBalance = getAccountBalance; +async function getAccountBalances() { + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectClient() first'); + } + const wallet = globalThis.wallet; + if (wallet === undefined) { + throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); + } + const address = globalThis.wallet.address; + const tx = await client.validatorClient.get.getAccountBalances(address); + return (0, helpers_1.encodeJson)(tx); } - /** - * @description Get latest block height - * - * @returns last height - */ - async latestBlockHeight() { - const block = await this.latestBlock(); - return block.header.height; + catch (error) { + return wrappedError(error); } - /** - * @description Get all fee tier params. - * - * @returns All fee tier params. - */ - async getFeeTiers() { - const requestData = Uint8Array.from(proto_includes_1.FeeTierModule.QueryPerpetualFeeParamsRequest.encode({}) - .finish()); - const data = await this.sendQuery('/dydxprotocol.feetiers.Query/PerpetualFeeParams', requestData); - return proto_includes_1.FeeTierModule.QueryPerpetualFeeParamsResponse.decode(data); +} +exports.getAccountBalances = getAccountBalances; +async function getUserStats(payload) { + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectClient() first'); + } + const json = JSON.parse(payload); + const address = json.address; + if (address === undefined) { + throw new errors_1.UserError('address is not set'); + } + const tx = await client.validatorClient.get.getUserStats(address); + return (0, helpers_1.encodeJson)(tx); } - /** - * @description Get fee tier the user belongs to - * - * @returns the fee tier user belongs to. - */ - async getUserFeeTier(address) { - const requestData = Uint8Array.from(proto_includes_1.FeeTierModule.QueryUserFeeTierRequest.encode({ user: address }) - .finish()); - const data = await this.sendQuery('/dydxprotocol.feetiers.Query/UserFeeTier', requestData); - return proto_includes_1.FeeTierModule.QueryUserFeeTierResponse.decode(data); + catch (error) { + return wrappedError(error); } - /** - * @description Get get trading stats - * - * @returns return the user's taker and maker volume - */ - async getUserStats(address) { - const requestData = Uint8Array.from(proto_includes_1.StatsModule.QueryUserStatsRequest.encode({ user: address }) - .finish()); - const data = await this.sendQuery('/dydxprotocol.stats.Query/UserStats', requestData); - return proto_includes_1.StatsModule.QueryUserStatsResponse.decode(data).stats; +} +exports.getUserStats = getUserStats; +async function simulateDeposit(payload) { + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectClient() first'); + } + const wallet = globalThis.wallet; + if (wallet === undefined) { + throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); + } + const json = JSON.parse(payload); + const subaccountNumber = json.subaccountNumber; + if (subaccountNumber === undefined) { + throw new errors_1.UserError('subaccountNumber is not set'); + } + const amount = json.amount; + if (amount === undefined) { + throw new errors_1.UserError('amount is not set'); + } + const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber); + const msg = client.depositToSubaccountMessage(subaccount, amount); + const msgs = [msg]; + const encodeObjects = new Promise((resolve) => resolve(msgs)); + const stdFee = await client.simulate(globalThis.wallet, () => { + return encodeObjects; + }); + return JSON.stringify(stdFee); } - /** - * @description Get all balances for an account. - * - * @returns Array of Coin balances for all tokens held by an account. - */ - async getAccountBalances(address) { - const requestData = Uint8Array.from(BankModule.QueryAllBalancesRequest.encode({ address }) - .finish()); - const data = await this.sendQuery('/cosmos.bank.v1beta1.Query/AllBalances', requestData); - return BankModule.QueryAllBalancesResponse.decode(data).balances; + catch (error) { + return wrappedError(error); } - /** - * @description Get balances of one denom for an account. - * - * @returns Coin balance for denom tokens held by an account. - */ - async getAccountBalance(address, denom) { - const requestData = Uint8Array.from(BankModule.QueryBalanceRequest.encode({ - address, - denom, - }) - .finish()); - const data = await this.sendQuery('/cosmos.bank.v1beta1.Query/Balance', requestData); - const coin = BankModule.QueryBalanceResponse.decode(data).balance; - return coin; +} +exports.simulateDeposit = simulateDeposit; +async function simulateWithdraw(payload) { + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectClient() first'); + } + const wallet = globalThis.wallet; + if (wallet === undefined) { + throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); + } + const json = JSON.parse(payload); + const subaccountNumber = json.subaccountNumber; + if (subaccountNumber === undefined) { + throw new errors_1.UserError('subaccountNumber is not set'); + } + const amount = json.amount; + if (amount === undefined) { + throw new errors_1.UserError('amount is not set'); + } + const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber); + const msg = client.withdrawFromSubaccountMessage(subaccount, amount, json.recipient); + const msgs = [msg]; + const encodeObjects = new Promise((resolve) => resolve(msgs)); + const stdFee = await client.simulate(globalThis.wallet, () => { + return encodeObjects; + }); + return (0, helpers_1.encodeJson)(stdFee); } - /** - * @description Get all subaccounts - * - * @returns All subaccounts - */ - async getSubaccounts() { - const requestData = Uint8Array.from(proto_includes_1.SubaccountsModule.QueryAllSubaccountRequest.encode({}) - .finish()); - const data = await this.sendQuery('/dydxprotocol.subaccounts.Query/SubaccountAll', requestData); - return proto_includes_1.SubaccountsModule.QuerySubaccountAllResponse.decode(data); + catch (error) { + return wrappedError(error); } - /** - * @description Get a specific subaccount for an account. - * - * @returns Subaccount for account with given accountNumber or default subaccount if none exists. - */ - async getSubaccount(address, accountNumber) { - const requestData = Uint8Array.from(proto_includes_1.SubaccountsModule.QueryGetSubaccountRequest.encode({ - owner: address, - number: accountNumber, - }) - .finish()); - const data = await this.sendQuery('/dydxprotocol.subaccounts.Query/Subaccount', requestData); - return proto_includes_1.SubaccountsModule.QuerySubaccountResponse.decode(data); +} +exports.simulateWithdraw = simulateWithdraw; +async function simulateTransferNativeToken(payload) { + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectClient() first'); + } + const wallet = globalThis.wallet; + if (wallet === undefined) { + throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); + } + const json = JSON.parse(payload); + const recipient = json.recipient; + if (recipient === undefined) { + throw new errors_1.UserError('recipient is not set'); + } + const amount = json.amount; + if (amount === undefined) { + throw new errors_1.UserError('amount is not set'); + } + const msg = client.sendTokenMessage(wallet, amount, json.recipient); + const msgs = [msg]; + const encodeObjects = new Promise((resolve) => resolve(msgs)); + const stdFee = await client.simulate(globalThis.wallet, () => { + return encodeObjects; + }); + return (0, helpers_1.encodeJson)(stdFee); } - /** - * @description Get the params for the rewards module. - * - * @returns Params for the rewards module. - */ - async getRewardsParams() { - const requestData = Uint8Array.from(proto_includes_1.RewardsModule.QueryParamsRequest.encode({}) - .finish()); - const data = await this.sendQuery('/dydxprotocol.rewards.Query/Params', requestData); - return proto_includes_1.RewardsModule.QueryParamsResponse.decode(data); + catch (error) { + return wrappedError(error); } - /** - * @description Get all Clob Pairs. - * - * @returns Information on all Clob Pairs. - */ - async getAllClobPairs() { - const requestData = Uint8Array.from(proto_includes_1.ClobModule.QueryAllClobPairRequest.encode({ pagination: constants_1.PAGE_REQUEST }) - .finish()); - const data = await this.sendQuery('/dydxprotocol.clob.Query/ClobPairAll', requestData); - return proto_includes_1.ClobModule.QueryClobPairAllResponse.decode(data); +} +exports.simulateTransferNativeToken = simulateTransferNativeToken; +async function signRawPlaceOrder(subaccountNumber, clientId, clobPairId, side, quantums, subticks, timeInForce, orderFlags, reduceOnly, goodTilBlock, goodTilBlockTime, clientMetadata) { + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectClient() first'); + } + const wallet = globalThis.wallet; + if (wallet === undefined) { + throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); + } + const msgs = new Promise((resolve) => { + const msg = client.validatorClient.post.composer.composeMsgPlaceOrder(wallet.address, subaccountNumber, clientId, clobPairId, orderFlags, goodTilBlock, goodTilBlockTime, side, quantums, subticks, timeInForce, reduceOnly, clientMetadata !== null && clientMetadata !== void 0 ? clientMetadata : 0); + resolve([msg]); + }); + const signed = await client.sign(wallet, () => msgs, true); + return Buffer.from(signed).toString('base64'); } - /** - * @description Get Clob Pair for an Id or the promise is rejected if no pair exists. - * - * @returns Clob Pair for a given Clob Pair Id. - */ - async getClobPair(pairId) { - const requestData = Uint8Array.from(proto_includes_1.ClobModule.QueryGetClobPairRequest.encode({ id: pairId }) - .finish()); - const data = await this.sendQuery('/dydxprotocol.clob.Query/ClobPair', requestData); - return proto_includes_1.ClobModule.QueryClobPairResponse.decode(data); + catch (error) { + return wrappedError(error); } - /** - * @description Get all Prices across markets. - * - * @returns Prices across all markets. - */ - async getAllPrices() { - const requestData = Uint8Array.from(proto_includes_1.PricesModule.QueryAllMarketPricesRequest.encode({ pagination: constants_1.PAGE_REQUEST }) - .finish()); - const data = await this.sendQuery('/dydxprotocol.prices.Query/AllMarketPrices', requestData); - return proto_includes_1.PricesModule.QueryAllMarketPricesResponse.decode(data); +} +exports.signRawPlaceOrder = signRawPlaceOrder; +async function signPlaceOrder(subaccountNumber, marketId, type, side, price, +// trigger_price: number, // not used for MARKET and LIMIT +size, clientId, timeInForce, goodTilTimeInSeconds, execution, postOnly, reduceOnly) { + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectClient() first'); + } + const wallet = globalThis.wallet; + if (wallet === undefined) { + throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); + } + const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber); + const signed = await client.signPlaceOrder(subaccount, marketId, type, side, price, size, clientId, timeInForce, goodTilTimeInSeconds, execution, postOnly, reduceOnly); + return signed; } - /** - * @description Get Price for a clob Id or the promise is rejected if none exists. - * - * @returns Price for a given Market Id. - */ - async getPrice(marketId) { - const requestData = Uint8Array.from(proto_includes_1.PricesModule.QueryMarketPriceRequest.encode({ id: marketId }) - .finish()); - const data = await this.sendQuery('/dydxprotocol.prices.Query/MarketPrice', requestData); - return proto_includes_1.PricesModule.QueryMarketPriceResponse.decode(data); + catch (error) { + return wrappedError(error); } - /** - * @description Get all Perpetuals. - * - * @returns Information on all Perpetual pairs. - */ - async getAllPerpetuals() { - const requestData = Uint8Array.from(proto_includes_1.PerpetualsModule.QueryAllPerpetualsRequest.encode({ pagination: constants_1.PAGE_REQUEST }) - .finish()); - const data = await this.sendQuery('/dydxprotocol.perpetuals.Query/AllPerpetuals', requestData); - return proto_includes_1.PerpetualsModule.QueryAllPerpetualsResponse.decode(data); +} +exports.signPlaceOrder = signPlaceOrder; +async function signCancelOrder(subaccountNumber, clientId, orderFlags, clobPairId, goodTilBlock, goodTilBlockTime) { + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectClient() first'); + } + const wallet = globalThis.wallet; + if (wallet === undefined) { + throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); + } + const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber); + const signed = await client.signCancelOrder(subaccount, clientId, orderFlags, clobPairId, goodTilBlock, goodTilBlockTime); + return signed; } - /** - * @description Get Perpetual for an Id or the promise is rejected if none exists. - * - * @returns The Perpetual for a given Perpetual Id. - */ - async getPerpetual(perpetualId) { - const requestData = Uint8Array.from(proto_includes_1.PerpetualsModule.QueryPerpetualRequest.encode({ id: perpetualId }) - .finish()); - const data = await this.sendQuery('/dydxprotocol.perpetuals.Query/Perpetual', requestData); - return proto_includes_1.PerpetualsModule.QueryPerpetualResponse.decode(data); + catch (error) { + return wrappedError(error); } - /** - * @description Get Account for an address or the promise is rejected if the account - * does not exist on-chain. - * - * @throws UnexpectedClientError if a malformed response is returned with no GRPC error. - * @returns An account for a given address. - */ - async getAccount(address) { - const requestData = Uint8Array.from(AuthModule.QueryAccountRequest.encode({ address }) - .finish()); - const data = await this.sendQuery('/cosmos.auth.v1beta1.Query/Account', requestData); - const rawAccount = AuthModule.QueryAccountResponse.decode(data).account; - // The promise should have been rejected if the rawAccount was undefined. - if (rawAccount === undefined) { - throw new errors_1.UnexpectedClientError(); +} +exports.signCancelOrder = signCancelOrder; +async function encodeAccountRequestData(address) { + return new Promise((resolve, reject) => { + try { + const requestData = Uint8Array.from(AuthModule.QueryAccountRequest.encode({ address }).finish()); + resolve(Buffer.from(requestData).toString('hex')); } - return (0, stargate_1.accountFromAny)(rawAccount); + catch (error) { + reject(error); + } + }); +} +exports.encodeAccountRequestData = encodeAccountRequestData; +async function decodeAccountResponseValue(value) { + return new Promise((resolve, reject) => { + try { + const rawData = Buffer.from(value, 'base64'); + const rawAccount = AuthModule.QueryAccountResponse.decode(rawData).account; + // The promise should have been rejected if the rawAccount was undefined. + if (rawAccount === undefined) { + throw Error('rawAccount is undefined'); + } + const account = (0, stargate_1.accountFromAny)(rawAccount); + resolve((0, helpers_1.encodeJson)(account)); + } + catch (error) { + reject(error); + } + }); +} +exports.decodeAccountResponseValue = decodeAccountResponseValue; +async function getOptimalNode(endpointUrlsAsJson) { + /* + param: + endpointUrlsAsJson: + { + "endpointUrls": [ + "https://rpc.testnet.near.org" + ], + "chainId": "testnet" + } + */ + try { + const param = JSON.parse(endpointUrlsAsJson); + const endpointUrls = param.endpointUrls; + const chainId = param.chainId; + const networkOptimizer = new network_optimizer_1.NetworkOptimizer(); + const optimalUrl = await networkOptimizer.findOptimalNode(endpointUrls, chainId); + const url = { + url: optimalUrl, + }; + return (0, helpers_1.encodeJson)(url); } - /** - * @description Get equity tier limit configuration. - * - * @returns Information on all equity tiers that are configured. - */ - async getEquityTierLimitConfiguration() { - const requestData = Uint8Array.from(proto_includes_1.ClobModule.QueryEquityTierLimitConfigurationRequest.encode({}) - .finish()); - const data = await this.sendQuery('/dydxprotocol.clob.Query/EquityTierLimitConfiguration', requestData); - return proto_includes_1.ClobModule.QueryEquityTierLimitConfigurationResponse.decode(data); + catch (error) { + return wrappedError(error); } - /** - * - * @description Get all delegations from a delegator. - * - * @returns All delegations from a delegator. - */ - async getDelegatorDelegations(delegatorAddr) { - const requestData = Uint8Array.from(proto_includes_1.StakingModule.QueryDelegatorDelegationsRequest.encode({ - delegatorAddr, - pagination: constants_1.PAGE_REQUEST, - }) - .finish()); - const data = await this.sendQuery('/cosmos.staking.v1beta1.Query/DelegatorDelegations', requestData); - return proto_includes_1.StakingModule.QueryDelegatorDelegationsResponse.decode(data); +} +exports.getOptimalNode = getOptimalNode; +async function getOptimalIndexer(endpointUrlsAsJson) { + /* + param: + endpointUrlsAsJson: + { + "endpointUrls": [ + "https://api.example.org" + ] + } + */ + try { + const param = JSON.parse(endpointUrlsAsJson); + const endpointUrls = param.endpointUrls; + const networkOptimizer = new network_optimizer_1.NetworkOptimizer(); + const optimalUrl = await networkOptimizer.findOptimalIndexer(endpointUrls); + const url = { + url: optimalUrl, + }; + return (0, helpers_1.encodeJson)(url); } - /** - * - * @description Get all unbonding delegations from a delegator. - * - * @returns All unbonding delegations from a delegator. - */ - async getDelegatorUnbondingDelegations(delegatorAddr) { - const requestData = Uint8Array.from(proto_includes_1.StakingModule.QueryDelegatorUnbondingDelegationsRequest.encode({ - delegatorAddr, - pagination: constants_1.PAGE_REQUEST, - }) - .finish()); - const data = await this.sendQuery('/cosmos.staking.v1beta1.Query/DelegatorUnbondingDelegations', requestData); - return proto_includes_1.StakingModule.QueryDelegatorUnbondingDelegationsResponse.decode(data); + catch (error) { + return wrappedError(error); } - /** - * @description Get all delayed complete bridge messages, optionally filtered by address. - * - * @returns Information on all delayed complete bridge messages. - */ - async getDelayedCompleteBridgeMessages(address = '') { - const requestData = Uint8Array.from(proto_includes_1.BridgeModule.QueryDelayedCompleteBridgeMessagesRequest.encode({ address }) - .finish()); - const data = await this.sendQuery('/dydxprotocol.bridge.Query/DelayedCompleteBridgeMessages', requestData); - return proto_includes_1.BridgeModule.QueryDelayedCompleteBridgeMessagesResponse.decode(data); +} +exports.getOptimalIndexer = getOptimalIndexer; +async function getRewardsParams() { + var _a; + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectClient() first'); + } + const rewardsParams = await ((_a = globalThis.client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.getRewardsParams()); + return (0, helpers_1.encodeJson)(rewardsParams); } - /** - * @description Get all validators of a status. - * - * @returns all validators of a status. - */ - async getAllValidators(status = '') { - const requestData = Uint8Array.from(proto_includes_1.StakingModule.QueryValidatorsRequest - .encode({ - status, - pagination: constants_1.PAGE_REQUEST, - }) - .finish()); - const data = await this.sendQuery('/cosmos.staking.v1beta1.Query/Validators', requestData); - return proto_includes_1.StakingModule.QueryValidatorsResponse.decode(data); + catch (e) { + return wrappedError(e); } - async sendQuery(requestUrl, requestData) { - const resp = await this.stargateQueryClient.queryAbci(requestUrl, requestData); - return resp.value; +} +exports.getRewardsParams = getRewardsParams; +async function getDelegatorDelegations(payload) { + var _a; + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectClient() first'); + } + const json = JSON.parse(payload); + const address = json.address; + if (address === undefined) { + throw new errors_1.UserError('address is not set'); + } + const delegations = await ((_a = globalThis + .client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.getDelegatorDelegations(address)); + return (0, helpers_1.encodeJson)(delegations); + } + catch (e) { + return wrappedError(e); } } -exports.Get = Get; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NsaWVudHMvbW9kdWxlcy9nZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSwrQ0FPMEI7QUFDMUIsbUZBQXFFO0FBQ3JFLG1GQUFxRTtBQUVyRSxnREFBd0I7QUFDeEIsNERBQWtDO0FBRWxDLDRDQUE0QztBQUM1QywwQ0FBc0Q7QUFDdEQscURBVTBCO0FBRzFCLG9FQUFvRTtBQUNwRSw2RUFBNkU7QUFDN0UsbUZBQW1GO0FBQ25GLGtFQUFrRTtBQUNsRSxvQkFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBSSxDQUFDO0FBQzFCLG9CQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7QUFFckIsTUFBYSxHQUFHO0lBSWQsWUFDRSxnQkFBa0MsRUFDbEMsbUJBQXdEO1FBRXhELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsV0FBVztRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGlCQUFpQjtRQUNyQixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLFdBQVc7UUFDZixNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUNqQyw4QkFBYSxDQUFDLDhCQUE4QixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7YUFDcEQsTUFBTSxFQUFFLENBQ1osQ0FBQztRQUVGLE1B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 - -/***/ }), - -/***/ "./src/clients/modules/local-wallet.ts": -/*!*********************************************!*\ - !*** ./src/clients/modules/local-wallet.ts ***! - \*********************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const amino_1 = __webpack_require__(/*! @cosmjs/amino */ "./node_modules/@cosmjs/amino/build/index.js"); -const proto_signing_1 = __webpack_require__(/*! @cosmjs/proto-signing */ "./node_modules/@cosmjs/proto-signing/build/index.js"); -const stargate_1 = __webpack_require__(/*! @cosmjs/stargate */ "./node_modules/@cosmjs/stargate/build/index.js"); -const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); -const protobufjs_1 = __importDefault(__webpack_require__(/*! protobufjs */ "./node_modules/protobufjs/index.js")); -const registry_1 = __webpack_require__(/*! ../lib/registry */ "./src/clients/lib/registry.ts"); -const signer_1 = __webpack_require__(/*! ./signer */ "./src/clients/modules/signer.ts"); -// Required for encoding and decoding queries that are of type Long. -protobufjs_1.default.util.Long = long_1.default; -protobufjs_1.default.configure(); -class LocalWallet { - static async fromOfflineSigner(signer) { - const wallet = new LocalWallet(); - await wallet.setSigner(signer); - return wallet; +exports.getDelegatorDelegations = getDelegatorDelegations; +async function getDelegatorUnbondingDelegations(payload) { + var _a; + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectClient() first'); + } + const json = JSON.parse(payload); + const address = json.address; + if (address === undefined) { + throw new errors_1.UserError('address is not set'); + } + const delegations = await ((_a = globalThis + .client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.getDelegatorUnbondingDelegations(address)); + return (0, helpers_1.encodeJson)(delegations); } - static async fromMnemonic(mnemonic, prefix) { - const wallet = new LocalWallet(); - await wallet.setMnemonic(mnemonic, prefix); - return wallet; + catch (e) { + return wrappedError(e); } - async setSigner(signer) { - this.offlineSigner = signer; - const stargateClient = await stargate_1.SigningStargateClient.offline(signer, { - registry: (0, registry_1.generateRegistry)(), - }); - const accountData = await signer.getAccounts(); - const firstAccount = accountData[0]; - this.accounts = [...accountData]; - this.address = firstAccount.address; - this.pubKey = (0, amino_1.encodeSecp256k1Pubkey)(firstAccount.pubkey); - this.signer = new signer_1.TransactionSigner(this.address, stargateClient); +} +exports.getDelegatorUnbondingDelegations = getDelegatorUnbondingDelegations; +async function getMarketPrice(payload) { + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectClient() first'); + } + const json = JSON.parse(payload); + const marketId = json.marketId; + if (marketId === undefined) { + throw new errors_1.UserError('marketId is not set'); + } + const marketPrice = await client.validatorClient.get.getPrice(marketId); + return (0, helpers_1.encodeJson)(marketPrice); } - async setMnemonic(mnemonic, prefix) { - const signer = await proto_signing_1.DirectSecp256k1HdWallet.fromMnemonic(mnemonic, { prefix }); - return this.setSigner(signer); + catch (e) { + return wrappedError(e); } - async signTransaction(messages, transactionOptions, fee, memo = '') { - return this.signer.signTransaction(messages, transactionOptions, fee, memo); +} +exports.getMarketPrice = getMarketPrice; +async function getNobleBalance() { + try { + const client = globalThis.nobleClient; + if (client === undefined || !client.isConnected) { + throw new errors_1.UserError('client is not connected.'); + } + const coin = await client.getAccountBalance('uusdc'); + return (0, helpers_1.encodeJson)(coin); + } + catch (error) { + return wrappedError(error); } } -exports["default"] = LocalWallet; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtd2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NsaWVudHMvbW9kdWxlcy9sb2NhbC13YWxsZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5Q0FJdUI7QUFDdkIseURBSytCO0FBQy9CLCtDQUUwQjtBQUMxQixnREFBd0I7QUFDeEIsNERBQWtDO0FBRWxDLDhDQUFtRDtBQUVuRCxxQ0FBNkM7QUFFN0Msb0VBQW9FO0FBQ3BFLG9CQUFRLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxjQUFJLENBQUM7QUFDMUIsb0JBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUVyQixNQUFxQixXQUFXO0lBTzVCLE1BQU0sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBb0I7UUFDakQsTUFBTSxNQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNqQyxNQUFNLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0IsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQWdCLEVBQUUsTUFBZTtRQUN6RCxNQUFNLE1BQU0sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDM0MsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBcUI7UUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7UUFDNUIsTUFBTSxjQUFjLEdBQUcsTUFBTSxnQ0FBcUIsQ0FBQyxPQUFPLENBQ3hELE1BQU0sRUFDTjtZQUNFLFFBQVEsRUFBRSxJQUFBLDJCQUFnQixHQUFFO1NBQzdCLENBQ0YsQ0FBQztRQUNGLE1BQU0sV0FBVyxHQUFHLE1BQU0sTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQy9DLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFBLDZCQUFxQixFQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksMEJBQWlCLENBQ2pDLElBQUksQ0FBQyxPQUFPLEVBQ1osY0FBYyxDQUNmLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFnQixFQUFFLE1BQWU7UUFDakQsTUFBTSxNQUFNLEdBQUcsTUFBTSx1Q0FBdUIsQ0FBQyxZQUFZLENBQ3ZELFFBQVEsRUFDUixFQUFFLE1BQU0sRUFBRSxDQUNYLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxlQUFlLENBQzFCLFFBQXdCLEVBQ3hCLGtCQUFzQyxFQUN0QyxHQUFZLEVBQ1osT0FBZSxFQUFFO1FBRWpCLE9BQU8sSUFBSSxDQUFDLE1BQU8sQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLGtCQUFrQixFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvRSxDQUFDO0NBQ0o7QUF0REQsOEJBc0RDIn0= - -/***/ }), - -/***/ "./src/clients/modules/markets.ts": -/*!****************************************!*\ - !*** ./src/clients/modules/markets.ts ***! - \****************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const constants_1 = __webpack_require__(/*! ../constants */ "./src/clients/constants.ts"); -const rest_1 = __importDefault(__webpack_require__(/*! ./rest */ "./src/clients/modules/rest.ts")); -/** - * @description REST endpoints for data unrelated to a particular address. - */ -class MarketsClient extends rest_1.default { - async getPerpetualMarkets(market) { - const uri = '/v4/perpetualMarkets'; - return this.get(uri, { ticker: market }); +exports.getNobleBalance = getNobleBalance; +async function sendNobleIBC(squidPayload) { + try { + const client = globalThis.nobleClient; + if (client === undefined || !client.isConnected) { + throw new errors_1.UserError('client is not connected.'); + } + const json = JSON.parse(squidPayload); + const ibcMsg = { + typeUrl: json.msgTypeUrl, + value: { + ...json.msg, + // Squid returns timeoutTimestamp as Long, but the signer expects BigInt + timeoutTimestamp: json.msg.timeoutTimestamp + ? BigInt(long_1.default.fromValue(json.msg.timeoutTimestamp).toString()) + : undefined, + }, + }; + const fee = await client.simulateTransaction([ibcMsg]); + if (!ibcMsg.value.token) { + throw new errors_1.UserError('Payload missing token field'); + } + // take out fee from amount before sweeping + const amount = parseInt(ibcMsg.value.token.amount, 10) - + Math.floor(parseInt(fee.amount[0].amount, 10) * constants_1.GAS_MULTIPLIER); + if (amount <= 0) { + throw new errors_1.UserError('noble balance does not cover fees'); + } + ibcMsg.value.token = (0, proto_signing_1.coin)(amount.toString(), ibcMsg.value.token.denom); + const tx = await client.IBCTransfer(ibcMsg); + return (0, helpers_1.encodeJson)(tx); } - async getPerpetualMarketOrderbook(market) { - const uri = `/v4/orderbooks/perpetualMarket/${market}`; - return this.get(uri); + catch (error) { + return wrappedError(error); } - async getPerpetualMarketTrades(market, startingBeforeOrAtHeight, limit) { - const uri = `/v4/trades/perpetualMarket/${market}`; - return this.get(uri, { - createdBeforeOrAtHeight: startingBeforeOrAtHeight, - limit, +} +exports.sendNobleIBC = sendNobleIBC; +async function withdrawToNobleIBC(payload) { + try { + const client = globalThis.client; + if (client === undefined) { + throw new errors_1.UserError('client is not connected. Call connectClient() first'); + } + const wallet = globalThis.wallet; + if (wallet === undefined) { + throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); + } + const json = JSON.parse(payload); + const { subaccountNumber, amount, ibcPayload } = json !== null && json !== void 0 ? json : {}; + const decode = (str) => Buffer.from(str, 'base64').toString('binary'); + const decoded = decode(ibcPayload); + const parsedIbcPayload = JSON.parse(decoded); + const msg = client.withdrawFromSubaccountMessage(new subaccount_1.SubaccountInfo(wallet, subaccountNumber), parseFloat(amount).toFixed(client.validatorClient.config.denoms.USDC_DECIMALS)); + const ibcMsg = { + typeUrl: parsedIbcPayload.msgTypeUrl, + value: { + ...parsedIbcPayload.msg, + // Squid returns timeoutTimestamp as Long, but the signer expects BigInt + timeoutTimestamp: parsedIbcPayload.msg.timeoutTimestamp + ? BigInt(long_1.default.fromValue(parsedIbcPayload.msg.timeoutTimestamp).toString()) + : undefined, + }, + }; + const tx = await client.send(wallet, () => Promise.resolve([msg, ibcMsg]), false); + return (0, helpers_1.encodeJson)({ + txHash: `0x${Buffer.from(tx === null || tx === void 0 ? void 0 : tx.hash).toString('hex')}`, }); } - async getPerpetualMarketCandles(market, resolution, fromISO, toISO, limit) { - const uri = `/v4/candles/perpetualMarkets/${market}`; - return this.get(uri, { - resolution, - fromISO, - toISO, - limit, - }); + catch (error) { + return wrappedError(error); } - async getPerpetualMarketHistoricalFunding(market, effectiveBeforeOrAt, effectiveBeforeOrAtHeight, limit) { - const uri = `/v4/historicalFunding/${market}`; - return this.get(uri, { - effectiveBeforeOrAt, - effectiveBeforeOrAtHeight, - limit, - }); +} +exports.withdrawToNobleIBC = withdrawToNobleIBC; +async function cctpWithdraw(squidPayload) { + try { + const client = globalThis.nobleClient; + if (client === undefined || !client.isConnected) { + throw new errors_1.UserError('client is not connected.'); + } + const json = JSON.parse(squidPayload); + const ibcMsg = { + typeUrl: json.typeUrl, + value: json.value, + }; + const fee = await client.simulateTransaction([ibcMsg]); + // take out fee from amount before sweeping + const amount = parseInt(ibcMsg.value.amount, 10) - + Math.floor(parseInt(fee.amount[0].amount, 10) * constants_1.GAS_MULTIPLIER); + if (amount <= 0) { + throw new Error('noble balance does not cover fees'); + } + ibcMsg.value.amount = amount.toString(); + const tx = await client.send([ibcMsg]); + return (0, helpers_1.encodeJson)(tx); } - async getPerpetualMarketSparklines(period = constants_1.TimePeriod.ONE_DAY) { - const uri = '/v4/sparklines'; - return this.get(uri, { - timePeriod: period, - }); + catch (error) { + return wrappedError(error); } } -exports["default"] = MarketsClient; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL21vZHVsZXMvbWFya2V0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUEwQztBQUUxQyxrREFBZ0M7QUFFaEM7O0dBRUc7QUFDSCxNQUFxQixhQUFjLFNBQVEsY0FBVTtJQUNuRCxLQUFLLENBQUMsbUJBQW1CLENBQUMsTUFBZTtRQUN2QyxNQUFNLEdBQUcsR0FBRyxzQkFBc0IsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxNQUFjO1FBQzlDLE1BQU0sR0FBRyxHQUFHLGtDQUFrQyxNQUFNLEVBQUUsQ0FBQztRQUN2RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyx3QkFBd0IsQ0FDNUIsTUFBYyxFQUNkLHdCQUF3QyxFQUN4QyxLQUFxQjtRQUVyQixNQUFNLEdBQUcsR0FBRyw4QkFBOEIsTUFBTSxFQUFFLENBQUM7UUFDbkQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNuQix1QkFBdUIsRUFBRSx3QkFBd0I7WUFDakQsS0FBSztTQUNOLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMseUJBQXlCLENBQzdCLE1BQWMsRUFDZCxVQUFrQixFQUNsQixPQUF1QixFQUN2QixLQUFxQixFQUNyQixLQUFxQjtRQUVyQixNQUFNLEdBQUcsR0FBRyxnQ0FBZ0MsTUFBTSxFQUFFLENBQUM7UUFDckQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNuQixVQUFVO1lBQ1YsT0FBTztZQUNQLEtBQUs7WUFDTCxLQUFLO1NBQ04sQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxtQ0FBbUMsQ0FDdkMsTUFBYyxFQUNkLG1CQUFtQyxFQUNuQyx5QkFBeUMsRUFDekMsS0FBcUI7UUFFckIsTUFBTSxHQUFHLEdBQUcseUJBQXlCLE1BQU0sRUFBRSxDQUFDO1FBQzlDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsbUJBQW1CO1lBQ25CLHlCQUF5QjtZQUN6QixLQUFLO1NBQ04sQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxTQUFpQixzQkFBVSxDQUFDLE9BQU87UUFDcEUsTUFBTSxHQUFHLEdBQUcsZ0JBQWdCLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNuQixVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEzREQsZ0NBMkRDIn0= +exports.cctpWithdraw = cctpWithdraw; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudHMvbmF0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7RUFFRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFRix5REFBeUU7QUFDekUsK0NBQTJFO0FBRTNFLG1GQUFxRTtBQUNyRSxnREFBd0I7QUFFeEIsZ0RBQXNGO0FBQ3RGLDBDQUEwQztBQUMxQyw0Q0FBK0Q7QUFDL0Qsa0RBQXFFO0FBQ3JFLDREQUF3RDtBQUN4RCx5REFBaUU7QUFDakUsMkNBRXFCO0FBQ3JCLG1EQUErQztBQUUvQywwRUFBaUQ7QUFDakQsaURBQTZDO0FBQzdDLDZDQUE4QztBQWlCdkMsS0FBSyxVQUFVLGFBQWEsQ0FDakMsT0FBZ0I7SUFFaEIsSUFBSTtRQUNGLFVBQVUsQ0FBQyxNQUFNLEdBQUcsTUFBTSxrQ0FBZSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRCxPQUFPLElBQUEsb0JBQVUsRUFBQyxPQUFPLENBQUMsQ0FBQztLQUM1QjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDeEI7QUFDSCxDQUFDO0FBVEQsc0NBU0M7QUFFTSxLQUFLLFVBQVUsY0FBYyxDQUNsQyxVQUFrQjtJQUVsQixJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QyxNQUFNLEVBQ0osVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osT0FBTyxFQUNQLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLGFBQWEsRUFDYixjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsT0FBTyxHQUNSLEdBQUcsTUFBTSxDQUFDO1FBRVgsSUFBSSxVQUFVLEtBQUssU0FBUztZQUMxQixZQUFZLEtB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 /***/ }), -/***/ "./src/clients/modules/post.ts": +/***/ "./src/clients/noble-client.ts": /*!*************************************!*\ - !*** ./src/clients/modules/post.ts ***! + !*** ./src/clients/noble-client.ts ***! \*************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Post = void 0; -const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/math/build/index.js"); +exports.NobleClient = void 0; +const proto_signing_1 = __webpack_require__(/*! @cosmjs/proto-signing */ "./node_modules/@cosmjs/proto-signing/build/index.js"); const stargate_1 = __webpack_require__(/*! @cosmjs/stargate */ "./node_modules/@cosmjs/stargate/build/index.js"); -const tendermint_rpc_1 = __webpack_require__(/*! @cosmjs/tendermint-rpc */ "./node_modules/@cosmjs/tendermint-rpc/build/index.js"); -const lodash_1 = __importDefault(__webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js")); -const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); -const protobufjs_1 = __importDefault(__webpack_require__(/*! protobufjs */ "./node_modules/protobufjs/index.js")); -const constants_1 = __webpack_require__(/*! ../constants */ "./src/clients/constants.ts"); -const errors_1 = __webpack_require__(/*! ../lib/errors */ "./src/clients/lib/errors.ts"); -const registry_1 = __webpack_require__(/*! ../lib/registry */ "./src/clients/lib/registry.ts"); -const types_1 = __webpack_require__(/*! ../types */ "./src/clients/types.ts"); -const composer_1 = __webpack_require__(/*! ./composer */ "./src/clients/modules/composer.ts"); -const proto_includes_1 = __webpack_require__(/*! ./proto-includes */ "./src/clients/modules/proto-includes.ts"); -// Required for encoding and decoding queries that are of type Long. -// Must be done once but since the individal modules should be usable -// - must be set in each module that encounters encoding/decoding Longs. -// Reference: https://github.com/protobufjs/protobuf.js/issues/921 -protobufjs_1.default.util.Long = long_1.default; -protobufjs_1.default.configure(); -class Post { - constructor(get, chainId, denoms) { - this.accountNumberCache = new Map(); - this.get = get; - this.chainId = chainId; - this.registry = (0, registry_1.generateRegistry)(); - this.composer = new composer_1.Composer(); - this.denoms = denoms; - this.defaultGasPrice = stargate_1.GasPrice - .fromString(`0.025${denoms.USDC_GAS_DENOM !== undefined ? denoms.USDC_GAS_DENOM : denoms.USDC_DENOM}`); - this.defaultDydxGasPrice = stargate_1.GasPrice - .fromString(`25000000000${denoms.CHAINTOKEN_GAS_DENOM !== undefined ? denoms.CHAINTOKEN_GAS_DENOM : denoms.CHAINTOKEN_DENOM}`); - } - /** - * @description Simulate a transaction - * the calling function is responsible for creating the messages. - * - * @throws UnexpectedClientError if a malformed response is returned with no GRPC error - * at any point. - * @returns The Fee for broadcasting a transaction. - */ - async simulate(wallet, messaging, gasPrice = this.defaultGasPrice, memo, account) { - const msgsPromise = messaging(); - const accountPromise = account ? (await account()) : this.account(wallet.address); - const msgsAndAccount = await Promise.all([msgsPromise, accountPromise]); - const msgs = msgsAndAccount[0]; - return this.simulateTransaction(wallet.pubKey, msgsAndAccount[1].sequence, msgs, gasPrice, memo); - } - /** - * @description Sign a transaction - * the calling function is responsible for creating the messages. - * - * @throws UnexpectedClientError if a malformed response is returned with no GRPC error - * at any point. - * @returns The Signature. - */ - async sign(wallet, messaging, zeroFee, gasPrice = this.defaultGasPrice, memo, account) { - const msgsPromise = await messaging(); - const accountPromise = account ? (await account()) : this.account(wallet.address); - const msgsAndAccount = await Promise.all([msgsPromise, accountPromise]); - const msgs = msgsAndAccount[0]; - return this.signTransaction(wallet, msgs, msgsAndAccount[1], zeroFee, gasPrice, memo); +const constants_1 = __webpack_require__(/*! ./constants */ "./src/clients/constants.ts"); +const cctpProto_1 = __webpack_require__(/*! ./lib/cctpProto */ "./src/clients/lib/cctpProto.ts"); +class NobleClient { + constructor(restEndpoint, defaultClientMemo) { + this.restEndpoint = restEndpoint; + this.defaultClientMemo = defaultClientMemo; } - /** - * @description Send a transaction - * the calling function is responsible for creating the messages. - * - * @throws UnexpectedClientError if a malformed response is returned with no GRPC error - * at any point. - * @returns The Tx Hash. - */ - async send(wallet, messaging, zeroFee, gasPrice = this.defaultGasPrice, memo, broadcastMode, account) { - const msgsPromise = messaging(); - const accountPromise = account ? (await account()) : this.account(wallet.address); - const msgsAndAccount = await Promise.all([msgsPromise, accountPromise]); - const msgs = msgsAndAccount[0]; - return this.signAndSendTransaction(wallet, msgsAndAccount[1], msgs, zeroFee, gasPrice, memo, broadcastMode !== null && broadcastMode !== void 0 ? broadcastMode : this.defaultBroadcastMode(msgs)); + get isConnected() { + return Boolean(this.stargateClient); } - /** - * @description Calculate the default broadcast mode. - */ - defaultBroadcastMode(msgs) { - var _a, _b; - if (msgs.length === 1 && msgs[0].typeUrl === '/dydxprotocol.clob.MsgPlaceOrder') { - const msg = msgs[0].value; - const orderFlags = (_b = (_a = msg.order) === null || _a === void 0 ? void 0 : _a.orderId) === null || _b === void 0 ? void 0 : _b.orderFlags; - switch (orderFlags) { - case types_1.OrderFlags.SHORT_TERM: - return tendermint_rpc_1.Method.BroadcastTxSync; - case types_1.OrderFlags.LONG_TERM: - return tendermint_rpc_1.Method.BroadcastTxCommit; - default: - break; - } + async connect(wallet) { + if ((wallet === null || wallet === void 0 ? void 0 : wallet.offlineSigner) === undefined) { + throw new Error('Wallet signer not found'); } - return tendermint_rpc_1.Method.BroadcastTxSync; - } - /** - * @description Sign and send a message - * - * @returns The Tx Response. - */ - async signTransaction(wallet, messages, account, zeroFee, gasPrice = this.defaultGasPrice, memo) { - // Simulate transaction if no fee is specified. - const fee = zeroFee ? { - amount: [], - gas: '1000000', - } : await this.simulateTransaction(wallet.pubKey, account.sequence, messages, gasPrice, memo); - const txOptions = { - sequence: account.sequence, - accountNumber: account.accountNumber, - chainId: this.chainId, - }; - // Generate signed transaction. - return wallet.signTransaction(messages, txOptions, fee, memo); + this.wallet = wallet; + this.stargateClient = await stargate_1.SigningStargateClient.connectWithSigner(this.restEndpoint, wallet.offlineSigner, { + registry: new proto_signing_1.Registry([ + ['/circle.cctp.v1.MsgDepositForBurn', cctpProto_1.MsgDepositForBurn], + ...stargate_1.defaultRegistryTypes, + ]), + }); } - /** - * @description Retrieve an account structure for transactions. - * For short term orders, the sequence doesn't matter. Use cached if available. - * For long term and conditional orders, a round trip to validator must be made. - */ - async account(address, orderFlags) { - if (orderFlags === types_1.OrderFlags.SHORT_TERM) { - if (this.accountNumberCache.has(address)) { - // For SHORT_TERM orders, the sequence doesn't matter - return this.accountNumberCache.get(address); - } + getAccountBalances() { + var _a; + if (!this.stargateClient || ((_a = this.wallet) === null || _a === void 0 ? void 0 : _a.address) === undefined) { + throw new Error('stargateClient not initialized'); } - const account = await this.get.getAccount(address); - this.accountNumberCache.set(address, account); - return account; + return this.stargateClient.getAllBalances(this.wallet.address); } - /** - * @description Sign and send a message - * - * @returns The Tx Response. - */ - async signAndSendTransaction(wallet, account, messages, zeroFee, gasPrice = this.defaultGasPrice, memo, broadcastMode) { - const signedTransaction = await this.signTransaction(wallet, messages, account, zeroFee, gasPrice, memo); - return this.sendSignedTransaction(signedTransaction, broadcastMode); + getAccountBalance(denom) { + var _a; + if (!this.stargateClient || ((_a = this.wallet) === null || _a === void 0 ? void 0 : _a.address) === undefined) { + throw new Error('stargateClient not initialized'); + } + return this.stargateClient.getBalance(this.wallet.address, denom); } - /** - * @description Send signed transaction. - * - * @returns The Tx Response. - */ - async sendSignedTransaction(signedTransaction, broadcastMode) { - return this.get.tendermintClient.broadcastTransaction(signedTransaction, broadcastMode !== undefined - ? broadcastMode - : tendermint_rpc_1.Method.BroadcastTxSync); + async IBCTransfer(message) { + const tx = await this.send([message]); + return tx; } - /** - * @description Simulate broadcasting a transaction. - * - * @throws UnexpectedClientError if a malformed response is returned with no GRPC error - * at any point. - * @returns The Fee for broadcasting a transaction. - */ - async simulateTransaction(pubKey, sequence, messages, gasPrice = this.defaultGasPrice, memo) { - // Get simulated response. - const encodedMessages = messages.map((message) => this.registry.encodeAsAny(message)); - const simulationResponse = await this.get.stargateQueryClient.tx.simulate(encodedMessages, memo, pubKey, sequence); - // The promise should have been rejected if the gasInfo was undefined. - if (simulationResponse.gasInfo === undefined) { - throw new errors_1.UnexpectedClientError(); + async send(messages, gasPrice = stargate_1.GasPrice.fromString('0.025uusdc'), memo) { + var _a; + if (!this.stargateClient) { + throw new Error('NobleClient stargateClient not initialized'); } - // Calculate and return fee from gasEstimate. - const gasEstimate = math_1.Uint53.fromString(simulationResponse.gasInfo.gasUsed.toString()).toNumber(); - const fee = (0, stargate_1.calculateFee)(Math.floor(gasEstimate * constants_1.GAS_MULTIPLIER), gasPrice); - // TODO(TRCL-2550): Temporary workaround before IBC denom is supported in '@cosmjs/stargate'. - // The '@cosmjs/stargate' does not support denom with '/', so currently GAS_PRICE is - // represented in 'uusdc', and the output of `calculateFee` is in '', which is replaced - // below by USDC_DENOM string. - const amount = lodash_1.default.map(fee.amount, (coin) => { - if (coin.denom === 'uusdc') { - return { - amount: coin.amount, - denom: this.denoms.USDC_DENOM, - }; - } - return coin; - }); - return { - ...fee, - amount, - }; - } - // ------ State-Changing Requests ------ // - async placeOrder(subaccount, clientId, clobPairId, side, quantums, subticks, timeInForce, orderFlags, reduceOnly, goodTilBlock, goodTilBlockTime, clientMetadata = 0, conditionType = proto_includes_1.Order_ConditionType.CONDITION_TYPE_UNSPECIFIED, conditionalOrderTriggerSubticks = long_1.default.fromInt(0), broadcastMode) { - const msgs = new Promise((resolve) => { - const msg = this.composer.composeMsgPlaceOrder(subaccount.address, subaccount.subaccountNumber, clientId, clobPairId, orderFlags, goodTilBlock !== null && goodTilBlock !== void 0 ? goodTilBlock : 0, goodTilBlockTime !== null && goodTilBlockTime !== void 0 ? goodTilBlockTime : 0, side, quantums, subticks, timeInForce, reduceOnly, clientMetadata, conditionType, conditionalOrderTriggerSubticks); - resolve([msg]); - }); - const account = this.account(subaccount.address, orderFlags); - return this.send(subaccount.wallet, () => msgs, true, undefined, undefined, broadcastMode, () => account); + if (((_a = this.wallet) === null || _a === void 0 ? void 0 : _a.address) === undefined) { + throw new Error('NobleClient wallet not initialized'); + } + // Simulate to get the gas estimate + const fee = await this.simulateTransaction(messages, gasPrice, memo !== null && memo !== void 0 ? memo : this.defaultClientMemo); + // Sign and broadcast the transaction + return this.stargateClient.signAndBroadcast(this.wallet.address, messages, fee, memo !== null && memo !== void 0 ? memo : this.defaultClientMemo); } - async placeOrderObject(subaccount, placeOrder, broadcastMode) { + async simulateTransaction(messages, gasPrice = stargate_1.GasPrice.fromString('0.025uusdc'), memo) { var _a, _b; - return this.placeOrder(subaccount, placeOrder.clientId, placeOrder.clobPairId, placeOrder.side, placeOrder.quantums, placeOrder.subticks, placeOrder.timeInForce, placeOrder.orderFlags, placeOrder.reduceOnly, placeOrder.goodTilBlock, placeOrder.goodTilBlockTime, placeOrder.clientMetadata, (_a = placeOrder.conditionType) !== null && _a !== void 0 ? _a : proto_includes_1.Order_ConditionType.CONDITION_TYPE_UNSPECIFIED, (_b = placeOrder.conditionalOrderTriggerSubticks) !== null && _b !== void 0 ? _b : long_1.default.fromInt(0), broadcastMode); - } - async cancelOrder(subaccount, clientId, orderFlags, clobPairId, goodTilBlock, goodTilBlockTime, broadcastMode) { - const msgs = new Promise((resolve) => { - const msg = this.composer.composeMsgCancelOrder(subaccount.address, subaccount.subaccountNumber, clientId, clobPairId, orderFlags, goodTilBlock !== null && goodTilBlock !== void 0 ? goodTilBlock : 0, goodTilBlockTime !== null && goodTilBlockTime !== void 0 ? goodTilBlockTime : 0); - resolve([msg]); - }); - return this.send(subaccount.wallet, () => msgs, true, undefined, undefined, broadcastMode); - } - async cancelOrderObject(subaccount, cancelOrder, broadcastMode) { - return this.cancelOrder(subaccount, cancelOrder.clientId, cancelOrder.orderFlags, cancelOrder.clobPairId, cancelOrder.goodTilBlock, cancelOrder.goodTilBlockTime, broadcastMode); - } - async transfer(subaccount, recipientAddress, recipientSubaccountNumber, assetId, amount, broadcastMode) { - const msgs = new Promise((resolve) => { - const msg = this.composer.composeMsgTransfer(subaccount.address, subaccount.subaccountNumber, recipientAddress, recipientSubaccountNumber, assetId, amount); - resolve([msg]); - }); - return this.send(subaccount.wallet, () => msgs, false, undefined, undefined, broadcastMode); - } - async deposit(subaccount, assetId, quantums, broadcastMode) { - const msgs = new Promise((resolve) => { - const msg = this.composer.composeMsgDepositToSubaccount(subaccount.address, subaccount.subaccountNumber, assetId, quantums); - resolve([msg]); - }); - return this.send(subaccount.wallet, () => msgs, false, undefined, undefined, broadcastMode); + if (!this.stargateClient) { + throw new Error('NobleClient stargateClient not initialized'); + } + if (((_a = this.wallet) === null || _a === void 0 ? void 0 : _a.address) === undefined) { + throw new Error('NobleClient wallet not initialized'); + } + // Get simulated response + const gasEstimate = await this.stargateClient.simulate((_b = this.wallet) === null || _b === void 0 ? void 0 : _b.address, messages, memo); + // Calculate and return the fee + return (0, stargate_1.calculateFee)(Math.floor(gasEstimate * constants_1.GAS_MULTIPLIER), gasPrice); } - async withdraw(subaccount, assetId, quantums, recipient, broadcastMode) { - const msgs = new Promise((resolve) => { - const msg = this.composer.composeMsgWithdrawFromSubaccount(subaccount.address, subaccount.subaccountNumber, assetId, quantums, recipient); - resolve([msg]); - }); - return this.send(subaccount.wallet, () => msgs, false, undefined, undefined, broadcastMode); +} +exports.NobleClient = NobleClient; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ibGUtY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudHMvbm9ibGUtY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlEQUFxRTtBQUNyRSwrQ0FRMEI7QUFFMUIsMkNBQTZDO0FBQzdDLCtDQUFvRDtBQUdwRCxNQUFhLFdBQVc7SUFNdEIsWUFBWSxZQUFvQixFQUFFLGlCQUEwQjtRQUMxRCxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFtQjtRQUMvQixJQUFJLENBQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLGFBQWEsTUFBSyxTQUFTLEVBQUU7WUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLGdDQUFxQixDQUFDLGlCQUFpQixDQUNqRSxJQUFJLENBQUMsWUFBWSxFQUNqQixNQUFNLENBQUMsYUFBYSxFQUNwQjtZQUNFLFFBQVEsRUFBRSxJQUFJLHdCQUFRLENBQUM7Z0JBQ3JCLENBQUMsbUNBQW1DLEVBQUUsNkJBQWlCLENBQUM7Z0JBQ3hELEdBQUcsK0JBQW9CO2FBQ3hCLENBQUM7U0FDSCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCOztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsT0FBTyxNQUFLLFNBQVMsRUFBRTtZQUM5RCxNQUFNLElB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 + +/***/ }), + +/***/ "./src/clients/subaccount.ts": +/*!***********************************!*\ + !*** ./src/clients/subaccount.ts ***! + \***********************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SubaccountInfo = void 0; +class SubaccountInfo { + constructor(wallet, subaccountNumber = 0) { + if (subaccountNumber < 0 || subaccountNumber > 127) { + throw new Error('Subaccount number must be between 0 and 127'); + } + this.wallet = wallet; + this.subaccountNumber = subaccountNumber; } - async sendToken(subaccount, recipient, coinDenom, quantums, zeroFee = true, broadcastMode) { - if (coinDenom !== this.denoms.CHAINTOKEN_DENOM && coinDenom !== this.denoms.USDC_DENOM) { - throw new Error('Unsupported coinDenom'); + get address() { + const address = this.wallet.address; + if (address !== undefined) { + return address; + } + else { + throw new Error('Address not set'); } - const msgs = new Promise((resolve) => { - const msg = this.composer.composeMsgSendToken(subaccount.address, recipient, coinDenom, quantums); - resolve([msg]); - }); - return this.send(subaccount.wallet, () => msgs, zeroFee, coinDenom === this.denoms.CHAINTOKEN_DENOM - ? this.defaultDydxGasPrice - : this.defaultGasPrice, undefined, broadcastMode); } } -exports.Post = Post; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL21vZHVsZXMvcG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSx1Q0FBc0M7QUFLdEMsK0NBTTBCO0FBQzFCLDJEQUVnQztBQUtoQyxvREFBdUI7QUFDdkIsZ0RBQXdCO0FBQ3hCLDREQUFrQztBQUVsQyw0Q0FBOEM7QUFDOUMsMENBQXNEO0FBQ3RELDhDQUFtRDtBQUVuRCxvQ0FPa0I7QUFDbEIseUNBQXNDO0FBR3RDLHFEQUUwQjtBQUUxQixvRUFBb0U7QUFDcEUscUVBQXFFO0FBQ3JFLHdFQUF3RTtBQUN4RSxrRUFBa0U7QUFDbEUsb0JBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLGNBQUksQ0FBQztBQUMxQixvQkFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBRXJCLE1BQWEsSUFBSTtJQVliLFlBQ0UsR0FBUSxFQUNSLE9BQWUsRUFDZixNQUFtQjtRQUxiLHVCQUFrQixHQUF5QixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBTzNELElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFBLDJCQUFnQixHQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLG1CQUFRLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsZUFBZSxHQUFHLG1CQUFRO2FBQzVCLFVBQVUsQ0FBQyxRQUFRLE1BQU0sQ0FBQyxjQUFjLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUN6RyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQVE7YUFDaEMs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 +exports.SubaccountInfo = SubaccountInfo; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnRzL3N1YmFjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsTUFBYSxjQUFjO0lBS3ZCLFlBQVksTUFBbUIsRUFBRSxtQkFBMkIsQ0FBQztRQUMzRCxJQUFJLGdCQUFnQixHQUFHLENBQUMsSUFBSSxnQkFBZ0IsR0FBRyxHQUFHLEVBQUU7WUFDbEQsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1NBQ2hFO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUNwQyxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUU7WUFDekIsT0FBTyxPQUFPLENBQUM7U0FDaEI7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7Q0FDSjtBQXJCRCx3Q0FxQkMifQ== /***/ }), -/***/ "./src/clients/modules/proto-includes.ts": -/*!***********************************************!*\ - !*** ./src/clients/modules/proto-includes.ts ***! - \***********************************************/ +/***/ "./src/clients/types.ts": +/*!******************************!*\ + !*** ./src/clients/types.ts ***! + \******************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -202543,86 +205227,27 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi if (k2 === undefined) k2 = k; o[k2] = m[k]; })); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.BridgeModule = exports.StakingModule = exports.RewardsModule = exports.StatsModule = exports.FeeTierModule = exports.SubaccountsModule = exports.PricesModule = exports.PerpetualsModule = exports.ClobModule = void 0; -exports.ClobModule = __importStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/query */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/query.ts")); -exports.PerpetualsModule = __importStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/query */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/query.ts")); -exports.PricesModule = __importStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/query */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/query.ts")); -exports.SubaccountsModule = __importStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/query */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/query.ts")); -exports.FeeTierModule = __importStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/query */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/feetiers/query.ts")); -exports.StatsModule = __importStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/stats/query */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/stats/query.ts")); -exports.RewardsModule = __importStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/rewards/query */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rewards/query.ts")); -exports.StakingModule = __importStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/query */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/staking/v1beta1/query.ts")); -exports.BridgeModule = __importStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/query */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bridge/query.ts")); -__exportStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/cosmos/base/abci/v1beta1/abci */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/base/abci/v1beta1/abci.ts"), exports); -__exportStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order.ts"), exports); -__exportStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/tx */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/tx.ts"), exports); -__exportStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/google/protobuf/any */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/google/protobuf/any.ts"), exports); -__exportStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/subaccount */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/subaccount.ts"), exports); -__exportStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/tx */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/tx.ts"), exports); -__exportStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/transfer */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/sending/transfer.ts"), exports); -__exportStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/genesis */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/genesis.ts"), exports); -__exportStar(__webpack_require__(/*! @dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/asset */ "./node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/assets/asset.ts"), exports); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG8taW5jbHVkZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50cy9tb2R1bGVzL3Byb3RvLWluY2x1ZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUdBQXlGO0FBQ3pGLHFIQUFxRztBQUNyRyw2R0FBNkY7QUFDN0YsdUhBQ3lFO0FBQ3pFLGdIQUFnRztBQUNoRywyR0FBMkY7QUFDM0YsK0dBQStGO0FBQy9GLGlIQUFpRztBQUNqRyw2R0FBNkY7QUFFN0YsbUdBQWlGO0FBQ2pGLDZGQUEyRTtBQUMzRSwwRkFBd0U7QUFDeEUseUZBQXVFO0FBQ3ZFLHlHQUF1RjtBQUN2Riw2RkFBMkU7QUFDM0UsbUdBQWlGO0FBQ2pGLGlHQUErRTtBQUMvRSwrRkFBNkUifQ== - -/***/ }), - -/***/ "./src/clients/modules/rest.ts": -/*!*************************************!*\ - !*** ./src/clients/modules/rest.ts ***! - \*************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -const constants_1 = __webpack_require__(/*! ../constants */ "./src/clients/constants.ts"); -const request_helpers_1 = __webpack_require__(/*! ../helpers/request-helpers */ "./src/clients/helpers/request-helpers.ts"); -const axios_1 = __webpack_require__(/*! ../lib/axios */ "./src/clients/lib/axios/index.ts"); -class RestClient { - constructor(host, apiTimeout) { - if (host.endsWith('/')) { - this.host = host.slice(0, -1); - } - else { - this.host = host; - } - this.apiTimeout = apiTimeout || constants_1.DEFAULT_API_TIMEOUT; - } - async get(requestPath, params = {}) { - const url = `${this.host}${(0, request_helpers_1.generateQueryPath)(requestPath, params)}`; - const response = await (0, axios_1.request)(url); - return response.data; - } - async post(requestPath, params = {}, body, headers = {}) { - const url = `${this.host}${(0, request_helpers_1.generateQueryPath)(requestPath, params)}`; - return (0, axios_1.request)(url, axios_1.RequestMethod.POST, body, headers); - } -} -exports["default"] = RestClient; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL21vZHVsZXMvcmVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDRDQUFtRDtBQUNuRCxnRUFBK0Q7QUFDL0Qsd0NBQWdFO0FBR2hFLE1BQXFCLFVBQVU7SUFJM0IsWUFBWSxJQUFZLEVBQUUsVUFBeUI7UUFDakQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMvQjthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7U0FDbEI7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsSUFBSSwrQkFBbUIsQ0FBQztJQUN0RCxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FDUCxXQUFtQixFQUNuQixTQUFhLEVBQUU7UUFFZixNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBQSxtQ0FBaUIsRUFBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNwRSxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsZUFBTyxFQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FDUixXQUFtQixFQUNuQixTQUFhLEVBQUUsRUFDZixJQUFxQixFQUNyQixVQUFjLEVBQUU7UUFFaEIsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUEsbUNBQWlCLEVBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDcEUsT0FBTyxJQUFBLGVBQU8sRUFBQyxHQUFHLEVBQUUscUJBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDSjtBQS9CRCw2QkErQkMifQ== +exports.OrderFlags = void 0; +// OrderFlags, just a number in proto, defined as enum for convenience +var OrderFlags; +(function (OrderFlags) { + OrderFlags[OrderFlags["SHORT_TERM"] = 0] = "SHORT_TERM"; + OrderFlags[OrderFlags["LONG_TERM"] = 64] = "LONG_TERM"; + OrderFlags[OrderFlags["CONDITIONAL"] = 32] = "CONDITIONAL"; +})(OrderFlags = exports.OrderFlags || (exports.OrderFlags = {})); +__exportStar(__webpack_require__(/*! ./modules/proto-includes */ "./src/clients/modules/proto-includes.ts"), exports); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50cy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQTRCQSxzRUFBc0U7QUFDdEUsSUFBWSxVQUlYO0FBSkQsV0FBWSxVQUFVO0lBQ3BCLHVEQUFjLENBQUE7SUFDZCxzREFBYyxDQUFBO0lBQ2QsMERBQWdCLENBQUE7QUFDbEIsQ0FBQyxFQUpXLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBSXJCO0FBd0dELDJEQUF5QyJ9 /***/ }), -/***/ "./src/clients/modules/signer.ts": -/*!***************************************!*\ - !*** ./src/clients/modules/signer.ts ***! - \***************************************/ +/***/ "./src/clients/validator-client.ts": +/*!*****************************************!*\ + !*** ./src/clients/validator-client.ts ***! + \*****************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -202631,7231 +205256,9131 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.TransactionSigner = void 0; -const tx_1 = __webpack_require__(/*! cosmjs-types/cosmos/tx/v1beta1/tx */ "./node_modules/cosmjs-types/cosmos/tx/v1beta1/tx.js"); +exports.ValidatorClient = void 0; +const stargate_1 = __webpack_require__(/*! @cosmjs/stargate */ "./node_modules/@cosmjs/stargate/build/index.js"); +const tendermint_rpc_1 = __webpack_require__(/*! @cosmjs/tendermint-rpc */ "./node_modules/@cosmjs/tendermint-rpc/build/index.js"); const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); const protobufjs_1 = __importDefault(__webpack_require__(/*! protobufjs */ "./node_modules/protobufjs/index.js")); -const errors_1 = __webpack_require__(/*! ../lib/errors */ "./src/clients/lib/errors.ts"); +const constants_1 = __webpack_require__(/*! ./constants */ "./src/clients/constants.ts"); +const get_1 = __webpack_require__(/*! ./modules/get */ "./src/clients/modules/get.ts"); +const post_1 = __webpack_require__(/*! ./modules/post */ "./src/clients/modules/post.ts"); +const tendermintClient_1 = __webpack_require__(/*! ./modules/tendermintClient */ "./src/clients/modules/tendermintClient.ts"); // Required for encoding and decoding queries that are of type Long. // Must be done once but since the individal modules should be usable // - must be set in each module that encounters encoding/decoding Longs. // Reference: https://github.com/protobufjs/protobuf.js/issues/921 protobufjs_1.default.util.Long = long_1.default; protobufjs_1.default.configure(); -class TransactionSigner { - constructor(address, stargateSigningClient) { - this.address = address; - this.stargateSigningClient = stargateSigningClient; +class ValidatorClient { + constructor(config) { + this.config = config; } /** - * @description Get the encoded signed transaction or the promise is rejected if - * no fee can be set for the transaction. - * - * @throws UserError if the fee is undefined. - * @returns The signed and encoded transaction. - */ - async signTransaction(messages, transactionOptions, fee, memo = '') { - // Verify there is either a fee or a path to getting the fee present. - if (fee === undefined) { - throw new errors_1.UserError('fee cannot be undefined'); - } - // Sign, encode and return the transaction. - const rawTx = await this.stargateSigningClient.sign(this.address, messages, fee, memo, { - accountNumber: transactionOptions.accountNumber, - sequence: transactionOptions.sequence, - chainId: transactionOptions.chainId, + * @description Connect to a validator client + * + * @returns The validator client + */ + static async connect(config) { + const client = new ValidatorClient(config); + await client.initialize(); + return client; + } + /** + * @description Get the query module, used for retrieving on-chain data. + * + * @returns The query module + */ + get get() { + return this._get; + } + /** + * @description transaction module, used for sending transactions. + * + * @returns The transaction module + */ + get post() { + return this._post; + } + async initialize() { + const tendermint37Client = await tendermint_rpc_1.Tendermint37Client.connect(this.config.restEndpoint); + const tendermintClient = new tendermintClient_1.TendermintClient(tendermint37Client, { + broadcastPollIntervalMs: constants_1.BROADCAST_POLL_INTERVAL_MS, + broadcastTimeoutMs: constants_1.BROADCAST_TIMEOUT_MS, }); - return Uint8Array.from(tx_1.TxRaw.encode(rawTx).finish()); + const queryClient = stargate_1.QueryClient.withExtensions(tendermint37Client, stargate_1.setupTxExtension); + this._get = new get_1.Get(tendermintClient, queryClient); + this._post = new post_1.Post(this._get, this.config.chainId, this.config.denoms, this.config.defaultClientMemo); } } -exports.TransactionSigner = TransactionSigner; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NsaWVudHMvbW9kdWxlcy9zaWduZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS0EsMERBQTBEO0FBQzFELGdEQUF3QjtBQUN4Qiw0REFBa0M7QUFFbEMsMENBQTBDO0FBSzFDLG9FQUFvRTtBQUNwRSxxRUFBcUU7QUFDckUsd0VBQXdFO0FBQ3hFLGtFQUFrRTtBQUNsRSxvQkFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBSSxDQUFDO0FBQzFCLG9CQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7QUFFckIsTUFBYSxpQkFBaUI7SUFJNUIsWUFDRSxPQUFlLEVBQ2YscUJBQTRDO1FBRTVDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FDbkIsUUFBd0IsRUFDeEIsa0JBQXNDLEVBQ3RDLEdBQVksRUFDWixPQUFlLEVBQUU7UUFFakIscUVBQXFFO1FBQ3JFLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRTtZQUNyQixNQUFNLElBQUksa0JBQVMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1NBQ2hEO1FBRUQsMkNBQTJDO1FBQzNDLE1BQU0sS0FBSyxHQUFVLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FDeEQsSUFBSSxDQUFDLE9BQU8sRUFDWixRQUFRLEVBQ1IsR0FBRyxFQUNILElBQUksRUFDSjtZQUNFLGFBQWEsRUFBRSxrQkFBa0IsQ0FBQyxhQUFhO1lBQy9DLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRO1lBQ3JDLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxPQUFPO1NBQ3BDLENBQ0YsQ0FBQztRQUNGLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztDQUNGO0FBNUNELDhDQTRDQyJ9 +exports.ValidatorClient = ValidatorClient; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnRzL3ZhbGlkYXRvci1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsK0NBQThFO0FBQzlFLDJEQUE0RDtBQUM1RCxnREFBd0I7QUFDeEIsNERBQWtDO0FBRWxDLDJDQUFnRztBQUNoRyx1Q0FBb0M7QUFDcEMseUNBQXNDO0FBQ3RDLGlFQUE4RDtBQUU5RCxvRUFBb0U7QUFDcEUscUVBQXFFO0FBQ3JFLHdFQUF3RTtBQUN4RSxrRUFBa0U7QUFDbEUsb0JBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLGNBQUksQ0FBQztBQUMxQixvQkFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBRXJCLE1BQWEsZUFBZTtJQWdCMUIsWUFDRSxNQUF1QjtRQUV2QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBZkQ7Ozs7U0FJSztJQUNMLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQXVCO1FBQzFDLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLE1BQU0sTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzFCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFRRDs7OztTQUlLO0lBQ0wsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7OztTQUlLO0lBQ0wsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBTSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxLQUFLLENBQUMsVUFBVTtRQUN0QixNQUFNLGtCQUFrQixHQUF1QixNQUFNLG1DQUFrQixDQUFDLE9BQU8sQ0FDN0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQ3pCLENBQUM7UUFFRixNQUFNLGdCQUFnQixHQUFHLElBQUksbUNBQWdCLENBQUMsa0JBQWtCLEVBQUU7WUFDaEUsdUJBQXVCLEVBQUUsc0NBQTBCO1lBQ25ELGtCQUFrQixFQUFFLGdDQUFvQjtTQUN6QyxDQUFDLENBQUM7UUFDSCxNQUFNLFdBQVcsR0FBZ0Msc0JBQVcsQ0FBQyxjQUFjLENBQ3pFLGtCQUFrQixFQUNsQiwyQkFBZ0IsQ0FDakIsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxTQUFHLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFdBQUksQ0FDbkIsSUFBSSxDQUFDLElBQUssRUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQzlCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUE3REQsMENBNkRDIn0= /***/ }), -/***/ "./src/clients/modules/tendermintClient.ts": -/*!*************************************************!*\ - !*** ./src/clients/modules/tendermintClient.ts ***! - \*************************************************/ +/***/ "./src/lib/constants.ts": +/*!******************************!*\ + !*** ./src/lib/constants.ts ***! + \******************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SERIALIZED_INT_ZERO = exports.DEFAULT_SEQUENCE = exports.MAX_SUBACCOUNT_NUMBER = exports.MAX_UINT_32 = exports.ZERO_FEE = exports.GAS_MULTIPLIER = exports.API_TIMEOUT_DEFAULT_MS = exports.BROADCAST_TIMEOUT_MS = exports.BROADCAST_POLL_INTERVAL_MS = exports.NOBLE_BECH32_PREFIX = exports.BECH32_PREFIX = void 0; +// Bech32 Prefix +exports.BECH32_PREFIX = 'dydx'; +exports.NOBLE_BECH32_PREFIX = 'noble'; +// Broadcast Defaults +exports.BROADCAST_POLL_INTERVAL_MS = 300; +exports.BROADCAST_TIMEOUT_MS = 8000; +// API Defaults +exports.API_TIMEOUT_DEFAULT_MS = 5000; +// Gas +exports.GAS_MULTIPLIER = 1.4; +exports.ZERO_FEE = { + amount: [], + gas: '0', +}; +// Validation +exports.MAX_UINT_32 = 4294967295; +exports.MAX_SUBACCOUNT_NUMBER = 127; +exports.DEFAULT_SEQUENCE = 0; +exports.SERIALIZED_INT_ZERO = Uint8Array.from([0x02]); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsZ0JBQWdCO0FBQ0gsUUFBQSxhQUFhLEdBQUcsTUFBTSxDQUFDO0FBQ3ZCLFFBQUEsbUJBQW1CLEdBQUcsT0FBTyxDQUFDO0FBRTNDLHFCQUFxQjtBQUNSLFFBQUEsMEJBQTBCLEdBQVcsR0FBRyxDQUFDO0FBQ3pDLFFBQUEsb0JBQW9CLEdBQVcsSUFBSyxDQUFDO0FBRWxELGVBQWU7QUFDRixRQUFBLHNCQUFzQixHQUFXLElBQUssQ0FBQztBQUVwRCxNQUFNO0FBQ08sUUFBQSxjQUFjLEdBQVcsR0FBRyxDQUFDO0FBRTdCLFFBQUEsUUFBUSxHQUFXO0lBQzlCLE1BQU0sRUFBRSxFQUFFO0lBQ1YsR0FBRyxFQUFFLEdBQUc7Q0FDVCxDQUFDO0FBRUYsYUFBYTtBQUNBLFFBQUEsV0FBVyxHQUFHLFVBQWEsQ0FBQztBQUM1QixRQUFBLHFCQUFxQixHQUFHLEdBQUcsQ0FBQztBQUU1QixRQUFBLGdCQUFnQixHQUFXLENBQUMsQ0FBQztBQUU3QixRQUFBLG1CQUFtQixHQUFlLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDIn0= + +/***/ }), + +/***/ "./src/lib/errors.ts": +/*!***************************!*\ + !*** ./src/lib/errors.ts ***! + \***************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.UserError = exports.BroadcastErrorObject = exports.UnexpectedClientError = void 0; +/** + * An edge-case was hit in the client that should never have been reached. + */ +class UnexpectedClientError extends Error { + constructor() { + super('An unexpected error occurred on the client'); + this.name = 'UnexpectedClientError'; + } +} +exports.UnexpectedClientError = UnexpectedClientError; +/** + * An error occurred during the broadcasting process. + */ +class BroadcastErrorObject extends Error { + constructor(message, result) { + super(message); + this.name = 'BroadcastError'; + this.result = result; + this.code = result.code; + this.codespace = result.codespace; + } +} +exports.BroadcastErrorObject = BroadcastErrorObject; +/** + * User error occurred during a client operation. + */ +class UserError extends Error { + constructor(message) { + super(message); + this.name = 'UserError'; + } +} +exports.UserError = UserError; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUE7O0dBRUc7QUFDSCxNQUFhLHFCQUFzQixTQUFRLEtBQUs7SUFDOUM7UUFFRSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsSUFBSSxHQUFHLHVCQUF1QixDQUFDO0lBQ3RDLENBQUM7Q0FDRjtBQU5ELHNEQU1DO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLG9CQUFxQixTQUFRLEtBQUs7SUFLN0MsWUFDRSxPQUFlLEVBQ2YsTUFBK0I7UUFFL0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxnQkFBZ0IsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO0lBQ3BDLENBQUM7Q0FDRjtBQWZELG9EQWVDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLFNBQVUsU0FBUSxLQUFLO0lBQ2xDLFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQztJQUMxQixDQUFDO0NBQ0Y7QUFMRCw4QkFLQyJ9 + +/***/ }), + +/***/ "./src/lib/helpers.ts": +/*!****************************!*\ + !*** ./src/lib/helpers.ts ***! + \****************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; /* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.TendermintClient = void 0; +exports.encodeJson = exports.ByteArrayEncoding = exports.stripHexPrefix = exports.convertPartialTransactionOptionsToFull = void 0; const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); -const math_1 = __webpack_require__(/*! @cosmjs/math */ "./node_modules/@cosmjs/math/build/index.js"); -const stargate_1 = __webpack_require__(/*! @cosmjs/stargate */ "./node_modules/@cosmjs/stargate/build/index.js"); -const tendermint_rpc_1 = __webpack_require__(/*! @cosmjs/tendermint-rpc */ "./node_modules/@cosmjs/tendermint-rpc/build/index.js"); -const utils_1 = __webpack_require__(/*! @cosmjs/utils */ "./node_modules/@cosmjs/utils/build/index.js"); -const errors_1 = __webpack_require__(/*! ../lib/errors */ "./src/clients/lib/errors.ts"); -class TendermintClient { - constructor(baseClient, broadcastOptions) { - this.baseClient = baseClient; - this.broadcastOptions = broadcastOptions; - } - /** - * @description Get a specific block if height is specified. Otherwise, get the most recent block. - * - * @returns Information about the block queried. - */ - async getBlock(height) { - const response = await this.baseClient.block(height); - return { - id: (0, encoding_1.toHex)(response.blockId.hash).toUpperCase(), - header: { - version: { - block: new math_1.Uint53(response.block.header.version.block).toString(), - app: new math_1.Uint53(response.block.header.version.app).toString(), - }, - height: response.block.header.height, - chainId: response.block.header.chainId, - time: (0, tendermint_rpc_1.toRfc3339WithNanoseconds)(response.block.header.time), - }, - txs: response.block.txs, - }; +const bignumber_js_1 = __importDefault(__webpack_require__(/*! bignumber.js */ "./node_modules/bignumber.js/bignumber.js")); +const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); +const constants_1 = __webpack_require__(/*! ./constants */ "./src/lib/constants.ts"); +/** + * @description Either return undefined or insert default sequence value into + * `partialTransactionOptions` if it does not exist. + * + * @returns undefined or full TransactionOptions. + */ +function convertPartialTransactionOptionsToFull(partialTransactionOptions) { + if (partialTransactionOptions === undefined) { + return undefined; } - /** - * @description Broadcast a signed transaction with a specific mode. - * @throws BroadcastErrorObject when result code is not zero. TypeError when mode is invalid. - * @returns Differs depending on the BroadcastMode used. - * See https://docs.cosmos.network/master/run-node/txs.html for more information. - */ - async broadcastTransaction(tx, mode) { - switch (mode) { - case tendermint_rpc_1.Method.BroadcastTxAsync: - return this.broadcastTransactionAsync(tx); - case tendermint_rpc_1.Method.BroadcastTxSync: - return this.broadcastTransactionSync(tx); - case tendermint_rpc_1.Method.BroadcastTxCommit: - return this.broadcastTransactionCommit(tx); - default: - throw new TypeError('broadcastTransaction: invalid BroadcastMode'); - } + return { + sequence: constants_1.DEFAULT_SEQUENCE, + ...partialTransactionOptions, + }; +} +exports.convertPartialTransactionOptionsToFull = convertPartialTransactionOptionsToFull; +/** + * @description Strip '0x' prefix from input string. If there is no '0x' prefix, return the original + * input. + * + * @returns input without '0x' prefix or original input if no prefix. + */ +function stripHexPrefix(input) { + if (input.indexOf('0x') === 0) { + return input.slice(2); } - /** - * @description Broadcast a signed transaction. - * @returns The transaction hash. - */ - broadcastTransactionAsync(tx) { - return this.baseClient.broadcastTxAsync({ tx }); + return input; +} +exports.stripHexPrefix = stripHexPrefix; +function toBigInt(u) { + if (u.length <= 1) { + return BigInt(0); } - /** - * @description Broadcast a signed transaction and await the response. - * @throws BroadcastErrorObject when result code is not zero. - * @returns The response from the node once the transaction is processed by `CheckTx`. - */ - async broadcastTransactionSync(tx) { - const result = await this.baseClient.broadcastTxSync({ tx }); - if (result.code !== 0) { - throw new errors_1.BroadcastErrorObject(`Broadcasting transaction failed: ${result.log}`, result); + // eslint-disable-next-line no-bitwise + const negated = (u[0] & 1) === 1; + const hex = Buffer.from(u.slice(1)).toString('hex'); + const abs = BigInt(`0x${hex}`); + return negated ? -abs : abs; +} +var ByteArrayEncoding; +(function (ByteArrayEncoding) { + ByteArrayEncoding["HEX"] = "hex"; + ByteArrayEncoding["BIGINT"] = "bigint"; +})(ByteArrayEncoding = exports.ByteArrayEncoding || (exports.ByteArrayEncoding = {})); +function encodeJson(object, byteArrayEncoding = ByteArrayEncoding.HEX) { + // eslint-disable-next-line prefer-arrow-callback + return JSON.stringify(object, function replacer(_key, value) { + // Even though we set the an UInt8Array as the value, + // it comes in here as an object with UInt8Array as the buffer property. + if (value instanceof bignumber_js_1.default) { + return value.toString(); } - return result; - } - /** - * @description Broadcast a signed transaction and await for it to be included in the blockchain. - * @throws BroadcastErrorObject when result code is not zero. - * @returns The result of the transaction once included in the blockchain. - */ - async broadcastTransactionCommit(tx) { - const result = await this.broadcastTransactionSync(tx); - return this.queryHash(result.hash); - } - /** - * @description Using tx method, query for a transaction on-chain with retries specified by - * the client BroadcastOptions. - * - * @throws TimeoutError if the transaction is not committed on-chain within the timeout limit. - * @returns An indexed transaction containing information about the transaction when committed. - */ - async queryHash(hash, time = 0) { - const now = Date.now(); - const transactionId = (0, encoding_1.toHex)(hash).toUpperCase(); - if (time >= this.broadcastOptions.broadcastTimeoutMs) { - throw new stargate_1.TimeoutError(`Transaction with hash [${hash}] was submitted but was not yet found on the chain. You might want to check later. Query timed out after ${this.broadcastOptions.broadcastTimeoutMs / 1000} seconds.`, transactionId); + if (typeof value === 'bigint') { + return value.toString(); } - await (0, utils_1.sleep)(this.broadcastOptions.broadcastPollIntervalMs); - // If the transaction is not found, the tx method will throw an Internal Error. - try { - const tx = await this.baseClient.tx({ hash }); - return { - height: tx.height, - hash: (0, encoding_1.toHex)(tx.hash).toUpperCase(), - code: tx.result.code, - rawLog: tx.result.log !== undefined ? tx.result.log : '', - tx: tx.tx, - txIndex: tx.index, - gasUsed: tx.result.gasUsed, - gasWanted: tx.result.gasWanted, - // Convert stargate events to tendermint events. - events: tx.result.events.map((event) => { - return { - ...event, - attributes: event.attributes.map((attr) => { - return { - ...attr, - key: Buffer.from(attr.key).toString(), - value: Buffer.from(attr.value).toString(), - }; - }), - }; - }), - // @ts-ignore - msgResponses: [], - }; + if (value instanceof long_1.default) { + return value.toString(); } - catch (error) { - return this.queryHash(hash, time + Date.now() - now); + if ((value === null || value === void 0 ? void 0 : value.buffer) instanceof Uint8Array) { + if (byteArrayEncoding === ByteArrayEncoding.HEX) { + return (0, encoding_1.toHex)(value.buffer); + } + else { + return toBigInt(value.buffer).toString(); + } } - } - /** - * @description Set the broadcast options for this module. - */ - setBroadcastOptions(broadcastOptions) { - this.broadcastOptions = broadcastOptions; - } + else if (value instanceof Uint8Array) { + if (byteArrayEncoding === ByteArrayEncoding.HEX) { + return (0, encoding_1.toHex)(value); + } + else { + return toBigInt(value).toString(); + } + } + return value; + }); } -exports.TendermintClient = TendermintClient; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuZGVybWludENsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL21vZHVsZXMvdGVuZGVybWludENsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBeUM7QUFDekMsdUNBQXNDO0FBQ3RDLCtDQUkwQjtBQUMxQiwyREFJZ0M7QUFTaEMseUNBQXNDO0FBRXRDLDBDQUFxRDtBQUdyRCxNQUFhLGdCQUFnQjtJQUkzQixZQUNFLFVBQThCLEVBQzlCLGdCQUFrQztRQUVsQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQWU7UUFDNUIsTUFBTSxRQUFRLEdBQWtCLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEUsT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFBLGdCQUFLLEVBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFDOUMsTUFBTSxFQUFFO2dCQUNOLE9BQU8sRUFBRTtvQkFDUCxLQUFLLEVBQUUsSUFBSSxhQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRTtvQkFDakUsR0FBRyxFQUFFLElBQUksYUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUU7aUJBQzlEO2dCQUNELE1BQU0sRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO2dCQUNwQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztn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 +exports.encodeJson = encodeJson; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwrQ0FBeUM7QUFDekMsZ0VBQXFDO0FBQ3JDLGdEQUF3QjtBQUd4QiwyQ0FBK0M7QUFFL0M7Ozs7O0dBS0c7QUFDSCxTQUFnQixzQ0FBc0MsQ0FDcEQseUJBQXFEO0lBRXJELElBQUkseUJBQXlCLEtBQUssU0FBUyxFQUFFO1FBQzNDLE9BQU8sU0FBUyxDQUFDO0tBQ2xCO0lBRUQsT0FBTztRQUNMLFFBQVEsRUFBRSw0QkFBZ0I7UUFDMUIsR0FBRyx5QkFBeUI7S0FDN0IsQ0FBQztBQUNKLENBQUM7QUFYRCx3RkFXQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLEtBQWE7SUFDMUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUM3QixPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDdkI7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFORCx3Q0FNQztBQUVELFNBQVMsUUFBUSxDQUFDLENBQWE7SUFDN0IsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtRQUNqQixPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNsQjtJQUNELHNDQUFzQztJQUN0QyxNQUFNLE9BQU8sR0FBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsTUFBTSxHQUFHLEdBQVcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVELE1BQU0sR0FBRyxHQUFXLE1BQU0sQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDdkMsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDOUIsQ0FBQztBQUVELElBQVksaUJBR1g7QUFIRCxXQUFZLGlCQUFpQjtJQUMzQixnQ0FBVyxDQUFBO0lBQ1gsc0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUhXLGlCQUFpQixHQUFqQix5QkFBaUIsS0FBakIseUJBQWlCLFFBRzVCO0FBRUQsU0FBZ0IsVUFBVSxDQUN4QixNQUFlLEVBQ2Ysb0JBQXVDLGlCQUFpQixDQUFDLEdBQUc7SUFFNUQsaURBQWlEO0lBQ2pELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUs7UUFDekQscURBQXFEO1FBQ3JELHdFQUF3RTtRQUN4RSxJQUFJLEtBQUssWUFBWSxzQkFBUyxFQUFFO1lBQzlCLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDN0IsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDekI7UUFDRCxJQUFJLEtBQUssWUFBWSxjQUFJLEVBQUU7WUFDekIsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDekI7UUFDRCxJQUFJLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE1BQU0sYUFBWSxVQUFVLEVBQUU7WUFDdkMsSUFBSSxpQkFBaUIsS0FBSyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7Z0JBQy9DLE9BQU8sSUFBQSxnQkFBSyxFQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUM1QjtpQkFBTTtnQkFDTCxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDMUM7U0FDRjthQUFNLElBQUksS0FBSyxZQUFZLFVBQVUsRUFBRTtZQUN0QyxJQUFJLGlCQUFpQixLQUFLLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtnQkFDL0MsT0FBTyxJQUFBLGdCQUFLLEVBQUMsS0FBSyxDQUFDLENBQUM7YUFDckI7aUJBQU07Z0JBQ0wsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDbkM7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBaENELGdDQWdDQyJ9 /***/ }), -/***/ "./src/clients/modules/utility.ts": -/*!****************************************!*\ - !*** ./src/clients/modules/utility.ts ***! - \****************************************/ +/***/ "./src/lib/onboarding.ts": +/*!*******************************!*\ + !*** ./src/lib/onboarding.ts ***! + \*******************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; +/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -const rest_1 = __importDefault(__webpack_require__(/*! ./rest */ "./src/clients/modules/rest.ts")); -class UtilityClient extends rest_1.default { - /** - * @description Get the current time of the Indexer - * @returns {TimeResponse} isoString and epoch - */ - async getTime() { - const uri = '/v4/time'; - return this.get(uri); - } - /** - * @description Get the block height of the most recent block processed by the Indexer - * @returns {HeightResponse} block height and time - */ - async getHeight() { - const uri = '/v4/height'; - return this.get(uri); +exports.deriveHDKeyFromEthereumSignature = exports.exportMnemonicAndPrivateKey = void 0; +const bip32_1 = __webpack_require__(/*! @scure/bip32 */ "./node_modules/@scure/bip32/lib/index.js"); +const bip39_1 = __webpack_require__(/*! @scure/bip39 */ "./node_modules/@scure/bip39/index.js"); +const english_1 = __webpack_require__(/*! @scure/bip39/wordlists/english */ "./node_modules/@scure/bip39/wordlists/english.js"); +const keccak_1 = __webpack_require__(/*! ethereum-cryptography/keccak */ "./node_modules/ethereum-cryptography/keccak.js"); +const helpers_1 = __webpack_require__(/*! ./helpers */ "./src/lib/helpers.ts"); +/** + * @description Get Mnemonic and priv/pub keys from privateKeyBytes and BIP44 HD path + * + * @url https://github.com/confio/cosmos-hd-key-derivation-spec#bip44 + * + * @param entropy used to generate mnemonic + * + * @param path BIP44 HD Path. Default is The Cosmos Hub path + * + * @throws Error if the hdkey does not exist + * + * @returns Mnemonic and priv/pub keys + */ +const exportMnemonicAndPrivateKey = (entropy, path = "m/44'/118'/0'/0/0") => { + const mnemonic = (0, bip39_1.entropyToMnemonic)(entropy, english_1.wordlist); + const seed = (0, bip39_1.mnemonicToSeedSync)(mnemonic); + const hdkey = bip32_1.HDKey.fromMasterSeed(seed); + const derivedHdkey = hdkey.derive(path); + if (!hdkey.privateKey) { + throw new Error('null hd key'); } - /** - * @description Screen an address to see if it is restricted - * @param {string} address evm or dydx address - * @returns {ComplianceResponse} whether the specified address is restricted - */ - async screen(address) { - const uri = '/v4/screen'; - return this.get(uri, { address }); + return { + mnemonic, + privateKey: derivedHdkey.privateKey, + publicKey: derivedHdkey.publicKey, + }; +}; +exports.exportMnemonicAndPrivateKey = exportMnemonicAndPrivateKey; +/** + * @description Get private information for onboarding using an Ethereum Signature. + * + * @returns Mnemonic and Public/Private HD keys + */ +const deriveHDKeyFromEthereumSignature = (signature) => { + const buffer = Buffer.from((0, helpers_1.stripHexPrefix)(signature), 'hex'); + if (buffer.length !== 65) { + throw new Error('Signature must be 65 bytes'); } -} -exports["default"] = UtilityClient; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL21vZHVsZXMvdXRpbGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLGtEQUFnQztBQUVoQyxNQUFxQixhQUFjLFNBQVEsY0FBVTtJQUNuRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxTQUFTO1FBQ2IsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBZTtRQUMxQixNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBNUJELGdDQTRCQyJ9 + // Remove the 'v' value by taking only the first 64 bytes of the signature + const rsValues = buffer.subarray(0, 64); + // Hash the 'r' and 's' values down to 32 bytes (256 bits) using Keccak-256 + const entropy = (0, keccak_1.keccak256)(rsValues); + return (0, exports.exportMnemonicAndPrivateKey)(entropy); +}; +exports.deriveHDKeyFromEthereumSignature = deriveHDKeyFromEthereumSignature; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25ib2FyZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvb25ib2FyZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3Q0FBcUM7QUFDckMsd0NBQXFFO0FBQ3JFLDREQUEwRDtBQUMxRCx5REFBeUQ7QUFFekQsdUNBQTJDO0FBRTNDOzs7Ozs7Ozs7Ozs7R0FZRztBQUNJLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxPQUFtQixFQUFFLE9BQWUsbUJBQW1CLEVBSWpHLEVBQUU7SUFDRixNQUFNLFFBQVEsR0FBRyxJQUFBLHlCQUFpQixFQUFDLE9BQU8sRUFBRSxrQkFBUSxDQUFDLENBQUM7SUFDdEQsTUFBTSxJQUFJLEdBQUcsSUFBQSwwQkFBa0IsRUFBQyxRQUFRLENBQUMsQ0FBQztJQUUxQyxNQUFNLEtBQUssR0FBRyxhQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUU7UUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztLQUNoQztJQUVELE9BQU87UUFDTCxRQUFRO1FBQ1IsVUFBVSxFQUFFLFlBQVksQ0FBQyxVQUFVO1FBQ25DLFNBQVMsRUFBRSxZQUFZLENBQUMsU0FBUztLQUNsQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBcEJXLFFBQUEsMkJBQTJCLCtCQW9CdEM7QUFFRjs7OztHQUlHO0FBQ0ksTUFBTSxnQ0FBZ0MsR0FBRyxDQUFDLFNBQWlCLEVBSWhFLEVBQUU7SUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUEsd0JBQWMsRUFBQyxTQUFTLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUU3RCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztLQUMvQztJQUVELDBFQUEwRTtJQUMxRSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4QywyRUFBMkU7SUFDM0UsTUFBTSxPQUFPLEdBQUcsSUFBQSxrQkFBUyxFQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BDLE9BQU8sSUFBQSxtQ0FBMkIsRUFBQyxPQUFPLENBQUMsQ0FBQztBQUM5QyxDQUFDLENBQUM7QUFoQlcsUUFBQSxnQ0FBZ0Msb0NBZ0IzQyJ9 /***/ }), -/***/ "./src/clients/native.ts": +/***/ "./src/lib/validation.ts": /*!*******************************!*\ - !*** ./src/clients/native.ts ***! + !*** ./src/lib/validation.ts ***! \*******************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; -/* - Native app can call JS functions with primitives. -*/ -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.cctpWithdraw = exports.withdrawToNobleIBC = exports.sendNobleIBC = exports.getNobleBalance = exports.getMarketPrice = exports.getDelegatorUnbondingDelegations = exports.getDelegatorDelegations = exports.getRewardsParams = exports.getOptimalIndexer = exports.getOptimalNode = exports.decodeAccountResponseValue = exports.encodeAccountRequestData = exports.signCancelOrder = exports.signPlaceOrder = exports.signRawPlaceOrder = exports.simulateTransferNativeToken = exports.simulateWithdraw = exports.simulateDeposit = exports.getUserStats = exports.getAccountBalances = exports.getAccountBalance = exports.transferNativeToken = exports.withdrawToIBC = exports.faucet = exports.withdraw = exports.deposit = exports.cancelOrder = exports.wrappedError = exports.placeOrder = exports.getPerpetualMarkets = exports.getEquityTiers = exports.getUserFeeTier = exports.getFeeTiers = exports.getHeight = exports.deriveMnemomicFromEthereumSignature = exports.connect = exports.connectWallet = exports.connectNetwork = exports.connectClient = void 0; -const stargate_1 = __webpack_require__(/*! @cosmjs/stargate */ "./node_modules/@cosmjs/stargate/build/index.js"); -const AuthModule = __importStar(__webpack_require__(/*! cosmjs-types/cosmos/auth/v1beta1/query */ "./node_modules/cosmjs-types/cosmos/auth/v1beta1/query.js")); -const constants_1 = __webpack_require__(/*! ../lib/constants */ "./src/lib/constants.ts"); -const errors_1 = __webpack_require__(/*! ../lib/errors */ "./src/lib/errors.ts"); -const helpers_1 = __webpack_require__(/*! ../lib/helpers */ "./src/lib/helpers.ts"); -const onboarding_1 = __webpack_require__(/*! ../lib/onboarding */ "./src/lib/onboarding.ts"); -const network_optimizer_1 = __webpack_require__(/*! ../network_optimizer */ "./src/network_optimizer.ts"); -const composite_client_1 = __webpack_require__(/*! ./composite-client */ "./src/clients/composite-client.ts"); -const constants_2 = __webpack_require__(/*! ./constants */ "./src/clients/constants.ts"); -const faucet_client_1 = __webpack_require__(/*! ./faucet-client */ "./src/clients/faucet-client.ts"); -const local_wallet_1 = __importDefault(__webpack_require__(/*! ./modules/local-wallet */ "./src/clients/modules/local-wallet.ts")); -const noble_client_1 = __webpack_require__(/*! ./noble-client */ "./src/clients/noble-client.ts"); -const subaccount_1 = __webpack_require__(/*! ./subaccount */ "./src/clients/subaccount.ts"); -async function connectClient(network) { - try { - globalThis.client = await composite_client_1.CompositeClient.connect(network); - return (0, helpers_1.encodeJson)(network); +exports.isValidAddress = exports.isStatefulOrder = exports.verifyOrderFlags = exports.validateTransferMessage = exports.validateCancelOrderMessage = exports.validatePlaceOrderMessage = void 0; +const bech32_1 = __webpack_require__(/*! bech32 */ "./node_modules/bech32/index.js"); +const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); +const constants_1 = __webpack_require__(/*! ../clients/constants */ "./src/clients/constants.ts"); +const types_1 = __webpack_require__(/*! ../clients/types */ "./src/clients/types.ts"); +const errors_1 = __webpack_require__(/*! ./errors */ "./src/lib/errors.ts"); +/** + * @describe validatePlaceOrderMessage validates that an order to place has fields that would be + * valid on-chain. + */ +function validatePlaceOrderMessage(subaccountNumber, order) { + if (!verifyNumberIsUint32(order.clientId)) { + return new errors_1.UserError(`clientId: ${order.clientId} is not a valid uint32`); } - catch (e) { - return wrappedError(e); + if (order.quantums.lessThanOrEqual(long_1.default.ZERO)) { + return new errors_1.UserError(`quantums: ${order.quantums} cannot be <= 0`); } -} -exports.connectClient = connectClient; -async function connectNetwork(paramsJSON) { - try { - const params = JSON.parse(paramsJSON); - const { indexerUrl, websocketUrl, validatorUrl, chainId, faucetUrl, nobleValidatorUrl, USDC_DENOM, USDC_DECIMALS, USDC_GAS_DENOM, CHAINTOKEN_DENOM, CHAINTOKEN_DECIMALS, CHAINTOKEN_GAS_DENOM, } = params; - if (indexerUrl === undefined || - websocketUrl === undefined || - validatorUrl === undefined || - chainId === undefined) { - throw new errors_1.UserError('Missing required network params'); - } - if (USDC_DENOM === undefined || - USDC_DECIMALS === undefined || - CHAINTOKEN_DENOM === undefined || - CHAINTOKEN_DECIMALS === undefined) { - throw new errors_1.UserError('Missing required token params'); - } - const indexerConfig = new constants_2.IndexerConfig(indexerUrl, websocketUrl); - const validatorConfig = new constants_2.ValidatorConfig(validatorUrl, chainId, { - USDC_DENOM, - USDC_DECIMALS, - USDC_GAS_DENOM, - CHAINTOKEN_DENOM, - CHAINTOKEN_DECIMALS, - CHAINTOKEN_GAS_DENOM, - }); - const config = new constants_2.Network('native', indexerConfig, validatorConfig); - globalThis.client = await composite_client_1.CompositeClient.connect(config); - if (faucetUrl !== undefined) { - globalThis.faucetClient = new faucet_client_1.FaucetClient(faucetUrl); - } - else { - globalThis.faucetClient = null; - } - try { - globalThis.nobleClient = new noble_client_1.NobleClient(nobleValidatorUrl); - if (globalThis.nobleWallet) { - await globalThis.nobleClient.connect(globalThis.nobleWallet); - } - } - catch (e) { - console.error('Failed to connect to noble validator'); - } - return (0, helpers_1.encodeJson)(config); + if (order.subticks.lessThanOrEqual(long_1.default.ZERO)) { + return new errors_1.UserError(`subticks: ${order.subticks} cannot be <= 0`); } - catch (e) { - return wrappedError(e); + if (!verifySubaccountNumber(subaccountNumber)) { + return new errors_1.UserError(`subaccountNumber: ${subaccountNumber} cannot be < 0 or > ${constants_1.MAX_SUBACCOUNT_NUMBER}`); } -} -exports.connectNetwork = connectNetwork; -async function connectWallet(mnemonic) { - var _a; - try { - globalThis.wallet = await local_wallet_1.default.fromMnemonic(mnemonic, constants_1.BECH32_PREFIX); - globalThis.nobleWallet = await local_wallet_1.default.fromMnemonic(mnemonic, constants_1.NOBLE_BECH32_PREFIX); - try { - await ((_a = globalThis.nobleClient) === null || _a === void 0 ? void 0 : _a.connect(globalThis.nobleWallet)); - } - catch (e) { - console.error('Failed to connect to noble validator'); - } - const address = globalThis.wallet.address; - return (0, helpers_1.encodeJson)({ address }); + if (!isStatefulOrder(order.orderFlags) && !verifyGoodTilBlock(order.goodTilBlock)) { + return new errors_1.UserError(`goodTilBlock: ${order.goodTilBlock} is not a valid uint32 or is 0`); } - catch (e) { - return wrappedError(e); + if (isStatefulOrder(order.orderFlags) && !verifyGoodTilBlockTime(order.goodTilBlockTime)) { + return new errors_1.UserError(`goodTilBlockTime: ${order.goodTilBlockTime} is not a valid uint32 or is 0`); } + return undefined; } -exports.connectWallet = connectWallet; -async function connect(network, mnemonic) { - try { - await connectClient(network); - return connectWallet(mnemonic); +exports.validatePlaceOrderMessage = validatePlaceOrderMessage; +/** + * @describe validateCancelOrderMessage validates that an order to cancel has fields that would be + * valid on-chain. + */ +function validateCancelOrderMessage(subaccountNumber, order) { + if (!verifyNumberIsUint32(order.clientId)) { + return new errors_1.UserError(`clientId: ${order.clientId} is not a valid uint32`); } - catch (e) { - return wrappedError(e); + if (!isStatefulOrder(order.orderFlags) && !verifyGoodTilBlock(order.goodTilBlock)) { + return new errors_1.UserError(`goodTilBlock: ${order.goodTilBlock} is not a valid uint32 or is 0`); } -} -exports.connect = connect; -async function deriveMnemomicFromEthereumSignature(signature) { - try { - const { mnemonic } = (0, onboarding_1.deriveHDKeyFromEthereumSignature)(signature); - const wallet = await local_wallet_1.default.fromMnemonic(mnemonic, constants_1.BECH32_PREFIX); - const result = { mnemonic, address: wallet.address }; - return new Promise((resolve) => { - resolve((0, helpers_1.encodeJson)(result)); - }); + if (!isStatefulOrder(order.orderFlags) && order.goodTilBlockTime !== undefined) { + return new errors_1.UserError(`goodTilBlockTime is ${order.goodTilBlockTime}, but should not be set for non-stateful orders`); } - catch (e) { - return wrappedError(e); + if (isStatefulOrder(order.orderFlags) && !verifyGoodTilBlockTime(order.goodTilBlockTime)) { + return new errors_1.UserError(`goodTilBlockTime: ${order.goodTilBlockTime} is not a valid uint32 or is 0`); } -} -exports.deriveMnemomicFromEthereumSignature = deriveMnemomicFromEthereumSignature; -async function getHeight() { - var _a; - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectClient() first'); - } - const block = await ((_a = globalThis.client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.latestBlock()); - return (0, helpers_1.encodeJson)(block); + if (isStatefulOrder(order.orderFlags) && order.goodTilBlock !== undefined) { + return new errors_1.UserError(`goodTilBlock is ${order.goodTilBlock}, but should not be set for stateful orders`); } - catch (e) { - return wrappedError(e); + if (!verifySubaccountNumber(subaccountNumber)) { + return new errors_1.UserError(`subaccountNumber: ${subaccountNumber} cannot be < 0 or > ${constants_1.MAX_SUBACCOUNT_NUMBER}`); } + return undefined; } -exports.getHeight = getHeight; -async function getFeeTiers() { - var _a; - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectClient() first'); - } - const feeTiers = await ((_a = globalThis.client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.getFeeTiers()); - return (0, helpers_1.encodeJson)(feeTiers); - } - catch (e) { - return wrappedError(e); +exports.validateCancelOrderMessage = validateCancelOrderMessage; +/** + * @describe validateTransferMessage validates that a transfer to place has fields that would be + * valid on-chain. + */ +function validateTransferMessage(transfer) { + if (!verifySubaccountNumber(transfer.sender.number || 0)) { + return new errors_1.UserError(`senderSubaccountNumber: ${transfer.sender.number || 0} cannot be < 0 or > ${constants_1.MAX_SUBACCOUNT_NUMBER}`); } -} -exports.getFeeTiers = getFeeTiers; -async function getUserFeeTier(address) { - var _a; - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectClient() first'); - } - const feeTiers = await ((_a = globalThis.client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.getUserFeeTier(address)); - return (0, helpers_1.encodeJson)(feeTiers); + if (!verifySubaccountNumber(transfer.recipient.number || 0)) { + return new errors_1.UserError(`recipientSubaccountNumber: ${transfer.recipient.number || 0} cannot be < 0 or > ${constants_1.MAX_SUBACCOUNT_NUMBER}`); } - catch (e) { - return wrappedError(e); + if (transfer.assetId !== 0) { + return new errors_1.UserError(`asset id: ${transfer.assetId} not supported`); } -} -exports.getUserFeeTier = getUserFeeTier; -async function getEquityTiers() { - var _a; - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectClient() first'); - } - const equityTiers = await ((_a = globalThis.client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.getEquityTierLimitConfiguration()); - return (0, helpers_1.encodeJson)(equityTiers, helpers_1.ByteArrayEncoding.BIGINT); + if (transfer.amount.lessThanOrEqual(long_1.default.ZERO)) { + return new errors_1.UserError(`amount: ${transfer.amount} cannot be <= 0`); } - catch (e) { - return wrappedError(e); + const addressError = verifyIsBech32(transfer.recipient.owner); + if (addressError !== undefined) { + return new errors_1.UserError(addressError.toString()); } + return undefined; } -exports.getEquityTiers = getEquityTiers; -async function getPerpetualMarkets() { - var _a; - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectClient() first'); - } - const markets = await ((_a = globalThis.client) === null || _a === void 0 ? void 0 : _a.indexerClient.markets.getPerpetualMarkets()); - return (0, helpers_1.encodeJson)(markets); - } - catch (e) { - return wrappedError(e); +exports.validateTransferMessage = validateTransferMessage; +function verifyGoodTilBlock(goodTilBlock) { + if (goodTilBlock === undefined) { + return false; } + return verifyNumberIsUint32(goodTilBlock) && goodTilBlock > 0; } -exports.getPerpetualMarkets = getPerpetualMarkets; -async function placeOrder(payload) { - var _a, _b; - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectClient() first'); - } - const wallet = globalThis.wallet; - if (wallet === undefined) { - throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); - } - const json = JSON.parse(payload); - const subaccountNumber = json.subaccountNumber; - if (subaccountNumber === undefined) { - throw new errors_1.UserError('subaccountNumber is not set'); - } - const marketId = json.marketId; - if (marketId === undefined) { - throw new errors_1.UserError('marketId is not set'); - } - const type = json.type; - if (type === undefined) { - throw new errors_1.UserError('type is not set'); - } - const side = json.side; - if (side === undefined) { - throw new errors_1.UserError('side is not set'); - } - const price = json.price; - if (price === undefined) { - throw new errors_1.UserError('price is not set'); - } - // trigger_price: number, // not used for MARKET and LIMIT - const size = json.size; - if (size === undefined) { - throw new errors_1.UserError('size is not set'); - } - const clientId = json.clientId; - if (clientId === undefined) { - throw new errors_1.UserError('clientId is not set'); - } - const timeInForce = json.timeInForce; - const goodTilTimeInSeconds = json.goodTilTimeInSeconds; - const execution = json.execution; - const postOnly = (_a = json.postOnly) !== null && _a !== void 0 ? _a : false; - const reduceOnly = (_b = json.reduceOnly) !== null && _b !== void 0 ? _b : false; - const triggerPrice = json.triggerPrice; - const marketInfo = json.marketInfo; - const currentHeight = json.currentHeight; - const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber); - const tx = await client.placeOrder(subaccount, marketId, type, side, price, size, clientId, timeInForce, goodTilTimeInSeconds, execution, postOnly, reduceOnly, triggerPrice, marketInfo, currentHeight); - return (0, helpers_1.encodeJson)(tx); - } - catch (error) { - return wrappedError(error); +function verifyGoodTilBlockTime(goodTilBlockTime) { + if (goodTilBlockTime === undefined) { + return false; } + return verifyNumberIsUint32(goodTilBlockTime) && goodTilBlockTime > 0; } -exports.placeOrder = placeOrder; -function wrappedError(error) { - const text = JSON.stringify(error, Object.getOwnPropertyNames(error)); - return `{"error": ${text}}`; -} -exports.wrappedError = wrappedError; -async function cancelOrder(payload) { - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectNetwork() first'); - } - const wallet = globalThis.wallet; - if (wallet === undefined) { - throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); - } - const json = JSON.parse(payload); - const subaccountNumber = json.subaccountNumber; - if (subaccountNumber === undefined) { - throw new errors_1.UserError('subaccountNumber is not set'); - } - const clientId = json.clientId; - if (clientId === undefined) { - throw new errors_1.UserError('clientId is not set'); - } - const orderFlags = json.orderFlags; - if (orderFlags === undefined) { - throw new errors_1.UserError('orderFlags is not set'); - } - const clobPairId = json.clobPairId; - if (clobPairId === undefined) { - throw new errors_1.UserError('clobPairId is not set'); - } - const goodTilBlock = json.goodTilBlock; - const goodTilBlockTime = json.goodTilBlockTime; - const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber); - const tx = await client.cancelRawOrder(subaccount, clientId, orderFlags, clobPairId, goodTilBlock !== 0 ? goodTilBlock : undefined, goodTilBlockTime !== 0 ? goodTilBlockTime : undefined); - return (0, helpers_1.encodeJson)(tx); - } - catch (error) { - return wrappedError(error); - } +function verifySubaccountNumber(subaccountNumber) { + return subaccountNumber >= 0 && subaccountNumber <= constants_1.MAX_SUBACCOUNT_NUMBER; } -exports.cancelOrder = cancelOrder; -async function deposit(payload) { - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectNetwork() first'); - } - const wallet = globalThis.wallet; - if (wallet === undefined) { - throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); - } - const json = JSON.parse(payload); - const subaccountNumber = json.subaccountNumber; - if (subaccountNumber === undefined) { - throw new errors_1.UserError('subaccountNumber is not set'); - } - const amount = json.amount; - if (amount === undefined) { - throw new errors_1.UserError('amount is not set'); - } - const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber); - const tx = await client.depositToSubaccount(subaccount, amount); - return (0, helpers_1.encodeJson)(tx); - } - catch (error) { - return wrappedError(error); - } +function verifyNumberIsUint32(num) { + return num >= 0 && num <= constants_1.MAX_UINT_32; } -exports.deposit = deposit; -async function withdraw(payload) { - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectNetwork() first'); - } - const wallet = globalThis.wallet; - if (wallet === undefined) { - throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); - } - const json = JSON.parse(payload); - const subaccountNumber = json.subaccountNumber; - if (subaccountNumber === undefined) { - throw new errors_1.UserError('subaccountNumber is not set'); - } - const amount = json.amount; - if (amount === undefined) { - throw new errors_1.UserError('amount is not set'); - } - const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber); - const tx = await client.withdrawFromSubaccount(subaccount, amount, json.recipient); - return (0, helpers_1.encodeJson)(tx); - } - catch (error) { - return wrappedError(error); - } +function verifyOrderFlags(orderFlags) { + return orderFlags === types_1.OrderFlags.SHORT_TERM || + orderFlags === types_1.OrderFlags.LONG_TERM || orderFlags === types_1.OrderFlags.CONDITIONAL; } -exports.withdraw = withdraw; -async function faucet(payload) { - try { - const faucetClient = globalThis.faucetClient; - if (!faucetClient) { - throw new errors_1.UserError('faucetClient is not connected. Call connectNetwork() first'); - } - const wallet = globalThis.wallet; - if (wallet === undefined) { - throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); - } - const json = JSON.parse(payload); - const subaccountNumber = json.subaccountNumber; - if (subaccountNumber === undefined) { - throw new errors_1.UserError('subaccountNumber is not set'); - } - const amount = json.amount; - if (amount === undefined) { - throw new errors_1.UserError('amount is not set'); - } - const response = await faucetClient.fill(wallet.address, subaccountNumber, amount); - return (0, helpers_1.encodeJson)(response); - } - catch (error) { - return wrappedError(error); - } +exports.verifyOrderFlags = verifyOrderFlags; +function isStatefulOrder(orderFlags) { + return orderFlags === types_1.OrderFlags.LONG_TERM || orderFlags === types_1.OrderFlags.CONDITIONAL; } -exports.faucet = faucet; -async function withdrawToIBC(subaccountNumber, amount, payload) { +exports.isStatefulOrder = isStatefulOrder; +function verifyIsBech32(address) { try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectClient() first'); - } - const wallet = globalThis.wallet; - if (wallet === undefined) { - throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); - } - const decode = (str) => Buffer.from(str, 'base64').toString('binary'); - const decoded = decode(payload); - const json = JSON.parse(decoded); - const ibcMsg = { - typeUrl: json.msgTypeUrl, - value: json.msg, - }; - const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber); - const subaccountMsg = client.withdrawFromSubaccountMessage(subaccount, amount); - const msgs = [subaccountMsg, ibcMsg]; - const encodeObjects = new Promise((resolve) => resolve(msgs)); - const tx = await client.send(wallet, () => { - return encodeObjects; - }, false, undefined, undefined); - return (0, helpers_1.encodeJson)(tx); + (0, bech32_1.decode)(address); } catch (error) { - return wrappedError(error); + return error; } + return undefined; } -exports.withdrawToIBC = withdrawToIBC; -async function transferNativeToken(payload) { - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectClient() first'); - } - const wallet = globalThis.wallet; - if (wallet === undefined) { - throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); - } - const json = JSON.parse(payload); - const amount = json.amount; - if (amount === undefined) { - throw new errors_1.UserError('amount is not set'); - } - const msg = client.sendTokenMessage(wallet, amount, json.recipient); - const msgs = [msg]; - const encodeObjects = new Promise((resolve) => resolve(msgs)); - const tx = await client.send(wallet, () => { - return encodeObjects; - }, false); - return (0, helpers_1.encodeJson)(tx); - } - catch (error) { - return wrappedError(error); - } +function isValidAddress(address) { + // An address is valid if it starts with `dydx1` and is Bech32 format. + return address.startsWith('dydx1') && (verifyIsBech32(address) === undefined); } -exports.transferNativeToken = transferNativeToken; -async function getAccountBalance() { - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectClient() first'); - } - const wallet = globalThis.wallet; - if (wallet === undefined) { - throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); - } - const address = globalThis.wallet.address; - const tx = await client.validatorClient.get - .getAccountBalance(address, client.validatorClient.config.denoms.USDC_DENOM); - return (0, helpers_1.encodeJson)(tx); - } - catch (error) { - return wrappedError(error); +exports.isValidAddress = isValidAddress; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtQ0FBZ0M7QUFDaEMsZ0RBQXdCO0FBRXhCLG9EQUEwRTtBQUMxRSw0Q0FLMEI7QUFDMUIscUNBQXFDO0FBRXJDOzs7R0FHRztBQUNILFNBQWdCLHlCQUF5QixDQUN2QyxnQkFBd0IsRUFDeEIsS0FBa0I7SUFFbEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUN6QyxPQUFPLElBQUksa0JBQVMsQ0FBQyxhQUFhLEtBQUssQ0FBQyxRQUFRLHdCQUF3QixDQUFDLENBQUM7S0FDM0U7SUFDRCxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUM3QyxPQUFPLElBQUksa0JBQVMsQ0FBQyxhQUFhLEtBQUssQ0FBQyxRQUFRLGlCQUFpQixDQUFDLENBQUM7S0FDcEU7SUFDRCxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUM3QyxPQUFPLElBQUksa0JBQVMsQ0FBQyxhQUFhLEtBQUssQ0FBQyxRQUFRLGlCQUFpQixDQUFDLENBQUM7S0FDcEU7SUFDRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtRQUM3QyxPQUFPLElBQUksa0JBQVMsQ0FDbEIscUJBQXFCLGdCQUFnQix1QkFBdUIsaUNBQXFCLEVBQUUsQ0FDcEYsQ0FBQztLQUNIO0lBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUU7UUFDakYsT0FBTyxJQUFJLGtCQUFTLENBQUMsaUJBQWlCLEtBQUssQ0FBQyxZQUFZ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 + +/***/ }), + +/***/ "./src/network_optimizer.ts": +/*!**********************************!*\ + !*** ./src/network_optimizer.ts ***! + \**********************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.NetworkOptimizer = exports.isTruthy = void 0; +const indexer_client_1 = __webpack_require__(/*! ./clients/indexer-client */ "./src/clients/indexer-client.ts"); +const validator_client_1 = __webpack_require__(/*! ./clients/validator-client */ "./src/clients/validator-client.ts"); +const helpers_1 = __webpack_require__(/*! ./lib/helpers */ "./src/lib/helpers.ts"); +const types_1 = __webpack_require__(/*! ./types */ "./src/types.ts"); +class PingResponse { + constructor(height) { + this.height = height; + this.responseTime = new Date(); } } -exports.getAccountBalance = getAccountBalance; -async function getAccountBalances() { - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectClient() first'); - } - const wallet = globalThis.wallet; - if (wallet === undefined) { - throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); - } - const address = globalThis.wallet.address; - const tx = await client.validatorClient.get.getAccountBalances(address); - return (0, helpers_1.encodeJson)(tx); +const isTruthy = (n) => Boolean(n); +exports.isTruthy = isTruthy; +class NetworkOptimizer { + async validatorClients(endpointUrls, chainId) { + return (await Promise.all(endpointUrls.map((endpointUrl) => validator_client_1.ValidatorClient.connect(new types_1.ValidatorConfig(endpointUrl, chainId, { + CHAINTOKEN_DENOM: 'placeholder', + CHAINTOKEN_DECIMALS: 18, + USDC_DENOM: 'uusdc', + USDC_DECIMALS: 6, + })) + .catch((_) => undefined)))).filter(exports.isTruthy); } - catch (error) { - return wrappedError(error); + indexerClients(endpointUrls) { + return endpointUrls.map((endpointUrl) => new indexer_client_1.IndexerClient( + // socket is not used for finding optimal indexer, but required as a parameter to the config + new types_1.IndexerConfig(endpointUrl, endpointUrl.replace('https://', 'wss://').replace('http://', 'ws://')))).filter(exports.isTruthy); } -} -exports.getAccountBalances = getAccountBalances; -async function getUserStats(payload) { - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectClient() first'); + async findOptimalNode(endpointUrls, chainId) { + if (endpointUrls.length === 0) { + const errorResponse = { + error: { + message: 'No nodes provided', + }, + }; + return (0, helpers_1.encodeJson)(errorResponse); } - const json = JSON.parse(payload); - const address = json.address; - if (address === undefined) { - throw new errors_1.UserError('address is not set'); + const clients = await this.validatorClients(endpointUrls, chainId); + const responses = (await Promise.all(clients + .map(async (client) => { + const block = await client.get.latestBlock(); + const response = new PingResponse(block.header.height); + return { + endpoint: client.config.restEndpoint, + height: response.height, + time: response.responseTime.getTime(), + }; + }) + .map((promise) => promise.catch((_) => undefined)))).filter(exports.isTruthy); + if (responses.length === 0) { + throw new Error('Could not connect to endpoints'); } - const tx = await client.validatorClient.get.getUserStats(address); - return (0, helpers_1.encodeJson)(tx); - } - catch (error) { - return wrappedError(error); + const maxHeight = Math.max(...responses.map(({ height }) => height)); + return responses + // Only consider nodes at `maxHeight` or `maxHeight - 1` + .filter(({ height }) => height === maxHeight || height === maxHeight - 1) + // Return the endpoint with the fastest response time + .sort((a, b) => a.time - b.time)[0] + .endpoint; } -} -exports.getUserStats = getUserStats; -async function simulateDeposit(payload) { - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectClient() first'); - } - const wallet = globalThis.wallet; - if (wallet === undefined) { - throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); - } - const json = JSON.parse(payload); - const subaccountNumber = json.subaccountNumber; - if (subaccountNumber === undefined) { - throw new errors_1.UserError('subaccountNumber is not set'); + async findOptimalIndexer(endpointUrls) { + if (endpointUrls.length === 0) { + const errorResponse = { + error: { + message: 'No URL provided', + }, + }; + return (0, helpers_1.encodeJson)(errorResponse); } - const amount = json.amount; - if (amount === undefined) { - throw new errors_1.UserError('amount is not set'); + const clients = this.indexerClients(endpointUrls); + const responses = (await Promise.all(clients + .map(async (client) => { + const block = await client.utility.getHeight(); + const response = new PingResponse(+block.height); + return { + endpoint: client.config.restEndpoint, + height: response.height, + time: response.responseTime.getTime(), + }; + }) + .map((promise) => promise.catch((_) => undefined)))).filter(exports.isTruthy); + if (responses.length === 0) { + throw new Error('Could not connect to endpoints'); } - const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber); - const msg = client.depositToSubaccountMessage(subaccount, amount); - const msgs = [msg]; - const encodeObjects = new Promise((resolve) => resolve(msgs)); - const stdFee = await client.simulate(globalThis.wallet, () => { - return encodeObjects; - }); - return JSON.stringify(stdFee); - } - catch (error) { - return wrappedError(error); + const maxHeight = Math.max(...responses.map(({ height }) => height)); + return responses + // Only consider nodes at `maxHeight` or `maxHeight - 1` + .filter(({ height }) => height === maxHeight || height === maxHeight - 1) + // Return the endpoint with the fastest response time + .sort((a, b) => a.time - b.time)[0] + .endpoint; } } -exports.simulateDeposit = simulateDeposit; -async function simulateWithdraw(payload) { - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectClient() first'); - } - const wallet = globalThis.wallet; - if (wallet === undefined) { - throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); - } - const json = JSON.parse(payload); - const subaccountNumber = json.subaccountNumber; - if (subaccountNumber === undefined) { - throw new errors_1.UserError('subaccountNumber is not set'); - } - const amount = json.amount; - if (amount === undefined) { - throw new errors_1.UserError('amount is not set'); - } - const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber); - const msg = client.withdrawFromSubaccountMessage(subaccount, amount, json.recipient); - const msgs = [msg]; - const encodeObjects = new Promise((resolve) => resolve(msgs)); - const stdFee = await client.simulate(globalThis.wallet, () => { - return encodeObjects; - }); - return (0, helpers_1.encodeJson)(stdFee); - } - catch (error) { - return wrappedError(error); +exports.NetworkOptimizer = NetworkOptimizer; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya19vcHRpbWl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV0d29ya19vcHRpbWl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkRBQXlEO0FBQ3pELGlFQUE2RDtBQUM3RCwyQ0FBMkM7QUFDM0MsbUNBQXlEO0FBRXpELE1BQU0sWUFBWTtJQUtkLFlBQ0UsTUFBYztRQUVkLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0NBQ0o7QUFFTSxNQUFNLFFBQVEsR0FBRyxDQUFJLENBQW9DLEVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUEzRSxRQUFBLFFBQVEsWUFBbUU7QUFFeEYsTUFBYSxnQkFBZ0I7SUFDbkIsS0FBSyxDQUFDLGdCQUFnQixDQUM1QixZQUFzQixFQUN0QixPQUFlO1FBRWYsT0FBTyxDQUFDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDdkIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsa0NBQWUsQ0FBQyxPQUFPLENBQ3ZELElBQUksdUJBQWUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFO1lBQ3hDLGdCQUFnQixFQUFFLGFBQWE7WUFDL0IsbUJBQW1CLEVBQUUsRUFBRTtZQUN2QixVQUFVLEVBQUUsT0FBTztZQUNuQixhQUFhLEVBQUUsQ0FBQztTQUNqQixDQUFDLENBQUM7YUFDRixLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUN6QixDQUNGLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQVEsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFTyxjQUFjLENBQ3BCLFlBQXNCO1FBRXRCLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMs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 + +/***/ }), + +/***/ "./src/types.ts": +/*!**********************!*\ + !*** ./src/types.ts ***! + \**********************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ClobPairId = void 0; +__exportStar(__webpack_require__(/*! ./clients/types */ "./src/clients/types.ts"), exports); +__exportStar(__webpack_require__(/*! ./clients/constants */ "./src/clients/constants.ts"), exports); +var ClobPairId; +(function (ClobPairId) { + ClobPairId[ClobPairId["PERPETUAL_PAIR_BTC_USD"] = 0] = "PERPETUAL_PAIR_BTC_USD"; +})(ClobPairId = exports.ClobPairId || (exports.ClobPairId = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQSxrREFBZ0M7QUFDaEMsc0RBQW9DO0FBaUNwQyxJQUFZLFVBRVg7QUFGRCxXQUFZLFVBQVU7SUFDcEIsK0VBQTBCLENBQUE7QUFDNUIsQ0FBQyxFQUZXLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBRXJCIn0= + +/***/ }), + +/***/ "./node_modules/url/node_modules/punycode/punycode.js": +/*!************************************************************!*\ + !*** ./node_modules/url/node_modules/punycode/punycode.js ***! + \************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +/* module decorator */ module = __webpack_require__.nmd(module); +var __WEBPACK_AMD_DEFINE_RESULT__;/*! https://mths.be/punycode v1.3.2 by @mathias */ +;(function(root) { + + /** Detect free variables */ + var freeExports = true && exports && + !exports.nodeType && exports; + var freeModule = true && module && + !module.nodeType && module; + var freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g; + if ( + freeGlobal.global === freeGlobal || + freeGlobal.window === freeGlobal || + freeGlobal.self === freeGlobal + ) { + root = freeGlobal; + } + + /** + * The `punycode` object. + * @name punycode + * @type Object + */ + var punycode, + + /** Highest positive signed 32-bit float value */ + maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1 + + /** Bootstring parameters */ + base = 36, + tMin = 1, + tMax = 26, + skew = 38, + damp = 700, + initialBias = 72, + initialN = 128, // 0x80 + delimiter = '-', // '\x2D' + + /** Regular expressions */ + regexPunycode = /^xn--/, + regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars + regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators + + /** Error messages */ + errors = { + 'overflow': 'Overflow: input needs wider integers to process', + 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', + 'invalid-input': 'Invalid input' + }, + + /** Convenience shortcuts */ + baseMinusTMin = base - tMin, + floor = Math.floor, + stringFromCharCode = String.fromCharCode, + + /** Temporary variable */ + key; + + /*--------------------------------------------------------------------------*/ + + /** + * A generic error utility function. + * @private + * @param {String} type The error type. + * @returns {Error} Throws a `RangeError` with the applicable error message. + */ + function error(type) { + throw RangeError(errors[type]); + } + + /** + * A generic `Array#map` utility function. + * @private + * @param {Array} array The array to iterate over. + * @param {Function} callback The function that gets called for every array + * item. + * @returns {Array} A new array of values returned by the callback function. + */ + function map(array, fn) { + var length = array.length; + var result = []; + while (length--) { + result[length] = fn(array[length]); + } + return result; + } + + /** + * A simple `Array#map`-like wrapper to work with domain name strings or email + * addresses. + * @private + * @param {String} domain The domain name or email address. + * @param {Function} callback The function that gets called for every + * character. + * @returns {Array} A new string of characters returned by the callback + * function. + */ + function mapDomain(string, fn) { + var parts = string.split('@'); + var result = ''; + if (parts.length > 1) { + // In email addresses, only the domain name should be punycoded. Leave + // the local part (i.e. everything up to `@`) intact. + result = parts[0] + '@'; + string = parts[1]; + } + // Avoid `split(regex)` for IE8 compatibility. See #17. + string = string.replace(regexSeparators, '\x2E'); + var labels = string.split('.'); + var encoded = map(labels, fn).join('.'); + return result + encoded; + } + + /** + * Creates an array containing the numeric code points of each Unicode + * character in the string. While JavaScript uses UCS-2 internally, + * this function will convert a pair of surrogate halves (each of which + * UCS-2 exposes as separate characters) into a single code point, + * matching UTF-16. + * @see `punycode.ucs2.encode` + * @see + * @memberOf punycode.ucs2 + * @name decode + * @param {String} string The Unicode input string (UCS-2). + * @returns {Array} The new array of code points. + */ + function ucs2decode(string) { + var output = [], + counter = 0, + length = string.length, + value, + extra; + while (counter < length) { + value = string.charCodeAt(counter++); + if (value >= 0xD800 && value <= 0xDBFF && counter < length) { + // high surrogate, and there is a next character + extra = string.charCodeAt(counter++); + if ((extra & 0xFC00) == 0xDC00) { // low surrogate + output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + // unmatched surrogate; only append this code unit, in case the next + // code unit is the high surrogate of a surrogate pair + output.push(value); + counter--; + } + } else { + output.push(value); + } + } + return output; + } + + /** + * Creates a string based on an array of numeric code points. + * @see `punycode.ucs2.decode` + * @memberOf punycode.ucs2 + * @name encode + * @param {Array} codePoints The array of numeric code points. + * @returns {String} The new Unicode string (UCS-2). + */ + function ucs2encode(array) { + return map(array, function(value) { + var output = ''; + if (value > 0xFFFF) { + value -= 0x10000; + output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800); + value = 0xDC00 | value & 0x3FF; + } + output += stringFromCharCode(value); + return output; + }).join(''); + } + + /** + * Converts a basic code point into a digit/integer. + * @see `digitToBasic()` + * @private + * @param {Number} codePoint The basic numeric code point value. + * @returns {Number} The numeric value of a basic code point (for use in + * representing integers) in the range `0` to `base - 1`, or `base` if + * the code point does not represent a value. + */ + function basicToDigit(codePoint) { + if (codePoint - 48 < 10) { + return codePoint - 22; + } + if (codePoint - 65 < 26) { + return codePoint - 65; + } + if (codePoint - 97 < 26) { + return codePoint - 97; + } + return base; + } + + /** + * Converts a digit/integer into a basic code point. + * @see `basicToDigit()` + * @private + * @param {Number} digit The numeric value of a basic code point. + * @returns {Number} The basic code point whose value (when used for + * representing integers) is `digit`, which needs to be in the range + * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is + * used; else, the lowercase form is used. The behavior is undefined + * if `flag` is non-zero and `digit` has no uppercase form. + */ + function digitToBasic(digit, flag) { + // 0..25 map to ASCII a..z or A..Z + // 26..35 map to ASCII 0..9 + return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); + } + + /** + * Bias adaptation function as per section 3.4 of RFC 3492. + * http://tools.ietf.org/html/rfc3492#section-3.4 + * @private + */ + function adapt(delta, numPoints, firstTime) { + var k = 0; + delta = firstTime ? floor(delta / damp) : delta >> 1; + delta += floor(delta / numPoints); + for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) { + delta = floor(delta / baseMinusTMin); + } + return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); + } + + /** + * Converts a Punycode string of ASCII-only symbols to a string of Unicode + * symbols. + * @memberOf punycode + * @param {String} input The Punycode string of ASCII-only symbols. + * @returns {String} The resulting string of Unicode symbols. + */ + function decode(input) { + // Don't use UCS-2 + var output = [], + inputLength = input.length, + out, + i = 0, + n = initialN, + bias = initialBias, + basic, + j, + index, + oldi, + w, + k, + digit, + t, + /** Cached calculation results */ + baseMinusT; + + // Handle the basic code points: let `basic` be the number of input code + // points before the last delimiter, or `0` if there is none, then copy + // the first basic code points to the output. + + basic = input.lastIndexOf(delimiter); + if (basic < 0) { + basic = 0; + } + + for (j = 0; j < basic; ++j) { + // if it's not a basic code point + if (input.charCodeAt(j) >= 0x80) { + error('not-basic'); + } + output.push(input.charCodeAt(j)); + } + + // Main decoding loop: start just after the last delimiter if any basic code + // points were copied; start at the beginning otherwise. + + for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) { + + // `index` is the index of the next character to be consumed. + // Decode a generalized variable-length integer into `delta`, + // which gets added to `i`. The overflow checking is easier + // if we increase `i` as we go, then subtract off its starting + // value at the end to obtain `delta`. + for (oldi = i, w = 1, k = base; /* no condition */; k += base) { + + if (index >= inputLength) { + error('invalid-input'); + } + + digit = basicToDigit(input.charCodeAt(index++)); + + if (digit >= base || digit > floor((maxInt - i) / w)) { + error('overflow'); + } + + i += digit * w; + t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + + if (digit < t) { + break; + } + + baseMinusT = base - t; + if (w > floor(maxInt / baseMinusT)) { + error('overflow'); + } + + w *= baseMinusT; + + } + + out = output.length + 1; + bias = adapt(i - oldi, out, oldi == 0); + + // `i` was supposed to wrap around from `out` to `0`, + // incrementing `n` each time, so we'll fix that now: + if (floor(i / out) > maxInt - n) { + error('overflow'); + } + + n += floor(i / out); + i %= out; + + // Insert `n` at position `i` of the output + output.splice(i++, 0, n); + + } + + return ucs2encode(output); + } + + /** + * Converts a string of Unicode symbols (e.g. a domain name label) to a + * Punycode string of ASCII-only symbols. + * @memberOf punycode + * @param {String} input The string of Unicode symbols. + * @returns {String} The resulting Punycode string of ASCII-only symbols. + */ + function encode(input) { + var n, + delta, + handledCPCount, + basicLength, + bias, + j, + m, + q, + k, + t, + currentValue, + output = [], + /** `inputLength` will hold the number of code points in `input`. */ + inputLength, + /** Cached calculation results */ + handledCPCountPlusOne, + baseMinusT, + qMinusT; + + // Convert the input in UCS-2 to Unicode + input = ucs2decode(input); + + // Cache the length + inputLength = input.length; + + // Initialize the state + n = initialN; + delta = 0; + bias = initialBias; + + // Handle the basic code points + for (j = 0; j < inputLength; ++j) { + currentValue = input[j]; + if (currentValue < 0x80) { + output.push(stringFromCharCode(currentValue)); + } + } + + handledCPCount = basicLength = output.length; + + // `handledCPCount` is the number of code points that have been handled; + // `basicLength` is the number of basic code points. + + // Finish the basic string - if it is not empty - with a delimiter + if (basicLength) { + output.push(delimiter); + } + + // Main encoding loop: + while (handledCPCount < inputLength) { + + // All non-basic code points < n have been handled already. Find the next + // larger one: + for (m = maxInt, j = 0; j < inputLength; ++j) { + currentValue = input[j]; + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } + + // Increase `delta` enough to advance the decoder's state to , + // but guard against overflow + handledCPCountPlusOne = handledCPCount + 1; + if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { + error('overflow'); + } + + delta += (m - n) * handledCPCountPlusOne; + n = m; + + for (j = 0; j < inputLength; ++j) { + currentValue = input[j]; + + if (currentValue < n && ++delta > maxInt) { + error('overflow'); + } + + if (currentValue == n) { + // Represent delta as a generalized variable-length integer + for (q = delta, k = base; /* no condition */; k += base) { + t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + if (q < t) { + break; + } + qMinusT = q - t; + baseMinusT = base - t; + output.push( + stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) + ); + q = floor(qMinusT / baseMinusT); + } + + output.push(stringFromCharCode(digitToBasic(q, 0))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); + delta = 0; + ++handledCPCount; + } + } + + ++delta; + ++n; + + } + return output.join(''); + } + + /** + * Converts a Punycode string representing a domain name or an email address + * to Unicode. Only the Punycoded parts of the input will be converted, i.e. + * it doesn't matter if you call it on a string that has already been + * converted to Unicode. + * @memberOf punycode + * @param {String} input The Punycoded domain name or email address to + * convert to Unicode. + * @returns {String} The Unicode representation of the given Punycode + * string. + */ + function toUnicode(input) { + return mapDomain(input, function(string) { + return regexPunycode.test(string) + ? decode(string.slice(4).toLowerCase()) + : string; + }); + } + + /** + * Converts a Unicode string representing a domain name or an email address to + * Punycode. Only the non-ASCII parts of the domain name will be converted, + * i.e. it doesn't matter if you call it with a domain that's already in + * ASCII. + * @memberOf punycode + * @param {String} input The domain name or email address to convert, as a + * Unicode string. + * @returns {String} The Punycode representation of the given domain name or + * email address. + */ + function toASCII(input) { + return mapDomain(input, function(string) { + return regexNonASCII.test(string) + ? 'xn--' + encode(string) + : string; + }); + } + + /*--------------------------------------------------------------------------*/ + + /** Define the public API */ + punycode = { + /** + * A string representing the current Punycode.js version number. + * @memberOf punycode + * @type String + */ + 'version': '1.3.2', + /** + * An object of methods to convert from JavaScript's internal character + * representation (UCS-2) to Unicode code points, and back. + * @see + * @memberOf punycode + * @type Object + */ + 'ucs2': { + 'decode': ucs2decode, + 'encode': ucs2encode + }, + 'decode': decode, + 'encode': encode, + 'toASCII': toASCII, + 'toUnicode': toUnicode + }; + + /** Expose `punycode` */ + // Some AMD build optimizers, like r.js, check for specific condition patterns + // like the following: + if ( + true + ) { + !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { + return punycode; + }).call(exports, __webpack_require__, exports, module), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else {} + +}(this)); + + +/***/ }), + +/***/ "./node_modules/url/url.js": +/*!*********************************!*\ + !*** ./node_modules/url/url.js ***! + \*********************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + + + +var punycode = __webpack_require__(/*! punycode */ "./node_modules/url/node_modules/punycode/punycode.js"); +var util = __webpack_require__(/*! ./util */ "./node_modules/url/util.js"); + +exports.parse = urlParse; +exports.resolve = urlResolve; +exports.resolveObject = urlResolveObject; +exports.format = urlFormat; + +exports.Url = Url; + +function Url() { + this.protocol = null; + this.slashes = null; + this.auth = null; + this.host = null; + this.port = null; + this.hostname = null; + this.hash = null; + this.search = null; + this.query = null; + this.pathname = null; + this.path = null; + this.href = null; } -exports.simulateWithdraw = simulateWithdraw; -async function simulateTransferNativeToken(payload) { - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectClient() first'); - } - const wallet = globalThis.wallet; - if (wallet === undefined) { - throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); - } - const json = JSON.parse(payload); - const recipient = json.recipient; - if (recipient === undefined) { - throw new errors_1.UserError('recipient is not set'); - } - const amount = json.amount; - if (amount === undefined) { - throw new errors_1.UserError('amount is not set'); - } - const msg = client.sendTokenMessage(wallet, amount, json.recipient); - const msgs = [msg]; - const encodeObjects = new Promise((resolve) => resolve(msgs)); - const stdFee = await client.simulate(globalThis.wallet, () => { - return encodeObjects; - }); - return (0, helpers_1.encodeJson)(stdFee); - } - catch (error) { - return wrappedError(error); - } + +// Reference: RFC 3986, RFC 1808, RFC 2396 + +// define these here so at least they only have to be +// compiled once on the first module load. +var protocolPattern = /^([a-z0-9.+-]+:)/i, + portPattern = /:[0-9]*$/, + + // Special case for a simple path URL + simplePathPattern = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/, + + // RFC 2396: characters reserved for delimiting URLs. + // We actually just auto-escape these. + delims = ['<', '>', '"', '`', ' ', '\r', '\n', '\t'], + + // RFC 2396: characters not allowed for various reasons. + unwise = ['{', '}', '|', '\\', '^', '`'].concat(delims), + + // Allowed by RFCs, but cause of XSS attacks. Always escape these. + autoEscape = ['\''].concat(unwise), + // Characters that are never ever allowed in a hostname. + // Note that any invalid chars are also handled, but these + // are the ones that are *expected* to be seen, so we fast-path + // them. + nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape), + hostEndingChars = ['/', '?', '#'], + hostnameMaxLen = 255, + hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/, + hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, + // protocols that can allow "unsafe" and "unwise" chars. + unsafeProtocol = { + 'javascript': true, + 'javascript:': true + }, + // protocols that never have a hostname. + hostlessProtocol = { + 'javascript': true, + 'javascript:': true + }, + // protocols that always contain a // bit. + slashedProtocol = { + 'http': true, + 'https': true, + 'ftp': true, + 'gopher': true, + 'file': true, + 'http:': true, + 'https:': true, + 'ftp:': true, + 'gopher:': true, + 'file:': true + }, + querystring = __webpack_require__(/*! querystring */ "./node_modules/querystring/index.js"); + +function urlParse(url, parseQueryString, slashesDenoteHost) { + if (url && util.isObject(url) && url instanceof Url) return url; + + var u = new Url; + u.parse(url, parseQueryString, slashesDenoteHost); + return u; } -exports.simulateTransferNativeToken = simulateTransferNativeToken; -async function signRawPlaceOrder(subaccountNumber, clientId, clobPairId, side, quantums, subticks, timeInForce, orderFlags, reduceOnly, goodTilBlock, goodTilBlockTime, clientMetadata) { - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectClient() first'); - } - const wallet = globalThis.wallet; - if (wallet === undefined) { - throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); + +Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) { + if (!util.isString(url)) { + throw new TypeError("Parameter 'url' must be a string, not " + typeof url); + } + + // Copy chrome, IE, opera backslash-handling behavior. + // Back slashes before the query string get converted to forward slashes + // See: https://code.google.com/p/chromium/issues/detail?id=25916 + var queryIndex = url.indexOf('?'), + splitter = + (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#', + uSplit = url.split(splitter), + slashRegex = /\\/g; + uSplit[0] = uSplit[0].replace(slashRegex, '/'); + url = uSplit.join(splitter); + + var rest = url; + + // trim before proceeding. + // This is to support parse stuff like " http://foo.com \n" + rest = rest.trim(); + + if (!slashesDenoteHost && url.split('#').length === 1) { + // Try fast path regexp + var simplePath = simplePathPattern.exec(rest); + if (simplePath) { + this.path = rest; + this.href = rest; + this.pathname = simplePath[1]; + if (simplePath[2]) { + this.search = simplePath[2]; + if (parseQueryString) { + this.query = querystring.parse(this.search.substr(1)); + } else { + this.query = this.search.substr(1); } - const msgs = new Promise((resolve) => { - const msg = client.validatorClient.post.composer.composeMsgPlaceOrder(wallet.address, subaccountNumber, clientId, clobPairId, orderFlags, goodTilBlock, goodTilBlockTime, side, quantums, subticks, timeInForce, reduceOnly, clientMetadata !== null && clientMetadata !== void 0 ? clientMetadata : 0); - resolve([msg]); - }); - const signed = await client.sign(wallet, () => msgs, true); - return Buffer.from(signed).toString('base64'); + } else if (parseQueryString) { + this.search = ''; + this.query = {}; + } + return this; } - catch (error) { - return wrappedError(error); + } + + var proto = protocolPattern.exec(rest); + if (proto) { + proto = proto[0]; + var lowerProto = proto.toLowerCase(); + this.protocol = lowerProto; + rest = rest.substr(proto.length); + } + + // figure out if it's got a host + // user@server is *always* interpreted as a hostname, and url + // resolution will treat //foo/bar as host=foo,path=bar because that's + // how the browser resolves relative URLs. + if (slashesDenoteHost || proto || rest.match(/^\/\/[^@\/]+@[^@\/]+/)) { + var slashes = rest.substr(0, 2) === '//'; + if (slashes && !(proto && hostlessProtocol[proto])) { + rest = rest.substr(2); + this.slashes = true; } -} -exports.signRawPlaceOrder = signRawPlaceOrder; -async function signPlaceOrder(subaccountNumber, marketId, type, side, price, -// trigger_price: number, // not used for MARKET and LIMIT -size, clientId, timeInForce, goodTilTimeInSeconds, execution, postOnly, reduceOnly) { - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectClient() first'); - } - const wallet = globalThis.wallet; - if (wallet === undefined) { - throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); - } - const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber); - const signed = await client.signPlaceOrder(subaccount, marketId, type, side, price, size, clientId, timeInForce, goodTilTimeInSeconds, execution, postOnly, reduceOnly); - return signed; + } + + if (!hostlessProtocol[proto] && + (slashes || (proto && !slashedProtocol[proto]))) { + + // there's a hostname. + // the first instance of /, ?, ;, or # ends the host. + // + // If there is an @ in the hostname, then non-host chars *are* allowed + // to the left of the last @ sign, unless some host-ending character + // comes *before* the @-sign. + // URLs are obnoxious. + // + // ex: + // http://a@b@c/ => user:a@b host:c + // http://a@b?@c => user:a host:c path:/?@c + + // v0.12 TODO(isaacs): This is not quite how Chrome does things. + // Review our test case against browsers more comprehensively. + + // find the first instance of any hostEndingChars + var hostEnd = -1; + for (var i = 0; i < hostEndingChars.length; i++) { + var hec = rest.indexOf(hostEndingChars[i]); + if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) + hostEnd = hec; } - catch (error) { - return wrappedError(error); + + // at this point, either we have an explicit point where the + // auth portion cannot go past, or the last @ char is the decider. + var auth, atSign; + if (hostEnd === -1) { + // atSign can be anywhere. + atSign = rest.lastIndexOf('@'); + } else { + // atSign must be in auth portion. + // http://a@b/c@d => host:b auth:a path:/c@d + atSign = rest.lastIndexOf('@', hostEnd); } -} -exports.signPlaceOrder = signPlaceOrder; -async function signCancelOrder(subaccountNumber, clientId, orderFlags, clobPairId, goodTilBlock, goodTilBlockTime) { - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectClient() first'); - } - const wallet = globalThis.wallet; - if (wallet === undefined) { - throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); - } - const subaccount = new subaccount_1.SubaccountInfo(wallet, subaccountNumber); - const signed = await client.signCancelOrder(subaccount, clientId, orderFlags, clobPairId, goodTilBlock, goodTilBlockTime); - return signed; + + // Now we have a portion which is definitely the auth. + // Pull that off. + if (atSign !== -1) { + auth = rest.slice(0, atSign); + rest = rest.slice(atSign + 1); + this.auth = decodeURIComponent(auth); } - catch (error) { - return wrappedError(error); + + // the host is the remaining to the left of the first non-host char + hostEnd = -1; + for (var i = 0; i < nonHostChars.length; i++) { + var hec = rest.indexOf(nonHostChars[i]); + if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) + hostEnd = hec; } -} -exports.signCancelOrder = signCancelOrder; -async function encodeAccountRequestData(address) { - return new Promise((resolve, reject) => { - try { - const requestData = Uint8Array.from(AuthModule.QueryAccountRequest.encode({ address }).finish()); - resolve(Buffer.from(requestData).toString('hex')); - } - catch (error) { - reject(error); - } - }); -} -exports.encodeAccountRequestData = encodeAccountRequestData; -async function decodeAccountResponseValue(value) { - return new Promise((resolve, reject) => { - try { - const rawData = Buffer.from(value, 'base64'); - const rawAccount = AuthModule.QueryAccountResponse.decode(rawData).account; - // The promise should have been rejected if the rawAccount was undefined. - if (rawAccount === undefined) { - throw Error('rawAccount is undefined'); + // if we still have not hit it, then the entire thing is a host. + if (hostEnd === -1) + hostEnd = rest.length; + + this.host = rest.slice(0, hostEnd); + rest = rest.slice(hostEnd); + + // pull out port. + this.parseHost(); + + // we've indicated that there is a hostname, + // so even if it's empty, it has to be present. + this.hostname = this.hostname || ''; + + // if hostname begins with [ and ends with ] + // assume that it's an IPv6 address. + var ipv6Hostname = this.hostname[0] === '[' && + this.hostname[this.hostname.length - 1] === ']'; + + // validate a little. + if (!ipv6Hostname) { + var hostparts = this.hostname.split(/\./); + for (var i = 0, l = hostparts.length; i < l; i++) { + var part = hostparts[i]; + if (!part) continue; + if (!part.match(hostnamePartPattern)) { + var newpart = ''; + for (var j = 0, k = part.length; j < k; j++) { + if (part.charCodeAt(j) > 127) { + // we replace non-ASCII char with a temporary placeholder + // we need this to make sure size of hostname is not + // broken by replacing non-ASCII by nothing + newpart += 'x'; + } else { + newpart += part[j]; } - const account = (0, stargate_1.accountFromAny)(rawAccount); - resolve((0, helpers_1.encodeJson)(account)); - } - catch (error) { - reject(error); - } - }); -} -exports.decodeAccountResponseValue = decodeAccountResponseValue; -async function getOptimalNode(endpointUrlsAsJson) { - /* - param: - endpointUrlsAsJson: - { - "endpointUrls": [ - "https://rpc.testnet.near.org" - ], - "chainId": "testnet" - } - */ - try { - const param = JSON.parse(endpointUrlsAsJson); - const endpointUrls = param.endpointUrls; - const chainId = param.chainId; - const networkOptimizer = new network_optimizer_1.NetworkOptimizer(); - const optimalUrl = await networkOptimizer.findOptimalNode(endpointUrls, chainId); - const url = { - url: optimalUrl, - }; - return (0, helpers_1.encodeJson)(url); - } - catch (error) { - return wrappedError(error); - } -} -exports.getOptimalNode = getOptimalNode; -async function getOptimalIndexer(endpointUrlsAsJson) { - /* - param: - endpointUrlsAsJson: - { - "endpointUrls": [ - "https://api.example.org" - ] - } - */ - try { - const param = JSON.parse(endpointUrlsAsJson); - const endpointUrls = param.endpointUrls; - const networkOptimizer = new network_optimizer_1.NetworkOptimizer(); - const optimalUrl = await networkOptimizer.findOptimalIndexer(endpointUrls); - const url = { - url: optimalUrl, - }; - return (0, helpers_1.encodeJson)(url); - } - catch (error) { - return wrappedError(error); - } -} -exports.getOptimalIndexer = getOptimalIndexer; -async function getRewardsParams() { - var _a; - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectClient() first'); - } - const rewardsParams = await ((_a = globalThis.client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.getRewardsParams()); - return (0, helpers_1.encodeJson)(rewardsParams); - } - catch (e) { - return wrappedError(e); - } -} -exports.getRewardsParams = getRewardsParams; -async function getDelegatorDelegations(payload) { - var _a; - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectClient() first'); - } - const json = JSON.parse(payload); - const address = json.address; - if (address === undefined) { - throw new errors_1.UserError('address is not set'); - } - const delegations = await ((_a = globalThis - .client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.getDelegatorDelegations(address)); - return (0, helpers_1.encodeJson)(delegations); - } - catch (e) { - return wrappedError(e); - } -} -exports.getDelegatorDelegations = getDelegatorDelegations; -async function getDelegatorUnbondingDelegations(payload) { - var _a; - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectClient() first'); - } - const json = JSON.parse(payload); - const address = json.address; - if (address === undefined) { - throw new errors_1.UserError('address is not set'); - } - const delegations = await ((_a = globalThis - .client) === null || _a === void 0 ? void 0 : _a.validatorClient.get.getDelegatorUnbondingDelegations(address)); - return (0, helpers_1.encodeJson)(delegations); - } - catch (e) { - return wrappedError(e); - } -} -exports.getDelegatorUnbondingDelegations = getDelegatorUnbondingDelegations; -async function getMarketPrice(payload) { - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectClient() first'); - } - const json = JSON.parse(payload); - const marketId = json.marketId; - if (marketId === undefined) { - throw new errors_1.UserError('marketId is not set'); - } - const marketPrice = await client.validatorClient.get.getPrice(marketId); - return (0, helpers_1.encodeJson)(marketPrice); - } - catch (e) { - return wrappedError(e); - } -} -exports.getMarketPrice = getMarketPrice; -async function getNobleBalance() { - try { - const client = globalThis.nobleClient; - if (client === undefined || !client.isConnected) { - throw new errors_1.UserError('client is not connected.'); + } + // we test again with ASCII char only + if (!newpart.match(hostnamePartPattern)) { + var validParts = hostparts.slice(0, i); + var notHost = hostparts.slice(i + 1); + var bit = part.match(hostnamePartStart); + if (bit) { + validParts.push(bit[1]); + notHost.unshift(bit[2]); + } + if (notHost.length) { + rest = '/' + notHost.join('.') + rest; + } + this.hostname = validParts.join('.'); + break; + } } - const coin = await client.getAccountBalance('uusdc'); - return (0, helpers_1.encodeJson)(coin); + } } - catch (error) { - return wrappedError(error); + + if (this.hostname.length > hostnameMaxLen) { + this.hostname = ''; + } else { + // hostnames are always lower case. + this.hostname = this.hostname.toLowerCase(); } -} -exports.getNobleBalance = getNobleBalance; -async function sendNobleIBC(squidPayload) { - try { - const client = globalThis.nobleClient; - if (client === undefined || !client.isConnected) { - throw new errors_1.UserError('client is not connected.'); - } - const json = JSON.parse(squidPayload); - const ibcMsg = { - typeUrl: json.msgTypeUrl, - value: json.msg, - }; - const fee = await client.simulateTransaction([ibcMsg]); - // take out fee from amount before sweeping - const amount = parseInt(ibcMsg.value.token.amount, 10) - - Math.floor(parseInt(fee.amount[0].amount, 10) * constants_1.GAS_MULTIPLIER); - if (amount <= 0) { - throw new errors_1.UserError('noble balance does not cover fees'); - } - ibcMsg.value.token.amount = amount.toString(); - const tx = await client.send([ibcMsg]); - return (0, helpers_1.encodeJson)(tx); + + if (!ipv6Hostname) { + // IDNA Support: Returns a punycoded representation of "domain". + // It only converts parts of the domain name that + // have non-ASCII characters, i.e. it doesn't matter if + // you call it with a domain that already is ASCII-only. + this.hostname = punycode.toASCII(this.hostname); } - catch (error) { - return wrappedError(error); + + var p = this.port ? ':' + this.port : ''; + var h = this.hostname || ''; + this.host = h + p; + this.href += this.host; + + // strip [ and ] from the hostname + // the host field still retains them, though + if (ipv6Hostname) { + this.hostname = this.hostname.substr(1, this.hostname.length - 2); + if (rest[0] !== '/') { + rest = '/' + rest; + } } -} -exports.sendNobleIBC = sendNobleIBC; -async function withdrawToNobleIBC(payload) { - try { - const client = globalThis.client; - if (client === undefined) { - throw new errors_1.UserError('client is not connected. Call connectClient() first'); - } - const wallet = globalThis.wallet; - if (wallet === undefined) { - throw new errors_1.UserError('wallet is not set. Call connectWallet() first'); - } - const json = JSON.parse(payload); - const { subaccountNumber, amount, ibcPayload } = json !== null && json !== void 0 ? json : {}; - const decode = (str) => Buffer.from(str, 'base64').toString('binary'); - const decoded = decode(ibcPayload); - const parsedIbcPayload = JSON.parse(decoded); - const msg = client.withdrawFromSubaccountMessage(new subaccount_1.SubaccountInfo(wallet, subaccountNumber), parseFloat(amount).toFixed(client.validatorClient.config.denoms.USDC_DECIMALS)); - const ibcMsg = { - typeUrl: parsedIbcPayload.msgTypeUrl, - value: parsedIbcPayload.msg, - }; - const tx = await client.send(wallet, () => Promise.resolve([msg, ibcMsg]), false); - return (0, helpers_1.encodeJson)({ - txHash: `0x${Buffer.from(tx === null || tx === void 0 ? void 0 : tx.hash).toString('hex')}`, - }); + } + + // now rest is set to the post-host stuff. + // chop off any delim chars. + if (!unsafeProtocol[lowerProto]) { + + // First, make 100% sure that any "autoEscape" chars get + // escaped, even if encodeURIComponent doesn't think they + // need to be. + for (var i = 0, l = autoEscape.length; i < l; i++) { + var ae = autoEscape[i]; + if (rest.indexOf(ae) === -1) + continue; + var esc = encodeURIComponent(ae); + if (esc === ae) { + esc = escape(ae); + } + rest = rest.split(ae).join(esc); } - catch (error) { - return wrappedError(error); + } + + + // chop off from the tail first. + var hash = rest.indexOf('#'); + if (hash !== -1) { + // got a fragment string. + this.hash = rest.substr(hash); + rest = rest.slice(0, hash); + } + var qm = rest.indexOf('?'); + if (qm !== -1) { + this.search = rest.substr(qm); + this.query = rest.substr(qm + 1); + if (parseQueryString) { + this.query = querystring.parse(this.query); } + rest = rest.slice(0, qm); + } else if (parseQueryString) { + // no query string, but parseQueryString still requested + this.search = ''; + this.query = {}; + } + if (rest) this.pathname = rest; + if (slashedProtocol[lowerProto] && + this.hostname && !this.pathname) { + this.pathname = '/'; + } + + //to support http.request + if (this.pathname || this.search) { + var p = this.pathname || ''; + var s = this.search || ''; + this.path = p + s; + } + + // finally, reconstruct the href based on what has been validated. + this.href = this.format(); + return this; +}; + +// format a parsed object into a url string +function urlFormat(obj) { + // ensure it's an object, and not a string url. + // If it's an obj, this is a no-op. + // this way, you can call url_format() on strings + // to clean up potentially wonky urls. + if (util.isString(obj)) obj = urlParse(obj); + if (!(obj instanceof Url)) return Url.prototype.format.call(obj); + return obj.format(); } -exports.withdrawToNobleIBC = withdrawToNobleIBC; -async function cctpWithdraw(squidPayload) { - try { - const client = globalThis.nobleClient; - if (client === undefined || !client.isConnected) { - throw new errors_1.UserError('client is not connected.'); - } - const json = JSON.parse(squidPayload); - const ibcMsg = { - typeUrl: json.typeUrl, - value: json.value, - }; - const fee = await client.simulateTransaction([ibcMsg]); - // take out fee from amount before sweeping - const amount = parseInt(ibcMsg.value.amount, 10) - - Math.floor(parseInt(fee.amount[0].amount, 10) * constants_1.GAS_MULTIPLIER); - if (amount <= 0) { - throw new Error('noble balance does not cover fees'); - } - ibcMsg.value.amount = amount.toString(); - const tx = await client.send([ibcMsg]); - return (0, helpers_1.encodeJson)(tx); - } - catch (error) { - return wrappedError(error); + +Url.prototype.format = function() { + var auth = this.auth || ''; + if (auth) { + auth = encodeURIComponent(auth); + auth = auth.replace(/%3A/i, ':'); + auth += '@'; + } + + var protocol = this.protocol || '', + pathname = this.pathname || '', + hash = this.hash || '', + host = false, + query = ''; + + if (this.host) { + host = auth + this.host; + } else if (this.hostname) { + host = auth + (this.hostname.indexOf(':') === -1 ? + this.hostname : + '[' + this.hostname + ']'); + if (this.port) { + host += ':' + this.port; } + } + + if (this.query && + util.isObject(this.query) && + Object.keys(this.query).length) { + query = querystring.stringify(this.query); + } + + var search = this.search || (query && ('?' + query)) || ''; + + if (protocol && protocol.substr(-1) !== ':') protocol += ':'; + + // only the slashedProtocols get the //. Not mailto:, xmpp:, etc. + // unless they had them to begin with. + if (this.slashes || + (!protocol || slashedProtocol[protocol]) && host !== false) { + host = '//' + (host || ''); + if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname; + } else if (!host) { + host = ''; + } + + if (hash && hash.charAt(0) !== '#') hash = '#' + hash; + if (search && search.charAt(0) !== '?') search = '?' + search; + + pathname = pathname.replace(/[?#]/g, function(match) { + return encodeURIComponent(match); + }); + search = search.replace('#', '%23'); + + return protocol + host + pathname + search + hash; +}; + +function urlResolve(source, relative) { + return urlParse(source, false, true).resolve(relative); } -exports.cctpWithdraw = cctpWithdraw; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudHMvbmF0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7RUFFRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHRiwrQ0FBa0Q7QUFFbEQsbUZBQXFFO0FBR3JFLGdEQUFzRjtBQUN0RiwwQ0FBMEM7QUFDMUMsNENBQStEO0FBQy9ELGtEQUFxRTtBQUNyRSw0REFBd0Q7QUFDeEQseURBQWlFO0FBQ2pFLDJDQUVxQjtBQUNyQixtREFBK0M7QUFDL0MsMEVBQWlEO0FBQ2pELGlEQUE2QztBQUM3Qyw2Q0FBOEM7QUFpQnZDLEtBQUssVUFBVSxhQUFhLENBQ2pDLE9BQWdCO0lBRWhCLElBQUk7UUFDRixVQUFVLENBQUMsTUFBTSxHQUFHLE1BQU0sa0NBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0QsT0FBTyxJQUFBLG9CQUFVLEVBQUMsT0FBTyxDQUFDLENBQUM7S0FDNUI7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3hCO0FBQ0gsQ0FBQztBQVRELHNDQVNDO0FBRU0sS0FBSyxVQUFVLGNBQWMsQ0FDbEMsVUFBa0I7SUFFbEIsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsTUFBTSxFQUNKLFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxFQUNaLE9BQU8sRUFDUCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixhQUFhLEVBQ2IsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsb0JBQW9CLEdBQ3JCLEdBQUcsTUFBTSxDQUFDO1FBRVgsSUFBSSxVQUFVLEtBQUssU0FBUztZQUMxQixZQUFZLEtBQUssU0FBUztZQUMxQixZQUFZLEtBQUssU0FBUztZQUMxQixPQUFPLEtBQUssU0FBUyxFQUFFO1lBQ3ZCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7U0FDeEQ7UUFDRCxJQUFJLFVBQVUsS0FBSyxTQUFTO1lBQzFCLGFBQWEsS0FBSyxTQUFTO1lBQzNCLGdCQUFnQixLQUFLLFNBQVM7WUFDOUIsbUJBQW1CLEtBQUssU0FBUyxFQUFFO1lBQ25DLE1BQU0sSUFBSSxrQkFBUyxDQUFDLCtCQUErQixDQUFDLENBQUM7U0FDdEQ7UUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLHlCQUFhLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sZUFBZSxHQUFHLElBQUksMkJBQWUsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFO1lBQ2pFLFVBQVU7WUFDVixhQUFhO1lBQ2IsY0FBYztZQUNkLGdCQUFnQjtZQUNoQixtQkFBbUI7WUFDbkIsb0JBQW9CO1NBQ3JCLENBQUMsQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLElBQUksbUJBQU8sQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ3JFLFVBQVUsQ0FBQyxNQUFNLEdBQUcsTUFBTSxrQ0FBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxRCxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUU7WUFDM0IsVUFBVSxDQUFDLFlBQVksR0FBRyxJQUFJLDRCQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdkQ7YUFBTTtZQUNMLFVBQVUsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1NBQ2hDO1FBRUQsSUFBSTtZQUNGLFVBQVUsQ0FBQyxXQUFXLEdBQUcsSUFBSSwwQkFBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDNUQsSUFBSSxVQUFVLENBQUMsV0FBVyxFQUFFO2dCQUMxQixNQUFNLFVBQVUsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUM5RDtTQUNGO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7U0FDdkQ7UUFFRCxPQUFPLElBQUEsb0JBQVUsRUFBQyxNQUFNLENBQUMsQ0FBQztLQUMzQjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDeEI7QUFDSCxDQUFDO0FBL0RELHdDQStEQztBQUVNLEtBQUssVUFBVSxhQUFhLENBQ2pDLFFBQWdCOztJQUVoQixJQUFJO1FBQ0YsVUFBVSxDQUFDLE1BQU0sR0FBRyxNQUFNLHNCQUFXLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSx5QkFBYSxDQUFDLENBQUM7UUFDNUUsVUFBVSxDQUFDLFdBQVcsR0FBRyxNQUFNLHNCQUFXLENBQUMsWUFBWSxDQUNyRCxRQUFRLEVBQ1IsK0JBQW1CLENBQ3BCLENBQUM7UUFFRixJQUFJO1lBQ0YsTUFBTSxDQUFBLE1BQUEsVUFBVSxDQUFDLFdBQVcsMENBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQSxDQUFDO1NBQy9EO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7U0FDdkQ7UUFFRCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQVEsQ0FBQztRQUMzQyxPQUFPLElBQUEsb0JBQVUsRUFBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7S0FDaEM7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3hCO0FBQ0gsQ0FBQztBQXJCRCxzQ0FxQkM7QUFFTSxLQUFLLFVBQVUsT0FBTyxDQUMzQixPQUFnQixFQUNoQixRQUFnQjtJQUVoQixJQUFJO1FBQ0YsTUFBTSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDaEM7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3hCO0FBQ0gsQ0FBQztBQVZELDBCQVVDO0FBRU0sS0FBSyxVQUFVLG1DQUFtQyxDQUFDLFNBQWlCO0lBQ3pFLElBQUk7UUFDRixNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBQSw2Q0FBZ0MsRUFBQyxTQUFTLENBQUMsQ0FBQztRQUNqRSxNQUFNLE1BQU0sR0FBRyxNQUFNLHNCQUFXLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSx5QkFBYSxDQUFDLENBQUM7UUFDdkUsTUFBTSxNQUFNLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFRLEVBQUUsQ0FBQztRQUN0RCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDN0IsT0FBTyxDQUFDLElBQUEsb0JBQVUsRUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3hCO0FBQ0gsQ0FBQztBQVhELGtGQVdDO0FBRU0sS0FBSyxVQUFVLFNBQVM7O0lBQzdCLElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1NBQzVFO1FBQ0QsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFBLE1BQUEsVUFBVSxDQUFDLE1BQU0sMENBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQSxDQUFDO1FBQ3pFLE9BQU8sSUFBQSxvQkFBVSxFQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzFCO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN4QjtBQUNILENBQUM7QUFYRCw4QkFXQztBQUVNLEtBQUssVUFBVSxXQUFXOztJQUMvQixJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMscURBQXFELENBQUMsQ0FBQztTQUM1RTtRQUNELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQSxNQUFBLFVBQVUsQ0FBQyxNQUFNLDBDQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUEsQ0FBQztRQUM1RSxPQUFPLElBQUEsb0JBQVUsRUFBQyxRQUFRLENBQUMsQ0FBQztLQUM3QjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDeEI7QUFDSCxDQUFDO0FBWEQsa0NBV0M7QUFFTSxLQUFLLFVBQVUsY0FBYyxDQUFDLE9BQWU7O0lBQ2xELElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1NBQzVFO1FBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFBLE1BQUEsVUFBVSxDQUFDLE1BQU0sMENBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUEsQ0FBQztRQUN0RixPQUFPLElBQUEsb0JBQVUsRUFBQyxRQUFRLENBQUMsQ0FBQztLQUM3QjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDeEI7QUFDSCxDQUFDO0FBWEQsd0NBV0M7QUFFTSxLQUFLLFVBQVUsY0FBYzs7SUFDbEMsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDNUU7UUFDRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUEsTUFBQSxVQUFVLENBQUMsTUFBTSwwQ0FBRSxlQUFlLENBQUMsR0FBRyxDQUM3RCwrQkFBK0IsRUFBRSxDQUFBLENBQUM7UUFDckMsT0FBTyxJQUFBLG9CQUFVLEVBQUMsV0FBVyxFQUFFLDJCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzFEO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN4QjtBQUNILENBQUM7QUFaRCx3Q0FZQztBQUVNLEtBQUssVUFBVSxtQkFBbUI7O0lBQ3ZDLElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1NBQzVFO1FBQ0QsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFBLE1BQUEsVUFBVSxDQUFDLE1BQU0sMENBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFBLENBQUM7UUFDckYsT0FBTyxJQUFBLG9CQUFVLEVBQUMsT0FBTyxDQUFDLENBQUM7S0FDNUI7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3hCO0FBQ0gsQ0FBQztBQVhELGtEQVdDO0FBRU0sS0FBSyxVQUFVLFVBQVUsQ0FDOUIsT0FBZTs7SUFFZixJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMscURBQXFELENBQUMsQ0FBQztTQUM1RTtRQUNELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLCtDQUErQyxDQUFDLENBQUM7U0FDdEU7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQy9DLElBQUksZ0JBQWdCLEtBQUssU0FBUyxFQUFFO1lBQ2xDLE1BQU0sSUFBSSxrQkFBUyxDQUFDLDZCQUE2QixDQUFDLENBQUM7U0FDcEQ7UUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUMxQixNQUFNLElBQUksa0JBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDdEIsTUFBTSxJQUFJLGtCQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUN4QztRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ3RCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDeEM7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN2QixNQUFNLElBQUksa0JBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsNERBQTREO1FBQzVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ3RCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDeEM7UUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUMxQixNQUFNLElBQUksa0JBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNyQyxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztRQUN2RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLE1BQUEsSUFBSSxDQUFDLFFBQVEsbUNBQUksS0FBSyxDQUFDO1FBQ3hDLE1BQU0sVUFBVSxHQUFHLE1BQUEsSUFBSSxDQUFDLFVBQVUsbUNBQUksS0FBSyxDQUFDO1FBQzVDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFFdkMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQXdCLENBQUM7UUFDakQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQXVCLENBQUM7UUFFbkQsTUFBTSxVQUFVLEdBQUcsSUFBSSwyQkFBYyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLFVBQVUsQ0FDaEMsVUFBVSxFQUNWLFFBQVEsRUFDUixJQUFJLEVBQ0osSUFBSSxFQUNKLEtBQUssRUFDTCxJQUFJLEVBQ0osUUFBUSxFQUNSLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsU0FBUyxFQUNULFFBQVEsRUFDUixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixhQUFhLENBQ2QsQ0FBQztRQUNGLE9BQU8sSUFBQSxvQkFBVSxFQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQ3ZCO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM1QjtBQUNILENBQUM7QUEzRUQsZ0NBMkVDO0FBRUQsU0FBZ0IsWUFBWSxDQUFDLEtBQVk7SUFDdkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdEUsT0FBTyxhQUFhLElBQUksR0FBRyxDQUFDO0FBQzlCLENBQUM7QUFIRCxvQ0FHQztBQUVNLEtBQUssVUFBVSxXQUFXLENBQy9CLE9BQWU7SUFFZixJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMsc0RBQXNELENBQUMsQ0FBQztTQUM3RTtRQUNELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLCtDQUErQyxDQUFDLENBQUM7U0FDdEU7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQy9DLElBQUksZ0JBQWdCLEtBQUssU0FBUyxFQUFFO1lBQ2xDLE1BQU0sSUFBSSxrQkFBUyxDQUFDLDZCQUE2QixDQUFDLENBQUM7U0FDcEQ7UUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUMxQixNQUFNLElBQUksa0JBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNuQyxJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDNUIsTUFBTSxJQUFJLGtCQUFTLENBQUMsdUJBQXVCLENBQUMsQ0FBQztTQUM5QztRQUNELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbkMsSUFBSSxVQUFVLEtBQUssU0FBUyxFQUFFO1lBQzVCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLHVCQUF1QixDQUFDLENBQUM7U0FDOUM7UUFDRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ3ZDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBRS9DLE1BQU0sVUFBVSxHQUFHLElBQUksMkJBQWMsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNoRSxNQUFNLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxjQUFjLENBQ3BDLFVBQVUsRUFDVixRQUFRLEVBQ1IsVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFDN0MsZ0JBQWdCLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUN0RCxDQUFDO1FBQ0YsT0FBTyxJQUFBLG9CQUFVLEVBQUMsRUFBRSxDQUFDLENBQUM7S0FDdkI7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzVCO0FBQ0gsQ0FBQztBQTlDRCxrQ0E4Q0M7QUFFTSxLQUFLLFVBQVUsT0FBTyxDQUMzQixPQUFlO0lBRWYsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7U0FDN0U7UUFDRCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ3RFO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQyxJQUFJLGdCQUFnQixLQUFLLFNBQVMsRUFBRTtZQUNsQyxNQUFNLElBQUksa0JBQVMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1NBQ3BEO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUMxQztRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksMkJBQWMsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNoRSxNQUFNLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FDekMsVUFBVSxFQUNWLE1BQU0sQ0FDUCxDQUFDO1FBQ0YsT0FBTyxJQUFBLG9CQUFVLEVBQUMsRUFBRSxDQUFDLENBQUM7S0FDdkI7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzVCO0FBQ0gsQ0FBQztBQWhDRCwwQkFnQ0M7QUFFTSxLQUFLLFVBQVUsUUFBUSxDQUM1QixPQUFlO0lBRWYsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7U0FDN0U7UUFDRCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ3RFO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQyxJQUFJLGdCQUFnQixLQUFLLFNBQVMsRUFBRTtZQUNsQyxNQUFNLElBQUksa0JBQVMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1NBQ3BEO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUMxQztRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksMkJBQWMsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNoRSxNQUFNLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxzQkFBc0IsQ0FDNUMsVUFBVSxFQUNWLE1BQU0sRUFDTixJQUFJLENBQUMsU0FBUyxDQUNmLENBQUM7UUFDRixPQUFPLElBQUEsb0JBQVUsRUFBQyxFQUFFLENBQUMsQ0FBQztLQUN2QjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUI7QUFDSCxDQUFDO0FBakNELDRCQWlDQztBQUVNLEtBQUssVUFBVSxNQUFNLENBQzFCLE9BQWU7SUFFZixJQUFJO1FBQ0YsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQztRQUM3QyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2pCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLDREQUE0RCxDQUFDLENBQUM7U0FDbkY7UUFDRCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ3RFO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQyxJQUFJLGdCQUFnQixLQUFLLFNBQVMsRUFBRTtZQUNsQyxNQUFNLElBQUksa0JBQVMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1NBQ3BEO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUMxQztRQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXBGLE9BQU8sSUFBQSxvQkFBVSxFQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQzdCO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM1QjtBQUNILENBQUM7QUE3QkQsd0JBNkJDO0FBRU0sS0FBSyxVQUFVLGFBQWEsQ0FDakMsZ0JBQXdCLEVBQ3hCLE1BQWMsRUFDZCxPQUFlO0lBRWYsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDNUU7UUFDRCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ3RFO1FBRUQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFXLEVBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVqQyxNQUFNLE1BQU0sR0FBaUI7WUFDM0IsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQ3hCLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRztTQUNoQixDQUFDO1FBRUYsTUFBTSxVQUFVLEdBQUcsSUFBSSwyQkFBYyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFL0UsTUFBTSxJQUFJLEdBQUcsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDckMsTUFBTSxhQUFhLEdBQTRCLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUV2RixNQUFNLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQzFCLE1BQU0sRUFDTixHQUFHLEVBQUU7WUFDSCxPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDLEVBQ0QsS0FBSyxFQUNMLFNBQVMsRUFDVCxTQUFTLENBQ1YsQ0FBQztRQUNGLE9BQU8sSUFBQSxvQkFBVSxFQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQ3ZCO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM1QjtBQUNILENBQUM7QUE1Q0Qsc0NBNENDO0FBRU0sS0FBSyxVQUFVLG1CQUFtQixDQUN2QyxPQUFlO0lBRWYsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDNUU7UUFDRCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ3RFO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQzFDO1FBRUQsTUFBTSxHQUFHLEdBQWlCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FDL0MsTUFBTSxFQUNOLE1BQU0sRUFDTixJQUFJLENBQUMsU0FBUyxDQUNmLENBQUM7UUFDRixNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLE1BQU0sYUFBYSxHQUE0QixJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFdkYsTUFBTSxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUMxQixNQUFNLEVBQ04sR0FBRyxFQUFFO1lBQ0gsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQyxFQUNELEtBQUssQ0FDTixDQUFDO1FBQ0YsT0FBTyxJQUFBLG9CQUFVLEVBQUMsRUFBRSxDQUFDLENBQUM7S0FDdkI7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzVCO0FBQ0gsQ0FBQztBQXRDRCxrREFzQ0M7QUFFTSxLQUFLLFVBQVUsaUJBQWlCO0lBQ3JDLElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1NBQzVFO1FBQ0QsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMsK0NBQStDLENBQUMsQ0FBQztTQUN0RTtRQUNELE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBUSxDQUFDO1FBRTNDLE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHO2FBQ3hDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0UsT0FBTyxJQUFBLG9CQUFVLEVBQUMsRUFBRSxDQUFDLENBQUM7S0FDdkI7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzVCO0FBQ0gsQ0FBQztBQWxCRCw4Q0FrQkM7QUFFTSxLQUFLLFVBQVUsa0JBQWtCO0lBQ3RDLElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1NBQzVFO1FBQ0QsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMsK0NBQStDLENBQUMsQ0FBQztTQUN0RTtRQUNELE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBUSxDQUFDO1FBRTNDLE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEUsT0FBTyxJQUFBLG9CQUFVLEVBQUMsRUFBRSxDQUFDLENBQUM7S0FDdkI7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzVCO0FBQ0gsQ0FBQztBQWpCRCxnREFpQkM7QUFFTSxLQUFLLFVBQVUsWUFBWSxDQUNoQyxPQUFlO0lBRWYsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDNUU7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0IsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDM0M7UUFFRCxNQUFNLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRSxPQUFPLElBQUEsb0JBQVUsRUFBQyxFQUFFLENBQUMsQ0FBQztLQUN2QjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUI7QUFDSCxDQUFDO0FBbkJELG9DQW1CQztBQUVNLEtBQUssVUFBVSxlQUFlLENBQ25DLE9BQWU7SUFFZixJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMscURBQXFELENBQUMsQ0FBQztTQUM1RTtRQUNELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLCtDQUErQyxDQUFDLENBQUM7U0FDdEU7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQy9DLElBQUksZ0JBQWdCLEtBQUssU0FBUyxFQUFFO1lBQ2xDLE1BQU0sSUFBSSxrQkFBUyxDQUFDLDZCQUE2QixDQUFDLENBQUM7U0FDcEQ7UUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQzFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSwyQkFBYyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sR0FBRyxHQUFpQixNQUFNLENBQUMsMEJBQTBCLENBQ3pELFVBQVUsRUFDVixNQUFNLENBQ1AsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sYUFBYSxHQUE0QixJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFdkYsTUFBTSxNQUFNLEdBQUcsTUFBTSxNQUFNLENBQUMsUUFBUSxDQUNsQyxVQUFVLENBQUMsTUFBTSxFQUNqQixHQUFHLEVBQUU7WUFDSCxPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDLENBQ0YsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUMvQjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUI7QUFDSCxDQUFDO0FBeENELDBDQXdDQztBQUVNLEtBQUssVUFBVSxnQkFBZ0IsQ0FDcEMsT0FBZTtJQUVmLElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1NBQzVFO1FBQ0QsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMsK0NBQStDLENBQUMsQ0FBQztTQUN0RTtRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDL0MsSUFBSSxnQkFBZ0IsS0FBSyxTQUFTLEVBQUU7WUFDbEMsTUFBTSxJQUFJLGtCQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQztTQUNwRDtRQUNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDMUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLDJCQUFjLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDaEUsTUFBTSxHQUFHLEdBQWlCLE1BQU0sQ0FBQyw2QkFBNkIsQ0FDNUQsVUFBVSxFQUNWLE1BQU0sRUFDTixJQUFJLENBQUMsU0FBUyxDQUNmLENBQUM7UUFDRixNQUFNLElBQUksR0FBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxNQUFNLGFBQWEsR0FBNEIsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXZGLE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FDbEMsVUFBVSxDQUFDLE1BQU0sRUFDakIsR0FBRyxFQUFFO1lBQ0gsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQyxDQUNGLENBQUM7UUFDRixPQUFPLElBQUEsb0JBQVUsRUFBQyxNQUFNLENBQUMsQ0FBQztLQUMzQjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUI7QUFDSCxDQUFDO0FBekNELDRDQXlDQztBQUVNLEtBQUssVUFBVSwyQkFBMkIsQ0FDL0MsT0FBZTtJQUVmLElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1NBQzVFO1FBQ0QsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMsK0NBQStDLENBQUMsQ0FBQztTQUN0RTtRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNqQyxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUU7WUFDM0IsTUFBTSxJQUFJLGtCQUFTLENBQUMsc0JBQXNCLENBQUMsQ0FBQztTQUM3QztRQUNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDMUM7UUFFRCxNQUFNLEdBQUcsR0FBaUIsTUFBTSxDQUFDLGdCQUFnQixDQUMvQyxNQUFNLEVBQ04sTUFBTSxFQUNOLElBQUksQ0FBQyxTQUFTLENBQ2YsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sYUFBYSxHQUE0QixJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFdkYsTUFBTSxNQUFNLEdBQUcsTUFBTSxNQUFNLENBQUMsUUFBUSxDQUNsQyxVQUFVLENBQUMsTUFBTSxFQUNqQixHQUFHLEVBQUU7WUFDSCxPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDLENBQ0YsQ0FBQztRQUNGLE9BQU8sSUFBQSxvQkFBVSxFQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzNCO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM1QjtBQUNILENBQUM7QUF4Q0Qsa0VBd0NDO0FBRU0sS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxnQkFBd0IsRUFDeEIsUUFBZ0IsRUFDaEIsVUFBa0IsRUFDbEIsSUFBZ0IsRUFDaEIsUUFBYyxFQUNkLFFBQWMsRUFDZCxXQUE4QixFQUM5QixVQUFrQixFQUNsQixVQUFtQixFQUNuQixZQUFvQixFQUNwQixnQkFBd0IsRUFDeEIsY0FBc0I7SUFFdEIsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDNUU7UUFDRCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ3RFO1FBRUQsTUFBTSxJQUFJLEdBQTRCLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDNUQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUNuRSxNQUFNLENBQUMsT0FBUSxFQUNmLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLElBQUksRUFDSixRQUFRLEVBQ1IsUUFBUSxFQUNSLFdBQVcsRUFDWCxVQUFVLEVBQ1YsY0FBYyxhQUFkLGNBQWMsY0FBZCxjQUFjLEdBQUksQ0FBQyxDQUNwQixDQUFDO1lBQ0YsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FDOUIsTUFBTSxFQUNOLEdBQUcsRUFBRSxDQUFDLElBQUksRUFDVixJQUFJLENBQ0wsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDL0M7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzVCO0FBQ0gsQ0FBQztBQW5ERCw4Q0FtREM7QUFFTSxLQUFLLFVBQVUsY0FBYyxDQUNsQyxnQkFBd0IsRUFDeEIsUUFBZ0IsRUFDaEIsSUFBZSxFQUNmLElBQWUsRUFDZixLQUFhO0FBQ2IsNERBQTREO0FBQzVELElBQVksRUFDWixRQUFnQixFQUNoQixXQUE2QixFQUM3QixvQkFBNEIsRUFDNUIsU0FBeUIsRUFDekIsUUFBaUIsRUFDakIsVUFBbUI7SUFFbkIsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDNUU7UUFDRCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ3RFO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSwyQkFBYyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLGNBQWMsQ0FDeEMsVUFBVSxFQUNWLFFBQVEsRUFDUixJQUFJLEVBQ0osSUFBSSxFQUNKLEtBQUssRUFDTCxJQUFJLEVBQ0osUUFBUSxFQUNSLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsU0FBUyxFQUNULFFBQVEsRUFDUixVQUFVLENBQ1gsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzVCO0FBQ0gsQ0FBQztBQTVDRCx3Q0E0Q0M7QUFFTSxLQUFLLFVBQVUsZUFBZSxDQUNuQyxnQkFBd0IsRUFDeEIsUUFBZ0IsRUFDaEIsVUFBc0IsRUFDdEIsVUFBa0IsRUFDbEIsWUFBb0IsRUFDcEIsZ0JBQXdCO0lBRXhCLElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1NBQzVFO1FBQ0QsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMsK0NBQStDLENBQUMsQ0FBQztTQUN0RTtRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksMkJBQWMsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNoRSxNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxlQUFlLENBQ3pDLFVBQVUsRUFDVixRQUFRLEVBQ1IsVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEVBQ1osZ0JBQWdCLENBQ2pCLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQztLQUNmO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM1QjtBQUNILENBQUM7QUEvQkQsMENBK0JDO0FBRU0sS0FBSyxVQUFVLHdCQUF3QixDQUFDLE9BQWU7SUFDNUQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNyQyxJQUFJO1lBQ0YsTUFBTSxXQUFXLEdBQWUsVUFBVSxDQUFDLElBQUksQ0FDN0MsVUFBVSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQzVELENBQUM7WUFDRixPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNuRDtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2Y7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFYRCw0REFXQztBQUVNLEtBQUssVUFBVSwwQkFBMEIsQ0FBQyxLQUFhO0lBQzVELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDckMsSUFBSTtZQUNGLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzdDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQzNFLHlFQUF5RTtZQUN6RSxJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUU7Z0JBQzVCLE1BQU0sS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7YUFDeEM7WUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFBLHlCQUFjLEVBQUMsVUFBVSxDQUFDLENBQUM7WUFDM0MsT0FBTyxDQUFDLElBQUEsb0JBQVUsRUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQzlCO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDZjtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQWZELGdFQWVDO0FBRU0sS0FBSyxVQUFVLGNBQWMsQ0FBQyxrQkFBMEI7SUFDN0Q7Ozs7Ozs7OztNQVNFO0lBQ0YsSUFBSTtRQUNGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM3QyxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1FBQ3hDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDOUIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLG9DQUFnQixFQUFFLENBQUM7UUFDaEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pGLE1BQU0sR0FBRyxHQUFHO1lBQ1YsR0FBRyxFQUFFLFVBQVU7U0FDaEIsQ0FBQztRQUNGLE9BQU8sSUFBQSxvQkFBVSxFQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ3hCO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM1QjtBQUNILENBQUM7QUF4QkQsd0NBd0JDO0FBRU0sS0FBSyxVQUFVLGlCQUFpQixDQUFDLGtCQUEwQjtJQUNoRTs7Ozs7Ozs7TUFRRTtJQUNGLElBQUk7UUFDRixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDN0MsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUN4QyxNQUFNLGdCQUFnQixHQUFHLElBQUksb0NBQWdCLEVBQUUsQ0FBQztRQUNoRCxNQUFNLFVBQVUsR0FBRyxNQUFNLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzNFLE1BQU0sR0FBRyxHQUFHO1lBQ1YsR0FBRyxFQUFFLFVBQVU7U0FDaEIsQ0FBQztRQUNGLE9BQU8sSUFBQSxvQkFBVSxFQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ3hCO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM1QjtBQUNILENBQUM7QUF0QkQsOENBc0JDO0FBRU0sS0FBSyxVQUFVLGdCQUFnQjs7SUFDcEMsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDNUU7UUFDRCxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUEsTUFBQSxVQUFVLENBQUMsTUFBTSwwQ0FBRSxlQUFlLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLENBQUEsQ0FBQztRQUN0RixPQUFPLElBQUEsb0JBQVUsRUFBQyxhQUFhLENBQUMsQ0FBQztLQUNsQztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDeEI7QUFDSCxDQUFDO0FBWEQsNENBV0M7QUFFTSxLQUFLLFVBQVUsdUJBQXVCLENBQzNDLE9BQWU7O0lBRWYsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDNUU7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0IsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDM0M7UUFDRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUEsTUFBQSxVQUFVO2FBQ2pDLE1BQU0sMENBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQSxDQUFDO1FBQ2hFLE9BQU8sSUFBQSxvQkFBVSxFQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQ2hDO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN4QjtBQUNILENBQUM7QUFuQkQsMERBbUJDO0FBRU0sS0FBSyxVQUFVLGdDQUFnQyxDQUNwRCxPQUFlOztJQUVmLElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksa0JBQVMsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1NBQzVFO1FBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzdCLElBQUksT0FBTyxLQUFLLFNBQVMsRUFBRTtZQUN6QixNQUFNLElBQUksa0JBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFBLE1BQUEsVUFBVTthQUNqQyxNQUFNLDBDQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLENBQUMsT0FBTyxDQUFDLENBQUEsQ0FBQztRQUN6RSxPQUFPLElBQUEsb0JBQVUsRUFBQyxXQUFXLENBQUMsQ0FBQztLQUNoQztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDeEI7QUFDSCxDQUFDO0FBbkJELDRFQW1CQztBQUVNLEtBQUssVUFBVSxjQUFjLENBQ2xDLE9BQWU7SUFFZixJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMscURBQXFELENBQUMsQ0FBQztTQUM1RTtRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDMUIsTUFBTSxJQUFJLGtCQUFTLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUM1QztRQUNELE1BQU0sV0FBVyxHQUFHLE1BQU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sSUFBQSxvQkFBVSxFQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQ2hDO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN4QjtBQUNILENBQUM7QUFsQkQsd0NBa0JDO0FBRU0sS0FBSyxVQUFVLGVBQWU7SUFDbkMsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUM7UUFDdEMsSUFBSSxNQUFNLEtBQUssU0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRTtZQUMvQyxNQUFNLElBQUksa0JBQVMsQ0FDakIsMEJBQTBCLENBQzNCLENBQUM7U0FDSDtRQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sTUFBTSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELE9BQU8sSUFBQSxvQkFBVSxFQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3pCO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM1QjtBQUNILENBQUM7QUFiRCwwQ0FhQztBQUVNLEtBQUssVUFBVSxZQUFZLENBQUMsWUFBb0I7SUFDckQsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUM7UUFDdEMsSUFBSSxNQUFNLEtBQUssU0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRTtZQUMvQyxNQUFNLElBQUksa0JBQVMsQ0FDakIsMEJBQTBCLENBQzNCLENBQUM7U0FDSDtRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFdEMsTUFBTSxNQUFNLEdBQWlCO1lBQzNCLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVTtZQUN4QixLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUc7U0FDaEIsQ0FBQztRQUNGLE1BQU0sR0FBRyxHQUFHLE1BQU0sTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUV2RCwyQ0FBMkM7UUFDM0MsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsMEJBQWMsQ0FBQyxDQUFDO1FBRWxFLElBQUksTUFBTSxJQUFJLENBQUMsRUFBRTtZQUNmLE1BQU0sSUFBSSxrQkFBUyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7U0FDMUQ7UUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlDLE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdkMsT0FBTyxJQUFBLG9CQUFVLEVBQUMsRUFBRSxDQUFDLENBQUM7S0FDdkI7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzVCO0FBQ0gsQ0FBQztBQS9CRCxvQ0ErQkM7QUFFTSxLQUFLLFVBQVUsa0JBQWtCLENBQUMsT0FBZTtJQUN0RCxJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtCQUFTLENBQUMscURBQXFELENBQUMsQ0FBQztTQUM1RTtRQUNELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxrQkFBUyxDQUFDLCtDQUErQyxDQUFDLENBQUM7U0FDdEU7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUksRUFBRSxDQUFDO1FBRTVELE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBVyxFQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckYsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRW5DLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU3QyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQzlDLElBQUksMkJBQWMsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsRUFDNUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQy9FLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBaUI7WUFDM0IsT0FBTyxFQUFFLGdCQUFnQixDQUFDLFVBQVU7WUFDcEMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEdBQUc7U0FDNUIsQ0FBQztRQUVGLE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FDMUIsTUFBTSxFQUNOLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFDcEMsS0FBSyxDQUNOLENBQUM7UUFFRixPQUFPLElBQUEsb0JBQVUsRUFBQztZQUNoQixNQUFNLEVBQUUsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBRixFQUFFLHVCQUFGLEVBQUUsQ0FBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7U0FDckQsQ0FBQyxDQUFDO0tBQ0o7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzVCO0FBQ0gsQ0FBQztBQXhDRCxnREF3Q0M7QUFFTSxLQUFLLFVBQVUsWUFBWSxDQUFDLFlBQW9CO0lBQ3JELElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksTUFBTSxLQUFLLFNBQVMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUU7WUFDL0MsTUFBTSxJQUFJLGtCQUFTLENBQ2pCLDBCQUEwQixDQUMzQixDQUFDO1NBQ0g7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXRDLE1BQU0sTUFBTSxHQUFHO1lBQ2IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztTQUNsQixDQUFDO1FBQ0YsTUFBTSxHQUFHLEdBQUcsTUFBTSxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBRXZELDJDQUEyQztRQUMzQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLDBCQUFjLENBQUMsQ0FBQztRQUVsRSxJQUFJLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7U0FDdEQ7UUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFeEMsTUFBTSxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUV2QyxPQUFPLElBQUEsb0JBQVUsRUFBQyxFQUFFLENBQUMsQ0FBQztLQUN2QjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUI7QUFDSCxDQUFDO0FBakNELG9DQWlDQyJ9 -/***/ }), +Url.prototype.resolve = function(relative) { + return this.resolveObject(urlParse(relative, false, true)).format(); +}; -/***/ "./src/clients/noble-client.ts": -/*!*************************************!*\ - !*** ./src/clients/noble-client.ts ***! - \*************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { +function urlResolveObject(source, relative) { + if (!source) return relative; + return urlParse(source, false, true).resolveObject(relative); +} -"use strict"; +Url.prototype.resolveObject = function(relative) { + if (util.isString(relative)) { + var rel = new Url(); + rel.parse(relative, false, true); + relative = rel; + } -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.NobleClient = void 0; -const proto_signing_1 = __webpack_require__(/*! @cosmjs/proto-signing */ "./node_modules/@cosmjs/proto-signing/build/index.js"); -const stargate_1 = __webpack_require__(/*! @cosmjs/stargate */ "./node_modules/@cosmjs/stargate/build/index.js"); -const constants_1 = __webpack_require__(/*! ./constants */ "./src/clients/constants.ts"); -const cctpProto_1 = __webpack_require__(/*! ./lib/cctpProto */ "./src/clients/lib/cctpProto.ts"); -class NobleClient { - constructor(restEndpoint) { - this.restEndpoint = restEndpoint; + var result = new Url(); + var tkeys = Object.keys(this); + for (var tk = 0; tk < tkeys.length; tk++) { + var tkey = tkeys[tk]; + result[tkey] = this[tkey]; + } + + // hash is always overridden, no matter what. + // even href="" will remove it. + result.hash = relative.hash; + + // if the relative url is empty, then there's nothing left to do here. + if (relative.href === '') { + result.href = result.format(); + return result; + } + + // hrefs like //foo/bar always cut to the protocol. + if (relative.slashes && !relative.protocol) { + // take everything except the protocol from relative + var rkeys = Object.keys(relative); + for (var rk = 0; rk < rkeys.length; rk++) { + var rkey = rkeys[rk]; + if (rkey !== 'protocol') + result[rkey] = relative[rkey]; } - get isConnected() { - return Boolean(this.stargateClient); + + //urlParse appends trailing / to urls like http://www.example.com + if (slashedProtocol[result.protocol] && + result.hostname && !result.pathname) { + result.path = result.pathname = '/'; } - async connect(wallet) { - if ((wallet === null || wallet === void 0 ? void 0 : wallet.offlineSigner) === undefined) { - throw new Error('Wallet signer not found'); - } - this.wallet = wallet; - this.stargateClient = await stargate_1.SigningStargateClient.connectWithSigner(this.restEndpoint, wallet.offlineSigner, { - registry: new proto_signing_1.Registry([ - ['/circle.cctp.v1.MsgDepositForBurn', cctpProto_1.MsgDepositForBurn], - ...stargate_1.defaultRegistryTypes, - ]), - }); + + result.href = result.format(); + return result; + } + + if (relative.protocol && relative.protocol !== result.protocol) { + // if it's a known url protocol, then changing + // the protocol does weird things + // first, if it's not file:, then we MUST have a host, + // and if there was a path + // to begin with, then we MUST have a path. + // if it is file:, then the host is dropped, + // because that's known to be hostless. + // anything else is assumed to be absolute. + if (!slashedProtocol[relative.protocol]) { + var keys = Object.keys(relative); + for (var v = 0; v < keys.length; v++) { + var k = keys[v]; + result[k] = relative[k]; + } + result.href = result.format(); + return result; } - getAccountBalances() { - var _a; - if (!this.stargateClient || ((_a = this.wallet) === null || _a === void 0 ? void 0 : _a.address) === undefined) { - throw new Error('stargateClient not initialized'); - } - return this.stargateClient.getAllBalances(this.wallet.address); + + result.protocol = relative.protocol; + if (!relative.host && !hostlessProtocol[relative.protocol]) { + var relPath = (relative.pathname || '').split('/'); + while (relPath.length && !(relative.host = relPath.shift())); + if (!relative.host) relative.host = ''; + if (!relative.hostname) relative.hostname = ''; + if (relPath[0] !== '') relPath.unshift(''); + if (relPath.length < 2) relPath.unshift(''); + result.pathname = relPath.join('/'); + } else { + result.pathname = relative.pathname; } - getAccountBalance(denom) { - var _a; - if (!this.stargateClient || ((_a = this.wallet) === null || _a === void 0 ? void 0 : _a.address) === undefined) { - throw new Error('stargateClient not initialized'); - } - return this.stargateClient.getBalance(this.wallet.address, denom); + result.search = relative.search; + result.query = relative.query; + result.host = relative.host || ''; + result.auth = relative.auth; + result.hostname = relative.hostname || relative.host; + result.port = relative.port; + // to support http.request + if (result.pathname || result.search) { + var p = result.pathname || ''; + var s = result.search || ''; + result.path = p + s; } - async send(messages, gasPrice = stargate_1.GasPrice.fromString('0.025uusdc'), memo) { - var _a; - if (!this.stargateClient) { - throw new Error('NobleClient stargateClient not initialized'); - } - if (((_a = this.wallet) === null || _a === void 0 ? void 0 : _a.address) === undefined) { - throw new Error('NobleClient wallet not initialized'); - } - // Simulate to get the gas estimate - const fee = await this.simulateTransaction(messages, gasPrice, memo); - // Sign and broadcast the transaction - return this.stargateClient.signAndBroadcast(this.wallet.address, messages, fee, memo !== null && memo !== void 0 ? memo : ''); + result.slashes = result.slashes || relative.slashes; + result.href = result.format(); + return result; + } + + var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'), + isRelAbs = ( + relative.host || + relative.pathname && relative.pathname.charAt(0) === '/' + ), + mustEndAbs = (isRelAbs || isSourceAbs || + (result.host && relative.pathname)), + removeAllDots = mustEndAbs, + srcPath = result.pathname && result.pathname.split('/') || [], + relPath = relative.pathname && relative.pathname.split('/') || [], + psychotic = result.protocol && !slashedProtocol[result.protocol]; + + // if the url is a non-slashed url, then relative + // links like ../.. should be able + // to crawl up to the hostname, as well. This is strange. + // result.protocol has already been set by now. + // Later on, put the first path part into the host field. + if (psychotic) { + result.hostname = ''; + result.port = null; + if (result.host) { + if (srcPath[0] === '') srcPath[0] = result.host; + else srcPath.unshift(result.host); } - async simulateTransaction(messages, gasPrice = stargate_1.GasPrice.fromString('0.025uusdc'), memo) { - var _a, _b; - if (!this.stargateClient) { - throw new Error('NobleClient stargateClient not initialized'); - } - if (((_a = this.wallet) === null || _a === void 0 ? void 0 : _a.address) === undefined) { - throw new Error('NobleClient wallet not initialized'); - } - // Get simulated response - const gasEstimate = await this.stargateClient.simulate((_b = this.wallet) === null || _b === void 0 ? void 0 : _b.address, messages, memo); - // Calculate and return the fee - return (0, stargate_1.calculateFee)(Math.floor(gasEstimate * constants_1.GAS_MULTIPLIER), gasPrice); + result.host = ''; + if (relative.protocol) { + relative.hostname = null; + relative.port = null; + if (relative.host) { + if (relPath[0] === '') relPath[0] = relative.host; + else relPath.unshift(relative.host); + } + relative.host = null; } -} -exports.NobleClient = NobleClient; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ibGUtY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudHMvbm9ibGUtY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlEQUFxRTtBQUNyRSwrQ0FPMEI7QUFFMUIsMkNBQTZDO0FBQzdDLCtDQUFvRDtBQUdwRCxNQUFhLFdBQVc7SUFLdEIsWUFBWSxZQUFvQjtRQUM5QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQW1CO1FBQy9CLElBQUksQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsYUFBYSxNQUFLLFNBQVMsRUFBRTtZQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7U0FDNUM7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sZ0NBQXFCLENBQUMsaUJBQWlCLENBQ2pFLElBQUksQ0FBQyxZQUFZLEVBQ2pCLE1BQU0sQ0FBQyxhQUFhLEVBQ3BCO1lBQ0UsUUFBUSxFQUFFLElBQUksd0JBQVEsQ0FBQztnQkFDckIsQ0FBQyxtQ0FBbUMsRUFBRSw2QkFBaUIsQ0FBQztnQkFDeEQsR0FBRywrQkFBb0I7YUFDeEIsQ0FBQztTQUNILENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0I7O1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUEsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxPQUFPLE1BQUssU0FBUyxFQUFFO1lBQzlELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztTQUNuRDtRQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBYTs7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQSxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLE9BQU8sTUFBSyxTQUFTLEVBQUU7WUFDOUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQ25EO1FBQ0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FDUixRQUF3QixFQUN4QixXQUFxQixtQkFBUSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFDdEQsSUFBYTs7UUFFYixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7U0FDL0Q7UUFDRCxJQUFJLENBQUEsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxPQUFPLE1BQUssU0FBUyxFQUFFO1lBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztTQUN2RDtRQUNELG1DQUFtQztRQUNuQyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXJFLHFDQUFxQztRQUNyQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUNuQixRQUFRLEVBQ1IsR0FBRyxFQUNILElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFJLEVBQUUsQ0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxtQkFBbUIsQ0FDdkIsUUFBaUMsRUFDakMsV0FBcUIsbUJBQVEsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQ3RELElBQWE7O1FBRWIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1NBQy9EO1FBQ0QsSUFBSSxDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsT0FBTyxNQUFLLFNBQVMsRUFBRTtZQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7U0FDdkQ7UUFDRCx5QkFBeUI7UUFDekIsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FDcEQsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxPQUFPLEVBQ3BCLFFBQVEsRUFDUixJQUFJLENBQ0wsQ0FBQztRQUVGLCtCQUErQjtRQUMvQixPQUFPLElBQUEsdUJBQVksRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRywwQkFBYyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUUsQ0FBQztDQUNGO0FBeEZELGtDQXdGQyJ9 + mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === ''); + } -/***/ }), + if (isRelAbs) { + // it's absolute. + result.host = (relative.host || relative.host === '') ? + relative.host : result.host; + result.hostname = (relative.hostname || relative.hostname === '') ? + relative.hostname : result.hostname; + result.search = relative.search; + result.query = relative.query; + srcPath = relPath; + // fall through to the dot-handling below. + } else if (relPath.length) { + // it's relative + // throw away the existing file, and take the new path instead. + if (!srcPath) srcPath = []; + srcPath.pop(); + srcPath = srcPath.concat(relPath); + result.search = relative.search; + result.query = relative.query; + } else if (!util.isNullOrUndefined(relative.search)) { + // just pull out the search. + // like href='?foo'. + // Put this after the other two cases because it simplifies the booleans + if (psychotic) { + result.hostname = result.host = srcPath.shift(); + //occationaly the auth can get stuck only in host + //this especially happens in cases like + //url.resolveObject('mailto:local1@domain1', 'local2@domain2') + var authInHost = result.host && result.host.indexOf('@') > 0 ? + result.host.split('@') : false; + if (authInHost) { + result.auth = authInHost.shift(); + result.host = result.hostname = authInHost.shift(); + } + } + result.search = relative.search; + result.query = relative.query; + //to support http.request + if (!util.isNull(result.pathname) || !util.isNull(result.search)) { + result.path = (result.pathname ? result.pathname : '') + + (result.search ? result.search : ''); + } + result.href = result.format(); + return result; + } -/***/ "./src/clients/subaccount.ts": -/*!***********************************!*\ - !*** ./src/clients/subaccount.ts ***! - \***********************************/ -/***/ (function(__unused_webpack_module, exports) { + if (!srcPath.length) { + // no path at all. easy. + // we've already handled the other stuff above. + result.pathname = null; + //to support http.request + if (result.search) { + result.path = '/' + result.search; + } else { + result.path = null; + } + result.href = result.format(); + return result; + } -"use strict"; + // if a url ENDs in . or .., then it must get a trailing slash. + // however, if it ends in anything else non-slashy, + // then it must NOT get a trailing slash. + var last = srcPath.slice(-1)[0]; + var hasTrailingSlash = ( + (result.host || relative.host || srcPath.length > 1) && + (last === '.' || last === '..') || last === ''); -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.SubaccountInfo = void 0; -class SubaccountInfo { - constructor(wallet, subaccountNumber = 0) { - if (subaccountNumber < 0 || subaccountNumber > 127) { - throw new Error('Subaccount number must be between 0 and 127'); - } - this.wallet = wallet; - this.subaccountNumber = subaccountNumber; + // strip single dots, resolve double dots to parent dir + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = srcPath.length; i >= 0; i--) { + last = srcPath[i]; + if (last === '.') { + srcPath.splice(i, 1); + } else if (last === '..') { + srcPath.splice(i, 1); + up++; + } else if (up) { + srcPath.splice(i, 1); + up--; } - get address() { - const address = this.wallet.address; - if (address !== undefined) { - return address; - } - else { - throw new Error('Address not set'); - } + } + + // if the path is allowed to go above the root, restore leading ..s + if (!mustEndAbs && !removeAllDots) { + for (; up--; up) { + srcPath.unshift('..'); } -} -exports.SubaccountInfo = SubaccountInfo; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnRzL3N1YmFjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsTUFBYSxjQUFjO0lBS3ZCLFlBQVksTUFBbUIsRUFBRSxtQkFBMkIsQ0FBQztRQUMzRCxJQUFJLGdCQUFnQixHQUFHLENBQUMsSUFBSSxnQkFBZ0IsR0FBRyxHQUFHLEVBQUU7WUFDbEQsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1NBQ2hFO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUNwQyxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUU7WUFDekIsT0FBTyxPQUFPLENBQUM7U0FDaEI7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7Q0FDSjtBQXJCRCx3Q0FxQkMifQ== + } -/***/ }), + if (mustEndAbs && srcPath[0] !== '' && + (!srcPath[0] || srcPath[0].charAt(0) !== '/')) { + srcPath.unshift(''); + } -/***/ "./src/clients/types.ts": -/*!******************************!*\ - !*** ./src/clients/types.ts ***! - \******************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) { + srcPath.push(''); + } -"use strict"; + var isAbsolute = srcPath[0] === '' || + (srcPath[0] && srcPath[0].charAt(0) === '/'); -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; + // put the host back + if (psychotic) { + result.hostname = result.host = isAbsolute ? '' : + srcPath.length ? srcPath.shift() : ''; + //occationaly the auth can get stuck only in host + //this especially happens in cases like + //url.resolveObject('mailto:local1@domain1', 'local2@domain2') + var authInHost = result.host && result.host.indexOf('@') > 0 ? + result.host.split('@') : false; + if (authInHost) { + result.auth = authInHost.shift(); + result.host = result.hostname = authInHost.shift(); } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.OrderFlags = void 0; -// OrderFlags, just a number in proto, defined as enum for convenience -var OrderFlags; -(function (OrderFlags) { - OrderFlags[OrderFlags["SHORT_TERM"] = 0] = "SHORT_TERM"; - OrderFlags[OrderFlags["LONG_TERM"] = 64] = "LONG_TERM"; - OrderFlags[OrderFlags["CONDITIONAL"] = 32] = "CONDITIONAL"; -})(OrderFlags = exports.OrderFlags || (exports.OrderFlags = {})); -__exportStar(__webpack_require__(/*! ./modules/proto-includes */ "./src/clients/modules/proto-includes.ts"), exports); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50cy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQTJCQSxzRUFBc0U7QUFDdEUsSUFBWSxVQUlYO0FBSkQsV0FBWSxVQUFVO0lBQ3BCLHVEQUFjLENBQUE7SUFDZCxzREFBYyxDQUFBO0lBQ2QsMERBQWdCLENBQUE7QUFDbEIsQ0FBQyxFQUpXLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBSXJCO0FBaUVELDJEQUF5QyJ9 + } -/***/ }), + mustEndAbs = mustEndAbs || (result.host && srcPath.length); -/***/ "./src/clients/validator-client.ts": -/*!*****************************************!*\ - !*** ./src/clients/validator-client.ts ***! - \*****************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + if (mustEndAbs && !isAbsolute) { + srcPath.unshift(''); + } -"use strict"; + if (!srcPath.length) { + result.pathname = null; + result.path = null; + } else { + result.pathname = srcPath.join('/'); + } -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; + //to support request.http + if (!util.isNull(result.pathname) || !util.isNull(result.search)) { + result.path = (result.pathname ? result.pathname : '') + + (result.search ? result.search : ''); + } + result.auth = relative.auth || result.auth; + result.slashes = result.slashes || relative.slashes; + result.href = result.format(); + return result; }; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ValidatorClient = void 0; -const stargate_1 = __webpack_require__(/*! @cosmjs/stargate */ "./node_modules/@cosmjs/stargate/build/index.js"); -const tendermint_rpc_1 = __webpack_require__(/*! @cosmjs/tendermint-rpc */ "./node_modules/@cosmjs/tendermint-rpc/build/index.js"); -const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); -const protobufjs_1 = __importDefault(__webpack_require__(/*! protobufjs */ "./node_modules/protobufjs/index.js")); -const constants_1 = __webpack_require__(/*! ./constants */ "./src/clients/constants.ts"); -const get_1 = __webpack_require__(/*! ./modules/get */ "./src/clients/modules/get.ts"); -const post_1 = __webpack_require__(/*! ./modules/post */ "./src/clients/modules/post.ts"); -const tendermintClient_1 = __webpack_require__(/*! ./modules/tendermintClient */ "./src/clients/modules/tendermintClient.ts"); -// Required for encoding and decoding queries that are of type Long. -// Must be done once but since the individal modules should be usable -// - must be set in each module that encounters encoding/decoding Longs. -// Reference: https://github.com/protobufjs/protobuf.js/issues/921 -protobufjs_1.default.util.Long = long_1.default; -protobufjs_1.default.configure(); -class ValidatorClient { - constructor(config) { - this.config = config; - } - /** - * @description Connect to a validator client - * - * @returns The validator client - */ - static async connect(config) { - const client = new ValidatorClient(config); - await client.initialize(); - return client; - } - /** - * @description Get the query module, used for retrieving on-chain data. - * - * @returns The query module - */ - get get() { - return this._get; - } - /** - * @description transaction module, used for sending transactions. - * - * @returns The transaction module - */ - get post() { - return this._post; - } - async initialize() { - const tendermint37Client = await tendermint_rpc_1.Tendermint37Client.connect(this.config.restEndpoint); - const tendermintClient = new tendermintClient_1.TendermintClient(tendermint37Client, { - broadcastPollIntervalMs: constants_1.BROADCAST_POLL_INTERVAL_MS, - broadcastTimeoutMs: constants_1.BROADCAST_TIMEOUT_MS, - }); - const queryClient = stargate_1.QueryClient.withExtensions(tendermint37Client, stargate_1.setupTxExtension); - this._get = new get_1.Get(tendermintClient, queryClient); - this._post = new post_1.Post(this._get, this.config.chainId, this.config.denoms); + +Url.prototype.parseHost = function() { + var host = this.host; + var port = portPattern.exec(host); + if (port) { + port = port[0]; + if (port !== ':') { + this.port = port.substr(1); } -} -exports.ValidatorClient = ValidatorClient; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnRzL3ZhbGlkYXRvci1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsK0NBQThFO0FBQzlFLDJEQUE0RDtBQUM1RCxnREFBd0I7QUFDeEIsNERBQWtDO0FBRWxDLDJDQUFnRztBQUNoRyx1Q0FBb0M7QUFDcEMseUNBQXNDO0FBQ3RDLGlFQUE4RDtBQUU5RCxvRUFBb0U7QUFDcEUscUVBQXFFO0FBQ3JFLHdFQUF3RTtBQUN4RSxrRUFBa0U7QUFDbEUsb0JBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLGNBQUksQ0FBQztBQUMxQixvQkFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBRXJCLE1BQWEsZUFBZTtJQWdCMUIsWUFDRSxNQUF1QjtRQUV2QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBZkQ7Ozs7U0FJSztJQUNMLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQXVCO1FBQzFDLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLE1BQU0sTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzFCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFRRDs7OztTQUlLO0lBQ0wsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7OztTQUlLO0lBQ0wsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBTSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxLQUFLLENBQUMsVUFBVTtRQUN0QixNQUFNLGtCQUFrQixHQUF1QixNQUFNLG1DQUFrQixDQUFDLE9BQU8sQ0FDN0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQ3pCLENBQUM7UUFFRixNQUFNLGdCQUFnQixHQUFHLElBQUksbUNBQWdCLENBQUMsa0JBQWtCLEVBQUU7WUFDaEUsdUJBQXVCLEVBQUUsc0NBQTBCO1lBQ25ELGtCQUFrQixFQUFFLGdDQUFvQjtTQUN6QyxDQUFDLENBQUM7UUFDSCxNQUFNLFdBQVcsR0FBZ0Msc0JBQVcsQ0FBQyxjQUFjLENBQ3pFLGtCQUFrQixFQUNsQiwyQkFBZ0IsQ0FDakIsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxTQUFHLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFdBQUksQ0FBQyxJQUFJLENBQUMsSUFBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0UsQ0FBQztDQUNGO0FBeERELDBDQXdEQyJ9 + host = host.substr(0, host.length - port.length); + } + if (host) this.hostname = host; +}; + /***/ }), -/***/ "./src/lib/constants.ts": -/*!******************************!*\ - !*** ./src/lib/constants.ts ***! - \******************************/ -/***/ (function(__unused_webpack_module, exports) { +/***/ "./node_modules/url/util.js": +/*!**********************************!*\ + !*** ./node_modules/url/util.js ***! + \**********************************/ +/***/ (function(module) { "use strict"; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.SERIALIZED_INT_ZERO = exports.DEFAULT_SEQUENCE = exports.MAX_SUBACCOUNT_NUMBER = exports.MAX_UINT_32 = exports.ZERO_FEE = exports.GAS_MULTIPLIER = exports.API_TIMEOUT_DEFAULT_MS = exports.BROADCAST_TIMEOUT_MS = exports.BROADCAST_POLL_INTERVAL_MS = exports.NOBLE_BECH32_PREFIX = exports.BECH32_PREFIX = void 0; -// Bech32 Prefix -exports.BECH32_PREFIX = 'dydx'; -exports.NOBLE_BECH32_PREFIX = 'noble'; -// Broadcast Defaults -exports.BROADCAST_POLL_INTERVAL_MS = 300; -exports.BROADCAST_TIMEOUT_MS = 8000; -// API Defaults -exports.API_TIMEOUT_DEFAULT_MS = 5000; -// Gas -exports.GAS_MULTIPLIER = 1.4; -exports.ZERO_FEE = { - amount: [], - gas: '0', -}; -// Validation -exports.MAX_UINT_32 = 4294967295; -exports.MAX_SUBACCOUNT_NUMBER = 127; -exports.DEFAULT_SEQUENCE = 0; -exports.SERIALIZED_INT_ZERO = Uint8Array.from([0x02]); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsZ0JBQWdCO0FBQ0gsUUFBQSxhQUFhLEdBQUcsTUFBTSxDQUFDO0FBQ3ZCLFFBQUEsbUJBQW1CLEdBQUcsT0FBTyxDQUFDO0FBRTNDLHFCQUFxQjtBQUNSLFFBQUEsMEJBQTBCLEdBQVcsR0FBRyxDQUFDO0FBQ3pDLFFBQUEsb0JBQW9CLEdBQVcsSUFBSyxDQUFDO0FBRWxELGVBQWU7QUFDRixRQUFBLHNCQUFzQixHQUFXLElBQUssQ0FBQztBQUVwRCxNQUFNO0FBQ08sUUFBQSxjQUFjLEdBQVcsR0FBRyxDQUFDO0FBRTdCLFFBQUEsUUFBUSxHQUFXO0lBQzlCLE1BQU0sRUFBRSxFQUFFO0lBQ1YsR0FBRyxFQUFFLEdBQUc7Q0FDVCxDQUFDO0FBRUYsYUFBYTtBQUNBLFFBQUEsV0FBVyxHQUFHLFVBQWEsQ0FBQztBQUM1QixRQUFBLHFCQUFxQixHQUFHLEdBQUcsQ0FBQztBQUU1QixRQUFBLGdCQUFnQixHQUFXLENBQUMsQ0FBQztBQUU3QixRQUFBLG1CQUFtQixHQUFlLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDIn0= - -/***/ }), - -/***/ "./src/lib/errors.ts": -/*!***************************!*\ - !*** ./src/lib/errors.ts ***! - \***************************/ -/***/ (function(__unused_webpack_module, exports) { -"use strict"; +module.exports = { + isString: function(arg) { + return typeof(arg) === 'string'; + }, + isObject: function(arg) { + return typeof(arg) === 'object' && arg !== null; + }, + isNull: function(arg) { + return arg === null; + }, + isNullOrUndefined: function(arg) { + return arg == null; + } +}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.UserError = exports.BroadcastErrorObject = exports.UnexpectedClientError = void 0; -/** - * An edge-case was hit in the client that should never have been reached. - */ -class UnexpectedClientError extends Error { - constructor() { - super('An unexpected error occurred on the client'); - this.name = 'UnexpectedClientError'; - } -} -exports.UnexpectedClientError = UnexpectedClientError; -/** - * An error occurred during the broadcasting process. - */ -class BroadcastErrorObject extends Error { - constructor(message, result) { - super(message); - this.name = 'BroadcastError'; - this.result = result; - this.code = result.code; - this.codespace = result.codespace; - } -} -exports.BroadcastErrorObject = BroadcastErrorObject; -/** - * User error occurred during a client operation. - */ -class UserError extends Error { - constructor(message) { - super(message); - this.name = 'UserError'; - } -} -exports.UserError = UserError; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUE7O0dBRUc7QUFDSCxNQUFhLHFCQUFzQixTQUFRLEtBQUs7SUFDOUM7UUFFRSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsSUFBSSxHQUFHLHVCQUF1QixDQUFDO0lBQ3RDLENBQUM7Q0FDRjtBQU5ELHNEQU1DO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLG9CQUFxQixTQUFRLEtBQUs7SUFLN0MsWUFDRSxPQUFlLEVBQ2YsTUFBK0I7UUFFL0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxnQkFBZ0IsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO0lBQ3BDLENBQUM7Q0FDRjtBQWZELG9EQWVDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLFNBQVUsU0FBUSxLQUFLO0lBQ2xDLFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQztJQUMxQixDQUFDO0NBQ0Y7QUFMRCw4QkFLQyJ9 /***/ }), -/***/ "./src/lib/helpers.ts": -/*!****************************!*\ - !*** ./src/lib/helpers.ts ***! - \****************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { +/***/ "./node_modules/util-deprecate/browser.js": +/*!************************************************!*\ + !*** ./node_modules/util-deprecate/browser.js ***! + \************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { -"use strict"; -/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.encodeJson = exports.ByteArrayEncoding = exports.stripHexPrefix = exports.convertPartialTransactionOptionsToFull = void 0; -const encoding_1 = __webpack_require__(/*! @cosmjs/encoding */ "./node_modules/@cosmjs/encoding/build/index.js"); -const bignumber_js_1 = __importDefault(__webpack_require__(/*! bignumber.js */ "./node_modules/bignumber.js/bignumber.js")); -const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); -const constants_1 = __webpack_require__(/*! ./constants */ "./src/lib/constants.ts"); -/** - * @description Either return undefined or insert default sequence value into - * `partialTransactionOptions` if it does not exist. - * - * @returns undefined or full TransactionOptions. - */ -function convertPartialTransactionOptionsToFull(partialTransactionOptions) { - if (partialTransactionOptions === undefined) { - return undefined; - } - return { - sequence: constants_1.DEFAULT_SEQUENCE, - ...partialTransactionOptions, - }; -} -exports.convertPartialTransactionOptionsToFull = convertPartialTransactionOptionsToFull; /** - * @description Strip '0x' prefix from input string. If there is no '0x' prefix, return the original - * input. - * - * @returns input without '0x' prefix or original input if no prefix. + * Module exports. */ -function stripHexPrefix(input) { - if (input.indexOf('0x') === 0) { - return input.slice(2); - } - return input; -} -exports.stripHexPrefix = stripHexPrefix; -function toBigInt(u) { - if (u.length <= 1) { - return BigInt(0); - } - // eslint-disable-next-line no-bitwise - const negated = (u[0] & 1) === 1; - const hex = Buffer.from(u.slice(1)).toString('hex'); - const abs = BigInt(`0x${hex}`); - return negated ? -abs : abs; -} -var ByteArrayEncoding; -(function (ByteArrayEncoding) { - ByteArrayEncoding["HEX"] = "hex"; - ByteArrayEncoding["BIGINT"] = "bigint"; -})(ByteArrayEncoding = exports.ByteArrayEncoding || (exports.ByteArrayEncoding = {})); -function encodeJson(object, byteArrayEncoding = ByteArrayEncoding.HEX) { - // eslint-disable-next-line prefer-arrow-callback - return JSON.stringify(object, function replacer(_key, value) { - // Even though we set the an UInt8Array as the value, - // it comes in here as an object with UInt8Array as the buffer property. - if (value instanceof bignumber_js_1.default) { - return value.toString(); - } - if (value instanceof BigInt) { - return value.toString(); - } - if (value instanceof long_1.default) { - return value.toString(); - } - if ((value === null || value === void 0 ? void 0 : value.buffer) instanceof Uint8Array) { - if (byteArrayEncoding === ByteArrayEncoding.HEX) { - return (0, encoding_1.toHex)(value.buffer); - } - else { - return toBigInt(value.buffer).toString(); - } - } - else if (value instanceof Uint8Array) { - if (byteArrayEncoding === ByteArrayEncoding.HEX) { - return (0, encoding_1.toHex)(value); - } - else { - return toBigInt(value).toString(); - } - } - return value; - }); -} -exports.encodeJson = encodeJson; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwrQ0FBeUM7QUFDekMsZ0VBQXFDO0FBQ3JDLGdEQUF3QjtBQUd4QiwyQ0FBK0M7QUFFL0M7Ozs7O0dBS0c7QUFDSCxTQUFnQixzQ0FBc0MsQ0FDcEQseUJBQXFEO0lBRXJELElBQUkseUJBQXlCLEtBQUssU0FBUyxFQUFFO1FBQzNDLE9BQU8sU0FBUyxDQUFDO0tBQ2xCO0lBRUQsT0FBTztRQUNMLFFBQVEsRUFBRSw0QkFBZ0I7UUFDMUIsR0FBRyx5QkFBeUI7S0FDN0IsQ0FBQztBQUNKLENBQUM7QUFYRCx3RkFXQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLEtBQWE7SUFDMUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUM3QixPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDdkI7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFORCx3Q0FNQztBQUVELFNBQVMsUUFBUSxDQUFDLENBQWE7SUFDN0IsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtRQUNqQixPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNsQjtJQUNELHNDQUFzQztJQUN0QyxNQUFNLE9BQU8sR0FBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsTUFBTSxHQUFHLEdBQVcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVELE1BQU0sR0FBRyxHQUFXLE1BQU0sQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDdkMsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDOUIsQ0FBQztBQUVELElBQVksaUJBR1g7QUFIRCxXQUFZLGlCQUFpQjtJQUMzQixnQ0FBVyxDQUFBO0lBQ1gsc0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUhXLGlCQUFpQixHQUFqQix5QkFBaUIsS0FBakIseUJBQWlCLFFBRzVCO0FBRUQsU0FBZ0IsVUFBVSxDQUN4QixNQUFlLEVBQ2Ysb0JBQXVDLGlCQUFpQixDQUFDLEdBQUc7SUFFNUQsaURBQWlEO0lBQ2pELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUs7UUFDekQscURBQXFEO1FBQ3JELHdFQUF3RTtRQUN4RSxJQUFJLEtBQUssWUFBWSxzQkFBUyxFQUFFO1lBQzlCLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxLQUFLLFlBQVksTUFBTSxFQUFFO1lBQzNCLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxLQUFLLFlBQVksY0FBSSxFQUFFO1lBQ3pCLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxDQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxNQUFNLGFBQVksVUFBVSxFQUFFO1lBQ3ZDLElBQUksaUJBQWlCLEtBQUssaUJBQWlCLENBQUMsR0FBRyxFQUFFO2dCQUMvQyxPQUFPLElBQUEsZ0JBQUssRUFBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDNUI7aUJBQU07Z0JBQ0wsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQzFDO1NBQ0Y7YUFBTSxJQUFJLEtBQUssWUFBWSxVQUFVLEVBQUU7WUFDdEMsSUFBSSxpQkFBaUIsS0FBSyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7Z0JBQy9DLE9BQU8sSUFBQSxnQkFBSyxFQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3JCO2lCQUFNO2dCQUNMLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ25DO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQWhDRCxnQ0FnQ0MifQ== - -/***/ }), - -/***/ "./src/lib/onboarding.ts": -/*!*******************************!*\ - !*** ./src/lib/onboarding.ts ***! - \*******************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { -"use strict"; -/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; +module.exports = deprecate; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.deriveHDKeyFromEthereumSignature = exports.exportMnemonicAndPrivateKey = void 0; -const bip32_1 = __webpack_require__(/*! @scure/bip32 */ "./node_modules/@scure/bip32/lib/index.js"); -const bip39_1 = __webpack_require__(/*! @scure/bip39 */ "./node_modules/@scure/bip39/index.js"); -const english_1 = __webpack_require__(/*! @scure/bip39/wordlists/english */ "./node_modules/@scure/bip39/wordlists/english.js"); -const keccak_1 = __webpack_require__(/*! ethereum-cryptography/keccak */ "./node_modules/ethereum-cryptography/keccak.js"); -const helpers_1 = __webpack_require__(/*! ./helpers */ "./src/lib/helpers.ts"); /** - * @description Get Mnemonic and priv/pub keys from privateKeyBytes and BIP44 HD path - * - * @url https://github.com/confio/cosmos-hd-key-derivation-spec#bip44 - * - * @param entropy used to generate mnemonic + * Mark that a method should not be used. + * Returns a modified function which warns once by default. * - * @param path BIP44 HD Path. Default is The Cosmos Hub path + * If `localStorage.noDeprecation = true` is set, then it is a no-op. * - * @throws Error if the hdkey does not exist + * If `localStorage.throwDeprecation = true` is set, then deprecated functions + * will throw an Error when invoked. * - * @returns Mnemonic and priv/pub keys - */ -const exportMnemonicAndPrivateKey = (entropy, path = "m/44'/118'/0'/0/0") => { - const mnemonic = (0, bip39_1.entropyToMnemonic)(entropy, english_1.wordlist); - const seed = (0, bip39_1.mnemonicToSeedSync)(mnemonic); - const hdkey = bip32_1.HDKey.fromMasterSeed(seed); - const derivedHdkey = hdkey.derive(path); - if (!hdkey.privateKey) { - throw new Error('null hd key'); - } - return { - mnemonic, - privateKey: derivedHdkey.privateKey, - publicKey: derivedHdkey.publicKey, - }; -}; -exports.exportMnemonicAndPrivateKey = exportMnemonicAndPrivateKey; -/** - * @description Get private information for onboarding using an Ethereum Signature. + * If `localStorage.traceDeprecation = true` is set, then deprecated functions + * will invoke `console.trace()` instead of `console.error()`. * - * @returns Mnemonic and Public/Private HD keys + * @param {Function} fn - the function to deprecate + * @param {String} msg - the string to print to the console when `fn` is invoked + * @returns {Function} a new "deprecated" version of `fn` + * @api public */ -const deriveHDKeyFromEthereumSignature = (signature) => { - const buffer = Buffer.from((0, helpers_1.stripHexPrefix)(signature), 'hex'); - if (buffer.length !== 65) { - throw new Error('Signature must be 65 bytes'); - } - // Remove the 'v' value by taking only the first 64 bytes of the signature - const rsValues = buffer.subarray(0, 64); - // Hash the 'r' and 's' values down to 32 bytes (256 bits) using Keccak-256 - const entropy = (0, keccak_1.keccak256)(rsValues); - return (0, exports.exportMnemonicAndPrivateKey)(entropy); -}; -exports.deriveHDKeyFromEthereumSignature = deriveHDKeyFromEthereumSignature; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25ib2FyZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvb25ib2FyZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3Q0FBcUM7QUFDckMsd0NBQXFFO0FBQ3JFLDREQUEwRDtBQUMxRCx5REFBeUQ7QUFFekQsdUNBQTJDO0FBRTNDOzs7Ozs7Ozs7Ozs7R0FZRztBQUNJLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxPQUFtQixFQUFFLE9BQWUsbUJBQW1CLEVBSWpHLEVBQUU7SUFDRixNQUFNLFFBQVEsR0FBRyxJQUFBLHlCQUFpQixFQUFDLE9BQU8sRUFBRSxrQkFBUSxDQUFDLENBQUM7SUFDdEQsTUFBTSxJQUFJLEdBQUcsSUFBQSwwQkFBa0IsRUFBQyxRQUFRLENBQUMsQ0FBQztJQUUxQyxNQUFNLEtBQUssR0FBRyxhQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUU7UUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztLQUNoQztJQUVELE9BQU87UUFDTCxRQUFRO1FBQ1IsVUFBVSxFQUFFLFlBQVksQ0FBQyxVQUFVO1FBQ25DLFNBQVMsRUFBRSxZQUFZLENBQUMsU0FBUztLQUNsQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBcEJXLFFBQUEsMkJBQTJCLCtCQW9CdEM7QUFFRjs7OztHQUlHO0FBQ0ksTUFBTSxnQ0FBZ0MsR0FBRyxDQUFDLFNBQWlCLEVBSWhFLEVBQUU7SUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUEsd0JBQWMsRUFBQyxTQUFTLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUU3RCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztLQUMvQztJQUVELDBFQUEwRTtJQUMxRSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4QywyRUFBMkU7SUFDM0UsTUFBTSxPQUFPLEdBQUcsSUFBQSxrQkFBUyxFQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BDLE9BQU8sSUFBQSxtQ0FBMkIsRUFBQyxPQUFPLENBQUMsQ0FBQztBQUM5QyxDQUFDLENBQUM7QUFoQlcsUUFBQSxnQ0FBZ0Msb0NBZ0IzQyJ9 - -/***/ }), - -/***/ "./src/lib/validation.ts": -/*!*******************************!*\ - !*** ./src/lib/validation.ts ***! - \*******************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { -"use strict"; +function deprecate (fn, msg) { + if (config('noDeprecation')) { + return fn; + } -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isValidAddress = exports.isStatefulOrder = exports.verifyOrderFlags = exports.validateTransferMessage = exports.validateCancelOrderMessage = exports.validatePlaceOrderMessage = void 0; -const bech32_1 = __webpack_require__(/*! bech32 */ "./node_modules/bech32/index.js"); -const long_1 = __importDefault(__webpack_require__(/*! long */ "./node_modules/long/src/long.js")); -const constants_1 = __webpack_require__(/*! ../clients/constants */ "./src/clients/constants.ts"); -const types_1 = __webpack_require__(/*! ../clients/types */ "./src/clients/types.ts"); -const errors_1 = __webpack_require__(/*! ./errors */ "./src/lib/errors.ts"); -/** - * @describe validatePlaceOrderMessage validates that an order to place has fields that would be - * valid on-chain. - */ -function validatePlaceOrderMessage(subaccountNumber, order) { - if (!verifyNumberIsUint32(order.clientId)) { - return new errors_1.UserError(`clientId: ${order.clientId} is not a valid uint32`); - } - if (order.quantums.lessThanOrEqual(long_1.default.ZERO)) { - return new errors_1.UserError(`quantums: ${order.quantums} cannot be <= 0`); - } - if (order.subticks.lessThanOrEqual(long_1.default.ZERO)) { - return new errors_1.UserError(`subticks: ${order.subticks} cannot be <= 0`); - } - if (!verifySubaccountNumber(subaccountNumber)) { - return new errors_1.UserError(`subaccountNumber: ${subaccountNumber} cannot be < 0 or > ${constants_1.MAX_SUBACCOUNT_NUMBER}`); - } - if (!isStatefulOrder(order.orderFlags) && !verifyGoodTilBlock(order.goodTilBlock)) { - return new errors_1.UserError(`goodTilBlock: ${order.goodTilBlock} is not a valid uint32 or is 0`); - } - if (isStatefulOrder(order.orderFlags) && !verifyGoodTilBlockTime(order.goodTilBlockTime)) { - return new errors_1.UserError(`goodTilBlockTime: ${order.goodTilBlockTime} is not a valid uint32 or is 0`); - } - return undefined; -} -exports.validatePlaceOrderMessage = validatePlaceOrderMessage; -/** - * @describe validateCancelOrderMessage validates that an order to cancel has fields that would be - * valid on-chain. - */ -function validateCancelOrderMessage(subaccountNumber, order) { - if (!verifyNumberIsUint32(order.clientId)) { - return new errors_1.UserError(`clientId: ${order.clientId} is not a valid uint32`); - } - if (!isStatefulOrder(order.orderFlags) && !verifyGoodTilBlock(order.goodTilBlock)) { - return new errors_1.UserError(`goodTilBlock: ${order.goodTilBlock} is not a valid uint32 or is 0`); - } - if (!isStatefulOrder(order.orderFlags) && order.goodTilBlockTime !== undefined) { - return new errors_1.UserError(`goodTilBlockTime is ${order.goodTilBlockTime}, but should not be set for non-stateful orders`); - } - if (isStatefulOrder(order.orderFlags) && !verifyGoodTilBlockTime(order.goodTilBlockTime)) { - return new errors_1.UserError(`goodTilBlockTime: ${order.goodTilBlockTime} is not a valid uint32 or is 0`); - } - if (isStatefulOrder(order.orderFlags) && order.goodTilBlock !== undefined) { - return new errors_1.UserError(`goodTilBlock is ${order.goodTilBlock}, but should not be set for stateful orders`); - } - if (!verifySubaccountNumber(subaccountNumber)) { - return new errors_1.UserError(`subaccountNumber: ${subaccountNumber} cannot be < 0 or > ${constants_1.MAX_SUBACCOUNT_NUMBER}`); + var warned = false; + function deprecated() { + if (!warned) { + if (config('throwDeprecation')) { + throw new Error(msg); + } else if (config('traceDeprecation')) { + console.trace(msg); + } else { + console.warn(msg); + } + warned = true; } - return undefined; + return fn.apply(this, arguments); + } + + return deprecated; } -exports.validateCancelOrderMessage = validateCancelOrderMessage; + /** - * @describe validateTransferMessage validates that a transfer to place has fields that would be - * valid on-chain. + * Checks `localStorage` for boolean values for the given `name`. + * + * @param {String} name + * @returns {Boolean} + * @api private */ -function validateTransferMessage(transfer) { - if (!verifySubaccountNumber(transfer.sender.number || 0)) { - return new errors_1.UserError(`senderSubaccountNumber: ${transfer.sender.number || 0} cannot be < 0 or > ${constants_1.MAX_SUBACCOUNT_NUMBER}`); - } - if (!verifySubaccountNumber(transfer.recipient.number || 0)) { - return new errors_1.UserError(`recipientSubaccountNumber: ${transfer.recipient.number || 0} cannot be < 0 or > ${constants_1.MAX_SUBACCOUNT_NUMBER}`); - } - if (transfer.assetId !== 0) { - return new errors_1.UserError(`asset id: ${transfer.assetId} not supported`); - } - if (transfer.amount.lessThanOrEqual(long_1.default.ZERO)) { - return new errors_1.UserError(`amount: ${transfer.amount} cannot be <= 0`); - } - const addressError = verifyIsBech32(transfer.recipient.owner); - if (addressError !== undefined) { - return new errors_1.UserError(addressError.toString()); - } - return undefined; -} -exports.validateTransferMessage = validateTransferMessage; -function verifyGoodTilBlock(goodTilBlock) { - if (goodTilBlock === undefined) { - return false; - } - return verifyNumberIsUint32(goodTilBlock) && goodTilBlock > 0; -} -function verifyGoodTilBlockTime(goodTilBlockTime) { - if (goodTilBlockTime === undefined) { - return false; - } - return verifyNumberIsUint32(goodTilBlockTime) && goodTilBlockTime > 0; -} -function verifySubaccountNumber(subaccountNumber) { - return subaccountNumber >= 0 && subaccountNumber <= constants_1.MAX_SUBACCOUNT_NUMBER; -} -function verifyNumberIsUint32(num) { - return num >= 0 && num <= constants_1.MAX_UINT_32; -} -function verifyOrderFlags(orderFlags) { - return orderFlags === types_1.OrderFlags.SHORT_TERM || - orderFlags === types_1.OrderFlags.LONG_TERM || orderFlags === types_1.OrderFlags.CONDITIONAL; -} -exports.verifyOrderFlags = verifyOrderFlags; -function isStatefulOrder(orderFlags) { - return orderFlags === types_1.OrderFlags.LONG_TERM || orderFlags === types_1.OrderFlags.CONDITIONAL; -} -exports.isStatefulOrder = isStatefulOrder; -function verifyIsBech32(address) { - try { - (0, bech32_1.decode)(address); - } - catch (error) { - return error; - } - return undefined; -} -function isValidAddress(address) { - // An address is valid if it starts with `dydx1` and is Bech32 format. - return address.startsWith('dydx1') && (verifyIsBech32(address) === undefined); + +function config (name) { + // accessing global.localStorage can trigger a DOMException in sandboxed iframes + try { + if (!__webpack_require__.g.localStorage) return false; + } catch (_) { + return false; + } + var val = __webpack_require__.g.localStorage[name]; + if (null == val) return false; + return String(val).toLowerCase() === 'true'; } -exports.isValidAddress = isValidAddress; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtQ0FBZ0M7QUFDaEMsZ0RBQXdCO0FBRXhCLG9EQUEwRTtBQUMxRSw0Q0FLMEI7QUFDMUIscUNBQXFDO0FBRXJDOzs7R0FHRztBQUNILFNBQWdCLHlCQUF5QixDQUN2QyxnQkFBd0IsRUFDeEIsS0FBa0I7SUFFbEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUN6QyxPQUFPLElBQUksa0JBQVMsQ0FBQyxhQUFhLEtBQUssQ0FBQyxRQUFRLHdCQUF3QixDQUFDLENBQUM7S0FDM0U7SUFDRCxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUM3QyxPQUFPLElBQUksa0JBQVMsQ0FBQyxhQUFhLEtBQUssQ0FBQyxRQUFRLGlCQUFpQixDQUFDLENBQUM7S0FDcEU7SUFDRCxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUM3QyxPQUFPLElBQUksa0JBQVMsQ0FBQyxhQUFhLEtBQUssQ0FBQyxRQUFRLGlCQUFpQixDQUFDLENBQUM7S0FDcEU7SUFDRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtRQUM3QyxPQUFPLElBQUksa0JBQVMsQ0FDbEIscUJBQXFCLGdCQUFnQix1QkFBdUIsaUNBQXFCLEVBQUUsQ0FDcEYsQ0FBQztLQUNIO0lBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUU7UUFDakYsT0FBTyxJQUFJLGtCQUFTLENBQUMsaUJBQWlCLEtBQUssQ0FBQyxZQUFZ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 -/***/ }), -/***/ "./src/network_optimizer.ts": -/*!**********************************!*\ - !*** ./src/network_optimizer.ts ***! - \**********************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { +/***/ }), -"use strict"; +/***/ "./node_modules/util/node_modules/inherits/inherits_browser.js": +/*!*********************************************************************!*\ + !*** ./node_modules/util/node_modules/inherits/inherits_browser.js ***! + \*********************************************************************/ +/***/ (function(module) { -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.NetworkOptimizer = exports.isTruthy = void 0; -const indexer_client_1 = __webpack_require__(/*! ./clients/indexer-client */ "./src/clients/indexer-client.ts"); -const validator_client_1 = __webpack_require__(/*! ./clients/validator-client */ "./src/clients/validator-client.ts"); -const helpers_1 = __webpack_require__(/*! ./lib/helpers */ "./src/lib/helpers.ts"); -const types_1 = __webpack_require__(/*! ./types */ "./src/types.ts"); -class PingResponse { - constructor(height) { - this.height = height; - this.responseTime = new Date(); - } +if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + }; +} else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor + } } -const isTruthy = (n) => Boolean(n); -exports.isTruthy = isTruthy; -class NetworkOptimizer { - async validatorClients(endpointUrls, chainId) { - return (await Promise.all(endpointUrls.map((endpointUrl) => validator_client_1.ValidatorClient.connect(new types_1.ValidatorConfig(endpointUrl, chainId, { - CHAINTOKEN_DENOM: 'placeholder', - CHAINTOKEN_DECIMALS: 18, - USDC_DENOM: 'uusdc', - USDC_DECIMALS: 6, - })) - .catch((_) => undefined)))).filter(exports.isTruthy); - } - indexerClients(endpointUrls) { - return endpointUrls.map((endpointUrl) => new indexer_client_1.IndexerClient( - // socket is not used for finding optimal indexer, but required as a parameter to the config - new types_1.IndexerConfig(endpointUrl, endpointUrl.replace('https://', 'wss://').replace('http://', 'ws://')))).filter(exports.isTruthy); - } - async findOptimalNode(endpointUrls, chainId) { - if (endpointUrls.length === 0) { - const errorResponse = { - error: { - message: 'No nodes provided', - }, - }; - return (0, helpers_1.encodeJson)(errorResponse); - } - const clients = await this.validatorClients(endpointUrls, chainId); - const responses = (await Promise.all(clients - .map(async (client) => { - const block = await client.get.latestBlock(); - const response = new PingResponse(block.header.height); - return { - endpoint: client.config.restEndpoint, - height: response.height, - time: response.responseTime.getTime(), - }; - }) - .map((promise) => promise.catch((_) => undefined)))).filter(exports.isTruthy); - if (responses.length === 0) { - throw new Error('Could not connect to endpoints'); - } - const maxHeight = Math.max(...responses.map(({ height }) => height)); - return responses - // Only consider nodes at `maxHeight` or `maxHeight - 1` - .filter(({ height }) => height === maxHeight || height === maxHeight - 1) - // Return the endpoint with the fastest response time - .sort((a, b) => a.time - b.time)[0] - .endpoint; - } - async findOptimalIndexer(endpointUrls) { - if (endpointUrls.length === 0) { - const errorResponse = { - error: { - message: 'No URL provided', - }, - }; - return (0, helpers_1.encodeJson)(errorResponse); - } - const clients = this.indexerClients(endpointUrls); - const responses = (await Promise.all(clients - .map(async (client) => { - const block = await client.utility.getHeight(); - const response = new PingResponse(+block.height); - return { - endpoint: client.config.restEndpoint, - height: response.height, - time: response.responseTime.getTime(), - }; - }) - .map((promise) => promise.catch((_) => undefined)))).filter(exports.isTruthy); - if (responses.length === 0) { - throw new Error('Could not connect to endpoints'); - } - const maxHeight = Math.max(...responses.map(({ height }) => height)); - return responses - // Only consider nodes at `maxHeight` or `maxHeight - 1` - .filter(({ height }) => height === maxHeight || height === maxHeight - 1) - // Return the endpoint with the fastest response time - .sort((a, b) => a.time - b.time)[0] - .endpoint; - } + + +/***/ }), + +/***/ "./node_modules/util/support/isBufferBrowser.js": +/*!******************************************************!*\ + !*** ./node_modules/util/support/isBufferBrowser.js ***! + \******************************************************/ +/***/ (function(module) { + +module.exports = function isBuffer(arg) { + return arg && typeof arg === 'object' + && typeof arg.copy === 'function' + && typeof arg.fill === 'function' + && typeof arg.readUInt8 === 'function'; } -exports.NetworkOptimizer = NetworkOptimizer; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya19vcHRpbWl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV0d29ya19vcHRpbWl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkRBQXlEO0FBQ3pELGlFQUE2RDtBQUM3RCwyQ0FBMkM7QUFDM0MsbUNBQXlEO0FBRXpELE1BQU0sWUFBWTtJQUtkLFlBQ0UsTUFBYztRQUVkLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0NBQ0o7QUFFTSxNQUFNLFFBQVEsR0FBRyxDQUFJLENBQW9DLEVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUEzRSxRQUFBLFFBQVEsWUFBbUU7QUFFeEYsTUFBYSxnQkFBZ0I7SUFDbkIsS0FBSyxDQUFDLGdCQUFnQixDQUM1QixZQUFzQixFQUN0QixPQUFlO1FBRWYsT0FBTyxDQUFDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDdkIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsa0NBQWUsQ0FBQyxPQUFPLENBQ3ZELElBQUksdUJBQWUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFO1lBQ3hDLGdCQUFnQixFQUFFLGFBQWE7WUFDL0IsbUJBQW1CLEVBQUUsRUFBRTtZQUN2QixVQUFVLEVBQUUsT0FBTztZQUNuQixhQUFhLEVBQUUsQ0FBQztTQUNqQixDQUFDLENBQUM7YUFDRixLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUN6QixDQUNGLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQVEsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFTyxjQUFjLENBQ3BCLFlBQXNCO1FBRXRCLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMs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 /***/ }), -/***/ "./src/types.ts": -/*!**********************!*\ - !*** ./src/types.ts ***! - \**********************/ +/***/ "./node_modules/util/util.js": +/*!***********************************!*\ + !*** ./node_modules/util/util.js ***! + \***********************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { -"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; +var formatRegExp = /%[sdj%]/g; +exports.format = function(f) { + if (!isString(f)) { + var objects = []; + for (var i = 0; i < arguments.length; i++) { + objects.push(inspect(arguments[i])); } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ClobPairId = void 0; -__exportStar(__webpack_require__(/*! ./clients/types */ "./src/clients/types.ts"), exports); -__exportStar(__webpack_require__(/*! ./clients/constants */ "./src/clients/constants.ts"), exports); -var ClobPairId; -(function (ClobPairId) { - ClobPairId[ClobPairId["PERPETUAL_PAIR_BTC_USD"] = 0] = "PERPETUAL_PAIR_BTC_USD"; -})(ClobPairId = exports.ClobPairId || (exports.ClobPairId = {})); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQSxrREFBZ0M7QUFDaEMsc0RBQW9DO0FBaUNwQyxJQUFZLFVBRVg7QUFGRCxXQUFZLFVBQVU7SUFDcEIsK0VBQTBCLENBQUE7QUFDNUIsQ0FBQyxFQUZXLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBRXJCIn0= - -/***/ }), - -/***/ "./node_modules/url/node_modules/punycode/punycode.js": -/*!************************************************************!*\ - !*** ./node_modules/url/node_modules/punycode/punycode.js ***! - \************************************************************/ -/***/ (function(module, exports, __webpack_require__) { + return objects.join(' '); + } -/* module decorator */ module = __webpack_require__.nmd(module); -var __WEBPACK_AMD_DEFINE_RESULT__;/*! https://mths.be/punycode v1.3.2 by @mathias */ -;(function(root) { + var i = 1; + var args = arguments; + var len = args.length; + var str = String(f).replace(formatRegExp, function(x) { + if (x === '%%') return '%'; + if (i >= len) return x; + switch (x) { + case '%s': return String(args[i++]); + case '%d': return Number(args[i++]); + case '%j': + try { + return JSON.stringify(args[i++]); + } catch (_) { + return '[Circular]'; + } + default: + return x; + } + }); + for (var x = args[i]; i < len; x = args[++i]) { + if (isNull(x) || !isObject(x)) { + str += ' ' + x; + } else { + str += ' ' + inspect(x); + } + } + return str; +}; - /** Detect free variables */ - var freeExports = true && exports && - !exports.nodeType && exports; - var freeModule = true && module && - !module.nodeType && module; - var freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g; - if ( - freeGlobal.global === freeGlobal || - freeGlobal.window === freeGlobal || - freeGlobal.self === freeGlobal - ) { - root = freeGlobal; - } - /** - * The `punycode` object. - * @name punycode - * @type Object - */ - var punycode, +// Mark that a method should not be used. +// Returns a modified function which warns once by default. +// If --no-deprecation is set, then it is a no-op. +exports.deprecate = function(fn, msg) { + // Allow for deprecating things in the process of starting up. + if (isUndefined(__webpack_require__.g.process)) { + return function() { + return exports.deprecate(fn, msg).apply(this, arguments); + }; + } - /** Highest positive signed 32-bit float value */ - maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1 + if (({"env":{"NODE_ENV":"production"}}).noDeprecation === true) { + return fn; + } - /** Bootstring parameters */ - base = 36, - tMin = 1, - tMax = 26, - skew = 38, - damp = 700, - initialBias = 72, - initialN = 128, // 0x80 - delimiter = '-', // '\x2D' + var warned = false; + function deprecated() { + if (!warned) { + if (({"env":{"NODE_ENV":"production"}}).throwDeprecation) { + throw new Error(msg); + } else if (({"env":{"NODE_ENV":"production"}}).traceDeprecation) { + console.trace(msg); + } else { + console.error(msg); + } + warned = true; + } + return fn.apply(this, arguments); + } - /** Regular expressions */ - regexPunycode = /^xn--/, - regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars - regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators + return deprecated; +}; - /** Error messages */ - errors = { - 'overflow': 'Overflow: input needs wider integers to process', - 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', - 'invalid-input': 'Invalid input' - }, - /** Convenience shortcuts */ - baseMinusTMin = base - tMin, - floor = Math.floor, - stringFromCharCode = String.fromCharCode, +var debugs = {}; +var debugEnviron; +exports.debuglog = function(set) { + if (isUndefined(debugEnviron)) + debugEnviron = ({"NODE_ENV":"production"}).NODE_DEBUG || ''; + set = set.toUpperCase(); + if (!debugs[set]) { + if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { + var pid = ({"env":{"NODE_ENV":"production"}}).pid; + debugs[set] = function() { + var msg = exports.format.apply(exports, arguments); + console.error('%s %d: %s', set, pid, msg); + }; + } else { + debugs[set] = function() {}; + } + } + return debugs[set]; +}; - /** Temporary variable */ - key; - /*--------------------------------------------------------------------------*/ +/** + * Echos the value of a value. Trys to print the value out + * in the best way possible given the different types. + * + * @param {Object} obj The object to print out. + * @param {Object} opts Optional options object that alters the output. + */ +/* legacy: obj, showHidden, depth, colors*/ +function inspect(obj, opts) { + // default options + var ctx = { + seen: [], + stylize: stylizeNoColor + }; + // legacy... + if (arguments.length >= 3) ctx.depth = arguments[2]; + if (arguments.length >= 4) ctx.colors = arguments[3]; + if (isBoolean(opts)) { + // legacy... + ctx.showHidden = opts; + } else if (opts) { + // got an "options" object + exports._extend(ctx, opts); + } + // set default options + if (isUndefined(ctx.showHidden)) ctx.showHidden = false; + if (isUndefined(ctx.depth)) ctx.depth = 2; + if (isUndefined(ctx.colors)) ctx.colors = false; + if (isUndefined(ctx.customInspect)) ctx.customInspect = true; + if (ctx.colors) ctx.stylize = stylizeWithColor; + return formatValue(ctx, obj, ctx.depth); +} +exports.inspect = inspect; - /** - * A generic error utility function. - * @private - * @param {String} type The error type. - * @returns {Error} Throws a `RangeError` with the applicable error message. - */ - function error(type) { - throw RangeError(errors[type]); - } - /** - * A generic `Array#map` utility function. - * @private - * @param {Array} array The array to iterate over. - * @param {Function} callback The function that gets called for every array - * item. - * @returns {Array} A new array of values returned by the callback function. - */ - function map(array, fn) { - var length = array.length; - var result = []; - while (length--) { - result[length] = fn(array[length]); - } - return result; - } +// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics +inspect.colors = { + 'bold' : [1, 22], + 'italic' : [3, 23], + 'underline' : [4, 24], + 'inverse' : [7, 27], + 'white' : [37, 39], + 'grey' : [90, 39], + 'black' : [30, 39], + 'blue' : [34, 39], + 'cyan' : [36, 39], + 'green' : [32, 39], + 'magenta' : [35, 39], + 'red' : [31, 39], + 'yellow' : [33, 39] +}; - /** - * A simple `Array#map`-like wrapper to work with domain name strings or email - * addresses. - * @private - * @param {String} domain The domain name or email address. - * @param {Function} callback The function that gets called for every - * character. - * @returns {Array} A new string of characters returned by the callback - * function. - */ - function mapDomain(string, fn) { - var parts = string.split('@'); - var result = ''; - if (parts.length > 1) { - // In email addresses, only the domain name should be punycoded. Leave - // the local part (i.e. everything up to `@`) intact. - result = parts[0] + '@'; - string = parts[1]; - } - // Avoid `split(regex)` for IE8 compatibility. See #17. - string = string.replace(regexSeparators, '\x2E'); - var labels = string.split('.'); - var encoded = map(labels, fn).join('.'); - return result + encoded; - } +// Don't use 'blue' not visible on cmd.exe +inspect.styles = { + 'special': 'cyan', + 'number': 'yellow', + 'boolean': 'yellow', + 'undefined': 'grey', + 'null': 'bold', + 'string': 'green', + 'date': 'magenta', + // "name": intentionally not styling + 'regexp': 'red' +}; - /** - * Creates an array containing the numeric code points of each Unicode - * character in the string. While JavaScript uses UCS-2 internally, - * this function will convert a pair of surrogate halves (each of which - * UCS-2 exposes as separate characters) into a single code point, - * matching UTF-16. - * @see `punycode.ucs2.encode` - * @see - * @memberOf punycode.ucs2 - * @name decode - * @param {String} string The Unicode input string (UCS-2). - * @returns {Array} The new array of code points. - */ - function ucs2decode(string) { - var output = [], - counter = 0, - length = string.length, - value, - extra; - while (counter < length) { - value = string.charCodeAt(counter++); - if (value >= 0xD800 && value <= 0xDBFF && counter < length) { - // high surrogate, and there is a next character - extra = string.charCodeAt(counter++); - if ((extra & 0xFC00) == 0xDC00) { // low surrogate - output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); - } else { - // unmatched surrogate; only append this code unit, in case the next - // code unit is the high surrogate of a surrogate pair - output.push(value); - counter--; - } - } else { - output.push(value); - } - } - return output; - } - /** - * Creates a string based on an array of numeric code points. - * @see `punycode.ucs2.decode` - * @memberOf punycode.ucs2 - * @name encode - * @param {Array} codePoints The array of numeric code points. - * @returns {String} The new Unicode string (UCS-2). - */ - function ucs2encode(array) { - return map(array, function(value) { - var output = ''; - if (value > 0xFFFF) { - value -= 0x10000; - output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800); - value = 0xDC00 | value & 0x3FF; - } - output += stringFromCharCode(value); - return output; - }).join(''); - } +function stylizeWithColor(str, styleType) { + var style = inspect.styles[styleType]; - /** - * Converts a basic code point into a digit/integer. - * @see `digitToBasic()` - * @private - * @param {Number} codePoint The basic numeric code point value. - * @returns {Number} The numeric value of a basic code point (for use in - * representing integers) in the range `0` to `base - 1`, or `base` if - * the code point does not represent a value. - */ - function basicToDigit(codePoint) { - if (codePoint - 48 < 10) { - return codePoint - 22; - } - if (codePoint - 65 < 26) { - return codePoint - 65; - } - if (codePoint - 97 < 26) { - return codePoint - 97; - } - return base; - } + if (style) { + return '\u001b[' + inspect.colors[style][0] + 'm' + str + + '\u001b[' + inspect.colors[style][1] + 'm'; + } else { + return str; + } +} - /** - * Converts a digit/integer into a basic code point. - * @see `basicToDigit()` - * @private - * @param {Number} digit The numeric value of a basic code point. - * @returns {Number} The basic code point whose value (when used for - * representing integers) is `digit`, which needs to be in the range - * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is - * used; else, the lowercase form is used. The behavior is undefined - * if `flag` is non-zero and `digit` has no uppercase form. - */ - function digitToBasic(digit, flag) { - // 0..25 map to ASCII a..z or A..Z - // 26..35 map to ASCII 0..9 - return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); - } - /** - * Bias adaptation function as per section 3.4 of RFC 3492. - * http://tools.ietf.org/html/rfc3492#section-3.4 - * @private - */ - function adapt(delta, numPoints, firstTime) { - var k = 0; - delta = firstTime ? floor(delta / damp) : delta >> 1; - delta += floor(delta / numPoints); - for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) { - delta = floor(delta / baseMinusTMin); - } - return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); - } +function stylizeNoColor(str, styleType) { + return str; +} - /** - * Converts a Punycode string of ASCII-only symbols to a string of Unicode - * symbols. - * @memberOf punycode - * @param {String} input The Punycode string of ASCII-only symbols. - * @returns {String} The resulting string of Unicode symbols. - */ - function decode(input) { - // Don't use UCS-2 - var output = [], - inputLength = input.length, - out, - i = 0, - n = initialN, - bias = initialBias, - basic, - j, - index, - oldi, - w, - k, - digit, - t, - /** Cached calculation results */ - baseMinusT; - // Handle the basic code points: let `basic` be the number of input code - // points before the last delimiter, or `0` if there is none, then copy - // the first basic code points to the output. +function arrayToHash(array) { + var hash = {}; - basic = input.lastIndexOf(delimiter); - if (basic < 0) { - basic = 0; - } + array.forEach(function(val, idx) { + hash[val] = true; + }); - for (j = 0; j < basic; ++j) { - // if it's not a basic code point - if (input.charCodeAt(j) >= 0x80) { - error('not-basic'); - } - output.push(input.charCodeAt(j)); - } + return hash; +} - // Main decoding loop: start just after the last delimiter if any basic code - // points were copied; start at the beginning otherwise. - for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) { +function formatValue(ctx, value, recurseTimes) { + // Provide a hook for user-specified inspect functions. + // Check that value is an object with an inspect function on it + if (ctx.customInspect && + value && + isFunction(value.inspect) && + // Filter out the util module, it's inspect function is special + value.inspect !== exports.inspect && + // Also filter out any prototype objects using the circular check. + !(value.constructor && value.constructor.prototype === value)) { + var ret = value.inspect(recurseTimes, ctx); + if (!isString(ret)) { + ret = formatValue(ctx, ret, recurseTimes); + } + return ret; + } - // `index` is the index of the next character to be consumed. - // Decode a generalized variable-length integer into `delta`, - // which gets added to `i`. The overflow checking is easier - // if we increase `i` as we go, then subtract off its starting - // value at the end to obtain `delta`. - for (oldi = i, w = 1, k = base; /* no condition */; k += base) { + // Primitive types cannot have properties + var primitive = formatPrimitive(ctx, value); + if (primitive) { + return primitive; + } - if (index >= inputLength) { - error('invalid-input'); - } + // Look up the keys of the object. + var keys = Object.keys(value); + var visibleKeys = arrayToHash(keys); - digit = basicToDigit(input.charCodeAt(index++)); + if (ctx.showHidden) { + keys = Object.getOwnPropertyNames(value); + } - if (digit >= base || digit > floor((maxInt - i) / w)) { - error('overflow'); - } + // IE doesn't make error fields non-enumerable + // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx + if (isError(value) + && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { + return formatError(value); + } - i += digit * w; - t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + // Some type of object without properties can be shortcutted. + if (keys.length === 0) { + if (isFunction(value)) { + var name = value.name ? ': ' + value.name : ''; + return ctx.stylize('[Function' + name + ']', 'special'); + } + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } + if (isDate(value)) { + return ctx.stylize(Date.prototype.toString.call(value), 'date'); + } + if (isError(value)) { + return formatError(value); + } + } - if (digit < t) { - break; - } + var base = '', array = false, braces = ['{', '}']; - baseMinusT = base - t; - if (w > floor(maxInt / baseMinusT)) { - error('overflow'); - } + // Make Array say that they are Array + if (isArray(value)) { + array = true; + braces = ['[', ']']; + } - w *= baseMinusT; + // Make functions say that they are functions + if (isFunction(value)) { + var n = value.name ? ': ' + value.name : ''; + base = ' [Function' + n + ']'; + } - } + // Make RegExps say that they are RegExps + if (isRegExp(value)) { + base = ' ' + RegExp.prototype.toString.call(value); + } - out = output.length + 1; - bias = adapt(i - oldi, out, oldi == 0); + // Make dates with properties first say the date + if (isDate(value)) { + base = ' ' + Date.prototype.toUTCString.call(value); + } - // `i` was supposed to wrap around from `out` to `0`, - // incrementing `n` each time, so we'll fix that now: - if (floor(i / out) > maxInt - n) { - error('overflow'); - } + // Make error with message first say the error + if (isError(value)) { + base = ' ' + formatError(value); + } - n += floor(i / out); - i %= out; + if (keys.length === 0 && (!array || value.length == 0)) { + return braces[0] + base + braces[1]; + } - // Insert `n` at position `i` of the output - output.splice(i++, 0, n); + if (recurseTimes < 0) { + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } else { + return ctx.stylize('[Object]', 'special'); + } + } - } + ctx.seen.push(value); - return ucs2encode(output); - } + var output; + if (array) { + output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); + } else { + output = keys.map(function(key) { + return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); + }); + } - /** - * Converts a string of Unicode symbols (e.g. a domain name label) to a - * Punycode string of ASCII-only symbols. - * @memberOf punycode - * @param {String} input The string of Unicode symbols. - * @returns {String} The resulting Punycode string of ASCII-only symbols. - */ - function encode(input) { - var n, - delta, - handledCPCount, - basicLength, - bias, - j, - m, - q, - k, - t, - currentValue, - output = [], - /** `inputLength` will hold the number of code points in `input`. */ - inputLength, - /** Cached calculation results */ - handledCPCountPlusOne, - baseMinusT, - qMinusT; + ctx.seen.pop(); - // Convert the input in UCS-2 to Unicode - input = ucs2decode(input); + return reduceToSingleString(output, base, braces); +} - // Cache the length - inputLength = input.length; - // Initialize the state - n = initialN; - delta = 0; - bias = initialBias; +function formatPrimitive(ctx, value) { + if (isUndefined(value)) + return ctx.stylize('undefined', 'undefined'); + if (isString(value)) { + var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') + .replace(/'/g, "\\'") + .replace(/\\"/g, '"') + '\''; + return ctx.stylize(simple, 'string'); + } + if (isNumber(value)) + return ctx.stylize('' + value, 'number'); + if (isBoolean(value)) + return ctx.stylize('' + value, 'boolean'); + // For some reason typeof null is "object", so special case here. + if (isNull(value)) + return ctx.stylize('null', 'null'); +} - // Handle the basic code points - for (j = 0; j < inputLength; ++j) { - currentValue = input[j]; - if (currentValue < 0x80) { - output.push(stringFromCharCode(currentValue)); - } - } - handledCPCount = basicLength = output.length; +function formatError(value) { + return '[' + Error.prototype.toString.call(value) + ']'; +} - // `handledCPCount` is the number of code points that have been handled; - // `basicLength` is the number of basic code points. - // Finish the basic string - if it is not empty - with a delimiter - if (basicLength) { - output.push(delimiter); - } +function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { + var output = []; + for (var i = 0, l = value.length; i < l; ++i) { + if (hasOwnProperty(value, String(i))) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + String(i), true)); + } else { + output.push(''); + } + } + keys.forEach(function(key) { + if (!key.match(/^\d+$/)) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + key, true)); + } + }); + return output; +} - // Main encoding loop: - while (handledCPCount < inputLength) { - // All non-basic code points < n have been handled already. Find the next - // larger one: - for (m = maxInt, j = 0; j < inputLength; ++j) { - currentValue = input[j]; - if (currentValue >= n && currentValue < m) { - m = currentValue; - } - } +function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { + var name, str, desc; + desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; + if (desc.get) { + if (desc.set) { + str = ctx.stylize('[Getter/Setter]', 'special'); + } else { + str = ctx.stylize('[Getter]', 'special'); + } + } else { + if (desc.set) { + str = ctx.stylize('[Setter]', 'special'); + } + } + if (!hasOwnProperty(visibleKeys, key)) { + name = '[' + key + ']'; + } + if (!str) { + if (ctx.seen.indexOf(desc.value) < 0) { + if (isNull(recurseTimes)) { + str = formatValue(ctx, desc.value, null); + } else { + str = formatValue(ctx, desc.value, recurseTimes - 1); + } + if (str.indexOf('\n') > -1) { + if (array) { + str = str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n').substr(2); + } else { + str = '\n' + str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n'); + } + } + } else { + str = ctx.stylize('[Circular]', 'special'); + } + } + if (isUndefined(name)) { + if (array && key.match(/^\d+$/)) { + return str; + } + name = JSON.stringify('' + key); + if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { + name = name.substr(1, name.length - 2); + name = ctx.stylize(name, 'name'); + } else { + name = name.replace(/'/g, "\\'") + .replace(/\\"/g, '"') + .replace(/(^"|"$)/g, "'"); + name = ctx.stylize(name, 'string'); + } + } - // Increase `delta` enough to advance the decoder's state to , - // but guard against overflow - handledCPCountPlusOne = handledCPCount + 1; - if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { - error('overflow'); - } + return name + ': ' + str; +} - delta += (m - n) * handledCPCountPlusOne; - n = m; - for (j = 0; j < inputLength; ++j) { - currentValue = input[j]; +function reduceToSingleString(output, base, braces) { + var numLinesEst = 0; + var length = output.reduce(function(prev, cur) { + numLinesEst++; + if (cur.indexOf('\n') >= 0) numLinesEst++; + return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; + }, 0); - if (currentValue < n && ++delta > maxInt) { - error('overflow'); - } + if (length > 60) { + return braces[0] + + (base === '' ? '' : base + '\n ') + + ' ' + + output.join(',\n ') + + ' ' + + braces[1]; + } - if (currentValue == n) { - // Represent delta as a generalized variable-length integer - for (q = delta, k = base; /* no condition */; k += base) { - t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); - if (q < t) { - break; - } - qMinusT = q - t; - baseMinusT = base - t; - output.push( - stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) - ); - q = floor(qMinusT / baseMinusT); - } + return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; +} - output.push(stringFromCharCode(digitToBasic(q, 0))); - bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); - delta = 0; - ++handledCPCount; - } - } - ++delta; - ++n; +// NOTE: These type checking functions intentionally don't use `instanceof` +// because it is fragile and can be easily faked with `Object.create()`. +function isArray(ar) { + return Array.isArray(ar); +} +exports.isArray = isArray; - } - return output.join(''); - } +function isBoolean(arg) { + return typeof arg === 'boolean'; +} +exports.isBoolean = isBoolean; - /** - * Converts a Punycode string representing a domain name or an email address - * to Unicode. Only the Punycoded parts of the input will be converted, i.e. - * it doesn't matter if you call it on a string that has already been - * converted to Unicode. - * @memberOf punycode - * @param {String} input The Punycoded domain name or email address to - * convert to Unicode. - * @returns {String} The Unicode representation of the given Punycode - * string. - */ - function toUnicode(input) { - return mapDomain(input, function(string) { - return regexPunycode.test(string) - ? decode(string.slice(4).toLowerCase()) - : string; - }); - } +function isNull(arg) { + return arg === null; +} +exports.isNull = isNull; - /** - * Converts a Unicode string representing a domain name or an email address to - * Punycode. Only the non-ASCII parts of the domain name will be converted, - * i.e. it doesn't matter if you call it with a domain that's already in - * ASCII. - * @memberOf punycode - * @param {String} input The domain name or email address to convert, as a - * Unicode string. - * @returns {String} The Punycode representation of the given domain name or - * email address. - */ - function toASCII(input) { - return mapDomain(input, function(string) { - return regexNonASCII.test(string) - ? 'xn--' + encode(string) - : string; - }); - } +function isNullOrUndefined(arg) { + return arg == null; +} +exports.isNullOrUndefined = isNullOrUndefined; - /*--------------------------------------------------------------------------*/ +function isNumber(arg) { + return typeof arg === 'number'; +} +exports.isNumber = isNumber; - /** Define the public API */ - punycode = { - /** - * A string representing the current Punycode.js version number. - * @memberOf punycode - * @type String - */ - 'version': '1.3.2', - /** - * An object of methods to convert from JavaScript's internal character - * representation (UCS-2) to Unicode code points, and back. - * @see - * @memberOf punycode - * @type Object - */ - 'ucs2': { - 'decode': ucs2decode, - 'encode': ucs2encode - }, - 'decode': decode, - 'encode': encode, - 'toASCII': toASCII, - 'toUnicode': toUnicode - }; +function isString(arg) { + return typeof arg === 'string'; +} +exports.isString = isString; - /** Expose `punycode` */ - // Some AMD build optimizers, like r.js, check for specific condition patterns - // like the following: - if ( - true - ) { - !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { - return punycode; - }).call(exports, __webpack_require__, exports, module), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else {} +function isSymbol(arg) { + return typeof arg === 'symbol'; +} +exports.isSymbol = isSymbol; -}(this)); +function isUndefined(arg) { + return arg === void 0; +} +exports.isUndefined = isUndefined; +function isRegExp(re) { + return isObject(re) && objectToString(re) === '[object RegExp]'; +} +exports.isRegExp = isRegExp; -/***/ }), +function isObject(arg) { + return typeof arg === 'object' && arg !== null; +} +exports.isObject = isObject; -/***/ "./node_modules/url/url.js": -/*!*********************************!*\ - !*** ./node_modules/url/url.js ***! - \*********************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { +function isDate(d) { + return isObject(d) && objectToString(d) === '[object Date]'; +} +exports.isDate = isDate; -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. +function isError(e) { + return isObject(e) && + (objectToString(e) === '[object Error]' || e instanceof Error); +} +exports.isError = isError; +function isFunction(arg) { + return typeof arg === 'function'; +} +exports.isFunction = isFunction; +function isPrimitive(arg) { + return arg === null || + typeof arg === 'boolean' || + typeof arg === 'number' || + typeof arg === 'string' || + typeof arg === 'symbol' || // ES6 symbol + typeof arg === 'undefined'; +} +exports.isPrimitive = isPrimitive; -var punycode = __webpack_require__(/*! punycode */ "./node_modules/url/node_modules/punycode/punycode.js"); -var util = __webpack_require__(/*! ./util */ "./node_modules/url/util.js"); +exports.isBuffer = __webpack_require__(/*! ./support/isBuffer */ "./node_modules/util/support/isBufferBrowser.js"); -exports.parse = urlParse; -exports.resolve = urlResolve; -exports.resolveObject = urlResolveObject; -exports.format = urlFormat; +function objectToString(o) { + return Object.prototype.toString.call(o); +} -exports.Url = Url; -function Url() { - this.protocol = null; - this.slashes = null; - this.auth = null; - this.host = null; - this.port = null; - this.hostname = null; - this.hash = null; - this.search = null; - this.query = null; - this.pathname = null; - this.path = null; - this.href = null; +function pad(n) { + return n < 10 ? '0' + n.toString(10) : n.toString(10); } -// Reference: RFC 3986, RFC 1808, RFC 2396 -// define these here so at least they only have to be -// compiled once on the first module load. -var protocolPattern = /^([a-z0-9.+-]+:)/i, - portPattern = /:[0-9]*$/, +var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec']; - // Special case for a simple path URL - simplePathPattern = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/, +// 26 Feb 16:19:34 +function timestamp() { + var d = new Date(); + var time = [pad(d.getHours()), + pad(d.getMinutes()), + pad(d.getSeconds())].join(':'); + return [d.getDate(), months[d.getMonth()], time].join(' '); +} - // RFC 2396: characters reserved for delimiting URLs. - // We actually just auto-escape these. - delims = ['<', '>', '"', '`', ' ', '\r', '\n', '\t'], - // RFC 2396: characters not allowed for various reasons. - unwise = ['{', '}', '|', '\\', '^', '`'].concat(delims), +// log is just a thin wrapper to console.log that prepends a timestamp +exports.log = function() { + console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); +}; - // Allowed by RFCs, but cause of XSS attacks. Always escape these. - autoEscape = ['\''].concat(unwise), - // Characters that are never ever allowed in a hostname. - // Note that any invalid chars are also handled, but these - // are the ones that are *expected* to be seen, so we fast-path - // them. - nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape), - hostEndingChars = ['/', '?', '#'], - hostnameMaxLen = 255, - hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/, - hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, - // protocols that can allow "unsafe" and "unwise" chars. - unsafeProtocol = { - 'javascript': true, - 'javascript:': true - }, - // protocols that never have a hostname. - hostlessProtocol = { - 'javascript': true, - 'javascript:': true - }, - // protocols that always contain a // bit. - slashedProtocol = { - 'http': true, - 'https': true, - 'ftp': true, - 'gopher': true, - 'file': true, - 'http:': true, - 'https:': true, - 'ftp:': true, - 'gopher:': true, - 'file:': true - }, - querystring = __webpack_require__(/*! querystring */ "./node_modules/querystring/index.js"); -function urlParse(url, parseQueryString, slashesDenoteHost) { - if (url && util.isObject(url) && url instanceof Url) return url; +/** + * Inherit the prototype methods from one constructor into another. + * + * The Function.prototype.inherits from lang.js rewritten as a standalone + * function (not on Function.prototype). NOTE: If this file is to be loaded + * during bootstrapping this function needs to be rewritten using some native + * functions as prototype setup using normal JavaScript does not work as + * expected during bootstrapping (see mirror.js in r114903). + * + * @param {function} ctor Constructor function which needs to inherit the + * prototype. + * @param {function} superCtor Constructor function to inherit prototype from. + */ +exports.inherits = __webpack_require__(/*! inherits */ "./node_modules/util/node_modules/inherits/inherits_browser.js"); - var u = new Url; - u.parse(url, parseQueryString, slashesDenoteHost); - return u; -} +exports._extend = function(origin, add) { + // Don't do anything if add isn't an object + if (!add || !isObject(add)) return origin; -Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) { - if (!util.isString(url)) { - throw new TypeError("Parameter 'url' must be a string, not " + typeof url); + var keys = Object.keys(add); + var i = keys.length; + while (i--) { + origin[keys[i]] = add[keys[i]]; } + return origin; +}; - // Copy chrome, IE, opera backslash-handling behavior. - // Back slashes before the query string get converted to forward slashes - // See: https://code.google.com/p/chromium/issues/detail?id=25916 - var queryIndex = url.indexOf('?'), - splitter = - (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#', - uSplit = url.split(splitter), - slashRegex = /\\/g; - uSplit[0] = uSplit[0].replace(slashRegex, '/'); - url = uSplit.join(splitter); +function hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); +} - var rest = url; - // trim before proceeding. - // This is to support parse stuff like " http://foo.com \n" - rest = rest.trim(); +/***/ }), - if (!slashesDenoteHost && url.split('#').length === 1) { - // Try fast path regexp - var simplePath = simplePathPattern.exec(rest); - if (simplePath) { - this.path = rest; - this.href = rest; - this.pathname = simplePath[1]; - if (simplePath[2]) { - this.search = simplePath[2]; - if (parseQueryString) { - this.query = querystring.parse(this.search.substr(1)); - } else { - this.query = this.search.substr(1); - } - } else if (parseQueryString) { - this.search = ''; - this.query = {}; - } - return this; - } - } +/***/ "./node_modules/which-typed-array/index.js": +/*!*************************************************!*\ + !*** ./node_modules/which-typed-array/index.js ***! + \*************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - var proto = protocolPattern.exec(rest); - if (proto) { - proto = proto[0]; - var lowerProto = proto.toLowerCase(); - this.protocol = lowerProto; - rest = rest.substr(proto.length); - } +"use strict"; - // figure out if it's got a host - // user@server is *always* interpreted as a hostname, and url - // resolution will treat //foo/bar as host=foo,path=bar because that's - // how the browser resolves relative URLs. - if (slashesDenoteHost || proto || rest.match(/^\/\/[^@\/]+@[^@\/]+/)) { - var slashes = rest.substr(0, 2) === '//'; - if (slashes && !(proto && hostlessProtocol[proto])) { - rest = rest.substr(2); - this.slashes = true; - } - } - if (!hostlessProtocol[proto] && - (slashes || (proto && !slashedProtocol[proto]))) { +var forEach = __webpack_require__(/*! for-each */ "./node_modules/for-each/index.js"); +var availableTypedArrays = __webpack_require__(/*! available-typed-arrays */ "./node_modules/available-typed-arrays/index.js"); +var callBound = __webpack_require__(/*! call-bind/callBound */ "./node_modules/call-bind/callBound.js"); +var gOPD = __webpack_require__(/*! gopd */ "./node_modules/gopd/index.js"); - // there's a hostname. - // the first instance of /, ?, ;, or # ends the host. - // - // If there is an @ in the hostname, then non-host chars *are* allowed - // to the left of the last @ sign, unless some host-ending character - // comes *before* the @-sign. - // URLs are obnoxious. - // - // ex: - // http://a@b@c/ => user:a@b host:c - // http://a@b?@c => user:a host:c path:/?@c +var $toString = callBound('Object.prototype.toString'); +var hasToStringTag = __webpack_require__(/*! has-tostringtag/shams */ "./node_modules/has-tostringtag/shams.js")(); - // v0.12 TODO(isaacs): This is not quite how Chrome does things. - // Review our test case against browsers more comprehensively. +var g = typeof globalThis === 'undefined' ? __webpack_require__.g : globalThis; +var typedArrays = availableTypedArrays(); - // find the first instance of any hostEndingChars - var hostEnd = -1; - for (var i = 0; i < hostEndingChars.length; i++) { - var hec = rest.indexOf(hostEndingChars[i]); - if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) - hostEnd = hec; - } +var $slice = callBound('String.prototype.slice'); +var toStrTags = {}; +var getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof'); +if (hasToStringTag && gOPD && getPrototypeOf) { + forEach(typedArrays, function (typedArray) { + if (typeof g[typedArray] === 'function') { + var arr = new g[typedArray](); + if (Symbol.toStringTag in arr) { + var proto = getPrototypeOf(arr); + var descriptor = gOPD(proto, Symbol.toStringTag); + if (!descriptor) { + var superProto = getPrototypeOf(proto); + descriptor = gOPD(superProto, Symbol.toStringTag); + } + toStrTags[typedArray] = descriptor.get; + } + } + }); +} - // at this point, either we have an explicit point where the - // auth portion cannot go past, or the last @ char is the decider. - var auth, atSign; - if (hostEnd === -1) { - // atSign can be anywhere. - atSign = rest.lastIndexOf('@'); - } else { - // atSign must be in auth portion. - // http://a@b/c@d => host:b auth:a path:/c@d - atSign = rest.lastIndexOf('@', hostEnd); - } +var tryTypedArrays = function tryAllTypedArrays(value) { + var foundName = false; + forEach(toStrTags, function (getter, typedArray) { + if (!foundName) { + try { + var name = getter.call(value); + if (name === typedArray) { + foundName = name; + } + } catch (e) {} + } + }); + return foundName; +}; - // Now we have a portion which is definitely the auth. - // Pull that off. - if (atSign !== -1) { - auth = rest.slice(0, atSign); - rest = rest.slice(atSign + 1); - this.auth = decodeURIComponent(auth); - } +var isTypedArray = __webpack_require__(/*! is-typed-array */ "./node_modules/is-typed-array/index.js"); - // the host is the remaining to the left of the first non-host char - hostEnd = -1; - for (var i = 0; i < nonHostChars.length; i++) { - var hec = rest.indexOf(nonHostChars[i]); - if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) - hostEnd = hec; - } - // if we still have not hit it, then the entire thing is a host. - if (hostEnd === -1) - hostEnd = rest.length; +module.exports = function whichTypedArray(value) { + if (!isTypedArray(value)) { return false; } + if (!hasToStringTag || !(Symbol.toStringTag in value)) { return $slice($toString(value), 8, -1); } + return tryTypedArrays(value); +}; - this.host = rest.slice(0, hostEnd); - rest = rest.slice(hostEnd); - // pull out port. - this.parseHost(); +/***/ }), - // we've indicated that there is a hostname, - // so even if it's empty, it has to be present. - this.hostname = this.hostname || ''; +/***/ "./node_modules/xstream/index.js": +/*!***************************************!*\ + !*** ./node_modules/xstream/index.js ***! + \***************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - // if hostname begins with [ and ends with ] - // assume that it's an IPv6 address. - var ipv6Hostname = this.hostname[0] === '[' && - this.hostname[this.hostname.length - 1] === ']'; +"use strict"; - // validate a little. - if (!ipv6Hostname) { - var hostparts = this.hostname.split(/\./); - for (var i = 0, l = hostparts.length; i < l; i++) { - var part = hostparts[i]; - if (!part) continue; - if (!part.match(hostnamePartPattern)) { - var newpart = ''; - for (var j = 0, k = part.length; j < k; j++) { - if (part.charCodeAt(j) > 127) { - // we replace non-ASCII char with a temporary placeholder - // we need this to make sure size of hostname is not - // broken by replacing non-ASCII by nothing - newpart += 'x'; - } else { - newpart += part[j]; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.NO_IL = exports.NO = exports.MemoryStream = exports.Stream = void 0; +var ponyfill_1 = __webpack_require__(/*! symbol-observable/ponyfill */ "./node_modules/symbol-observable/ponyfill.js"); +var globalthis_1 = __webpack_require__(/*! globalthis */ "./node_modules/globalthis/index.js"); +var $$observable = ponyfill_1.default(globalthis_1.getPolyfill()); +var NO = {}; +exports.NO = NO; +function noop() { } +function cp(a) { + var l = a.length; + var b = Array(l); + for (var i = 0; i < l; ++i) + b[i] = a[i]; + return b; +} +function and(f1, f2) { + return function andFn(t) { + return f1(t) && f2(t); + }; +} +function _try(c, t, u) { + try { + return c.f(t); + } + catch (e) { + u._e(e); + return NO; + } +} +var NO_IL = { + _n: noop, + _e: noop, + _c: noop, +}; +exports.NO_IL = NO_IL; +// mutates the input +function internalizeProducer(producer) { + producer._start = function _start(il) { + il.next = il._n; + il.error = il._e; + il.complete = il._c; + this.start(il); + }; + producer._stop = producer.stop; +} +var StreamSub = /** @class */ (function () { + function StreamSub(_stream, _listener) { + this._stream = _stream; + this._listener = _listener; + } + StreamSub.prototype.unsubscribe = function () { + this._stream._remove(this._listener); + }; + return StreamSub; +}()); +var Observer = /** @class */ (function () { + function Observer(_listener) { + this._listener = _listener; + } + Observer.prototype.next = function (value) { + this._listener._n(value); + }; + Observer.prototype.error = function (err) { + this._listener._e(err); + }; + Observer.prototype.complete = function () { + this._listener._c(); + }; + return Observer; +}()); +var FromObservable = /** @class */ (function () { + function FromObservable(observable) { + this.type = 'fromObservable'; + this.ins = observable; + this.active = false; + } + FromObservable.prototype._start = function (out) { + this.out = out; + this.active = true; + this._sub = this.ins.subscribe(new Observer(out)); + if (!this.active) + this._sub.unsubscribe(); + }; + FromObservable.prototype._stop = function () { + if (this._sub) + this._sub.unsubscribe(); + this.active = false; + }; + return FromObservable; +}()); +var Merge = /** @class */ (function () { + function Merge(insArr) { + this.type = 'merge'; + this.insArr = insArr; + this.out = NO; + this.ac = 0; + } + Merge.prototype._start = function (out) { + this.out = out; + var s = this.insArr; + var L = s.length; + this.ac = L; + for (var i = 0; i < L; i++) + s[i]._add(this); + }; + Merge.prototype._stop = function () { + var s = this.insArr; + var L = s.length; + for (var i = 0; i < L; i++) + s[i]._remove(this); + this.out = NO; + }; + Merge.prototype._n = function (t) { + var u = this.out; + if (u === NO) + return; + u._n(t); + }; + Merge.prototype._e = function (err) { + var u = this.out; + if (u === NO) + return; + u._e(err); + }; + Merge.prototype._c = function () { + if (--this.ac <= 0) { + var u = this.out; + if (u === NO) + return; + u._c(); + } + }; + return Merge; +}()); +var CombineListener = /** @class */ (function () { + function CombineListener(i, out, p) { + this.i = i; + this.out = out; + this.p = p; + p.ils.push(this); + } + CombineListener.prototype._n = function (t) { + var p = this.p, out = this.out; + if (out === NO) + return; + if (p.up(t, this.i)) { + var b = cp(p.vals); + out._n(b); + } + }; + CombineListener.prototype._e = function (err) { + var out = this.out; + if (out === NO) + return; + out._e(err); + }; + CombineListener.prototype._c = function () { + var p = this.p; + if (p.out === NO) + return; + if (--p.Nc === 0) + p.out._c(); + }; + return CombineListener; +}()); +var Combine = /** @class */ (function () { + function Combine(insArr) { + this.type = 'combine'; + this.insArr = insArr; + this.out = NO; + this.ils = []; + this.Nc = this.Nn = 0; + this.vals = []; + } + Combine.prototype.up = function (t, i) { + var v = this.vals[i]; + var Nn = !this.Nn ? 0 : v === NO ? --this.Nn : this.Nn; + this.vals[i] = t; + return Nn === 0; + }; + Combine.prototype._start = function (out) { + this.out = out; + var s = this.insArr; + var n = this.Nc = this.Nn = s.length; + var vals = this.vals = new Array(n); + if (n === 0) { + out._n([]); + out._c(); + } + else { + for (var i = 0; i < n; i++) { + vals[i] = NO; + s[i]._add(new CombineListener(i, out, this)); } - } - // we test again with ASCII char only - if (!newpart.match(hostnamePartPattern)) { - var validParts = hostparts.slice(0, i); - var notHost = hostparts.slice(i + 1); - var bit = part.match(hostnamePartStart); - if (bit) { - validParts.push(bit[1]); - notHost.unshift(bit[2]); + } + }; + Combine.prototype._stop = function () { + var s = this.insArr; + var n = s.length; + var ils = this.ils; + for (var i = 0; i < n; i++) + s[i]._remove(ils[i]); + this.out = NO; + this.ils = []; + this.vals = []; + }; + return Combine; +}()); +var FromArray = /** @class */ (function () { + function FromArray(a) { + this.type = 'fromArray'; + this.a = a; + } + FromArray.prototype._start = function (out) { + var a = this.a; + for (var i = 0, n = a.length; i < n; i++) + out._n(a[i]); + out._c(); + }; + FromArray.prototype._stop = function () { + }; + return FromArray; +}()); +var FromPromise = /** @class */ (function () { + function FromPromise(p) { + this.type = 'fromPromise'; + this.on = false; + this.p = p; + } + FromPromise.prototype._start = function (out) { + var prod = this; + this.on = true; + this.p.then(function (v) { + if (prod.on) { + out._n(v); + out._c(); } - if (notHost.length) { - rest = '/' + notHost.join('.') + rest; + }, function (e) { + out._e(e); + }).then(noop, function (err) { + setTimeout(function () { throw err; }); + }); + }; + FromPromise.prototype._stop = function () { + this.on = false; + }; + return FromPromise; +}()); +var Periodic = /** @class */ (function () { + function Periodic(period) { + this.type = 'periodic'; + this.period = period; + this.intervalID = -1; + this.i = 0; + } + Periodic.prototype._start = function (out) { + var self = this; + function intervalHandler() { out._n(self.i++); } + this.intervalID = setInterval(intervalHandler, this.period); + }; + Periodic.prototype._stop = function () { + if (this.intervalID !== -1) + clearInterval(this.intervalID); + this.intervalID = -1; + this.i = 0; + }; + return Periodic; +}()); +var Debug = /** @class */ (function () { + function Debug(ins, arg) { + this.type = 'debug'; + this.ins = ins; + this.out = NO; + this.s = noop; + this.l = ''; + if (typeof arg === 'string') + this.l = arg; + else if (typeof arg === 'function') + this.s = arg; + } + Debug.prototype._start = function (out) { + this.out = out; + this.ins._add(this); + }; + Debug.prototype._stop = function () { + this.ins._remove(this); + this.out = NO; + }; + Debug.prototype._n = function (t) { + var u = this.out; + if (u === NO) + return; + var s = this.s, l = this.l; + if (s !== noop) { + try { + s(t); + } + catch (e) { + u._e(e); } - this.hostname = validParts.join('.'); - break; - } } - } + else if (l) + console.log(l + ':', t); + else + console.log(t); + u._n(t); + }; + Debug.prototype._e = function (err) { + var u = this.out; + if (u === NO) + return; + u._e(err); + }; + Debug.prototype._c = function () { + var u = this.out; + if (u === NO) + return; + u._c(); + }; + return Debug; +}()); +var Drop = /** @class */ (function () { + function Drop(max, ins) { + this.type = 'drop'; + this.ins = ins; + this.out = NO; + this.max = max; + this.dropped = 0; } - - if (this.hostname.length > hostnameMaxLen) { - this.hostname = ''; - } else { - // hostnames are always lower case. - this.hostname = this.hostname.toLowerCase(); + Drop.prototype._start = function (out) { + this.out = out; + this.dropped = 0; + this.ins._add(this); + }; + Drop.prototype._stop = function () { + this.ins._remove(this); + this.out = NO; + }; + Drop.prototype._n = function (t) { + var u = this.out; + if (u === NO) + return; + if (this.dropped++ >= this.max) + u._n(t); + }; + Drop.prototype._e = function (err) { + var u = this.out; + if (u === NO) + return; + u._e(err); + }; + Drop.prototype._c = function () { + var u = this.out; + if (u === NO) + return; + u._c(); + }; + return Drop; +}()); +var EndWhenListener = /** @class */ (function () { + function EndWhenListener(out, op) { + this.out = out; + this.op = op; } - - if (!ipv6Hostname) { - // IDNA Support: Returns a punycoded representation of "domain". - // It only converts parts of the domain name that - // have non-ASCII characters, i.e. it doesn't matter if - // you call it with a domain that already is ASCII-only. - this.hostname = punycode.toASCII(this.hostname); + EndWhenListener.prototype._n = function () { + this.op.end(); + }; + EndWhenListener.prototype._e = function (err) { + this.out._e(err); + }; + EndWhenListener.prototype._c = function () { + this.op.end(); + }; + return EndWhenListener; +}()); +var EndWhen = /** @class */ (function () { + function EndWhen(o, ins) { + this.type = 'endWhen'; + this.ins = ins; + this.out = NO; + this.o = o; + this.oil = NO_IL; } - - var p = this.port ? ':' + this.port : ''; - var h = this.hostname || ''; - this.host = h + p; - this.href += this.host; - - // strip [ and ] from the hostname - // the host field still retains them, though - if (ipv6Hostname) { - this.hostname = this.hostname.substr(1, this.hostname.length - 2); - if (rest[0] !== '/') { - rest = '/' + rest; - } + EndWhen.prototype._start = function (out) { + this.out = out; + this.o._add(this.oil = new EndWhenListener(out, this)); + this.ins._add(this); + }; + EndWhen.prototype._stop = function () { + this.ins._remove(this); + this.o._remove(this.oil); + this.out = NO; + this.oil = NO_IL; + }; + EndWhen.prototype.end = function () { + var u = this.out; + if (u === NO) + return; + u._c(); + }; + EndWhen.prototype._n = function (t) { + var u = this.out; + if (u === NO) + return; + u._n(t); + }; + EndWhen.prototype._e = function (err) { + var u = this.out; + if (u === NO) + return; + u._e(err); + }; + EndWhen.prototype._c = function () { + this.end(); + }; + return EndWhen; +}()); +var Filter = /** @class */ (function () { + function Filter(passes, ins) { + this.type = 'filter'; + this.ins = ins; + this.out = NO; + this.f = passes; + } + Filter.prototype._start = function (out) { + this.out = out; + this.ins._add(this); + }; + Filter.prototype._stop = function () { + this.ins._remove(this); + this.out = NO; + }; + Filter.prototype._n = function (t) { + var u = this.out; + if (u === NO) + return; + var r = _try(this, t, u); + if (r === NO || !r) + return; + u._n(t); + }; + Filter.prototype._e = function (err) { + var u = this.out; + if (u === NO) + return; + u._e(err); + }; + Filter.prototype._c = function () { + var u = this.out; + if (u === NO) + return; + u._c(); + }; + return Filter; +}()); +var FlattenListener = /** @class */ (function () { + function FlattenListener(out, op) { + this.out = out; + this.op = op; + } + FlattenListener.prototype._n = function (t) { + this.out._n(t); + }; + FlattenListener.prototype._e = function (err) { + this.out._e(err); + }; + FlattenListener.prototype._c = function () { + this.op.inner = NO; + this.op.less(); + }; + return FlattenListener; +}()); +var Flatten = /** @class */ (function () { + function Flatten(ins) { + this.type = 'flatten'; + this.ins = ins; + this.out = NO; + this.open = true; + this.inner = NO; + this.il = NO_IL; + } + Flatten.prototype._start = function (out) { + this.out = out; + this.open = true; + this.inner = NO; + this.il = NO_IL; + this.ins._add(this); + }; + Flatten.prototype._stop = function () { + this.ins._remove(this); + if (this.inner !== NO) + this.inner._remove(this.il); + this.out = NO; + this.open = true; + this.inner = NO; + this.il = NO_IL; + }; + Flatten.prototype.less = function () { + var u = this.out; + if (u === NO) + return; + if (!this.open && this.inner === NO) + u._c(); + }; + Flatten.prototype._n = function (s) { + var u = this.out; + if (u === NO) + return; + var _a = this, inner = _a.inner, il = _a.il; + if (inner !== NO && il !== NO_IL) + inner._remove(il); + (this.inner = s)._add(this.il = new FlattenListener(u, this)); + }; + Flatten.prototype._e = function (err) { + var u = this.out; + if (u === NO) + return; + u._e(err); + }; + Flatten.prototype._c = function () { + this.open = false; + this.less(); + }; + return Flatten; +}()); +var Fold = /** @class */ (function () { + function Fold(f, seed, ins) { + var _this = this; + this.type = 'fold'; + this.ins = ins; + this.out = NO; + this.f = function (t) { return f(_this.acc, t); }; + this.acc = this.seed = seed; + } + Fold.prototype._start = function (out) { + this.out = out; + this.acc = this.seed; + out._n(this.acc); + this.ins._add(this); + }; + Fold.prototype._stop = function () { + this.ins._remove(this); + this.out = NO; + this.acc = this.seed; + }; + Fold.prototype._n = function (t) { + var u = this.out; + if (u === NO) + return; + var r = _try(this, t, u); + if (r === NO) + return; + u._n(this.acc = r); + }; + Fold.prototype._e = function (err) { + var u = this.out; + if (u === NO) + return; + u._e(err); + }; + Fold.prototype._c = function () { + var u = this.out; + if (u === NO) + return; + u._c(); + }; + return Fold; +}()); +var Last = /** @class */ (function () { + function Last(ins) { + this.type = 'last'; + this.ins = ins; + this.out = NO; + this.has = false; + this.val = NO; + } + Last.prototype._start = function (out) { + this.out = out; + this.has = false; + this.ins._add(this); + }; + Last.prototype._stop = function () { + this.ins._remove(this); + this.out = NO; + this.val = NO; + }; + Last.prototype._n = function (t) { + this.has = true; + this.val = t; + }; + Last.prototype._e = function (err) { + var u = this.out; + if (u === NO) + return; + u._e(err); + }; + Last.prototype._c = function () { + var u = this.out; + if (u === NO) + return; + if (this.has) { + u._n(this.val); + u._c(); + } + else + u._e(new Error('last() failed because input stream completed')); + }; + return Last; +}()); +var MapOp = /** @class */ (function () { + function MapOp(project, ins) { + this.type = 'map'; + this.ins = ins; + this.out = NO; + this.f = project; + } + MapOp.prototype._start = function (out) { + this.out = out; + this.ins._add(this); + }; + MapOp.prototype._stop = function () { + this.ins._remove(this); + this.out = NO; + }; + MapOp.prototype._n = function (t) { + var u = this.out; + if (u === NO) + return; + var r = _try(this, t, u); + if (r === NO) + return; + u._n(r); + }; + MapOp.prototype._e = function (err) { + var u = this.out; + if (u === NO) + return; + u._e(err); + }; + MapOp.prototype._c = function () { + var u = this.out; + if (u === NO) + return; + u._c(); + }; + return MapOp; +}()); +var Remember = /** @class */ (function () { + function Remember(ins) { + this.type = 'remember'; + this.ins = ins; + this.out = NO; + } + Remember.prototype._start = function (out) { + this.out = out; + this.ins._add(out); + }; + Remember.prototype._stop = function () { + this.ins._remove(this.out); + this.out = NO; + }; + return Remember; +}()); +var ReplaceError = /** @class */ (function () { + function ReplaceError(replacer, ins) { + this.type = 'replaceError'; + this.ins = ins; + this.out = NO; + this.f = replacer; + } + ReplaceError.prototype._start = function (out) { + this.out = out; + this.ins._add(this); + }; + ReplaceError.prototype._stop = function () { + this.ins._remove(this); + this.out = NO; + }; + ReplaceError.prototype._n = function (t) { + var u = this.out; + if (u === NO) + return; + u._n(t); + }; + ReplaceError.prototype._e = function (err) { + var u = this.out; + if (u === NO) + return; + try { + this.ins._remove(this); + (this.ins = this.f(err))._add(this); + } + catch (e) { + u._e(e); + } + }; + ReplaceError.prototype._c = function () { + var u = this.out; + if (u === NO) + return; + u._c(); + }; + return ReplaceError; +}()); +var StartWith = /** @class */ (function () { + function StartWith(ins, val) { + this.type = 'startWith'; + this.ins = ins; + this.out = NO; + this.val = val; } - } - - // now rest is set to the post-host stuff. - // chop off any delim chars. - if (!unsafeProtocol[lowerProto]) { - - // First, make 100% sure that any "autoEscape" chars get - // escaped, even if encodeURIComponent doesn't think they - // need to be. - for (var i = 0, l = autoEscape.length; i < l; i++) { - var ae = autoEscape[i]; - if (rest.indexOf(ae) === -1) - continue; - var esc = encodeURIComponent(ae); - if (esc === ae) { - esc = escape(ae); - } - rest = rest.split(ae).join(esc); + StartWith.prototype._start = function (out) { + this.out = out; + this.out._n(this.val); + this.ins._add(out); + }; + StartWith.prototype._stop = function () { + this.ins._remove(this.out); + this.out = NO; + }; + return StartWith; +}()); +var Take = /** @class */ (function () { + function Take(max, ins) { + this.type = 'take'; + this.ins = ins; + this.out = NO; + this.max = max; + this.taken = 0; } - } - - - // chop off from the tail first. - var hash = rest.indexOf('#'); - if (hash !== -1) { - // got a fragment string. - this.hash = rest.substr(hash); - rest = rest.slice(0, hash); - } - var qm = rest.indexOf('?'); - if (qm !== -1) { - this.search = rest.substr(qm); - this.query = rest.substr(qm + 1); - if (parseQueryString) { - this.query = querystring.parse(this.query); + Take.prototype._start = function (out) { + this.out = out; + this.taken = 0; + if (this.max <= 0) + out._c(); + else + this.ins._add(this); + }; + Take.prototype._stop = function () { + this.ins._remove(this); + this.out = NO; + }; + Take.prototype._n = function (t) { + var u = this.out; + if (u === NO) + return; + var m = ++this.taken; + if (m < this.max) + u._n(t); + else if (m === this.max) { + u._n(t); + u._c(); + } + }; + Take.prototype._e = function (err) { + var u = this.out; + if (u === NO) + return; + u._e(err); + }; + Take.prototype._c = function () { + var u = this.out; + if (u === NO) + return; + u._c(); + }; + return Take; +}()); +var Stream = /** @class */ (function () { + function Stream(producer) { + this._prod = producer || NO; + this._ils = []; + this._stopID = NO; + this._dl = NO; + this._d = false; + this._target = null; + this._err = NO; } - rest = rest.slice(0, qm); - } else if (parseQueryString) { - // no query string, but parseQueryString still requested - this.search = ''; - this.query = {}; - } - if (rest) this.pathname = rest; - if (slashedProtocol[lowerProto] && - this.hostname && !this.pathname) { - this.pathname = '/'; - } - - //to support http.request - if (this.pathname || this.search) { - var p = this.pathname || ''; - var s = this.search || ''; - this.path = p + s; - } - - // finally, reconstruct the href based on what has been validated. - this.href = this.format(); - return this; -}; - -// format a parsed object into a url string -function urlFormat(obj) { - // ensure it's an object, and not a string url. - // If it's an obj, this is a no-op. - // this way, you can call url_format() on strings - // to clean up potentially wonky urls. - if (util.isString(obj)) obj = urlParse(obj); - if (!(obj instanceof Url)) return Url.prototype.format.call(obj); - return obj.format(); -} - -Url.prototype.format = function() { - var auth = this.auth || ''; - if (auth) { - auth = encodeURIComponent(auth); - auth = auth.replace(/%3A/i, ':'); - auth += '@'; - } - - var protocol = this.protocol || '', - pathname = this.pathname || '', - hash = this.hash || '', - host = false, - query = ''; - - if (this.host) { - host = auth + this.host; - } else if (this.hostname) { - host = auth + (this.hostname.indexOf(':') === -1 ? - this.hostname : - '[' + this.hostname + ']'); - if (this.port) { - host += ':' + this.port; + Stream.prototype._n = function (t) { + var a = this._ils; + var L = a.length; + if (this._d) + this._dl._n(t); + if (L == 1) + a[0]._n(t); + else if (L == 0) + return; + else { + var b = cp(a); + for (var i = 0; i < L; i++) + b[i]._n(t); + } + }; + Stream.prototype._e = function (err) { + if (this._err !== NO) + return; + this._err = err; + var a = this._ils; + var L = a.length; + this._x(); + if (this._d) + this._dl._e(err); + if (L == 1) + a[0]._e(err); + else if (L == 0) + return; + else { + var b = cp(a); + for (var i = 0; i < L; i++) + b[i]._e(err); + } + if (!this._d && L == 0) + throw this._err; + }; + Stream.prototype._c = function () { + var a = this._ils; + var L = a.length; + this._x(); + if (this._d) + this._dl._c(); + if (L == 1) + a[0]._c(); + else if (L == 0) + return; + else { + var b = cp(a); + for (var i = 0; i < L; i++) + b[i]._c(); + } + }; + Stream.prototype._x = function () { + if (this._ils.length === 0) + return; + if (this._prod !== NO) + this._prod._stop(); + this._err = NO; + this._ils = []; + }; + Stream.prototype._stopNow = function () { + // WARNING: code that calls this method should + // first check if this._prod is valid (not `NO`) + this._prod._stop(); + this._err = NO; + this._stopID = NO; + }; + Stream.prototype._add = function (il) { + var ta = this._target; + if (ta) + return ta._add(il); + var a = this._ils; + a.push(il); + if (a.length > 1) + return; + if (this._stopID !== NO) { + clearTimeout(this._stopID); + this._stopID = NO; + } + else { + var p = this._prod; + if (p !== NO) + p._start(this); + } + }; + Stream.prototype._remove = function (il) { + var _this = this; + var ta = this._target; + if (ta) + return ta._remove(il); + var a = this._ils; + var i = a.indexOf(il); + if (i > -1) { + a.splice(i, 1); + if (this._prod !== NO && a.length <= 0) { + this._err = NO; + this._stopID = setTimeout(function () { return _this._stopNow(); }); + } + else if (a.length === 1) { + this._pruneCycles(); + } + } + }; + // If all paths stemming from `this` stream eventually end at `this` + // stream, then we remove the single listener of `this` stream, to + // force it to end its execution and dispose resources. This method + // assumes as a precondition that this._ils has just one listener. + Stream.prototype._pruneCycles = function () { + if (this._hasNoSinks(this, [])) + this._remove(this._ils[0]); + }; + // Checks whether *there is no* path starting from `x` that leads to an end + // listener (sink) in the stream graph, following edges A->B where B is a + // listener of A. This means these paths constitute a cycle somehow. Is given + // a trace of all visited nodes so far. + Stream.prototype._hasNoSinks = function (x, trace) { + if (trace.indexOf(x) !== -1) + return true; + else if (x.out === this) + return true; + else if (x.out && x.out !== NO) + return this._hasNoSinks(x.out, trace.concat(x)); + else if (x._ils) { + for (var i = 0, N = x._ils.length; i < N; i++) + if (!this._hasNoSinks(x._ils[i], trace.concat(x))) + return false; + return true; + } + else + return false; + }; + Stream.prototype.ctor = function () { + return this instanceof MemoryStream ? MemoryStream : Stream; + }; + /** + * Adds a Listener to the Stream. + * + * @param {Listener} listener + */ + Stream.prototype.addListener = function (listener) { + listener._n = listener.next || noop; + listener._e = listener.error || noop; + listener._c = listener.complete || noop; + this._add(listener); + }; + /** + * Removes a Listener from the Stream, assuming the Listener was added to it. + * + * @param {Listener} listener + */ + Stream.prototype.removeListener = function (listener) { + this._remove(listener); + }; + /** + * Adds a Listener to the Stream returning a Subscription to remove that + * listener. + * + * @param {Listener} listener + * @returns {Subscription} + */ + Stream.prototype.subscribe = function (listener) { + this.addListener(listener); + return new StreamSub(this, listener); + }; + /** + * Add interop between most.js and RxJS 5 + * + * @returns {Stream} + */ + Stream.prototype[$$observable] = function () { + return this; + }; + /** + * Creates a new Stream given a Producer. + * + * @factory true + * @param {Producer} producer An optional Producer that dictates how to + * start, generate events, and stop the Stream. + * @return {Stream} + */ + Stream.create = function (producer) { + if (producer) { + if (typeof producer.start !== 'function' + || typeof producer.stop !== 'function') + throw new Error('producer requires both start and stop functions'); + internalizeProducer(producer); // mutates the input + } + return new Stream(producer); + }; + /** + * Creates a new MemoryStream given a Producer. + * + * @factory true + * @param {Producer} producer An optional Producer that dictates how to + * start, generate events, and stop the Stream. + * @return {MemoryStream} + */ + Stream.createWithMemory = function (producer) { + if (producer) + internalizeProducer(producer); // mutates the input + return new MemoryStream(producer); + }; + /** + * Creates a Stream that does nothing when started. It never emits any event. + * + * Marble diagram: + * + * ```text + * never + * ----------------------- + * ``` + * + * @factory true + * @return {Stream} + */ + Stream.never = function () { + return new Stream({ _start: noop, _stop: noop }); + }; + /** + * Creates a Stream that immediately emits the "complete" notification when + * started, and that's it. + * + * Marble diagram: + * + * ```text + * empty + * -| + * ``` + * + * @factory true + * @return {Stream} + */ + Stream.empty = function () { + return new Stream({ + _start: function (il) { il._c(); }, + _stop: noop, + }); + }; + /** + * Creates a Stream that immediately emits an "error" notification with the + * value you passed as the `error` argument when the stream starts, and that's + * it. + * + * Marble diagram: + * + * ```text + * throw(X) + * -X + * ``` + * + * @factory true + * @param error The error event to emit on the created stream. + * @return {Stream} + */ + Stream.throw = function (error) { + return new Stream({ + _start: function (il) { il._e(error); }, + _stop: noop, + }); + }; + /** + * Creates a stream from an Array, Promise, or an Observable. + * + * @factory true + * @param {Array|PromiseLike|Observable} input The input to make a stream from. + * @return {Stream} + */ + Stream.from = function (input) { + if (typeof input[$$observable] === 'function') + return Stream.fromObservable(input); + else if (typeof input.then === 'function') + return Stream.fromPromise(input); + else if (Array.isArray(input)) + return Stream.fromArray(input); + throw new TypeError("Type of input to from() must be an Array, Promise, or Observable"); + }; + /** + * Creates a Stream that immediately emits the arguments that you give to + * *of*, then completes. + * + * Marble diagram: + * + * ```text + * of(1,2,3) + * 123| + * ``` + * + * @factory true + * @param a The first value you want to emit as an event on the stream. + * @param b The second value you want to emit as an event on the stream. One + * or more of these values may be given as arguments. + * @return {Stream} + */ + Stream.of = function () { + var items = []; + for (var _i = 0; _i < arguments.length; _i++) { + items[_i] = arguments[_i]; + } + return Stream.fromArray(items); + }; + /** + * Converts an array to a stream. The returned stream will emit synchronously + * all the items in the array, and then complete. + * + * Marble diagram: + * + * ```text + * fromArray([1,2,3]) + * 123| + * ``` + * + * @factory true + * @param {Array} array The array to be converted as a stream. + * @return {Stream} + */ + Stream.fromArray = function (array) { + return new Stream(new FromArray(array)); + }; + /** + * Converts a promise to a stream. The returned stream will emit the resolved + * value of the promise, and then complete. However, if the promise is + * rejected, the stream will emit the corresponding error. + * + * Marble diagram: + * + * ```text + * fromPromise( ----42 ) + * -----------------42| + * ``` + * + * @factory true + * @param {PromiseLike} promise The promise to be converted as a stream. + * @return {Stream} + */ + Stream.fromPromise = function (promise) { + return new Stream(new FromPromise(promise)); + }; + /** + * Converts an Observable into a Stream. + * + * @factory true + * @param {any} observable The observable to be converted as a stream. + * @return {Stream} + */ + Stream.fromObservable = function (obs) { + if (obs.endWhen !== undefined) + return obs; + var o = typeof obs[$$observable] === 'function' ? obs[$$observable]() : obs; + return new Stream(new FromObservable(o)); + }; + /** + * Creates a stream that periodically emits incremental numbers, every + * `period` milliseconds. + * + * Marble diagram: + * + * ```text + * periodic(1000) + * ---0---1---2---3---4---... + * ``` + * + * @factory true + * @param {number} period The interval in milliseconds to use as a rate of + * emission. + * @return {Stream} + */ + Stream.periodic = function (period) { + return new Stream(new Periodic(period)); + }; + Stream.prototype._map = function (project) { + return new (this.ctor())(new MapOp(project, this)); + }; + /** + * Transforms each event from the input Stream through a `project` function, + * to get a Stream that emits those transformed events. + * + * Marble diagram: + * + * ```text + * --1---3--5-----7------ + * map(i => i * 10) + * --10--30-50----70----- + * ``` + * + * @param {Function} project A function of type `(t: T) => U` that takes event + * `t` of type `T` from the input Stream and produces an event of type `U`, to + * be emitted on the output Stream. + * @return {Stream} + */ + Stream.prototype.map = function (project) { + return this._map(project); + }; + /** + * It's like `map`, but transforms each input event to always the same + * constant value on the output Stream. + * + * Marble diagram: + * + * ```text + * --1---3--5-----7----- + * mapTo(10) + * --10--10-10----10---- + * ``` + * + * @param projectedValue A value to emit on the output Stream whenever the + * input Stream emits any value. + * @return {Stream} + */ + Stream.prototype.mapTo = function (projectedValue) { + var s = this.map(function () { return projectedValue; }); + var op = s._prod; + op.type = 'mapTo'; + return s; + }; + /** + * Only allows events that pass the test given by the `passes` argument. + * + * Each event from the input stream is given to the `passes` function. If the + * function returns `true`, the event is forwarded to the output stream, + * otherwise it is ignored and not forwarded. + * + * Marble diagram: + * + * ```text + * --1---2--3-----4-----5---6--7-8-- + * filter(i => i % 2 === 0) + * ------2--------4---------6----8-- + * ``` + * + * @param {Function} passes A function of type `(t: T) => boolean` that takes + * an event from the input stream and checks if it passes, by returning a + * boolean. + * @return {Stream} + */ + Stream.prototype.filter = function (passes) { + var p = this._prod; + if (p instanceof Filter) + return new Stream(new Filter(and(p.f, passes), p.ins)); + return new Stream(new Filter(passes, this)); + }; + /** + * Lets the first `amount` many events from the input stream pass to the + * output stream, then makes the output stream complete. + * + * Marble diagram: + * + * ```text + * --a---b--c----d---e-- + * take(3) + * --a---b--c| + * ``` + * + * @param {number} amount How many events to allow from the input stream + * before completing the output stream. + * @return {Stream} + */ + Stream.prototype.take = function (amount) { + return new (this.ctor())(new Take(amount, this)); + }; + /** + * Ignores the first `amount` many events from the input stream, and then + * after that starts forwarding events from the input stream to the output + * stream. + * + * Marble diagram: + * + * ```text + * --a---b--c----d---e-- + * drop(3) + * --------------d---e-- + * ``` + * + * @param {number} amount How many events to ignore from the input stream + * before forwarding all events from the input stream to the output stream. + * @return {Stream} + */ + Stream.prototype.drop = function (amount) { + return new Stream(new Drop(amount, this)); + }; + /** + * When the input stream completes, the output stream will emit the last event + * emitted by the input stream, and then will also complete. + * + * Marble diagram: + * + * ```text + * --a---b--c--d----| + * last() + * -----------------d| + * ``` + * + * @return {Stream} + */ + Stream.prototype.last = function () { + return new Stream(new Last(this)); + }; + /** + * Prepends the given `initial` value to the sequence of events emitted by the + * input stream. The returned stream is a MemoryStream, which means it is + * already `remember()`'d. + * + * Marble diagram: + * + * ```text + * ---1---2-----3--- + * startWith(0) + * 0--1---2-----3--- + * ``` + * + * @param initial The value or event to prepend. + * @return {MemoryStream} + */ + Stream.prototype.startWith = function (initial) { + return new MemoryStream(new StartWith(this, initial)); + }; + /** + * Uses another stream to determine when to complete the current stream. + * + * When the given `other` stream emits an event or completes, the output + * stream will complete. Before that happens, the output stream will behaves + * like the input stream. + * + * Marble diagram: + * + * ```text + * ---1---2-----3--4----5----6--- + * endWhen( --------a--b--| ) + * ---1---2-----3--4--| + * ``` + * + * @param other Some other stream that is used to know when should the output + * stream of this operator complete. + * @return {Stream} + */ + Stream.prototype.endWhen = function (other) { + return new (this.ctor())(new EndWhen(other, this)); + }; + /** + * "Folds" the stream onto itself. + * + * Combines events from the past throughout + * the entire execution of the input stream, allowing you to accumulate them + * together. It's essentially like `Array.prototype.reduce`. The returned + * stream is a MemoryStream, which means it is already `remember()`'d. + * + * The output stream starts by emitting the `seed` which you give as argument. + * Then, when an event happens on the input stream, it is combined with that + * seed value through the `accumulate` function, and the output value is + * emitted on the output stream. `fold` remembers that output value as `acc` + * ("accumulator"), and then when a new input event `t` happens, `acc` will be + * combined with that to produce the new `acc` and so forth. + * + * Marble diagram: + * + * ```text + * ------1-----1--2----1----1------ + * fold((acc, x) => acc + x, 3) + * 3-----4-----5--7----8----9------ + * ``` + * + * @param {Function} accumulate A function of type `(acc: R, t: T) => R` that + * takes the previous accumulated value `acc` and the incoming event from the + * input stream and produces the new accumulated value. + * @param seed The initial accumulated value, of type `R`. + * @return {MemoryStream} + */ + Stream.prototype.fold = function (accumulate, seed) { + return new MemoryStream(new Fold(accumulate, seed, this)); + }; + /** + * Replaces an error with another stream. + * + * When (and if) an error happens on the input stream, instead of forwarding + * that error to the output stream, *replaceError* will call the `replace` + * function which returns the stream that the output stream will replicate. + * And, in case that new stream also emits an error, `replace` will be called + * again to get another stream to start replicating. + * + * Marble diagram: + * + * ```text + * --1---2-----3--4-----X + * replaceError( () => --10--| ) + * --1---2-----3--4--------10--| + * ``` + * + * @param {Function} replace A function of type `(err) => Stream` that takes + * the error that occurred on the input stream or on the previous replacement + * stream and returns a new stream. The output stream will behave like the + * stream that this function returns. + * @return {Stream} + */ + Stream.prototype.replaceError = function (replace) { + return new (this.ctor())(new ReplaceError(replace, this)); + }; + /** + * Flattens a "stream of streams", handling only one nested stream at a time + * (no concurrency). + * + * If the input stream is a stream that emits streams, then this operator will + * return an output stream which is a flat stream: emits regular events. The + * flattening happens without concurrency. It works like this: when the input + * stream emits a nested stream, *flatten* will start imitating that nested + * one. However, as soon as the next nested stream is emitted on the input + * stream, *flatten* will forget the previous nested one it was imitating, and + * will start imitating the new nested one. + * + * Marble diagram: + * + * ```text + * --+--------+--------------- + * \ \ + * \ ----1----2---3-- + * --a--b----c----d-------- + * flatten + * -----a--b------1----2---3-- + * ``` + * + * @return {Stream} + */ + Stream.prototype.flatten = function () { + return new Stream(new Flatten(this)); + }; + /** + * Passes the input stream to a custom operator, to produce an output stream. + * + * *compose* is a handy way of using an existing function in a chained style. + * Instead of writing `outStream = f(inStream)` you can write + * `outStream = inStream.compose(f)`. + * + * @param {function} operator A function that takes a stream as input and + * returns a stream as well. + * @return {Stream} + */ + Stream.prototype.compose = function (operator) { + return operator(this); + }; + /** + * Returns an output stream that behaves like the input stream, but also + * remembers the most recent event that happens on the input stream, so that a + * newly added listener will immediately receive that memorised event. + * + * @return {MemoryStream} + */ + Stream.prototype.remember = function () { + return new MemoryStream(new Remember(this)); + }; + /** + * Returns an output stream that identically behaves like the input stream, + * but also runs a `spy` function for each event, to help you debug your app. + * + * *debug* takes a `spy` function as argument, and runs that for each event + * happening on the input stream. If you don't provide the `spy` argument, + * then *debug* will just `console.log` each event. This helps you to + * understand the flow of events through some operator chain. + * + * Please note that if the output stream has no listeners, then it will not + * start, which means `spy` will never run because no actual event happens in + * that case. + * + * Marble diagram: + * + * ```text + * --1----2-----3-----4-- + * debug + * --1----2-----3-----4-- + * ``` + * + * @param {function} labelOrSpy A string to use as the label when printing + * debug information on the console, or a 'spy' function that takes an event + * as argument, and does not need to return anything. + * @return {Stream} + */ + Stream.prototype.debug = function (labelOrSpy) { + return new (this.ctor())(new Debug(this, labelOrSpy)); + }; + /** + * *imitate* changes this current Stream to emit the same events that the + * `other` given Stream does. This method returns nothing. + * + * This method exists to allow one thing: **circular dependency of streams**. + * For instance, let's imagine that for some reason you need to create a + * circular dependency where stream `first$` depends on stream `second$` + * which in turn depends on `first$`: + * + * + * ```js + * import delay from 'xstream/extra/delay' + * + * var first$ = second$.map(x => x * 10).take(3); + * var second$ = first$.map(x => x + 1).startWith(1).compose(delay(100)); + * ``` + * + * However, that is invalid JavaScript, because `second$` is undefined + * on the first line. This is how *imitate* can help solve it: + * + * ```js + * import delay from 'xstream/extra/delay' + * + * var secondProxy$ = xs.create(); + * var first$ = secondProxy$.map(x => x * 10).take(3); + * var second$ = first$.map(x => x + 1).startWith(1).compose(delay(100)); + * secondProxy$.imitate(second$); + * ``` + * + * We create `secondProxy$` before the others, so it can be used in the + * declaration of `first$`. Then, after both `first$` and `second$` are + * defined, we hook `secondProxy$` with `second$` with `imitate()` to tell + * that they are "the same". `imitate` will not trigger the start of any + * stream, it just binds `secondProxy$` and `second$` together. + * + * The following is an example where `imitate()` is important in Cycle.js + * applications. A parent component contains some child components. A child + * has an action stream which is given to the parent to define its state: + * + * + * ```js + * const childActionProxy$ = xs.create(); + * const parent = Parent({...sources, childAction$: childActionProxy$}); + * const childAction$ = parent.state$.map(s => s.child.action$).flatten(); + * childActionProxy$.imitate(childAction$); + * ``` + * + * Note, though, that **`imitate()` does not support MemoryStreams**. If we + * would attempt to imitate a MemoryStream in a circular dependency, we would + * either get a race condition (where the symptom would be "nothing happens") + * or an infinite cyclic emission of values. It's useful to think about + * MemoryStreams as cells in a spreadsheet. It doesn't make any sense to + * define a spreadsheet cell `A1` with a formula that depends on `B1` and + * cell `B1` defined with a formula that depends on `A1`. + * + * If you find yourself wanting to use `imitate()` with a + * MemoryStream, you should rework your code around `imitate()` to use a + * Stream instead. Look for the stream in the circular dependency that + * represents an event stream, and that would be a candidate for creating a + * proxy Stream which then imitates the target Stream. + * + * @param {Stream} target The other stream to imitate on the current one. Must + * not be a MemoryStream. + */ + Stream.prototype.imitate = function (target) { + if (target instanceof MemoryStream) + throw new Error('A MemoryStream was given to imitate(), but it only ' + + 'supports a Stream. Read more about this restriction here: ' + + 'https://github.com/staltz/xstream#faq'); + this._target = target; + for (var ils = this._ils, N = ils.length, i = 0; i < N; i++) + target._add(ils[i]); + this._ils = []; + }; + /** + * Forces the Stream to emit the given value to its listeners. + * + * As the name indicates, if you use this, you are most likely doing something + * The Wrong Way. Please try to understand the reactive way before using this + * method. Use it only when you know what you are doing. + * + * @param value The "next" value you want to broadcast to all listeners of + * this Stream. + */ + Stream.prototype.shamefullySendNext = function (value) { + this._n(value); + }; + /** + * Forces the Stream to emit the given error to its listeners. + * + * As the name indicates, if you use this, you are most likely doing something + * The Wrong Way. Please try to understand the reactive way before using this + * method. Use it only when you know what you are doing. + * + * @param {any} error The error you want to broadcast to all the listeners of + * this Stream. + */ + Stream.prototype.shamefullySendError = function (error) { + this._e(error); + }; + /** + * Forces the Stream to emit the "completed" event to its listeners. + * + * As the name indicates, if you use this, you are most likely doing something + * The Wrong Way. Please try to understand the reactive way before using this + * method. Use it only when you know what you are doing. + */ + Stream.prototype.shamefullySendComplete = function () { + this._c(); + }; + /** + * Adds a "debug" listener to the stream. There can only be one debug + * listener, that's why this is 'setDebugListener'. To remove the debug + * listener, just call setDebugListener(null). + * + * A debug listener is like any other listener. The only difference is that a + * debug listener is "stealthy": its presence/absence does not trigger the + * start/stop of the stream (or the producer inside the stream). This is + * useful so you can inspect what is going on without changing the behavior + * of the program. If you have an idle stream and you add a normal listener to + * it, the stream will start executing. But if you set a debug listener on an + * idle stream, it won't start executing (not until the first normal listener + * is added). + * + * As the name indicates, we don't recommend using this method to build app + * logic. In fact, in most cases the debug operator works just fine. Only use + * this one if you know what you're doing. + * + * @param {Listener} listener + */ + Stream.prototype.setDebugListener = function (listener) { + if (!listener) { + this._d = false; + this._dl = NO; + } + else { + this._d = true; + listener._n = listener.next || noop; + listener._e = listener.error || noop; + listener._c = listener.complete || noop; + this._dl = listener; + } + }; + /** + * Blends multiple streams together, emitting events from all of them + * concurrently. + * + * *merge* takes multiple streams as arguments, and creates a stream that + * behaves like each of the argument streams, in parallel. + * + * Marble diagram: + * + * ```text + * --1----2-----3--------4--- + * ----a-----b----c---d------ + * merge + * --1-a--2--b--3-c---d--4--- + * ``` + * + * @factory true + * @param {Stream} stream1 A stream to merge together with other streams. + * @param {Stream} stream2 A stream to merge together with other streams. Two + * or more streams may be given as arguments. + * @return {Stream} + */ + Stream.merge = function merge() { + var streams = []; + for (var _i = 0; _i < arguments.length; _i++) { + streams[_i] = arguments[_i]; + } + return new Stream(new Merge(streams)); + }; + /** + * Combines multiple input streams together to return a stream whose events + * are arrays that collect the latest events from each input stream. + * + * *combine* internally remembers the most recent event from each of the input + * streams. When any of the input streams emits an event, that event together + * with all the other saved events are combined into an array. That array will + * be emitted on the output stream. It's essentially a way of joining together + * the events from multiple streams. + * + * Marble diagram: + * + * ```text + * --1----2-----3--------4--- + * ----a-----b-----c--d------ + * combine + * ----1a-2a-2b-3b-3c-3d-4d-- + * ``` + * + * @factory true + * @param {Stream} stream1 A stream to combine together with other streams. + * @param {Stream} stream2 A stream to combine together with other streams. + * Multiple streams, not just two, may be given as arguments. + * @return {Stream} + */ + Stream.combine = function combine() { + var streams = []; + for (var _i = 0; _i < arguments.length; _i++) { + streams[_i] = arguments[_i]; + } + return new Stream(new Combine(streams)); + }; + return Stream; +}()); +exports.Stream = Stream; +var MemoryStream = /** @class */ (function (_super) { + __extends(MemoryStream, _super); + function MemoryStream(producer) { + var _this = _super.call(this, producer) || this; + _this._has = false; + return _this; } - } - - if (this.query && - util.isObject(this.query) && - Object.keys(this.query).length) { - query = querystring.stringify(this.query); - } - - var search = this.search || (query && ('?' + query)) || ''; + MemoryStream.prototype._n = function (x) { + this._v = x; + this._has = true; + _super.prototype._n.call(this, x); + }; + MemoryStream.prototype._add = function (il) { + var ta = this._target; + if (ta) + return ta._add(il); + var a = this._ils; + a.push(il); + if (a.length > 1) { + if (this._has) + il._n(this._v); + return; + } + if (this._stopID !== NO) { + if (this._has) + il._n(this._v); + clearTimeout(this._stopID); + this._stopID = NO; + } + else if (this._has) + il._n(this._v); + else { + var p = this._prod; + if (p !== NO) + p._start(this); + } + }; + MemoryStream.prototype._stopNow = function () { + this._has = false; + _super.prototype._stopNow.call(this); + }; + MemoryStream.prototype._x = function () { + this._has = false; + _super.prototype._x.call(this); + }; + MemoryStream.prototype.map = function (project) { + return this._map(project); + }; + MemoryStream.prototype.mapTo = function (projectedValue) { + return _super.prototype.mapTo.call(this, projectedValue); + }; + MemoryStream.prototype.take = function (amount) { + return _super.prototype.take.call(this, amount); + }; + MemoryStream.prototype.endWhen = function (other) { + return _super.prototype.endWhen.call(this, other); + }; + MemoryStream.prototype.replaceError = function (replace) { + return _super.prototype.replaceError.call(this, replace); + }; + MemoryStream.prototype.remember = function () { + return this; + }; + MemoryStream.prototype.debug = function (labelOrSpy) { + return _super.prototype.debug.call(this, labelOrSpy); + }; + return MemoryStream; +}(Stream)); +exports.MemoryStream = MemoryStream; +var xs = Stream; +exports["default"] = xs; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVEQUFrRTtBQUNsRSx5Q0FBMEQ7QUFFMUQsSUFBTSxZQUFZLEdBQUcsa0JBQXdCLENBQUMsd0JBQWEsRUFBRSxDQUFDLENBQUM7QUFFL0QsSUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBOC9ETCxnQkFBRTtBQTcvRFgsU0FBUyxJQUFJLEtBQUssQ0FBQztBQUVuQixTQUFTLEVBQUUsQ0FBSSxDQUFXO0lBQ3hCLElBQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDbkIsSUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRCxTQUFTLEdBQUcsQ0FBSSxFQUFxQixFQUFFLEVBQXFCO0lBQzFELE9BQU8sU0FBUyxLQUFLLENBQUMsQ0FBSTtRQUN4QixPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQU1ELFNBQVMsSUFBSSxDQUFPLENBQW1CLEVBQUUsQ0FBSSxFQUFFLENBQWM7SUFDM0QsSUFBSTtRQUNGLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNmO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1IsT0FBTyxFQUFFLENBQUM7S0FDWDtBQUNILENBQUM7QUFRRCxJQUFNLEtBQUss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TCxVQUFNLFVBQWlEO1FBQ3JELE9BQU8saUJBQU0sS0FBSyxZQUFDLFVBQWlCLENBQW9CLENBQUM7SUFDM0QsQ0FBQztJQUNILG1CQUFDO0FBQUQsQ0FBQyxBQXhFRCxDQUFxQyxNQUFNLEdBd0UxQztBQXhFWSxvQ0FBWTtBQTJFekIsSUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDO0FBRWxCLGtCQUFlLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwb255ZmlsbFN5bWJvbE9ic2VydmFibGUgZnJvbSAnc3ltYm9sLW9ic2VydmFibGUvcG9ueWZpbGwnO1xuaW1wb3J0IHsgZ2V0UG9seWZpbGwgYXMgZ2V0R2xvYmFsVGhpcyB9IGZyb20gJ2dsb2JhbHRoaXMnO1xuXG5jb25zdCAkJG9ic2VydmFibGUgPSBwb255ZmlsbFN5bWJvbE9ic2VydmFibGUoZ2V0R2xvYmFsVGhpcygpKTtcblxuY29uc3QgTk8gPSB7fTtcbmZ1bmN0aW9uIG5vb3AoKSB7IH1cblxuZnVuY3Rpb24gY3A8VD4oYTogQXJyYXk8VD4pOiBBcnJheTxUPiB7XG4gIGNvbnN0IGwgPSBhLmxlbmd0aDtcbiAgY29uc3QgYiA9IEFycmF5KGwpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGw7ICsraSkgYltpXSA9IGFbaV07XG4gIHJldHVybiBiO1xufVxuXG5mdW5jdGlvbiBhbmQ8VD4oZjE6ICh0OiBUKSA9PiBib29sZWFuLCBmMjogKHQ6IFQpID0+IGJvb2xlYW4pOiAodDogVCkgPT4gYm9vbGVhbiB7XG4gIHJldHVybiBmdW5jdGlvbiBhbmRGbih0OiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGYxKHQpICYmIGYyKHQpO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgRkNvbnRhaW5lcjxULCBSPiB7XG4gIGYodDogVCk6IFI7XG59XG5cbmZ1bmN0aW9uIF90cnk8VCwgUj4oYzogRkNvbnRhaW5lcjxULCBSPiwgdDogVCwgdTogU3RyZWFtPGFueT4pOiBSIHwge30ge1xuICB0cnkge1xuICAgIHJldHVybiBjLmYodCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB1Ll9lKGUpO1xuICAgIHJldHVybiBOTztcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludGVybmFsTGlzdGVuZXI8VD4ge1xuICBfbjogKHY6IFQpID0+IHZvaWQ7XG4gIF9lOiAoZXJyOiBhbnkpID0+IHZvaWQ7XG4gIF9jOiAoKSA9PiB2b2lkO1xufVxuXG5jb25zdCBOT19JTDogSW50ZXJuYWxMaXN0ZW5lcjxhbnk+ID0ge1xuICBfbjogbm9vcCxcbiAgX2U6IG5vb3AsXG4gIF9jOiBub29wLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBJbnRlcm5hbFByb2R1Y2VyPFQ+IHtcbiAgX3N0YXJ0KGxpc3RlbmVyOiBJbnRlcm5hbExpc3RlbmVyPFQ+KTogdm9pZDtcbiAgX3N0b3A6ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3V0U2VuZGVyPFQ+IHtcbiAgb3V0OiBTdHJlYW08VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlcmF0b3I8VCwgUj4gZXh0ZW5kcyBJbnRlcm5hbFByb2R1Y2VyPFI+LCBJbnRlcm5hbExpc3RlbmVyPFQ+LCBPdXRTZW5kZXI8Uj4ge1xuICB0eXBlOiBzdHJpbmc7XG4gIGluczogU3RyZWFtPFQ+O1xuICBfc3RhcnQob3V0OiBTdHJlYW08Uj4pOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFnZ3JlZ2F0b3I8VCwgVT4gZXh0ZW5kcyBJbnRlcm5hbFByb2R1Y2VyPFU+LCBPdXRTZW5kZXI8VT4ge1xuICB0eXBlOiBzdHJpbmc7XG4gIGluc0FycjogQXJyYXk8U3RyZWFtPFQ+PjtcbiAgX3N0YXJ0KG91dDogU3RyZWFtPFU+KTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWNlcjxUPiB7XG4gIHN0YXJ0OiAobGlzdGVuZXI6IExpc3RlbmVyPFQ+KSA9PiB2b2lkO1xuICBzdG9wOiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RlbmVyPFQ+IHtcbiAgbmV4dDogKHg6IFQpID0+IHZvaWQ7XG4gIGVycm9yOiAoZXJyOiBhbnkpID0+IHZvaWQ7XG4gIGNvbXBsZXRlOiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1YnNjcmlwdGlvbiB7XG4gIHVuc3Vic2NyaWJlKCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJsZTxUPiB7XG4gIHN1YnNjcmliZShsaXN0ZW5lcjogTGlzdGVuZXI8VD4pOiBTdWJzY3JpcHRpb247XG59XG5cbi8vIG11dGF0ZXMgdGhlIGlucHV0XG5mdW5jdGlvbiBpbnRlcm5hbGl6ZVByb2R1Y2VyPFQ+KHByb2R1Y2VyOiBQcm9kdWNlcjxUPiAmIFBhcnRpYWw8SW50ZXJuYWxQcm9kdWNlcjxUPj4pIHtcbiAgcHJvZHVjZXIuX3N0YXJ0ID0gZnVuY3Rpb24gX3N0YXJ0KGlsOiBJbnRlcm5hbExpc3RlbmVyPFQ+ICYgUGFydGlhbDxMaXN0ZW5lcjxUPj4pIHtcbiAgICBpbC5uZXh0ID0gaWwuX247XG4gICAgaWwuZXJyb3IgPSBpbC5fZTtcbiAgICBpbC5jb21wbGV0ZSA9IGlsLl9jO1xuICAgIHRoaXMuc3RhcnQoaWwgYXMgTGlzdGVuZXI8VD4pO1xuICB9O1xuICBwcm9kdWNlci5fc3RvcCA9IHByb2R1Y2VyLnN0b3A7XG59XG5cbmNsYXNzIFN0cmVhbVN1YjxUPiBpbXBsZW1lbnRzIFN1YnNjcmlwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3N0cmVhbTogU3RyZWFtPFQ+LCBwcml2YXRlIF9saXN0ZW5lcjogSW50ZXJuYWxMaXN0ZW5lcjxUPikgeyB9XG5cbiAgdW5zdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgdGhpcy5fc3RyZWFtLl9yZW1vdmUodGhpcy5fbGlzdGVuZXIpO1xuICB9XG59XG5cbmNsYXNzIE9ic2VydmVyPFQ+IGltcGxlbWVudHMgTGlzdGVuZXI8VD4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9saXN0ZW5lcjogSW50ZXJuYWxMaXN0ZW5lcjxUPikgeyB9XG5cbiAgbmV4dCh2YWx1ZTogVCkge1xuICAgIHRoaXMuX2xpc3RlbmVyLl9uKHZhbHVlKTtcbiAgfVxuXG4gIGVycm9yKGVycjogYW55KSB7XG4gICAgdGhpcy5fbGlzdGVuZXIuX2UoZXJyKTtcbiAgfVxuXG4gIGNvbXBsZXRlKCkge1xuICAgIHRoaXMuX2xpc3RlbmVyLl9jKCk7XG4gIH1cbn1cblxuY2xhc3MgRnJvbU9ic2VydmFibGU8VD4gaW1wbGVtZW50cyBJbnRlcm5hbFByb2R1Y2VyPFQ+IHtcbiAgcHVibGljIHR5cGUgPSAnZnJvbU9ic2VydmFibGUnO1xuICBwdWJsaWMgaW5zOiBPYnNlcnZhYmxlPFQ+O1xuICBwdWJsaWMgb3V0PzogU3RyZWFtPFQ+O1xuICBwcml2YXRlIGFjdGl2ZTogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfc3ViOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3Iob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxUPikge1xuICAgIHRoaXMuaW5zID0gb2JzZXJ2YWJsZTtcbiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xuICAgIHRoaXMuX3N1YiA9IHRoaXMuaW5zLnN1YnNjcmliZShuZXcgT2JzZXJ2ZXIob3V0KSk7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZSkgdGhpcy5fc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBfc3RvcCgpIHtcbiAgICBpZiAodGhpcy5fc3ViKSB0aGlzLl9zdWIudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVyZ2VTaWduYXR1cmUge1xuICAoKTogU3RyZWFtPGFueT47XG4gIDxUMT4oczE6IFN0cmVhbTxUMT4pOiBTdHJlYW08VDE+O1xuICA8VDEsIFQyPihcbiAgICBzMTogU3RyZWFtPFQxPixcbiAgICBzMjogU3RyZWFtPFQyPik6IFN0cmVhbTxUMSB8IFQyPjtcbiAgPFQxLCBUMiwgVDM+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+KTogU3RyZWFtPFQxIHwgVDIgfCBUMz47XG4gIDxUMSwgVDIsIFQzLCBUND4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4pOiBTdHJlYW08VDEgfCBUMiB8IFQzIHwgVDQ+O1xuICA8VDEsIFQyLCBUMywgVDQsIFQ1PihcbiAgICBzMTogU3RyZWFtPFQxPixcbiAgICBzMjogU3RyZWFtPFQyPixcbiAgICBzMzogU3RyZWFtPFQzPixcbiAgICBzNDogU3RyZWFtPFQ0PixcbiAgICBzNTogU3RyZWFtPFQ1Pik6IFN0cmVhbTxUMSB8IFQyIHwgVDMgfCBUNCB8IFQ1PjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+KTogU3RyZWFtPFQxIHwgVDIgfCBUMyB8IFQ0IHwgVDUgfCBUNj47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4sXG4gICAgczU6IFN0cmVhbTxUNT4sXG4gICAgczY6IFN0cmVhbTxUNj4sXG4gICAgczc6IFN0cmVhbTxUNz4pOiBTdHJlYW08VDEgfCBUMiB8IFQzIHwgVDQgfCBUNSB8IFQ2IHwgVDc+O1xuICA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4PihcbiAgICBzMTogU3RyZWFtPFQxPixcbiAgICBzMjogU3RyZWFtPFQyPixcbiAgICBzMzogU3RyZWFtPFQzPixcbiAgICBzNDogU3RyZWFtPFQ0PixcbiAgICBzNTogU3RyZWFtPFQ1PixcbiAgICBzNjogU3RyZWFtPFQ2PixcbiAgICBzNzogU3RyZWFtPFQ3PixcbiAgICBzODogU3RyZWFtPFQ4Pik6IFN0cmVhbTxUMSB8IFQyIHwgVDMgfCBUNCB8IFQ1IHwgVDYgfCBUNyB8IFQ4PjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+KTogU3RyZWFtPFQxIHwgVDIgfCBUMyB8IFQ0IHwgVDUgfCBUNiB8IFQ3IHwgVDggfCBUOT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+LFxuICAgIHMxMDogU3RyZWFtPFQxMD4pOiBTdHJlYW08VDEgfCBUMiB8IFQzIHwgVDQgfCBUNSB8IFQ2IHwgVDcgfCBUOCB8IFQ5IHwgVDEwPjtcbiAgPFQ+KC4uLnN0cmVhbTogQXJyYXk8U3RyZWFtPFQ+Pik6IFN0cmVhbTxUPjtcbn1cblxuY2xhc3MgTWVyZ2U8VD4gaW1wbGVtZW50cyBBZ2dyZWdhdG9yPFQsIFQ+LCBJbnRlcm5hbExpc3RlbmVyPFQ+IHtcbiAgcHVibGljIHR5cGUgPSAnbWVyZ2UnO1xuICBwdWJsaWMgaW5zQXJyOiBBcnJheTxTdHJlYW08VD4+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHByaXZhdGUgYWM6IG51bWJlcjsgLy8gYWMgaXMgYWN0aXZlQ291bnRcblxuICBjb25zdHJ1Y3RvcihpbnNBcnI6IEFycmF5PFN0cmVhbTxUPj4pIHtcbiAgICB0aGlzLmluc0FyciA9IGluc0FycjtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLmFjID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIGNvbnN0IHMgPSB0aGlzLmluc0FycjtcbiAgICBjb25zdCBMID0gcy5sZW5ndGg7XG4gICAgdGhpcy5hYyA9IEw7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIHNbaV0uX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIGNvbnN0IHMgPSB0aGlzLmluc0FycjtcbiAgICBjb25zdCBMID0gcy5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIHNbaV0uX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIGlmICgtLXRoaXMuYWMgPD0gMCkge1xuICAgICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgICB1Ll9jKCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluZVNpZ25hdHVyZSB7XG4gICgpOiBTdHJlYW08QXJyYXk8YW55Pj47XG4gIDxUMT4oczE6IFN0cmVhbTxUMT4pOiBTdHJlYW08W1QxXT47XG4gIDxUMSwgVDI+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+KTogU3RyZWFtPFtUMSwgVDJdPjtcbiAgPFQxLCBUMiwgVDM+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+KTogU3RyZWFtPFtUMSwgVDIsIFQzXT47XG4gIDxUMSwgVDIsIFQzLCBUND4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4pOiBTdHJlYW08W1QxLCBUMiwgVDMsIFQ0XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDU+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDVdPjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4sXG4gICAgczU6IFN0cmVhbTxUNT4sXG4gICAgczY6IFN0cmVhbTxUNj4sXG4gICAgczc6IFN0cmVhbTxUNz4pOiBTdHJlYW08W1QxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDg+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDhdPjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+LFxuICAgIHMxMDogU3RyZWFtPFQxMD4pOiBTdHJlYW08W1QxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMF0+O1xuICA8VD4oLi4uc3RyZWFtOiBBcnJheTxTdHJlYW08VD4+KTogU3RyZWFtPEFycmF5PFQ+PjtcbiAgKC4uLnN0cmVhbTogQXJyYXk8U3RyZWFtPGFueT4+KTogU3RyZWFtPEFycmF5PGFueT4+O1xufVxuXG5jbGFzcyBDb21iaW5lTGlzdGVuZXI8VD4gaW1wbGVtZW50cyBJbnRlcm5hbExpc3RlbmVyPFQ+LCBPdXRTZW5kZXI8QXJyYXk8VD4+IHtcbiAgcHJpdmF0ZSBpOiBudW1iZXI7XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxBcnJheTxUPj47XG4gIHByaXZhdGUgcDogQ29tYmluZTxUPjtcblxuICBjb25zdHJ1Y3RvcihpOiBudW1iZXIsIG91dDogU3RyZWFtPEFycmF5PFQ+PiwgcDogQ29tYmluZTxUPikge1xuICAgIHRoaXMuaSA9IGk7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5wID0gcDtcbiAgICBwLmlscy5wdXNoKHRoaXMpO1xuICB9XG5cbiAgX24odDogVCk6IHZvaWQge1xuICAgIGNvbnN0IHAgPSB0aGlzLnAsIG91dCA9IHRoaXMub3V0O1xuICAgIGlmIChvdXQgPT09IE5PKSByZXR1cm47XG4gICAgaWYgKHAudXAodCwgdGhpcy5pKSkge1xuICAgICAgY29uc3QgYiA9IGNwKHAudmFscyk7XG4gICAgICBvdXQuX24oYik7XG4gICAgfVxuICB9XG5cbiAgX2UoZXJyOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBvdXQgPSB0aGlzLm91dDtcbiAgICBpZiAob3V0ID09PSBOTykgcmV0dXJuO1xuICAgIG91dC5fZShlcnIpO1xuICB9XG5cbiAgX2MoKTogdm9pZCB7XG4gICAgY29uc3QgcCA9IHRoaXMucDtcbiAgICBpZiAocC5vdXQgPT09IE5PKSByZXR1cm47XG4gICAgaWYgKC0tcC5OYyA9PT0gMCkgcC5vdXQuX2MoKTtcbiAgfVxufVxuXG5jbGFzcyBDb21iaW5lPFI+IGltcGxlbWVudHMgQWdncmVnYXRvcjxhbnksIEFycmF5PFI+PiB7XG4gIHB1YmxpYyB0eXBlID0gJ2NvbWJpbmUnO1xuICBwdWJsaWMgaW5zQXJyOiBBcnJheTxTdHJlYW08YW55Pj47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxBcnJheTxSPj47XG4gIHB1YmxpYyBpbHM6IEFycmF5PENvbWJpbmVMaXN0ZW5lcjxhbnk+PjtcbiAgcHVibGljIE5jOiBudW1iZXI7IC8vICpOKnVtYmVyIG9mIHN0cmVhbXMgc3RpbGwgdG8gc2VuZCAqYypvbXBsZXRlXG4gIHB1YmxpYyBObjogbnVtYmVyOyAvLyAqTip1bWJlciBvZiBzdHJlYW1zIHN0aWxsIHRvIHNlbmQgKm4qZXh0XG4gIHB1YmxpYyB2YWxzOiBBcnJheTxSPjtcblxuICBjb25zdHJ1Y3RvcihpbnNBcnI6IEFycmF5PFN0cmVhbTxhbnk+Pikge1xuICAgIHRoaXMuaW5zQXJyID0gaW5zQXJyO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPEFycmF5PFI+PjtcbiAgICB0aGlzLmlscyA9IFtdO1xuICAgIHRoaXMuTmMgPSB0aGlzLk5uID0gMDtcbiAgICB0aGlzLnZhbHMgPSBbXTtcbiAgfVxuXG4gIHVwKHQ6IGFueSwgaTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdiA9IHRoaXMudmFsc1tpXTtcbiAgICBjb25zdCBObiA9ICF0aGlzLk5uID8gMCA6IHYgPT09IE5PID8gLS10aGlzLk5uIDogdGhpcy5ObjtcbiAgICB0aGlzLnZhbHNbaV0gPSB0O1xuICAgIHJldHVybiBObiA9PT0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxBcnJheTxSPj4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICBjb25zdCBzID0gdGhpcy5pbnNBcnI7XG4gICAgY29uc3QgbiA9IHRoaXMuTmMgPSB0aGlzLk5uID0gcy5sZW5ndGg7XG4gICAgY29uc3QgdmFscyA9IHRoaXMudmFscyA9IG5ldyBBcnJheShuKTtcbiAgICBpZiAobiA9PT0gMCkge1xuICAgICAgb3V0Ll9uKFtdKTtcbiAgICAgIG91dC5fYygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykge1xuICAgICAgICB2YWxzW2ldID0gTk87XG4gICAgICAgIHNbaV0uX2FkZChuZXcgQ29tYmluZUxpc3RlbmVyKGksIG91dCwgdGhpcykpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIGNvbnN0IHMgPSB0aGlzLmluc0FycjtcbiAgICBjb25zdCBuID0gcy5sZW5ndGg7XG4gICAgY29uc3QgaWxzID0gdGhpcy5pbHM7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHNbaV0uX3JlbW92ZShpbHNbaV0pO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPEFycmF5PFI+PjtcbiAgICB0aGlzLmlscyA9IFtdO1xuICAgIHRoaXMudmFscyA9IFtdO1xuICB9XG59XG5cbmNsYXNzIEZyb21BcnJheTxUPiBpbXBsZW1lbnRzIEludGVybmFsUHJvZHVjZXI8VD4ge1xuICBwdWJsaWMgdHlwZSA9ICdmcm9tQXJyYXknO1xuICBwdWJsaWMgYTogQXJyYXk8VD47XG5cbiAgY29uc3RydWN0b3IoYTogQXJyYXk8VD4pIHtcbiAgICB0aGlzLmEgPSBhO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogSW50ZXJuYWxMaXN0ZW5lcjxUPik6IHZvaWQge1xuICAgIGNvbnN0IGEgPSB0aGlzLmE7XG4gICAgZm9yIChsZXQgaSA9IDAsIG4gPSBhLmxlbmd0aDsgaSA8IG47IGkrKykgb3V0Ll9uKGFbaV0pO1xuICAgIG91dC5fYygpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gIH1cbn1cblxuY2xhc3MgRnJvbVByb21pc2U8VD4gaW1wbGVtZW50cyBJbnRlcm5hbFByb2R1Y2VyPFQ+IHtcbiAgcHVibGljIHR5cGUgPSAnZnJvbVByb21pc2UnO1xuICBwdWJsaWMgb246IGJvb2xlYW47XG4gIHB1YmxpYyBwOiBQcm9taXNlTGlrZTxUPjtcblxuICBjb25zdHJ1Y3RvcihwOiBQcm9taXNlTGlrZTxUPikge1xuICAgIHRoaXMub24gPSBmYWxzZTtcbiAgICB0aGlzLnAgPSBwO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogSW50ZXJuYWxMaXN0ZW5lcjxUPik6IHZvaWQge1xuICAgIGNvbnN0IHByb2QgPSB0aGlzO1xuICAgIHRoaXMub24gPSB0cnVlO1xuICAgIHRoaXMucC50aGVuKFxuICAgICAgKHY6IFQpID0+IHtcbiAgICAgICAgaWYgKHByb2Qub24pIHtcbiAgICAgICAgICBvdXQuX24odik7XG4gICAgICAgICAgb3V0Ll9jKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoZTogYW55KSA9PiB7XG4gICAgICAgIG91dC5fZShlKTtcbiAgICAgIH0sXG4gICAgKS50aGVuKG5vb3AsIChlcnI6IGFueSkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7IHRocm93IGVycjsgfSk7XG4gICAgfSk7XG4gIH1cblxuICBfc3RvcCgpOiB2b2lkIHtcbiAgICB0aGlzLm9uID0gZmFsc2U7XG4gIH1cbn1cblxuY2xhc3MgUGVyaW9kaWMgaW1wbGVtZW50cyBJbnRlcm5hbFByb2R1Y2VyPG51bWJlcj4ge1xuICBwdWJsaWMgdHlwZSA9ICdwZXJpb2RpYyc7XG4gIHB1YmxpYyBwZXJpb2Q6IG51bWJlcjtcbiAgcHJpdmF0ZSBpbnRlcnZhbElEOiBhbnk7XG4gIHByaXZhdGUgaTogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHBlcmlvZDogbnVtYmVyKSB7XG4gICAgdGhpcy5wZXJpb2QgPSBwZXJpb2Q7XG4gICAgdGhpcy5pbnRlcnZhbElEID0gLTE7XG4gICAgdGhpcy5pID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IEludGVybmFsTGlzdGVuZXI8bnVtYmVyPik6IHZvaWQge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIGZ1bmN0aW9uIGludGVydmFsSGFuZGxlcigpIHsgb3V0Ll9uKHNlbGYuaSsrKTsgfVxuICAgIHRoaXMuaW50ZXJ2YWxJRCA9IHNldEludGVydmFsKGludGVydmFsSGFuZGxlciwgdGhpcy5wZXJpb2QpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW50ZXJ2YWxJRCAhPT0gLTEpIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElEKTtcbiAgICB0aGlzLmludGVydmFsSUQgPSAtMTtcbiAgICB0aGlzLmkgPSAwO1xuICB9XG59XG5cbmNsYXNzIERlYnVnPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdkZWJ1Zyc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFQ+O1xuICBwcml2YXRlIHM6ICh0OiBUKSA9PiBhbnk7IC8vIHNweVxuICBwcml2YXRlIGw6IHN0cmluZzsgLy8gbGFiZWxcblxuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPik7XG4gIGNvbnN0cnVjdG9yKGluczogU3RyZWFtPFQ+LCBhcmc/OiBzdHJpbmcpO1xuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPiwgYXJnPzogKHQ6IFQpID0+IGFueSk7XG4gIGNvbnN0cnVjdG9yKGluczogU3RyZWFtPFQ+LCBhcmc/OiBzdHJpbmcgfCAoKHQ6IFQpID0+IGFueSkpO1xuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPiwgYXJnPzogc3RyaW5nIHwgKCh0OiBUKSA9PiBhbnkpIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5zID0gbm9vcDtcbiAgICB0aGlzLmwgPSAnJztcbiAgICBpZiAodHlwZW9mIGFyZyA9PT0gJ3N0cmluZycpIHRoaXMubCA9IGFyZzsgZWxzZSBpZiAodHlwZW9mIGFyZyA9PT0gJ2Z1bmN0aW9uJykgdGhpcy5zID0gYXJnO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHMgPSB0aGlzLnMsIGwgPSB0aGlzLmw7XG4gICAgaWYgKHMgIT09IG5vb3ApIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHModCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHUuX2UoZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChsKSBjb25zb2xlLmxvZyhsICsgJzonLCB0KTsgZWxzZSBjb25zb2xlLmxvZyh0KTtcbiAgICB1Ll9uKHQpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2MoKTtcbiAgfVxufVxuXG5jbGFzcyBEcm9wPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdkcm9wJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHB1YmxpYyBtYXg6IG51bWJlcjtcbiAgcHJpdmF0ZSBkcm9wcGVkOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IobWF4OiBudW1iZXIsIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5tYXggPSBtYXg7XG4gICAgdGhpcy5kcm9wcGVkID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuZHJvcHBlZCA9IDA7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGlmICh0aGlzLmRyb3BwZWQrKyA+PSB0aGlzLm1heCkgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9jKCk7XG4gIH1cbn1cblxuY2xhc3MgRW5kV2hlbkxpc3RlbmVyPFQ+IGltcGxlbWVudHMgSW50ZXJuYWxMaXN0ZW5lcjxhbnk+IHtcbiAgcHJpdmF0ZSBvdXQ6IFN0cmVhbTxUPjtcbiAgcHJpdmF0ZSBvcDogRW5kV2hlbjxUPjtcblxuICBjb25zdHJ1Y3RvcihvdXQ6IFN0cmVhbTxUPiwgb3A6IEVuZFdoZW48VD4pIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm9wID0gb3A7XG4gIH1cblxuICBfbigpIHtcbiAgICB0aGlzLm9wLmVuZCgpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICB0aGlzLm91dC5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgdGhpcy5vcC5lbmQoKTtcbiAgfVxufVxuXG5jbGFzcyBFbmRXaGVuPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdlbmRXaGVuJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHB1YmxpYyBvOiBTdHJlYW08YW55PjsgLy8gbyA9IG90aGVyXG4gIHByaXZhdGUgb2lsOiBJbnRlcm5hbExpc3RlbmVyPGFueT47IC8vIG9pbCA9IG90aGVyIEludGVybmFsTGlzdGVuZXJcblxuICBjb25zdHJ1Y3RvcihvOiBTdHJlYW08YW55PiwgaW5zOiBTdHJlYW08VD4pIHtcbiAgICB0aGlzLmlucyA9IGlucztcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLm8gPSBvO1xuICAgIHRoaXMub2lsID0gTk9fSUw7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm8uX2FkZCh0aGlzLm9pbCA9IG5ldyBFbmRXaGVuTGlzdGVuZXIob3V0LCB0aGlzKSk7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vLl9yZW1vdmUodGhpcy5vaWwpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMub2lsID0gTk9fSUw7XG4gIH1cblxuICBlbmQoKTogdm9pZCB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2MoKTtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIHRoaXMuZW5kKCk7XG4gIH1cbn1cblxuY2xhc3MgRmlsdGVyPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdmaWx0ZXInO1xuICBwdWJsaWMgaW5zOiBTdHJlYW08VD47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxUPjtcbiAgcHVibGljIGY6ICh0OiBUKSA9PiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHBhc3NlczogKHQ6IFQpID0+IGJvb2xlYW4sIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5mID0gcGFzc2VzO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHIgPSBfdHJ5KHRoaXMsIHQsIHUpO1xuICAgIGlmIChyID09PSBOTyB8fCAhcikgcmV0dXJuO1xuICAgIHUuX24odCk7XG4gIH1cblxuICBfZShlcnI6IGFueSkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9lKGVycik7XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmNsYXNzIEZsYXR0ZW5MaXN0ZW5lcjxUPiBpbXBsZW1lbnRzIEludGVybmFsTGlzdGVuZXI8VD4ge1xuICBwcml2YXRlIG91dDogU3RyZWFtPFQ+O1xuICBwcml2YXRlIG9wOiBGbGF0dGVuPFQ+O1xuXG4gIGNvbnN0cnVjdG9yKG91dDogU3RyZWFtPFQ+LCBvcDogRmxhdHRlbjxUPikge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMub3AgPSBvcDtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICB0aGlzLm91dC5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgdGhpcy5vdXQuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIHRoaXMub3AuaW5uZXIgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5vcC5sZXNzKCk7XG4gIH1cbn1cblxuY2xhc3MgRmxhdHRlbjxUPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFN0cmVhbTxUPiwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdmbGF0dGVuJztcbiAgcHVibGljIGluczogU3RyZWFtPFN0cmVhbTxUPj47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxUPjtcbiAgcHJpdmF0ZSBvcGVuOiBib29sZWFuO1xuICBwdWJsaWMgaW5uZXI6IFN0cmVhbTxUPjsgLy8gQ3VycmVudCBpbm5lciBTdHJlYW1cbiAgcHJpdmF0ZSBpbDogSW50ZXJuYWxMaXN0ZW5lcjxUPjsgLy8gQ3VycmVudCBpbm5lciBJbnRlcm5hbExpc3RlbmVyXG5cbiAgY29uc3RydWN0b3IoaW5zOiBTdHJlYW08U3RyZWFtPFQ+Pikge1xuICAgIHRoaXMuaW5zID0gaW5zO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgdGhpcy5pbm5lciA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLmlsID0gTk9fSUw7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICAgIHRoaXMuaW5uZXIgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5pbCA9IE5PX0lMO1xuICAgIHRoaXMuaW5zLl9hZGQodGhpcyk7XG4gIH1cblxuICBfc3RvcCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucy5fcmVtb3ZlKHRoaXMpO1xuICAgIGlmICh0aGlzLmlubmVyICE9PSBOTykgdGhpcy5pbm5lci5fcmVtb3ZlKHRoaXMuaWwpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgdGhpcy5pbm5lciA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLmlsID0gTk9fSUw7XG4gIH1cblxuICBsZXNzKCk6IHZvaWQge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICBpZiAoIXRoaXMub3BlbiAmJiB0aGlzLmlubmVyID09PSBOTykgdS5fYygpO1xuICB9XG5cbiAgX24oczogU3RyZWFtPFQ+KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHsgaW5uZXIsIGlsIH0gPSB0aGlzO1xuICAgIGlmIChpbm5lciAhPT0gTk8gJiYgaWwgIT09IE5PX0lMKSBpbm5lci5fcmVtb3ZlKGlsKTtcbiAgICAodGhpcy5pbm5lciA9IHMpLl9hZGQodGhpcy5pbCA9IG5ldyBGbGF0dGVuTGlzdGVuZXIodSwgdGhpcykpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgdGhpcy5sZXNzKCk7XG4gIH1cbn1cblxuY2xhc3MgRm9sZDxULCBSPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFQsIFI+IHtcbiAgcHVibGljIHR5cGUgPSAnZm9sZCc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFI+O1xuICBwdWJsaWMgZjogKHQ6IFQpID0+IFI7XG4gIHB1YmxpYyBzZWVkOiBSO1xuICBwcml2YXRlIGFjYzogUjsgLy8gaW5pdGlhbGl6ZWQgYXMgc2VlZFxuXG4gIGNvbnN0cnVjdG9yKGY6IChhY2M6IFIsIHQ6IFQpID0+IFIsIHNlZWQ6IFIsIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08Uj47XG4gICAgdGhpcy5mID0gKHQ6IFQpID0+IGYodGhpcy5hY2MsIHQpO1xuICAgIHRoaXMuYWNjID0gdGhpcy5zZWVkID0gc2VlZDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxSPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuYWNjID0gdGhpcy5zZWVkO1xuICAgIG91dC5fbih0aGlzLmFjYyk7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08Uj47XG4gICAgdGhpcy5hY2MgPSB0aGlzLnNlZWQ7XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHIgPSBfdHJ5KHRoaXMsIHQsIHUpO1xuICAgIGlmIChyID09PSBOTykgcmV0dXJuO1xuICAgIHUuX24odGhpcy5hY2MgPSByIGFzIFIpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2MoKTtcbiAgfVxufVxuXG5jbGFzcyBMYXN0PFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdsYXN0JztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHByaXZhdGUgaGFzOiBib29sZWFuO1xuICBwcml2YXRlIHZhbDogVDtcblxuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPikge1xuICAgIHRoaXMuaW5zID0gaW5zO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMuaGFzID0gZmFsc2U7XG4gICAgdGhpcy52YWwgPSBOTyBhcyBUO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5oYXMgPSBmYWxzZTtcbiAgICB0aGlzLmlucy5fYWRkKHRoaXMpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLnZhbCA9IE5PIGFzIFQ7XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgdGhpcy5oYXMgPSB0cnVlO1xuICAgIHRoaXMudmFsID0gdDtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICBpZiAodGhpcy5oYXMpIHtcbiAgICAgIHUuX24odGhpcy52YWwpO1xuICAgICAgdS5fYygpO1xuICAgIH0gZWxzZSB1Ll9lKG5ldyBFcnJvcignbGFzdCgpIGZhaWxlZCBiZWNhdXNlIGlucHV0IHN0cmVhbSBjb21wbGV0ZWQnKSk7XG4gIH1cbn1cblxuY2xhc3MgTWFwT3A8VCwgUj4gaW1wbGVtZW50cyBPcGVyYXRvcjxULCBSPiB7XG4gIHB1YmxpYyB0eXBlID0gJ21hcCc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFI+O1xuICBwdWJsaWMgZjogKHQ6IFQpID0+IFI7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogKHQ6IFQpID0+IFIsIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08Uj47XG4gICAgdGhpcy5mID0gcHJvamVjdDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxSPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuaW5zLl9hZGQodGhpcyk7XG4gIH1cblxuICBfc3RvcCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucy5fcmVtb3ZlKHRoaXMpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFI+O1xuICB9XG5cbiAgX24odDogVCkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICBjb25zdCByID0gX3RyeSh0aGlzLCB0LCB1KTtcbiAgICBpZiAociA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9uKHIgYXMgUik7XG4gIH1cblxuICBfZShlcnI6IGFueSkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9lKGVycik7XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmNsYXNzIFJlbWVtYmVyPFQ+IGltcGxlbWVudHMgSW50ZXJuYWxQcm9kdWNlcjxUPiB7XG4gIHB1YmxpYyB0eXBlID0gJ3JlbWVtYmVyJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG5cbiAgY29uc3RydWN0b3IoaW5zOiBTdHJlYW08VD4pIHtcbiAgICB0aGlzLmlucyA9IGlucztcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuaW5zLl9hZGQob3V0KTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcy5vdXQpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICB9XG59XG5cbmNsYXNzIFJlcGxhY2VFcnJvcjxUPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFQsIFQ+IHtcbiAgcHVibGljIHR5cGUgPSAncmVwbGFjZUVycm9yJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHB1YmxpYyBmOiAoZXJyOiBhbnkpID0+IFN0cmVhbTxUPjtcblxuICBjb25zdHJ1Y3RvcihyZXBsYWNlcjogKGVycjogYW55KSA9PiBTdHJlYW08VD4sIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5mID0gcmVwbGFjZXI7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLmlucy5fYWRkKHRoaXMpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmlucy5fcmVtb3ZlKHRoaXMpO1xuICAgICAgKHRoaXMuaW5zID0gdGhpcy5mKGVycikpLl9hZGQodGhpcyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdS5fZShlKTtcbiAgICB9XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmNsYXNzIFN0YXJ0V2l0aDxUPiBpbXBsZW1lbnRzIEludGVybmFsUHJvZHVjZXI8VD4ge1xuICBwdWJsaWMgdHlwZSA9ICdzdGFydFdpdGgnO1xuICBwdWJsaWMgaW5zOiBTdHJlYW08VD47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxUPjtcbiAgcHVibGljIHZhbDogVDtcblxuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPiwgdmFsOiBUKSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy52YWwgPSB2YWw7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm91dC5fbih0aGlzLnZhbCk7XG4gICAgdGhpcy5pbnMuX2FkZChvdXQpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzLm91dCk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cbn1cblxuY2xhc3MgVGFrZTxUPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFQsIFQ+IHtcbiAgcHVibGljIHR5cGUgPSAndGFrZSc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFQ+O1xuICBwdWJsaWMgbWF4OiBudW1iZXI7XG4gIHByaXZhdGUgdGFrZW46IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihtYXg6IG51bWJlciwgaW5zOiBTdHJlYW08VD4pIHtcbiAgICB0aGlzLmlucyA9IGlucztcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLm1heCA9IG1heDtcbiAgICB0aGlzLnRha2VuID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMudGFrZW4gPSAwO1xuICAgIGlmICh0aGlzLm1heCA8PSAwKSBvdXQuX2MoKTsgZWxzZSB0aGlzLmlucy5fYWRkKHRoaXMpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgY29uc3QgbSA9ICsrdGhpcy50YWtlbjtcbiAgICBpZiAobSA8IHRoaXMubWF4KSB1Ll9uKHQpOyBlbHNlIGlmIChtID09PSB0aGlzLm1heCkge1xuICAgICAgdS5fbih0KTtcbiAgICAgIHUuX2MoKTtcbiAgICB9XG4gIH1cblxuICBfZShlcnI6IGFueSkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9lKGVycik7XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdHJlYW08VD4gaW1wbGVtZW50cyBJbnRlcm5hbExpc3RlbmVyPFQ+IHtcbiAgcHVibGljIF9wcm9kOiBJbnRlcm5hbFByb2R1Y2VyPFQ+O1xuICBwcm90ZWN0ZWQgX2lsczogQXJyYXk8SW50ZXJuYWxMaXN0ZW5lcjxUPj47IC8vICdpbHMnID0gSW50ZXJuYWwgbGlzdGVuZXJzXG4gIHByb3RlY3RlZCBfc3RvcElEOiBhbnk7XG4gIHByb3RlY3RlZCBfZGw6IEludGVybmFsTGlzdGVuZXI8VD47IC8vIHRoZSBkZWJ1ZyBsaXN0ZW5lclxuICBwcm90ZWN0ZWQgX2Q6IGJvb2xlYW47IC8vIGZsYWcgaW5kaWNhdGluZyB0aGUgZXhpc3RlbmNlIG9mIHRoZSBkZWJ1ZyBsaXN0ZW5lclxuICBwcm90ZWN0ZWQgX3RhcmdldDogU3RyZWFtPFQ+IHwgbnVsbDsgLy8gaW1pdGF0aW9uIHRhcmdldCBpZiB0aGlzIFN0cmVhbSB3aWxsIGltaXRhdGVcbiAgcHJvdGVjdGVkIF9lcnI6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcm9kdWNlcj86IEludGVybmFsUHJvZHVjZXI8VD4pIHtcbiAgICB0aGlzLl9wcm9kID0gcHJvZHVjZXIgfHwgTk8gYXMgSW50ZXJuYWxQcm9kdWNlcjxUPjtcbiAgICB0aGlzLl9pbHMgPSBbXTtcbiAgICB0aGlzLl9zdG9wSUQgPSBOTztcbiAgICB0aGlzLl9kbCA9IE5PIGFzIEludGVybmFsTGlzdGVuZXI8VD47XG4gICAgdGhpcy5fZCA9IGZhbHNlO1xuICAgIHRoaXMuX3RhcmdldCA9IG51bGw7XG4gICAgdGhpcy5fZXJyID0gTk87XG4gIH1cblxuICBfbih0OiBUKTogdm9pZCB7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBMID0gYS5sZW5ndGg7XG4gICAgaWYgKHRoaXMuX2QpIHRoaXMuX2RsLl9uKHQpO1xuICAgIGlmIChMID09IDEpIGFbMF0uX24odCk7IGVsc2UgaWYgKEwgPT0gMCkgcmV0dXJuOyBlbHNlIHtcbiAgICAgIGNvbnN0IGIgPSBjcChhKTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTDsgaSsrKSBiW2ldLl9uKHQpO1xuICAgIH1cbiAgfVxuXG4gIF9lKGVycjogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2VyciAhPT0gTk8pIHJldHVybjtcbiAgICB0aGlzLl9lcnIgPSBlcnI7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBMID0gYS5sZW5ndGg7XG4gICAgdGhpcy5feCgpO1xuICAgIGlmICh0aGlzLl9kKSB0aGlzLl9kbC5fZShlcnIpO1xuICAgIGlmIChMID09IDEpIGFbMF0uX2UoZXJyKTsgZWxzZSBpZiAoTCA9PSAwKSByZXR1cm47IGVsc2Uge1xuICAgICAgY29uc3QgYiA9IGNwKGEpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIGJbaV0uX2UoZXJyKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9kICYmIEwgPT0gMCkgdGhyb3cgdGhpcy5fZXJyO1xuICB9XG5cbiAgX2MoKTogdm9pZCB7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBMID0gYS5sZW5ndGg7XG4gICAgdGhpcy5feCgpO1xuICAgIGlmICh0aGlzLl9kKSB0aGlzLl9kbC5fYygpO1xuICAgIGlmIChMID09IDEpIGFbMF0uX2MoKTsgZWxzZSBpZiAoTCA9PSAwKSByZXR1cm47IGVsc2Uge1xuICAgICAgY29uc3QgYiA9IGNwKGEpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIGJbaV0uX2MoKTtcbiAgICB9XG4gIH1cblxuICBfeCgpOiB2b2lkIHsgLy8gdGVhciBkb3duIGxvZ2ljLCBhZnRlciBlcnJvciBvciBjb21wbGV0ZVxuICAgIGlmICh0aGlzLl9pbHMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgaWYgKHRoaXMuX3Byb2QgIT09IE5PKSB0aGlzLl9wcm9kLl9zdG9wKCk7XG4gICAgdGhpcy5fZXJyID0gTk87XG4gICAgdGhpcy5faWxzID0gW107XG4gIH1cblxuICBfc3RvcE5vdygpIHtcbiAgICAvLyBXQVJOSU5HOiBjb2RlIHRoYXQgY2FsbHMgdGhpcyBtZXRob2Qgc2hvdWxkXG4gICAgLy8gZmlyc3QgY2hlY2sgaWYgdGhpcy5fcHJvZCBpcyB2YWxpZCAobm90IGBOT2ApXG4gICAgdGhpcy5fcHJvZC5fc3RvcCgpO1xuICAgIHRoaXMuX2VyciA9IE5PO1xuICAgIHRoaXMuX3N0b3BJRCA9IE5PO1xuICB9XG5cbiAgX2FkZChpbDogSW50ZXJuYWxMaXN0ZW5lcjxUPik6IHZvaWQge1xuICAgIGNvbnN0IHRhID0gdGhpcy5fdGFyZ2V0O1xuICAgIGlmICh0YSkgcmV0dXJuIHRhLl9hZGQoaWwpO1xuICAgIGNvbnN0IGEgPSB0aGlzLl9pbHM7XG4gICAgYS5wdXNoKGlsKTtcbiAgICBpZiAoYS5sZW5ndGggPiAxKSByZXR1cm47XG4gICAgaWYgKHRoaXMuX3N0b3BJRCAhPT0gTk8pIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9zdG9wSUQpO1xuICAgICAgdGhpcy5fc3RvcElEID0gTk87XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHAgPSB0aGlzLl9wcm9kO1xuICAgICAgaWYgKHAgIT09IE5PKSBwLl9zdGFydCh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBfcmVtb3ZlKGlsOiBJbnRlcm5hbExpc3RlbmVyPFQ+KTogdm9pZCB7XG4gICAgY29uc3QgdGEgPSB0aGlzLl90YXJnZXQ7XG4gICAgaWYgKHRhKSByZXR1cm4gdGEuX3JlbW92ZShpbCk7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBpID0gYS5pbmRleE9mKGlsKTtcbiAgICBpZiAoaSA+IC0xKSB7XG4gICAgICBhLnNwbGljZShpLCAxKTtcbiAgICAgIGlmICh0aGlzLl9wcm9kICE9PSBOTyAmJiBhLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgIHRoaXMuX2VyciA9IE5PO1xuICAgICAgICB0aGlzLl9zdG9wSUQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3N0b3BOb3coKSk7XG4gICAgICB9IGVsc2UgaWYgKGEubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHRoaXMuX3BydW5lQ3ljbGVzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgYWxsIHBhdGhzIHN0ZW1taW5nIGZyb20gYHRoaXNgIHN0cmVhbSBldmVudHVhbGx5IGVuZCBhdCBgdGhpc2BcbiAgLy8gc3RyZWFtLCB0aGVuIHdlIHJlbW92ZSB0aGUgc2luZ2xlIGxpc3RlbmVyIG9mIGB0aGlzYCBzdHJlYW0sIHRvXG4gIC8vIGZvcmNlIGl0IHRvIGVuZCBpdHMgZXhlY3V0aW9uIGFuZCBkaXNwb3NlIHJlc291cmNlcy4gVGhpcyBtZXRob2RcbiAgLy8gYXNzdW1lcyBhcyBhIHByZWNvbmRpdGlvbiB0aGF0IHRoaXMuX2lscyBoYXMganVzdCBvbmUgbGlzdGVuZXIuXG4gIF9wcnVuZUN5Y2xlcygpIHtcbiAgICBpZiAodGhpcy5faGFzTm9TaW5rcyh0aGlzLCBbXSkpIHRoaXMuX3JlbW92ZSh0aGlzLl9pbHNbMF0pO1xuICB9XG5cbiAgLy8gQ2hlY2tzIHdoZXRoZXIgKnRoZXJlIGlzIG5vKiBwYXRoIHN0YXJ0aW5nIGZyb20gYHhgIHRoYXQgbGVhZHMgdG8gYW4gZW5kXG4gIC8vIGxpc3RlbmVyIChzaW5rKSBpbiB0aGUgc3RyZWFtIGdyYXBoLCBmb2xsb3dpbmcgZWRnZXMgQS0+QiB3aGVyZSBCIGlzIGFcbiAgLy8gbGlzdGVuZXIgb2YgQS4gVGhpcyBtZWFucyB0aGVzZSBwYXRocyBjb25zdGl0dXRlIGEgY3ljbGUgc29tZWhvdy4gSXMgZ2l2ZW5cbiAgLy8gYSB0cmFjZSBvZiBhbGwgdmlzaXRlZCBub2RlcyBzbyBmYXIuXG4gIF9oYXNOb1NpbmtzKHg6IEludGVybmFsTGlzdGVuZXI8YW55PiwgdHJhY2U6IEFycmF5PGFueT4pOiBib29sZWFuIHtcbiAgICBpZiAodHJhY2UuaW5kZXhPZih4KSAhPT0gLTEpXG4gICAgICByZXR1cm4gdHJ1ZTsgZWxzZVxuICAgICAgaWYgKCh4IGFzIGFueSBhcyBPdXRTZW5kZXI8YW55Pikub3V0ID09PSB0aGlzKVxuICAgICAgICByZXR1cm4gdHJ1ZTsgZWxzZVxuICAgICAgICBpZiAoKHggYXMgYW55IGFzIE91dFNlbmRlcjxhbnk+KS5vdXQgJiYgKHggYXMgYW55IGFzIE91dFNlbmRlcjxhbnk+KS5vdXQgIT09IE5PKVxuICAgICAgICAgIHJldHVybiB0aGlzLl9oYXNOb1NpbmtzKCh4IGFzIGFueSBhcyBPdXRTZW5kZXI8YW55Pikub3V0LCB0cmFjZS5jb25jYXQoeCkpOyBlbHNlXG4gICAgICAgICAgaWYgKCh4IGFzIFN0cmVhbTxhbnk+KS5faWxzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMCwgTiA9ICh4IGFzIFN0cmVhbTxhbnk+KS5faWxzLmxlbmd0aDsgaSA8IE47IGkrKylcbiAgICAgICAgICAgICAgaWYgKCF0aGlzLl9oYXNOb1NpbmtzKCh4IGFzIFN0cmVhbTxhbnk+KS5faWxzW2ldLCB0cmFjZS5jb25jYXQoeCkpKVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH0gZWxzZSByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGN0b3IoKTogdHlwZW9mIFN0cmVhbSB7XG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBNZW1vcnlTdHJlYW0gPyBNZW1vcnlTdHJlYW0gOiBTdHJlYW07XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIExpc3RlbmVyIHRvIHRoZSBTdHJlYW0uXG4gICAqXG4gICAqIEBwYXJhbSB7TGlzdGVuZXJ9IGxpc3RlbmVyXG4gICAqL1xuICBhZGRMaXN0ZW5lcihsaXN0ZW5lcjogUGFydGlhbDxMaXN0ZW5lcjxUPj4pOiB2b2lkIHtcbiAgICAobGlzdGVuZXIgYXMgSW50ZXJuYWxMaXN0ZW5lcjxUPikuX24gPSBsaXN0ZW5lci5uZXh0IHx8IG5vb3A7XG4gICAgKGxpc3RlbmVyIGFzIEludGVybmFsTGlzdGVuZXI8VD4pLl9lID0gbGlzdGVuZXIuZXJyb3IgfHwgbm9vcDtcbiAgICAobGlzdGVuZXIgYXMgSW50ZXJuYWxMaXN0ZW5lcjxUPikuX2MgPSBsaXN0ZW5lci5jb21wbGV0ZSB8fCBub29wO1xuICAgIHRoaXMuX2FkZChsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgTGlzdGVuZXIgZnJvbSB0aGUgU3RyZWFtLCBhc3N1bWluZyB0aGUgTGlzdGVuZXIgd2FzIGFkZGVkIHRvIGl0LlxuICAgKlxuICAgKiBAcGFyYW0ge0xpc3RlbmVyPFQ+fSBsaXN0ZW5lclxuICAgKi9cbiAgcmVtb3ZlTGlzdGVuZXIobGlzdGVuZXI6IFBhcnRpYWw8TGlzdGVuZXI8VD4+KTogdm9pZCB7XG4gICAgdGhpcy5fcmVtb3ZlKGxpc3RlbmVyIGFzIEludGVybmFsTGlzdGVuZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBMaXN0ZW5lciB0byB0aGUgU3RyZWFtIHJldHVybmluZyBhIFN1YnNjcmlwdGlvbiB0byByZW1vdmUgdGhhdFxuICAgKiBsaXN0ZW5lci5cbiAgICpcbiAgICogQHBhcmFtIHtMaXN0ZW5lcn0gbGlzdGVuZXJcbiAgICogQHJldHVybnMge1N1YnNjcmlwdGlvbn1cbiAgICovXG4gIHN1YnNjcmliZShsaXN0ZW5lcjogUGFydGlhbDxMaXN0ZW5lcjxUPj4pOiBTdWJzY3JpcHRpb24ge1xuICAgIHRoaXMuYWRkTGlzdGVuZXIobGlzdGVuZXIpO1xuICAgIHJldHVybiBuZXcgU3RyZWFtU3ViPFQ+KHRoaXMsIGxpc3RlbmVyIGFzIEludGVybmFsTGlzdGVuZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBpbnRlcm9wIGJldHdlZW4gbW9zdC5qcyBhbmQgUnhKUyA1XG4gICAqXG4gICAqIEByZXR1cm5zIHtTdHJlYW19XG4gICAqL1xuICBbJCRvYnNlcnZhYmxlXSgpOiBTdHJlYW08VD4ge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgU3RyZWFtIGdpdmVuIGEgUHJvZHVjZXIuXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtQcm9kdWNlcn0gcHJvZHVjZXIgQW4gb3B0aW9uYWwgUHJvZHVjZXIgdGhhdCBkaWN0YXRlcyBob3cgdG9cbiAgICogc3RhcnQsIGdlbmVyYXRlIGV2ZW50cywgYW5kIHN0b3AgdGhlIFN0cmVhbS5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZTxUPihwcm9kdWNlcj86IFByb2R1Y2VyPFQ+KTogU3RyZWFtPFQ+IHtcbiAgICBpZiAocHJvZHVjZXIpIHtcbiAgICAgIGlmICh0eXBlb2YgcHJvZHVjZXIuc3RhcnQgIT09ICdmdW5jdGlvbidcbiAgICAgICAgfHwgdHlwZW9mIHByb2R1Y2VyLnN0b3AgIT09ICdmdW5jdGlvbicpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcigncHJvZHVjZXIgcmVxdWlyZXMgYm90aCBzdGFydCBhbmQgc3RvcCBmdW5jdGlvbnMnKTtcbiAgICAgIGludGVybmFsaXplUHJvZHVjZXIocHJvZHVjZXIpOyAvLyBtdXRhdGVzIHRoZSBpbnB1dFxuICAgIH1cbiAgICByZXR1cm4gbmV3IFN0cmVhbShwcm9kdWNlciBhcyBJbnRlcm5hbFByb2R1Y2VyPFQ+ICYgUHJvZHVjZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgTWVtb3J5U3RyZWFtIGdpdmVuIGEgUHJvZHVjZXIuXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtQcm9kdWNlcn0gcHJvZHVjZXIgQW4gb3B0aW9uYWwgUHJvZHVjZXIgdGhhdCBkaWN0YXRlcyBob3cgdG9cbiAgICogc3RhcnQsIGdlbmVyYXRlIGV2ZW50cywgYW5kIHN0b3AgdGhlIFN0cmVhbS5cbiAgICogQHJldHVybiB7TWVtb3J5U3RyZWFtfVxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZVdpdGhNZW1vcnk8VD4ocHJvZHVjZXI/OiBQcm9kdWNlcjxUPik6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgaWYgKHByb2R1Y2VyKSBpbnRlcm5hbGl6ZVByb2R1Y2VyKHByb2R1Y2VyKTsgLy8gbXV0YXRlcyB0aGUgaW5wdXRcbiAgICByZXR1cm4gbmV3IE1lbW9yeVN0cmVhbTxUPihwcm9kdWNlciBhcyBJbnRlcm5hbFByb2R1Y2VyPFQ+ICYgUHJvZHVjZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBTdHJlYW0gdGhhdCBkb2VzIG5vdGhpbmcgd2hlbiBzdGFydGVkLiBJdCBuZXZlciBlbWl0cyBhbnkgZXZlbnQuXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqICAgICAgICAgIG5ldmVyXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAZmFjdG9yeSB0cnVlXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBuZXZlcjxUID0gYW55PigpOiBTdHJlYW08VD4ge1xuICAgIHJldHVybiBuZXcgU3RyZWFtPFQ+KHsgX3N0YXJ0OiBub29wLCBfc3RvcDogbm9vcCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgU3RyZWFtIHRoYXQgaW1tZWRpYXRlbHkgZW1pdHMgdGhlIFwiY29tcGxldGVcIiBub3RpZmljYXRpb24gd2hlblxuICAgKiBzdGFydGVkLCBhbmQgdGhhdCdzIGl0LlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiBlbXB0eVxuICAgKiAtfFxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgZW1wdHk8VCA9IGFueT4oKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPih7XG4gICAgICBfc3RhcnQoaWw6IEludGVybmFsTGlzdGVuZXI8YW55PikgeyBpbC5fYygpOyB9LFxuICAgICAgX3N0b3A6IG5vb3AsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFN0cmVhbSB0aGF0IGltbWVkaWF0ZWx5IGVtaXRzIGFuIFwiZXJyb3JcIiBub3RpZmljYXRpb24gd2l0aCB0aGVcbiAgICogdmFsdWUgeW91IHBhc3NlZCBhcyB0aGUgYGVycm9yYCBhcmd1bWVudCB3aGVuIHRoZSBzdHJlYW0gc3RhcnRzLCBhbmQgdGhhdCdzXG4gICAqIGl0LlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiB0aHJvdyhYKVxuICAgKiAtWFxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0gZXJyb3IgVGhlIGVycm9yIGV2ZW50IHRvIGVtaXQgb24gdGhlIGNyZWF0ZWQgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgdGhyb3coZXJyb3I6IGFueSk6IFN0cmVhbTxhbnk+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxhbnk+KHtcbiAgICAgIF9zdGFydChpbDogSW50ZXJuYWxMaXN0ZW5lcjxhbnk+KSB7IGlsLl9lKGVycm9yKTsgfSxcbiAgICAgIF9zdG9wOiBub29wLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdHJlYW0gZnJvbSBhbiBBcnJheSwgUHJvbWlzZSwgb3IgYW4gT2JzZXJ2YWJsZS5cbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0ge0FycmF5fFByb21pc2VMaWtlfE9ic2VydmFibGV9IGlucHV0IFRoZSBpbnB1dCB0byBtYWtlIGEgc3RyZWFtIGZyb20uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBmcm9tPFQ+KGlucHV0OiBQcm9taXNlTGlrZTxUPiB8IFN0cmVhbTxUPiB8IEFycmF5PFQ+IHwgT2JzZXJ2YWJsZTxUPik6IFN0cmVhbTxUPiB7XG4gICAgaWYgKHR5cGVvZiBpbnB1dFskJG9ic2VydmFibGVdID09PSAnZnVuY3Rpb24nKVxuICAgICAgcmV0dXJuIFN0cmVhbS5mcm9tT2JzZXJ2YWJsZTxUPihpbnB1dCBhcyBPYnNlcnZhYmxlPFQ+KTsgZWxzZVxuICAgICAgaWYgKHR5cGVvZiAoaW5wdXQgYXMgUHJvbWlzZUxpa2U8VD4pLnRoZW4gPT09ICdmdW5jdGlvbicpXG4gICAgICAgIHJldHVybiBTdHJlYW0uZnJvbVByb21pc2U8VD4oaW5wdXQgYXMgUHJvbWlzZUxpa2U8VD4pOyBlbHNlXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGlucHV0KSlcbiAgICAgICAgICByZXR1cm4gU3RyZWFtLmZyb21BcnJheTxUPihpbnB1dCk7XG5cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBUeXBlIG9mIGlucHV0IHRvIGZyb20oKSBtdXN0IGJlIGFuIEFycmF5LCBQcm9taXNlLCBvciBPYnNlcnZhYmxlYCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFN0cmVhbSB0aGF0IGltbWVkaWF0ZWx5IGVtaXRzIHRoZSBhcmd1bWVudHMgdGhhdCB5b3UgZ2l2ZSB0b1xuICAgKiAqb2YqLCB0aGVuIGNvbXBsZXRlcy5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogb2YoMSwyLDMpXG4gICAqIDEyM3xcbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIGEgVGhlIGZpcnN0IHZhbHVlIHlvdSB3YW50IHRvIGVtaXQgYXMgYW4gZXZlbnQgb24gdGhlIHN0cmVhbS5cbiAgICogQHBhcmFtIGIgVGhlIHNlY29uZCB2YWx1ZSB5b3Ugd2FudCB0byBlbWl0IGFzIGFuIGV2ZW50IG9uIHRoZSBzdHJlYW0uIE9uZVxuICAgKiBvciBtb3JlIG9mIHRoZXNlIHZhbHVlcyBtYXkgYmUgZ2l2ZW4gYXMgYXJndW1lbnRzLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgb2Y8VD4oLi4uaXRlbXM6IEFycmF5PFQ+KTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gU3RyZWFtLmZyb21BcnJheTxUPihpdGVtcyk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYW4gYXJyYXkgdG8gYSBzdHJlYW0uIFRoZSByZXR1cm5lZCBzdHJlYW0gd2lsbCBlbWl0IHN5bmNocm9ub3VzbHlcbiAgICogYWxsIHRoZSBpdGVtcyBpbiB0aGUgYXJyYXksIGFuZCB0aGVuIGNvbXBsZXRlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiBmcm9tQXJyYXkoWzEsMiwzXSlcbiAgICogMTIzfFxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gYmUgY29udmVydGVkIGFzIGEgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgZnJvbUFycmF5PFQ+KGFycmF5OiBBcnJheTxUPik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08VD4obmV3IEZyb21BcnJheTxUPihhcnJheSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgcHJvbWlzZSB0byBhIHN0cmVhbS4gVGhlIHJldHVybmVkIHN0cmVhbSB3aWxsIGVtaXQgdGhlIHJlc29sdmVkXG4gICAqIHZhbHVlIG9mIHRoZSBwcm9taXNlLCBhbmQgdGhlbiBjb21wbGV0ZS4gSG93ZXZlciwgaWYgdGhlIHByb21pc2UgaXNcbiAgICogcmVqZWN0ZWQsIHRoZSBzdHJlYW0gd2lsbCBlbWl0IHRoZSBjb3JyZXNwb25kaW5nIGVycm9yLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiBmcm9tUHJvbWlzZSggLS0tLTQyIClcbiAgICogLS0tLS0tLS0tLS0tLS0tLS00MnxcbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtQcm9taXNlTGlrZX0gcHJvbWlzZSBUaGUgcHJvbWlzZSB0byBiZSBjb252ZXJ0ZWQgYXMgYSBzdHJlYW0uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBmcm9tUHJvbWlzZTxUPihwcm9taXNlOiBQcm9taXNlTGlrZTxUPik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08VD4obmV3IEZyb21Qcm9taXNlPFQ+KHByb21pc2UpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhbiBPYnNlcnZhYmxlIGludG8gYSBTdHJlYW0uXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHthbnl9IG9ic2VydmFibGUgVGhlIG9ic2VydmFibGUgdG8gYmUgY29udmVydGVkIGFzIGEgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgZnJvbU9ic2VydmFibGU8VD4ob2JzOiB7IHN1YnNjcmliZTogYW55IH0pOiBTdHJlYW08VD4ge1xuICAgIGlmICgob2JzIGFzIFN0cmVhbTxUPikuZW5kV2hlbiAhPT0gdW5kZWZpbmVkKSByZXR1cm4gb2JzIGFzIFN0cmVhbTxUPjtcbiAgICBjb25zdCBvID0gdHlwZW9mIG9ic1skJG9ic2VydmFibGVdID09PSAnZnVuY3Rpb24nID8gb2JzWyQkb2JzZXJ2YWJsZV0oKSA6IG9icztcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPihuZXcgRnJvbU9ic2VydmFibGUobykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdHJlYW0gdGhhdCBwZXJpb2RpY2FsbHkgZW1pdHMgaW5jcmVtZW50YWwgbnVtYmVycywgZXZlcnlcbiAgICogYHBlcmlvZGAgbWlsbGlzZWNvbmRzLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAgICAgcGVyaW9kaWMoMTAwMClcbiAgICogLS0tMC0tLTEtLS0yLS0tMy0tLTQtLS0uLi5cbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtudW1iZXJ9IHBlcmlvZCBUaGUgaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzIHRvIHVzZSBhcyBhIHJhdGUgb2ZcbiAgICogZW1pc3Npb24uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBwZXJpb2RpYyhwZXJpb2Q6IG51bWJlcik6IFN0cmVhbTxudW1iZXI+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxudW1iZXI+KG5ldyBQZXJpb2RpYyhwZXJpb2QpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCbGVuZHMgbXVsdGlwbGUgc3RyZWFtcyB0b2dldGhlciwgZW1pdHRpbmcgZXZlbnRzIGZyb20gYWxsIG9mIHRoZW1cbiAgICogY29uY3VycmVudGx5LlxuICAgKlxuICAgKiAqbWVyZ2UqIHRha2VzIG11bHRpcGxlIHN0cmVhbXMgYXMgYXJndW1lbnRzLCBhbmQgY3JlYXRlcyBhIHN0cmVhbSB0aGF0XG4gICAqIGJlaGF2ZXMgbGlrZSBlYWNoIG9mIHRoZSBhcmd1bWVudCBzdHJlYW1zLCBpbiBwYXJhbGxlbC5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tLTItLS0tLTMtLS0tLS0tLTQtLS1cbiAgICogLS0tLWEtLS0tLWItLS0tYy0tLWQtLS0tLS1cbiAgICogICAgICAgICAgICBtZXJnZVxuICAgKiAtLTEtYS0tMi0tYi0tMy1jLS0tZC0tNC0tLVxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0ge1N0cmVhbX0gc3RyZWFtMSBBIHN0cmVhbSB0byBtZXJnZSB0b2dldGhlciB3aXRoIG90aGVyIHN0cmVhbXMuXG4gICAqIEBwYXJhbSB7U3RyZWFtfSBzdHJlYW0yIEEgc3RyZWFtIHRvIG1lcmdlIHRvZ2V0aGVyIHdpdGggb3RoZXIgc3RyZWFtcy4gVHdvXG4gICAqIG9yIG1vcmUgc3RyZWFtcyBtYXkgYmUgZ2l2ZW4gYXMgYXJndW1lbnRzLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgbWVyZ2U6IE1lcmdlU2lnbmF0dXJlID0gZnVuY3Rpb24gbWVyZ2UoLi4uc3RyZWFtczogQXJyYXk8U3RyZWFtPGFueT4+KSB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08YW55PihuZXcgTWVyZ2Uoc3RyZWFtcykpO1xuICB9IGFzIE1lcmdlU2lnbmF0dXJlO1xuXG4gIC8qKlxuICAgKiBDb21iaW5lcyBtdWx0aXBsZSBpbnB1dCBzdHJlYW1zIHRvZ2V0aGVyIHRvIHJldHVybiBhIHN0cmVhbSB3aG9zZSBldmVudHNcbiAgICogYXJlIGFycmF5cyB0aGF0IGNvbGxlY3QgdGhlIGxhdGVzdCBldmVudHMgZnJvbSBlYWNoIGlucHV0IHN0cmVhbS5cbiAgICpcbiAgICogKmNvbWJpbmUqIGludGVybmFsbHkgcmVtZW1iZXJzIHRoZSBtb3N0IHJlY2VudCBldmVudCBmcm9tIGVhY2ggb2YgdGhlIGlucHV0XG4gICAqIHN0cmVhbXMuIFdoZW4gYW55IG9mIHRoZSBpbnB1dCBzdHJlYW1zIGVtaXRzIGFuIGV2ZW50LCB0aGF0IGV2ZW50IHRvZ2V0aGVyXG4gICAqIHdpdGggYWxsIHRoZSBvdGhlciBzYXZlZCBldmVudHMgYXJlIGNvbWJpbmVkIGludG8gYW4gYXJyYXkuIFRoYXQgYXJyYXkgd2lsbFxuICAgKiBiZSBlbWl0dGVkIG9uIHRoZSBvdXRwdXQgc3RyZWFtLiBJdCdzIGVzc2VudGlhbGx5IGEgd2F5IG9mIGpvaW5pbmcgdG9nZXRoZXJcbiAgICogdGhlIGV2ZW50cyBmcm9tIG11bHRpcGxlIHN0cmVhbXMuXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tMS0tLS0yLS0tLS0zLS0tLS0tLS00LS0tXG4gICAqIC0tLS1hLS0tLS1iLS0tLS1jLS1kLS0tLS0tXG4gICAqICAgICAgICAgIGNvbWJpbmVcbiAgICogLS0tLTFhLTJhLTJiLTNiLTNjLTNkLTRkLS1cbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtTdHJlYW19IHN0cmVhbTEgQSBzdHJlYW0gdG8gY29tYmluZSB0b2dldGhlciB3aXRoIG90aGVyIHN0cmVhbXMuXG4gICAqIEBwYXJhbSB7U3RyZWFtfSBzdHJlYW0yIEEgc3RyZWFtIHRvIGNvbWJpbmUgdG9nZXRoZXIgd2l0aCBvdGhlciBzdHJlYW1zLlxuICAgKiBNdWx0aXBsZSBzdHJlYW1zLCBub3QganVzdCB0d28sIG1heSBiZSBnaXZlbiBhcyBhcmd1bWVudHMuXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBjb21iaW5lOiBDb21iaW5lU2lnbmF0dXJlID0gZnVuY3Rpb24gY29tYmluZSguLi5zdHJlYW1zOiBBcnJheTxTdHJlYW08YW55Pj4pIHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxBcnJheTxhbnk+PihuZXcgQ29tYmluZTxhbnk+KHN0cmVhbXMpKTtcbiAgfSBhcyBDb21iaW5lU2lnbmF0dXJlO1xuXG4gIHByb3RlY3RlZCBfbWFwPFU+KHByb2plY3Q6ICh0OiBUKSA9PiBVKTogU3RyZWFtPFU+IHwgTWVtb3J5U3RyZWFtPFU+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VT4obmV3IE1hcE9wPFQsIFU+KHByb2plY3QsIHRoaXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm1zIGVhY2ggZXZlbnQgZnJvbSB0aGUgaW5wdXQgU3RyZWFtIHRocm91Z2ggYSBgcHJvamVjdGAgZnVuY3Rpb24sXG4gICAqIHRvIGdldCBhIFN0cmVhbSB0aGF0IGVtaXRzIHRob3NlIHRyYW5zZm9ybWVkIGV2ZW50cy5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tMy0tNS0tLS0tNy0tLS0tLVxuICAgKiAgICBtYXAoaSA9PiBpICogMTApXG4gICAqIC0tMTAtLTMwLTUwLS0tLTcwLS0tLS1cbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IHByb2plY3QgQSBmdW5jdGlvbiBvZiB0eXBlIGAodDogVCkgPT4gVWAgdGhhdCB0YWtlcyBldmVudFxuICAgKiBgdGAgb2YgdHlwZSBgVGAgZnJvbSB0aGUgaW5wdXQgU3RyZWFtIGFuZCBwcm9kdWNlcyBhbiBldmVudCBvZiB0eXBlIGBVYCwgdG9cbiAgICogYmUgZW1pdHRlZCBvbiB0aGUgb3V0cHV0IFN0cmVhbS5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgbWFwPFU+KHByb2plY3Q6ICh0OiBUKSA9PiBVKTogU3RyZWFtPFU+IHtcbiAgICByZXR1cm4gdGhpcy5fbWFwKHByb2plY3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0J3MgbGlrZSBgbWFwYCwgYnV0IHRyYW5zZm9ybXMgZWFjaCBpbnB1dCBldmVudCB0byBhbHdheXMgdGhlIHNhbWVcbiAgICogY29uc3RhbnQgdmFsdWUgb24gdGhlIG91dHB1dCBTdHJlYW0uXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tMS0tLTMtLTUtLS0tLTctLS0tLVxuICAgKiAgICAgICBtYXBUbygxMClcbiAgICogLS0xMC0tMTAtMTAtLS0tMTAtLS0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0gcHJvamVjdGVkVmFsdWUgQSB2YWx1ZSB0byBlbWl0IG9uIHRoZSBvdXRwdXQgU3RyZWFtIHdoZW5ldmVyIHRoZVxuICAgKiBpbnB1dCBTdHJlYW0gZW1pdHMgYW55IHZhbHVlLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBtYXBUbzxVPihwcm9qZWN0ZWRWYWx1ZTogVSk6IFN0cmVhbTxVPiB7XG4gICAgY29uc3QgcyA9IHRoaXMubWFwKCgpID0+IHByb2plY3RlZFZhbHVlKTtcbiAgICBjb25zdCBvcDogT3BlcmF0b3I8VCwgVT4gPSBzLl9wcm9kIGFzIE9wZXJhdG9yPFQsIFU+O1xuICAgIG9wLnR5cGUgPSAnbWFwVG8nO1xuICAgIHJldHVybiBzO1xuICB9XG5cbiAgZmlsdGVyPFMgZXh0ZW5kcyBUPihwYXNzZXM6ICh0OiBUKSA9PiB0IGlzIFMpOiBTdHJlYW08Uz47XG4gIGZpbHRlcihwYXNzZXM6ICh0OiBUKSA9PiBib29sZWFuKTogU3RyZWFtPFQ+O1xuICAvKipcbiAgICogT25seSBhbGxvd3MgZXZlbnRzIHRoYXQgcGFzcyB0aGUgdGVzdCBnaXZlbiBieSB0aGUgYHBhc3Nlc2AgYXJndW1lbnQuXG4gICAqXG4gICAqIEVhY2ggZXZlbnQgZnJvbSB0aGUgaW5wdXQgc3RyZWFtIGlzIGdpdmVuIHRvIHRoZSBgcGFzc2VzYCBmdW5jdGlvbi4gSWYgdGhlXG4gICAqIGZ1bmN0aW9uIHJldHVybnMgYHRydWVgLCB0aGUgZXZlbnQgaXMgZm9yd2FyZGVkIHRvIHRoZSBvdXRwdXQgc3RyZWFtLFxuICAgKiBvdGhlcndpc2UgaXQgaXMgaWdub3JlZCBhbmQgbm90IGZvcndhcmRlZC5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tMi0tMy0tLS0tNC0tLS0tNS0tLTYtLTctOC0tXG4gICAqICAgICBmaWx0ZXIoaSA9PiBpICUgMiA9PT0gMClcbiAgICogLS0tLS0tMi0tLS0tLS0tNC0tLS0tLS0tLTYtLS0tOC0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwYXNzZXMgQSBmdW5jdGlvbiBvZiB0eXBlIGAodDogVCkgPT4gYm9vbGVhbmAgdGhhdCB0YWtlc1xuICAgKiBhbiBldmVudCBmcm9tIHRoZSBpbnB1dCBzdHJlYW0gYW5kIGNoZWNrcyBpZiBpdCBwYXNzZXMsIGJ5IHJldHVybmluZyBhXG4gICAqIGJvb2xlYW4uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIGZpbHRlcihwYXNzZXM6ICh0OiBUKSA9PiBib29sZWFuKTogU3RyZWFtPFQ+IHtcbiAgICBjb25zdCBwID0gdGhpcy5fcHJvZDtcbiAgICBpZiAocCBpbnN0YW5jZW9mIEZpbHRlcilcbiAgICAgIHJldHVybiBuZXcgU3RyZWFtPFQ+KG5ldyBGaWx0ZXI8VD4oXG4gICAgICAgIGFuZCgocCBhcyBGaWx0ZXI8VD4pLmYsIHBhc3NlcyksXG4gICAgICAgIChwIGFzIEZpbHRlcjxUPikuaW5zXG4gICAgICApKTtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPihuZXcgRmlsdGVyPFQ+KHBhc3NlcywgdGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIExldHMgdGhlIGZpcnN0IGBhbW91bnRgIG1hbnkgZXZlbnRzIGZyb20gdGhlIGlucHV0IHN0cmVhbSBwYXNzIHRvIHRoZVxuICAgKiBvdXRwdXQgc3RyZWFtLCB0aGVuIG1ha2VzIHRoZSBvdXRwdXQgc3RyZWFtIGNvbXBsZXRlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLWEtLS1iLS1jLS0tLWQtLS1lLS1cbiAgICogICAgdGFrZSgzKVxuICAgKiAtLWEtLS1iLS1jfFxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGFtb3VudCBIb3cgbWFueSBldmVudHMgdG8gYWxsb3cgZnJvbSB0aGUgaW5wdXQgc3RyZWFtXG4gICAqIGJlZm9yZSBjb21wbGV0aW5nIHRoZSBvdXRwdXQgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICB0YWtlKGFtb3VudDogbnVtYmVyKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VD4obmV3IFRha2U8VD4oYW1vdW50LCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogSWdub3JlcyB0aGUgZmlyc3QgYGFtb3VudGAgbWFueSBldmVudHMgZnJvbSB0aGUgaW5wdXQgc3RyZWFtLCBhbmQgdGhlblxuICAgKiBhZnRlciB0aGF0IHN0YXJ0cyBmb3J3YXJkaW5nIGV2ZW50cyBmcm9tIHRoZSBpbnB1dCBzdHJlYW0gdG8gdGhlIG91dHB1dFxuICAgKiBzdHJlYW0uXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tYS0tLWItLWMtLS0tZC0tLWUtLVxuICAgKiAgICAgICBkcm9wKDMpXG4gICAqIC0tLS0tLS0tLS0tLS0tZC0tLWUtLVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGFtb3VudCBIb3cgbWFueSBldmVudHMgdG8gaWdub3JlIGZyb20gdGhlIGlucHV0IHN0cmVhbVxuICAgKiBiZWZvcmUgZm9yd2FyZGluZyBhbGwgZXZlbnRzIGZyb20gdGhlIGlucHV0IHN0cmVhbSB0byB0aGUgb3V0cHV0IHN0cmVhbS5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgZHJvcChhbW91bnQ6IG51bWJlcik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08VD4obmV3IERyb3A8VD4oYW1vdW50LCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiB0aGUgaW5wdXQgc3RyZWFtIGNvbXBsZXRlcywgdGhlIG91dHB1dCBzdHJlYW0gd2lsbCBlbWl0IHRoZSBsYXN0IGV2ZW50XG4gICAqIGVtaXR0ZWQgYnkgdGhlIGlucHV0IHN0cmVhbSwgYW5kIHRoZW4gd2lsbCBhbHNvIGNvbXBsZXRlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLWEtLS1iLS1jLS1kLS0tLXxcbiAgICogICAgICAgbGFzdCgpXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tZHxcbiAgICogYGBgXG4gICAqXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIGxhc3QoKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPihuZXcgTGFzdDxUPih0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogUHJlcGVuZHMgdGhlIGdpdmVuIGBpbml0aWFsYCB2YWx1ZSB0byB0aGUgc2VxdWVuY2Ugb2YgZXZlbnRzIGVtaXR0ZWQgYnkgdGhlXG4gICAqIGlucHV0IHN0cmVhbS4gVGhlIHJldHVybmVkIHN0cmVhbSBpcyBhIE1lbW9yeVN0cmVhbSwgd2hpY2ggbWVhbnMgaXQgaXNcbiAgICogYWxyZWFkeSBgcmVtZW1iZXIoKWAnZC5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0tMS0tLTItLS0tLTMtLS1cbiAgICogICBzdGFydFdpdGgoMClcbiAgICogMC0tMS0tLTItLS0tLTMtLS1cbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSBpbml0aWFsIFRoZSB2YWx1ZSBvciBldmVudCB0byBwcmVwZW5kLlxuICAgKiBAcmV0dXJuIHtNZW1vcnlTdHJlYW19XG4gICAqL1xuICBzdGFydFdpdGgoaW5pdGlhbDogVCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBNZW1vcnlTdHJlYW08VD4obmV3IFN0YXJ0V2l0aDxUPih0aGlzLCBpbml0aWFsKSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlcyBhbm90aGVyIHN0cmVhbSB0byBkZXRlcm1pbmUgd2hlbiB0byBjb21wbGV0ZSB0aGUgY3VycmVudCBzdHJlYW0uXG4gICAqXG4gICAqIFdoZW4gdGhlIGdpdmVuIGBvdGhlcmAgc3RyZWFtIGVtaXRzIGFuIGV2ZW50IG9yIGNvbXBsZXRlcywgdGhlIG91dHB1dFxuICAgKiBzdHJlYW0gd2lsbCBjb21wbGV0ZS4gQmVmb3JlIHRoYXQgaGFwcGVucywgdGhlIG91dHB1dCBzdHJlYW0gd2lsbCBiZWhhdmVzXG4gICAqIGxpa2UgdGhlIGlucHV0IHN0cmVhbS5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0tMS0tLTItLS0tLTMtLTQtLS0tNS0tLS02LS0tXG4gICAqICAgZW5kV2hlbiggLS0tLS0tLS1hLS1iLS18IClcbiAgICogLS0tMS0tLTItLS0tLTMtLTQtLXxcbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciBTb21lIG90aGVyIHN0cmVhbSB0aGF0IGlzIHVzZWQgdG8ga25vdyB3aGVuIHNob3VsZCB0aGUgb3V0cHV0XG4gICAqIHN0cmVhbSBvZiB0aGlzIG9wZXJhdG9yIGNvbXBsZXRlLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBlbmRXaGVuKG90aGVyOiBTdHJlYW08YW55Pik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyAodGhpcy5jdG9yKCkpPFQ+KG5ldyBFbmRXaGVuPFQ+KG90aGVyLCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogXCJGb2xkc1wiIHRoZSBzdHJlYW0gb250byBpdHNlbGYuXG4gICAqXG4gICAqIENvbWJpbmVzIGV2ZW50cyBmcm9tIHRoZSBwYXN0IHRocm91Z2hvdXRcbiAgICogdGhlIGVudGlyZSBleGVjdXRpb24gb2YgdGhlIGlucHV0IHN0cmVhbSwgYWxsb3dpbmcgeW91IHRvIGFjY3VtdWxhdGUgdGhlbVxuICAgKiB0b2dldGhlci4gSXQncyBlc3NlbnRpYWxseSBsaWtlIGBBcnJheS5wcm90b3R5cGUucmVkdWNlYC4gVGhlIHJldHVybmVkXG4gICAqIHN0cmVhbSBpcyBhIE1lbW9yeVN0cmVhbSwgd2hpY2ggbWVhbnMgaXQgaXMgYWxyZWFkeSBgcmVtZW1iZXIoKWAnZC5cbiAgICpcbiAgICogVGhlIG91dHB1dCBzdHJlYW0gc3RhcnRzIGJ5IGVtaXR0aW5nIHRoZSBgc2VlZGAgd2hpY2ggeW91IGdpdmUgYXMgYXJndW1lbnQuXG4gICAqIFRoZW4sIHdoZW4gYW4gZXZlbnQgaGFwcGVucyBvbiB0aGUgaW5wdXQgc3RyZWFtLCBpdCBpcyBjb21iaW5lZCB3aXRoIHRoYXRcbiAgICogc2VlZCB2YWx1ZSB0aHJvdWdoIHRoZSBgYWNjdW11bGF0ZWAgZnVuY3Rpb24sIGFuZCB0aGUgb3V0cHV0IHZhbHVlIGlzXG4gICAqIGVtaXR0ZWQgb24gdGhlIG91dHB1dCBzdHJlYW0uIGBmb2xkYCByZW1lbWJlcnMgdGhhdCBvdXRwdXQgdmFsdWUgYXMgYGFjY2BcbiAgICogKFwiYWNjdW11bGF0b3JcIiksIGFuZCB0aGVuIHdoZW4gYSBuZXcgaW5wdXQgZXZlbnQgYHRgIGhhcHBlbnMsIGBhY2NgIHdpbGwgYmVcbiAgICogY29tYmluZWQgd2l0aCB0aGF0IHRvIHByb2R1Y2UgdGhlIG5ldyBgYWNjYCBhbmQgc28gZm9ydGguXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tLS0tLTEtLS0tLTEtLTItLS0tMS0tLS0xLS0tLS0tXG4gICAqICAgZm9sZCgoYWNjLCB4KSA9PiBhY2MgKyB4LCAzKVxuICAgKiAzLS0tLS00LS0tLS01LS03LS0tLTgtLS0tOS0tLS0tLVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gYWNjdW11bGF0ZSBBIGZ1bmN0aW9uIG9mIHR5cGUgYChhY2M6IFIsIHQ6IFQpID0+IFJgIHRoYXRcbiAgICogdGFrZXMgdGhlIHByZXZpb3VzIGFjY3VtdWxhdGVkIHZhbHVlIGBhY2NgIGFuZCB0aGUgaW5jb21pbmcgZXZlbnQgZnJvbSB0aGVcbiAgICogaW5wdXQgc3RyZWFtIGFuZCBwcm9kdWNlcyB0aGUgbmV3IGFjY3VtdWxhdGVkIHZhbHVlLlxuICAgKiBAcGFyYW0gc2VlZCBUaGUgaW5pdGlhbCBhY2N1bXVsYXRlZCB2YWx1ZSwgb2YgdHlwZSBgUmAuXG4gICAqIEByZXR1cm4ge01lbW9yeVN0cmVhbX1cbiAgICovXG4gIGZvbGQ8Uj4oYWNjdW11bGF0ZTogKGFjYzogUiwgdDogVCkgPT4gUiwgc2VlZDogUik6IE1lbW9yeVN0cmVhbTxSPiB7XG4gICAgcmV0dXJuIG5ldyBNZW1vcnlTdHJlYW08Uj4obmV3IEZvbGQ8VCwgUj4oYWNjdW11bGF0ZSwgc2VlZCwgdGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFuIGVycm9yIHdpdGggYW5vdGhlciBzdHJlYW0uXG4gICAqXG4gICAqIFdoZW4gKGFuZCBpZikgYW4gZXJyb3IgaGFwcGVucyBvbiB0aGUgaW5wdXQgc3RyZWFtLCBpbnN0ZWFkIG9mIGZvcndhcmRpbmdcbiAgICogdGhhdCBlcnJvciB0byB0aGUgb3V0cHV0IHN0cmVhbSwgKnJlcGxhY2VFcnJvciogd2lsbCBjYWxsIHRoZSBgcmVwbGFjZWBcbiAgICogZnVuY3Rpb24gd2hpY2ggcmV0dXJucyB0aGUgc3RyZWFtIHRoYXQgdGhlIG91dHB1dCBzdHJlYW0gd2lsbCByZXBsaWNhdGUuXG4gICAqIEFuZCwgaW4gY2FzZSB0aGF0IG5ldyBzdHJlYW0gYWxzbyBlbWl0cyBhbiBlcnJvciwgYHJlcGxhY2VgIHdpbGwgYmUgY2FsbGVkXG4gICAqIGFnYWluIHRvIGdldCBhbm90aGVyIHN0cmVhbSB0byBzdGFydCByZXBsaWNhdGluZy5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tMi0tLS0tMy0tNC0tLS0tWFxuICAgKiAgIHJlcGxhY2VFcnJvciggKCkgPT4gLS0xMC0tfCApXG4gICAqIC0tMS0tLTItLS0tLTMtLTQtLS0tLS0tLTEwLS18XG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSByZXBsYWNlIEEgZnVuY3Rpb24gb2YgdHlwZSBgKGVycikgPT4gU3RyZWFtYCB0aGF0IHRha2VzXG4gICAqIHRoZSBlcnJvciB0aGF0IG9jY3VycmVkIG9uIHRoZSBpbnB1dCBzdHJlYW0gb3Igb24gdGhlIHByZXZpb3VzIHJlcGxhY2VtZW50XG4gICAqIHN0cmVhbSBhbmQgcmV0dXJucyBhIG5ldyBzdHJlYW0uIFRoZSBvdXRwdXQgc3RyZWFtIHdpbGwgYmVoYXZlIGxpa2UgdGhlXG4gICAqIHN0cmVhbSB0aGF0IHRoaXMgZnVuY3Rpb24gcmV0dXJucy5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgcmVwbGFjZUVycm9yKHJlcGxhY2U6IChlcnI6IGFueSkgPT4gU3RyZWFtPFQ+KTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VD4obmV3IFJlcGxhY2VFcnJvcjxUPihyZXBsYWNlLCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogRmxhdHRlbnMgYSBcInN0cmVhbSBvZiBzdHJlYW1zXCIsIGhhbmRsaW5nIG9ubHkgb25lIG5lc3RlZCBzdHJlYW0gYXQgYSB0aW1lXG4gICAqIChubyBjb25jdXJyZW5jeSkuXG4gICAqXG4gICAqIElmIHRoZSBpbnB1dCBzdHJlYW0gaXMgYSBzdHJlYW0gdGhhdCBlbWl0cyBzdHJlYW1zLCB0aGVuIHRoaXMgb3BlcmF0b3Igd2lsbFxuICAgKiByZXR1cm4gYW4gb3V0cHV0IHN0cmVhbSB3aGljaCBpcyBhIGZsYXQgc3RyZWFtOiBlbWl0cyByZWd1bGFyIGV2ZW50cy4gVGhlXG4gICAqIGZsYXR0ZW5pbmcgaGFwcGVucyB3aXRob3V0IGNvbmN1cnJlbmN5LiBJdCB3b3JrcyBsaWtlIHRoaXM6IHdoZW4gdGhlIGlucHV0XG4gICAqIHN0cmVhbSBlbWl0cyBhIG5lc3RlZCBzdHJlYW0sICpmbGF0dGVuKiB3aWxsIHN0YXJ0IGltaXRhdGluZyB0aGF0IG5lc3RlZFxuICAgKiBvbmUuIEhvd2V2ZXIsIGFzIHNvb24gYXMgdGhlIG5leHQgbmVzdGVkIHN0cmVhbSBpcyBlbWl0dGVkIG9uIHRoZSBpbnB1dFxuICAgKiBzdHJlYW0sICpmbGF0dGVuKiB3aWxsIGZvcmdldCB0aGUgcHJldmlvdXMgbmVzdGVkIG9uZSBpdCB3YXMgaW1pdGF0aW5nLCBhbmRcbiAgICogd2lsbCBzdGFydCBpbWl0YXRpbmcgdGhlIG5ldyBuZXN0ZWQgb25lLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS1cbiAgICogICBcXCAgICAgICAgXFxcbiAgICogICAgXFwgICAgICAgLS0tLTEtLS0tMi0tLTMtLVxuICAgKiAgICAtLWEtLWItLS0tYy0tLS1kLS0tLS0tLS1cbiAgICogICAgICAgICAgIGZsYXR0ZW5cbiAgICogLS0tLS1hLS1iLS0tLS0tMS0tLS0yLS0tMy0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBmbGF0dGVuPFI+KHRoaXM6IFN0cmVhbTxTdHJlYW08Uj4gfCBNZW1vcnlTdHJlYW08Uj4+KTogU3RyZWFtPFI+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxSPihuZXcgRmxhdHRlbih0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogUGFzc2VzIHRoZSBpbnB1dCBzdHJlYW0gdG8gYSBjdXN0b20gb3BlcmF0b3IsIHRvIHByb2R1Y2UgYW4gb3V0cHV0IHN0cmVhbS5cbiAgICpcbiAgICogKmNvbXBvc2UqIGlzIGEgaGFuZHkgd2F5IG9mIHVzaW5nIGFuIGV4aXN0aW5nIGZ1bmN0aW9uIGluIGEgY2hhaW5lZCBzdHlsZS5cbiAgICogSW5zdGVhZCBvZiB3cml0aW5nIGBvdXRTdHJlYW0gPSBmKGluU3RyZWFtKWAgeW91IGNhbiB3cml0ZVxuICAgKiBgb3V0U3RyZWFtID0gaW5TdHJlYW0uY29tcG9zZShmKWAuXG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IG9wZXJhdG9yIEEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIHN0cmVhbSBhcyBpbnB1dCBhbmRcbiAgICogcmV0dXJucyBhIHN0cmVhbSBhcyB3ZWxsLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBjb21wb3NlPFU+KG9wZXJhdG9yOiAoc3RyZWFtOiBTdHJlYW08VD4pID0+IFUpOiBVIHtcbiAgICByZXR1cm4gb3BlcmF0b3IodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvdXRwdXQgc3RyZWFtIHRoYXQgYmVoYXZlcyBsaWtlIHRoZSBpbnB1dCBzdHJlYW0sIGJ1dCBhbHNvXG4gICAqIHJlbWVtYmVycyB0aGUgbW9zdCByZWNlbnQgZXZlbnQgdGhhdCBoYXBwZW5zIG9uIHRoZSBpbnB1dCBzdHJlYW0sIHNvIHRoYXQgYVxuICAgKiBuZXdseSBhZGRlZCBsaXN0ZW5lciB3aWxsIGltbWVkaWF0ZWx5IHJlY2VpdmUgdGhhdCBtZW1vcmlzZWQgZXZlbnQuXG4gICAqXG4gICAqIEByZXR1cm4ge01lbW9yeVN0cmVhbX1cbiAgICovXG4gIHJlbWVtYmVyKCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBNZW1vcnlTdHJlYW08VD4obmV3IFJlbWVtYmVyPFQ+KHRoaXMpKTtcbiAgfVxuXG4gIGRlYnVnKCk6IFN0cmVhbTxUPjtcbiAgZGVidWcobGFiZWxPclNweTogc3RyaW5nKTogU3RyZWFtPFQ+O1xuICBkZWJ1ZyhsYWJlbE9yU3B5OiAodDogVCkgPT4gYW55KTogU3RyZWFtPFQ+O1xuICAvKipcbiAgICogUmV0dXJucyBhbiBvdXRwdXQgc3RyZWFtIHRoYXQgaWRlbnRpY2FsbHkgYmVoYXZlcyBsaWtlIHRoZSBpbnB1dCBzdHJlYW0sXG4gICAqIGJ1dCBhbHNvIHJ1bnMgYSBgc3B5YCBmdW5jdGlvbiBmb3IgZWFjaCBldmVudCwgdG8gaGVscCB5b3UgZGVidWcgeW91ciBhcHAuXG4gICAqXG4gICAqICpkZWJ1ZyogdGFrZXMgYSBgc3B5YCBmdW5jdGlvbiBhcyBhcmd1bWVudCwgYW5kIHJ1bnMgdGhhdCBmb3IgZWFjaCBldmVudFxuICAgKiBoYXBwZW5pbmcgb24gdGhlIGlucHV0IHN0cmVhbS4gSWYgeW91IGRvbid0IHByb3ZpZGUgdGhlIGBzcHlgIGFyZ3VtZW50LFxuICAgKiB0aGVuICpkZWJ1Zyogd2lsbCBqdXN0IGBjb25zb2xlLmxvZ2AgZWFjaCBldmVudC4gVGhpcyBoZWxwcyB5b3UgdG9cbiAgICogdW5kZXJzdGFuZCB0aGUgZmxvdyBvZiBldmVudHMgdGhyb3VnaCBzb21lIG9wZXJhdG9yIGNoYWluLlxuICAgKlxuICAgKiBQbGVhc2Ugbm90ZSB0aGF0IGlmIHRoZSBvdXRwdXQgc3RyZWFtIGhhcyBubyBsaXN0ZW5lcnMsIHRoZW4gaXQgd2lsbCBub3RcbiAgICogc3RhcnQsIHdoaWNoIG1lYW5zIGBzcHlgIHdpbGwgbmV2ZXIgcnVuIGJlY2F1c2Ugbm8gYWN0dWFsIGV2ZW50IGhhcHBlbnMgaW5cbiAgICogdGhhdCBjYXNlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLTEtLS0tMi0tLS0tMy0tLS0tNC0tXG4gICAqICAgICAgICAgZGVidWdcbiAgICogLS0xLS0tLTItLS0tLTMtLS0tLTQtLVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gbGFiZWxPclNweSBBIHN0cmluZyB0byB1c2UgYXMgdGhlIGxhYmVsIHdoZW4gcHJpbnRpbmdcbiAgICogZGVidWcgaW5mb3JtYXRpb24gb24gdGhlIGNvbnNvbGUsIG9yIGEgJ3NweScgZnVuY3Rpb24gdGhhdCB0YWtlcyBhbiBldmVudFxuICAgKiBhcyBhcmd1bWVudCwgYW5kIGRvZXMgbm90IG5lZWQgdG8gcmV0dXJuIGFueXRoaW5nLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBkZWJ1ZyhsYWJlbE9yU3B5Pzogc3RyaW5nIHwgKCh0OiBUKSA9PiBhbnkpKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VD4obmV3IERlYnVnPFQ+KHRoaXMsIGxhYmVsT3JTcHkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAqaW1pdGF0ZSogY2hhbmdlcyB0aGlzIGN1cnJlbnQgU3RyZWFtIHRvIGVtaXQgdGhlIHNhbWUgZXZlbnRzIHRoYXQgdGhlXG4gICAqIGBvdGhlcmAgZ2l2ZW4gU3RyZWFtIGRvZXMuIFRoaXMgbWV0aG9kIHJldHVybnMgbm90aGluZy5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgZXhpc3RzIHRvIGFsbG93IG9uZSB0aGluZzogKipjaXJjdWxhciBkZXBlbmRlbmN5IG9mIHN0cmVhbXMqKi5cbiAgICogRm9yIGluc3RhbmNlLCBsZXQncyBpbWFnaW5lIHRoYXQgZm9yIHNvbWUgcmVhc29uIHlvdSBuZWVkIHRvIGNyZWF0ZSBhXG4gICAqIGNpcmN1bGFyIGRlcGVuZGVuY3kgd2hlcmUgc3RyZWFtIGBmaXJzdCRgIGRlcGVuZHMgb24gc3RyZWFtIGBzZWNvbmQkYFxuICAgKiB3aGljaCBpbiB0dXJuIGRlcGVuZHMgb24gYGZpcnN0JGA6XG4gICAqXG4gICAqIDwhLS0gc2tpcC1leGFtcGxlIC0tPlxuICAgKiBgYGBqc1xuICAgKiBpbXBvcnQgZGVsYXkgZnJvbSAneHN0cmVhbS9leHRyYS9kZWxheSdcbiAgICpcbiAgICogdmFyIGZpcnN0JCA9IHNlY29uZCQubWFwKHggPT4geCAqIDEwKS50YWtlKDMpO1xuICAgKiB2YXIgc2Vjb25kJCA9IGZpcnN0JC5tYXAoeCA9PiB4ICsgMSkuc3RhcnRXaXRoKDEpLmNvbXBvc2UoZGVsYXkoMTAwKSk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBIb3dldmVyLCB0aGF0IGlzIGludmFsaWQgSmF2YVNjcmlwdCwgYmVjYXVzZSBgc2Vjb25kJGAgaXMgdW5kZWZpbmVkXG4gICAqIG9uIHRoZSBmaXJzdCBsaW5lLiBUaGlzIGlzIGhvdyAqaW1pdGF0ZSogY2FuIGhlbHAgc29sdmUgaXQ6XG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGltcG9ydCBkZWxheSBmcm9tICd4c3RyZWFtL2V4dHJhL2RlbGF5J1xuICAgKlxuICAgKiB2YXIgc2Vjb25kUHJveHkkID0geHMuY3JlYXRlKCk7XG4gICAqIHZhciBmaXJzdCQgPSBzZWNvbmRQcm94eSQubWFwKHggPT4geCAqIDEwKS50YWtlKDMpO1xuICAgKiB2YXIgc2Vjb25kJCA9IGZpcnN0JC5tYXAoeCA9PiB4ICsgMSkuc3RhcnRXaXRoKDEpLmNvbXBvc2UoZGVsYXkoMTAwKSk7XG4gICAqIHNlY29uZFByb3h5JC5pbWl0YXRlKHNlY29uZCQpO1xuICAgKiBgYGBcbiAgICpcbiAgICogV2UgY3JlYXRlIGBzZWNvbmRQcm94eSRgIGJlZm9yZSB0aGUgb3RoZXJzLCBzbyBpdCBjYW4gYmUgdXNlZCBpbiB0aGVcbiAgICogZGVjbGFyYXRpb24gb2YgYGZpcnN0JGAuIFRoZW4sIGFmdGVyIGJvdGggYGZpcnN0JGAgYW5kIGBzZWNvbmQkYCBhcmVcbiAgICogZGVmaW5lZCwgd2UgaG9vayBgc2Vjb25kUHJveHkkYCB3aXRoIGBzZWNvbmQkYCB3aXRoIGBpbWl0YXRlKClgIHRvIHRlbGxcbiAgICogdGhhdCB0aGV5IGFyZSBcInRoZSBzYW1lXCIuIGBpbWl0YXRlYCB3aWxsIG5vdCB0cmlnZ2VyIHRoZSBzdGFydCBvZiBhbnlcbiAgICogc3RyZWFtLCBpdCBqdXN0IGJpbmRzIGBzZWNvbmRQcm94eSRgIGFuZCBgc2Vjb25kJGAgdG9nZXRoZXIuXG4gICAqXG4gICAqIFRoZSBmb2xsb3dpbmcgaXMgYW4gZXhhbXBsZSB3aGVyZSBgaW1pdGF0ZSgpYCBpcyBpbXBvcnRhbnQgaW4gQ3ljbGUuanNcbiAgICogYXBwbGljYXRpb25zLiBBIHBhcmVudCBjb21wb25lbnQgY29udGFpbnMgc29tZSBjaGlsZCBjb21wb25lbnRzLiBBIGNoaWxkXG4gICAqIGhhcyBhbiBhY3Rpb24gc3RyZWFtIHdoaWNoIGlzIGdpdmVuIHRvIHRoZSBwYXJlbnQgdG8gZGVmaW5lIGl0cyBzdGF0ZTpcbiAgICpcbiAgICogPCEtLSBza2lwLWV4YW1wbGUgLS0+XG4gICAqIGBgYGpzXG4gICAqIGNvbnN0IGNoaWxkQWN0aW9uUHJveHkkID0geHMuY3JlYXRlKCk7XG4gICAqIGNvbnN0IHBhcmVudCA9IFBhcmVudCh7Li4uc291cmNlcywgY2hpbGRBY3Rpb24kOiBjaGlsZEFjdGlvblByb3h5JH0pO1xuICAgKiBjb25zdCBjaGlsZEFjdGlvbiQgPSBwYXJlbnQuc3RhdGUkLm1hcChzID0+IHMuY2hpbGQuYWN0aW9uJCkuZmxhdHRlbigpO1xuICAgKiBjaGlsZEFjdGlvblByb3h5JC5pbWl0YXRlKGNoaWxkQWN0aW9uJCk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBOb3RlLCB0aG91Z2gsIHRoYXQgKipgaW1pdGF0ZSgpYCBkb2VzIG5vdCBzdXBwb3J0IE1lbW9yeVN0cmVhbXMqKi4gSWYgd2VcbiAgICogd291bGQgYXR0ZW1wdCB0byBpbWl0YXRlIGEgTWVtb3J5U3RyZWFtIGluIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSwgd2Ugd291bGRcbiAgICogZWl0aGVyIGdldCBhIHJhY2UgY29uZGl0aW9uICh3aGVyZSB0aGUgc3ltcHRvbSB3b3VsZCBiZSBcIm5vdGhpbmcgaGFwcGVuc1wiKVxuICAgKiBvciBhbiBpbmZpbml0ZSBjeWNsaWMgZW1pc3Npb24gb2YgdmFsdWVzLiBJdCdzIHVzZWZ1bCB0byB0aGluayBhYm91dFxuICAgKiBNZW1vcnlTdHJlYW1zIGFzIGNlbGxzIGluIGEgc3ByZWFkc2hlZXQuIEl0IGRvZXNuJ3QgbWFrZSBhbnkgc2Vuc2UgdG9cbiAgICogZGVmaW5lIGEgc3ByZWFkc2hlZXQgY2VsbCBgQTFgIHdpdGggYSBmb3JtdWxhIHRoYXQgZGVwZW5kcyBvbiBgQjFgIGFuZFxuICAgKiBjZWxsIGBCMWAgZGVmaW5lZCB3aXRoIGEgZm9ybXVsYSB0aGF0IGRlcGVuZHMgb24gYEExYC5cbiAgICpcbiAgICogSWYgeW91IGZpbmQgeW91cnNlbGYgd2FudGluZyB0byB1c2UgYGltaXRhdGUoKWAgd2l0aCBhXG4gICAqIE1lbW9yeVN0cmVhbSwgeW91IHNob3VsZCByZXdvcmsgeW91ciBjb2RlIGFyb3VuZCBgaW1pdGF0ZSgpYCB0byB1c2UgYVxuICAgKiBTdHJlYW0gaW5zdGVhZC4gTG9vayBmb3IgdGhlIHN0cmVhbSBpbiB0aGUgY2lyY3VsYXIgZGVwZW5kZW5jeSB0aGF0XG4gICAqIHJlcHJlc2VudHMgYW4gZXZlbnQgc3RyZWFtLCBhbmQgdGhhdCB3b3VsZCBiZSBhIGNhbmRpZGF0ZSBmb3IgY3JlYXRpbmcgYVxuICAgKiBwcm94eSBTdHJlYW0gd2hpY2ggdGhlbiBpbWl0YXRlcyB0aGUgdGFyZ2V0IFN0cmVhbS5cbiAgICpcbiAgICogQHBhcmFtIHtTdHJlYW19IHRhcmdldCBUaGUgb3RoZXIgc3RyZWFtIHRvIGltaXRhdGUgb24gdGhlIGN1cnJlbnQgb25lLiBNdXN0XG4gICAqIG5vdCBiZSBhIE1lbW9yeVN0cmVhbS5cbiAgICovXG4gIGltaXRhdGUodGFyZ2V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgTWVtb3J5U3RyZWFtKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBIE1lbW9yeVN0cmVhbSB3YXMgZ2l2ZW4gdG8gaW1pdGF0ZSgpLCBidXQgaXQgb25seSAnICtcbiAgICAgICAgJ3N1cHBvcnRzIGEgU3RyZWFtLiBSZWFkIG1vcmUgYWJvdXQgdGhpcyByZXN0cmljdGlvbiBoZXJlOiAnICtcbiAgICAgICAgJ2h0dHBzOi8vZ2l0aHViLmNvbS9zdGFsdHoveHN0cmVhbSNmYXEnKTtcbiAgICB0aGlzLl90YXJnZXQgPSB0YXJnZXQ7XG4gICAgZm9yIChsZXQgaWxzID0gdGhpcy5faWxzLCBOID0gaWxzLmxlbmd0aCwgaSA9IDA7IGkgPCBOOyBpKyspIHRhcmdldC5fYWRkKGlsc1tpXSk7XG4gICAgdGhpcy5faWxzID0gW107XG4gIH1cblxuICAvKipcbiAgICogRm9yY2VzIHRoZSBTdHJlYW0gdG8gZW1pdCB0aGUgZ2l2ZW4gdmFsdWUgdG8gaXRzIGxpc3RlbmVycy5cbiAgICpcbiAgICogQXMgdGhlIG5hbWUgaW5kaWNhdGVzLCBpZiB5b3UgdXNlIHRoaXMsIHlvdSBhcmUgbW9zdCBsaWtlbHkgZG9pbmcgc29tZXRoaW5nXG4gICAqIFRoZSBXcm9uZyBXYXkuIFBsZWFzZSB0cnkgdG8gdW5kZXJzdGFuZCB0aGUgcmVhY3RpdmUgd2F5IGJlZm9yZSB1c2luZyB0aGlzXG4gICAqIG1ldGhvZC4gVXNlIGl0IG9ubHkgd2hlbiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgXCJuZXh0XCIgdmFsdWUgeW91IHdhbnQgdG8gYnJvYWRjYXN0IHRvIGFsbCBsaXN0ZW5lcnMgb2ZcbiAgICogdGhpcyBTdHJlYW0uXG4gICAqL1xuICBzaGFtZWZ1bGx5U2VuZE5leHQodmFsdWU6IFQpIHtcbiAgICB0aGlzLl9uKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JjZXMgdGhlIFN0cmVhbSB0byBlbWl0IHRoZSBnaXZlbiBlcnJvciB0byBpdHMgbGlzdGVuZXJzLlxuICAgKlxuICAgKiBBcyB0aGUgbmFtZSBpbmRpY2F0ZXMsIGlmIHlvdSB1c2UgdGhpcywgeW91IGFyZSBtb3N0IGxpa2VseSBkb2luZyBzb21ldGhpbmdcbiAgICogVGhlIFdyb25nIFdheS4gUGxlYXNlIHRyeSB0byB1bmRlcnN0YW5kIHRoZSByZWFjdGl2ZSB3YXkgYmVmb3JlIHVzaW5nIHRoaXNcbiAgICogbWV0aG9kLiBVc2UgaXQgb25seSB3aGVuIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy5cbiAgICpcbiAgICogQHBhcmFtIHthbnl9IGVycm9yIFRoZSBlcnJvciB5b3Ugd2FudCB0byBicm9hZGNhc3QgdG8gYWxsIHRoZSBsaXN0ZW5lcnMgb2ZcbiAgICogdGhpcyBTdHJlYW0uXG4gICAqL1xuICBzaGFtZWZ1bGx5U2VuZEVycm9yKGVycm9yOiBhbnkpIHtcbiAgICB0aGlzLl9lKGVycm9yKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JjZXMgdGhlIFN0cmVhbSB0byBlbWl0IHRoZSBcImNvbXBsZXRlZFwiIGV2ZW50IHRvIGl0cyBsaXN0ZW5lcnMuXG4gICAqXG4gICAqIEFzIHRoZSBuYW1lIGluZGljYXRlcywgaWYgeW91IHVzZSB0aGlzLCB5b3UgYXJlIG1vc3QgbGlrZWx5IGRvaW5nIHNvbWV0aGluZ1xuICAgKiBUaGUgV3JvbmcgV2F5LiBQbGVhc2UgdHJ5IHRvIHVuZGVyc3RhbmQgdGhlIHJlYWN0aXZlIHdheSBiZWZvcmUgdXNpbmcgdGhpc1xuICAgKiBtZXRob2QuIFVzZSBpdCBvbmx5IHdoZW4geW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLlxuICAgKi9cbiAgc2hhbWVmdWxseVNlbmRDb21wbGV0ZSgpIHtcbiAgICB0aGlzLl9jKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIFwiZGVidWdcIiBsaXN0ZW5lciB0byB0aGUgc3RyZWFtLiBUaGVyZSBjYW4gb25seSBiZSBvbmUgZGVidWdcbiAgICogbGlzdGVuZXIsIHRoYXQncyB3aHkgdGhpcyBpcyAnc2V0RGVidWdMaXN0ZW5lcicuIFRvIHJlbW92ZSB0aGUgZGVidWdcbiAgICogbGlzdGVuZXIsIGp1c3QgY2FsbCBzZXREZWJ1Z0xpc3RlbmVyKG51bGwpLlxuICAgKlxuICAgKiBBIGRlYnVnIGxpc3RlbmVyIGlzIGxpa2UgYW55IG90aGVyIGxpc3RlbmVyLiBUaGUgb25seSBkaWZmZXJlbmNlIGlzIHRoYXQgYVxuICAgKiBkZWJ1ZyBsaXN0ZW5lciBpcyBcInN0ZWFsdGh5XCI6IGl0cyBwcmVzZW5jZS9hYnNlbmNlIGRvZXMgbm90IHRyaWdnZXIgdGhlXG4gICAqIHN0YXJ0L3N0b3Agb2YgdGhlIHN0cmVhbSAob3IgdGhlIHByb2R1Y2VyIGluc2lkZSB0aGUgc3RyZWFtKS4gVGhpcyBpc1xuICAgKiB1c2VmdWwgc28geW91IGNhbiBpbnNwZWN0IHdoYXQgaXMgZ29pbmcgb24gd2l0aG91dCBjaGFuZ2luZyB0aGUgYmVoYXZpb3JcbiAgICogb2YgdGhlIHByb2dyYW0uIElmIHlvdSBoYXZlIGFuIGlkbGUgc3RyZWFtIGFuZCB5b3UgYWRkIGEgbm9ybWFsIGxpc3RlbmVyIHRvXG4gICAqIGl0LCB0aGUgc3RyZWFtIHdpbGwgc3RhcnQgZXhlY3V0aW5nLiBCdXQgaWYgeW91IHNldCBhIGRlYnVnIGxpc3RlbmVyIG9uIGFuXG4gICAqIGlkbGUgc3RyZWFtLCBpdCB3b24ndCBzdGFydCBleGVjdXRpbmcgKG5vdCB1bnRpbCB0aGUgZmlyc3Qgbm9ybWFsIGxpc3RlbmVyXG4gICAqIGlzIGFkZGVkKS5cbiAgICpcbiAgICogQXMgdGhlIG5hbWUgaW5kaWNhdGVzLCB3ZSBkb24ndCByZWNvbW1lbmQgdXNpbmcgdGhpcyBtZXRob2QgdG8gYnVpbGQgYXBwXG4gICAqIGxvZ2ljLiBJbiBmYWN0LCBpbiBtb3N0IGNhc2VzIHRoZSBkZWJ1ZyBvcGVyYXRvciB3b3JrcyBqdXN0IGZpbmUuIE9ubHkgdXNlXG4gICAqIHRoaXMgb25lIGlmIHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge0xpc3RlbmVyPFQ+fSBsaXN0ZW5lclxuICAgKi9cbiAgc2V0RGVidWdMaXN0ZW5lcihsaXN0ZW5lcjogUGFydGlhbDxMaXN0ZW5lcjxUPj4gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCFsaXN0ZW5lcikge1xuICAgICAgdGhpcy5fZCA9IGZhbHNlO1xuICAgICAgdGhpcy5fZGwgPSBOTyBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9kID0gdHJ1ZTtcbiAgICAgIChsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+KS5fbiA9IGxpc3RlbmVyLm5leHQgfHwgbm9vcDtcbiAgICAgIChsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+KS5fZSA9IGxpc3RlbmVyLmVycm9yIHx8IG5vb3A7XG4gICAgICAobGlzdGVuZXIgYXMgSW50ZXJuYWxMaXN0ZW5lcjxUPikuX2MgPSBsaXN0ZW5lci5jb21wbGV0ZSB8fCBub29wO1xuICAgICAgdGhpcy5fZGwgPSBsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+O1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTWVtb3J5U3RyZWFtPFQ+IGV4dGVuZHMgU3RyZWFtPFQ+IHtcbiAgcHJpdmF0ZSBfdj86IFQ7XG4gIHByaXZhdGUgX2hhcz86IGJvb2xlYW4gPSBmYWxzZTtcbiAgY29uc3RydWN0b3IocHJvZHVjZXI6IEludGVybmFsUHJvZHVjZXI8VD4pIHtcbiAgICBzdXBlcihwcm9kdWNlcik7XG4gIH1cblxuICBfbih4OiBUKSB7XG4gICAgdGhpcy5fdiA9IHg7XG4gICAgdGhpcy5faGFzID0gdHJ1ZTtcbiAgICBzdXBlci5fbih4KTtcbiAgfVxuXG4gIF9hZGQoaWw6IEludGVybmFsTGlzdGVuZXI8VD4pOiB2b2lkIHtcbiAgICBjb25zdCB0YSA9IHRoaXMuX3RhcmdldDtcbiAgICBpZiAodGEpIHJldHVybiB0YS5fYWRkKGlsKTtcbiAgICBjb25zdCBhID0gdGhpcy5faWxzO1xuICAgIGEucHVzaChpbCk7XG4gICAgaWYgKGEubGVuZ3RoID4gMSkge1xuICAgICAgaWYgKHRoaXMuX2hhcykgaWwuX24odGhpcy5fdiEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5fc3RvcElEICE9PSBOTykge1xuICAgICAgaWYgKHRoaXMuX2hhcykgaWwuX24odGhpcy5fdiEpO1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3N0b3BJRCk7XG4gICAgICB0aGlzLl9zdG9wSUQgPSBOTztcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2hhcykgaWwuX24odGhpcy5fdiEpOyBlbHNlIHtcbiAgICAgIGNvbnN0IHAgPSB0aGlzLl9wcm9kO1xuICAgICAgaWYgKHAgIT09IE5PKSBwLl9zdGFydCh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBfc3RvcE5vdygpIHtcbiAgICB0aGlzLl9oYXMgPSBmYWxzZTtcbiAgICBzdXBlci5fc3RvcE5vdygpO1xuICB9XG5cbiAgX3goKTogdm9pZCB7XG4gICAgdGhpcy5faGFzID0gZmFsc2U7XG4gICAgc3VwZXIuX3goKTtcbiAgfVxuXG4gIG1hcDxVPihwcm9qZWN0OiAodDogVCkgPT4gVSk6IE1lbW9yeVN0cmVhbTxVPiB7XG4gICAgcmV0dXJuIHRoaXMuX21hcChwcm9qZWN0KSBhcyBNZW1vcnlTdHJlYW08VT47XG4gIH1cblxuICBtYXBUbzxVPihwcm9qZWN0ZWRWYWx1ZTogVSk6IE1lbW9yeVN0cmVhbTxVPiB7XG4gICAgcmV0dXJuIHN1cGVyLm1hcFRvKHByb2plY3RlZFZhbHVlKSBhcyBNZW1vcnlTdHJlYW08VT47XG4gIH1cblxuICB0YWtlKGFtb3VudDogbnVtYmVyKTogTWVtb3J5U3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gc3VwZXIudGFrZShhbW91bnQpIGFzIE1lbW9yeVN0cmVhbTxUPjtcbiAgfVxuXG4gIGVuZFdoZW4ob3RoZXI6IFN0cmVhbTxhbnk+KTogTWVtb3J5U3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gc3VwZXIuZW5kV2hlbihvdGhlcikgYXMgTWVtb3J5U3RyZWFtPFQ+O1xuICB9XG5cbiAgcmVwbGFjZUVycm9yKHJlcGxhY2U6IChlcnI6IGFueSkgPT4gU3RyZWFtPFQ+KTogTWVtb3J5U3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gc3VwZXIucmVwbGFjZUVycm9yKHJlcGxhY2UpIGFzIE1lbW9yeVN0cmVhbTxUPjtcbiAgfVxuXG4gIHJlbWVtYmVyKCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkZWJ1ZygpOiBNZW1vcnlTdHJlYW08VD47XG4gIGRlYnVnKGxhYmVsT3JTcHk6IHN0cmluZyk6IE1lbW9yeVN0cmVhbTxUPjtcbiAgZGVidWcobGFiZWxPclNweTogKHQ6IFQpID0+IGFueSk6IE1lbW9yeVN0cmVhbTxUPjtcbiAgZGVidWcobGFiZWxPclNweT86IHN0cmluZyB8ICgodDogVCkgPT4gYW55KSB8IHVuZGVmaW5lZCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIHN1cGVyLmRlYnVnKGxhYmVsT3JTcHkgYXMgYW55KSBhcyBNZW1vcnlTdHJlYW08VD47XG4gIH1cbn1cblxuZXhwb3J0IHsgTk8sIE5PX0lMIH07XG5jb25zdCB4cyA9IFN0cmVhbTtcbnR5cGUgeHM8VD4gPSBTdHJlYW08VD47XG5leHBvcnQgZGVmYXVsdCB4cztcbiJdfQ== - if (protocol && protocol.substr(-1) !== ':') protocol += ':'; +/***/ }), - // only the slashedProtocols get the //. Not mailto:, xmpp:, etc. - // unless they had them to begin with. - if (this.slashes || - (!protocol || slashedProtocol[protocol]) && host !== false) { - host = '//' + (host || ''); - if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname; - } else if (!host) { - host = ''; - } +/***/ "./node_modules/xtend/immutable.js": +/*!*****************************************!*\ + !*** ./node_modules/xtend/immutable.js ***! + \*****************************************/ +/***/ (function(module) { - if (hash && hash.charAt(0) !== '#') hash = '#' + hash; - if (search && search.charAt(0) !== '?') search = '?' + search; +module.exports = extend - pathname = pathname.replace(/[?#]/g, function(match) { - return encodeURIComponent(match); - }); - search = search.replace('#', '%23'); +var hasOwnProperty = Object.prototype.hasOwnProperty; - return protocol + host + pathname + search + hash; -}; +function extend() { + var target = {} -function urlResolve(source, relative) { - return urlParse(source, false, true).resolve(relative); -} + for (var i = 0; i < arguments.length; i++) { + var source = arguments[i] -Url.prototype.resolve = function(relative) { - return this.resolveObject(urlParse(relative, false, true)).format(); -}; + for (var key in source) { + if (hasOwnProperty.call(source, key)) { + target[key] = source[key] + } + } + } -function urlResolveObject(source, relative) { - if (!source) return relative; - return urlParse(source, false, true).resolveObject(relative); + return target } -Url.prototype.resolveObject = function(relative) { - if (util.isString(relative)) { - var rel = new Url(); - rel.parse(relative, false, true); - relative = rel; - } - - var result = new Url(); - var tkeys = Object.keys(this); - for (var tk = 0; tk < tkeys.length; tk++) { - var tkey = tkeys[tk]; - result[tkey] = this[tkey]; - } - // hash is always overridden, no matter what. - // even href="" will remove it. - result.hash = relative.hash; +/***/ }), - // if the relative url is empty, then there's nothing left to do here. - if (relative.href === '') { - result.href = result.format(); - return result; - } +/***/ "?d546": +/*!************************!*\ + !*** buffer (ignored) ***! + \************************/ +/***/ (function() { - // hrefs like //foo/bar always cut to the protocol. - if (relative.slashes && !relative.protocol) { - // take everything except the protocol from relative - var rkeys = Object.keys(relative); - for (var rk = 0; rk < rkeys.length; rk++) { - var rkey = rkeys[rk]; - if (rkey !== 'protocol') - result[rkey] = relative[rkey]; - } +/* (ignored) */ - //urlParse appends trailing / to urls like http://www.example.com - if (slashedProtocol[result.protocol] && - result.hostname && !result.pathname) { - result.path = result.pathname = '/'; - } +/***/ }), - result.href = result.format(); - return result; - } +/***/ "?8131": +/*!************************!*\ + !*** buffer (ignored) ***! + \************************/ +/***/ (function() { - if (relative.protocol && relative.protocol !== result.protocol) { - // if it's a known url protocol, then changing - // the protocol does weird things - // first, if it's not file:, then we MUST have a host, - // and if there was a path - // to begin with, then we MUST have a path. - // if it is file:, then the host is dropped, - // because that's known to be hostless. - // anything else is assumed to be absolute. - if (!slashedProtocol[relative.protocol]) { - var keys = Object.keys(relative); - for (var v = 0; v < keys.length; v++) { - var k = keys[v]; - result[k] = relative[k]; - } - result.href = result.format(); - return result; - } +/* (ignored) */ - result.protocol = relative.protocol; - if (!relative.host && !hostlessProtocol[relative.protocol]) { - var relPath = (relative.pathname || '').split('/'); - while (relPath.length && !(relative.host = relPath.shift())); - if (!relative.host) relative.host = ''; - if (!relative.hostname) relative.hostname = ''; - if (relPath[0] !== '') relPath.unshift(''); - if (relPath.length < 2) relPath.unshift(''); - result.pathname = relPath.join('/'); - } else { - result.pathname = relative.pathname; - } - result.search = relative.search; - result.query = relative.query; - result.host = relative.host || ''; - result.auth = relative.auth; - result.hostname = relative.hostname || relative.host; - result.port = relative.port; - // to support http.request - if (result.pathname || result.search) { - var p = result.pathname || ''; - var s = result.search || ''; - result.path = p + s; - } - result.slashes = result.slashes || relative.slashes; - result.href = result.format(); - return result; - } +/***/ }), - var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'), - isRelAbs = ( - relative.host || - relative.pathname && relative.pathname.charAt(0) === '/' - ), - mustEndAbs = (isRelAbs || isSourceAbs || - (result.host && relative.pathname)), - removeAllDots = mustEndAbs, - srcPath = result.pathname && result.pathname.split('/') || [], - relPath = relative.pathname && relative.pathname.split('/') || [], - psychotic = result.protocol && !slashedProtocol[result.protocol]; +/***/ "?3fc0": +/*!************************!*\ + !*** crypto (ignored) ***! + \************************/ +/***/ (function() { - // if the url is a non-slashed url, then relative - // links like ../.. should be able - // to crawl up to the hostname, as well. This is strange. - // result.protocol has already been set by now. - // Later on, put the first path part into the host field. - if (psychotic) { - result.hostname = ''; - result.port = null; - if (result.host) { - if (srcPath[0] === '') srcPath[0] = result.host; - else srcPath.unshift(result.host); - } - result.host = ''; - if (relative.protocol) { - relative.hostname = null; - relative.port = null; - if (relative.host) { - if (relPath[0] === '') relPath[0] = relative.host; - else relPath.unshift(relative.host); - } - relative.host = null; - } - mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === ''); - } +/* (ignored) */ - if (isRelAbs) { - // it's absolute. - result.host = (relative.host || relative.host === '') ? - relative.host : result.host; - result.hostname = (relative.hostname || relative.hostname === '') ? - relative.hostname : result.hostname; - result.search = relative.search; - result.query = relative.query; - srcPath = relPath; - // fall through to the dot-handling below. - } else if (relPath.length) { - // it's relative - // throw away the existing file, and take the new path instead. - if (!srcPath) srcPath = []; - srcPath.pop(); - srcPath = srcPath.concat(relPath); - result.search = relative.search; - result.query = relative.query; - } else if (!util.isNullOrUndefined(relative.search)) { - // just pull out the search. - // like href='?foo'. - // Put this after the other two cases because it simplifies the booleans - if (psychotic) { - result.hostname = result.host = srcPath.shift(); - //occationaly the auth can get stuck only in host - //this especially happens in cases like - //url.resolveObject('mailto:local1@domain1', 'local2@domain2') - var authInHost = result.host && result.host.indexOf('@') > 0 ? - result.host.split('@') : false; - if (authInHost) { - result.auth = authInHost.shift(); - result.host = result.hostname = authInHost.shift(); - } - } - result.search = relative.search; - result.query = relative.query; - //to support http.request - if (!util.isNull(result.pathname) || !util.isNull(result.search)) { - result.path = (result.pathname ? result.pathname : '') + - (result.search ? result.search : ''); - } - result.href = result.format(); - return result; - } +/***/ }), - if (!srcPath.length) { - // no path at all. easy. - // we've already handled the other stuff above. - result.pathname = null; - //to support http.request - if (result.search) { - result.path = '/' + result.search; - } else { - result.path = null; - } - result.href = result.format(); - return result; - } +/***/ "?cad2": +/*!**********************!*\ + !*** util (ignored) ***! + \**********************/ +/***/ (function() { - // if a url ENDs in . or .., then it must get a trailing slash. - // however, if it ends in anything else non-slashy, - // then it must NOT get a trailing slash. - var last = srcPath.slice(-1)[0]; - var hasTrailingSlash = ( - (result.host || relative.host || srcPath.length > 1) && - (last === '.' || last === '..') || last === ''); +/* (ignored) */ - // strip single dots, resolve double dots to parent dir - // if the path tries to go above the root, `up` ends up > 0 - var up = 0; - for (var i = srcPath.length; i >= 0; i--) { - last = srcPath[i]; - if (last === '.') { - srcPath.splice(i, 1); - } else if (last === '..') { - srcPath.splice(i, 1); - up++; - } else if (up) { - srcPath.splice(i, 1); - up--; - } - } +/***/ }), - // if the path is allowed to go above the root, restore leading ..s - if (!mustEndAbs && !removeAllDots) { - for (; up--; up) { - srcPath.unshift('..'); - } - } +/***/ "?593c": +/*!**********************!*\ + !*** util (ignored) ***! + \**********************/ +/***/ (function() { - if (mustEndAbs && srcPath[0] !== '' && - (!srcPath[0] || srcPath[0].charAt(0) !== '/')) { - srcPath.unshift(''); - } +/* (ignored) */ - if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) { - srcPath.push(''); - } +/***/ }), - var isAbsolute = srcPath[0] === '' || - (srcPath[0] && srcPath[0].charAt(0) === '/'); +/***/ "?4068": +/*!************************!*\ + !*** buffer (ignored) ***! + \************************/ +/***/ (function() { - // put the host back - if (psychotic) { - result.hostname = result.host = isAbsolute ? '' : - srcPath.length ? srcPath.shift() : ''; - //occationaly the auth can get stuck only in host - //this especially happens in cases like - //url.resolveObject('mailto:local1@domain1', 'local2@domain2') - var authInHost = result.host && result.host.indexOf('@') > 0 ? - result.host.split('@') : false; - if (authInHost) { - result.auth = authInHost.shift(); - result.host = result.hostname = authInHost.shift(); - } - } +/* (ignored) */ - mustEndAbs = mustEndAbs || (result.host && srcPath.length); +/***/ }), - if (mustEndAbs && !isAbsolute) { - srcPath.unshift(''); - } +/***/ "?e7e4": +/*!************************!*\ + !*** buffer (ignored) ***! + \************************/ +/***/ (function() { - if (!srcPath.length) { - result.pathname = null; - result.path = null; - } else { - result.pathname = srcPath.join('/'); - } +/* (ignored) */ - //to support request.http - if (!util.isNull(result.pathname) || !util.isNull(result.search)) { - result.path = (result.pathname ? result.pathname : '') + - (result.search ? result.search : ''); - } - result.auth = relative.auth || result.auth; - result.slashes = result.slashes || relative.slashes; - result.href = result.format(); - return result; -}; +/***/ }), -Url.prototype.parseHost = function() { - var host = this.host; - var port = portPattern.exec(host); - if (port) { - port = port[0]; - if (port !== ':') { - this.port = port.substr(1); - } - host = host.substr(0, host.length - port.length); - } - if (host) this.hostname = host; -}; +/***/ "?7bec": +/*!************************!*\ + !*** buffer (ignored) ***! + \************************/ +/***/ (function() { +/* (ignored) */ /***/ }), -/***/ "./node_modules/url/util.js": -/*!**********************************!*\ - !*** ./node_modules/url/util.js ***! - \**********************************/ -/***/ (function(module) { +/***/ "?802b": +/*!**********************!*\ + !*** util (ignored) ***! + \**********************/ +/***/ (function() { -"use strict"; +/* (ignored) */ +/***/ }), -module.exports = { - isString: function(arg) { - return typeof(arg) === 'string'; - }, - isObject: function(arg) { - return typeof(arg) === 'object' && arg !== null; - }, - isNull: function(arg) { - return arg === null; - }, - isNullOrUndefined: function(arg) { - return arg == null; - } -}; +/***/ "?1e44": +/*!**********************!*\ + !*** util (ignored) ***! + \**********************/ +/***/ (function() { +/* (ignored) */ /***/ }), -/***/ "./node_modules/util-deprecate/browser.js": -/*!************************************************!*\ - !*** ./node_modules/util-deprecate/browser.js ***! - \************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +/***/ "?0b9d": +/*!********************!*\ + !*** fs (ignored) ***! + \********************/ +/***/ (function() { +/* (ignored) */ -/** - * Module exports. - */ +/***/ }), -module.exports = deprecate; +/***/ "?5b1a": +/*!**********************!*\ + !*** path (ignored) ***! + \**********************/ +/***/ (function() { -/** - * Mark that a method should not be used. - * Returns a modified function which warns once by default. - * - * If `localStorage.noDeprecation = true` is set, then it is a no-op. - * - * If `localStorage.throwDeprecation = true` is set, then deprecated functions - * will throw an Error when invoked. - * - * If `localStorage.traceDeprecation = true` is set, then deprecated functions - * will invoke `console.trace()` instead of `console.error()`. - * - * @param {Function} fn - the function to deprecate - * @param {String} msg - the string to print to the console when `fn` is invoked - * @returns {Function} a new "deprecated" version of `fn` - * @api public - */ +/* (ignored) */ -function deprecate (fn, msg) { - if (config('noDeprecation')) { - return fn; - } +/***/ }), - var warned = false; - function deprecated() { - if (!warned) { - if (config('throwDeprecation')) { - throw new Error(msg); - } else if (config('traceDeprecation')) { - console.trace(msg); - } else { - console.warn(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } +/***/ "?0aec": +/*!************************!*\ + !*** buffer (ignored) ***! + \************************/ +/***/ (function() { - return deprecated; -} +/* (ignored) */ -/** - * Checks `localStorage` for boolean values for the given `name`. - * - * @param {String} name - * @returns {Boolean} - * @api private - */ +/***/ }), -function config (name) { - // accessing global.localStorage can trigger a DOMException in sandboxed iframes - try { - if (!__webpack_require__.g.localStorage) return false; - } catch (_) { - return false; - } - var val = __webpack_require__.g.localStorage[name]; - if (null == val) return false; - return String(val).toLowerCase() === 'true'; -} +/***/ "?fbf1": +/*!************************!*\ + !*** buffer (ignored) ***! + \************************/ +/***/ (function() { +/* (ignored) */ /***/ }), -/***/ "./node_modules/util/node_modules/inherits/inherits_browser.js": -/*!*********************************************************************!*\ - !*** ./node_modules/util/node_modules/inherits/inherits_browser.js ***! - \*********************************************************************/ -/***/ (function(module) { - -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } -} +/***/ "?3e83": +/*!**********************!*\ + !*** util (ignored) ***! + \**********************/ +/***/ (function() { +/* (ignored) */ /***/ }), -/***/ "./node_modules/util/support/isBufferBrowser.js": -/*!******************************************************!*\ - !*** ./node_modules/util/support/isBufferBrowser.js ***! - \******************************************************/ -/***/ (function(module) { +/***/ "?19e6": +/*!**********************!*\ + !*** util (ignored) ***! + \**********************/ +/***/ (function() { -module.exports = function isBuffer(arg) { - return arg && typeof arg === 'object' - && typeof arg.copy === 'function' - && typeof arg.fill === 'function' - && typeof arg.readUInt8 === 'function'; -} +/* (ignored) */ /***/ }), -/***/ "./node_modules/util/util.js": -/*!***********************************!*\ - !*** ./node_modules/util/util.js ***! - \***********************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -var formatRegExp = /%[sdj%]/g; -exports.format = function(f) { - if (!isString(f)) { - var objects = []; - for (var i = 0; i < arguments.length; i++) { - objects.push(inspect(arguments[i])); - } - return objects.join(' '); - } +/***/ "?0cc0": +/*!**********************!*\ + !*** util (ignored) ***! + \**********************/ +/***/ (function() { - var i = 1; - var args = arguments; - var len = args.length; - var str = String(f).replace(formatRegExp, function(x) { - if (x === '%%') return '%'; - if (i >= len) return x; - switch (x) { - case '%s': return String(args[i++]); - case '%d': return Number(args[i++]); - case '%j': - try { - return JSON.stringify(args[i++]); - } catch (_) { - return '[Circular]'; - } - default: - return x; - } - }); - for (var x = args[i]; i < len; x = args[++i]) { - if (isNull(x) || !isObject(x)) { - str += ' ' + x; - } else { - str += ' ' + inspect(x); - } - } - return str; -}; +/* (ignored) */ +/***/ }), -// Mark that a method should not be used. -// Returns a modified function which warns once by default. -// If --no-deprecation is set, then it is a no-op. -exports.deprecate = function(fn, msg) { - // Allow for deprecating things in the process of starting up. - if (isUndefined(__webpack_require__.g.process)) { - return function() { - return exports.deprecate(fn, msg).apply(this, arguments); - }; - } +/***/ "?aeb7": +/*!**********************!*\ + !*** util (ignored) ***! + \**********************/ +/***/ (function() { - if (({"env":{"NODE_ENV":"production"}}).noDeprecation === true) { - return fn; - } +/* (ignored) */ - var warned = false; - function deprecated() { - if (!warned) { - if (({"env":{"NODE_ENV":"production"}}).throwDeprecation) { - throw new Error(msg); - } else if (({"env":{"NODE_ENV":"production"}}).traceDeprecation) { - console.trace(msg); - } else { - console.error(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } +/***/ }), - return deprecated; -}; +/***/ "./node_modules/@adraffy/ens-normalize/dist/index.cjs": +/*!************************************************************!*\ + !*** ./node_modules/@adraffy/ens-normalize/dist/index.cjs ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, exports) { +"use strict"; -var debugs = {}; -var debugEnviron; -exports.debuglog = function(set) { - if (isUndefined(debugEnviron)) - debugEnviron = ({"NODE_ENV":"production"}).NODE_DEBUG || ''; - set = set.toUpperCase(); - if (!debugs[set]) { - if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { - var pid = ({"env":{"NODE_ENV":"production"}}).pid; - debugs[set] = function() { - var msg = exports.format.apply(exports, arguments); - console.error('%s %d: %s', set, pid, msg); - }; - } else { - debugs[set] = function() {}; - } - } - return debugs[set]; -}; +// created 2023-09-12T22:05:14.211Z +// compressed base64-encoded blob for include-ens data +// source: https://github.com/adraffy/ens-normalize.js/blob/main/src/make.js +// see: https://github.com/adraffy/ens-normalize.js#security +// SHA-256: 0565ed049b9cf1614bb9e11ba7d8ac6a6fb96c893253d890f7e2b2884b9ded32 +var COMPRESSED$1 = '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'; +const FENCED = new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]); +const NSM_MAX = 4; -/** - * Echos the value of a value. Trys to print the value out - * in the best way possible given the different types. - * - * @param {Object} obj The object to print out. - * @param {Object} opts Optional options object that alters the output. - */ -/* legacy: obj, showHidden, depth, colors*/ -function inspect(obj, opts) { - // default options - var ctx = { - seen: [], - stylize: stylizeNoColor - }; - // legacy... - if (arguments.length >= 3) ctx.depth = arguments[2]; - if (arguments.length >= 4) ctx.colors = arguments[3]; - if (isBoolean(opts)) { - // legacy... - ctx.showHidden = opts; - } else if (opts) { - // got an "options" object - exports._extend(ctx, opts); - } - // set default options - if (isUndefined(ctx.showHidden)) ctx.showHidden = false; - if (isUndefined(ctx.depth)) ctx.depth = 2; - if (isUndefined(ctx.colors)) ctx.colors = false; - if (isUndefined(ctx.customInspect)) ctx.customInspect = true; - if (ctx.colors) ctx.stylize = stylizeWithColor; - return formatValue(ctx, obj, ctx.depth); +function decode_arithmetic(bytes) { + let pos = 0; + function u16() { return (bytes[pos++] << 8) | bytes[pos++]; } + + // decode the frequency table + let symbol_count = u16(); + let total = 1; + let acc = [0, 1]; // first symbol has frequency 1 + for (let i = 1; i < symbol_count; i++) { + acc.push(total += u16()); + } + + // skip the sized-payload that the last 3 symbols index into + let skip = u16(); + let pos_payload = pos; + pos += skip; + + let read_width = 0; + let read_buffer = 0; + function read_bit() { + if (read_width == 0) { + // this will read beyond end of buffer + // but (undefined|0) => zero pad + read_buffer = (read_buffer << 8) | bytes[pos++]; + read_width = 8; + } + return (read_buffer >> --read_width) & 1; + } + + const N = 31; + const FULL = 2**N; + const HALF = FULL >>> 1; + const QRTR = HALF >> 1; + const MASK = FULL - 1; + + // fill register + let register = 0; + for (let i = 0; i < N; i++) register = (register << 1) | read_bit(); + + let symbols = []; + let low = 0; + let range = FULL; // treat like a float + while (true) { + let value = Math.floor((((register - low + 1) * total) - 1) / range); + let start = 0; + let end = symbol_count; + while (end - start > 1) { // binary search + let mid = (start + end) >>> 1; + if (value < acc[mid]) { + end = mid; + } else { + start = mid; + } + } + if (start == 0) break; // first symbol is end mark + 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 => { // index into payload + switch (x - offset) { + case 3: return offset + 0x10100 + ((bytes[pos_payload++] << 16) | (bytes[pos_payload++] << 8) | bytes[pos_payload++]); + case 2: return offset + 0x100 + ((bytes[pos_payload++] << 8) | bytes[pos_payload++]); + case 1: return offset + bytes[pos_payload++]; + default: return x - 1; + } + }); +} + +// returns an iterator which returns the next symbol +function read_payload(v) { + let pos = 0; + return () => v[pos++]; +} +function read_compressed_payload(s) { + return read_payload(decode_arithmetic(unsafe_atob(s))); +} + +// unsafe in the sense: +// expected well-formed Base64 w/o padding +// 20220922: added for https://github.com/adraffy/ens-normalize.js/issues/4 +function unsafe_atob(s) { + let lookup = []; + [...'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'].forEach((c, i) => lookup[c.charCodeAt(0)] = i); + let n = s.length; + let ret = new Uint8Array((6 * n) >> 3); + for (let i = 0, pos = 0, width = 0, carry = 0; i < n; i++) { + carry = (carry << 6) | lookup[s.charCodeAt(i)]; + width += 6; + if (width >= 8) { + ret[pos++] = (carry >> (width -= 8)); + } + } + return ret; +} + +// eg. [0,1,2,3...] => [0,-1,1,-2,...] +function signed(i) { + return (i & 1) ? (~i >> 1) : (i >> 1); +} + +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; +} + +// [123][5] => [0 3] [1 1] [0 0] +function read_sorted(next, prev = 0) { + let ret = []; + while (true) { + let x = next(); + let n = next(); + if (!n) break; + prev += x; + for (let i = 0; i < n; i++) { + ret.push(prev + i); + } + prev += n + 1; + } + return ret; +} + +function read_sorted_arrays(next) { + return read_array_while(() => { + let v = read_sorted(next); + if (v.length) return v; + }); +} + +// returns map of x => ys +function read_mapped(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 ret.flat(); +} + +// read until next is falsy +// return array of read values +function read_array_while(next) { + let v = []; + while (true) { + let x = next(v.length); + if (!x) break; + v.push(x); + } + return v; +} + +// read w columns of length n +// return as n rows of length w +function read_transposed(n, w, next) { + let m = Array(n).fill().map(() => []); + for (let i = 0; i < w; i++) { + read_deltas(n, next).forEach((x, j) => m[j].push(x)); + } + return m; +} + +// returns [[x, ys], [x+dx, ys+dy], [x+2*dx, ys+2*dy], ...] +// where dx/dy = steps, n = run size, w = length of y +function read_linear_table(w, next) { + let dx = 1 + next(); + let dy = next(); + let vN = read_array_while(next); + let m = read_transposed(vN.length, 1+w, next); + return m.flatMap((v, i) => { + let [x, ...ys] = v; + return Array(vN[i]).fill().map((_, j) => { + let j_dy = j * dy; + return [x + j * dx, ys.map(y => y + j_dy)]; + }); + }); +} + +// return [[x, ys...], ...] +// where w = length of y +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_trie(next) { + let ret = []; + let sorted = read_sorted(next); + expand(decode([]), []); + return ret; // not sorted + function decode(Q) { // characters that lead into this node + let S = next(); // state: valid, save, check + let B = read_array_while(() => { // buckets leading to new nodes + let cps = read_sorted(next).map(i => sorted[i]); + if (cps.length) return decode(cps); + }); + return {S, B, Q}; + } + function expand({S, B}, cps, saved) { + if (S & 4 && saved === cps[cps.length-1]) return; + if (S & 2) saved = cps[cps.length-1]; + if (S & 1) ret.push(cps); + for (let br of B) { + for (let cp of br.Q) { + expand(br, [...cps, cp], saved); + } + } + } } -exports.inspect = inspect; - - -// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics -inspect.colors = { - 'bold' : [1, 22], - 'italic' : [3, 23], - 'underline' : [4, 24], - 'inverse' : [7, 27], - 'white' : [37, 39], - 'grey' : [90, 39], - 'black' : [30, 39], - 'blue' : [34, 39], - 'cyan' : [36, 39], - 'green' : [32, 39], - 'magenta' : [35, 39], - 'red' : [31, 39], - 'yellow' : [33, 39] -}; - -// Don't use 'blue' not visible on cmd.exe -inspect.styles = { - 'special': 'cyan', - 'number': 'yellow', - 'boolean': 'yellow', - 'undefined': 'grey', - 'null': 'bold', - 'string': 'green', - 'date': 'magenta', - // "name": intentionally not styling - 'regexp': 'red' -}; - -function stylizeWithColor(str, styleType) { - var style = inspect.styles[styleType]; - - if (style) { - return '\u001b[' + inspect.colors[style][0] + 'm' + str + - '\u001b[' + inspect.colors[style][1] + 'm'; - } else { - return str; - } +function hex_cp(cp) { + return cp.toString(16).toUpperCase().padStart(2, '0'); +} + +function quote_cp(cp) { + return `{${hex_cp(cp)}}`; // raffy convention: like "\u{X}" w/o the "\u" +} + +/* +export function explode_cp(s) { + return [...s].map(c => c.codePointAt(0)); +} +*/ +function explode_cp(s) { // this is about 2x faster + let cps = []; + for (let pos = 0, len = s.length; pos < len; ) { + let cp = s.codePointAt(pos); + pos += cp < 0x10000 ? 1 : 2; + cps.push(cp); + } + return cps; +} + +function str_from_cps(cps) { + const chunk = 4096; + let len = cps.length; + if (len < chunk) return String.fromCodePoint(...cps); + let buf = []; + for (let i = 0; i < len; ) { + buf.push(String.fromCodePoint(...cps.slice(i, i += chunk))); + } + return buf.join(''); +} + +function compare_arrays(a, b) { + let n = a.length; + let c = n - b.length; + for (let i = 0; c == 0 && i < n; i++) c = a[i] - b[i]; + return c; } +// created 2023-09-12T22:05:14.211Z +// compressed base64-encoded blob for include-nf data +// source: https://github.com/adraffy/ens-normalize.js/blob/main/src/make.js +// see: https://github.com/adraffy/ens-normalize.js#security +// SHA-256: a974b6f8541fc29d919bc85118af0a44015851fab5343f8679cb31be2bdb209e +var COMPRESSED = 'AEUDTAHBCFQATQDRADAAcgAgADQAFAAsABQAHwAOACQADQARAAoAFwAHABIACAAPAAUACwAFAAwABAAQAAMABwAEAAoABQAIAAIACgABAAQAFAALAAIACwABAAIAAQAHAAMAAwAEAAsADAAMAAwACgANAA0AAwAKAAkABAAdAAYAZwDSAdsDJgC0CkMB8xhZAqfoC190UGcThgBurwf7PT09Pb09AjgJum8OjDllxHYUKXAPxzq6tABAxgK8ysUvWAgMPT09PT09PSs6LT2HcgWXWwFLoSMEEEl5RFVMKvO0XQ8ExDdJMnIgsj26PTQyy8FfEQ8AY8IPAGcEbwRwBHEEcgRzBHQEdQR2BHcEeAR6BHsEfAR+BIAEgfndBQoBYgULAWIFDAFiBNcE2ATZBRAFEQUvBdALFAsVDPcNBw13DYcOMA4xDjMB4BllHI0B2grbAMDpHLkQ7QHVAPRNQQFnGRUEg0yEB2uaJF8AJpIBpob5AERSMAKNoAXqaQLUBMCzEiACnwRZEkkVsS7tANAsBG0RuAQLEPABv9HICTUBXigPZwRBApMDOwAamhtaABqEAY8KvKx3LQ4ArAB8UhwEBAVSagD8AEFZADkBIadVj2UMUgx5Il4ANQC9AxIB1BlbEPMAs30CGxlXAhwZKQIECBc6EbsCoxngzv7UzRQA8M0BawL6ZwkN7wABAD33OQRcsgLJCjMCjqUChtw/km+NAsXPAoP2BT84PwURAK0RAvptb6cApQS/OMMey5HJS84UdxpxTPkCogVFITaTOwERAK5pAvkNBOVyA7q3BKlOJSALAgUIBRcEdASpBXqzABXFSWZOawLCOqw//AolCZdvv3dSBkEQGyelEPcMMwG1ATsN7UvYBPEGOwTJH30ZGQ/NlZwIpS3dDO0m4y6hgFoj9SqDBe1L9DzdC01RaA9ZC2UJ4zpjgU4DIQENIosK3Q05CG0Q8wrJaw3lEUUHOQPVSZoApQcBCxEdNRW1JhBirAsJOXcG+xr2C48mrxMpevwF0xohBk0BKRr/AM8u54WwWjFcHE9fBgMLJSPHFKhQIA0lQLd4SBobBxUlqQKRQ3BKh1E2HpMh9jw9DWYuE1F8B/U8BRlPC4E8nkarRQ4R0j6NPUgiSUwsBDV/LC8niwnPD4UMuXxyAVkJIQmxDHETMREXN8UIOQcZLZckJxUIIUaVYJoE958D8xPRAwsFPwlBBxMDtRwtEy4VKQUNgSTXAvM21S6zAo9WgAEXBcsPJR/fEFBH4A7pCJsCZQODJesALRUhABcimwhDYwBfj9hTBS7LCMdqbCN0A2cU52ERcweRDlcHpxwzFb8c4XDIXguGCCijrwlbAXUJmQFfBOMICTVbjKAgQWdTi1gYmyBhQT9d/AIxDGUVn0S9h3gCiw9rEhsBNQFzBzkNAQJ3Ee0RaxCVCOuGBDW1M/g6JQRPIYMgEQonA09szgsnJvkM+GkBoxJiAww0PXfuZ6tgtiQX/QcZMsVBYCHxC5JPzQycGsEYQlQuGeQHvwPzGvMn6kFXBf8DowMTOk0z7gS9C2kIiwk/AEkOoxcH1xhqCnGM0AExiwG3mQNXkYMCb48GNwcLAGcLhwV55QAdAqcIowAFAM8DVwA5Aq0HnQAZAIVBAT0DJy8BIeUCjwOTCDHLAZUvAfMpBBvDDBUA9zduSgLDsQKAamaiBd1YAo4CSTUBTSUEBU5HUQOvceEA2wBLBhPfRwEVq0rLGuNDAd9vKwDHAPsABTUHBUEBzQHzbQC3AV8LMQmis7UBTekpAIMAFWsB1wKJAN0ANQB/8QFTAE0FWfkF0wJPSQERMRgrV2EBuwMfATMBDQB5BsuNpckHHwRtB9MCEBsV4QLvLge1AQMi3xPNQsUCvd5VoWACZIECYkJbTa9bNyACofcCaJgCZgkCn4Q4GwsCZjsCZiYEbgR/A38TA36SOQY5dxc5gjojIwJsHQIyNjgKAm3HAm2u74ozZ0UrAWcA3gDhAEoFB5gMjQD+C8IADbUCdy8CdqI/AnlLQwJ4uh1c20WuRtcCfD8CesgCfQkCfPAFWQUgSABIfWMkAoFtAoAAAoAFAn+uSVhKWxUXSswC0QEC0MxLJwOITwOH5kTFkTIC8qFdAwMDrkvOTC0lA89NTE2vAos/AorYwRsHHUNnBbcCjjcCjlxAl4ECjtkCjlx4UbRTNQpS1FSFApP7ApMMAOkAHFUeVa9V0AYsGymVhjLheGZFOzkCl58C77JYIagAWSUClo8ClnycAKlZrFoJgU0AOwKWtQKWTlxEXNECmcsCmWRcyl0HGQKcmznCOp0CnBYCn5sCnriKAB0PMSoPAp3xAp6SALU9YTRh7wKe0wKgbgGpAp6fHwKeTqVjyGQnJSsCJ68CJn4CoPsCoEwCot0CocQCpi8Cpc4Cp/8AfQKn8mh8aLEAA0lqHGrRAqzjAqyuAq1nAq0CAlcdAlXcArHh1wMfTmyXArK9DQKy6Bds4G1jbUhfAyXNArZcOz9ukAMpRQK4XgK5RxUCuSp3cDZw4QK9GQK72nCWAzIRAr6IcgIDM3ECvhpzInNPAsPLAsMEc4J0SzVFdOADPKcDPJoDPb8CxXwCxkcCxhCJAshpUQLIRALJTwLJLgJknQLd0nh5YXiueSVL0AMYo2cCAmH0GfOVJHsLXpJeuxECz2sCz2wvS1PS8xOfAMatAs9zASnqA04SfksFAtwnAtuKAtJPA1JcA1NfAQEDVYyAiT8AyxbtYEWCHILTgs6DjQLaxwLZ3oQQhEmnPAOGpQAvA2QOhnFZ+QBVAt9lAt64c3cC4i/tFAHzMCcB9JsB8tKHAuvzAulweQLq+QLq5AD5RwG5Au6JAuuclqqXAwLuPwOF4Jh5cOBxoQLzAwBpA44WmZMC9xMDkW4DkocC95gC+dkC+GaaHJqruzebHgOdgwL++gEbADmfHJ+zAwWNA6ZqA6bZANHFAwZqoYiiBQkDDEkCwAA/AwDhQRdTARHzA2sHl2cFAJMtK7evvdsBiZkUfxEEOQH7KQUhDp0JnwCS/SlXxQL3AZ0AtwW5AG8LbUEuFCaNLgFDAYD8AbUmAHUDDgRtACwCFgyhAAAKAj0CagPdA34EkQEgRQUhfAoABQBEABMANhICdwEABdUDa+8KxQIA9wqfJ7+xt+UBkSFBQgHpFH8RNMCJAAQAGwBaAkUChIsABjpTOpSNbQC4Oo860ACNOME63AClAOgAywE6gTo7Ofw5+Tt2iTpbO56JOm85GAFWATMBbAUvNV01njWtNWY1dTW2NcU1gjWRNdI14TWeNa017jX9NbI1wTYCNhE1xjXVNhY2JzXeNe02LjY9Ni41LSE2OjY9Njw2yTcIBJA8VzY4Nt03IDcPNsogN4k3MAoEsDxnNiQ3GTdsOo03IULUQwdC4EMLHA8PCZsobShRVQYA6X8A6bABFCnXAukBowC9BbcAbwNzBL8MDAMMAQgDAAkKCwsLCQoGBAVVBI/DvwDz9b29kaUCb0QtsRTNLt4eGBcSHAMZFhYZEhYEARAEBUEcQRxBHEEcQRxBHEEaQRxBHEFCSTxBPElISUhBNkM2QTYbNklISVmBVIgBFLWZAu0BhQCjBcEAbykBvwGJAaQcEZ0ePCklMAAhMvAIMAL54gC7Bm8EescjzQMpARQpKgDUABavAj626xQAJP0A3etzuf4NNRA7efy2Z9NQrCnC0OSyANz5BBIbJ5IFDR6miIavYS6tprjjmuKebxm5C74Q225X1pkaYYPb6f1DK4k3xMEBb9S2WMjEibTNWhsRJIA+vwNVEiXTE5iXs/wezV66oFLfp9NZGYW+Gk19J2+bCT6Ye2w6LDYdgzKMUabk595eLBCXANz9HUpWbATq9vqXVx9XDg+Pc9Xp4+bsS005SVM/BJBM4687WUuf+Uj9dEi8aDNaPxtpbDxcG1THTImUMZq4UCaaNYpsVqraNyKLJXDYsFZ/5jl7bLRtO88t7P3xZaAxhb5OdPMXqsSkp1WCieG8jXm1U99+blvLlXzPCS+M93VnJCiK+09LfaSaBAVBomyDgJua8dfUzR7ga34IvR2Nvj+A9heJ6lsl1KG4NkI1032Cnff1m1wof2B9oHJK4bi6JkEdSqeNeiuo6QoZZincoc73/TH9SXF8sCE7XyuYyW8WSgbGFCjPV0ihLKhdPs08Tx82fYAkLLc4I2wdl4apY7GU5lHRFzRWJep7Ww3wbeA3qmd59/86P4xuNaqDpygXt6M85glSBHOCGgJDnt+pN9bK7HApMguX6+06RZNjzVmcZJ+wcUrJ9//bpRNxNuKpNl9uFds+S9tdx7LaM5ZkIrPj6nIU9mnbFtVbs9s/uLgl8MVczAwet+iOEzzBlYW7RCMgE6gyNLeq6+1tIx4dpgZnd0DksJS5f+JNDpwwcPNXaaVspq1fbQajOrJgK0ofKtJ1Ne90L6VO4MOl5S886p7u6xo7OLjG8TGL+HU1JXGJgppg4nNbNJ5nlzSpuPYy21JUEcUA94PoFiZfjZue+QnyQ80ekOuZVkxx4g+cvhJfHgNl4hy1/a6+RKcKlar/J29y//EztlbVPHVUeQ1zX86eQVAjR/M3dA9w4W8LfaXp4EgM85wOWasli837PzVMOnsLzR+k3o75/lRPAJSE1xAKQzEi5v10ke+VBvRt1cwQRMd+U5mLCTGVd6XiZtgBG5cDi0w22GKcVNvHiu5LQbZEDVtz0onn7k5+heuKXVsZtSzilkLRAUmjMXEMB3J9YC50XBxPiz53SC+EhnPl9WsKCv92SM/OFFIMJZYfl0WW8tIO3UxYcwdMAj7FSmgrsZ2aAZO03BOhP1bNNZItyXYQFTpC3SG1VuPDqH9GkiCDmE+JwxyIVSO5siDErAOpEXFgjy6PQtOVDj+s6e1r8heWVvmZnTciuf4EiNZzCAd7SOMhXERIOlsHIMG399i9aLTy3m2hRLZjJVDNLS53iGIK11dPqQt0zBDyg6qc7YqkDm2M5Ve6dCWCaCbTXX2rToaIgz6+zh4lYUi/+6nqcFMAkQJKHYLK0wYk5N9szV6xihDbDDFr45lN1K4aCXBq/FitPSud9gLt5ZVn+ZqGX7cwm2z5EGMgfFpIFyhGGuDPmso6TItTMwny+7uPnLCf4W6goFQFV0oQSsc9VfMmVLcLr6ZetDZbaSFTLqnSO/bIPjA3/zAUoqgGFAEQS4IhuMzEp2I3jJzbzkk/IEmyax+rhZTwd6f+CGtwPixu8IvzACquPWPREu9ZvGkUzpRwvRRuaNN6cr0W1wWits9ICdYJ7ltbgMiSL3sTPeufgNcVqMVWFkCPDH4jG2jA0XcVgQj62Cb29v9f/z/+2KbYvIv/zzjpQAPkliaVDzNrW57TZ/ZOyZD0nlfMmAIBIAGAI0D3k/mdN4xr9v85ZbZbbqfH2jGd5hUqNZWwl5SPfoGmfElmazUIeNL1j/mkF7VNAzTq4jNt8JoQ11NQOcmhprXoxSxfRGJ9LDEOAQ+dmxAQH90iti9e2u/MoeuaGcDTHoC+xsmEeWmxEKefQuIzHbpw5Tc5cEocboAD09oipWQhtTO1wivf/O+DRe2rpl/E9wlrzBorjJsOeG1B/XPW4EaJEFdNlECEZga5ZoGRHXgYouGRuVkm8tDESiEyFNo+3s5M5puSdTyUL2llnINVHEt91XUNW4ewdMgJ4boJfEyt/iY5WXqbA+A2Fkt5Z0lutiWhe9nZIyIUjyXDC3UsaG1t+eNx6z4W/OYoTB7A6x+dNSTOi9AInctbESqm5gvOLww7OWXPrmHwVZasrl4eD113pm+JtT7JVOvnCXqdzzdTRHgJ0PiGTFYW5Gvt9R9LD6Lzfs0v/TZZHSmyVNq7viIHE6DBK7Qp07Iz55EM8SYtQvZf/obBniTWi5C2/ovHfw4VndkE5XYdjOhCMRjDeOEfXeN/CwfGduiUIfsoFeUxXeQXba7c7972XNv8w+dTjjUM0QeNAReW+J014dKAD/McQYXT7c0GQPIkn3Ll6R7gGjuiQoZD0TEeEqQpKoZ15g/0OPQI17QiSv9AUROa/V/TQN3dvLArec3RrsYlvBm1b8LWzltdugsC50lNKYLEp2a+ZZYqPejULRlOJh5zj/LVMyTDvwKhMxxwuDkxJ1QpoNI0OTWLom4Z71SNzI9TV1iXJrIu9Wcnd+MCaAw8o1jSXd94YU/1gnkrC9BUEOtQvEIQ7g0i6h+KL2JKk8Ydl7HruvgWMSAmNe+LshGhV4qnWHhO9/RIPQzY1tHRj2VqOyNsDpK0cww+56AdDC4gsWwY0XxoucIWIqs/GcwnWqlaT0KPr8mbK5U94/301i1WLt4YINTVvCFBrFZbIbY8eycOdeJ2teD5IfPLCRg7jjcFTwlMFNl9zdh/o3E/hHPwj7BWg0MU09pPrBLbrCgm54A6H+I6v27+jL5gkjWg/iYdks9jbfVP5y/n0dlgWEMlKasl7JvFZd56LfybW1eeaVO0gxTfXZwD8G4SI116yx7UKVRgui6Ya1YpixqXeNLc8IxtAwCU5IhwQgn+NqHnRaDv61CxKhOq4pOX7M6pkA+Pmpd4j1vn6ACUALoLLc4vpXci8VidLxzm7qFBe7s+quuJs6ETYmnpgS3LwSZxPIltgBDXz8M1k/W2ySNv2f9/NPhxLGK2D21dkHeSGmenRT3Yqcdl0m/h3OYr8V+lXNYGf8aCCpd4bWjE4QIPj7vUKN4Nrfs7ML6Y2OyS830JCnofg/k7lpFpt4SqZc5HGg1HCOrHvOdC8bP6FGDbE/VV0mX4IakzbdS/op+Kt3G24/8QbBV7y86sGSQ/vZzU8FXs7u6jIvwchsEP2BpIhW3G8uWNwa3HmjfH/ZjhhCWvluAcF+nMf14ClKg5hGgtPLJ98ueNAkc5Hs2WZlk2QHvfreCK1CCGO6nMZVSb99VM/ajr8WHTte9JSmkXq/i/U943HEbdzW6Re/S88dKgg8pGOLlAeNiqrcLkUR3/aClFpMXcOUP3rmETcWSfMXZE3TUOi8i+fqRnTYLflVx/Vb/6GJ7eIRZUA6k3RYR3iFSK9c4iDdNwJuZL2FKz/IK5VimcNWEqdXjSoxSgmF0UPlDoUlNrPcM7ftmA8Y9gKiqKEHuWN+AZRIwtVSxye2Kf8rM3lhJ5XcBXU9n4v0Oy1RU2M+4qM8AQPVwse8ErNSob5oFPWxuqZnVzo1qB/IBxkM3EVUKFUUlO3e51259GgNcJbCmlvrdjtoTW7rChm1wyCKzpCTwozUUEOIcWLneRLgMXh+SjGSFkAllzbGS5HK7LlfCMRNRDSvbQPjcXaenNYxCvu2Qyznz6StuxVj66SgI0T8B6/sfHAJYZaZ78thjOSIFumNWLQbeZixDCCC+v0YBtkxiBB3jefHqZ/dFHU+crbj6OvS1x/JDD7vlm7zOVPwpUC01nhxZuY/63E7g'; -function stylizeNoColor(str, styleType) { - return str; +// https://unicode.org/reports/tr15/ +// for reference implementation +// see: /derive/nf.js + + +// algorithmic hangul +// https://www.unicode.org/versions/Unicode15.0.0/ch03.pdf (page 144) +const S0 = 0xAC00; +const L0 = 0x1100; +const V0 = 0x1161; +const T0 = 0x11A7; +const L_COUNT = 19; +const V_COUNT = 21; +const T_COUNT = 28; +const N_COUNT = V_COUNT * T_COUNT; +const S_COUNT = L_COUNT * N_COUNT; +const S1 = S0 + S_COUNT; +const L1 = L0 + L_COUNT; +const V1 = V0 + V_COUNT; +const T1 = T0 + T_COUNT; + +function unpack_cc(packed) { + return (packed >> 24) & 0xFF; +} +function unpack_cp(packed) { + return packed & 0xFFFFFF; +} + +let SHIFTED_RANK, EXCLUSIONS, DECOMP, RECOMP; + +function init$1() { + //console.time('nf'); + let r = read_compressed_payload(COMPRESSED); + SHIFTED_RANK = new Map(read_sorted_arrays(r).flatMap((v, i) => v.map(x => [x, (i+1) << 24]))); // pre-shifted + EXCLUSIONS = new Set(read_sorted(r)); + DECOMP = new Map(); + RECOMP = new Map(); + for (let [cp, cps] of read_mapped(r)) { + if (!EXCLUSIONS.has(cp) && cps.length == 2) { + let [a, b] = cps; + let bucket = RECOMP.get(a); + if (!bucket) { + bucket = new Map(); + RECOMP.set(a, bucket); + } + bucket.set(b, cp); + } + DECOMP.set(cp, cps.reverse()); // stored reversed + } + //console.timeEnd('nf'); + // 20230905: 11ms +} + +function is_hangul(cp) { + return cp >= S0 && cp < S1; +} + +function compose_pair(a, b) { + if (a >= L0 && a < L1 && b >= V0 && b < V1) { + return S0 + (a - L0) * N_COUNT + (b - V0) * T_COUNT; + } else if (is_hangul(a) && b > T0 && b < T1 && (a - S0) % T_COUNT == 0) { + return a + (b - T0); + } else { + let recomp = RECOMP.get(a); + if (recomp) { + recomp = recomp.get(b); + if (recomp) { + return recomp; + } + } + return -1; + } +} + +function decomposed(cps) { + if (!SHIFTED_RANK) init$1(); + let ret = []; + let buf = []; + let check_order = false; + function add(cp) { + let cc = SHIFTED_RANK.get(cp); + if (cc) { + check_order = true; + cp |= cc; + } + ret.push(cp); + } + for (let cp of cps) { + while (true) { + if (cp < 0x80) { + ret.push(cp); + } else if (is_hangul(cp)) { + let s_index = cp - S0; + let l_index = s_index / N_COUNT | 0; + let v_index = (s_index % N_COUNT) / T_COUNT | 0; + let t_index = s_index % T_COUNT; + add(L0 + l_index); + add(V0 + v_index); + if (t_index > 0) add(T0 + t_index); + } else { + let mapped = DECOMP.get(cp); + if (mapped) { + buf.push(...mapped); + } else { + add(cp); + } + } + if (!buf.length) break; + cp = buf.pop(); + } + } + if (check_order && ret.length > 1) { + let prev_cc = unpack_cc(ret[0]); + for (let i = 1; i < ret.length; i++) { + let cc = unpack_cc(ret[i]); + if (cc == 0 || prev_cc <= cc) { + prev_cc = cc; + continue; + } + let j = i-1; + while (true) { + let tmp = ret[j+1]; + ret[j+1] = ret[j]; + ret[j] = tmp; + if (!j) break; + prev_cc = unpack_cc(ret[--j]); + if (prev_cc <= cc) break; + } + prev_cc = unpack_cc(ret[i]); + } + } + return ret; +} + +function composed_from_decomposed(v) { + let ret = []; + let stack = []; + let prev_cp = -1; + let prev_cc = 0; + for (let packed of v) { + let cc = unpack_cc(packed); + let cp = unpack_cp(packed); + if (prev_cp == -1) { + if (cc == 0) { + prev_cp = cp; + } else { + ret.push(cp); + } + } else if (prev_cc > 0 && prev_cc >= cc) { + if (cc == 0) { + ret.push(prev_cp, ...stack); + stack.length = 0; + prev_cp = cp; + } else { + stack.push(cp); + } + prev_cc = cc; + } else { + let composed = compose_pair(prev_cp, cp); + if (composed >= 0) { + prev_cp = composed; + } else if (prev_cc == 0 && cc == 0) { + ret.push(prev_cp); + prev_cp = cp; + } else { + stack.push(cp); + prev_cc = cc; + } + } + } + if (prev_cp >= 0) { + ret.push(prev_cp, ...stack); + } + return ret; +} + +// note: cps can be iterable +function nfd(cps) { + return decomposed(cps).map(unpack_cp); +} +function nfc(cps) { + return composed_from_decomposed(decomposed(cps)); } - -function arrayToHash(array) { - var hash = {}; - - array.forEach(function(val, idx) { - hash[val] = true; - }); - - return hash; +const HYPHEN = 0x2D; +const STOP = 0x2E; +const STOP_CH = '.'; +const FE0F = 0xFE0F; +const UNIQUE_PH = 1; + +// 20230913: replace [...v] with Array_from(v) to avoid large spreads +const Array_from = x => Array.from(x); // Array.from.bind(Array); + +function group_has_cp(g, cp) { + // 20230913: keep primary and secondary distinct instead of creating valid union + return g.P.has(cp) || g.Q.has(cp); +} + +class Emoji extends Array { + get is_emoji() { return true; } // free tagging system +} + +let MAPPED, IGNORED, CM, NSM, ESCAPE, NFC_CHECK, GROUPS, WHOLE_VALID, WHOLE_MAP, VALID, EMOJI_LIST, EMOJI_ROOT; + +function init() { + if (MAPPED) return; + + let r = read_compressed_payload(COMPRESSED$1); + const read_sorted_array = () => read_sorted(r); + const read_sorted_set = () => new Set(read_sorted_array()); + + MAPPED = new Map(read_mapped(r)); + IGNORED = read_sorted_set(); // ignored characters are not valid, so just read raw codepoints + + /* + // direct include from payload is smaller than the decompression code + const FENCED = new Map(read_array_while(() => { + let cp = r(); + if (cp) return [cp, read_str(r())]; + })); + */ + // 20230217: we still need all CM for proper error formatting + // but norm only needs NSM subset that are potentially-valid + CM = read_sorted_array(); + NSM = new Set(read_sorted_array().map(i => CM[i])); + CM = new Set(CM); + + ESCAPE = read_sorted_set(); // characters that should not be printed + NFC_CHECK = read_sorted_set(); // only needed to illustrate ens_tokenize() transformations + + let chunks = read_sorted_arrays(r); + let unrestricted = r(); + const read_chunked = () => new Set(read_sorted_array().flatMap(i => chunks[i]).concat(read_sorted_array())); + GROUPS = read_array_while(i => { + // minifier property mangling seems unsafe + // so these are manually renamed to single chars + let N = read_array_while(r).map(x => x+0x60); + if (N.length) { + let R = i >= unrestricted; // first arent restricted + N[0] -= 32; // capitalize + N = str_from_cps(N); + if (R) N=`Restricted[${N}]`; + let P = read_chunked(); // primary + let Q = read_chunked(); // secondary + let M = !r(); // not-whitelisted, check for NSM + // *** this code currently isn't needed *** + /* + let V = [...P, ...Q].sort((a, b) => a-b); // derive: sorted valid + let M = r()-1; // number of combining mark + if (M < 0) { // whitelisted + M = new Map(read_array_while(() => { + let i = r(); + if (i) return [V[i-1], read_array_while(() => { + let v = read_array_while(r); + if (v.length) return v.map(x => x-1); + })]; + })); + }*/ + return {N, P, Q, M, R}; + } + }); + + // decode compressed wholes + WHOLE_VALID = read_sorted_set(); + WHOLE_MAP = new Map(); + let wholes = read_sorted_array().concat(Array_from(WHOLE_VALID)).sort((a, b) => a-b); // must be sorted + wholes.forEach((cp, i) => { + let d = r(); + let w = wholes[i] = d ? wholes[i-d] : {V: [], M: new Map()}; + w.V.push(cp); // add to member set + if (!WHOLE_VALID.has(cp)) { + WHOLE_MAP.set(cp, w); // register with whole map + } + }); + + // compute confusable-extent complements + for (let {V, M} of new Set(WHOLE_MAP.values())) { + // connect all groups that have each whole character + let recs = []; + for (let cp of V) { + let gs = GROUPS.filter(g => group_has_cp(g, cp)); + let rec = recs.find(({G}) => gs.some(g => G.has(g))); + if (!rec) { + rec = {G: new Set(), V: []}; + recs.push(rec); + } + rec.V.push(cp); + gs.forEach(g => rec.G.add(g)); + } + // per character cache groups which are not a member of the extent + let union = recs.flatMap(x => Array_from(x.G)); + for (let {G, V} of recs) { + let complement = new Set(union.filter(g => !G.has(g))); + for (let cp of V) { + M.set(cp, complement); + } + } + } + + // compute valid set + let union = new Set(); // exists in 1+ groups + let multi = new Set(); // exists in 2+ groups + const add_to_union = cp => union.has(cp) ? multi.add(cp) : union.add(cp); + for (let g of GROUPS) { + for (let cp of g.P) add_to_union(cp); + for (let cp of g.Q) add_to_union(cp); + } + // dual purpose WHOLE_MAP: return placeholder if unique non-confusable + for (let cp of union) { + if (!WHOLE_MAP.has(cp) && !multi.has(cp)) { + WHOLE_MAP.set(cp, UNIQUE_PH); + } + } + VALID = new Set(Array_from(union).concat(Array_from(nfd(union)))); // possibly valid + + // decode emoji + // 20230719: emoji are now fully-expanded to avoid quirk logic + EMOJI_LIST = read_trie(r).map(v => Emoji.from(v)).sort(compare_arrays); + EMOJI_ROOT = new Map(); // this has approx 7K nodes (2+ per emoji) + for (let cps of EMOJI_LIST) { + // 20230719: change to *slightly* stricter algorithm which disallows + // insertion of misplaced FE0F in emoji sequences (matching ENSIP-15) + // example: beautified [A B] (eg. flag emoji) + // before: allow: [A FE0F B], error: [A FE0F FE0F B] + // after: error: both + // note: this code now matches ENSNormalize.{cs,java} logic + let prev = [EMOJI_ROOT]; + for (let cp of cps) { + let next = prev.map(node => { + let child = node.get(cp); + if (!child) { + // should this be object? + // (most have 1-2 items, few have many) + // 20230719: no, v8 default map is 4? + child = new Map(); + node.set(cp, child); + } + return child; + }); + if (cp === FE0F) { + prev.push(...next); // less than 20 elements + } else { + prev = next; + } + } + for (let x of prev) { + x.V = cps; + } + } +} + +// if escaped: {HEX} +// else: "x" {HEX} +function quoted_cp(cp) { + return (should_escape(cp) ? '' : `${bidi_qq(safe_str_from_cps([cp]))} `) + quote_cp(cp); +} + +// 20230211: some messages can be mixed-directional and result in spillover +// use 200E after a quoted string to force the remainder of a string from +// acquring the direction of the quote +// https://www.w3.org/International/questions/qa-bidi-unicode-controls#exceptions +function bidi_qq(s) { + return `"${s}"\u200E`; // strong LTR +} + +function check_label_extension(cps) { + if (cps.length >= 4 && cps[2] == HYPHEN && cps[3] == HYPHEN) { + throw new Error(`invalid label extension: "${str_from_cps(cps.slice(0, 4))}"`); + } +} +function check_leading_underscore(cps) { + const UNDERSCORE = 0x5F; + for (let i = cps.lastIndexOf(UNDERSCORE); i > 0; ) { + if (cps[--i] !== UNDERSCORE) { + throw new Error('underscore allowed only at start'); + } + } +} +// check that a fenced cp is not leading, trailing, or touching another fenced cp +function check_fenced(cps) { + let cp = cps[0]; + let prev = FENCED.get(cp); + if (prev) throw error_placement(`leading ${prev}`); + let n = cps.length; + let last = -1; // prevents trailing from throwing + for (let i = 1; i < n; i++) { + cp = cps[i]; + let match = FENCED.get(cp); + if (match) { + // since cps[0] isn't fenced, cps[1] cannot throw + if (last == i) throw error_placement(`${prev} + ${match}`); + last = i + 1; + prev = match; + } + } + if (last == n) throw error_placement(`trailing ${prev}`); +} + +// create a safe to print string +// invisibles are escaped +// leading cm uses placeholder +// quoter(cp) => string, eg. 3000 => "{3000}" +// note: in html, you'd call this function then replace [<>&] with entities +function safe_str_from_cps(cps, quoter = quote_cp) { + //if (Number.isInteger(cps)) cps = [cps]; + //if (!Array.isArray(cps)) throw new TypeError(`expected codepoints`); + let buf = []; + if (is_combining_mark(cps[0])) buf.push('◌'); + let prev = 0; + let n = cps.length; + for (let i = 0; i < n; i++) { + let cp = cps[i]; + if (should_escape(cp)) { + buf.push(str_from_cps(cps.slice(prev, i))); + buf.push(quoter(cp)); + prev = i + 1; + } + } + buf.push(str_from_cps(cps.slice(prev, n))); + return buf.join(''); +} + +// note: set(s) cannot be exposed because they can be modified +// note: Object.freeze() doesn't work +function is_combining_mark(cp) { + init(); + return CM.has(cp); +} +function should_escape(cp) { + init(); + return ESCAPE.has(cp); +} + +// return all supported emoji as fully-qualified emoji +// ordered by length then lexicographic +function ens_emoji() { + init(); + return EMOJI_LIST.map(x => x.slice()); // emoji are exposed so copy +} + +function ens_normalize_fragment(frag, decompose) { + init(); + let nf = decompose ? nfd : nfc; + return frag.split(STOP_CH).map(label => str_from_cps(tokens_from_str(explode_cp(label), nf, filter_fe0f).flat())).join(STOP_CH); +} + +function ens_normalize(name) { + return flatten(split(name, nfc, filter_fe0f)); +} + +function ens_beautify(name) { + let labels = split(name, nfc, x => x); // emoji not exposed + for (let {type, output, error} of labels) { + if (error) break; // flatten will throw + + // replace leading/trailing hyphen + // 20230121: consider beautifing all or leading/trailing hyphen to unicode variant + // not exactly the same in every font, but very similar: "-" vs "‐" + /* + const UNICODE_HYPHEN = 0x2010; + // maybe this should replace all for visual consistancy? + // `node tools/reg-count.js regex ^-\{2,\}` => 592 + //for (let i = 0; i < output.length; i++) if (output[i] == 0x2D) output[i] = 0x2010; + if (output[0] == HYPHEN) output[0] = UNICODE_HYPHEN; + let end = output.length-1; + if (output[end] == HYPHEN) output[end] = UNICODE_HYPHEN; + */ + // 20230123: WHATWG URL uses "CheckHyphens" false + // https://url.spec.whatwg.org/#idna + + // update ethereum symbol + // ξ => Ξ if not greek + if (type !== 'Greek') { + let prev = 0; + while (true) { + let next = output.indexOf(0x3BE, prev); + if (next < 0) break; + output[next] = 0x39E; + prev = next + 1; + } + } + + // 20221213: fixes bidi subdomain issue, but breaks invariant (200E is disallowed) + // could be fixed with special case for: 2D (.) + 200E (LTR) + // https://discuss.ens.domains/t/bidi-label-ordering-spoof/15824 + //output.splice(0, 0, 0x200E); + } + return flatten(labels); +} + +function ens_split(name, preserve_emoji) { + return split(name, nfc, preserve_emoji ? x => x.slice() : filter_fe0f); // emoji are exposed so copy +} + +function split(name, nf, ef) { + if (!name) return []; // 20230719: empty name allowance + init(); + let offset = 0; + // https://unicode.org/reports/tr46/#Validity_Criteria + // 4.) "The label must not contain a U+002E ( . ) FULL STOP." + return name.split(STOP_CH).map(label => { + let input = explode_cp(label); + let info = { + input, + offset, // codepoint, not substring! + }; + offset += input.length + 1; // + stop + try { + // 1.) "The label must be in Unicode Normalization Form NFC" + let tokens = info.tokens = tokens_from_str(input, nf, ef); + let token_count = tokens.length; + let type; + if (!token_count) { // the label was effectively empty (could of had ignored characters) + //norm = []; + //type = 'None'; // use this instead of next match, "ASCII" + // 20230120: change to strict + // https://discuss.ens.domains/t/ens-name-normalization-2nd/14564/59 + throw new Error(`empty label`); + } + let norm = info.output = tokens.flat(); + check_leading_underscore(norm); + let emoji = info.emoji = token_count > 1 || tokens[0].is_emoji; // same as: tokens.some(x => x.is_emoji); + if (!emoji && norm.every(cp => cp < 0x80)) { // special case for ascii + // 20230123: matches matches WHATWG, see note 3.3 + check_label_extension(norm); // only needed for ascii + // cant have fenced + // cant have cm + // cant have wholes + // see derive: "Fastpath ASCII" + type = 'ASCII'; + } else { + let chars = tokens.flatMap(x => x.is_emoji ? [] : x); // all of the nfc tokens concat together + if (!chars.length) { // theres no text, just emoji + type = 'Emoji'; + } else { + // 5.) "The label must not begin with a combining mark, that is: General_Category=Mark." + if (CM.has(norm[0])) throw error_placement('leading combining mark'); + for (let i = 1; i < token_count; i++) { // we've already checked the first token + let cps = tokens[i]; + if (!cps.is_emoji && CM.has(cps[0])) { // every text token has emoji neighbors, eg. EtEEEtEt... + // bidi_qq() not needed since emoji is LTR and cps is a CM + throw error_placement(`emoji + combining mark: "${str_from_cps(tokens[i-1])} + ${safe_str_from_cps([cps[0]])}"`); + } + } + check_fenced(norm); + let unique = Array_from(new Set(chars)); + let [g] = determine_group(unique); // take the first match + // see derive: "Matching Groups have Same CM Style" + // alternative: could form a hybrid type: Latin/Japanese/... + check_group(g, chars); // need text in order + check_whole(g, unique); // only need unique text (order would be required for multiple-char confusables) + type = g.N; + // 20230121: consider exposing restricted flag + // it's simpler to just check for 'Restricted' + // or even better: type.endsWith(']') + //if (g.R) info.restricted = true; + } + } + info.type = type; + } catch (err) { + info.error = err; // use full error object + } + return info; + }); +} + +function check_whole(group, unique) { + let maker; + let shared = []; + for (let cp of unique) { + let whole = WHOLE_MAP.get(cp); + if (whole === UNIQUE_PH) return; // unique, non-confusable + if (whole) { + let set = whole.M.get(cp); // groups which have a character that look-like this character + maker = maker ? maker.filter(g => set.has(g)) : Array_from(set); + if (!maker.length) return; // confusable intersection is empty + } else { + shared.push(cp); + } + } + if (maker) { + // we have 1+ confusable + // check if any of the remaining groups + // contain the shared characters too + for (let g of maker) { + if (shared.every(cp => group_has_cp(g, cp))) { + throw new Error(`whole-script confusable: ${group.N}/${g.N}`); + } + } + } +} + +// assumption: unique.size > 0 +// returns list of matching groups +function determine_group(unique) { + let groups = GROUPS; + for (let cp of unique) { + // note: we need to dodge CM that are whitelisted + // but that code isn't currently necessary + let gs = groups.filter(g => group_has_cp(g, cp)); + if (!gs.length) { + if (!GROUPS.some(g => group_has_cp(g, cp))) { + // the character was composed of valid parts + // but it's NFC form is invalid + // 20230716: change to more exact statement, see: ENSNormalize.{cs,java} + // note: this doesn't have to be a composition + // 20230720: change to full check + throw error_disallowed(cp); // this should be rare + } else { + // there is no group that contains all these characters + // throw using the highest priority group that matched + // https://www.unicode.org/reports/tr39/#mixed_script_confusables + throw error_group_member(groups[0], cp); + } + } + groups = gs; + if (gs.length == 1) break; // there is only one group left + } + // there are at least 1 group(s) with all of these characters + return groups; +} + +// throw on first error +function flatten(split) { + return split.map(({input, error, output}) => { + if (error) { + // don't print label again if just a single label + let msg = error.message; + // bidi_qq() only necessary if msg is digits + throw new Error(split.length == 1 ? msg : `Invalid label ${bidi_qq(safe_str_from_cps(input))}: ${msg}`); + } + return str_from_cps(output); + }).join(STOP_CH); +} + +function error_disallowed(cp) { + // TODO: add cp to error? + return new Error(`disallowed character: ${quoted_cp(cp)}`); +} +function error_group_member(g, cp) { + let quoted = quoted_cp(cp); + let gg = GROUPS.find(g => g.P.has(cp)); // only check primary + if (gg) { + quoted = `${gg.N} ${quoted}`; + } + return new Error(`illegal mixture: ${g.N} + ${quoted}`); +} +function error_placement(where) { + return new Error(`illegal placement: ${where}`); +} + +// assumption: cps.length > 0 +// assumption: cps[0] isn't a CM +// assumption: the previous character isn't an emoji +function check_group(g, cps) { + for (let cp of cps) { + if (!group_has_cp(g, cp)) { + // for whitelisted scripts, this will throw illegal mixture on invalid cm, eg. "e{300}{300}" + // at the moment, it's unnecessary to introduce an extra error type + // until there exists a whitelisted multi-character + // eg. if (M < 0 && is_combining_mark(cp)) { ... } + // there are 3 cases: + // 1. illegal cm for wrong group => mixture error + // 2. illegal cm for same group => cm error + // requires set of whitelist cm per group: + // eg. new Set([...g.P, ...g.Q].flatMap(nfc).filter(cp => CM.has(cp))) + // 3. wrong group => mixture error + throw error_group_member(g, cp); + } + } + //if (M >= 0) { // we have a known fixed cm count + if (g.M) { // we need to check for NSM + let decomposed = nfd(cps); + for (let i = 1, e = decomposed.length; i < e; i++) { // see: assumption + // 20230210: bugfix: using cps instead of decomposed h/t Carbon225 + /* + if (CM.has(decomposed[i])) { + let j = i + 1; + while (j < e && CM.has(decomposed[j])) j++; + if (j - i > M) { + throw new Error(`too many combining marks: ${g.N} ${bidi_qq(str_from_cps(decomposed.slice(i-1, j)))} (${j-i}/${M})`); + } + i = j; + } + */ + // 20230217: switch to NSM counting + // https://www.unicode.org/reports/tr39/#Optional_Detection + if (NSM.has(decomposed[i])) { + let j = i + 1; + for (let cp; j < e && NSM.has(cp = decomposed[j]); j++) { + // a. Forbid sequences of the same nonspacing mark. + for (let k = i; k < j; k++) { // O(n^2) but n < 100 + if (decomposed[k] == cp) { + throw new Error(`duplicate non-spacing marks: ${quoted_cp(cp)}`); + } + } + } + // parse to end so we have full nsm count + // b. Forbid sequences of more than 4 nonspacing marks (gc=Mn or gc=Me). + if (j - i > NSM_MAX) { + // note: this slice starts with a base char or spacing-mark cm + throw new Error(`excessive non-spacing marks: ${bidi_qq(safe_str_from_cps(decomposed.slice(i-1, j)))} (${j-i}/${NSM_MAX})`); + } + i = j; + } + } + } + // *** this code currently isn't needed *** + /* + let cm_whitelist = M instanceof Map; + for (let i = 0, e = cps.length; i < e; ) { + let cp = cps[i++]; + let seqs = cm_whitelist && M.get(cp); + if (seqs) { + // list of codepoints that can follow + // if this exists, this will always be 1+ + let j = i; + while (j < e && CM.has(cps[j])) j++; + let cms = cps.slice(i, j); + let match = seqs.find(seq => !compare_arrays(seq, cms)); + if (!match) throw new Error(`disallowed combining mark sequence: "${safe_str_from_cps([cp, ...cms])}"`); + i = j; + } else if (!V.has(cp)) { + // https://www.unicode.org/reports/tr39/#mixed_script_confusables + let quoted = quoted_cp(cp); + for (let cp of cps) { + let u = UNIQUE.get(cp); + if (u && u !== g) { + // if both scripts are restricted this error is confusing + // because we don't differentiate RestrictedA from RestrictedB + if (!u.R) quoted = `${quoted} is ${u.N}`; + break; + } + } + throw new Error(`disallowed ${g.N} character: ${quoted}`); + //throw new Error(`disallowed character: ${quoted} (expected ${g.N})`); + //throw new Error(`${g.N} does not allow: ${quoted}`); + } + } + if (!cm_whitelist) { + let decomposed = nfd(cps); + for (let i = 1, e = decomposed.length; i < e; i++) { // we know it can't be cm leading + if (CM.has(decomposed[i])) { + let j = i + 1; + while (j < e && CM.has(decomposed[j])) j++; + if (j - i > M) { + throw new Error(`too many combining marks: "${str_from_cps(decomposed.slice(i-1, j))}" (${j-i}/${M})`); + } + i = j; + } + } + } + */ +} + +// given a list of codepoints +// returns a list of lists, where emoji are a fully-qualified (as Array subclass) +// eg. explode_cp("abc💩d") => [[61, 62, 63], Emoji[1F4A9, FE0F], [64]] +// 20230818: rename for 'process' name collision h/t Javarome +// https://github.com/adraffy/ens-normalize.js/issues/23 +function tokens_from_str(input, nf, ef) { + let ret = []; + let chars = []; + input = input.slice().reverse(); // flip so we can pop + while (input.length) { + let emoji = consume_emoji_reversed(input); + if (emoji) { + if (chars.length) { + ret.push(nf(chars)); + chars = []; + } + ret.push(ef(emoji)); + } else { + let cp = input.pop(); + if (VALID.has(cp)) { + chars.push(cp); + } else { + let cps = MAPPED.get(cp); + if (cps) { + chars.push(...cps); // less than 10 elements + } else if (!IGNORED.has(cp)) { + // 20230912: unicode 15.1 changed the order of processing such that + // disallowed parts are only rejected after NFC + // https://unicode.org/reports/tr46/#Validity_Criteria + // this doesn't impact normalization as of today + // technically, this error can be removed as the group logic will apply similar logic + // however the error type might be less clear + throw error_disallowed(cp); + } + } + } + } + if (chars.length) { + ret.push(nf(chars)); + } + return ret; +} + +function filter_fe0f(cps) { + return cps.filter(cp => cp != FE0F); +} + +// given array of codepoints +// returns the longest valid emoji sequence (or undefined if no match) +// *MUTATES* the supplied array +// disallows interleaved ignored characters +// fills (optional) eaten array with matched codepoints +function consume_emoji_reversed(cps, eaten) { + let node = EMOJI_ROOT; + let emoji; + let pos = cps.length; + while (pos) { + node = node.get(cps[--pos]); + if (!node) break; + let {V} = node; + if (V) { // this is a valid emoji (so far) + emoji = V; + if (eaten) eaten.push(...cps.slice(pos).reverse()); // (optional) copy input, used for ens_tokenize() + cps.length = pos; // truncate + } + } + return emoji; +} + +// ************************************************************ +// tokenizer + +const TY_VALID = 'valid'; +const TY_MAPPED = 'mapped'; +const TY_IGNORED = 'ignored'; +const TY_DISALLOWED = 'disallowed'; +const TY_EMOJI = 'emoji'; +const TY_NFC = 'nfc'; +const TY_STOP = 'stop'; + +function ens_tokenize(name, { + nf = true, // collapse unnormalized runs into a single token +} = {}) { + init(); + let input = explode_cp(name).reverse(); + let eaten = []; + let tokens = []; + while (input.length) { + let emoji = consume_emoji_reversed(input, eaten); + if (emoji) { + tokens.push({ + type: TY_EMOJI, + emoji: emoji.slice(), // copy emoji + input: eaten, + cps: filter_fe0f(emoji) + }); + eaten = []; // reset buffer + } else { + let cp = input.pop(); + if (cp == STOP) { + tokens.push({type: TY_STOP, cp}); + } else if (VALID.has(cp)) { + tokens.push({type: TY_VALID, cps: [cp]}); + } else if (IGNORED.has(cp)) { + tokens.push({type: TY_IGNORED, cp}); + } else { + let cps = MAPPED.get(cp); + if (cps) { + tokens.push({type: TY_MAPPED, cp, cps: cps.slice()}); + } else { + tokens.push({type: TY_DISALLOWED, cp}); + } + } + } + } + if (nf) { + for (let i = 0, start = -1; i < tokens.length; i++) { + let token = tokens[i]; + if (is_valid_or_mapped(token.type)) { + if (requires_check(token.cps)) { // normalization might be needed + let end = i + 1; + for (let pos = end; pos < tokens.length; pos++) { // find adjacent text + let {type, cps} = tokens[pos]; + if (is_valid_or_mapped(type)) { + if (!requires_check(cps)) break; + end = pos + 1; + } else if (type !== TY_IGNORED) { // || type !== TY_DISALLOWED) { + break; + } + } + if (start < 0) start = i; + let slice = tokens.slice(start, end); + let cps0 = slice.flatMap(x => is_valid_or_mapped(x.type) ? x.cps : []); // strip junk tokens + let cps = nfc(cps0); + if (compare_arrays(cps, cps0)) { // bundle into an nfc token + tokens.splice(start, end - start, { + type: TY_NFC, + input: cps0, // there are 3 states: tokens0 ==(process)=> input ==(nfc)=> tokens/cps + cps, + tokens0: collapse_valid_tokens(slice), + tokens: ens_tokenize(str_from_cps(cps), {nf: false}) + }); + i = start; + } else { + i = end - 1; // skip to end of slice + } + start = -1; // reset + } else { + start = i; // remember last + } + } else if (token.type !== TY_IGNORED) { // 20221024: is this correct? + start = -1; // reset + } + } + } + return collapse_valid_tokens(tokens); +} + +function is_valid_or_mapped(type) { + return type == TY_VALID || type == TY_MAPPED; +} + +function requires_check(cps) { + return cps.some(cp => NFC_CHECK.has(cp)); +} + +function collapse_valid_tokens(tokens) { + for (let i = 0; i < tokens.length; i++) { + if (tokens[i].type == TY_VALID) { + let j = i + 1; + while (j < tokens.length && tokens[j].type == TY_VALID) j++; + tokens.splice(i, j - i, {type: TY_VALID, cps: tokens.slice(i, j).flatMap(x => x.cps)}); + } + } + return tokens; } +exports.ens_beautify = ens_beautify; +exports.ens_emoji = ens_emoji; +exports.ens_normalize = ens_normalize; +exports.ens_normalize_fragment = ens_normalize_fragment; +exports.ens_split = ens_split; +exports.ens_tokenize = ens_tokenize; +exports.is_combining_mark = is_combining_mark; +exports.nfc = nfc; +exports.nfd = nfd; +exports.safe_str_from_cps = safe_str_from_cps; +exports.should_escape = should_escape; -function formatValue(ctx, value, recurseTimes) { - // Provide a hook for user-specified inspect functions. - // Check that value is an object with an inspect function on it - if (ctx.customInspect && - value && - isFunction(value.inspect) && - // Filter out the util module, it's inspect function is special - value.inspect !== exports.inspect && - // Also filter out any prototype objects using the circular check. - !(value.constructor && value.constructor.prototype === value)) { - var ret = value.inspect(recurseTimes, ctx); - if (!isString(ret)) { - ret = formatValue(ctx, ret, recurseTimes); - } - return ret; - } - - // Primitive types cannot have properties - var primitive = formatPrimitive(ctx, value); - if (primitive) { - return primitive; - } - - // Look up the keys of the object. - var keys = Object.keys(value); - var visibleKeys = arrayToHash(keys); - - if (ctx.showHidden) { - keys = Object.getOwnPropertyNames(value); - } - - // IE doesn't make error fields non-enumerable - // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx - if (isError(value) - && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { - return formatError(value); - } - - // Some type of object without properties can be shortcutted. - if (keys.length === 0) { - if (isFunction(value)) { - var name = value.name ? ': ' + value.name : ''; - return ctx.stylize('[Function' + name + ']', 'special'); - } - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } - if (isDate(value)) { - return ctx.stylize(Date.prototype.toString.call(value), 'date'); - } - if (isError(value)) { - return formatError(value); - } - } - - var base = '', array = false, braces = ['{', '}']; - - // Make Array say that they are Array - if (isArray(value)) { - array = true; - braces = ['[', ']']; - } - - // Make functions say that they are functions - if (isFunction(value)) { - var n = value.name ? ': ' + value.name : ''; - base = ' [Function' + n + ']'; - } - - // Make RegExps say that they are RegExps - if (isRegExp(value)) { - base = ' ' + RegExp.prototype.toString.call(value); - } - - // Make dates with properties first say the date - if (isDate(value)) { - base = ' ' + Date.prototype.toUTCString.call(value); - } - - // Make error with message first say the error - if (isError(value)) { - base = ' ' + formatError(value); - } - - if (keys.length === 0 && (!array || value.length == 0)) { - return braces[0] + base + braces[1]; - } - if (recurseTimes < 0) { - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } else { - return ctx.stylize('[Object]', 'special'); - } - } +/***/ }), - ctx.seen.push(value); +/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/dist/browser/axios.cjs": +/*!***************************************************************************************!*\ + !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/dist/browser/axios.cjs ***! + \***************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - var output; - if (array) { - output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); - } else { - output = keys.map(function(key) { - return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); - }); - } +"use strict"; +/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")["Buffer"]; +// Axios v1.6.2 Copyright (c) 2023 Matt Zabriskie and contributors - ctx.seen.pop(); - return reduceToSingleString(output, base, braces); +function bind(fn, thisArg) { + return function wrap() { + return fn.apply(thisArg, arguments); + }; } +// utils is a library of generic helper functions non-specific to axios -function formatPrimitive(ctx, value) { - if (isUndefined(value)) - return ctx.stylize('undefined', 'undefined'); - if (isString(value)) { - var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') - .replace(/'/g, "\\'") - .replace(/\\"/g, '"') + '\''; - return ctx.stylize(simple, 'string'); - } - if (isNumber(value)) - return ctx.stylize('' + value, 'number'); - if (isBoolean(value)) - return ctx.stylize('' + value, 'boolean'); - // For some reason typeof null is "object", so special case here. - if (isNull(value)) - return ctx.stylize('null', 'null'); -} - +const {toString} = Object.prototype; +const {getPrototypeOf} = Object; -function formatError(value) { - return '[' + Error.prototype.toString.call(value) + ']'; -} +const kindOf = (cache => thing => { + const str = toString.call(thing); + return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase()); +})(Object.create(null)); +const kindOfTest = (type) => { + type = type.toLowerCase(); + return (thing) => kindOf(thing) === type +}; -function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { - var output = []; - for (var i = 0, l = value.length; i < l; ++i) { - if (hasOwnProperty(value, String(i))) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - String(i), true)); - } else { - output.push(''); - } - } - keys.forEach(function(key) { - if (!key.match(/^\d+$/)) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - key, true)); - } - }); - return output; -} +const typeOfTest = type => thing => typeof thing === type; +/** + * Determine if a value is an Array + * + * @param {Object} val The value to test + * + * @returns {boolean} True if value is an Array, otherwise false + */ +const {isArray} = Array; -function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { - var name, str, desc; - desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; - if (desc.get) { - if (desc.set) { - str = ctx.stylize('[Getter/Setter]', 'special'); - } else { - str = ctx.stylize('[Getter]', 'special'); - } - } else { - if (desc.set) { - str = ctx.stylize('[Setter]', 'special'); - } - } - if (!hasOwnProperty(visibleKeys, key)) { - name = '[' + key + ']'; - } - if (!str) { - if (ctx.seen.indexOf(desc.value) < 0) { - if (isNull(recurseTimes)) { - str = formatValue(ctx, desc.value, null); - } else { - str = formatValue(ctx, desc.value, recurseTimes - 1); - } - if (str.indexOf('\n') > -1) { - if (array) { - str = str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n').substr(2); - } else { - str = '\n' + str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n'); - } - } - } else { - str = ctx.stylize('[Circular]', 'special'); - } - } - if (isUndefined(name)) { - if (array && key.match(/^\d+$/)) { - return str; - } - name = JSON.stringify('' + key); - if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { - name = name.substr(1, name.length - 2); - name = ctx.stylize(name, 'name'); - } else { - name = name.replace(/'/g, "\\'") - .replace(/\\"/g, '"') - .replace(/(^"|"$)/g, "'"); - name = ctx.stylize(name, 'string'); - } - } +/** + * Determine if a value is undefined + * + * @param {*} val The value to test + * + * @returns {boolean} True if the value is undefined, otherwise false + */ +const isUndefined = typeOfTest('undefined'); - return name + ': ' + str; +/** + * Determine if a value is a Buffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Buffer, otherwise false + */ +function isBuffer(val) { + return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) + && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val); } +/** + * Determine if a value is an ArrayBuffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ +const isArrayBuffer = kindOfTest('ArrayBuffer'); -function reduceToSingleString(output, base, braces) { - var numLinesEst = 0; - var length = output.reduce(function(prev, cur) { - numLinesEst++; - if (cur.indexOf('\n') >= 0) numLinesEst++; - return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; - }, 0); - if (length > 60) { - return braces[0] + - (base === '' ? '' : base + '\n ') + - ' ' + - output.join(',\n ') + - ' ' + - braces[1]; +/** + * Determine if a value is a view on an ArrayBuffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ +function isArrayBufferView(val) { + let result; + if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { + result = ArrayBuffer.isView(val); + } else { + result = (val) && (val.buffer) && (isArrayBuffer(val.buffer)); } - - return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; -} - - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. -function isArray(ar) { - return Array.isArray(ar); -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return isObject(re) && objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return isObject(d) && objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return isObject(e) && - (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -exports.isBuffer = __webpack_require__(/*! ./support/isBuffer */ "./node_modules/util/support/isBufferBrowser.js"); - -function objectToString(o) { - return Object.prototype.toString.call(o); -} - - -function pad(n) { - return n < 10 ? '0' + n.toString(10) : n.toString(10); -} - - -var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec']; - -// 26 Feb 16:19:34 -function timestamp() { - var d = new Date(); - var time = [pad(d.getHours()), - pad(d.getMinutes()), - pad(d.getSeconds())].join(':'); - return [d.getDate(), months[d.getMonth()], time].join(' '); + return result; } +/** + * Determine if a value is a String + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a String, otherwise false + */ +const isString = typeOfTest('string'); -// log is just a thin wrapper to console.log that prepends a timestamp -exports.log = function() { - console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); -}; +/** + * Determine if a value is a Function + * + * @param {*} val The value to test + * @returns {boolean} True if value is a Function, otherwise false + */ +const isFunction = typeOfTest('function'); +/** + * Determine if a value is a Number + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Number, otherwise false + */ +const isNumber = typeOfTest('number'); /** - * Inherit the prototype methods from one constructor into another. + * Determine if a value is an Object * - * The Function.prototype.inherits from lang.js rewritten as a standalone - * function (not on Function.prototype). NOTE: If this file is to be loaded - * during bootstrapping this function needs to be rewritten using some native - * functions as prototype setup using normal JavaScript does not work as - * expected during bootstrapping (see mirror.js in r114903). + * @param {*} thing The value to test * - * @param {function} ctor Constructor function which needs to inherit the - * prototype. - * @param {function} superCtor Constructor function to inherit prototype from. + * @returns {boolean} True if value is an Object, otherwise false */ -exports.inherits = __webpack_require__(/*! inherits */ "./node_modules/util/node_modules/inherits/inherits_browser.js"); +const isObject = (thing) => thing !== null && typeof thing === 'object'; -exports._extend = function(origin, add) { - // Don't do anything if add isn't an object - if (!add || !isObject(add)) return origin; +/** + * Determine if a value is a Boolean + * + * @param {*} thing The value to test + * @returns {boolean} True if value is a Boolean, otherwise false + */ +const isBoolean = thing => thing === true || thing === false; - var keys = Object.keys(add); - var i = keys.length; - while (i--) { - origin[keys[i]] = add[keys[i]]; +/** + * Determine if a value is a plain Object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a plain Object, otherwise false + */ +const isPlainObject = (val) => { + if (kindOf(val) !== 'object') { + return false; } - return origin; -}; - -function hasOwnProperty(obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop); -} - - -/***/ }), - -/***/ "./node_modules/which-typed-array/index.js": -/*!*************************************************!*\ - !*** ./node_modules/which-typed-array/index.js ***! - \*************************************************/ -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -var forEach = __webpack_require__(/*! for-each */ "./node_modules/for-each/index.js"); -var availableTypedArrays = __webpack_require__(/*! available-typed-arrays */ "./node_modules/available-typed-arrays/index.js"); -var callBound = __webpack_require__(/*! call-bind/callBound */ "./node_modules/call-bind/callBound.js"); -var gOPD = __webpack_require__(/*! gopd */ "./node_modules/gopd/index.js"); - -var $toString = callBound('Object.prototype.toString'); -var hasToStringTag = __webpack_require__(/*! has-tostringtag/shams */ "./node_modules/has-tostringtag/shams.js")(); - -var g = typeof globalThis === 'undefined' ? __webpack_require__.g : globalThis; -var typedArrays = availableTypedArrays(); - -var $slice = callBound('String.prototype.slice'); -var toStrTags = {}; -var getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof'); -if (hasToStringTag && gOPD && getPrototypeOf) { - forEach(typedArrays, function (typedArray) { - if (typeof g[typedArray] === 'function') { - var arr = new g[typedArray](); - if (Symbol.toStringTag in arr) { - var proto = getPrototypeOf(arr); - var descriptor = gOPD(proto, Symbol.toStringTag); - if (!descriptor) { - var superProto = getPrototypeOf(proto); - descriptor = gOPD(superProto, Symbol.toStringTag); - } - toStrTags[typedArray] = descriptor.get; - } - } - }); -} - -var tryTypedArrays = function tryAllTypedArrays(value) { - var foundName = false; - forEach(toStrTags, function (getter, typedArray) { - if (!foundName) { - try { - var name = getter.call(value); - if (name === typedArray) { - foundName = name; - } - } catch (e) {} - } - }); - return foundName; -}; - -var isTypedArray = __webpack_require__(/*! is-typed-array */ "./node_modules/is-typed-array/index.js"); -module.exports = function whichTypedArray(value) { - if (!isTypedArray(value)) { return false; } - if (!hasToStringTag || !(Symbol.toStringTag in value)) { return $slice($toString(value), 8, -1); } - return tryTypedArrays(value); + const prototype = getPrototypeOf(val); + return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val); }; +/** + * Determine if a value is a Date + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Date, otherwise false + */ +const isDate = kindOfTest('Date'); -/***/ }), - -/***/ "./node_modules/xstream/index.js": -/*!***************************************!*\ - !*** ./node_modules/xstream/index.js ***! - \***************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { +/** + * Determine if a value is a File + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a File, otherwise false + */ +const isFile = kindOfTest('File'); -"use strict"; +/** + * Determine if a value is a Blob + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Blob, otherwise false + */ +const isBlob = kindOfTest('Blob'); -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.NO_IL = exports.NO = exports.MemoryStream = exports.Stream = void 0; -var ponyfill_1 = __webpack_require__(/*! symbol-observable/ponyfill */ "./node_modules/symbol-observable/ponyfill.js"); -var globalthis_1 = __webpack_require__(/*! globalthis */ "./node_modules/globalthis/index.js"); -var $$observable = ponyfill_1.default(globalthis_1.getPolyfill()); -var NO = {}; -exports.NO = NO; -function noop() { } -function cp(a) { - var l = a.length; - var b = Array(l); - for (var i = 0; i < l; ++i) - b[i] = a[i]; - return b; -} -function and(f1, f2) { - return function andFn(t) { - return f1(t) && f2(t); - }; -} -function _try(c, t, u) { - try { - return c.f(t); - } - catch (e) { - u._e(e); - return NO; - } -} -var NO_IL = { - _n: noop, - _e: noop, - _c: noop, -}; -exports.NO_IL = NO_IL; -// mutates the input -function internalizeProducer(producer) { - producer._start = function _start(il) { - il.next = il._n; - il.error = il._e; - il.complete = il._c; - this.start(il); - }; - producer._stop = producer.stop; -} -var StreamSub = /** @class */ (function () { - function StreamSub(_stream, _listener) { - this._stream = _stream; - this._listener = _listener; - } - StreamSub.prototype.unsubscribe = function () { - this._stream._remove(this._listener); - }; - return StreamSub; -}()); -var Observer = /** @class */ (function () { - function Observer(_listener) { - this._listener = _listener; - } - Observer.prototype.next = function (value) { - this._listener._n(value); - }; - Observer.prototype.error = function (err) { - this._listener._e(err); - }; - Observer.prototype.complete = function () { - this._listener._c(); - }; - return Observer; -}()); -var FromObservable = /** @class */ (function () { - function FromObservable(observable) { - this.type = 'fromObservable'; - this.ins = observable; - this.active = false; - } - FromObservable.prototype._start = function (out) { - this.out = out; - this.active = true; - this._sub = this.ins.subscribe(new Observer(out)); - if (!this.active) - this._sub.unsubscribe(); - }; - FromObservable.prototype._stop = function () { - if (this._sub) - this._sub.unsubscribe(); - this.active = false; - }; - return FromObservable; -}()); -var Merge = /** @class */ (function () { - function Merge(insArr) { - this.type = 'merge'; - this.insArr = insArr; - this.out = NO; - this.ac = 0; - } - Merge.prototype._start = function (out) { - this.out = out; - var s = this.insArr; - var L = s.length; - this.ac = L; - for (var i = 0; i < L; i++) - s[i]._add(this); - }; - Merge.prototype._stop = function () { - var s = this.insArr; - var L = s.length; - for (var i = 0; i < L; i++) - s[i]._remove(this); - this.out = NO; - }; - Merge.prototype._n = function (t) { - var u = this.out; - if (u === NO) - return; - u._n(t); - }; - Merge.prototype._e = function (err) { - var u = this.out; - if (u === NO) - return; - u._e(err); - }; - Merge.prototype._c = function () { - if (--this.ac <= 0) { - var u = this.out; - if (u === NO) - return; - u._c(); - } - }; - return Merge; -}()); -var CombineListener = /** @class */ (function () { - function CombineListener(i, out, p) { - this.i = i; - this.out = out; - this.p = p; - p.ils.push(this); - } - CombineListener.prototype._n = function (t) { - var p = this.p, out = this.out; - if (out === NO) - return; - if (p.up(t, this.i)) { - var b = cp(p.vals); - out._n(b); - } - }; - CombineListener.prototype._e = function (err) { - var out = this.out; - if (out === NO) - return; - out._e(err); - }; - CombineListener.prototype._c = function () { - var p = this.p; - if (p.out === NO) - return; - if (--p.Nc === 0) - p.out._c(); - }; - return CombineListener; -}()); -var Combine = /** @class */ (function () { - function Combine(insArr) { - this.type = 'combine'; - this.insArr = insArr; - this.out = NO; - this.ils = []; - this.Nc = this.Nn = 0; - this.vals = []; - } - Combine.prototype.up = function (t, i) { - var v = this.vals[i]; - var Nn = !this.Nn ? 0 : v === NO ? --this.Nn : this.Nn; - this.vals[i] = t; - return Nn === 0; - }; - Combine.prototype._start = function (out) { - this.out = out; - var s = this.insArr; - var n = this.Nc = this.Nn = s.length; - var vals = this.vals = new Array(n); - if (n === 0) { - out._n([]); - out._c(); - } - else { - for (var i = 0; i < n; i++) { - vals[i] = NO; - s[i]._add(new CombineListener(i, out, this)); - } - } - }; - Combine.prototype._stop = function () { - var s = this.insArr; - var n = s.length; - var ils = this.ils; - for (var i = 0; i < n; i++) - s[i]._remove(ils[i]); - this.out = NO; - this.ils = []; - this.vals = []; - }; - return Combine; -}()); -var FromArray = /** @class */ (function () { - function FromArray(a) { - this.type = 'fromArray'; - this.a = a; - } - FromArray.prototype._start = function (out) { - var a = this.a; - for (var i = 0, n = a.length; i < n; i++) - out._n(a[i]); - out._c(); - }; - FromArray.prototype._stop = function () { - }; - return FromArray; -}()); -var FromPromise = /** @class */ (function () { - function FromPromise(p) { - this.type = 'fromPromise'; - this.on = false; - this.p = p; - } - FromPromise.prototype._start = function (out) { - var prod = this; - this.on = true; - this.p.then(function (v) { - if (prod.on) { - out._n(v); - out._c(); - } - }, function (e) { - out._e(e); - }).then(noop, function (err) { - setTimeout(function () { throw err; }); - }); - }; - FromPromise.prototype._stop = function () { - this.on = false; - }; - return FromPromise; -}()); -var Periodic = /** @class */ (function () { - function Periodic(period) { - this.type = 'periodic'; - this.period = period; - this.intervalID = -1; - this.i = 0; - } - Periodic.prototype._start = function (out) { - var self = this; - function intervalHandler() { out._n(self.i++); } - this.intervalID = setInterval(intervalHandler, this.period); - }; - Periodic.prototype._stop = function () { - if (this.intervalID !== -1) - clearInterval(this.intervalID); - this.intervalID = -1; - this.i = 0; - }; - return Periodic; -}()); -var Debug = /** @class */ (function () { - function Debug(ins, arg) { - this.type = 'debug'; - this.ins = ins; - this.out = NO; - this.s = noop; - this.l = ''; - if (typeof arg === 'string') - this.l = arg; - else if (typeof arg === 'function') - this.s = arg; - } - Debug.prototype._start = function (out) { - this.out = out; - this.ins._add(this); - }; - Debug.prototype._stop = function () { - this.ins._remove(this); - this.out = NO; - }; - Debug.prototype._n = function (t) { - var u = this.out; - if (u === NO) - return; - var s = this.s, l = this.l; - if (s !== noop) { - try { - s(t); - } - catch (e) { - u._e(e); - } - } - else if (l) - console.log(l + ':', t); - else - console.log(t); - u._n(t); - }; - Debug.prototype._e = function (err) { - var u = this.out; - if (u === NO) - return; - u._e(err); - }; - Debug.prototype._c = function () { - var u = this.out; - if (u === NO) - return; - u._c(); - }; - return Debug; -}()); -var Drop = /** @class */ (function () { - function Drop(max, ins) { - this.type = 'drop'; - this.ins = ins; - this.out = NO; - this.max = max; - this.dropped = 0; - } - Drop.prototype._start = function (out) { - this.out = out; - this.dropped = 0; - this.ins._add(this); - }; - Drop.prototype._stop = function () { - this.ins._remove(this); - this.out = NO; - }; - Drop.prototype._n = function (t) { - var u = this.out; - if (u === NO) - return; - if (this.dropped++ >= this.max) - u._n(t); - }; - Drop.prototype._e = function (err) { - var u = this.out; - if (u === NO) - return; - u._e(err); - }; - Drop.prototype._c = function () { - var u = this.out; - if (u === NO) - return; - u._c(); - }; - return Drop; -}()); -var EndWhenListener = /** @class */ (function () { - function EndWhenListener(out, op) { - this.out = out; - this.op = op; - } - EndWhenListener.prototype._n = function () { - this.op.end(); - }; - EndWhenListener.prototype._e = function (err) { - this.out._e(err); - }; - EndWhenListener.prototype._c = function () { - this.op.end(); - }; - return EndWhenListener; -}()); -var EndWhen = /** @class */ (function () { - function EndWhen(o, ins) { - this.type = 'endWhen'; - this.ins = ins; - this.out = NO; - this.o = o; - this.oil = NO_IL; - } - EndWhen.prototype._start = function (out) { - this.out = out; - this.o._add(this.oil = new EndWhenListener(out, this)); - this.ins._add(this); - }; - EndWhen.prototype._stop = function () { - this.ins._remove(this); - this.o._remove(this.oil); - this.out = NO; - this.oil = NO_IL; - }; - EndWhen.prototype.end = function () { - var u = this.out; - if (u === NO) - return; - u._c(); - }; - EndWhen.prototype._n = function (t) { - var u = this.out; - if (u === NO) - return; - u._n(t); - }; - EndWhen.prototype._e = function (err) { - var u = this.out; - if (u === NO) - return; - u._e(err); - }; - EndWhen.prototype._c = function () { - this.end(); - }; - return EndWhen; -}()); -var Filter = /** @class */ (function () { - function Filter(passes, ins) { - this.type = 'filter'; - this.ins = ins; - this.out = NO; - this.f = passes; +/** + * Determine if a value is a FileList + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a File, otherwise false + */ +const isFileList = kindOfTest('FileList'); + +/** + * Determine if a value is a Stream + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Stream, otherwise false + */ +const isStream = (val) => isObject(val) && isFunction(val.pipe); + +/** + * Determine if a value is a FormData + * + * @param {*} thing The value to test + * + * @returns {boolean} True if value is an FormData, otherwise false + */ +const 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]') + ) + ) + ) +}; + +/** + * Determine if a value is a URLSearchParams object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ +const isURLSearchParams = kindOfTest('URLSearchParams'); + +/** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * + * @returns {String} The String freed of excess whitespace + */ +const trim = (str) => str.trim ? + str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); + +/** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + * + * @param {Boolean} [allOwnKeys = false] + * @returns {any} + */ +function forEach(obj, fn, {allOwnKeys = false} = {}) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } + + let i; + let l; + + // Force an array if not already something iterable + if (typeof obj !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj]; + } + + if (isArray(obj)) { + // Iterate over array values + for (i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); } - Filter.prototype._start = function (out) { - this.out = out; - this.ins._add(this); - }; - Filter.prototype._stop = function () { - this.ins._remove(this); - this.out = NO; - }; - Filter.prototype._n = function (t) { - var u = this.out; - if (u === NO) - return; - var r = _try(this, t, u); - if (r === NO || !r) - return; - u._n(t); - }; - Filter.prototype._e = function (err) { - var u = this.out; - if (u === NO) - return; - u._e(err); - }; - Filter.prototype._c = function () { - var u = this.out; - if (u === NO) - return; - u._c(); - }; - return Filter; -}()); -var FlattenListener = /** @class */ (function () { - function FlattenListener(out, op) { - this.out = out; - this.op = op; + } else { + // Iterate over object keys + const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj); + const len = keys.length; + let key; + + for (i = 0; i < len; i++) { + key = keys[i]; + fn.call(null, obj[key], key, obj); } - FlattenListener.prototype._n = function (t) { - this.out._n(t); - }; - FlattenListener.prototype._e = function (err) { - this.out._e(err); - }; - FlattenListener.prototype._c = function () { - this.op.inner = NO; - this.op.less(); - }; - return FlattenListener; -}()); -var Flatten = /** @class */ (function () { - function Flatten(ins) { - this.type = 'flatten'; - this.ins = ins; - this.out = NO; - this.open = true; - this.inner = NO; - this.il = NO_IL; + } +} + +function findKey(obj, key) { + key = key.toLowerCase(); + const keys = Object.keys(obj); + let i = keys.length; + let _key; + while (i-- > 0) { + _key = keys[i]; + if (key === _key.toLowerCase()) { + return _key; } - Flatten.prototype._start = function (out) { - this.out = out; - this.open = true; - this.inner = NO; - this.il = NO_IL; - this.ins._add(this); - }; - Flatten.prototype._stop = function () { - this.ins._remove(this); - if (this.inner !== NO) - this.inner._remove(this.il); - this.out = NO; - this.open = true; - this.inner = NO; - this.il = NO_IL; - }; - Flatten.prototype.less = function () { - var u = this.out; - if (u === NO) - return; - if (!this.open && this.inner === NO) - u._c(); - }; - Flatten.prototype._n = function (s) { - var u = this.out; - if (u === NO) - return; - var _a = this, inner = _a.inner, il = _a.il; - if (inner !== NO && il !== NO_IL) - inner._remove(il); - (this.inner = s)._add(this.il = new FlattenListener(u, this)); - }; - Flatten.prototype._e = function (err) { - var u = this.out; - if (u === NO) - return; - u._e(err); - }; - Flatten.prototype._c = function () { - this.open = false; - this.less(); - }; - return Flatten; -}()); -var Fold = /** @class */ (function () { - function Fold(f, seed, ins) { - var _this = this; - this.type = 'fold'; - this.ins = ins; - this.out = NO; - this.f = function (t) { return f(_this.acc, t); }; - this.acc = this.seed = seed; + } + return null; +} + +const _global = (() => { + /*eslint no-undef:0*/ + if (typeof globalThis !== "undefined") return globalThis; + return typeof self !== "undefined" ? self : (typeof window !== 'undefined' ? window : __webpack_require__.g) +})(); + +const isContextDefined = (context) => !isUndefined(context) && context !== _global; + +/** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * var result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * + * @returns {Object} Result of all merge properties + */ +function merge(/* obj1, obj2, obj3, ... */) { + const {caseless} = isContextDefined(this) && this || {}; + const result = {}; + const assignValue = (val, key) => { + const targetKey = caseless && findKey(result, key) || key; + 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; } - Fold.prototype._start = function (out) { - this.out = out; - this.acc = this.seed; - out._n(this.acc); - this.ins._add(this); - }; - Fold.prototype._stop = function () { - this.ins._remove(this); - this.out = NO; - this.acc = this.seed; - }; - Fold.prototype._n = function (t) { - var u = this.out; - if (u === NO) - return; - var r = _try(this, t, u); - if (r === NO) - return; - u._n(this.acc = r); - }; - Fold.prototype._e = function (err) { - var u = this.out; - if (u === NO) - return; - u._e(err); - }; - Fold.prototype._c = function () { - var u = this.out; - if (u === NO) - return; - u._c(); - }; - return Fold; -}()); -var Last = /** @class */ (function () { - function Last(ins) { - this.type = 'last'; - this.ins = ins; - this.out = NO; - this.has = false; - this.val = NO; + }; + + for (let i = 0, l = arguments.length; i < l; i++) { + arguments[i] && forEach(arguments[i], assignValue); + } + return result; +} + +/** + * Extends object a by mutably adding to it the properties of object b. + * + * @param {Object} a The object to be extended + * @param {Object} b The object to copy properties from + * @param {Object} thisArg The object to bind function to + * + * @param {Boolean} [allOwnKeys] + * @returns {Object} The resulting value of object a + */ +const extend = (a, b, thisArg, {allOwnKeys}= {}) => { + forEach(b, (val, key) => { + if (thisArg && isFunction(val)) { + a[key] = bind(val, thisArg); + } else { + a[key] = val; } - Last.prototype._start = function (out) { - this.out = out; - this.has = false; - this.ins._add(this); - }; - Last.prototype._stop = function () { - this.ins._remove(this); - this.out = NO; - this.val = NO; - }; - Last.prototype._n = function (t) { - this.has = true; - this.val = t; - }; - Last.prototype._e = function (err) { - var u = this.out; - if (u === NO) - return; - u._e(err); - }; - Last.prototype._c = function () { - var u = this.out; - if (u === NO) - return; - if (this.has) { - u._n(this.val); - u._c(); - } - else - u._e(new Error('last() failed because input stream completed')); - }; - return Last; -}()); -var MapOp = /** @class */ (function () { - function MapOp(project, ins) { - this.type = 'map'; - this.ins = ins; - this.out = NO; - this.f = project; + }, {allOwnKeys}); + return a; +}; + +/** + * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) + * + * @param {string} content with BOM + * + * @returns {string} content value without BOM + */ +const stripBOM = (content) => { + if (content.charCodeAt(0) === 0xFEFF) { + content = content.slice(1); + } + return content; +}; + +/** + * Inherit the prototype methods from one constructor into another + * @param {function} constructor + * @param {function} superConstructor + * @param {object} [props] + * @param {object} [descriptors] + * + * @returns {void} + */ +const inherits = (constructor, superConstructor, props, descriptors) => { + constructor.prototype = Object.create(superConstructor.prototype, descriptors); + constructor.prototype.constructor = constructor; + Object.defineProperty(constructor, 'super', { + value: superConstructor.prototype + }); + props && Object.assign(constructor.prototype, props); +}; + +/** + * Resolve object with deep prototype chain to a flat object + * @param {Object} sourceObj source object + * @param {Object} [destObj] + * @param {Function|Boolean} [filter] + * @param {Function} [propFilter] + * + * @returns {Object} + */ +const toFlatObject = (sourceObj, destObj, filter, propFilter) => { + let props; + let i; + let prop; + const merged = {}; + + destObj = destObj || {}; + // eslint-disable-next-line no-eq-null,eqeqeq + 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; + } } - MapOp.prototype._start = function (out) { - this.out = out; - this.ins._add(this); - }; - MapOp.prototype._stop = function () { - this.ins._remove(this); - this.out = NO; - }; - MapOp.prototype._n = function (t) { - var u = this.out; - if (u === NO) - return; - var r = _try(this, t, u); - if (r === NO) - return; - u._n(r); - }; - MapOp.prototype._e = function (err) { - var u = this.out; - if (u === NO) - return; - u._e(err); - }; - MapOp.prototype._c = function () { - var u = this.out; - if (u === NO) - return; - u._c(); - }; - return MapOp; -}()); -var Remember = /** @class */ (function () { - function Remember(ins) { - this.type = 'remember'; - this.ins = ins; - this.out = NO; + sourceObj = filter !== false && getPrototypeOf(sourceObj); + } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype); + + return destObj; +}; + +/** + * Determines whether a string ends with the characters of a specified string + * + * @param {String} str + * @param {String} searchString + * @param {Number} [position= 0] + * + * @returns {boolean} + */ +const endsWith = (str, searchString, position) => { + str = String(str); + if (position === undefined || position > str.length) { + position = str.length; + } + position -= searchString.length; + const lastIndex = str.indexOf(searchString, position); + return lastIndex !== -1 && lastIndex === position; +}; + + +/** + * Returns new array from array like object or null if failed + * + * @param {*} [thing] + * + * @returns {?Array} + */ +const 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; +}; + +/** + * Checking if the Uint8Array exists and if it does, it returns a function that checks if the + * thing passed in is an instance of Uint8Array + * + * @param {TypedArray} + * + * @returns {Array} + */ +// eslint-disable-next-line func-names +const isTypedArray = (TypedArray => { + // eslint-disable-next-line func-names + return thing => { + return TypedArray && thing instanceof TypedArray; + }; +})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array)); + +/** + * For each entry in the object, call the function with the key and value. + * + * @param {Object} obj - The object to iterate over. + * @param {Function} fn - The function to call for each entry. + * + * @returns {void} + */ +const 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]); + } +}; + +/** + * It takes a regular expression and a string, and returns an array of all the matches + * + * @param {string} regExp - The regular expression to match against. + * @param {string} str - The string to search. + * + * @returns {Array} + */ +const matchAll = (regExp, str) => { + let matches; + const arr = []; + + while ((matches = regExp.exec(str)) !== null) { + arr.push(matches); + } + + return arr; +}; + +/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */ +const isHTMLForm = kindOfTest('HTMLFormElement'); + +const toCamelCase = str => { + return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, + function replacer(m, p1, p2) { + return p1.toUpperCase() + p2; } - Remember.prototype._start = function (out) { - this.out = out; - this.ins._add(out); - }; - Remember.prototype._stop = function () { - this.ins._remove(this.out); - this.out = NO; - }; - return Remember; -}()); -var ReplaceError = /** @class */ (function () { - function ReplaceError(replacer, ins) { - this.type = 'replaceError'; - this.ins = ins; - this.out = NO; - this.f = replacer; + ); +}; + +/* Creating a function that will check if an object has a property. */ +const hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype); + +/** + * Determine if a value is a RegExp object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a RegExp object, otherwise false + */ +const isRegExp = kindOfTest('RegExp'); + +const reduceDescriptors = (obj, reducer) => { + const descriptors = Object.getOwnPropertyDescriptors(obj); + const reducedDescriptors = {}; + + forEach(descriptors, (descriptor, name) => { + let ret; + if ((ret = reducer(descriptor, name, obj)) !== false) { + reducedDescriptors[name] = ret || descriptor; } - ReplaceError.prototype._start = function (out) { - this.out = out; - this.ins._add(this); - }; - ReplaceError.prototype._stop = function () { - this.ins._remove(this); - this.out = NO; - }; - ReplaceError.prototype._n = function (t) { - var u = this.out; - if (u === NO) - return; - u._n(t); - }; - ReplaceError.prototype._e = function (err) { - var u = this.out; - if (u === NO) - return; - try { - this.ins._remove(this); - (this.ins = this.f(err))._add(this); - } - catch (e) { - u._e(e); - } - }; - ReplaceError.prototype._c = function () { - var u = this.out; - if (u === NO) - return; - u._c(); - }; - return ReplaceError; -}()); -var StartWith = /** @class */ (function () { - function StartWith(ins, val) { - this.type = 'startWith'; - this.ins = ins; - this.out = NO; - this.val = val; + }); + + Object.defineProperties(obj, reducedDescriptors); +}; + +/** + * Makes all methods read-only + * @param {Object} obj + */ + +const freezeMethods = (obj) => { + reduceDescriptors(obj, (descriptor, name) => { + // skip restricted props in strict mode + if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) { + return false; } - StartWith.prototype._start = function (out) { - this.out = out; - this.out._n(this.val); - this.ins._add(out); - }; - StartWith.prototype._stop = function () { - this.ins._remove(this.out); - this.out = NO; - }; - return StartWith; -}()); -var Take = /** @class */ (function () { - function Take(max, ins) { - this.type = 'take'; - this.ins = ins; - this.out = NO; - this.max = max; - this.taken = 0; + + const value = obj[name]; + + if (!isFunction(value)) return; + + descriptor.enumerable = false; + + if ('writable' in descriptor) { + descriptor.writable = false; + return; } - Take.prototype._start = function (out) { - this.out = out; - this.taken = 0; - if (this.max <= 0) - out._c(); - else - this.ins._add(this); - }; - Take.prototype._stop = function () { - this.ins._remove(this); - this.out = NO; - }; - Take.prototype._n = function (t) { - var u = this.out; - if (u === NO) - return; - var m = ++this.taken; - if (m < this.max) - u._n(t); - else if (m === this.max) { - u._n(t); - u._c(); - } - }; - Take.prototype._e = function (err) { - var u = this.out; - if (u === NO) - return; - u._e(err); - }; - Take.prototype._c = function () { - var u = this.out; - if (u === NO) - return; - u._c(); - }; - return Take; -}()); -var Stream = /** @class */ (function () { - function Stream(producer) { - this._prod = producer || NO; - this._ils = []; - this._stopID = NO; - this._dl = NO; - this._d = false; - this._target = null; - this._err = NO; + + if (!descriptor.set) { + descriptor.set = () => { + throw Error('Can not rewrite read-only method \'' + name + '\''); + }; } - Stream.prototype._n = function (t) { - var a = this._ils; - var L = a.length; - if (this._d) - this._dl._n(t); - if (L == 1) - a[0]._n(t); - else if (L == 0) - return; - else { - var b = cp(a); - for (var i = 0; i < L; i++) - b[i]._n(t); - } - }; - Stream.prototype._e = function (err) { - if (this._err !== NO) - return; - this._err = err; - var a = this._ils; - var L = a.length; - this._x(); - if (this._d) - this._dl._e(err); - if (L == 1) - a[0]._e(err); - else if (L == 0) - return; - else { - var b = cp(a); - for (var i = 0; i < L; i++) - b[i]._e(err); - } - if (!this._d && L == 0) - throw this._err; - }; - Stream.prototype._c = function () { - var a = this._ils; - var L = a.length; - this._x(); - if (this._d) - this._dl._c(); - if (L == 1) - a[0]._c(); - else if (L == 0) - return; - else { - var b = cp(a); - for (var i = 0; i < L; i++) - b[i]._c(); - } - }; - Stream.prototype._x = function () { - if (this._ils.length === 0) - return; - if (this._prod !== NO) - this._prod._stop(); - this._err = NO; - this._ils = []; - }; - Stream.prototype._stopNow = function () { - // WARNING: code that calls this method should - // first check if this._prod is valid (not `NO`) - this._prod._stop(); - this._err = NO; - this._stopID = NO; - }; - Stream.prototype._add = function (il) { - var ta = this._target; - if (ta) - return ta._add(il); - var a = this._ils; - a.push(il); - if (a.length > 1) - return; - if (this._stopID !== NO) { - clearTimeout(this._stopID); - this._stopID = NO; - } - else { - var p = this._prod; - if (p !== NO) - p._start(this); - } - }; - Stream.prototype._remove = function (il) { - var _this = this; - var ta = this._target; - if (ta) - return ta._remove(il); - var a = this._ils; - var i = a.indexOf(il); - if (i > -1) { - a.splice(i, 1); - if (this._prod !== NO && a.length <= 0) { - this._err = NO; - this._stopID = setTimeout(function () { return _this._stopNow(); }); - } - else if (a.length === 1) { - this._pruneCycles(); - } - } - }; - // If all paths stemming from `this` stream eventually end at `this` - // stream, then we remove the single listener of `this` stream, to - // force it to end its execution and dispose resources. This method - // assumes as a precondition that this._ils has just one listener. - Stream.prototype._pruneCycles = function () { - if (this._hasNoSinks(this, [])) - this._remove(this._ils[0]); - }; - // Checks whether *there is no* path starting from `x` that leads to an end - // listener (sink) in the stream graph, following edges A->B where B is a - // listener of A. This means these paths constitute a cycle somehow. Is given - // a trace of all visited nodes so far. - Stream.prototype._hasNoSinks = function (x, trace) { - if (trace.indexOf(x) !== -1) - return true; - else if (x.out === this) - return true; - else if (x.out && x.out !== NO) - return this._hasNoSinks(x.out, trace.concat(x)); - else if (x._ils) { - for (var i = 0, N = x._ils.length; i < N; i++) - if (!this._hasNoSinks(x._ils[i], trace.concat(x))) - return false; - return true; - } - else - return false; - }; - Stream.prototype.ctor = function () { - return this instanceof MemoryStream ? MemoryStream : Stream; - }; - /** - * Adds a Listener to the Stream. - * - * @param {Listener} listener - */ - Stream.prototype.addListener = function (listener) { - listener._n = listener.next || noop; - listener._e = listener.error || noop; - listener._c = listener.complete || noop; - this._add(listener); - }; - /** - * Removes a Listener from the Stream, assuming the Listener was added to it. - * - * @param {Listener} listener - */ - Stream.prototype.removeListener = function (listener) { - this._remove(listener); - }; - /** - * Adds a Listener to the Stream returning a Subscription to remove that - * listener. - * - * @param {Listener} listener - * @returns {Subscription} - */ - Stream.prototype.subscribe = function (listener) { - this.addListener(listener); - return new StreamSub(this, listener); - }; - /** - * Add interop between most.js and RxJS 5 - * - * @returns {Stream} - */ - Stream.prototype[$$observable] = function () { - return this; - }; - /** - * Creates a new Stream given a Producer. - * - * @factory true - * @param {Producer} producer An optional Producer that dictates how to - * start, generate events, and stop the Stream. - * @return {Stream} - */ - Stream.create = function (producer) { - if (producer) { - if (typeof producer.start !== 'function' - || typeof producer.stop !== 'function') - throw new Error('producer requires both start and stop functions'); - internalizeProducer(producer); // mutates the input - } - return new Stream(producer); - }; - /** - * Creates a new MemoryStream given a Producer. - * - * @factory true - * @param {Producer} producer An optional Producer that dictates how to - * start, generate events, and stop the Stream. - * @return {MemoryStream} - */ - Stream.createWithMemory = function (producer) { - if (producer) - internalizeProducer(producer); // mutates the input - return new MemoryStream(producer); - }; - /** - * Creates a Stream that does nothing when started. It never emits any event. - * - * Marble diagram: - * - * ```text - * never - * ----------------------- - * ``` - * - * @factory true - * @return {Stream} - */ - Stream.never = function () { - return new Stream({ _start: noop, _stop: noop }); - }; - /** - * Creates a Stream that immediately emits the "complete" notification when - * started, and that's it. - * - * Marble diagram: - * - * ```text - * empty - * -| - * ``` - * - * @factory true - * @return {Stream} - */ - Stream.empty = function () { - return new Stream({ - _start: function (il) { il._c(); }, - _stop: noop, + }); +}; + +const toObjectSet = (arrayOrString, delimiter) => { + const obj = {}; + + const define = (arr) => { + arr.forEach(value => { + obj[value] = true; + }); + }; + + isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter)); + + return obj; +}; + +const noop = () => {}; + +const toFiniteNumber = (value, defaultValue) => { + value = +value; + return Number.isFinite(value) ? value : defaultValue; +}; + +const ALPHA = 'abcdefghijklmnopqrstuvwxyz'; + +const DIGIT = '0123456789'; + +const ALPHABET = { + DIGIT, + ALPHA, + ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT +}; + +const generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => { + let str = ''; + const {length} = alphabet; + while (size--) { + str += alphabet[Math.random() * length|0]; + } + + return str; +}; + +/** + * If the thing is a FormData object, return true, otherwise return false. + * + * @param {unknown} thing - The thing to check. + * + * @returns {boolean} + */ +function isSpecCompliantForm(thing) { + return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]); +} + +const 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, key) => { + const reducedValue = visit(value, i + 1); + !isUndefined(reducedValue) && (target[key] = reducedValue); }); + + stack[i] = undefined; + + return target; + } + } + + return source; + }; + + return visit(obj, 0); +}; + +const isAsyncFn = kindOfTest('AsyncFunction'); + +const isThenable = (thing) => + thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch); + +var utils$1 = { + isArray, + isArrayBuffer, + isBuffer, + isFormData, + isArrayBufferView, + isString, + isNumber, + isBoolean, + isObject, + isPlainObject, + 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 +}; + +/** + * Create an Error with the specified message, config, error code, request and response. + * + * @param {string} message The error message. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [config] The config. + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * + * @returns {Error} The created error. + */ +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$1.inherits(AxiosError, Error, { + toJSON: function toJSON() { + 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$1.toJSONObject(this.config), + code: this.code, + status: this.response && this.response.status ? this.response.status : null }; - /** - * Creates a Stream that immediately emits an "error" notification with the - * value you passed as the `error` argument when the stream starts, and that's - * it. - * - * Marble diagram: - * - * ```text - * throw(X) - * -X - * ``` - * - * @factory true - * @param error The error event to emit on the created stream. - * @return {Stream} - */ - Stream.throw = function (error) { - return new Stream({ - _start: function (il) { il._e(error); }, - _stop: noop, + } +}); + +const prototype$1 = AxiosError.prototype; +const 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$1, 'isAxiosError', {value: true}); + +// eslint-disable-next-line func-names +AxiosError.from = (error, code, config, request, response, customProps) => { + const axiosError = Object.create(prototype$1); + + utils$1.toFlatObject(error, axiosError, function filter(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; +}; + +// eslint-disable-next-line strict +var httpAdapter = null; + +/** + * Determines if the given thing is a array or js object. + * + * @param {string} thing - The object or array to be visited. + * + * @returns {boolean} + */ +function isVisitable(thing) { + return utils$1.isPlainObject(thing) || utils$1.isArray(thing); +} + +/** + * It removes the brackets from the end of a string + * + * @param {string} key - The key of the parameter. + * + * @returns {string} the key without the brackets. + */ +function removeBrackets(key) { + return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key; +} + +/** + * It takes a path, a key, and a boolean, and returns a string + * + * @param {string} path - The path to the current key. + * @param {string} key - The key of the current object being iterated over. + * @param {string} dots - If true, the key will be rendered with dots instead of brackets. + * + * @returns {string} The path to the current key. + */ +function renderKey(path, key, dots) { + if (!path) return key; + return path.concat(key).map(function each(token, i) { + // eslint-disable-next-line no-param-reassign + token = removeBrackets(token); + return !dots && i ? '[' + token + ']' : token; + }).join(dots ? '.' : ''); +} + +/** + * If the array is an array and none of its elements are visitable, then it's a flat array. + * + * @param {Array} arr - The array to check + * + * @returns {boolean} + */ +function isFlatArray(arr) { + return utils$1.isArray(arr) && !arr.some(isVisitable); +} + +const predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) { + return /^is[A-Z]/.test(prop); +}); + +/** + * Convert a data object to FormData + * + * @param {Object} obj + * @param {?Object} [formData] + * @param {?Object} [options] + * @param {Function} [options.visitor] + * @param {Boolean} [options.metaTokens = true] + * @param {Boolean} [options.dots = false] + * @param {?Boolean} [options.indexes = false] + * + * @returns {Object} + **/ + +/** + * It converts an object into a FormData object + * + * @param {Object} obj - The object to convert to form data. + * @param {string} formData - The FormData object to append to. + * @param {Object} options + * + * @returns + */ +function toFormData(obj, formData, options) { + if (!utils$1.isObject(obj)) { + throw new TypeError('target must be an object'); + } + + // eslint-disable-next-line no-param-reassign + formData = formData || new (FormData)(); + + // eslint-disable-next-line no-param-reassign + options = utils$1.toFlatObject(options, { + metaTokens: true, + dots: false, + indexes: false + }, false, function defined(option, source) { + // eslint-disable-next-line no-eq-null,eqeqeq + return !utils$1.isUndefined(source[option]); + }); + + const metaTokens = options.metaTokens; + // eslint-disable-next-line no-use-before-define + 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$1.isSpecCompliantForm(formData); + + if (!utils$1.isFunction(visitor)) { + throw new TypeError('visitor must be a function'); + } + + function convertValue(value) { + if (value === null) return ''; + + if (utils$1.isDate(value)) { + return value.toISOString(); + } + + if (!useBlob && utils$1.isBlob(value)) { + throw new AxiosError('Blob is not supported. Use a Buffer instead.'); + } + + if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) { + return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value); + } + + return value; + } + + /** + * Default visitor. + * + * @param {*} value + * @param {String|Number} key + * @param {Array} path + * @this {FormData} + * + * @returns {boolean} return true to visit the each prop of the value recursively + */ + function defaultVisitor(value, key, path) { + let arr = value; + + if (value && !path && typeof value === 'object') { + if (utils$1.endsWith(key, '{}')) { + // eslint-disable-next-line no-param-reassign + key = metaTokens ? key : key.slice(0, -2); + // eslint-disable-next-line no-param-reassign + value = JSON.stringify(value); + } else if ( + (utils$1.isArray(value) && isFlatArray(value)) || + ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value)) + )) { + // eslint-disable-next-line no-param-reassign + key = removeBrackets(key); + + arr.forEach(function each(el, index) { + !(utils$1.isUndefined(el) || el === null) && formData.append( + // eslint-disable-next-line no-nested-ternary + indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'), + convertValue(el) + ); }); - }; - /** - * Creates a stream from an Array, Promise, or an Observable. - * - * @factory true - * @param {Array|PromiseLike|Observable} input The input to make a stream from. - * @return {Stream} - */ - Stream.from = function (input) { - if (typeof input[$$observable] === 'function') - return Stream.fromObservable(input); - else if (typeof input.then === 'function') - return Stream.fromPromise(input); - else if (Array.isArray(input)) - return Stream.fromArray(input); - throw new TypeError("Type of input to from() must be an Array, Promise, or Observable"); - }; - /** - * Creates a Stream that immediately emits the arguments that you give to - * *of*, then completes. - * - * Marble diagram: - * - * ```text - * of(1,2,3) - * 123| - * ``` - * - * @factory true - * @param a The first value you want to emit as an event on the stream. - * @param b The second value you want to emit as an event on the stream. One - * or more of these values may be given as arguments. - * @return {Stream} - */ - Stream.of = function () { - var items = []; - for (var _i = 0; _i < arguments.length; _i++) { - items[_i] = arguments[_i]; - } - return Stream.fromArray(items); - }; - /** - * Converts an array to a stream. The returned stream will emit synchronously - * all the items in the array, and then complete. - * - * Marble diagram: - * - * ```text - * fromArray([1,2,3]) - * 123| - * ``` - * - * @factory true - * @param {Array} array The array to be converted as a stream. - * @return {Stream} - */ - Stream.fromArray = function (array) { - return new Stream(new FromArray(array)); - }; - /** - * Converts a promise to a stream. The returned stream will emit the resolved - * value of the promise, and then complete. However, if the promise is - * rejected, the stream will emit the corresponding error. - * - * Marble diagram: - * - * ```text - * fromPromise( ----42 ) - * -----------------42| - * ``` - * - * @factory true - * @param {PromiseLike} promise The promise to be converted as a stream. - * @return {Stream} - */ - Stream.fromPromise = function (promise) { - return new Stream(new FromPromise(promise)); - }; - /** - * Converts an Observable into a Stream. - * - * @factory true - * @param {any} observable The observable to be converted as a stream. - * @return {Stream} - */ - Stream.fromObservable = function (obs) { - if (obs.endWhen !== undefined) - return obs; - var o = typeof obs[$$observable] === 'function' ? obs[$$observable]() : obs; - return new Stream(new FromObservable(o)); - }; - /** - * Creates a stream that periodically emits incremental numbers, every - * `period` milliseconds. - * - * Marble diagram: - * - * ```text - * periodic(1000) - * ---0---1---2---3---4---... - * ``` - * - * @factory true - * @param {number} period The interval in milliseconds to use as a rate of - * emission. - * @return {Stream} - */ - Stream.periodic = function (period) { - return new Stream(new Periodic(period)); - }; - Stream.prototype._map = function (project) { - return new (this.ctor())(new MapOp(project, this)); - }; - /** - * Transforms each event from the input Stream through a `project` function, - * to get a Stream that emits those transformed events. - * - * Marble diagram: - * - * ```text - * --1---3--5-----7------ - * map(i => i * 10) - * --10--30-50----70----- - * ``` - * - * @param {Function} project A function of type `(t: T) => U` that takes event - * `t` of type `T` from the input Stream and produces an event of type `U`, to - * be emitted on the output Stream. - * @return {Stream} - */ - Stream.prototype.map = function (project) { - return this._map(project); - }; - /** - * It's like `map`, but transforms each input event to always the same - * constant value on the output Stream. - * - * Marble diagram: - * - * ```text - * --1---3--5-----7----- - * mapTo(10) - * --10--10-10----10---- - * ``` - * - * @param projectedValue A value to emit on the output Stream whenever the - * input Stream emits any value. - * @return {Stream} - */ - Stream.prototype.mapTo = function (projectedValue) { - var s = this.map(function () { return projectedValue; }); - var op = s._prod; - op.type = 'mapTo'; - return s; - }; - /** - * Only allows events that pass the test given by the `passes` argument. - * - * Each event from the input stream is given to the `passes` function. If the - * function returns `true`, the event is forwarded to the output stream, - * otherwise it is ignored and not forwarded. - * - * Marble diagram: - * - * ```text - * --1---2--3-----4-----5---6--7-8-- - * filter(i => i % 2 === 0) - * ------2--------4---------6----8-- - * ``` - * - * @param {Function} passes A function of type `(t: T) => boolean` that takes - * an event from the input stream and checks if it passes, by returning a - * boolean. - * @return {Stream} - */ - Stream.prototype.filter = function (passes) { - var p = this._prod; - if (p instanceof Filter) - return new Stream(new Filter(and(p.f, passes), p.ins)); - return new Stream(new Filter(passes, this)); - }; - /** - * Lets the first `amount` many events from the input stream pass to the - * output stream, then makes the output stream complete. - * - * Marble diagram: - * - * ```text - * --a---b--c----d---e-- - * take(3) - * --a---b--c| - * ``` - * - * @param {number} amount How many events to allow from the input stream - * before completing the output stream. - * @return {Stream} - */ - Stream.prototype.take = function (amount) { - return new (this.ctor())(new Take(amount, this)); - }; - /** - * Ignores the first `amount` many events from the input stream, and then - * after that starts forwarding events from the input stream to the output - * stream. - * - * Marble diagram: - * - * ```text - * --a---b--c----d---e-- - * drop(3) - * --------------d---e-- - * ``` - * - * @param {number} amount How many events to ignore from the input stream - * before forwarding all events from the input stream to the output stream. - * @return {Stream} - */ - Stream.prototype.drop = function (amount) { - return new Stream(new Drop(amount, this)); - }; - /** - * When the input stream completes, the output stream will emit the last event - * emitted by the input stream, and then will also complete. - * - * Marble diagram: - * - * ```text - * --a---b--c--d----| - * last() - * -----------------d| - * ``` - * - * @return {Stream} - */ - Stream.prototype.last = function () { - return new Stream(new Last(this)); - }; - /** - * Prepends the given `initial` value to the sequence of events emitted by the - * input stream. The returned stream is a MemoryStream, which means it is - * already `remember()`'d. - * - * Marble diagram: - * - * ```text - * ---1---2-----3--- - * startWith(0) - * 0--1---2-----3--- - * ``` - * - * @param initial The value or event to prepend. - * @return {MemoryStream} - */ - Stream.prototype.startWith = function (initial) { - return new MemoryStream(new StartWith(this, initial)); - }; - /** - * Uses another stream to determine when to complete the current stream. - * - * When the given `other` stream emits an event or completes, the output - * stream will complete. Before that happens, the output stream will behaves - * like the input stream. - * - * Marble diagram: - * - * ```text - * ---1---2-----3--4----5----6--- - * endWhen( --------a--b--| ) - * ---1---2-----3--4--| - * ``` - * - * @param other Some other stream that is used to know when should the output - * stream of this operator complete. - * @return {Stream} - */ - Stream.prototype.endWhen = function (other) { - return new (this.ctor())(new EndWhen(other, this)); - }; - /** - * "Folds" the stream onto itself. - * - * Combines events from the past throughout - * the entire execution of the input stream, allowing you to accumulate them - * together. It's essentially like `Array.prototype.reduce`. The returned - * stream is a MemoryStream, which means it is already `remember()`'d. - * - * The output stream starts by emitting the `seed` which you give as argument. - * Then, when an event happens on the input stream, it is combined with that - * seed value through the `accumulate` function, and the output value is - * emitted on the output stream. `fold` remembers that output value as `acc` - * ("accumulator"), and then when a new input event `t` happens, `acc` will be - * combined with that to produce the new `acc` and so forth. - * - * Marble diagram: - * - * ```text - * ------1-----1--2----1----1------ - * fold((acc, x) => acc + x, 3) - * 3-----4-----5--7----8----9------ - * ``` - * - * @param {Function} accumulate A function of type `(acc: R, t: T) => R` that - * takes the previous accumulated value `acc` and the incoming event from the - * input stream and produces the new accumulated value. - * @param seed The initial accumulated value, of type `R`. - * @return {MemoryStream} - */ - Stream.prototype.fold = function (accumulate, seed) { - return new MemoryStream(new Fold(accumulate, seed, this)); - }; - /** - * Replaces an error with another stream. - * - * When (and if) an error happens on the input stream, instead of forwarding - * that error to the output stream, *replaceError* will call the `replace` - * function which returns the stream that the output stream will replicate. - * And, in case that new stream also emits an error, `replace` will be called - * again to get another stream to start replicating. - * - * Marble diagram: - * - * ```text - * --1---2-----3--4-----X - * replaceError( () => --10--| ) - * --1---2-----3--4--------10--| - * ``` - * - * @param {Function} replace A function of type `(err) => Stream` that takes - * the error that occurred on the input stream or on the previous replacement - * stream and returns a new stream. The output stream will behave like the - * stream that this function returns. - * @return {Stream} - */ - Stream.prototype.replaceError = function (replace) { - return new (this.ctor())(new ReplaceError(replace, this)); - }; - /** - * Flattens a "stream of streams", handling only one nested stream at a time - * (no concurrency). - * - * If the input stream is a stream that emits streams, then this operator will - * return an output stream which is a flat stream: emits regular events. The - * flattening happens without concurrency. It works like this: when the input - * stream emits a nested stream, *flatten* will start imitating that nested - * one. However, as soon as the next nested stream is emitted on the input - * stream, *flatten* will forget the previous nested one it was imitating, and - * will start imitating the new nested one. - * - * Marble diagram: - * - * ```text - * --+--------+--------------- - * \ \ - * \ ----1----2---3-- - * --a--b----c----d-------- - * flatten - * -----a--b------1----2---3-- - * ``` - * - * @return {Stream} - */ - Stream.prototype.flatten = function () { - return new Stream(new Flatten(this)); - }; - /** - * Passes the input stream to a custom operator, to produce an output stream. - * - * *compose* is a handy way of using an existing function in a chained style. - * Instead of writing `outStream = f(inStream)` you can write - * `outStream = inStream.compose(f)`. - * - * @param {function} operator A function that takes a stream as input and - * returns a stream as well. - * @return {Stream} - */ - Stream.prototype.compose = function (operator) { - return operator(this); - }; - /** - * Returns an output stream that behaves like the input stream, but also - * remembers the most recent event that happens on the input stream, so that a - * newly added listener will immediately receive that memorised event. - * - * @return {MemoryStream} - */ - Stream.prototype.remember = function () { - return new MemoryStream(new Remember(this)); - }; - /** - * Returns an output stream that identically behaves like the input stream, - * but also runs a `spy` function for each event, to help you debug your app. - * - * *debug* takes a `spy` function as argument, and runs that for each event - * happening on the input stream. If you don't provide the `spy` argument, - * then *debug* will just `console.log` each event. This helps you to - * understand the flow of events through some operator chain. - * - * Please note that if the output stream has no listeners, then it will not - * start, which means `spy` will never run because no actual event happens in - * that case. - * - * Marble diagram: - * - * ```text - * --1----2-----3-----4-- - * debug - * --1----2-----3-----4-- - * ``` - * - * @param {function} labelOrSpy A string to use as the label when printing - * debug information on the console, or a 'spy' function that takes an event - * as argument, and does not need to return anything. - * @return {Stream} - */ - Stream.prototype.debug = function (labelOrSpy) { - return new (this.ctor())(new Debug(this, labelOrSpy)); - }; - /** - * *imitate* changes this current Stream to emit the same events that the - * `other` given Stream does. This method returns nothing. - * - * This method exists to allow one thing: **circular dependency of streams**. - * For instance, let's imagine that for some reason you need to create a - * circular dependency where stream `first$` depends on stream `second$` - * which in turn depends on `first$`: - * - * - * ```js - * import delay from 'xstream/extra/delay' - * - * var first$ = second$.map(x => x * 10).take(3); - * var second$ = first$.map(x => x + 1).startWith(1).compose(delay(100)); - * ``` - * - * However, that is invalid JavaScript, because `second$` is undefined - * on the first line. This is how *imitate* can help solve it: - * - * ```js - * import delay from 'xstream/extra/delay' - * - * var secondProxy$ = xs.create(); - * var first$ = secondProxy$.map(x => x * 10).take(3); - * var second$ = first$.map(x => x + 1).startWith(1).compose(delay(100)); - * secondProxy$.imitate(second$); - * ``` - * - * We create `secondProxy$` before the others, so it can be used in the - * declaration of `first$`. Then, after both `first$` and `second$` are - * defined, we hook `secondProxy$` with `second$` with `imitate()` to tell - * that they are "the same". `imitate` will not trigger the start of any - * stream, it just binds `secondProxy$` and `second$` together. - * - * The following is an example where `imitate()` is important in Cycle.js - * applications. A parent component contains some child components. A child - * has an action stream which is given to the parent to define its state: - * - * - * ```js - * const childActionProxy$ = xs.create(); - * const parent = Parent({...sources, childAction$: childActionProxy$}); - * const childAction$ = parent.state$.map(s => s.child.action$).flatten(); - * childActionProxy$.imitate(childAction$); - * ``` - * - * Note, though, that **`imitate()` does not support MemoryStreams**. If we - * would attempt to imitate a MemoryStream in a circular dependency, we would - * either get a race condition (where the symptom would be "nothing happens") - * or an infinite cyclic emission of values. It's useful to think about - * MemoryStreams as cells in a spreadsheet. It doesn't make any sense to - * define a spreadsheet cell `A1` with a formula that depends on `B1` and - * cell `B1` defined with a formula that depends on `A1`. - * - * If you find yourself wanting to use `imitate()` with a - * MemoryStream, you should rework your code around `imitate()` to use a - * Stream instead. Look for the stream in the circular dependency that - * represents an event stream, and that would be a candidate for creating a - * proxy Stream which then imitates the target Stream. - * - * @param {Stream} target The other stream to imitate on the current one. Must - * not be a MemoryStream. - */ - Stream.prototype.imitate = function (target) { - if (target instanceof MemoryStream) - throw new Error('A MemoryStream was given to imitate(), but it only ' + - 'supports a Stream. Read more about this restriction here: ' + - 'https://github.com/staltz/xstream#faq'); - this._target = target; - for (var ils = this._ils, N = ils.length, i = 0; i < N; i++) - target._add(ils[i]); - this._ils = []; - }; - /** - * Forces the Stream to emit the given value to its listeners. - * - * As the name indicates, if you use this, you are most likely doing something - * The Wrong Way. Please try to understand the reactive way before using this - * method. Use it only when you know what you are doing. - * - * @param value The "next" value you want to broadcast to all listeners of - * this Stream. - */ - Stream.prototype.shamefullySendNext = function (value) { - this._n(value); - }; - /** - * Forces the Stream to emit the given error to its listeners. - * - * As the name indicates, if you use this, you are most likely doing something - * The Wrong Way. Please try to understand the reactive way before using this - * method. Use it only when you know what you are doing. - * - * @param {any} error The error you want to broadcast to all the listeners of - * this Stream. - */ - Stream.prototype.shamefullySendError = function (error) { - this._e(error); - }; - /** - * Forces the Stream to emit the "completed" event to its listeners. - * - * As the name indicates, if you use this, you are most likely doing something - * The Wrong Way. Please try to understand the reactive way before using this - * method. Use it only when you know what you are doing. - */ - Stream.prototype.shamefullySendComplete = function () { - this._c(); - }; - /** - * Adds a "debug" listener to the stream. There can only be one debug - * listener, that's why this is 'setDebugListener'. To remove the debug - * listener, just call setDebugListener(null). - * - * A debug listener is like any other listener. The only difference is that a - * debug listener is "stealthy": its presence/absence does not trigger the - * start/stop of the stream (or the producer inside the stream). This is - * useful so you can inspect what is going on without changing the behavior - * of the program. If you have an idle stream and you add a normal listener to - * it, the stream will start executing. But if you set a debug listener on an - * idle stream, it won't start executing (not until the first normal listener - * is added). - * - * As the name indicates, we don't recommend using this method to build app - * logic. In fact, in most cases the debug operator works just fine. Only use - * this one if you know what you're doing. - * - * @param {Listener} listener - */ - Stream.prototype.setDebugListener = function (listener) { - if (!listener) { - this._d = false; - this._dl = NO; - } - else { - this._d = true; - listener._n = listener.next || noop; - listener._e = listener.error || noop; - listener._c = listener.complete || noop; - this._dl = listener; + return false; + } + } + + if (isVisitable(value)) { + return true; + } + + formData.append(renderKey(path, key, dots), convertValue(value)); + + return false; + } + + const stack = []; + + const exposedHelpers = Object.assign(predicates, { + defaultVisitor, + convertValue, + isVisitable + }); + + function build(value, path) { + if (utils$1.isUndefined(value)) return; + + if (stack.indexOf(value) !== -1) { + throw Error('Circular reference detected in ' + path.join('.')); + } + + stack.push(value); + + utils$1.forEach(value, function each(el, key) { + const result = !(utils$1.isUndefined(el) || el === null) && visitor.call( + formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers + ); + + if (result === true) { + build(el, path ? path.concat(key) : [key]); + } + }); + + stack.pop(); + } + + if (!utils$1.isObject(obj)) { + throw new TypeError('data must be an object'); + } + + build(obj); + + return formData; +} + +/** + * It encodes a string by replacing all characters that are not in the unreserved set with + * their percent-encoded equivalents + * + * @param {string} str - The string to encode. + * + * @returns {string} The encoded string. + */ +function encode$1(str) { + const charMap = { + '!': '%21', + "'": '%27', + '(': '%28', + ')': '%29', + '~': '%7E', + '%20': '+', + '%00': '\x00' + }; + return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) { + return charMap[match]; + }); +} + +/** + * It takes a params object and converts it to a FormData object + * + * @param {Object} params - The parameters to be converted to a FormData object. + * @param {Object} options - The options object passed to the Axios constructor. + * + * @returns {void} + */ +function AxiosURLSearchParams(params, options) { + this._pairs = []; + + params && toFormData(params, this, options); +} + +const prototype = AxiosURLSearchParams.prototype; + +prototype.append = function append(name, value) { + this._pairs.push([name, value]); +}; + +prototype.toString = function toString(encoder) { + const _encode = encoder ? function(value) { + return encoder.call(this, value, encode$1); + } : encode$1; + + return this._pairs.map(function each(pair) { + return _encode(pair[0]) + '=' + _encode(pair[1]); + }, '').join('&'); +}; + +/** + * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their + * URI encoded counterparts + * + * @param {string} val The value to be encoded. + * + * @returns {string} The encoded value. + */ +function encode(val) { + return encodeURIComponent(val). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, '+'). + replace(/%5B/gi, '['). + replace(/%5D/gi, ']'); +} + +/** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @param {?object} options + * + * @returns {string} The formatted url + */ +function buildURL(url, params, options) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url; + } + + const _encode = options && options.encode || encode; + + const serializeFn = options && options.serialize; + + let serializedParams; + + if (serializeFn) { + serializedParams = serializeFn(params, options); + } else { + serializedParams = utils$1.isURLSearchParams(params) ? + params.toString() : + new AxiosURLSearchParams(params, options).toString(_encode); + } + + if (serializedParams) { + const hashmarkIndex = url.indexOf("#"); + + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } + + return url; +} + +class InterceptorManager { + 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(id) { + if (this.handlers[id]) { + this.handlers[id] = 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$1.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); + } +} + +var InterceptorManager$1 = InterceptorManager; + +var transitionalDefaults = { + silentJSONParsing: true, + forcedJSONParsing: true, + clarifyTimeoutError: false +}; + +var URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams; + +var FormData$1 = typeof FormData !== 'undefined' ? FormData : null; + +var Blob$1 = typeof Blob !== 'undefined' ? Blob : null; + +var platform$1 = { + isBrowser: true, + classes: { + URLSearchParams: URLSearchParams$1, + FormData: FormData$1, + Blob: Blob$1 + }, + protocols: ['http', 'https', 'file', 'blob', 'url', 'data'] +}; + +const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined'; + +/** + * Determine if we're running in a standard browser environment + * + * This allows axios to run in a web worker, and react-native. + * Both environments support XMLHttpRequest, but not fully standard globals. + * + * web workers: + * typeof window -> undefined + * typeof document -> undefined + * + * react-native: + * navigator.product -> 'ReactNative' + * nativescript + * navigator.product -> 'NativeScript' or 'NS' + * + * @returns {boolean} + */ +const hasStandardBrowserEnv = ( + (product) => { + return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0 + })(typeof navigator !== 'undefined' && navigator.product); + +/** + * Determine if we're running in a standard browser webWorker environment + * + * Although the `isStandardBrowserEnv` method indicates that + * `allows axios to run in a web worker`, the WebWorker will still be + * filtered out due to its judgment standard + * `typeof window !== 'undefined' && typeof document !== 'undefined'`. + * This leads to a problem when axios post `FormData` in webWorker + */ +const hasStandardBrowserWebWorkerEnv = (() => { + return ( + typeof WorkerGlobalScope !== 'undefined' && + // eslint-disable-next-line no-undef + self instanceof WorkerGlobalScope && + typeof self.importScripts === 'function' + ); +})(); + +var utils = /*#__PURE__*/Object.freeze({ + __proto__: null, + hasBrowserEnv: hasBrowserEnv, + hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv, + hasStandardBrowserEnv: hasStandardBrowserEnv +}); + +var platform = { + ...utils, + ...platform$1 +}; + +function toURLEncodedForm(data, options) { + return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({ + visitor: function(value, key, path, helpers) { + if (platform.isNode && utils$1.isBuffer(value)) { + this.append(key, value.toString('base64')); + return false; + } + + return helpers.defaultVisitor.apply(this, arguments); + } + }, options)); +} + +/** + * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z'] + * + * @param {string} name - The name of the property to get. + * + * @returns An array of strings. + */ +function parsePropPath(name) { + // foo[x][y][z] + // foo.x.y.z + // foo-x-y-z + // foo x y z + return utils$1.matchAll(/\w+|\[(\w*)]/g, name).map(match => { + return match[0] === '[]' ? '' : match[1] || match[0]; + }); +} + +/** + * Convert an array to an object. + * + * @param {Array} arr - The array to convert to an object. + * + * @returns An object with the same keys and values as the array. + */ +function arrayToObject(arr) { + const obj = {}; + const keys = Object.keys(arr); + let i; + const len = keys.length; + let key; + for (i = 0; i < len; i++) { + key = keys[i]; + obj[key] = arr[key]; + } + return obj; +} + +/** + * It takes a FormData object and returns a JavaScript object + * + * @param {string} formData The FormData object to convert to JSON. + * + * @returns {Object | null} The converted object. + */ +function formDataToJSON(formData) { + function buildPath(path, value, target, index) { + let name = path[index++]; + const isNumericKey = Number.isFinite(+name); + const isLast = index >= path.length; + name = !name && utils$1.isArray(target) ? target.length : name; + + if (isLast) { + if (utils$1.hasOwnProp(target, name)) { + target[name] = [target[name], value]; + } else { + target[name] = value; + } + + return !isNumericKey; + } + + if (!target[name] || !utils$1.isObject(target[name])) { + target[name] = []; + } + + const result = buildPath(path, value, target[name], index); + + if (result && utils$1.isArray(target[name])) { + target[name] = arrayToObject(target[name]); + } + + return !isNumericKey; + } + + if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) { + const obj = {}; + + utils$1.forEachEntry(formData, (name, value) => { + buildPath(parsePropPath(name), value, obj, 0); + }); + + return obj; + } + + return null; +} + +/** + * It takes a string, tries to parse it, and if it fails, it returns the stringified version + * of the input + * + * @param {any} rawValue - The value to be stringified. + * @param {Function} parser - A function that parses a string into a JavaScript object. + * @param {Function} encoder - A function that takes a value and returns a string. + * + * @returns {string} A stringified version of the rawValue. + */ +function stringifySafely(rawValue, parser, encoder) { + if (utils$1.isString(rawValue)) { + try { + (parser || JSON.parse)(rawValue); + return utils$1.trim(rawValue); + } catch (e) { + if (e.name !== 'SyntaxError') { + throw e; + } + } + } + + return (encoder || JSON.stringify)(rawValue); +} + +const defaults = { + + transitional: transitionalDefaults, + + adapter: ['xhr', 'http'], + + transformRequest: [function transformRequest(data, headers) { + const contentType = headers.getContentType() || ''; + const hasJSONContentType = contentType.indexOf('application/json') > -1; + const isObjectPayload = utils$1.isObject(data); + + if (isObjectPayload && utils$1.isHTMLForm(data)) { + data = new FormData(data); + } + + const isFormData = utils$1.isFormData(data); + + if (isFormData) { + if (!hasJSONContentType) { + return data; + } + return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data; + } + + if (utils$1.isArrayBuffer(data) || + utils$1.isBuffer(data) || + utils$1.isStream(data) || + utils$1.isFile(data) || + utils$1.isBlob(data) + ) { + return data; + } + if (utils$1.isArrayBufferView(data)) { + return data.buffer; + } + if (utils$1.isURLSearchParams(data)) { + headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false); + return data.toString(); + } + + let isFileList; + + if (isObjectPayload) { + if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { + return toURLEncodedForm(data, this.formSerializer).toString(); + } + + if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) { + const _FormData = this.env && this.env.FormData; + + return toFormData( + isFileList ? {'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 transitional = this.transitional || defaults.transitional; + const forcedJSONParsing = transitional && transitional.forcedJSONParsing; + const JSONRequested = this.responseType === 'json'; + + if (data && utils$1.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) { + const silentJSONParsing = transitional && transitional.silentJSONParsing; + const strictJSONParsing = !silentJSONParsing && JSONRequested; + + try { + return JSON.parse(data); + } catch (e) { + if (strictJSONParsing) { + if (e.name === 'SyntaxError') { + throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response); + } + throw e; } - }; - /** - * Blends multiple streams together, emitting events from all of them - * concurrently. - * - * *merge* takes multiple streams as arguments, and creates a stream that - * behaves like each of the argument streams, in parallel. - * - * Marble diagram: - * - * ```text - * --1----2-----3--------4--- - * ----a-----b----c---d------ - * merge - * --1-a--2--b--3-c---d--4--- - * ``` - * - * @factory true - * @param {Stream} stream1 A stream to merge together with other streams. - * @param {Stream} stream2 A stream to merge together with other streams. Two - * or more streams may be given as arguments. - * @return {Stream} - */ - Stream.merge = function merge() { - var streams = []; - for (var _i = 0; _i < arguments.length; _i++) { - streams[_i] = arguments[_i]; + } + } + + 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.classes.FormData, + Blob: platform.classes.Blob + }, + + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + }, + + headers: { + common: { + 'Accept': 'application/json, text/plain, */*', + 'Content-Type': undefined + } + } +}; + +utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => { + defaults.headers[method] = {}; +}); + +var defaults$1 = defaults; + +// RawAxiosHeaders whose duplicates are ignored by node +// c.f. https://nodejs.org/api/http.html#http_message_headers +const ignoreDuplicateOf = utils$1.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' +]); + +/** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} rawHeaders Headers needing to be parsed + * + * @returns {Object} Headers parsed into an object + */ +var parseHeaders = rawHeaders => { + const parsed = {}; + let key; + let val; + let i; + + rawHeaders && rawHeaders.split('\n').forEach(function parser(line) { + i = line.indexOf(':'); + key = line.substring(0, i).trim().toLowerCase(); + val = line.substring(i + 1).trim(); + + if (!key || (parsed[key] && ignoreDuplicateOf[key])) { + return; + } + + if (key === 'set-cookie') { + if (parsed[key]) { + parsed[key].push(val); + } else { + parsed[key] = [val]; + } + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + }); + + return parsed; +}; + +const $internals = Symbol('internals'); + +function normalizeHeader(header) { + return header && String(header).trim().toLowerCase(); +} + +function normalizeValue(value) { + if (value === false || value == null) { + return value; + } + + return utils$1.isArray(value) ? value.map(normalizeValue) : String(value); +} + +function parseTokens(str) { + const tokens = Object.create(null); + const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g; + let match; + + while ((match = tokensRE.exec(str))) { + tokens[match[1]] = match[2]; + } + + return tokens; +} + +const isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim()); + +function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) { + if (utils$1.isFunction(filter)) { + return filter.call(this, value, header); + } + + if (isHeaderNameFilter) { + value = header; + } + + if (!utils$1.isString(value)) return; + + if (utils$1.isString(filter)) { + return value.indexOf(filter) !== -1; + } + + if (utils$1.isRegExp(filter)) { + return filter.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$1.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 + }); + }); +} + +class AxiosHeaders { + constructor(headers) { + headers && this.set(headers); + } + + set(header, valueOrRewrite, rewrite) { + const self = this; + + function setHeader(_value, _header, _rewrite) { + const lHeader = normalizeHeader(_header); + + if (!lHeader) { + throw new Error('header name must be a non-empty string'); + } + + const key = utils$1.findKey(self, lHeader); + + if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) { + self[key || _header] = normalizeValue(_value); + } + } + + const setHeaders = (headers, _rewrite) => + utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite)); + + if (utils$1.isPlainObject(header) || header instanceof this.constructor) { + setHeaders(header, valueOrRewrite); + } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { + setHeaders(parseHeaders(header), valueOrRewrite); + } else { + header != null && setHeader(valueOrRewrite, header, rewrite); + } + + return this; + } + + get(header, parser) { + header = normalizeHeader(header); + + if (header) { + const key = utils$1.findKey(this, header); + + if (key) { + const value = this[key]; + + if (!parser) { + return value; } - return new Stream(new Merge(streams)); - }; - /** - * Combines multiple input streams together to return a stream whose events - * are arrays that collect the latest events from each input stream. - * - * *combine* internally remembers the most recent event from each of the input - * streams. When any of the input streams emits an event, that event together - * with all the other saved events are combined into an array. That array will - * be emitted on the output stream. It's essentially a way of joining together - * the events from multiple streams. - * - * Marble diagram: - * - * ```text - * --1----2-----3--------4--- - * ----a-----b-----c--d------ - * combine - * ----1a-2a-2b-3b-3c-3d-4d-- - * ``` - * - * @factory true - * @param {Stream} stream1 A stream to combine together with other streams. - * @param {Stream} stream2 A stream to combine together with other streams. - * Multiple streams, not just two, may be given as arguments. - * @return {Stream} - */ - Stream.combine = function combine() { - var streams = []; - for (var _i = 0; _i < arguments.length; _i++) { - streams[_i] = arguments[_i]; + + if (parser === true) { + return parseTokens(value); } - return new Stream(new Combine(streams)); - }; - return Stream; -}()); -exports.Stream = Stream; -var MemoryStream = /** @class */ (function (_super) { - __extends(MemoryStream, _super); - function MemoryStream(producer) { - var _this = _super.call(this, producer) || this; - _this._has = false; - return _this; - } - MemoryStream.prototype._n = function (x) { - this._v = x; - this._has = true; - _super.prototype._n.call(this, x); - }; - MemoryStream.prototype._add = function (il) { - var ta = this._target; - if (ta) - return ta._add(il); - var a = this._ils; - a.push(il); - if (a.length > 1) { - if (this._has) - il._n(this._v); - return; + + if (utils$1.isFunction(parser)) { + return parser.call(this, value, key); } - if (this._stopID !== NO) { - if (this._has) - il._n(this._v); - clearTimeout(this._stopID); - this._stopID = NO; + + if (utils$1.isRegExp(parser)) { + return parser.exec(value); } - else if (this._has) - il._n(this._v); - else { - var p = this._prod; - if (p !== NO) - p._start(this); + + throw new TypeError('parser must be boolean|regexp|function'); + } + } + } + + has(header, matcher) { + header = normalizeHeader(header); + + if (header) { + const key = utils$1.findKey(this, header); + + return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher))); + } + + return false; + } + + delete(header, matcher) { + const self = this; + let deleted = false; + + function deleteHeader(_header) { + _header = normalizeHeader(_header); + + if (_header) { + const key = utils$1.findKey(self, _header); + + if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) { + delete self[key]; + + deleted = true; } + } + } + + if (utils$1.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 key = keys[i]; + if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) { + delete this[key]; + deleted = true; + } + } + + return deleted; + } + + normalize(format) { + const self = this; + const headers = {}; + + utils$1.forEach(this, (value, header) => { + const key = utils$1.findKey(headers, header); + + if (key) { + self[key] = normalizeValue(value); + delete self[header]; + return; + } + + const normalized = format ? formatHeader(header) : String(header).trim(); + + if (normalized !== header) { + delete self[header]; + } + + self[normalized] = normalizeValue(value); + + headers[normalized] = true; + }); + + return this; + } + + concat(...targets) { + return this.constructor.concat(this, ...targets); + } + + toJSON(asStrings) { + const obj = Object.create(null); + + utils$1.forEach(this, (value, header) => { + value != null && value !== false && (obj[header] = asStrings && utils$1.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 internals = this[$internals] = (this[$internals] = { + accessors: {} + }); + + const accessors = internals.accessors; + const prototype = this.prototype; + + function defineAccessor(_header) { + const lHeader = normalizeHeader(_header); + + if (!accessors[lHeader]) { + buildAccessors(prototype, _header); + accessors[lHeader] = true; + } + } + + utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header); + + return this; + } +} + +AxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']); + +// reserved names hotfix +utils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => { + let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set` + return { + get: () => value, + set(headerValue) { + this[mapped] = headerValue; + } + } +}); + +utils$1.freezeMethods(AxiosHeaders); + +var AxiosHeaders$1 = AxiosHeaders; + +/** + * Transform the data for a request or a response + * + * @param {Array|Function} fns A single function or Array of functions + * @param {?Object} response The response object + * + * @returns {*} The resulting transformed data + */ +function transformData(fns, response) { + const config = this || defaults$1; + const context = response || config; + const headers = AxiosHeaders$1.from(context.headers); + let data = context.data; + + utils$1.forEach(fns, function transform(fn) { + data = fn.call(config, data, headers.normalize(), response ? response.status : undefined); + }); + + headers.normalize(); + + return data; +} + +function isCancel(value) { + return !!(value && value.__CANCEL__); +} + +/** + * A `CanceledError` is an object that is thrown when an operation is canceled. + * + * @param {string=} message The message. + * @param {Object=} config The config. + * @param {Object=} request The request. + * + * @returns {CanceledError} The created error. + */ +function CanceledError(message, config, request) { + // eslint-disable-next-line no-eq-null,eqeqeq + AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request); + this.name = 'CanceledError'; +} + +utils$1.inherits(CanceledError, AxiosError, { + __CANCEL__: true +}); + +/** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + * + * @returns {object} The response. + */ +function settle(resolve, reject, response) { + const validateStatus = response.config.validateStatus; + if (!response.status || !validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject(new AxiosError( + 'Request failed with status code ' + response.status, + [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], + response.config, + response.request, + response + )); + } +} + +var cookies = platform.hasStandardBrowserEnv ? + + // Standard browser envs support document.cookie + { + write(name, value, expires, path, domain, secure) { + const cookie = [name + '=' + encodeURIComponent(value)]; + + utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString()); + + utils$1.isString(path) && cookie.push('path=' + path); + + utils$1.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() - 86400000); + } + } + + : + + // Non-standard browser env (web workers, react-native) lack needed support. + { + write() {}, + read() { + return null; + }, + remove() {} + }; + +/** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ +function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); +} + +/** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * + * @returns {string} The combined URL + */ +function combineURLs(baseURL, relativeURL) { + return relativeURL + ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') + : baseURL; +} + +/** + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. + * + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * + * @returns {string} The combined full path + */ +function buildFullPath(baseURL, requestedURL) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; +} + +var isURLSameOrigin = platform.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; + + /** + * Parse a URL to discover its components + * + * @param {String} url The URL to be parsed + * @returns {Object} + */ + function resolveURL(url) { + let href = url; + + if (msie) { + // IE needs attribute set twice to normalize properties + urlParsingNode.setAttribute('href', href); + href = urlParsingNode.href; + } + + urlParsingNode.setAttribute('href', href); + + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + 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); + + /** + * Determine if a URL shares the same origin as the current location + * + * @param {String} requestURL The URL to test + * @returns {boolean} True if URL shares the same origin, otherwise false + */ + return function isURLSameOrigin(requestURL) { + const parsed = (utils$1.isString(requestURL)) ? resolveURL(requestURL) : requestURL; + return (parsed.protocol === originURL.protocol && + parsed.host === originURL.host); }; - MemoryStream.prototype._stopNow = function () { - this._has = false; - _super.prototype._stopNow.call(this); - }; - MemoryStream.prototype._x = function () { - this._has = false; - _super.prototype._x.call(this); - }; - MemoryStream.prototype.map = function (project) { - return this._map(project); - }; - MemoryStream.prototype.mapTo = function (projectedValue) { - return _super.prototype.mapTo.call(this, projectedValue); - }; - MemoryStream.prototype.take = function (amount) { - return _super.prototype.take.call(this, amount); + })() : + + // Non standard browser envs (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true; }; - MemoryStream.prototype.endWhen = function (other) { - return _super.prototype.endWhen.call(this, other); + })(); + +function parseProtocol(url) { + const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); + return match && match[1] || ''; +} + +/** + * Calculate data maxRate + * @param {Number} [samplesCount= 10] + * @param {Number} [min= 1000] + * @returns {Function} + */ +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 !== undefined ? min : 1000; + + return function push(chunkLength) { + const now = Date.now(); + + const startedAt = timestamps[tail]; + + if (!firstSampleTS) { + firstSampleTS = now; + } + + bytes[head] = chunkLength; + timestamps[head] = now; + + 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 (now - firstSampleTS < min) { + return; + } + + const passed = startedAt && now - startedAt; + + return passed ? Math.round(bytesCount * 1000 / passed) : undefined; + }; +} + +function progressEventReducer(listener, isDownloadStream) { + let bytesNotified = 0; + const _speedometer = speedometer(50, 250); + + return e => { + const loaded = e.loaded; + const total = e.lengthComputable ? e.total : undefined; + const progressBytes = loaded - bytesNotified; + const rate = _speedometer(progressBytes); + const inRange = loaded <= total; + + bytesNotified = loaded; + + const data = { + loaded, + total, + progress: total ? (loaded / total) : undefined, + bytes: progressBytes, + rate: rate ? rate : undefined, + estimated: rate && total && inRange ? (total - loaded) / rate : undefined, + event: e }; - MemoryStream.prototype.replaceError = function (replace) { - return _super.prototype.replaceError.call(this, replace); + + data[isDownloadStream ? 'download' : 'upload'] = true; + + listener(data); + }; +} + +const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; + +var xhrAdapter = isXHRAdapterSupported && function (config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + let requestData = config.data; + const requestHeaders = AxiosHeaders$1.from(config.headers).normalize(); + let {responseType, withXSRFToken} = config; + let onCanceled; + function done() { + if (config.cancelToken) { + config.cancelToken.unsubscribe(onCanceled); + } + + if (config.signal) { + config.signal.removeEventListener('abort', onCanceled); + } + } + + let contentType; + + if (utils$1.isFormData(requestData)) { + if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) { + requestHeaders.setContentType(false); // Let the browser set it + } else if ((contentType = requestHeaders.getContentType()) !== false) { + // fix semicolon duplication issue for ReactNative FormData implementation + const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : []; + requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; ')); + } + } + + let request = new XMLHttpRequest(); + + // HTTP basic authentication + if (config.auth) { + const username = config.auth.username || ''; + const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : ''; + requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password)); + } + + const fullPath = buildFullPath(config.baseURL, config.url); + + request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); + + // Set the request timeout in MS + request.timeout = config.timeout; + + function onloadend() { + if (!request) { + return; + } + // Prepare the response + const responseHeaders = AxiosHeaders$1.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); + + // Clean up request + request = null; + } + + if ('onloadend' in request) { + // Use onloadend if available + request.onloadend = onloadend; + } else { + // Listen for ready state to emulate onloadend + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + + // The request errored out and we didn't get a response, this will be + // handled by onerror instead + // With one exception: request that using file: protocol, most browsers + // will return status as 0 even though it's a successful request + if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { + return; + } + // readystate handler is calling before onerror or ontimeout handlers, + // so we should call onloadend on the next 'tick' + setTimeout(onloadend); + }; + } + + // Handle browser request cancellation (as opposed to a manual cancellation) + request.onabort = function handleAbort() { + if (!request) { + return; + } + + reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request)); + + // Clean up request + request = null; }; - MemoryStream.prototype.remember = function () { - return this; + + // Handle low level network errors + request.onerror = function handleError() { + // Real errors are hidden from us by the browser + // onerror should only fire if it's a network error + reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request)); + + // Clean up request + request = null; }; - MemoryStream.prototype.debug = function (labelOrSpy) { - return _super.prototype.debug.call(this, labelOrSpy); + + // Handle timeout + request.ontimeout = function handleTimeout() { + let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded'; + const transitional = config.transitional || transitionalDefaults; + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage; + } + reject(new AxiosError( + timeoutErrorMessage, + transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, + config, + request)); + + // Clean up request + request = null; }; - return MemoryStream; -}(Stream)); -exports.MemoryStream = MemoryStream; -var xs = Stream; -exports["default"] = xs; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVEQUFrRTtBQUNsRSx5Q0FBMEQ7QUFFMUQsSUFBTSxZQUFZLEdBQUcsa0JBQXdCLENBQUMsd0JBQWEsRUFBRSxDQUFDLENBQUM7QUFFL0QsSUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBOC9ETCxnQkFBRTtBQTcvRFgsU0FBUyxJQUFJLEtBQUssQ0FBQztBQUVuQixTQUFTLEVBQUUsQ0FBSSxDQUFXO0lBQ3hCLElBQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDbkIsSUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRCxTQUFTLEdBQUcsQ0FBSSxFQUFxQixFQUFFLEVBQXFCO0lBQzFELE9BQU8sU0FBUyxLQUFLLENBQUMsQ0FBSTtRQUN4QixPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQU1ELFNBQVMsSUFBSSxDQUFPLENBQW1CLEVBQUUsQ0FBSSxFQUFFLENBQWM7SUFDM0QsSUFBSTtRQUNGLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNmO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1IsT0FBTyxFQUFFLENBQUM7S0FDWDtBQUNILENBQUM7QUFRRCxJQUFNLEtBQUss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TCxVQUFNLFVBQWlEO1FBQ3JELE9BQU8saUJBQU0sS0FBSyxZQUFDLFVBQWlCLENBQW9CLENBQUM7SUFDM0QsQ0FBQztJQUNILG1CQUFDO0FBQUQsQ0FBQyxBQXhFRCxDQUFxQyxNQUFNLEdBd0UxQztBQXhFWSxvQ0FBWTtBQTJFekIsSUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDO0FBRWxCLGtCQUFlLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwb255ZmlsbFN5bWJvbE9ic2VydmFibGUgZnJvbSAnc3ltYm9sLW9ic2VydmFibGUvcG9ueWZpbGwnO1xuaW1wb3J0IHsgZ2V0UG9seWZpbGwgYXMgZ2V0R2xvYmFsVGhpcyB9IGZyb20gJ2dsb2JhbHRoaXMnO1xuXG5jb25zdCAkJG9ic2VydmFibGUgPSBwb255ZmlsbFN5bWJvbE9ic2VydmFibGUoZ2V0R2xvYmFsVGhpcygpKTtcblxuY29uc3QgTk8gPSB7fTtcbmZ1bmN0aW9uIG5vb3AoKSB7IH1cblxuZnVuY3Rpb24gY3A8VD4oYTogQXJyYXk8VD4pOiBBcnJheTxUPiB7XG4gIGNvbnN0IGwgPSBhLmxlbmd0aDtcbiAgY29uc3QgYiA9IEFycmF5KGwpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGw7ICsraSkgYltpXSA9IGFbaV07XG4gIHJldHVybiBiO1xufVxuXG5mdW5jdGlvbiBhbmQ8VD4oZjE6ICh0OiBUKSA9PiBib29sZWFuLCBmMjogKHQ6IFQpID0+IGJvb2xlYW4pOiAodDogVCkgPT4gYm9vbGVhbiB7XG4gIHJldHVybiBmdW5jdGlvbiBhbmRGbih0OiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGYxKHQpICYmIGYyKHQpO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgRkNvbnRhaW5lcjxULCBSPiB7XG4gIGYodDogVCk6IFI7XG59XG5cbmZ1bmN0aW9uIF90cnk8VCwgUj4oYzogRkNvbnRhaW5lcjxULCBSPiwgdDogVCwgdTogU3RyZWFtPGFueT4pOiBSIHwge30ge1xuICB0cnkge1xuICAgIHJldHVybiBjLmYodCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB1Ll9lKGUpO1xuICAgIHJldHVybiBOTztcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludGVybmFsTGlzdGVuZXI8VD4ge1xuICBfbjogKHY6IFQpID0+IHZvaWQ7XG4gIF9lOiAoZXJyOiBhbnkpID0+IHZvaWQ7XG4gIF9jOiAoKSA9PiB2b2lkO1xufVxuXG5jb25zdCBOT19JTDogSW50ZXJuYWxMaXN0ZW5lcjxhbnk+ID0ge1xuICBfbjogbm9vcCxcbiAgX2U6IG5vb3AsXG4gIF9jOiBub29wLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBJbnRlcm5hbFByb2R1Y2VyPFQ+IHtcbiAgX3N0YXJ0KGxpc3RlbmVyOiBJbnRlcm5hbExpc3RlbmVyPFQ+KTogdm9pZDtcbiAgX3N0b3A6ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3V0U2VuZGVyPFQ+IHtcbiAgb3V0OiBTdHJlYW08VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlcmF0b3I8VCwgUj4gZXh0ZW5kcyBJbnRlcm5hbFByb2R1Y2VyPFI+LCBJbnRlcm5hbExpc3RlbmVyPFQ+LCBPdXRTZW5kZXI8Uj4ge1xuICB0eXBlOiBzdHJpbmc7XG4gIGluczogU3RyZWFtPFQ+O1xuICBfc3RhcnQob3V0OiBTdHJlYW08Uj4pOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFnZ3JlZ2F0b3I8VCwgVT4gZXh0ZW5kcyBJbnRlcm5hbFByb2R1Y2VyPFU+LCBPdXRTZW5kZXI8VT4ge1xuICB0eXBlOiBzdHJpbmc7XG4gIGluc0FycjogQXJyYXk8U3RyZWFtPFQ+PjtcbiAgX3N0YXJ0KG91dDogU3RyZWFtPFU+KTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWNlcjxUPiB7XG4gIHN0YXJ0OiAobGlzdGVuZXI6IExpc3RlbmVyPFQ+KSA9PiB2b2lkO1xuICBzdG9wOiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RlbmVyPFQ+IHtcbiAgbmV4dDogKHg6IFQpID0+IHZvaWQ7XG4gIGVycm9yOiAoZXJyOiBhbnkpID0+IHZvaWQ7XG4gIGNvbXBsZXRlOiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1YnNjcmlwdGlvbiB7XG4gIHVuc3Vic2NyaWJlKCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJsZTxUPiB7XG4gIHN1YnNjcmliZShsaXN0ZW5lcjogTGlzdGVuZXI8VD4pOiBTdWJzY3JpcHRpb247XG59XG5cbi8vIG11dGF0ZXMgdGhlIGlucHV0XG5mdW5jdGlvbiBpbnRlcm5hbGl6ZVByb2R1Y2VyPFQ+KHByb2R1Y2VyOiBQcm9kdWNlcjxUPiAmIFBhcnRpYWw8SW50ZXJuYWxQcm9kdWNlcjxUPj4pIHtcbiAgcHJvZHVjZXIuX3N0YXJ0ID0gZnVuY3Rpb24gX3N0YXJ0KGlsOiBJbnRlcm5hbExpc3RlbmVyPFQ+ICYgUGFydGlhbDxMaXN0ZW5lcjxUPj4pIHtcbiAgICBpbC5uZXh0ID0gaWwuX247XG4gICAgaWwuZXJyb3IgPSBpbC5fZTtcbiAgICBpbC5jb21wbGV0ZSA9IGlsLl9jO1xuICAgIHRoaXMuc3RhcnQoaWwgYXMgTGlzdGVuZXI8VD4pO1xuICB9O1xuICBwcm9kdWNlci5fc3RvcCA9IHByb2R1Y2VyLnN0b3A7XG59XG5cbmNsYXNzIFN0cmVhbVN1YjxUPiBpbXBsZW1lbnRzIFN1YnNjcmlwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3N0cmVhbTogU3RyZWFtPFQ+LCBwcml2YXRlIF9saXN0ZW5lcjogSW50ZXJuYWxMaXN0ZW5lcjxUPikgeyB9XG5cbiAgdW5zdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgdGhpcy5fc3RyZWFtLl9yZW1vdmUodGhpcy5fbGlzdGVuZXIpO1xuICB9XG59XG5cbmNsYXNzIE9ic2VydmVyPFQ+IGltcGxlbWVudHMgTGlzdGVuZXI8VD4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9saXN0ZW5lcjogSW50ZXJuYWxMaXN0ZW5lcjxUPikgeyB9XG5cbiAgbmV4dCh2YWx1ZTogVCkge1xuICAgIHRoaXMuX2xpc3RlbmVyLl9uKHZhbHVlKTtcbiAgfVxuXG4gIGVycm9yKGVycjogYW55KSB7XG4gICAgdGhpcy5fbGlzdGVuZXIuX2UoZXJyKTtcbiAgfVxuXG4gIGNvbXBsZXRlKCkge1xuICAgIHRoaXMuX2xpc3RlbmVyLl9jKCk7XG4gIH1cbn1cblxuY2xhc3MgRnJvbU9ic2VydmFibGU8VD4gaW1wbGVtZW50cyBJbnRlcm5hbFByb2R1Y2VyPFQ+IHtcbiAgcHVibGljIHR5cGUgPSAnZnJvbU9ic2VydmFibGUnO1xuICBwdWJsaWMgaW5zOiBPYnNlcnZhYmxlPFQ+O1xuICBwdWJsaWMgb3V0PzogU3RyZWFtPFQ+O1xuICBwcml2YXRlIGFjdGl2ZTogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfc3ViOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3Iob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxUPikge1xuICAgIHRoaXMuaW5zID0gb2JzZXJ2YWJsZTtcbiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xuICAgIHRoaXMuX3N1YiA9IHRoaXMuaW5zLnN1YnNjcmliZShuZXcgT2JzZXJ2ZXIob3V0KSk7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZSkgdGhpcy5fc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBfc3RvcCgpIHtcbiAgICBpZiAodGhpcy5fc3ViKSB0aGlzLl9zdWIudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVyZ2VTaWduYXR1cmUge1xuICAoKTogU3RyZWFtPGFueT47XG4gIDxUMT4oczE6IFN0cmVhbTxUMT4pOiBTdHJlYW08VDE+O1xuICA8VDEsIFQyPihcbiAgICBzMTogU3RyZWFtPFQxPixcbiAgICBzMjogU3RyZWFtPFQyPik6IFN0cmVhbTxUMSB8IFQyPjtcbiAgPFQxLCBUMiwgVDM+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+KTogU3RyZWFtPFQxIHwgVDIgfCBUMz47XG4gIDxUMSwgVDIsIFQzLCBUND4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4pOiBTdHJlYW08VDEgfCBUMiB8IFQzIHwgVDQ+O1xuICA8VDEsIFQyLCBUMywgVDQsIFQ1PihcbiAgICBzMTogU3RyZWFtPFQxPixcbiAgICBzMjogU3RyZWFtPFQyPixcbiAgICBzMzogU3RyZWFtPFQzPixcbiAgICBzNDogU3RyZWFtPFQ0PixcbiAgICBzNTogU3RyZWFtPFQ1Pik6IFN0cmVhbTxUMSB8IFQyIHwgVDMgfCBUNCB8IFQ1PjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+KTogU3RyZWFtPFQxIHwgVDIgfCBUMyB8IFQ0IHwgVDUgfCBUNj47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4sXG4gICAgczU6IFN0cmVhbTxUNT4sXG4gICAgczY6IFN0cmVhbTxUNj4sXG4gICAgczc6IFN0cmVhbTxUNz4pOiBTdHJlYW08VDEgfCBUMiB8IFQzIHwgVDQgfCBUNSB8IFQ2IHwgVDc+O1xuICA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4PihcbiAgICBzMTogU3RyZWFtPFQxPixcbiAgICBzMjogU3RyZWFtPFQyPixcbiAgICBzMzogU3RyZWFtPFQzPixcbiAgICBzNDogU3RyZWFtPFQ0PixcbiAgICBzNTogU3RyZWFtPFQ1PixcbiAgICBzNjogU3RyZWFtPFQ2PixcbiAgICBzNzogU3RyZWFtPFQ3PixcbiAgICBzODogU3RyZWFtPFQ4Pik6IFN0cmVhbTxUMSB8IFQyIHwgVDMgfCBUNCB8IFQ1IHwgVDYgfCBUNyB8IFQ4PjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+KTogU3RyZWFtPFQxIHwgVDIgfCBUMyB8IFQ0IHwgVDUgfCBUNiB8IFQ3IHwgVDggfCBUOT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+LFxuICAgIHMxMDogU3RyZWFtPFQxMD4pOiBTdHJlYW08VDEgfCBUMiB8IFQzIHwgVDQgfCBUNSB8IFQ2IHwgVDcgfCBUOCB8IFQ5IHwgVDEwPjtcbiAgPFQ+KC4uLnN0cmVhbTogQXJyYXk8U3RyZWFtPFQ+Pik6IFN0cmVhbTxUPjtcbn1cblxuY2xhc3MgTWVyZ2U8VD4gaW1wbGVtZW50cyBBZ2dyZWdhdG9yPFQsIFQ+LCBJbnRlcm5hbExpc3RlbmVyPFQ+IHtcbiAgcHVibGljIHR5cGUgPSAnbWVyZ2UnO1xuICBwdWJsaWMgaW5zQXJyOiBBcnJheTxTdHJlYW08VD4+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHByaXZhdGUgYWM6IG51bWJlcjsgLy8gYWMgaXMgYWN0aXZlQ291bnRcblxuICBjb25zdHJ1Y3RvcihpbnNBcnI6IEFycmF5PFN0cmVhbTxUPj4pIHtcbiAgICB0aGlzLmluc0FyciA9IGluc0FycjtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLmFjID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIGNvbnN0IHMgPSB0aGlzLmluc0FycjtcbiAgICBjb25zdCBMID0gcy5sZW5ndGg7XG4gICAgdGhpcy5hYyA9IEw7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIHNbaV0uX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIGNvbnN0IHMgPSB0aGlzLmluc0FycjtcbiAgICBjb25zdCBMID0gcy5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIHNbaV0uX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIGlmICgtLXRoaXMuYWMgPD0gMCkge1xuICAgICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgICB1Ll9jKCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluZVNpZ25hdHVyZSB7XG4gICgpOiBTdHJlYW08QXJyYXk8YW55Pj47XG4gIDxUMT4oczE6IFN0cmVhbTxUMT4pOiBTdHJlYW08W1QxXT47XG4gIDxUMSwgVDI+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+KTogU3RyZWFtPFtUMSwgVDJdPjtcbiAgPFQxLCBUMiwgVDM+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+KTogU3RyZWFtPFtUMSwgVDIsIFQzXT47XG4gIDxUMSwgVDIsIFQzLCBUND4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4pOiBTdHJlYW08W1QxLCBUMiwgVDMsIFQ0XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDU+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDVdPjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4sXG4gICAgczU6IFN0cmVhbTxUNT4sXG4gICAgczY6IFN0cmVhbTxUNj4sXG4gICAgczc6IFN0cmVhbTxUNz4pOiBTdHJlYW08W1QxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDg+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDhdPjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+LFxuICAgIHMxMDogU3RyZWFtPFQxMD4pOiBTdHJlYW08W1QxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMF0+O1xuICA8VD4oLi4uc3RyZWFtOiBBcnJheTxTdHJlYW08VD4+KTogU3RyZWFtPEFycmF5PFQ+PjtcbiAgKC4uLnN0cmVhbTogQXJyYXk8U3RyZWFtPGFueT4+KTogU3RyZWFtPEFycmF5PGFueT4+O1xufVxuXG5jbGFzcyBDb21iaW5lTGlzdGVuZXI8VD4gaW1wbGVtZW50cyBJbnRlcm5hbExpc3RlbmVyPFQ+LCBPdXRTZW5kZXI8QXJyYXk8VD4+IHtcbiAgcHJpdmF0ZSBpOiBudW1iZXI7XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxBcnJheTxUPj47XG4gIHByaXZhdGUgcDogQ29tYmluZTxUPjtcblxuICBjb25zdHJ1Y3RvcihpOiBudW1iZXIsIG91dDogU3RyZWFtPEFycmF5PFQ+PiwgcDogQ29tYmluZTxUPikge1xuICAgIHRoaXMuaSA9IGk7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5wID0gcDtcbiAgICBwLmlscy5wdXNoKHRoaXMpO1xuICB9XG5cbiAgX24odDogVCk6IHZvaWQge1xuICAgIGNvbnN0IHAgPSB0aGlzLnAsIG91dCA9IHRoaXMub3V0O1xuICAgIGlmIChvdXQgPT09IE5PKSByZXR1cm47XG4gICAgaWYgKHAudXAodCwgdGhpcy5pKSkge1xuICAgICAgY29uc3QgYiA9IGNwKHAudmFscyk7XG4gICAgICBvdXQuX24oYik7XG4gICAgfVxuICB9XG5cbiAgX2UoZXJyOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBvdXQgPSB0aGlzLm91dDtcbiAgICBpZiAob3V0ID09PSBOTykgcmV0dXJuO1xuICAgIG91dC5fZShlcnIpO1xuICB9XG5cbiAgX2MoKTogdm9pZCB7XG4gICAgY29uc3QgcCA9IHRoaXMucDtcbiAgICBpZiAocC5vdXQgPT09IE5PKSByZXR1cm47XG4gICAgaWYgKC0tcC5OYyA9PT0gMCkgcC5vdXQuX2MoKTtcbiAgfVxufVxuXG5jbGFzcyBDb21iaW5lPFI+IGltcGxlbWVudHMgQWdncmVnYXRvcjxhbnksIEFycmF5PFI+PiB7XG4gIHB1YmxpYyB0eXBlID0gJ2NvbWJpbmUnO1xuICBwdWJsaWMgaW5zQXJyOiBBcnJheTxTdHJlYW08YW55Pj47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxBcnJheTxSPj47XG4gIHB1YmxpYyBpbHM6IEFycmF5PENvbWJpbmVMaXN0ZW5lcjxhbnk+PjtcbiAgcHVibGljIE5jOiBudW1iZXI7IC8vICpOKnVtYmVyIG9mIHN0cmVhbXMgc3RpbGwgdG8gc2VuZCAqYypvbXBsZXRlXG4gIHB1YmxpYyBObjogbnVtYmVyOyAvLyAqTip1bWJlciBvZiBzdHJlYW1zIHN0aWxsIHRvIHNlbmQgKm4qZXh0XG4gIHB1YmxpYyB2YWxzOiBBcnJheTxSPjtcblxuICBjb25zdHJ1Y3RvcihpbnNBcnI6IEFycmF5PFN0cmVhbTxhbnk+Pikge1xuICAgIHRoaXMuaW5zQXJyID0gaW5zQXJyO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPEFycmF5PFI+PjtcbiAgICB0aGlzLmlscyA9IFtdO1xuICAgIHRoaXMuTmMgPSB0aGlzLk5uID0gMDtcbiAgICB0aGlzLnZhbHMgPSBbXTtcbiAgfVxuXG4gIHVwKHQ6IGFueSwgaTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdiA9IHRoaXMudmFsc1tpXTtcbiAgICBjb25zdCBObiA9ICF0aGlzLk5uID8gMCA6IHYgPT09IE5PID8gLS10aGlzLk5uIDogdGhpcy5ObjtcbiAgICB0aGlzLnZhbHNbaV0gPSB0O1xuICAgIHJldHVybiBObiA9PT0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxBcnJheTxSPj4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICBjb25zdCBzID0gdGhpcy5pbnNBcnI7XG4gICAgY29uc3QgbiA9IHRoaXMuTmMgPSB0aGlzLk5uID0gcy5sZW5ndGg7XG4gICAgY29uc3QgdmFscyA9IHRoaXMudmFscyA9IG5ldyBBcnJheShuKTtcbiAgICBpZiAobiA9PT0gMCkge1xuICAgICAgb3V0Ll9uKFtdKTtcbiAgICAgIG91dC5fYygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykge1xuICAgICAgICB2YWxzW2ldID0gTk87XG4gICAgICAgIHNbaV0uX2FkZChuZXcgQ29tYmluZUxpc3RlbmVyKGksIG91dCwgdGhpcykpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIGNvbnN0IHMgPSB0aGlzLmluc0FycjtcbiAgICBjb25zdCBuID0gcy5sZW5ndGg7XG4gICAgY29uc3QgaWxzID0gdGhpcy5pbHM7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHNbaV0uX3JlbW92ZShpbHNbaV0pO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPEFycmF5PFI+PjtcbiAgICB0aGlzLmlscyA9IFtdO1xuICAgIHRoaXMudmFscyA9IFtdO1xuICB9XG59XG5cbmNsYXNzIEZyb21BcnJheTxUPiBpbXBsZW1lbnRzIEludGVybmFsUHJvZHVjZXI8VD4ge1xuICBwdWJsaWMgdHlwZSA9ICdmcm9tQXJyYXknO1xuICBwdWJsaWMgYTogQXJyYXk8VD47XG5cbiAgY29uc3RydWN0b3IoYTogQXJyYXk8VD4pIHtcbiAgICB0aGlzLmEgPSBhO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogSW50ZXJuYWxMaXN0ZW5lcjxUPik6IHZvaWQge1xuICAgIGNvbnN0IGEgPSB0aGlzLmE7XG4gICAgZm9yIChsZXQgaSA9IDAsIG4gPSBhLmxlbmd0aDsgaSA8IG47IGkrKykgb3V0Ll9uKGFbaV0pO1xuICAgIG91dC5fYygpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gIH1cbn1cblxuY2xhc3MgRnJvbVByb21pc2U8VD4gaW1wbGVtZW50cyBJbnRlcm5hbFByb2R1Y2VyPFQ+IHtcbiAgcHVibGljIHR5cGUgPSAnZnJvbVByb21pc2UnO1xuICBwdWJsaWMgb246IGJvb2xlYW47XG4gIHB1YmxpYyBwOiBQcm9taXNlTGlrZTxUPjtcblxuICBjb25zdHJ1Y3RvcihwOiBQcm9taXNlTGlrZTxUPikge1xuICAgIHRoaXMub24gPSBmYWxzZTtcbiAgICB0aGlzLnAgPSBwO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogSW50ZXJuYWxMaXN0ZW5lcjxUPik6IHZvaWQge1xuICAgIGNvbnN0IHByb2QgPSB0aGlzO1xuICAgIHRoaXMub24gPSB0cnVlO1xuICAgIHRoaXMucC50aGVuKFxuICAgICAgKHY6IFQpID0+IHtcbiAgICAgICAgaWYgKHByb2Qub24pIHtcbiAgICAgICAgICBvdXQuX24odik7XG4gICAgICAgICAgb3V0Ll9jKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoZTogYW55KSA9PiB7XG4gICAgICAgIG91dC5fZShlKTtcbiAgICAgIH0sXG4gICAgKS50aGVuKG5vb3AsIChlcnI6IGFueSkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7IHRocm93IGVycjsgfSk7XG4gICAgfSk7XG4gIH1cblxuICBfc3RvcCgpOiB2b2lkIHtcbiAgICB0aGlzLm9uID0gZmFsc2U7XG4gIH1cbn1cblxuY2xhc3MgUGVyaW9kaWMgaW1wbGVtZW50cyBJbnRlcm5hbFByb2R1Y2VyPG51bWJlcj4ge1xuICBwdWJsaWMgdHlwZSA9ICdwZXJpb2RpYyc7XG4gIHB1YmxpYyBwZXJpb2Q6IG51bWJlcjtcbiAgcHJpdmF0ZSBpbnRlcnZhbElEOiBhbnk7XG4gIHByaXZhdGUgaTogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHBlcmlvZDogbnVtYmVyKSB7XG4gICAgdGhpcy5wZXJpb2QgPSBwZXJpb2Q7XG4gICAgdGhpcy5pbnRlcnZhbElEID0gLTE7XG4gICAgdGhpcy5pID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IEludGVybmFsTGlzdGVuZXI8bnVtYmVyPik6IHZvaWQge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIGZ1bmN0aW9uIGludGVydmFsSGFuZGxlcigpIHsgb3V0Ll9uKHNlbGYuaSsrKTsgfVxuICAgIHRoaXMuaW50ZXJ2YWxJRCA9IHNldEludGVydmFsKGludGVydmFsSGFuZGxlciwgdGhpcy5wZXJpb2QpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW50ZXJ2YWxJRCAhPT0gLTEpIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElEKTtcbiAgICB0aGlzLmludGVydmFsSUQgPSAtMTtcbiAgICB0aGlzLmkgPSAwO1xuICB9XG59XG5cbmNsYXNzIERlYnVnPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdkZWJ1Zyc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFQ+O1xuICBwcml2YXRlIHM6ICh0OiBUKSA9PiBhbnk7IC8vIHNweVxuICBwcml2YXRlIGw6IHN0cmluZzsgLy8gbGFiZWxcblxuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPik7XG4gIGNvbnN0cnVjdG9yKGluczogU3RyZWFtPFQ+LCBhcmc/OiBzdHJpbmcpO1xuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPiwgYXJnPzogKHQ6IFQpID0+IGFueSk7XG4gIGNvbnN0cnVjdG9yKGluczogU3RyZWFtPFQ+LCBhcmc/OiBzdHJpbmcgfCAoKHQ6IFQpID0+IGFueSkpO1xuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPiwgYXJnPzogc3RyaW5nIHwgKCh0OiBUKSA9PiBhbnkpIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5zID0gbm9vcDtcbiAgICB0aGlzLmwgPSAnJztcbiAgICBpZiAodHlwZW9mIGFyZyA9PT0gJ3N0cmluZycpIHRoaXMubCA9IGFyZzsgZWxzZSBpZiAodHlwZW9mIGFyZyA9PT0gJ2Z1bmN0aW9uJykgdGhpcy5zID0gYXJnO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHMgPSB0aGlzLnMsIGwgPSB0aGlzLmw7XG4gICAgaWYgKHMgIT09IG5vb3ApIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHModCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHUuX2UoZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChsKSBjb25zb2xlLmxvZyhsICsgJzonLCB0KTsgZWxzZSBjb25zb2xlLmxvZyh0KTtcbiAgICB1Ll9uKHQpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2MoKTtcbiAgfVxufVxuXG5jbGFzcyBEcm9wPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdkcm9wJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHB1YmxpYyBtYXg6IG51bWJlcjtcbiAgcHJpdmF0ZSBkcm9wcGVkOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IobWF4OiBudW1iZXIsIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5tYXggPSBtYXg7XG4gICAgdGhpcy5kcm9wcGVkID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuZHJvcHBlZCA9IDA7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGlmICh0aGlzLmRyb3BwZWQrKyA+PSB0aGlzLm1heCkgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9jKCk7XG4gIH1cbn1cblxuY2xhc3MgRW5kV2hlbkxpc3RlbmVyPFQ+IGltcGxlbWVudHMgSW50ZXJuYWxMaXN0ZW5lcjxhbnk+IHtcbiAgcHJpdmF0ZSBvdXQ6IFN0cmVhbTxUPjtcbiAgcHJpdmF0ZSBvcDogRW5kV2hlbjxUPjtcblxuICBjb25zdHJ1Y3RvcihvdXQ6IFN0cmVhbTxUPiwgb3A6IEVuZFdoZW48VD4pIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm9wID0gb3A7XG4gIH1cblxuICBfbigpIHtcbiAgICB0aGlzLm9wLmVuZCgpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICB0aGlzLm91dC5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgdGhpcy5vcC5lbmQoKTtcbiAgfVxufVxuXG5jbGFzcyBFbmRXaGVuPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdlbmRXaGVuJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHB1YmxpYyBvOiBTdHJlYW08YW55PjsgLy8gbyA9IG90aGVyXG4gIHByaXZhdGUgb2lsOiBJbnRlcm5hbExpc3RlbmVyPGFueT47IC8vIG9pbCA9IG90aGVyIEludGVybmFsTGlzdGVuZXJcblxuICBjb25zdHJ1Y3RvcihvOiBTdHJlYW08YW55PiwgaW5zOiBTdHJlYW08VD4pIHtcbiAgICB0aGlzLmlucyA9IGlucztcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLm8gPSBvO1xuICAgIHRoaXMub2lsID0gTk9fSUw7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm8uX2FkZCh0aGlzLm9pbCA9IG5ldyBFbmRXaGVuTGlzdGVuZXIob3V0LCB0aGlzKSk7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vLl9yZW1vdmUodGhpcy5vaWwpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMub2lsID0gTk9fSUw7XG4gIH1cblxuICBlbmQoKTogdm9pZCB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2MoKTtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIHRoaXMuZW5kKCk7XG4gIH1cbn1cblxuY2xhc3MgRmlsdGVyPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdmaWx0ZXInO1xuICBwdWJsaWMgaW5zOiBTdHJlYW08VD47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxUPjtcbiAgcHVibGljIGY6ICh0OiBUKSA9PiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHBhc3NlczogKHQ6IFQpID0+IGJvb2xlYW4sIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5mID0gcGFzc2VzO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHIgPSBfdHJ5KHRoaXMsIHQsIHUpO1xuICAgIGlmIChyID09PSBOTyB8fCAhcikgcmV0dXJuO1xuICAgIHUuX24odCk7XG4gIH1cblxuICBfZShlcnI6IGFueSkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9lKGVycik7XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmNsYXNzIEZsYXR0ZW5MaXN0ZW5lcjxUPiBpbXBsZW1lbnRzIEludGVybmFsTGlzdGVuZXI8VD4ge1xuICBwcml2YXRlIG91dDogU3RyZWFtPFQ+O1xuICBwcml2YXRlIG9wOiBGbGF0dGVuPFQ+O1xuXG4gIGNvbnN0cnVjdG9yKG91dDogU3RyZWFtPFQ+LCBvcDogRmxhdHRlbjxUPikge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMub3AgPSBvcDtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICB0aGlzLm91dC5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgdGhpcy5vdXQuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIHRoaXMub3AuaW5uZXIgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5vcC5sZXNzKCk7XG4gIH1cbn1cblxuY2xhc3MgRmxhdHRlbjxUPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFN0cmVhbTxUPiwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdmbGF0dGVuJztcbiAgcHVibGljIGluczogU3RyZWFtPFN0cmVhbTxUPj47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxUPjtcbiAgcHJpdmF0ZSBvcGVuOiBib29sZWFuO1xuICBwdWJsaWMgaW5uZXI6IFN0cmVhbTxUPjsgLy8gQ3VycmVudCBpbm5lciBTdHJlYW1cbiAgcHJpdmF0ZSBpbDogSW50ZXJuYWxMaXN0ZW5lcjxUPjsgLy8gQ3VycmVudCBpbm5lciBJbnRlcm5hbExpc3RlbmVyXG5cbiAgY29uc3RydWN0b3IoaW5zOiBTdHJlYW08U3RyZWFtPFQ+Pikge1xuICAgIHRoaXMuaW5zID0gaW5zO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgdGhpcy5pbm5lciA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLmlsID0gTk9fSUw7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICAgIHRoaXMuaW5uZXIgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5pbCA9IE5PX0lMO1xuICAgIHRoaXMuaW5zLl9hZGQodGhpcyk7XG4gIH1cblxuICBfc3RvcCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucy5fcmVtb3ZlKHRoaXMpO1xuICAgIGlmICh0aGlzLmlubmVyICE9PSBOTykgdGhpcy5pbm5lci5fcmVtb3ZlKHRoaXMuaWwpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgdGhpcy5pbm5lciA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLmlsID0gTk9fSUw7XG4gIH1cblxuICBsZXNzKCk6IHZvaWQge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICBpZiAoIXRoaXMub3BlbiAmJiB0aGlzLmlubmVyID09PSBOTykgdS5fYygpO1xuICB9XG5cbiAgX24oczogU3RyZWFtPFQ+KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHsgaW5uZXIsIGlsIH0gPSB0aGlzO1xuICAgIGlmIChpbm5lciAhPT0gTk8gJiYgaWwgIT09IE5PX0lMKSBpbm5lci5fcmVtb3ZlKGlsKTtcbiAgICAodGhpcy5pbm5lciA9IHMpLl9hZGQodGhpcy5pbCA9IG5ldyBGbGF0dGVuTGlzdGVuZXIodSwgdGhpcykpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgdGhpcy5sZXNzKCk7XG4gIH1cbn1cblxuY2xhc3MgRm9sZDxULCBSPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFQsIFI+IHtcbiAgcHVibGljIHR5cGUgPSAnZm9sZCc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFI+O1xuICBwdWJsaWMgZjogKHQ6IFQpID0+IFI7XG4gIHB1YmxpYyBzZWVkOiBSO1xuICBwcml2YXRlIGFjYzogUjsgLy8gaW5pdGlhbGl6ZWQgYXMgc2VlZFxuXG4gIGNvbnN0cnVjdG9yKGY6IChhY2M6IFIsIHQ6IFQpID0+IFIsIHNlZWQ6IFIsIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08Uj47XG4gICAgdGhpcy5mID0gKHQ6IFQpID0+IGYodGhpcy5hY2MsIHQpO1xuICAgIHRoaXMuYWNjID0gdGhpcy5zZWVkID0gc2VlZDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxSPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuYWNjID0gdGhpcy5zZWVkO1xuICAgIG91dC5fbih0aGlzLmFjYyk7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08Uj47XG4gICAgdGhpcy5hY2MgPSB0aGlzLnNlZWQ7XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHIgPSBfdHJ5KHRoaXMsIHQsIHUpO1xuICAgIGlmIChyID09PSBOTykgcmV0dXJuO1xuICAgIHUuX24odGhpcy5hY2MgPSByIGFzIFIpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2MoKTtcbiAgfVxufVxuXG5jbGFzcyBMYXN0PFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdsYXN0JztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHByaXZhdGUgaGFzOiBib29sZWFuO1xuICBwcml2YXRlIHZhbDogVDtcblxuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPikge1xuICAgIHRoaXMuaW5zID0gaW5zO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMuaGFzID0gZmFsc2U7XG4gICAgdGhpcy52YWwgPSBOTyBhcyBUO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5oYXMgPSBmYWxzZTtcbiAgICB0aGlzLmlucy5fYWRkKHRoaXMpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLnZhbCA9IE5PIGFzIFQ7XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgdGhpcy5oYXMgPSB0cnVlO1xuICAgIHRoaXMudmFsID0gdDtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICBpZiAodGhpcy5oYXMpIHtcbiAgICAgIHUuX24odGhpcy52YWwpO1xuICAgICAgdS5fYygpO1xuICAgIH0gZWxzZSB1Ll9lKG5ldyBFcnJvcignbGFzdCgpIGZhaWxlZCBiZWNhdXNlIGlucHV0IHN0cmVhbSBjb21wbGV0ZWQnKSk7XG4gIH1cbn1cblxuY2xhc3MgTWFwT3A8VCwgUj4gaW1wbGVtZW50cyBPcGVyYXRvcjxULCBSPiB7XG4gIHB1YmxpYyB0eXBlID0gJ21hcCc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFI+O1xuICBwdWJsaWMgZjogKHQ6IFQpID0+IFI7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogKHQ6IFQpID0+IFIsIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08Uj47XG4gICAgdGhpcy5mID0gcHJvamVjdDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxSPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuaW5zLl9hZGQodGhpcyk7XG4gIH1cblxuICBfc3RvcCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucy5fcmVtb3ZlKHRoaXMpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFI+O1xuICB9XG5cbiAgX24odDogVCkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICBjb25zdCByID0gX3RyeSh0aGlzLCB0LCB1KTtcbiAgICBpZiAociA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9uKHIgYXMgUik7XG4gIH1cblxuICBfZShlcnI6IGFueSkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9lKGVycik7XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmNsYXNzIFJlbWVtYmVyPFQ+IGltcGxlbWVudHMgSW50ZXJuYWxQcm9kdWNlcjxUPiB7XG4gIHB1YmxpYyB0eXBlID0gJ3JlbWVtYmVyJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG5cbiAgY29uc3RydWN0b3IoaW5zOiBTdHJlYW08VD4pIHtcbiAgICB0aGlzLmlucyA9IGlucztcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuaW5zLl9hZGQob3V0KTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcy5vdXQpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICB9XG59XG5cbmNsYXNzIFJlcGxhY2VFcnJvcjxUPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFQsIFQ+IHtcbiAgcHVibGljIHR5cGUgPSAncmVwbGFjZUVycm9yJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHB1YmxpYyBmOiAoZXJyOiBhbnkpID0+IFN0cmVhbTxUPjtcblxuICBjb25zdHJ1Y3RvcihyZXBsYWNlcjogKGVycjogYW55KSA9PiBTdHJlYW08VD4sIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5mID0gcmVwbGFjZXI7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLmlucy5fYWRkKHRoaXMpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmlucy5fcmVtb3ZlKHRoaXMpO1xuICAgICAgKHRoaXMuaW5zID0gdGhpcy5mKGVycikpLl9hZGQodGhpcyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdS5fZShlKTtcbiAgICB9XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmNsYXNzIFN0YXJ0V2l0aDxUPiBpbXBsZW1lbnRzIEludGVybmFsUHJvZHVjZXI8VD4ge1xuICBwdWJsaWMgdHlwZSA9ICdzdGFydFdpdGgnO1xuICBwdWJsaWMgaW5zOiBTdHJlYW08VD47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxUPjtcbiAgcHVibGljIHZhbDogVDtcblxuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPiwgdmFsOiBUKSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy52YWwgPSB2YWw7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm91dC5fbih0aGlzLnZhbCk7XG4gICAgdGhpcy5pbnMuX2FkZChvdXQpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzLm91dCk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cbn1cblxuY2xhc3MgVGFrZTxUPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFQsIFQ+IHtcbiAgcHVibGljIHR5cGUgPSAndGFrZSc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFQ+O1xuICBwdWJsaWMgbWF4OiBudW1iZXI7XG4gIHByaXZhdGUgdGFrZW46IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihtYXg6IG51bWJlciwgaW5zOiBTdHJlYW08VD4pIHtcbiAgICB0aGlzLmlucyA9IGlucztcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLm1heCA9IG1heDtcbiAgICB0aGlzLnRha2VuID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMudGFrZW4gPSAwO1xuICAgIGlmICh0aGlzLm1heCA8PSAwKSBvdXQuX2MoKTsgZWxzZSB0aGlzLmlucy5fYWRkKHRoaXMpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgY29uc3QgbSA9ICsrdGhpcy50YWtlbjtcbiAgICBpZiAobSA8IHRoaXMubWF4KSB1Ll9uKHQpOyBlbHNlIGlmIChtID09PSB0aGlzLm1heCkge1xuICAgICAgdS5fbih0KTtcbiAgICAgIHUuX2MoKTtcbiAgICB9XG4gIH1cblxuICBfZShlcnI6IGFueSkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9lKGVycik7XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdHJlYW08VD4gaW1wbGVtZW50cyBJbnRlcm5hbExpc3RlbmVyPFQ+IHtcbiAgcHVibGljIF9wcm9kOiBJbnRlcm5hbFByb2R1Y2VyPFQ+O1xuICBwcm90ZWN0ZWQgX2lsczogQXJyYXk8SW50ZXJuYWxMaXN0ZW5lcjxUPj47IC8vICdpbHMnID0gSW50ZXJuYWwgbGlzdGVuZXJzXG4gIHByb3RlY3RlZCBfc3RvcElEOiBhbnk7XG4gIHByb3RlY3RlZCBfZGw6IEludGVybmFsTGlzdGVuZXI8VD47IC8vIHRoZSBkZWJ1ZyBsaXN0ZW5lclxuICBwcm90ZWN0ZWQgX2Q6IGJvb2xlYW47IC8vIGZsYWcgaW5kaWNhdGluZyB0aGUgZXhpc3RlbmNlIG9mIHRoZSBkZWJ1ZyBsaXN0ZW5lclxuICBwcm90ZWN0ZWQgX3RhcmdldDogU3RyZWFtPFQ+IHwgbnVsbDsgLy8gaW1pdGF0aW9uIHRhcmdldCBpZiB0aGlzIFN0cmVhbSB3aWxsIGltaXRhdGVcbiAgcHJvdGVjdGVkIF9lcnI6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcm9kdWNlcj86IEludGVybmFsUHJvZHVjZXI8VD4pIHtcbiAgICB0aGlzLl9wcm9kID0gcHJvZHVjZXIgfHwgTk8gYXMgSW50ZXJuYWxQcm9kdWNlcjxUPjtcbiAgICB0aGlzLl9pbHMgPSBbXTtcbiAgICB0aGlzLl9zdG9wSUQgPSBOTztcbiAgICB0aGlzLl9kbCA9IE5PIGFzIEludGVybmFsTGlzdGVuZXI8VD47XG4gICAgdGhpcy5fZCA9IGZhbHNlO1xuICAgIHRoaXMuX3RhcmdldCA9IG51bGw7XG4gICAgdGhpcy5fZXJyID0gTk87XG4gIH1cblxuICBfbih0OiBUKTogdm9pZCB7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBMID0gYS5sZW5ndGg7XG4gICAgaWYgKHRoaXMuX2QpIHRoaXMuX2RsLl9uKHQpO1xuICAgIGlmIChMID09IDEpIGFbMF0uX24odCk7IGVsc2UgaWYgKEwgPT0gMCkgcmV0dXJuOyBlbHNlIHtcbiAgICAgIGNvbnN0IGIgPSBjcChhKTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTDsgaSsrKSBiW2ldLl9uKHQpO1xuICAgIH1cbiAgfVxuXG4gIF9lKGVycjogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2VyciAhPT0gTk8pIHJldHVybjtcbiAgICB0aGlzLl9lcnIgPSBlcnI7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBMID0gYS5sZW5ndGg7XG4gICAgdGhpcy5feCgpO1xuICAgIGlmICh0aGlzLl9kKSB0aGlzLl9kbC5fZShlcnIpO1xuICAgIGlmIChMID09IDEpIGFbMF0uX2UoZXJyKTsgZWxzZSBpZiAoTCA9PSAwKSByZXR1cm47IGVsc2Uge1xuICAgICAgY29uc3QgYiA9IGNwKGEpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIGJbaV0uX2UoZXJyKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9kICYmIEwgPT0gMCkgdGhyb3cgdGhpcy5fZXJyO1xuICB9XG5cbiAgX2MoKTogdm9pZCB7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBMID0gYS5sZW5ndGg7XG4gICAgdGhpcy5feCgpO1xuICAgIGlmICh0aGlzLl9kKSB0aGlzLl9kbC5fYygpO1xuICAgIGlmIChMID09IDEpIGFbMF0uX2MoKTsgZWxzZSBpZiAoTCA9PSAwKSByZXR1cm47IGVsc2Uge1xuICAgICAgY29uc3QgYiA9IGNwKGEpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIGJbaV0uX2MoKTtcbiAgICB9XG4gIH1cblxuICBfeCgpOiB2b2lkIHsgLy8gdGVhciBkb3duIGxvZ2ljLCBhZnRlciBlcnJvciBvciBjb21wbGV0ZVxuICAgIGlmICh0aGlzLl9pbHMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgaWYgKHRoaXMuX3Byb2QgIT09IE5PKSB0aGlzLl9wcm9kLl9zdG9wKCk7XG4gICAgdGhpcy5fZXJyID0gTk87XG4gICAgdGhpcy5faWxzID0gW107XG4gIH1cblxuICBfc3RvcE5vdygpIHtcbiAgICAvLyBXQVJOSU5HOiBjb2RlIHRoYXQgY2FsbHMgdGhpcyBtZXRob2Qgc2hvdWxkXG4gICAgLy8gZmlyc3QgY2hlY2sgaWYgdGhpcy5fcHJvZCBpcyB2YWxpZCAobm90IGBOT2ApXG4gICAgdGhpcy5fcHJvZC5fc3RvcCgpO1xuICAgIHRoaXMuX2VyciA9IE5PO1xuICAgIHRoaXMuX3N0b3BJRCA9IE5PO1xuICB9XG5cbiAgX2FkZChpbDogSW50ZXJuYWxMaXN0ZW5lcjxUPik6IHZvaWQge1xuICAgIGNvbnN0IHRhID0gdGhpcy5fdGFyZ2V0O1xuICAgIGlmICh0YSkgcmV0dXJuIHRhLl9hZGQoaWwpO1xuICAgIGNvbnN0IGEgPSB0aGlzLl9pbHM7XG4gICAgYS5wdXNoKGlsKTtcbiAgICBpZiAoYS5sZW5ndGggPiAxKSByZXR1cm47XG4gICAgaWYgKHRoaXMuX3N0b3BJRCAhPT0gTk8pIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9zdG9wSUQpO1xuICAgICAgdGhpcy5fc3RvcElEID0gTk87XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHAgPSB0aGlzLl9wcm9kO1xuICAgICAgaWYgKHAgIT09IE5PKSBwLl9zdGFydCh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBfcmVtb3ZlKGlsOiBJbnRlcm5hbExpc3RlbmVyPFQ+KTogdm9pZCB7XG4gICAgY29uc3QgdGEgPSB0aGlzLl90YXJnZXQ7XG4gICAgaWYgKHRhKSByZXR1cm4gdGEuX3JlbW92ZShpbCk7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBpID0gYS5pbmRleE9mKGlsKTtcbiAgICBpZiAoaSA+IC0xKSB7XG4gICAgICBhLnNwbGljZShpLCAxKTtcbiAgICAgIGlmICh0aGlzLl9wcm9kICE9PSBOTyAmJiBhLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgIHRoaXMuX2VyciA9IE5PO1xuICAgICAgICB0aGlzLl9zdG9wSUQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3N0b3BOb3coKSk7XG4gICAgICB9IGVsc2UgaWYgKGEubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHRoaXMuX3BydW5lQ3ljbGVzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgYWxsIHBhdGhzIHN0ZW1taW5nIGZyb20gYHRoaXNgIHN0cmVhbSBldmVudHVhbGx5IGVuZCBhdCBgdGhpc2BcbiAgLy8gc3RyZWFtLCB0aGVuIHdlIHJlbW92ZSB0aGUgc2luZ2xlIGxpc3RlbmVyIG9mIGB0aGlzYCBzdHJlYW0sIHRvXG4gIC8vIGZvcmNlIGl0IHRvIGVuZCBpdHMgZXhlY3V0aW9uIGFuZCBkaXNwb3NlIHJlc291cmNlcy4gVGhpcyBtZXRob2RcbiAgLy8gYXNzdW1lcyBhcyBhIHByZWNvbmRpdGlvbiB0aGF0IHRoaXMuX2lscyBoYXMganVzdCBvbmUgbGlzdGVuZXIuXG4gIF9wcnVuZUN5Y2xlcygpIHtcbiAgICBpZiAodGhpcy5faGFzTm9TaW5rcyh0aGlzLCBbXSkpIHRoaXMuX3JlbW92ZSh0aGlzLl9pbHNbMF0pO1xuICB9XG5cbiAgLy8gQ2hlY2tzIHdoZXRoZXIgKnRoZXJlIGlzIG5vKiBwYXRoIHN0YXJ0aW5nIGZyb20gYHhgIHRoYXQgbGVhZHMgdG8gYW4gZW5kXG4gIC8vIGxpc3RlbmVyIChzaW5rKSBpbiB0aGUgc3RyZWFtIGdyYXBoLCBmb2xsb3dpbmcgZWRnZXMgQS0+QiB3aGVyZSBCIGlzIGFcbiAgLy8gbGlzdGVuZXIgb2YgQS4gVGhpcyBtZWFucyB0aGVzZSBwYXRocyBjb25zdGl0dXRlIGEgY3ljbGUgc29tZWhvdy4gSXMgZ2l2ZW5cbiAgLy8gYSB0cmFjZSBvZiBhbGwgdmlzaXRlZCBub2RlcyBzbyBmYXIuXG4gIF9oYXNOb1NpbmtzKHg6IEludGVybmFsTGlzdGVuZXI8YW55PiwgdHJhY2U6IEFycmF5PGFueT4pOiBib29sZWFuIHtcbiAgICBpZiAodHJhY2UuaW5kZXhPZih4KSAhPT0gLTEpXG4gICAgICByZXR1cm4gdHJ1ZTsgZWxzZVxuICAgICAgaWYgKCh4IGFzIGFueSBhcyBPdXRTZW5kZXI8YW55Pikub3V0ID09PSB0aGlzKVxuICAgICAgICByZXR1cm4gdHJ1ZTsgZWxzZVxuICAgICAgICBpZiAoKHggYXMgYW55IGFzIE91dFNlbmRlcjxhbnk+KS5vdXQgJiYgKHggYXMgYW55IGFzIE91dFNlbmRlcjxhbnk+KS5vdXQgIT09IE5PKVxuICAgICAgICAgIHJldHVybiB0aGlzLl9oYXNOb1NpbmtzKCh4IGFzIGFueSBhcyBPdXRTZW5kZXI8YW55Pikub3V0LCB0cmFjZS5jb25jYXQoeCkpOyBlbHNlXG4gICAgICAgICAgaWYgKCh4IGFzIFN0cmVhbTxhbnk+KS5faWxzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMCwgTiA9ICh4IGFzIFN0cmVhbTxhbnk+KS5faWxzLmxlbmd0aDsgaSA8IE47IGkrKylcbiAgICAgICAgICAgICAgaWYgKCF0aGlzLl9oYXNOb1NpbmtzKCh4IGFzIFN0cmVhbTxhbnk+KS5faWxzW2ldLCB0cmFjZS5jb25jYXQoeCkpKVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH0gZWxzZSByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGN0b3IoKTogdHlwZW9mIFN0cmVhbSB7XG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBNZW1vcnlTdHJlYW0gPyBNZW1vcnlTdHJlYW0gOiBTdHJlYW07XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIExpc3RlbmVyIHRvIHRoZSBTdHJlYW0uXG4gICAqXG4gICAqIEBwYXJhbSB7TGlzdGVuZXJ9IGxpc3RlbmVyXG4gICAqL1xuICBhZGRMaXN0ZW5lcihsaXN0ZW5lcjogUGFydGlhbDxMaXN0ZW5lcjxUPj4pOiB2b2lkIHtcbiAgICAobGlzdGVuZXIgYXMgSW50ZXJuYWxMaXN0ZW5lcjxUPikuX24gPSBsaXN0ZW5lci5uZXh0IHx8IG5vb3A7XG4gICAgKGxpc3RlbmVyIGFzIEludGVybmFsTGlzdGVuZXI8VD4pLl9lID0gbGlzdGVuZXIuZXJyb3IgfHwgbm9vcDtcbiAgICAobGlzdGVuZXIgYXMgSW50ZXJuYWxMaXN0ZW5lcjxUPikuX2MgPSBsaXN0ZW5lci5jb21wbGV0ZSB8fCBub29wO1xuICAgIHRoaXMuX2FkZChsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgTGlzdGVuZXIgZnJvbSB0aGUgU3RyZWFtLCBhc3N1bWluZyB0aGUgTGlzdGVuZXIgd2FzIGFkZGVkIHRvIGl0LlxuICAgKlxuICAgKiBAcGFyYW0ge0xpc3RlbmVyPFQ+fSBsaXN0ZW5lclxuICAgKi9cbiAgcmVtb3ZlTGlzdGVuZXIobGlzdGVuZXI6IFBhcnRpYWw8TGlzdGVuZXI8VD4+KTogdm9pZCB7XG4gICAgdGhpcy5fcmVtb3ZlKGxpc3RlbmVyIGFzIEludGVybmFsTGlzdGVuZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBMaXN0ZW5lciB0byB0aGUgU3RyZWFtIHJldHVybmluZyBhIFN1YnNjcmlwdGlvbiB0byByZW1vdmUgdGhhdFxuICAgKiBsaXN0ZW5lci5cbiAgICpcbiAgICogQHBhcmFtIHtMaXN0ZW5lcn0gbGlzdGVuZXJcbiAgICogQHJldHVybnMge1N1YnNjcmlwdGlvbn1cbiAgICovXG4gIHN1YnNjcmliZShsaXN0ZW5lcjogUGFydGlhbDxMaXN0ZW5lcjxUPj4pOiBTdWJzY3JpcHRpb24ge1xuICAgIHRoaXMuYWRkTGlzdGVuZXIobGlzdGVuZXIpO1xuICAgIHJldHVybiBuZXcgU3RyZWFtU3ViPFQ+KHRoaXMsIGxpc3RlbmVyIGFzIEludGVybmFsTGlzdGVuZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBpbnRlcm9wIGJldHdlZW4gbW9zdC5qcyBhbmQgUnhKUyA1XG4gICAqXG4gICAqIEByZXR1cm5zIHtTdHJlYW19XG4gICAqL1xuICBbJCRvYnNlcnZhYmxlXSgpOiBTdHJlYW08VD4ge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgU3RyZWFtIGdpdmVuIGEgUHJvZHVjZXIuXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtQcm9kdWNlcn0gcHJvZHVjZXIgQW4gb3B0aW9uYWwgUHJvZHVjZXIgdGhhdCBkaWN0YXRlcyBob3cgdG9cbiAgICogc3RhcnQsIGdlbmVyYXRlIGV2ZW50cywgYW5kIHN0b3AgdGhlIFN0cmVhbS5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZTxUPihwcm9kdWNlcj86IFByb2R1Y2VyPFQ+KTogU3RyZWFtPFQ+IHtcbiAgICBpZiAocHJvZHVjZXIpIHtcbiAgICAgIGlmICh0eXBlb2YgcHJvZHVjZXIuc3RhcnQgIT09ICdmdW5jdGlvbidcbiAgICAgICAgfHwgdHlwZW9mIHByb2R1Y2VyLnN0b3AgIT09ICdmdW5jdGlvbicpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcigncHJvZHVjZXIgcmVxdWlyZXMgYm90aCBzdGFydCBhbmQgc3RvcCBmdW5jdGlvbnMnKTtcbiAgICAgIGludGVybmFsaXplUHJvZHVjZXIocHJvZHVjZXIpOyAvLyBtdXRhdGVzIHRoZSBpbnB1dFxuICAgIH1cbiAgICByZXR1cm4gbmV3IFN0cmVhbShwcm9kdWNlciBhcyBJbnRlcm5hbFByb2R1Y2VyPFQ+ICYgUHJvZHVjZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgTWVtb3J5U3RyZWFtIGdpdmVuIGEgUHJvZHVjZXIuXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtQcm9kdWNlcn0gcHJvZHVjZXIgQW4gb3B0aW9uYWwgUHJvZHVjZXIgdGhhdCBkaWN0YXRlcyBob3cgdG9cbiAgICogc3RhcnQsIGdlbmVyYXRlIGV2ZW50cywgYW5kIHN0b3AgdGhlIFN0cmVhbS5cbiAgICogQHJldHVybiB7TWVtb3J5U3RyZWFtfVxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZVdpdGhNZW1vcnk8VD4ocHJvZHVjZXI/OiBQcm9kdWNlcjxUPik6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgaWYgKHByb2R1Y2VyKSBpbnRlcm5hbGl6ZVByb2R1Y2VyKHByb2R1Y2VyKTsgLy8gbXV0YXRlcyB0aGUgaW5wdXRcbiAgICByZXR1cm4gbmV3IE1lbW9yeVN0cmVhbTxUPihwcm9kdWNlciBhcyBJbnRlcm5hbFByb2R1Y2VyPFQ+ICYgUHJvZHVjZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBTdHJlYW0gdGhhdCBkb2VzIG5vdGhpbmcgd2hlbiBzdGFydGVkLiBJdCBuZXZlciBlbWl0cyBhbnkgZXZlbnQuXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqICAgICAgICAgIG5ldmVyXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAZmFjdG9yeSB0cnVlXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBuZXZlcjxUID0gYW55PigpOiBTdHJlYW08VD4ge1xuICAgIHJldHVybiBuZXcgU3RyZWFtPFQ+KHsgX3N0YXJ0OiBub29wLCBfc3RvcDogbm9vcCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgU3RyZWFtIHRoYXQgaW1tZWRpYXRlbHkgZW1pdHMgdGhlIFwiY29tcGxldGVcIiBub3RpZmljYXRpb24gd2hlblxuICAgKiBzdGFydGVkLCBhbmQgdGhhdCdzIGl0LlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiBlbXB0eVxuICAgKiAtfFxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgZW1wdHk8VCA9IGFueT4oKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPih7XG4gICAgICBfc3RhcnQoaWw6IEludGVybmFsTGlzdGVuZXI8YW55PikgeyBpbC5fYygpOyB9LFxuICAgICAgX3N0b3A6IG5vb3AsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFN0cmVhbSB0aGF0IGltbWVkaWF0ZWx5IGVtaXRzIGFuIFwiZXJyb3JcIiBub3RpZmljYXRpb24gd2l0aCB0aGVcbiAgICogdmFsdWUgeW91IHBhc3NlZCBhcyB0aGUgYGVycm9yYCBhcmd1bWVudCB3aGVuIHRoZSBzdHJlYW0gc3RhcnRzLCBhbmQgdGhhdCdzXG4gICAqIGl0LlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiB0aHJvdyhYKVxuICAgKiAtWFxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0gZXJyb3IgVGhlIGVycm9yIGV2ZW50IHRvIGVtaXQgb24gdGhlIGNyZWF0ZWQgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgdGhyb3coZXJyb3I6IGFueSk6IFN0cmVhbTxhbnk+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxhbnk+KHtcbiAgICAgIF9zdGFydChpbDogSW50ZXJuYWxMaXN0ZW5lcjxhbnk+KSB7IGlsLl9lKGVycm9yKTsgfSxcbiAgICAgIF9zdG9wOiBub29wLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdHJlYW0gZnJvbSBhbiBBcnJheSwgUHJvbWlzZSwgb3IgYW4gT2JzZXJ2YWJsZS5cbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0ge0FycmF5fFByb21pc2VMaWtlfE9ic2VydmFibGV9IGlucHV0IFRoZSBpbnB1dCB0byBtYWtlIGEgc3RyZWFtIGZyb20uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBmcm9tPFQ+KGlucHV0OiBQcm9taXNlTGlrZTxUPiB8IFN0cmVhbTxUPiB8IEFycmF5PFQ+IHwgT2JzZXJ2YWJsZTxUPik6IFN0cmVhbTxUPiB7XG4gICAgaWYgKHR5cGVvZiBpbnB1dFskJG9ic2VydmFibGVdID09PSAnZnVuY3Rpb24nKVxuICAgICAgcmV0dXJuIFN0cmVhbS5mcm9tT2JzZXJ2YWJsZTxUPihpbnB1dCBhcyBPYnNlcnZhYmxlPFQ+KTsgZWxzZVxuICAgICAgaWYgKHR5cGVvZiAoaW5wdXQgYXMgUHJvbWlzZUxpa2U8VD4pLnRoZW4gPT09ICdmdW5jdGlvbicpXG4gICAgICAgIHJldHVybiBTdHJlYW0uZnJvbVByb21pc2U8VD4oaW5wdXQgYXMgUHJvbWlzZUxpa2U8VD4pOyBlbHNlXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGlucHV0KSlcbiAgICAgICAgICByZXR1cm4gU3RyZWFtLmZyb21BcnJheTxUPihpbnB1dCk7XG5cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBUeXBlIG9mIGlucHV0IHRvIGZyb20oKSBtdXN0IGJlIGFuIEFycmF5LCBQcm9taXNlLCBvciBPYnNlcnZhYmxlYCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFN0cmVhbSB0aGF0IGltbWVkaWF0ZWx5IGVtaXRzIHRoZSBhcmd1bWVudHMgdGhhdCB5b3UgZ2l2ZSB0b1xuICAgKiAqb2YqLCB0aGVuIGNvbXBsZXRlcy5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogb2YoMSwyLDMpXG4gICAqIDEyM3xcbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIGEgVGhlIGZpcnN0IHZhbHVlIHlvdSB3YW50IHRvIGVtaXQgYXMgYW4gZXZlbnQgb24gdGhlIHN0cmVhbS5cbiAgICogQHBhcmFtIGIgVGhlIHNlY29uZCB2YWx1ZSB5b3Ugd2FudCB0byBlbWl0IGFzIGFuIGV2ZW50IG9uIHRoZSBzdHJlYW0uIE9uZVxuICAgKiBvciBtb3JlIG9mIHRoZXNlIHZhbHVlcyBtYXkgYmUgZ2l2ZW4gYXMgYXJndW1lbnRzLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgb2Y8VD4oLi4uaXRlbXM6IEFycmF5PFQ+KTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gU3RyZWFtLmZyb21BcnJheTxUPihpdGVtcyk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYW4gYXJyYXkgdG8gYSBzdHJlYW0uIFRoZSByZXR1cm5lZCBzdHJlYW0gd2lsbCBlbWl0IHN5bmNocm9ub3VzbHlcbiAgICogYWxsIHRoZSBpdGVtcyBpbiB0aGUgYXJyYXksIGFuZCB0aGVuIGNvbXBsZXRlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiBmcm9tQXJyYXkoWzEsMiwzXSlcbiAgICogMTIzfFxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gYmUgY29udmVydGVkIGFzIGEgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgZnJvbUFycmF5PFQ+KGFycmF5OiBBcnJheTxUPik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08VD4obmV3IEZyb21BcnJheTxUPihhcnJheSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgcHJvbWlzZSB0byBhIHN0cmVhbS4gVGhlIHJldHVybmVkIHN0cmVhbSB3aWxsIGVtaXQgdGhlIHJlc29sdmVkXG4gICAqIHZhbHVlIG9mIHRoZSBwcm9taXNlLCBhbmQgdGhlbiBjb21wbGV0ZS4gSG93ZXZlciwgaWYgdGhlIHByb21pc2UgaXNcbiAgICogcmVqZWN0ZWQsIHRoZSBzdHJlYW0gd2lsbCBlbWl0IHRoZSBjb3JyZXNwb25kaW5nIGVycm9yLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiBmcm9tUHJvbWlzZSggLS0tLTQyIClcbiAgICogLS0tLS0tLS0tLS0tLS0tLS00MnxcbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtQcm9taXNlTGlrZX0gcHJvbWlzZSBUaGUgcHJvbWlzZSB0byBiZSBjb252ZXJ0ZWQgYXMgYSBzdHJlYW0uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBmcm9tUHJvbWlzZTxUPihwcm9taXNlOiBQcm9taXNlTGlrZTxUPik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08VD4obmV3IEZyb21Qcm9taXNlPFQ+KHByb21pc2UpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhbiBPYnNlcnZhYmxlIGludG8gYSBTdHJlYW0uXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHthbnl9IG9ic2VydmFibGUgVGhlIG9ic2VydmFibGUgdG8gYmUgY29udmVydGVkIGFzIGEgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgZnJvbU9ic2VydmFibGU8VD4ob2JzOiB7IHN1YnNjcmliZTogYW55IH0pOiBTdHJlYW08VD4ge1xuICAgIGlmICgob2JzIGFzIFN0cmVhbTxUPikuZW5kV2hlbiAhPT0gdW5kZWZpbmVkKSByZXR1cm4gb2JzIGFzIFN0cmVhbTxUPjtcbiAgICBjb25zdCBvID0gdHlwZW9mIG9ic1skJG9ic2VydmFibGVdID09PSAnZnVuY3Rpb24nID8gb2JzWyQkb2JzZXJ2YWJsZV0oKSA6IG9icztcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPihuZXcgRnJvbU9ic2VydmFibGUobykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdHJlYW0gdGhhdCBwZXJpb2RpY2FsbHkgZW1pdHMgaW5jcmVtZW50YWwgbnVtYmVycywgZXZlcnlcbiAgICogYHBlcmlvZGAgbWlsbGlzZWNvbmRzLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAgICAgcGVyaW9kaWMoMTAwMClcbiAgICogLS0tMC0tLTEtLS0yLS0tMy0tLTQtLS0uLi5cbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtudW1iZXJ9IHBlcmlvZCBUaGUgaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzIHRvIHVzZSBhcyBhIHJhdGUgb2ZcbiAgICogZW1pc3Npb24uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBwZXJpb2RpYyhwZXJpb2Q6IG51bWJlcik6IFN0cmVhbTxudW1iZXI+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxudW1iZXI+KG5ldyBQZXJpb2RpYyhwZXJpb2QpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCbGVuZHMgbXVsdGlwbGUgc3RyZWFtcyB0b2dldGhlciwgZW1pdHRpbmcgZXZlbnRzIGZyb20gYWxsIG9mIHRoZW1cbiAgICogY29uY3VycmVudGx5LlxuICAgKlxuICAgKiAqbWVyZ2UqIHRha2VzIG11bHRpcGxlIHN0cmVhbXMgYXMgYXJndW1lbnRzLCBhbmQgY3JlYXRlcyBhIHN0cmVhbSB0aGF0XG4gICAqIGJlaGF2ZXMgbGlrZSBlYWNoIG9mIHRoZSBhcmd1bWVudCBzdHJlYW1zLCBpbiBwYXJhbGxlbC5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tLTItLS0tLTMtLS0tLS0tLTQtLS1cbiAgICogLS0tLWEtLS0tLWItLS0tYy0tLWQtLS0tLS1cbiAgICogICAgICAgICAgICBtZXJnZVxuICAgKiAtLTEtYS0tMi0tYi0tMy1jLS0tZC0tNC0tLVxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0ge1N0cmVhbX0gc3RyZWFtMSBBIHN0cmVhbSB0byBtZXJnZSB0b2dldGhlciB3aXRoIG90aGVyIHN0cmVhbXMuXG4gICAqIEBwYXJhbSB7U3RyZWFtfSBzdHJlYW0yIEEgc3RyZWFtIHRvIG1lcmdlIHRvZ2V0aGVyIHdpdGggb3RoZXIgc3RyZWFtcy4gVHdvXG4gICAqIG9yIG1vcmUgc3RyZWFtcyBtYXkgYmUgZ2l2ZW4gYXMgYXJndW1lbnRzLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgbWVyZ2U6IE1lcmdlU2lnbmF0dXJlID0gZnVuY3Rpb24gbWVyZ2UoLi4uc3RyZWFtczogQXJyYXk8U3RyZWFtPGFueT4+KSB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08YW55PihuZXcgTWVyZ2Uoc3RyZWFtcykpO1xuICB9IGFzIE1lcmdlU2lnbmF0dXJlO1xuXG4gIC8qKlxuICAgKiBDb21iaW5lcyBtdWx0aXBsZSBpbnB1dCBzdHJlYW1zIHRvZ2V0aGVyIHRvIHJldHVybiBhIHN0cmVhbSB3aG9zZSBldmVudHNcbiAgICogYXJlIGFycmF5cyB0aGF0IGNvbGxlY3QgdGhlIGxhdGVzdCBldmVudHMgZnJvbSBlYWNoIGlucHV0IHN0cmVhbS5cbiAgICpcbiAgICogKmNvbWJpbmUqIGludGVybmFsbHkgcmVtZW1iZXJzIHRoZSBtb3N0IHJlY2VudCBldmVudCBmcm9tIGVhY2ggb2YgdGhlIGlucHV0XG4gICAqIHN0cmVhbXMuIFdoZW4gYW55IG9mIHRoZSBpbnB1dCBzdHJlYW1zIGVtaXRzIGFuIGV2ZW50LCB0aGF0IGV2ZW50IHRvZ2V0aGVyXG4gICAqIHdpdGggYWxsIHRoZSBvdGhlciBzYXZlZCBldmVudHMgYXJlIGNvbWJpbmVkIGludG8gYW4gYXJyYXkuIFRoYXQgYXJyYXkgd2lsbFxuICAgKiBiZSBlbWl0dGVkIG9uIHRoZSBvdXRwdXQgc3RyZWFtLiBJdCdzIGVzc2VudGlhbGx5IGEgd2F5IG9mIGpvaW5pbmcgdG9nZXRoZXJcbiAgICogdGhlIGV2ZW50cyBmcm9tIG11bHRpcGxlIHN0cmVhbXMuXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tMS0tLS0yLS0tLS0zLS0tLS0tLS00LS0tXG4gICAqIC0tLS1hLS0tLS1iLS0tLS1jLS1kLS0tLS0tXG4gICAqICAgICAgICAgIGNvbWJpbmVcbiAgICogLS0tLTFhLTJhLTJiLTNiLTNjLTNkLTRkLS1cbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtTdHJlYW19IHN0cmVhbTEgQSBzdHJlYW0gdG8gY29tYmluZSB0b2dldGhlciB3aXRoIG90aGVyIHN0cmVhbXMuXG4gICAqIEBwYXJhbSB7U3RyZWFtfSBzdHJlYW0yIEEgc3RyZWFtIHRvIGNvbWJpbmUgdG9nZXRoZXIgd2l0aCBvdGhlciBzdHJlYW1zLlxuICAgKiBNdWx0aXBsZSBzdHJlYW1zLCBub3QganVzdCB0d28sIG1heSBiZSBnaXZlbiBhcyBhcmd1bWVudHMuXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBjb21iaW5lOiBDb21iaW5lU2lnbmF0dXJlID0gZnVuY3Rpb24gY29tYmluZSguLi5zdHJlYW1zOiBBcnJheTxTdHJlYW08YW55Pj4pIHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxBcnJheTxhbnk+PihuZXcgQ29tYmluZTxhbnk+KHN0cmVhbXMpKTtcbiAgfSBhcyBDb21iaW5lU2lnbmF0dXJlO1xuXG4gIHByb3RlY3RlZCBfbWFwPFU+KHByb2plY3Q6ICh0OiBUKSA9PiBVKTogU3RyZWFtPFU+IHwgTWVtb3J5U3RyZWFtPFU+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VT4obmV3IE1hcE9wPFQsIFU+KHByb2plY3QsIHRoaXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm1zIGVhY2ggZXZlbnQgZnJvbSB0aGUgaW5wdXQgU3RyZWFtIHRocm91Z2ggYSBgcHJvamVjdGAgZnVuY3Rpb24sXG4gICAqIHRvIGdldCBhIFN0cmVhbSB0aGF0IGVtaXRzIHRob3NlIHRyYW5zZm9ybWVkIGV2ZW50cy5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tMy0tNS0tLS0tNy0tLS0tLVxuICAgKiAgICBtYXAoaSA9PiBpICogMTApXG4gICAqIC0tMTAtLTMwLTUwLS0tLTcwLS0tLS1cbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IHByb2plY3QgQSBmdW5jdGlvbiBvZiB0eXBlIGAodDogVCkgPT4gVWAgdGhhdCB0YWtlcyBldmVudFxuICAgKiBgdGAgb2YgdHlwZSBgVGAgZnJvbSB0aGUgaW5wdXQgU3RyZWFtIGFuZCBwcm9kdWNlcyBhbiBldmVudCBvZiB0eXBlIGBVYCwgdG9cbiAgICogYmUgZW1pdHRlZCBvbiB0aGUgb3V0cHV0IFN0cmVhbS5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgbWFwPFU+KHByb2plY3Q6ICh0OiBUKSA9PiBVKTogU3RyZWFtPFU+IHtcbiAgICByZXR1cm4gdGhpcy5fbWFwKHByb2plY3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0J3MgbGlrZSBgbWFwYCwgYnV0IHRyYW5zZm9ybXMgZWFjaCBpbnB1dCBldmVudCB0byBhbHdheXMgdGhlIHNhbWVcbiAgICogY29uc3RhbnQgdmFsdWUgb24gdGhlIG91dHB1dCBTdHJlYW0uXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tMS0tLTMtLTUtLS0tLTctLS0tLVxuICAgKiAgICAgICBtYXBUbygxMClcbiAgICogLS0xMC0tMTAtMTAtLS0tMTAtLS0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0gcHJvamVjdGVkVmFsdWUgQSB2YWx1ZSB0byBlbWl0IG9uIHRoZSBvdXRwdXQgU3RyZWFtIHdoZW5ldmVyIHRoZVxuICAgKiBpbnB1dCBTdHJlYW0gZW1pdHMgYW55IHZhbHVlLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBtYXBUbzxVPihwcm9qZWN0ZWRWYWx1ZTogVSk6IFN0cmVhbTxVPiB7XG4gICAgY29uc3QgcyA9IHRoaXMubWFwKCgpID0+IHByb2plY3RlZFZhbHVlKTtcbiAgICBjb25zdCBvcDogT3BlcmF0b3I8VCwgVT4gPSBzLl9wcm9kIGFzIE9wZXJhdG9yPFQsIFU+O1xuICAgIG9wLnR5cGUgPSAnbWFwVG8nO1xuICAgIHJldHVybiBzO1xuICB9XG5cbiAgZmlsdGVyPFMgZXh0ZW5kcyBUPihwYXNzZXM6ICh0OiBUKSA9PiB0IGlzIFMpOiBTdHJlYW08Uz47XG4gIGZpbHRlcihwYXNzZXM6ICh0OiBUKSA9PiBib29sZWFuKTogU3RyZWFtPFQ+O1xuICAvKipcbiAgICogT25seSBhbGxvd3MgZXZlbnRzIHRoYXQgcGFzcyB0aGUgdGVzdCBnaXZlbiBieSB0aGUgYHBhc3Nlc2AgYXJndW1lbnQuXG4gICAqXG4gICAqIEVhY2ggZXZlbnQgZnJvbSB0aGUgaW5wdXQgc3RyZWFtIGlzIGdpdmVuIHRvIHRoZSBgcGFzc2VzYCBmdW5jdGlvbi4gSWYgdGhlXG4gICAqIGZ1bmN0aW9uIHJldHVybnMgYHRydWVgLCB0aGUgZXZlbnQgaXMgZm9yd2FyZGVkIHRvIHRoZSBvdXRwdXQgc3RyZWFtLFxuICAgKiBvdGhlcndpc2UgaXQgaXMgaWdub3JlZCBhbmQgbm90IGZvcndhcmRlZC5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tMi0tMy0tLS0tNC0tLS0tNS0tLTYtLTctOC0tXG4gICAqICAgICBmaWx0ZXIoaSA9PiBpICUgMiA9PT0gMClcbiAgICogLS0tLS0tMi0tLS0tLS0tNC0tLS0tLS0tLTYtLS0tOC0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwYXNzZXMgQSBmdW5jdGlvbiBvZiB0eXBlIGAodDogVCkgPT4gYm9vbGVhbmAgdGhhdCB0YWtlc1xuICAgKiBhbiBldmVudCBmcm9tIHRoZSBpbnB1dCBzdHJlYW0gYW5kIGNoZWNrcyBpZiBpdCBwYXNzZXMsIGJ5IHJldHVybmluZyBhXG4gICAqIGJvb2xlYW4uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIGZpbHRlcihwYXNzZXM6ICh0OiBUKSA9PiBib29sZWFuKTogU3RyZWFtPFQ+IHtcbiAgICBjb25zdCBwID0gdGhpcy5fcHJvZDtcbiAgICBpZiAocCBpbnN0YW5jZW9mIEZpbHRlcilcbiAgICAgIHJldHVybiBuZXcgU3RyZWFtPFQ+KG5ldyBGaWx0ZXI8VD4oXG4gICAgICAgIGFuZCgocCBhcyBGaWx0ZXI8VD4pLmYsIHBhc3NlcyksXG4gICAgICAgIChwIGFzIEZpbHRlcjxUPikuaW5zXG4gICAgICApKTtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPihuZXcgRmlsdGVyPFQ+KHBhc3NlcywgdGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIExldHMgdGhlIGZpcnN0IGBhbW91bnRgIG1hbnkgZXZlbnRzIGZyb20gdGhlIGlucHV0IHN0cmVhbSBwYXNzIHRvIHRoZVxuICAgKiBvdXRwdXQgc3RyZWFtLCB0aGVuIG1ha2VzIHRoZSBvdXRwdXQgc3RyZWFtIGNvbXBsZXRlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLWEtLS1iLS1jLS0tLWQtLS1lLS1cbiAgICogICAgdGFrZSgzKVxuICAgKiAtLWEtLS1iLS1jfFxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGFtb3VudCBIb3cgbWFueSBldmVudHMgdG8gYWxsb3cgZnJvbSB0aGUgaW5wdXQgc3RyZWFtXG4gICAqIGJlZm9yZSBjb21wbGV0aW5nIHRoZSBvdXRwdXQgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICB0YWtlKGFtb3VudDogbnVtYmVyKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VD4obmV3IFRha2U8VD4oYW1vdW50LCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogSWdub3JlcyB0aGUgZmlyc3QgYGFtb3VudGAgbWFueSBldmVudHMgZnJvbSB0aGUgaW5wdXQgc3RyZWFtLCBhbmQgdGhlblxuICAgKiBhZnRlciB0aGF0IHN0YXJ0cyBmb3J3YXJkaW5nIGV2ZW50cyBmcm9tIHRoZSBpbnB1dCBzdHJlYW0gdG8gdGhlIG91dHB1dFxuICAgKiBzdHJlYW0uXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tYS0tLWItLWMtLS0tZC0tLWUtLVxuICAgKiAgICAgICBkcm9wKDMpXG4gICAqIC0tLS0tLS0tLS0tLS0tZC0tLWUtLVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGFtb3VudCBIb3cgbWFueSBldmVudHMgdG8gaWdub3JlIGZyb20gdGhlIGlucHV0IHN0cmVhbVxuICAgKiBiZWZvcmUgZm9yd2FyZGluZyBhbGwgZXZlbnRzIGZyb20gdGhlIGlucHV0IHN0cmVhbSB0byB0aGUgb3V0cHV0IHN0cmVhbS5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgZHJvcChhbW91bnQ6IG51bWJlcik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08VD4obmV3IERyb3A8VD4oYW1vdW50LCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiB0aGUgaW5wdXQgc3RyZWFtIGNvbXBsZXRlcywgdGhlIG91dHB1dCBzdHJlYW0gd2lsbCBlbWl0IHRoZSBsYXN0IGV2ZW50XG4gICAqIGVtaXR0ZWQgYnkgdGhlIGlucHV0IHN0cmVhbSwgYW5kIHRoZW4gd2lsbCBhbHNvIGNvbXBsZXRlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLWEtLS1iLS1jLS1kLS0tLXxcbiAgICogICAgICAgbGFzdCgpXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tZHxcbiAgICogYGBgXG4gICAqXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIGxhc3QoKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPihuZXcgTGFzdDxUPih0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogUHJlcGVuZHMgdGhlIGdpdmVuIGBpbml0aWFsYCB2YWx1ZSB0byB0aGUgc2VxdWVuY2Ugb2YgZXZlbnRzIGVtaXR0ZWQgYnkgdGhlXG4gICAqIGlucHV0IHN0cmVhbS4gVGhlIHJldHVybmVkIHN0cmVhbSBpcyBhIE1lbW9yeVN0cmVhbSwgd2hpY2ggbWVhbnMgaXQgaXNcbiAgICogYWxyZWFkeSBgcmVtZW1iZXIoKWAnZC5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0tMS0tLTItLS0tLTMtLS1cbiAgICogICBzdGFydFdpdGgoMClcbiAgICogMC0tMS0tLTItLS0tLTMtLS1cbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSBpbml0aWFsIFRoZSB2YWx1ZSBvciBldmVudCB0byBwcmVwZW5kLlxuICAgKiBAcmV0dXJuIHtNZW1vcnlTdHJlYW19XG4gICAqL1xuICBzdGFydFdpdGgoaW5pdGlhbDogVCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBNZW1vcnlTdHJlYW08VD4obmV3IFN0YXJ0V2l0aDxUPih0aGlzLCBpbml0aWFsKSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlcyBhbm90aGVyIHN0cmVhbSB0byBkZXRlcm1pbmUgd2hlbiB0byBjb21wbGV0ZSB0aGUgY3VycmVudCBzdHJlYW0uXG4gICAqXG4gICAqIFdoZW4gdGhlIGdpdmVuIGBvdGhlcmAgc3RyZWFtIGVtaXRzIGFuIGV2ZW50IG9yIGNvbXBsZXRlcywgdGhlIG91dHB1dFxuICAgKiBzdHJlYW0gd2lsbCBjb21wbGV0ZS4gQmVmb3JlIHRoYXQgaGFwcGVucywgdGhlIG91dHB1dCBzdHJlYW0gd2lsbCBiZWhhdmVzXG4gICAqIGxpa2UgdGhlIGlucHV0IHN0cmVhbS5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0tMS0tLTItLS0tLTMtLTQtLS0tNS0tLS02LS0tXG4gICAqICAgZW5kV2hlbiggLS0tLS0tLS1hLS1iLS18IClcbiAgICogLS0tMS0tLTItLS0tLTMtLTQtLXxcbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciBTb21lIG90aGVyIHN0cmVhbSB0aGF0IGlzIHVzZWQgdG8ga25vdyB3aGVuIHNob3VsZCB0aGUgb3V0cHV0XG4gICAqIHN0cmVhbSBvZiB0aGlzIG9wZXJhdG9yIGNvbXBsZXRlLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBlbmRXaGVuKG90aGVyOiBTdHJlYW08YW55Pik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyAodGhpcy5jdG9yKCkpPFQ+KG5ldyBFbmRXaGVuPFQ+KG90aGVyLCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogXCJGb2xkc1wiIHRoZSBzdHJlYW0gb250byBpdHNlbGYuXG4gICAqXG4gICAqIENvbWJpbmVzIGV2ZW50cyBmcm9tIHRoZSBwYXN0IHRocm91Z2hvdXRcbiAgICogdGhlIGVudGlyZSBleGVjdXRpb24gb2YgdGhlIGlucHV0IHN0cmVhbSwgYWxsb3dpbmcgeW91IHRvIGFjY3VtdWxhdGUgdGhlbVxuICAgKiB0b2dldGhlci4gSXQncyBlc3NlbnRpYWxseSBsaWtlIGBBcnJheS5wcm90b3R5cGUucmVkdWNlYC4gVGhlIHJldHVybmVkXG4gICAqIHN0cmVhbSBpcyBhIE1lbW9yeVN0cmVhbSwgd2hpY2ggbWVhbnMgaXQgaXMgYWxyZWFkeSBgcmVtZW1iZXIoKWAnZC5cbiAgICpcbiAgICogVGhlIG91dHB1dCBzdHJlYW0gc3RhcnRzIGJ5IGVtaXR0aW5nIHRoZSBgc2VlZGAgd2hpY2ggeW91IGdpdmUgYXMgYXJndW1lbnQuXG4gICAqIFRoZW4sIHdoZW4gYW4gZXZlbnQgaGFwcGVucyBvbiB0aGUgaW5wdXQgc3RyZWFtLCBpdCBpcyBjb21iaW5lZCB3aXRoIHRoYXRcbiAgICogc2VlZCB2YWx1ZSB0aHJvdWdoIHRoZSBgYWNjdW11bGF0ZWAgZnVuY3Rpb24sIGFuZCB0aGUgb3V0cHV0IHZhbHVlIGlzXG4gICAqIGVtaXR0ZWQgb24gdGhlIG91dHB1dCBzdHJlYW0uIGBmb2xkYCByZW1lbWJlcnMgdGhhdCBvdXRwdXQgdmFsdWUgYXMgYGFjY2BcbiAgICogKFwiYWNjdW11bGF0b3JcIiksIGFuZCB0aGVuIHdoZW4gYSBuZXcgaW5wdXQgZXZlbnQgYHRgIGhhcHBlbnMsIGBhY2NgIHdpbGwgYmVcbiAgICogY29tYmluZWQgd2l0aCB0aGF0IHRvIHByb2R1Y2UgdGhlIG5ldyBgYWNjYCBhbmQgc28gZm9ydGguXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tLS0tLTEtLS0tLTEtLTItLS0tMS0tLS0xLS0tLS0tXG4gICAqICAgZm9sZCgoYWNjLCB4KSA9PiBhY2MgKyB4LCAzKVxuICAgKiAzLS0tLS00LS0tLS01LS03LS0tLTgtLS0tOS0tLS0tLVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gYWNjdW11bGF0ZSBBIGZ1bmN0aW9uIG9mIHR5cGUgYChhY2M6IFIsIHQ6IFQpID0+IFJgIHRoYXRcbiAgICogdGFrZXMgdGhlIHByZXZpb3VzIGFjY3VtdWxhdGVkIHZhbHVlIGBhY2NgIGFuZCB0aGUgaW5jb21pbmcgZXZlbnQgZnJvbSB0aGVcbiAgICogaW5wdXQgc3RyZWFtIGFuZCBwcm9kdWNlcyB0aGUgbmV3IGFjY3VtdWxhdGVkIHZhbHVlLlxuICAgKiBAcGFyYW0gc2VlZCBUaGUgaW5pdGlhbCBhY2N1bXVsYXRlZCB2YWx1ZSwgb2YgdHlwZSBgUmAuXG4gICAqIEByZXR1cm4ge01lbW9yeVN0cmVhbX1cbiAgICovXG4gIGZvbGQ8Uj4oYWNjdW11bGF0ZTogKGFjYzogUiwgdDogVCkgPT4gUiwgc2VlZDogUik6IE1lbW9yeVN0cmVhbTxSPiB7XG4gICAgcmV0dXJuIG5ldyBNZW1vcnlTdHJlYW08Uj4obmV3IEZvbGQ8VCwgUj4oYWNjdW11bGF0ZSwgc2VlZCwgdGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFuIGVycm9yIHdpdGggYW5vdGhlciBzdHJlYW0uXG4gICAqXG4gICAqIFdoZW4gKGFuZCBpZikgYW4gZXJyb3IgaGFwcGVucyBvbiB0aGUgaW5wdXQgc3RyZWFtLCBpbnN0ZWFkIG9mIGZvcndhcmRpbmdcbiAgICogdGhhdCBlcnJvciB0byB0aGUgb3V0cHV0IHN0cmVhbSwgKnJlcGxhY2VFcnJvciogd2lsbCBjYWxsIHRoZSBgcmVwbGFjZWBcbiAgICogZnVuY3Rpb24gd2hpY2ggcmV0dXJucyB0aGUgc3RyZWFtIHRoYXQgdGhlIG91dHB1dCBzdHJlYW0gd2lsbCByZXBsaWNhdGUuXG4gICAqIEFuZCwgaW4gY2FzZSB0aGF0IG5ldyBzdHJlYW0gYWxzbyBlbWl0cyBhbiBlcnJvciwgYHJlcGxhY2VgIHdpbGwgYmUgY2FsbGVkXG4gICAqIGFnYWluIHRvIGdldCBhbm90aGVyIHN0cmVhbSB0byBzdGFydCByZXBsaWNhdGluZy5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tMi0tLS0tMy0tNC0tLS0tWFxuICAgKiAgIHJlcGxhY2VFcnJvciggKCkgPT4gLS0xMC0tfCApXG4gICAqIC0tMS0tLTItLS0tLTMtLTQtLS0tLS0tLTEwLS18XG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSByZXBsYWNlIEEgZnVuY3Rpb24gb2YgdHlwZSBgKGVycikgPT4gU3RyZWFtYCB0aGF0IHRha2VzXG4gICAqIHRoZSBlcnJvciB0aGF0IG9jY3VycmVkIG9uIHRoZSBpbnB1dCBzdHJlYW0gb3Igb24gdGhlIHByZXZpb3VzIHJlcGxhY2VtZW50XG4gICAqIHN0cmVhbSBhbmQgcmV0dXJucyBhIG5ldyBzdHJlYW0uIFRoZSBvdXRwdXQgc3RyZWFtIHdpbGwgYmVoYXZlIGxpa2UgdGhlXG4gICAqIHN0cmVhbSB0aGF0IHRoaXMgZnVuY3Rpb24gcmV0dXJucy5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgcmVwbGFjZUVycm9yKHJlcGxhY2U6IChlcnI6IGFueSkgPT4gU3RyZWFtPFQ+KTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VD4obmV3IFJlcGxhY2VFcnJvcjxUPihyZXBsYWNlLCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogRmxhdHRlbnMgYSBcInN0cmVhbSBvZiBzdHJlYW1zXCIsIGhhbmRsaW5nIG9ubHkgb25lIG5lc3RlZCBzdHJlYW0gYXQgYSB0aW1lXG4gICAqIChubyBjb25jdXJyZW5jeSkuXG4gICAqXG4gICAqIElmIHRoZSBpbnB1dCBzdHJlYW0gaXMgYSBzdHJlYW0gdGhhdCBlbWl0cyBzdHJlYW1zLCB0aGVuIHRoaXMgb3BlcmF0b3Igd2lsbFxuICAgKiByZXR1cm4gYW4gb3V0cHV0IHN0cmVhbSB3aGljaCBpcyBhIGZsYXQgc3RyZWFtOiBlbWl0cyByZWd1bGFyIGV2ZW50cy4gVGhlXG4gICAqIGZsYXR0ZW5pbmcgaGFwcGVucyB3aXRob3V0IGNvbmN1cnJlbmN5LiBJdCB3b3JrcyBsaWtlIHRoaXM6IHdoZW4gdGhlIGlucHV0XG4gICAqIHN0cmVhbSBlbWl0cyBhIG5lc3RlZCBzdHJlYW0sICpmbGF0dGVuKiB3aWxsIHN0YXJ0IGltaXRhdGluZyB0aGF0IG5lc3RlZFxuICAgKiBvbmUuIEhvd2V2ZXIsIGFzIHNvb24gYXMgdGhlIG5leHQgbmVzdGVkIHN0cmVhbSBpcyBlbWl0dGVkIG9uIHRoZSBpbnB1dFxuICAgKiBzdHJlYW0sICpmbGF0dGVuKiB3aWxsIGZvcmdldCB0aGUgcHJldmlvdXMgbmVzdGVkIG9uZSBpdCB3YXMgaW1pdGF0aW5nLCBhbmRcbiAgICogd2lsbCBzdGFydCBpbWl0YXRpbmcgdGhlIG5ldyBuZXN0ZWQgb25lLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS1cbiAgICogICBcXCAgICAgICAgXFxcbiAgICogICAgXFwgICAgICAgLS0tLTEtLS0tMi0tLTMtLVxuICAgKiAgICAtLWEtLWItLS0tYy0tLS1kLS0tLS0tLS1cbiAgICogICAgICAgICAgIGZsYXR0ZW5cbiAgICogLS0tLS1hLS1iLS0tLS0tMS0tLS0yLS0tMy0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBmbGF0dGVuPFI+KHRoaXM6IFN0cmVhbTxTdHJlYW08Uj4gfCBNZW1vcnlTdHJlYW08Uj4+KTogU3RyZWFtPFI+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxSPihuZXcgRmxhdHRlbih0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogUGFzc2VzIHRoZSBpbnB1dCBzdHJlYW0gdG8gYSBjdXN0b20gb3BlcmF0b3IsIHRvIHByb2R1Y2UgYW4gb3V0cHV0IHN0cmVhbS5cbiAgICpcbiAgICogKmNvbXBvc2UqIGlzIGEgaGFuZHkgd2F5IG9mIHVzaW5nIGFuIGV4aXN0aW5nIGZ1bmN0aW9uIGluIGEgY2hhaW5lZCBzdHlsZS5cbiAgICogSW5zdGVhZCBvZiB3cml0aW5nIGBvdXRTdHJlYW0gPSBmKGluU3RyZWFtKWAgeW91IGNhbiB3cml0ZVxuICAgKiBgb3V0U3RyZWFtID0gaW5TdHJlYW0uY29tcG9zZShmKWAuXG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IG9wZXJhdG9yIEEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIHN0cmVhbSBhcyBpbnB1dCBhbmRcbiAgICogcmV0dXJucyBhIHN0cmVhbSBhcyB3ZWxsLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBjb21wb3NlPFU+KG9wZXJhdG9yOiAoc3RyZWFtOiBTdHJlYW08VD4pID0+IFUpOiBVIHtcbiAgICByZXR1cm4gb3BlcmF0b3IodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvdXRwdXQgc3RyZWFtIHRoYXQgYmVoYXZlcyBsaWtlIHRoZSBpbnB1dCBzdHJlYW0sIGJ1dCBhbHNvXG4gICAqIHJlbWVtYmVycyB0aGUgbW9zdCByZWNlbnQgZXZlbnQgdGhhdCBoYXBwZW5zIG9uIHRoZSBpbnB1dCBzdHJlYW0sIHNvIHRoYXQgYVxuICAgKiBuZXdseSBhZGRlZCBsaXN0ZW5lciB3aWxsIGltbWVkaWF0ZWx5IHJlY2VpdmUgdGhhdCBtZW1vcmlzZWQgZXZlbnQuXG4gICAqXG4gICAqIEByZXR1cm4ge01lbW9yeVN0cmVhbX1cbiAgICovXG4gIHJlbWVtYmVyKCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBNZW1vcnlTdHJlYW08VD4obmV3IFJlbWVtYmVyPFQ+KHRoaXMpKTtcbiAgfVxuXG4gIGRlYnVnKCk6IFN0cmVhbTxUPjtcbiAgZGVidWcobGFiZWxPclNweTogc3RyaW5nKTogU3RyZWFtPFQ+O1xuICBkZWJ1ZyhsYWJlbE9yU3B5OiAodDogVCkgPT4gYW55KTogU3RyZWFtPFQ+O1xuICAvKipcbiAgICogUmV0dXJucyBhbiBvdXRwdXQgc3RyZWFtIHRoYXQgaWRlbnRpY2FsbHkgYmVoYXZlcyBsaWtlIHRoZSBpbnB1dCBzdHJlYW0sXG4gICAqIGJ1dCBhbHNvIHJ1bnMgYSBgc3B5YCBmdW5jdGlvbiBmb3IgZWFjaCBldmVudCwgdG8gaGVscCB5b3UgZGVidWcgeW91ciBhcHAuXG4gICAqXG4gICAqICpkZWJ1ZyogdGFrZXMgYSBgc3B5YCBmdW5jdGlvbiBhcyBhcmd1bWVudCwgYW5kIHJ1bnMgdGhhdCBmb3IgZWFjaCBldmVudFxuICAgKiBoYXBwZW5pbmcgb24gdGhlIGlucHV0IHN0cmVhbS4gSWYgeW91IGRvbid0IHByb3ZpZGUgdGhlIGBzcHlgIGFyZ3VtZW50LFxuICAgKiB0aGVuICpkZWJ1Zyogd2lsbCBqdXN0IGBjb25zb2xlLmxvZ2AgZWFjaCBldmVudC4gVGhpcyBoZWxwcyB5b3UgdG9cbiAgICogdW5kZXJzdGFuZCB0aGUgZmxvdyBvZiBldmVudHMgdGhyb3VnaCBzb21lIG9wZXJhdG9yIGNoYWluLlxuICAgKlxuICAgKiBQbGVhc2Ugbm90ZSB0aGF0IGlmIHRoZSBvdXRwdXQgc3RyZWFtIGhhcyBubyBsaXN0ZW5lcnMsIHRoZW4gaXQgd2lsbCBub3RcbiAgICogc3RhcnQsIHdoaWNoIG1lYW5zIGBzcHlgIHdpbGwgbmV2ZXIgcnVuIGJlY2F1c2Ugbm8gYWN0dWFsIGV2ZW50IGhhcHBlbnMgaW5cbiAgICogdGhhdCBjYXNlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLTEtLS0tMi0tLS0tMy0tLS0tNC0tXG4gICAqICAgICAgICAgZGVidWdcbiAgICogLS0xLS0tLTItLS0tLTMtLS0tLTQtLVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gbGFiZWxPclNweSBBIHN0cmluZyB0byB1c2UgYXMgdGhlIGxhYmVsIHdoZW4gcHJpbnRpbmdcbiAgICogZGVidWcgaW5mb3JtYXRpb24gb24gdGhlIGNvbnNvbGUsIG9yIGEgJ3NweScgZnVuY3Rpb24gdGhhdCB0YWtlcyBhbiBldmVudFxuICAgKiBhcyBhcmd1bWVudCwgYW5kIGRvZXMgbm90IG5lZWQgdG8gcmV0dXJuIGFueXRoaW5nLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBkZWJ1ZyhsYWJlbE9yU3B5Pzogc3RyaW5nIHwgKCh0OiBUKSA9PiBhbnkpKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VD4obmV3IERlYnVnPFQ+KHRoaXMsIGxhYmVsT3JTcHkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAqaW1pdGF0ZSogY2hhbmdlcyB0aGlzIGN1cnJlbnQgU3RyZWFtIHRvIGVtaXQgdGhlIHNhbWUgZXZlbnRzIHRoYXQgdGhlXG4gICAqIGBvdGhlcmAgZ2l2ZW4gU3RyZWFtIGRvZXMuIFRoaXMgbWV0aG9kIHJldHVybnMgbm90aGluZy5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgZXhpc3RzIHRvIGFsbG93IG9uZSB0aGluZzogKipjaXJjdWxhciBkZXBlbmRlbmN5IG9mIHN0cmVhbXMqKi5cbiAgICogRm9yIGluc3RhbmNlLCBsZXQncyBpbWFnaW5lIHRoYXQgZm9yIHNvbWUgcmVhc29uIHlvdSBuZWVkIHRvIGNyZWF0ZSBhXG4gICAqIGNpcmN1bGFyIGRlcGVuZGVuY3kgd2hlcmUgc3RyZWFtIGBmaXJzdCRgIGRlcGVuZHMgb24gc3RyZWFtIGBzZWNvbmQkYFxuICAgKiB3aGljaCBpbiB0dXJuIGRlcGVuZHMgb24gYGZpcnN0JGA6XG4gICAqXG4gICAqIDwhLS0gc2tpcC1leGFtcGxlIC0tPlxuICAgKiBgYGBqc1xuICAgKiBpbXBvcnQgZGVsYXkgZnJvbSAneHN0cmVhbS9leHRyYS9kZWxheSdcbiAgICpcbiAgICogdmFyIGZpcnN0JCA9IHNlY29uZCQubWFwKHggPT4geCAqIDEwKS50YWtlKDMpO1xuICAgKiB2YXIgc2Vjb25kJCA9IGZpcnN0JC5tYXAoeCA9PiB4ICsgMSkuc3RhcnRXaXRoKDEpLmNvbXBvc2UoZGVsYXkoMTAwKSk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBIb3dldmVyLCB0aGF0IGlzIGludmFsaWQgSmF2YVNjcmlwdCwgYmVjYXVzZSBgc2Vjb25kJGAgaXMgdW5kZWZpbmVkXG4gICAqIG9uIHRoZSBmaXJzdCBsaW5lLiBUaGlzIGlzIGhvdyAqaW1pdGF0ZSogY2FuIGhlbHAgc29sdmUgaXQ6XG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGltcG9ydCBkZWxheSBmcm9tICd4c3RyZWFtL2V4dHJhL2RlbGF5J1xuICAgKlxuICAgKiB2YXIgc2Vjb25kUHJveHkkID0geHMuY3JlYXRlKCk7XG4gICAqIHZhciBmaXJzdCQgPSBzZWNvbmRQcm94eSQubWFwKHggPT4geCAqIDEwKS50YWtlKDMpO1xuICAgKiB2YXIgc2Vjb25kJCA9IGZpcnN0JC5tYXAoeCA9PiB4ICsgMSkuc3RhcnRXaXRoKDEpLmNvbXBvc2UoZGVsYXkoMTAwKSk7XG4gICAqIHNlY29uZFByb3h5JC5pbWl0YXRlKHNlY29uZCQpO1xuICAgKiBgYGBcbiAgICpcbiAgICogV2UgY3JlYXRlIGBzZWNvbmRQcm94eSRgIGJlZm9yZSB0aGUgb3RoZXJzLCBzbyBpdCBjYW4gYmUgdXNlZCBpbiB0aGVcbiAgICogZGVjbGFyYXRpb24gb2YgYGZpcnN0JGAuIFRoZW4sIGFmdGVyIGJvdGggYGZpcnN0JGAgYW5kIGBzZWNvbmQkYCBhcmVcbiAgICogZGVmaW5lZCwgd2UgaG9vayBgc2Vjb25kUHJveHkkYCB3aXRoIGBzZWNvbmQkYCB3aXRoIGBpbWl0YXRlKClgIHRvIHRlbGxcbiAgICogdGhhdCB0aGV5IGFyZSBcInRoZSBzYW1lXCIuIGBpbWl0YXRlYCB3aWxsIG5vdCB0cmlnZ2VyIHRoZSBzdGFydCBvZiBhbnlcbiAgICogc3RyZWFtLCBpdCBqdXN0IGJpbmRzIGBzZWNvbmRQcm94eSRgIGFuZCBgc2Vjb25kJGAgdG9nZXRoZXIuXG4gICAqXG4gICAqIFRoZSBmb2xsb3dpbmcgaXMgYW4gZXhhbXBsZSB3aGVyZSBgaW1pdGF0ZSgpYCBpcyBpbXBvcnRhbnQgaW4gQ3ljbGUuanNcbiAgICogYXBwbGljYXRpb25zLiBBIHBhcmVudCBjb21wb25lbnQgY29udGFpbnMgc29tZSBjaGlsZCBjb21wb25lbnRzLiBBIGNoaWxkXG4gICAqIGhhcyBhbiBhY3Rpb24gc3RyZWFtIHdoaWNoIGlzIGdpdmVuIHRvIHRoZSBwYXJlbnQgdG8gZGVmaW5lIGl0cyBzdGF0ZTpcbiAgICpcbiAgICogPCEtLSBza2lwLWV4YW1wbGUgLS0+XG4gICAqIGBgYGpzXG4gICAqIGNvbnN0IGNoaWxkQWN0aW9uUHJveHkkID0geHMuY3JlYXRlKCk7XG4gICAqIGNvbnN0IHBhcmVudCA9IFBhcmVudCh7Li4uc291cmNlcywgY2hpbGRBY3Rpb24kOiBjaGlsZEFjdGlvblByb3h5JH0pO1xuICAgKiBjb25zdCBjaGlsZEFjdGlvbiQgPSBwYXJlbnQuc3RhdGUkLm1hcChzID0+IHMuY2hpbGQuYWN0aW9uJCkuZmxhdHRlbigpO1xuICAgKiBjaGlsZEFjdGlvblByb3h5JC5pbWl0YXRlKGNoaWxkQWN0aW9uJCk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBOb3RlLCB0aG91Z2gsIHRoYXQgKipgaW1pdGF0ZSgpYCBkb2VzIG5vdCBzdXBwb3J0IE1lbW9yeVN0cmVhbXMqKi4gSWYgd2VcbiAgICogd291bGQgYXR0ZW1wdCB0byBpbWl0YXRlIGEgTWVtb3J5U3RyZWFtIGluIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSwgd2Ugd291bGRcbiAgICogZWl0aGVyIGdldCBhIHJhY2UgY29uZGl0aW9uICh3aGVyZSB0aGUgc3ltcHRvbSB3b3VsZCBiZSBcIm5vdGhpbmcgaGFwcGVuc1wiKVxuICAgKiBvciBhbiBpbmZpbml0ZSBjeWNsaWMgZW1pc3Npb24gb2YgdmFsdWVzLiBJdCdzIHVzZWZ1bCB0byB0aGluayBhYm91dFxuICAgKiBNZW1vcnlTdHJlYW1zIGFzIGNlbGxzIGluIGEgc3ByZWFkc2hlZXQuIEl0IGRvZXNuJ3QgbWFrZSBhbnkgc2Vuc2UgdG9cbiAgICogZGVmaW5lIGEgc3ByZWFkc2hlZXQgY2VsbCBgQTFgIHdpdGggYSBmb3JtdWxhIHRoYXQgZGVwZW5kcyBvbiBgQjFgIGFuZFxuICAgKiBjZWxsIGBCMWAgZGVmaW5lZCB3aXRoIGEgZm9ybXVsYSB0aGF0IGRlcGVuZHMgb24gYEExYC5cbiAgICpcbiAgICogSWYgeW91IGZpbmQgeW91cnNlbGYgd2FudGluZyB0byB1c2UgYGltaXRhdGUoKWAgd2l0aCBhXG4gICAqIE1lbW9yeVN0cmVhbSwgeW91IHNob3VsZCByZXdvcmsgeW91ciBjb2RlIGFyb3VuZCBgaW1pdGF0ZSgpYCB0byB1c2UgYVxuICAgKiBTdHJlYW0gaW5zdGVhZC4gTG9vayBmb3IgdGhlIHN0cmVhbSBpbiB0aGUgY2lyY3VsYXIgZGVwZW5kZW5jeSB0aGF0XG4gICAqIHJlcHJlc2VudHMgYW4gZXZlbnQgc3RyZWFtLCBhbmQgdGhhdCB3b3VsZCBiZSBhIGNhbmRpZGF0ZSBmb3IgY3JlYXRpbmcgYVxuICAgKiBwcm94eSBTdHJlYW0gd2hpY2ggdGhlbiBpbWl0YXRlcyB0aGUgdGFyZ2V0IFN0cmVhbS5cbiAgICpcbiAgICogQHBhcmFtIHtTdHJlYW19IHRhcmdldCBUaGUgb3RoZXIgc3RyZWFtIHRvIGltaXRhdGUgb24gdGhlIGN1cnJlbnQgb25lLiBNdXN0XG4gICAqIG5vdCBiZSBhIE1lbW9yeVN0cmVhbS5cbiAgICovXG4gIGltaXRhdGUodGFyZ2V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgTWVtb3J5U3RyZWFtKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBIE1lbW9yeVN0cmVhbSB3YXMgZ2l2ZW4gdG8gaW1pdGF0ZSgpLCBidXQgaXQgb25seSAnICtcbiAgICAgICAgJ3N1cHBvcnRzIGEgU3RyZWFtLiBSZWFkIG1vcmUgYWJvdXQgdGhpcyByZXN0cmljdGlvbiBoZXJlOiAnICtcbiAgICAgICAgJ2h0dHBzOi8vZ2l0aHViLmNvbS9zdGFsdHoveHN0cmVhbSNmYXEnKTtcbiAgICB0aGlzLl90YXJnZXQgPSB0YXJnZXQ7XG4gICAgZm9yIChsZXQgaWxzID0gdGhpcy5faWxzLCBOID0gaWxzLmxlbmd0aCwgaSA9IDA7IGkgPCBOOyBpKyspIHRhcmdldC5fYWRkKGlsc1tpXSk7XG4gICAgdGhpcy5faWxzID0gW107XG4gIH1cblxuICAvKipcbiAgICogRm9yY2VzIHRoZSBTdHJlYW0gdG8gZW1pdCB0aGUgZ2l2ZW4gdmFsdWUgdG8gaXRzIGxpc3RlbmVycy5cbiAgICpcbiAgICogQXMgdGhlIG5hbWUgaW5kaWNhdGVzLCBpZiB5b3UgdXNlIHRoaXMsIHlvdSBhcmUgbW9zdCBsaWtlbHkgZG9pbmcgc29tZXRoaW5nXG4gICAqIFRoZSBXcm9uZyBXYXkuIFBsZWFzZSB0cnkgdG8gdW5kZXJzdGFuZCB0aGUgcmVhY3RpdmUgd2F5IGJlZm9yZSB1c2luZyB0aGlzXG4gICAqIG1ldGhvZC4gVXNlIGl0IG9ubHkgd2hlbiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgXCJuZXh0XCIgdmFsdWUgeW91IHdhbnQgdG8gYnJvYWRjYXN0IHRvIGFsbCBsaXN0ZW5lcnMgb2ZcbiAgICogdGhpcyBTdHJlYW0uXG4gICAqL1xuICBzaGFtZWZ1bGx5U2VuZE5leHQodmFsdWU6IFQpIHtcbiAgICB0aGlzLl9uKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JjZXMgdGhlIFN0cmVhbSB0byBlbWl0IHRoZSBnaXZlbiBlcnJvciB0byBpdHMgbGlzdGVuZXJzLlxuICAgKlxuICAgKiBBcyB0aGUgbmFtZSBpbmRpY2F0ZXMsIGlmIHlvdSB1c2UgdGhpcywgeW91IGFyZSBtb3N0IGxpa2VseSBkb2luZyBzb21ldGhpbmdcbiAgICogVGhlIFdyb25nIFdheS4gUGxlYXNlIHRyeSB0byB1bmRlcnN0YW5kIHRoZSByZWFjdGl2ZSB3YXkgYmVmb3JlIHVzaW5nIHRoaXNcbiAgICogbWV0aG9kLiBVc2UgaXQgb25seSB3aGVuIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy5cbiAgICpcbiAgICogQHBhcmFtIHthbnl9IGVycm9yIFRoZSBlcnJvciB5b3Ugd2FudCB0byBicm9hZGNhc3QgdG8gYWxsIHRoZSBsaXN0ZW5lcnMgb2ZcbiAgICogdGhpcyBTdHJlYW0uXG4gICAqL1xuICBzaGFtZWZ1bGx5U2VuZEVycm9yKGVycm9yOiBhbnkpIHtcbiAgICB0aGlzLl9lKGVycm9yKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JjZXMgdGhlIFN0cmVhbSB0byBlbWl0IHRoZSBcImNvbXBsZXRlZFwiIGV2ZW50IHRvIGl0cyBsaXN0ZW5lcnMuXG4gICAqXG4gICAqIEFzIHRoZSBuYW1lIGluZGljYXRlcywgaWYgeW91IHVzZSB0aGlzLCB5b3UgYXJlIG1vc3QgbGlrZWx5IGRvaW5nIHNvbWV0aGluZ1xuICAgKiBUaGUgV3JvbmcgV2F5LiBQbGVhc2UgdHJ5IHRvIHVuZGVyc3RhbmQgdGhlIHJlYWN0aXZlIHdheSBiZWZvcmUgdXNpbmcgdGhpc1xuICAgKiBtZXRob2QuIFVzZSBpdCBvbmx5IHdoZW4geW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLlxuICAgKi9cbiAgc2hhbWVmdWxseVNlbmRDb21wbGV0ZSgpIHtcbiAgICB0aGlzLl9jKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIFwiZGVidWdcIiBsaXN0ZW5lciB0byB0aGUgc3RyZWFtLiBUaGVyZSBjYW4gb25seSBiZSBvbmUgZGVidWdcbiAgICogbGlzdGVuZXIsIHRoYXQncyB3aHkgdGhpcyBpcyAnc2V0RGVidWdMaXN0ZW5lcicuIFRvIHJlbW92ZSB0aGUgZGVidWdcbiAgICogbGlzdGVuZXIsIGp1c3QgY2FsbCBzZXREZWJ1Z0xpc3RlbmVyKG51bGwpLlxuICAgKlxuICAgKiBBIGRlYnVnIGxpc3RlbmVyIGlzIGxpa2UgYW55IG90aGVyIGxpc3RlbmVyLiBUaGUgb25seSBkaWZmZXJlbmNlIGlzIHRoYXQgYVxuICAgKiBkZWJ1ZyBsaXN0ZW5lciBpcyBcInN0ZWFsdGh5XCI6IGl0cyBwcmVzZW5jZS9hYnNlbmNlIGRvZXMgbm90IHRyaWdnZXIgdGhlXG4gICAqIHN0YXJ0L3N0b3Agb2YgdGhlIHN0cmVhbSAob3IgdGhlIHByb2R1Y2VyIGluc2lkZSB0aGUgc3RyZWFtKS4gVGhpcyBpc1xuICAgKiB1c2VmdWwgc28geW91IGNhbiBpbnNwZWN0IHdoYXQgaXMgZ29pbmcgb24gd2l0aG91dCBjaGFuZ2luZyB0aGUgYmVoYXZpb3JcbiAgICogb2YgdGhlIHByb2dyYW0uIElmIHlvdSBoYXZlIGFuIGlkbGUgc3RyZWFtIGFuZCB5b3UgYWRkIGEgbm9ybWFsIGxpc3RlbmVyIHRvXG4gICAqIGl0LCB0aGUgc3RyZWFtIHdpbGwgc3RhcnQgZXhlY3V0aW5nLiBCdXQgaWYgeW91IHNldCBhIGRlYnVnIGxpc3RlbmVyIG9uIGFuXG4gICAqIGlkbGUgc3RyZWFtLCBpdCB3b24ndCBzdGFydCBleGVjdXRpbmcgKG5vdCB1bnRpbCB0aGUgZmlyc3Qgbm9ybWFsIGxpc3RlbmVyXG4gICAqIGlzIGFkZGVkKS5cbiAgICpcbiAgICogQXMgdGhlIG5hbWUgaW5kaWNhdGVzLCB3ZSBkb24ndCByZWNvbW1lbmQgdXNpbmcgdGhpcyBtZXRob2QgdG8gYnVpbGQgYXBwXG4gICAqIGxvZ2ljLiBJbiBmYWN0LCBpbiBtb3N0IGNhc2VzIHRoZSBkZWJ1ZyBvcGVyYXRvciB3b3JrcyBqdXN0IGZpbmUuIE9ubHkgdXNlXG4gICAqIHRoaXMgb25lIGlmIHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge0xpc3RlbmVyPFQ+fSBsaXN0ZW5lclxuICAgKi9cbiAgc2V0RGVidWdMaXN0ZW5lcihsaXN0ZW5lcjogUGFydGlhbDxMaXN0ZW5lcjxUPj4gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCFsaXN0ZW5lcikge1xuICAgICAgdGhpcy5fZCA9IGZhbHNlO1xuICAgICAgdGhpcy5fZGwgPSBOTyBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9kID0gdHJ1ZTtcbiAgICAgIChsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+KS5fbiA9IGxpc3RlbmVyLm5leHQgfHwgbm9vcDtcbiAgICAgIChsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+KS5fZSA9IGxpc3RlbmVyLmVycm9yIHx8IG5vb3A7XG4gICAgICAobGlzdGVuZXIgYXMgSW50ZXJuYWxMaXN0ZW5lcjxUPikuX2MgPSBsaXN0ZW5lci5jb21wbGV0ZSB8fCBub29wO1xuICAgICAgdGhpcy5fZGwgPSBsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+O1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTWVtb3J5U3RyZWFtPFQ+IGV4dGVuZHMgU3RyZWFtPFQ+IHtcbiAgcHJpdmF0ZSBfdj86IFQ7XG4gIHByaXZhdGUgX2hhcz86IGJvb2xlYW4gPSBmYWxzZTtcbiAgY29uc3RydWN0b3IocHJvZHVjZXI6IEludGVybmFsUHJvZHVjZXI8VD4pIHtcbiAgICBzdXBlcihwcm9kdWNlcik7XG4gIH1cblxuICBfbih4OiBUKSB7XG4gICAgdGhpcy5fdiA9IHg7XG4gICAgdGhpcy5faGFzID0gdHJ1ZTtcbiAgICBzdXBlci5fbih4KTtcbiAgfVxuXG4gIF9hZGQoaWw6IEludGVybmFsTGlzdGVuZXI8VD4pOiB2b2lkIHtcbiAgICBjb25zdCB0YSA9IHRoaXMuX3RhcmdldDtcbiAgICBpZiAodGEpIHJldHVybiB0YS5fYWRkKGlsKTtcbiAgICBjb25zdCBhID0gdGhpcy5faWxzO1xuICAgIGEucHVzaChpbCk7XG4gICAgaWYgKGEubGVuZ3RoID4gMSkge1xuICAgICAgaWYgKHRoaXMuX2hhcykgaWwuX24odGhpcy5fdiEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5fc3RvcElEICE9PSBOTykge1xuICAgICAgaWYgKHRoaXMuX2hhcykgaWwuX24odGhpcy5fdiEpO1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3N0b3BJRCk7XG4gICAgICB0aGlzLl9zdG9wSUQgPSBOTztcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2hhcykgaWwuX24odGhpcy5fdiEpOyBlbHNlIHtcbiAgICAgIGNvbnN0IHAgPSB0aGlzLl9wcm9kO1xuICAgICAgaWYgKHAgIT09IE5PKSBwLl9zdGFydCh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBfc3RvcE5vdygpIHtcbiAgICB0aGlzLl9oYXMgPSBmYWxzZTtcbiAgICBzdXBlci5fc3RvcE5vdygpO1xuICB9XG5cbiAgX3goKTogdm9pZCB7XG4gICAgdGhpcy5faGFzID0gZmFsc2U7XG4gICAgc3VwZXIuX3goKTtcbiAgfVxuXG4gIG1hcDxVPihwcm9qZWN0OiAodDogVCkgPT4gVSk6IE1lbW9yeVN0cmVhbTxVPiB7XG4gICAgcmV0dXJuIHRoaXMuX21hcChwcm9qZWN0KSBhcyBNZW1vcnlTdHJlYW08VT47XG4gIH1cblxuICBtYXBUbzxVPihwcm9qZWN0ZWRWYWx1ZTogVSk6IE1lbW9yeVN0cmVhbTxVPiB7XG4gICAgcmV0dXJuIHN1cGVyLm1hcFRvKHByb2plY3RlZFZhbHVlKSBhcyBNZW1vcnlTdHJlYW08VT47XG4gIH1cblxuICB0YWtlKGFtb3VudDogbnVtYmVyKTogTWVtb3J5U3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gc3VwZXIudGFrZShhbW91bnQpIGFzIE1lbW9yeVN0cmVhbTxUPjtcbiAgfVxuXG4gIGVuZFdoZW4ob3RoZXI6IFN0cmVhbTxhbnk+KTogTWVtb3J5U3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gc3VwZXIuZW5kV2hlbihvdGhlcikgYXMgTWVtb3J5U3RyZWFtPFQ+O1xuICB9XG5cbiAgcmVwbGFjZUVycm9yKHJlcGxhY2U6IChlcnI6IGFueSkgPT4gU3RyZWFtPFQ+KTogTWVtb3J5U3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gc3VwZXIucmVwbGFjZUVycm9yKHJlcGxhY2UpIGFzIE1lbW9yeVN0cmVhbTxUPjtcbiAgfVxuXG4gIHJlbWVtYmVyKCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkZWJ1ZygpOiBNZW1vcnlTdHJlYW08VD47XG4gIGRlYnVnKGxhYmVsT3JTcHk6IHN0cmluZyk6IE1lbW9yeVN0cmVhbTxUPjtcbiAgZGVidWcobGFiZWxPclNweTogKHQ6IFQpID0+IGFueSk6IE1lbW9yeVN0cmVhbTxUPjtcbiAgZGVidWcobGFiZWxPclNweT86IHN0cmluZyB8ICgodDogVCkgPT4gYW55KSB8IHVuZGVmaW5lZCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIHN1cGVyLmRlYnVnKGxhYmVsT3JTcHkgYXMgYW55KSBhcyBNZW1vcnlTdHJlYW08VD47XG4gIH1cbn1cblxuZXhwb3J0IHsgTk8sIE5PX0lMIH07XG5jb25zdCB4cyA9IFN0cmVhbTtcbnR5cGUgeHM8VD4gPSBTdHJlYW08VD47XG5leHBvcnQgZGVmYXVsdCB4cztcbiJdfQ== -/***/ }), + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + if(platform.hasStandardBrowserEnv) { + withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config)); -/***/ "./node_modules/xtend/immutable.js": -/*!*****************************************!*\ - !*** ./node_modules/xtend/immutable.js ***! - \*****************************************/ -/***/ (function(module) { + if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) { + // Add xsrf header + const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName); -module.exports = extend + if (xsrfValue) { + requestHeaders.set(config.xsrfHeaderName, xsrfValue); + } + } + } -var hasOwnProperty = Object.prototype.hasOwnProperty; + // Remove Content-Type if data is undefined + requestData === undefined && requestHeaders.setContentType(null); -function extend() { - var target = {} + // Add headers to the request + if ('setRequestHeader' in request) { + utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) { + request.setRequestHeader(key, val); + }); + } - for (var i = 0; i < arguments.length; i++) { - var source = arguments[i] + // Add withCredentials to request if needed + if (!utils$1.isUndefined(config.withCredentials)) { + request.withCredentials = !!config.withCredentials; + } - for (var key in source) { - if (hasOwnProperty.call(source, key)) { - target[key] = source[key] - } + // Add responseType to request if needed + if (responseType && responseType !== 'json') { + request.responseType = config.responseType; + } + + // Handle progress if needed + if (typeof config.onDownloadProgress === 'function') { + request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true)); + } + + // Not all browsers support upload events + if (typeof config.onUploadProgress === 'function' && request.upload) { + request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress)); + } + + if (config.cancelToken || config.signal) { + // Handle cancellation + // eslint-disable-next-line func-names + onCanceled = cancel => { + if (!request) { + return; } + reject(!cancel || cancel.type ? new CanceledError(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); + } } - return target + const protocol = parseProtocol(fullPath); + + if (protocol && platform.protocols.indexOf(protocol) === -1) { + reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config)); + return; + } + + + // Send the request + request.send(requestData || null); + }); +}; + +const knownAdapters = { + http: httpAdapter, + xhr: xhrAdapter +}; + +utils$1.forEach(knownAdapters, (fn, value) => { + if (fn) { + try { + Object.defineProperty(fn, 'name', {value}); + } catch (e) { + // eslint-disable-next-line no-empty + } + Object.defineProperty(fn, 'adapterName', {value}); + } +}); + +const renderReason = (reason) => `- ${reason}`; + +const isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false; + +var adapters = { + getAdapter: (adapters) => { + adapters = utils$1.isArray(adapters) ? adapters : [adapters]; + + const {length} = adapters; + let nameOrAdapter; + let adapter; + + const rejectedReasons = {}; + + for (let i = 0; i < length; i++) { + nameOrAdapter = adapters[i]; + let id; + + adapter = nameOrAdapter; + + if (!isResolvedHandle(nameOrAdapter)) { + adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()]; + + if (adapter === undefined) { + throw new AxiosError(`Unknown adapter '${id}'`); + } + } + + if (adapter) { + break; + } + + rejectedReasons[id || '#' + i] = adapter; + } + + if (!adapter) { + + const reasons = Object.entries(rejectedReasons) + .map(([id, state]) => `adapter ${id} ` + + (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( + `There is no suitable adapter to dispatch the request ` + s, + 'ERR_NOT_SUPPORT' + ); + } + + return adapter; + }, + adapters: knownAdapters +}; + +/** + * Throws a `CanceledError` if cancellation has been requested. + * + * @param {Object} config The config that is to be used for the request + * + * @returns {void} + */ +function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } + + if (config.signal && config.signal.aborted) { + throw new CanceledError(null, config); + } } +/** + * Dispatch a request to the server using the configured adapter. + * + * @param {object} config The config that is to be used for the request + * + * @returns {Promise} The Promise to be fulfilled + */ +function dispatchRequest(config) { + throwIfCancellationRequested(config); -/***/ }), + config.headers = AxiosHeaders$1.from(config.headers); -/***/ "?d546": -/*!************************!*\ - !*** buffer (ignored) ***! - \************************/ -/***/ (function() { + // Transform request data + config.data = transformData.call( + config, + config.transformRequest + ); -/* (ignored) */ + if (['post', 'put', 'patch'].indexOf(config.method) !== -1) { + config.headers.setContentType('application/x-www-form-urlencoded', false); + } -/***/ }), + const adapter = adapters.getAdapter(config.adapter || defaults$1.adapter); -/***/ "?8131": -/*!************************!*\ - !*** buffer (ignored) ***! - \************************/ -/***/ (function() { + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); -/* (ignored) */ + // Transform response data + response.data = transformData.call( + config, + config.transformResponse, + response + ); -/***/ }), + response.headers = AxiosHeaders$1.from(response.headers); -/***/ "?3fc0": -/*!************************!*\ - !*** crypto (ignored) ***! - \************************/ -/***/ (function() { + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); -/* (ignored) */ + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData.call( + config, + config.transformResponse, + reason.response + ); + reason.response.headers = AxiosHeaders$1.from(reason.response.headers); + } + } -/***/ }), + return Promise.reject(reason); + }); +} -/***/ "?cad2": -/*!**********************!*\ - !*** util (ignored) ***! - \**********************/ -/***/ (function() { +const headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? thing.toJSON() : thing; -/* (ignored) */ +/** + * Config-specific merge-function which creates a new config-object + * by merging two configuration objects together. + * + * @param {Object} config1 + * @param {Object} config2 + * + * @returns {Object} New object resulting from merging config2 to config1 + */ +function mergeConfig(config1, config2) { + // eslint-disable-next-line no-param-reassign + config2 = config2 || {}; + const config = {}; -/***/ }), + function getMergedValue(target, source, caseless) { + if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) { + return utils$1.merge.call({caseless}, target, source); + } else if (utils$1.isPlainObject(source)) { + return utils$1.merge({}, source); + } else if (utils$1.isArray(source)) { + return source.slice(); + } + return source; + } -/***/ "?593c": -/*!**********************!*\ - !*** util (ignored) ***! - \**********************/ -/***/ (function() { + // eslint-disable-next-line consistent-return + function mergeDeepProperties(a, b, caseless) { + if (!utils$1.isUndefined(b)) { + return getMergedValue(a, b, caseless); + } else if (!utils$1.isUndefined(a)) { + return getMergedValue(undefined, a, caseless); + } + } -/* (ignored) */ + // eslint-disable-next-line consistent-return + function valueFromConfig2(a, b) { + if (!utils$1.isUndefined(b)) { + return getMergedValue(undefined, b); + } + } -/***/ }), + // eslint-disable-next-line consistent-return + function defaultToConfig2(a, b) { + if (!utils$1.isUndefined(b)) { + return getMergedValue(undefined, b); + } else if (!utils$1.isUndefined(a)) { + return getMergedValue(undefined, a); + } + } -/***/ "?4068": -/*!************************!*\ - !*** buffer (ignored) ***! - \************************/ -/***/ (function() { + // eslint-disable-next-line consistent-return + function mergeDirectKeys(a, b, prop) { + if (prop in config2) { + return getMergedValue(a, b); + } else if (prop in config1) { + return getMergedValue(undefined, a); + } + } -/* (ignored) */ + 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$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) { + const merge = mergeMap[prop] || mergeDeepProperties; + const configValue = merge(config1[prop], config2[prop], prop); + (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue); + }); -/***/ }), + return config; +} -/***/ "?e7e4": -/*!************************!*\ - !*** buffer (ignored) ***! - \************************/ -/***/ (function() { +const VERSION = "1.6.2"; -/* (ignored) */ +const validators$1 = {}; -/***/ }), +// eslint-disable-next-line func-names +['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => { + validators$1[type] = function validator(thing) { + return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type; + }; +}); -/***/ "?7bec": -/*!************************!*\ - !*** buffer (ignored) ***! - \************************/ -/***/ (function() { +const deprecatedWarnings = {}; -/* (ignored) */ +/** + * Transitional option validator + * + * @param {function|boolean?} validator - set to false if the transitional option has been removed + * @param {string?} version - deprecated version / removed since version + * @param {string?} message - some message with additional info + * + * @returns {function} + */ +validators$1.transitional = function transitional(validator, version, message) { + function formatMessage(opt, desc) { + return '[Axios v' + VERSION + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : ''); + } -/***/ }), + // eslint-disable-next-line func-names + return (value, opt, opts) => { + if (validator === false) { + throw new AxiosError( + formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), + AxiosError.ERR_DEPRECATED + ); + } -/***/ "?802b": -/*!**********************!*\ - !*** util (ignored) ***! - \**********************/ -/***/ (function() { + if (version && !deprecatedWarnings[opt]) { + deprecatedWarnings[opt] = true; + // eslint-disable-next-line no-console + console.warn( + formatMessage( + opt, + ' has been deprecated since v' + version + ' and will be removed in the near future' + ) + ); + } -/* (ignored) */ + return validator ? validator(value, opt, opts) : true; + }; +}; -/***/ }), +/** + * Assert object's properties type + * + * @param {object} options + * @param {object} schema + * @param {boolean?} allowUnknown + * + * @returns {object} + */ -/***/ "?1e44": -/*!**********************!*\ - !*** util (ignored) ***! - \**********************/ -/***/ (function() { +function assertOptions(options, schema, allowUnknown) { + if (typeof options !== 'object') { + throw new AxiosError('options must be an object', AxiosError.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 === undefined || validator(value, opt, options); + if (result !== true) { + throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE); + } + continue; + } + if (allowUnknown !== true) { + throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION); + } + } +} -/* (ignored) */ +var validator = { + assertOptions, + validators: validators$1 +}; -/***/ }), +const validators = validator.validators; -/***/ "?f0f8": -/*!********************!*\ - !*** fs (ignored) ***! - \********************/ -/***/ (function() { +/** + * Create a new instance of Axios + * + * @param {Object} instanceConfig The default config for the instance + * + * @return {Axios} A new instance of Axios + */ +class Axios { + constructor(instanceConfig) { + this.defaults = instanceConfig; + this.interceptors = { + request: new InterceptorManager$1(), + response: new InterceptorManager$1() + }; + } -/* (ignored) */ + /** + * 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 + */ + request(configOrUrl, config) { + /*eslint no-param-reassign:0*/ + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof configOrUrl === 'string') { + config = config || {}; + config.url = configOrUrl; + } else { + config = configOrUrl || {}; + } -/***/ }), + config = mergeConfig(this.defaults, config); -/***/ "?ebe9": -/*!**********************!*\ - !*** path (ignored) ***! - \**********************/ -/***/ (function() { + const {transitional, paramsSerializer, headers} = config; -/* (ignored) */ + if (transitional !== undefined) { + validator.assertOptions(transitional, { + silentJSONParsing: validators.transitional(validators.boolean), + forcedJSONParsing: validators.transitional(validators.boolean), + clarifyTimeoutError: validators.transitional(validators.boolean) + }, false); + } -/***/ }), + if (paramsSerializer != null) { + if (utils$1.isFunction(paramsSerializer)) { + config.paramsSerializer = { + serialize: paramsSerializer + }; + } else { + validator.assertOptions(paramsSerializer, { + encode: validators.function, + serialize: validators.function + }, true); + } + } -/***/ "?0aec": -/*!************************!*\ - !*** buffer (ignored) ***! - \************************/ -/***/ (function() { + // Set config.method + config.method = (config.method || this.defaults.method || 'get').toLowerCase(); -/* (ignored) */ + // Flatten headers + let contextHeaders = headers && utils$1.merge( + headers.common, + headers[config.method] + ); -/***/ }), + headers && utils$1.forEach( + ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], + (method) => { + delete headers[method]; + } + ); -/***/ "?fbf1": -/*!************************!*\ - !*** buffer (ignored) ***! - \************************/ -/***/ (function() { + config.headers = AxiosHeaders$1.concat(contextHeaders, headers); -/* (ignored) */ + // filter out skipped interceptors + 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; -/***/ "?3e83": -/*!**********************!*\ - !*** util (ignored) ***! - \**********************/ -/***/ (function() { + requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); + }); -/* (ignored) */ + const responseInterceptorChain = []; + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); + }); -/***/ }), + let promise; + let i = 0; + let len; -/***/ "?19e6": -/*!**********************!*\ - !*** util (ignored) ***! - \**********************/ -/***/ (function() { + if (!synchronousRequestInterceptors) { + const chain = [dispatchRequest.bind(this), undefined]; + chain.unshift.apply(chain, requestInterceptorChain); + chain.push.apply(chain, responseInterceptorChain); + len = chain.length; -/* (ignored) */ + promise = Promise.resolve(config); -/***/ }), + while (i < len) { + promise = promise.then(chain[i++], chain[i++]); + } -/***/ "?0cc0": -/*!**********************!*\ - !*** util (ignored) ***! - \**********************/ -/***/ (function() { + return promise; + } -/* (ignored) */ + len = requestInterceptorChain.length; -/***/ }), + let newConfig = config; -/***/ "?aeb7": -/*!**********************!*\ - !*** util (ignored) ***! - \**********************/ -/***/ (function() { + i = 0; -/* (ignored) */ + 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); + } -/***/ "./node_modules/@adraffy/ens-normalize/dist/index.cjs": -/*!************************************************************!*\ - !*** ./node_modules/@adraffy/ens-normalize/dist/index.cjs ***! - \************************************************************/ -/***/ (function(__unused_webpack_module, exports) { + i = 0; + len = responseInterceptorChain.length; -"use strict"; + while (i < len) { + promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]); + } + return promise; + } -// created 2023-09-12T22:05:14.211Z -// compressed base64-encoded blob for include-ens data -// source: https://github.com/adraffy/ens-normalize.js/blob/main/src/make.js -// see: https://github.com/adraffy/ens-normalize.js#security -// SHA-256: 0565ed049b9cf1614bb9e11ba7d8ac6a6fb96c893253d890f7e2b2884b9ded32 -var COMPRESSED$1 = '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'; -const FENCED = new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]); -const NSM_MAX = 4; + getUri(config) { + config = mergeConfig(this.defaults, config); + const fullPath = buildFullPath(config.baseURL, config.url); + return buildURL(fullPath, config.params, config.paramsSerializer); + } +} -function decode_arithmetic(bytes) { - let pos = 0; - function u16() { return (bytes[pos++] << 8) | bytes[pos++]; } - - // decode the frequency table - let symbol_count = u16(); - let total = 1; - let acc = [0, 1]; // first symbol has frequency 1 - for (let i = 1; i < symbol_count; i++) { - acc.push(total += u16()); - } - - // skip the sized-payload that the last 3 symbols index into - let skip = u16(); - let pos_payload = pos; - pos += skip; - - let read_width = 0; - let read_buffer = 0; - function read_bit() { - if (read_width == 0) { - // this will read beyond end of buffer - // but (undefined|0) => zero pad - read_buffer = (read_buffer << 8) | bytes[pos++]; - read_width = 8; - } - return (read_buffer >> --read_width) & 1; - } - - const N = 31; - const FULL = 2**N; - const HALF = FULL >>> 1; - const QRTR = HALF >> 1; - const MASK = FULL - 1; - - // fill register - let register = 0; - for (let i = 0; i < N; i++) register = (register << 1) | read_bit(); - - let symbols = []; - let low = 0; - let range = FULL; // treat like a float - while (true) { - let value = Math.floor((((register - low + 1) * total) - 1) / range); - let start = 0; - let end = symbol_count; - while (end - start > 1) { // binary search - let mid = (start + end) >>> 1; - if (value < acc[mid]) { - end = mid; - } else { - start = mid; - } - } - if (start == 0) break; // first symbol is end mark - 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 => { // index into payload - switch (x - offset) { - case 3: return offset + 0x10100 + ((bytes[pos_payload++] << 16) | (bytes[pos_payload++] << 8) | bytes[pos_payload++]); - case 2: return offset + 0x100 + ((bytes[pos_payload++] << 8) | bytes[pos_payload++]); - case 1: return offset + bytes[pos_payload++]; - default: return x - 1; - } - }); -} - -// returns an iterator which returns the next symbol -function read_payload(v) { - let pos = 0; - return () => v[pos++]; -} -function read_compressed_payload(s) { - return read_payload(decode_arithmetic(unsafe_atob(s))); -} - -// unsafe in the sense: -// expected well-formed Base64 w/o padding -// 20220922: added for https://github.com/adraffy/ens-normalize.js/issues/4 -function unsafe_atob(s) { - let lookup = []; - [...'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'].forEach((c, i) => lookup[c.charCodeAt(0)] = i); - let n = s.length; - let ret = new Uint8Array((6 * n) >> 3); - for (let i = 0, pos = 0, width = 0, carry = 0; i < n; i++) { - carry = (carry << 6) | lookup[s.charCodeAt(i)]; - width += 6; - if (width >= 8) { - ret[pos++] = (carry >> (width -= 8)); - } - } - return ret; -} - -// eg. [0,1,2,3...] => [0,-1,1,-2,...] -function signed(i) { - return (i & 1) ? (~i >> 1) : (i >> 1); -} - -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; -} - -// [123][5] => [0 3] [1 1] [0 0] -function read_sorted(next, prev = 0) { - let ret = []; - while (true) { - let x = next(); - let n = next(); - if (!n) break; - prev += x; - for (let i = 0; i < n; i++) { - ret.push(prev + i); - } - prev += n + 1; - } - return ret; -} - -function read_sorted_arrays(next) { - return read_array_while(() => { - let v = read_sorted(next); - if (v.length) return v; - }); -} - -// returns map of x => ys -function read_mapped(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 ret.flat(); -} - -// read until next is falsy -// return array of read values -function read_array_while(next) { - let v = []; - while (true) { - let x = next(v.length); - if (!x) break; - v.push(x); - } - return v; -} - -// read w columns of length n -// return as n rows of length w -function read_transposed(n, w, next) { - let m = Array(n).fill().map(() => []); - for (let i = 0; i < w; i++) { - read_deltas(n, next).forEach((x, j) => m[j].push(x)); - } - return m; -} - -// returns [[x, ys], [x+dx, ys+dy], [x+2*dx, ys+2*dy], ...] -// where dx/dy = steps, n = run size, w = length of y -function read_linear_table(w, next) { - let dx = 1 + next(); - let dy = next(); - let vN = read_array_while(next); - let m = read_transposed(vN.length, 1+w, next); - return m.flatMap((v, i) => { - let [x, ...ys] = v; - return Array(vN[i]).fill().map((_, j) => { - let j_dy = j * dy; - return [x + j * dx, ys.map(y => y + j_dy)]; - }); - }); -} - -// return [[x, ys...], ...] -// where w = length of y -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_trie(next) { - let ret = []; - let sorted = read_sorted(next); - expand(decode([]), []); - return ret; // not sorted - function decode(Q) { // characters that lead into this node - let S = next(); // state: valid, save, check - let B = read_array_while(() => { // buckets leading to new nodes - let cps = read_sorted(next).map(i => sorted[i]); - if (cps.length) return decode(cps); - }); - return {S, B, Q}; - } - function expand({S, B}, cps, saved) { - if (S & 4 && saved === cps[cps.length-1]) return; - if (S & 2) saved = cps[cps.length-1]; - if (S & 1) ret.push(cps); - for (let br of B) { - for (let cp of br.Q) { - expand(br, [...cps, cp], saved); - } - } - } +// Provide aliases for supported request methods +utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, config) { + return this.request(mergeConfig(config || {}, { + method, + url, + data: (config || {}).data + })); + }; +}); + +utils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + /*eslint func-names:0*/ + + 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$1 = Axios; + +/** + * A `CancelToken` is an object that can be used to request cancellation of an operation. + * + * @param {Function} executor The executor function. + * + * @returns {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; + + // eslint-disable-next-line func-names + this.promise.then(cancel => { + if (!token._listeners) return; + + let i = token._listeners.length; + + while (i-- > 0) { + token._listeners[i](cancel); + } + token._listeners = null; + }); + + // eslint-disable-next-line func-names + this.promise.then = onfulfilled => { + let _resolve; + // eslint-disable-next-line func-names + 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) { + // Cancellation has already been requested + return; + } + + token.reason = new CanceledError(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 index = this._listeners.indexOf(listener); + if (index !== -1) { + this._listeners.splice(index, 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 + }; + } } -function hex_cp(cp) { - return cp.toString(16).toUpperCase().padStart(2, '0'); -} - -function quote_cp(cp) { - return `{${hex_cp(cp)}}`; // raffy convention: like "\u{X}" w/o the "\u" -} - -/* -export function explode_cp(s) { - return [...s].map(c => c.codePointAt(0)); -} -*/ -function explode_cp(s) { // this is about 2x faster - let cps = []; - for (let pos = 0, len = s.length; pos < len; ) { - let cp = s.codePointAt(pos); - pos += cp < 0x10000 ? 1 : 2; - cps.push(cp); - } - return cps; -} - -function str_from_cps(cps) { - const chunk = 4096; - let len = cps.length; - if (len < chunk) return String.fromCodePoint(...cps); - let buf = []; - for (let i = 0; i < len; ) { - buf.push(String.fromCodePoint(...cps.slice(i, i += chunk))); - } - return buf.join(''); -} - -function compare_arrays(a, b) { - let n = a.length; - let c = n - b.length; - for (let i = 0; c == 0 && i < n; i++) c = a[i] - b[i]; - return c; +var CancelToken$1 = CancelToken; + +/** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * var args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * + * @returns {Function} + */ +function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; } -// created 2023-09-12T22:05:14.211Z -// compressed base64-encoded blob for include-nf data -// source: https://github.com/adraffy/ens-normalize.js/blob/main/src/make.js -// see: https://github.com/adraffy/ens-normalize.js#security -// SHA-256: a974b6f8541fc29d919bc85118af0a44015851fab5343f8679cb31be2bdb209e -var COMPRESSED = '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'; +/** + * Determines whether the payload is an error thrown by Axios + * + * @param {*} payload The value to test + * + * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false + */ +function isAxiosError(payload) { + return utils$1.isObject(payload) && (payload.isAxiosError === true); +} + +const 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(([key, value]) => { + HttpStatusCode[value] = key; +}); -// https://unicode.org/reports/tr15/ -// for reference implementation -// see: /derive/nf.js - - -// algorithmic hangul -// https://www.unicode.org/versions/Unicode15.0.0/ch03.pdf (page 144) -const S0 = 0xAC00; -const L0 = 0x1100; -const V0 = 0x1161; -const T0 = 0x11A7; -const L_COUNT = 19; -const V_COUNT = 21; -const T_COUNT = 28; -const N_COUNT = V_COUNT * T_COUNT; -const S_COUNT = L_COUNT * N_COUNT; -const S1 = S0 + S_COUNT; -const L1 = L0 + L_COUNT; -const V1 = V0 + V_COUNT; -const T1 = T0 + T_COUNT; - -function unpack_cc(packed) { - return (packed >> 24) & 0xFF; -} -function unpack_cp(packed) { - return packed & 0xFFFFFF; -} - -let SHIFTED_RANK, EXCLUSIONS, DECOMP, RECOMP; - -function init$1() { - //console.time('nf'); - let r = read_compressed_payload(COMPRESSED); - SHIFTED_RANK = new Map(read_sorted_arrays(r).flatMap((v, i) => v.map(x => [x, (i+1) << 24]))); // pre-shifted - EXCLUSIONS = new Set(read_sorted(r)); - DECOMP = new Map(); - RECOMP = new Map(); - for (let [cp, cps] of read_mapped(r)) { - if (!EXCLUSIONS.has(cp) && cps.length == 2) { - let [a, b] = cps; - let bucket = RECOMP.get(a); - if (!bucket) { - bucket = new Map(); - RECOMP.set(a, bucket); - } - bucket.set(b, cp); - } - DECOMP.set(cp, cps.reverse()); // stored reversed - } - //console.timeEnd('nf'); - // 20230905: 11ms -} - -function is_hangul(cp) { - return cp >= S0 && cp < S1; -} - -function compose_pair(a, b) { - if (a >= L0 && a < L1 && b >= V0 && b < V1) { - return S0 + (a - L0) * N_COUNT + (b - V0) * T_COUNT; - } else if (is_hangul(a) && b > T0 && b < T1 && (a - S0) % T_COUNT == 0) { - return a + (b - T0); - } else { - let recomp = RECOMP.get(a); - if (recomp) { - recomp = recomp.get(b); - if (recomp) { - return recomp; - } - } - return -1; - } -} - -function decomposed(cps) { - if (!SHIFTED_RANK) init$1(); - let ret = []; - let buf = []; - let check_order = false; - function add(cp) { - let cc = SHIFTED_RANK.get(cp); - if (cc) { - check_order = true; - cp |= cc; - } - ret.push(cp); - } - for (let cp of cps) { - while (true) { - if (cp < 0x80) { - ret.push(cp); - } else if (is_hangul(cp)) { - let s_index = cp - S0; - let l_index = s_index / N_COUNT | 0; - let v_index = (s_index % N_COUNT) / T_COUNT | 0; - let t_index = s_index % T_COUNT; - add(L0 + l_index); - add(V0 + v_index); - if (t_index > 0) add(T0 + t_index); - } else { - let mapped = DECOMP.get(cp); - if (mapped) { - buf.push(...mapped); - } else { - add(cp); - } - } - if (!buf.length) break; - cp = buf.pop(); - } - } - if (check_order && ret.length > 1) { - let prev_cc = unpack_cc(ret[0]); - for (let i = 1; i < ret.length; i++) { - let cc = unpack_cc(ret[i]); - if (cc == 0 || prev_cc <= cc) { - prev_cc = cc; - continue; - } - let j = i-1; - while (true) { - let tmp = ret[j+1]; - ret[j+1] = ret[j]; - ret[j] = tmp; - if (!j) break; - prev_cc = unpack_cc(ret[--j]); - if (prev_cc <= cc) break; - } - prev_cc = unpack_cc(ret[i]); - } - } - return ret; -} - -function composed_from_decomposed(v) { - let ret = []; - let stack = []; - let prev_cp = -1; - let prev_cc = 0; - for (let packed of v) { - let cc = unpack_cc(packed); - let cp = unpack_cp(packed); - if (prev_cp == -1) { - if (cc == 0) { - prev_cp = cp; - } else { - ret.push(cp); - } - } else if (prev_cc > 0 && prev_cc >= cc) { - if (cc == 0) { - ret.push(prev_cp, ...stack); - stack.length = 0; - prev_cp = cp; - } else { - stack.push(cp); - } - prev_cc = cc; - } else { - let composed = compose_pair(prev_cp, cp); - if (composed >= 0) { - prev_cp = composed; - } else if (prev_cc == 0 && cc == 0) { - ret.push(prev_cp); - prev_cp = cp; - } else { - stack.push(cp); - prev_cc = cc; - } - } - } - if (prev_cp >= 0) { - ret.push(prev_cp, ...stack); - } - return ret; -} - -// note: cps can be iterable -function nfd(cps) { - return decomposed(cps).map(unpack_cp); -} -function nfc(cps) { - return composed_from_decomposed(decomposed(cps)); -} +var HttpStatusCode$1 = HttpStatusCode; -const HYPHEN = 0x2D; -const STOP = 0x2E; -const STOP_CH = '.'; -const FE0F = 0xFE0F; -const UNIQUE_PH = 1; - -// 20230913: replace [...v] with Array_from(v) to avoid large spreads -const Array_from = x => Array.from(x); // Array.from.bind(Array); - -function group_has_cp(g, cp) { - // 20230913: keep primary and secondary distinct instead of creating valid union - return g.P.has(cp) || g.Q.has(cp); -} - -class Emoji extends Array { - get is_emoji() { return true; } // free tagging system -} - -let MAPPED, IGNORED, CM, NSM, ESCAPE, NFC_CHECK, GROUPS, WHOLE_VALID, WHOLE_MAP, VALID, EMOJI_LIST, EMOJI_ROOT; - -function init() { - if (MAPPED) return; - - let r = read_compressed_payload(COMPRESSED$1); - const read_sorted_array = () => read_sorted(r); - const read_sorted_set = () => new Set(read_sorted_array()); - - MAPPED = new Map(read_mapped(r)); - IGNORED = read_sorted_set(); // ignored characters are not valid, so just read raw codepoints - - /* - // direct include from payload is smaller than the decompression code - const FENCED = new Map(read_array_while(() => { - let cp = r(); - if (cp) return [cp, read_str(r())]; - })); - */ - // 20230217: we still need all CM for proper error formatting - // but norm only needs NSM subset that are potentially-valid - CM = read_sorted_array(); - NSM = new Set(read_sorted_array().map(i => CM[i])); - CM = new Set(CM); - - ESCAPE = read_sorted_set(); // characters that should not be printed - NFC_CHECK = read_sorted_set(); // only needed to illustrate ens_tokenize() transformations - - let chunks = read_sorted_arrays(r); - let unrestricted = r(); - const read_chunked = () => new Set(read_sorted_array().flatMap(i => chunks[i]).concat(read_sorted_array())); - GROUPS = read_array_while(i => { - // minifier property mangling seems unsafe - // so these are manually renamed to single chars - let N = read_array_while(r).map(x => x+0x60); - if (N.length) { - let R = i >= unrestricted; // first arent restricted - N[0] -= 32; // capitalize - N = str_from_cps(N); - if (R) N=`Restricted[${N}]`; - let P = read_chunked(); // primary - let Q = read_chunked(); // secondary - let M = !r(); // not-whitelisted, check for NSM - // *** this code currently isn't needed *** - /* - let V = [...P, ...Q].sort((a, b) => a-b); // derive: sorted valid - let M = r()-1; // number of combining mark - if (M < 0) { // whitelisted - M = new Map(read_array_while(() => { - let i = r(); - if (i) return [V[i-1], read_array_while(() => { - let v = read_array_while(r); - if (v.length) return v.map(x => x-1); - })]; - })); - }*/ - return {N, P, Q, M, R}; - } - }); - - // decode compressed wholes - WHOLE_VALID = read_sorted_set(); - WHOLE_MAP = new Map(); - let wholes = read_sorted_array().concat(Array_from(WHOLE_VALID)).sort((a, b) => a-b); // must be sorted - wholes.forEach((cp, i) => { - let d = r(); - let w = wholes[i] = d ? wholes[i-d] : {V: [], M: new Map()}; - w.V.push(cp); // add to member set - if (!WHOLE_VALID.has(cp)) { - WHOLE_MAP.set(cp, w); // register with whole map - } - }); - - // compute confusable-extent complements - for (let {V, M} of new Set(WHOLE_MAP.values())) { - // connect all groups that have each whole character - let recs = []; - for (let cp of V) { - let gs = GROUPS.filter(g => group_has_cp(g, cp)); - let rec = recs.find(({G}) => gs.some(g => G.has(g))); - if (!rec) { - rec = {G: new Set(), V: []}; - recs.push(rec); - } - rec.V.push(cp); - gs.forEach(g => rec.G.add(g)); - } - // per character cache groups which are not a member of the extent - let union = recs.flatMap(x => Array_from(x.G)); - for (let {G, V} of recs) { - let complement = new Set(union.filter(g => !G.has(g))); - for (let cp of V) { - M.set(cp, complement); - } - } - } - - // compute valid set - let union = new Set(); // exists in 1+ groups - let multi = new Set(); // exists in 2+ groups - const add_to_union = cp => union.has(cp) ? multi.add(cp) : union.add(cp); - for (let g of GROUPS) { - for (let cp of g.P) add_to_union(cp); - for (let cp of g.Q) add_to_union(cp); - } - // dual purpose WHOLE_MAP: return placeholder if unique non-confusable - for (let cp of union) { - if (!WHOLE_MAP.has(cp) && !multi.has(cp)) { - WHOLE_MAP.set(cp, UNIQUE_PH); - } - } - VALID = new Set(Array_from(union).concat(Array_from(nfd(union)))); // possibly valid - - // decode emoji - // 20230719: emoji are now fully-expanded to avoid quirk logic - EMOJI_LIST = read_trie(r).map(v => Emoji.from(v)).sort(compare_arrays); - EMOJI_ROOT = new Map(); // this has approx 7K nodes (2+ per emoji) - for (let cps of EMOJI_LIST) { - // 20230719: change to *slightly* stricter algorithm which disallows - // insertion of misplaced FE0F in emoji sequences (matching ENSIP-15) - // example: beautified [A B] (eg. flag emoji) - // before: allow: [A FE0F B], error: [A FE0F FE0F B] - // after: error: both - // note: this code now matches ENSNormalize.{cs,java} logic - let prev = [EMOJI_ROOT]; - for (let cp of cps) { - let next = prev.map(node => { - let child = node.get(cp); - if (!child) { - // should this be object? - // (most have 1-2 items, few have many) - // 20230719: no, v8 default map is 4? - child = new Map(); - node.set(cp, child); - } - return child; - }); - if (cp === FE0F) { - prev.push(...next); // less than 20 elements - } else { - prev = next; - } - } - for (let x of prev) { - x.V = cps; - } - } -} - -// if escaped: {HEX} -// else: "x" {HEX} -function quoted_cp(cp) { - return (should_escape(cp) ? '' : `${bidi_qq(safe_str_from_cps([cp]))} `) + quote_cp(cp); -} - -// 20230211: some messages can be mixed-directional and result in spillover -// use 200E after a quoted string to force the remainder of a string from -// acquring the direction of the quote -// https://www.w3.org/International/questions/qa-bidi-unicode-controls#exceptions -function bidi_qq(s) { - return `"${s}"\u200E`; // strong LTR -} - -function check_label_extension(cps) { - if (cps.length >= 4 && cps[2] == HYPHEN && cps[3] == HYPHEN) { - throw new Error(`invalid label extension: "${str_from_cps(cps.slice(0, 4))}"`); - } -} -function check_leading_underscore(cps) { - const UNDERSCORE = 0x5F; - for (let i = cps.lastIndexOf(UNDERSCORE); i > 0; ) { - if (cps[--i] !== UNDERSCORE) { - throw new Error('underscore allowed only at start'); - } - } -} -// check that a fenced cp is not leading, trailing, or touching another fenced cp -function check_fenced(cps) { - let cp = cps[0]; - let prev = FENCED.get(cp); - if (prev) throw error_placement(`leading ${prev}`); - let n = cps.length; - let last = -1; // prevents trailing from throwing - for (let i = 1; i < n; i++) { - cp = cps[i]; - let match = FENCED.get(cp); - if (match) { - // since cps[0] isn't fenced, cps[1] cannot throw - if (last == i) throw error_placement(`${prev} + ${match}`); - last = i + 1; - prev = match; - } - } - if (last == n) throw error_placement(`trailing ${prev}`); -} - -// create a safe to print string -// invisibles are escaped -// leading cm uses placeholder -// quoter(cp) => string, eg. 3000 => "{3000}" -// note: in html, you'd call this function then replace [<>&] with entities -function safe_str_from_cps(cps, quoter = quote_cp) { - //if (Number.isInteger(cps)) cps = [cps]; - //if (!Array.isArray(cps)) throw new TypeError(`expected codepoints`); - let buf = []; - if (is_combining_mark(cps[0])) buf.push('◌'); - let prev = 0; - let n = cps.length; - for (let i = 0; i < n; i++) { - let cp = cps[i]; - if (should_escape(cp)) { - buf.push(str_from_cps(cps.slice(prev, i))); - buf.push(quoter(cp)); - prev = i + 1; - } - } - buf.push(str_from_cps(cps.slice(prev, n))); - return buf.join(''); -} - -// note: set(s) cannot be exposed because they can be modified -// note: Object.freeze() doesn't work -function is_combining_mark(cp) { - init(); - return CM.has(cp); -} -function should_escape(cp) { - init(); - return ESCAPE.has(cp); -} - -// return all supported emoji as fully-qualified emoji -// ordered by length then lexicographic -function ens_emoji() { - init(); - return EMOJI_LIST.map(x => x.slice()); // emoji are exposed so copy -} - -function ens_normalize_fragment(frag, decompose) { - init(); - let nf = decompose ? nfd : nfc; - return frag.split(STOP_CH).map(label => str_from_cps(tokens_from_str(explode_cp(label), nf, filter_fe0f).flat())).join(STOP_CH); -} - -function ens_normalize(name) { - return flatten(split(name, nfc, filter_fe0f)); -} - -function ens_beautify(name) { - let labels = split(name, nfc, x => x); // emoji not exposed - for (let {type, output, error} of labels) { - if (error) break; // flatten will throw - - // replace leading/trailing hyphen - // 20230121: consider beautifing all or leading/trailing hyphen to unicode variant - // not exactly the same in every font, but very similar: "-" vs "‐" - /* - const UNICODE_HYPHEN = 0x2010; - // maybe this should replace all for visual consistancy? - // `node tools/reg-count.js regex ^-\{2,\}` => 592 - //for (let i = 0; i < output.length; i++) if (output[i] == 0x2D) output[i] = 0x2010; - if (output[0] == HYPHEN) output[0] = UNICODE_HYPHEN; - let end = output.length-1; - if (output[end] == HYPHEN) output[end] = UNICODE_HYPHEN; - */ - // 20230123: WHATWG URL uses "CheckHyphens" false - // https://url.spec.whatwg.org/#idna - - // update ethereum symbol - // ξ => Ξ if not greek - if (type !== 'Greek') { - let prev = 0; - while (true) { - let next = output.indexOf(0x3BE, prev); - if (next < 0) break; - output[next] = 0x39E; - prev = next + 1; - } - } - - // 20221213: fixes bidi subdomain issue, but breaks invariant (200E is disallowed) - // could be fixed with special case for: 2D (.) + 200E (LTR) - // https://discuss.ens.domains/t/bidi-label-ordering-spoof/15824 - //output.splice(0, 0, 0x200E); - } - return flatten(labels); -} - -function ens_split(name, preserve_emoji) { - return split(name, nfc, preserve_emoji ? x => x.slice() : filter_fe0f); // emoji are exposed so copy -} - -function split(name, nf, ef) { - if (!name) return []; // 20230719: empty name allowance - init(); - let offset = 0; - // https://unicode.org/reports/tr46/#Validity_Criteria - // 4.) "The label must not contain a U+002E ( . ) FULL STOP." - return name.split(STOP_CH).map(label => { - let input = explode_cp(label); - let info = { - input, - offset, // codepoint, not substring! - }; - offset += input.length + 1; // + stop - try { - // 1.) "The label must be in Unicode Normalization Form NFC" - let tokens = info.tokens = tokens_from_str(input, nf, ef); - let token_count = tokens.length; - let type; - if (!token_count) { // the label was effectively empty (could of had ignored characters) - //norm = []; - //type = 'None'; // use this instead of next match, "ASCII" - // 20230120: change to strict - // https://discuss.ens.domains/t/ens-name-normalization-2nd/14564/59 - throw new Error(`empty label`); - } - let norm = info.output = tokens.flat(); - check_leading_underscore(norm); - let emoji = info.emoji = token_count > 1 || tokens[0].is_emoji; // same as: tokens.some(x => x.is_emoji); - if (!emoji && norm.every(cp => cp < 0x80)) { // special case for ascii - // 20230123: matches matches WHATWG, see note 3.3 - check_label_extension(norm); // only needed for ascii - // cant have fenced - // cant have cm - // cant have wholes - // see derive: "Fastpath ASCII" - type = 'ASCII'; - } else { - let chars = tokens.flatMap(x => x.is_emoji ? [] : x); // all of the nfc tokens concat together - if (!chars.length) { // theres no text, just emoji - type = 'Emoji'; - } else { - // 5.) "The label must not begin with a combining mark, that is: General_Category=Mark." - if (CM.has(norm[0])) throw error_placement('leading combining mark'); - for (let i = 1; i < token_count; i++) { // we've already checked the first token - let cps = tokens[i]; - if (!cps.is_emoji && CM.has(cps[0])) { // every text token has emoji neighbors, eg. EtEEEtEt... - // bidi_qq() not needed since emoji is LTR and cps is a CM - throw error_placement(`emoji + combining mark: "${str_from_cps(tokens[i-1])} + ${safe_str_from_cps([cps[0]])}"`); - } - } - check_fenced(norm); - let unique = Array_from(new Set(chars)); - let [g] = determine_group(unique); // take the first match - // see derive: "Matching Groups have Same CM Style" - // alternative: could form a hybrid type: Latin/Japanese/... - check_group(g, chars); // need text in order - check_whole(g, unique); // only need unique text (order would be required for multiple-char confusables) - type = g.N; - // 20230121: consider exposing restricted flag - // it's simpler to just check for 'Restricted' - // or even better: type.endsWith(']') - //if (g.R) info.restricted = true; - } - } - info.type = type; - } catch (err) { - info.error = err; // use full error object - } - return info; - }); -} - -function check_whole(group, unique) { - let maker; - let shared = []; - for (let cp of unique) { - let whole = WHOLE_MAP.get(cp); - if (whole === UNIQUE_PH) return; // unique, non-confusable - if (whole) { - let set = whole.M.get(cp); // groups which have a character that look-like this character - maker = maker ? maker.filter(g => set.has(g)) : Array_from(set); - if (!maker.length) return; // confusable intersection is empty - } else { - shared.push(cp); - } - } - if (maker) { - // we have 1+ confusable - // check if any of the remaining groups - // contain the shared characters too - for (let g of maker) { - if (shared.every(cp => group_has_cp(g, cp))) { - throw new Error(`whole-script confusable: ${group.N}/${g.N}`); - } - } - } -} - -// assumption: unique.size > 0 -// returns list of matching groups -function determine_group(unique) { - let groups = GROUPS; - for (let cp of unique) { - // note: we need to dodge CM that are whitelisted - // but that code isn't currently necessary - let gs = groups.filter(g => group_has_cp(g, cp)); - if (!gs.length) { - if (!GROUPS.some(g => group_has_cp(g, cp))) { - // the character was composed of valid parts - // but it's NFC form is invalid - // 20230716: change to more exact statement, see: ENSNormalize.{cs,java} - // note: this doesn't have to be a composition - // 20230720: change to full check - throw error_disallowed(cp); // this should be rare - } else { - // there is no group that contains all these characters - // throw using the highest priority group that matched - // https://www.unicode.org/reports/tr39/#mixed_script_confusables - throw error_group_member(groups[0], cp); - } - } - groups = gs; - if (gs.length == 1) break; // there is only one group left - } - // there are at least 1 group(s) with all of these characters - return groups; -} - -// throw on first error -function flatten(split) { - return split.map(({input, error, output}) => { - if (error) { - // don't print label again if just a single label - let msg = error.message; - // bidi_qq() only necessary if msg is digits - throw new Error(split.length == 1 ? msg : `Invalid label ${bidi_qq(safe_str_from_cps(input))}: ${msg}`); - } - return str_from_cps(output); - }).join(STOP_CH); -} - -function error_disallowed(cp) { - // TODO: add cp to error? - return new Error(`disallowed character: ${quoted_cp(cp)}`); -} -function error_group_member(g, cp) { - let quoted = quoted_cp(cp); - let gg = GROUPS.find(g => g.P.has(cp)); // only check primary - if (gg) { - quoted = `${gg.N} ${quoted}`; - } - return new Error(`illegal mixture: ${g.N} + ${quoted}`); -} -function error_placement(where) { - return new Error(`illegal placement: ${where}`); -} - -// assumption: cps.length > 0 -// assumption: cps[0] isn't a CM -// assumption: the previous character isn't an emoji -function check_group(g, cps) { - for (let cp of cps) { - if (!group_has_cp(g, cp)) { - // for whitelisted scripts, this will throw illegal mixture on invalid cm, eg. "e{300}{300}" - // at the moment, it's unnecessary to introduce an extra error type - // until there exists a whitelisted multi-character - // eg. if (M < 0 && is_combining_mark(cp)) { ... } - // there are 3 cases: - // 1. illegal cm for wrong group => mixture error - // 2. illegal cm for same group => cm error - // requires set of whitelist cm per group: - // eg. new Set([...g.P, ...g.Q].flatMap(nfc).filter(cp => CM.has(cp))) - // 3. wrong group => mixture error - throw error_group_member(g, cp); - } - } - //if (M >= 0) { // we have a known fixed cm count - if (g.M) { // we need to check for NSM - let decomposed = nfd(cps); - for (let i = 1, e = decomposed.length; i < e; i++) { // see: assumption - // 20230210: bugfix: using cps instead of decomposed h/t Carbon225 - /* - if (CM.has(decomposed[i])) { - let j = i + 1; - while (j < e && CM.has(decomposed[j])) j++; - if (j - i > M) { - throw new Error(`too many combining marks: ${g.N} ${bidi_qq(str_from_cps(decomposed.slice(i-1, j)))} (${j-i}/${M})`); - } - i = j; - } - */ - // 20230217: switch to NSM counting - // https://www.unicode.org/reports/tr39/#Optional_Detection - if (NSM.has(decomposed[i])) { - let j = i + 1; - for (let cp; j < e && NSM.has(cp = decomposed[j]); j++) { - // a. Forbid sequences of the same nonspacing mark. - for (let k = i; k < j; k++) { // O(n^2) but n < 100 - if (decomposed[k] == cp) { - throw new Error(`duplicate non-spacing marks: ${quoted_cp(cp)}`); - } - } - } - // parse to end so we have full nsm count - // b. Forbid sequences of more than 4 nonspacing marks (gc=Mn or gc=Me). - if (j - i > NSM_MAX) { - // note: this slice starts with a base char or spacing-mark cm - throw new Error(`excessive non-spacing marks: ${bidi_qq(safe_str_from_cps(decomposed.slice(i-1, j)))} (${j-i}/${NSM_MAX})`); - } - i = j; - } - } - } - // *** this code currently isn't needed *** - /* - let cm_whitelist = M instanceof Map; - for (let i = 0, e = cps.length; i < e; ) { - let cp = cps[i++]; - let seqs = cm_whitelist && M.get(cp); - if (seqs) { - // list of codepoints that can follow - // if this exists, this will always be 1+ - let j = i; - while (j < e && CM.has(cps[j])) j++; - let cms = cps.slice(i, j); - let match = seqs.find(seq => !compare_arrays(seq, cms)); - if (!match) throw new Error(`disallowed combining mark sequence: "${safe_str_from_cps([cp, ...cms])}"`); - i = j; - } else if (!V.has(cp)) { - // https://www.unicode.org/reports/tr39/#mixed_script_confusables - let quoted = quoted_cp(cp); - for (let cp of cps) { - let u = UNIQUE.get(cp); - if (u && u !== g) { - // if both scripts are restricted this error is confusing - // because we don't differentiate RestrictedA from RestrictedB - if (!u.R) quoted = `${quoted} is ${u.N}`; - break; - } - } - throw new Error(`disallowed ${g.N} character: ${quoted}`); - //throw new Error(`disallowed character: ${quoted} (expected ${g.N})`); - //throw new Error(`${g.N} does not allow: ${quoted}`); - } - } - if (!cm_whitelist) { - let decomposed = nfd(cps); - for (let i = 1, e = decomposed.length; i < e; i++) { // we know it can't be cm leading - if (CM.has(decomposed[i])) { - let j = i + 1; - while (j < e && CM.has(decomposed[j])) j++; - if (j - i > M) { - throw new Error(`too many combining marks: "${str_from_cps(decomposed.slice(i-1, j))}" (${j-i}/${M})`); - } - i = j; - } - } - } - */ -} - -// given a list of codepoints -// returns a list of lists, where emoji are a fully-qualified (as Array subclass) -// eg. explode_cp("abc💩d") => [[61, 62, 63], Emoji[1F4A9, FE0F], [64]] -// 20230818: rename for 'process' name collision h/t Javarome -// https://github.com/adraffy/ens-normalize.js/issues/23 -function tokens_from_str(input, nf, ef) { - let ret = []; - let chars = []; - input = input.slice().reverse(); // flip so we can pop - while (input.length) { - let emoji = consume_emoji_reversed(input); - if (emoji) { - if (chars.length) { - ret.push(nf(chars)); - chars = []; - } - ret.push(ef(emoji)); - } else { - let cp = input.pop(); - if (VALID.has(cp)) { - chars.push(cp); - } else { - let cps = MAPPED.get(cp); - if (cps) { - chars.push(...cps); // less than 10 elements - } else if (!IGNORED.has(cp)) { - // 20230912: unicode 15.1 changed the order of processing such that - // disallowed parts are only rejected after NFC - // https://unicode.org/reports/tr46/#Validity_Criteria - // this doesn't impact normalization as of today - // technically, this error can be removed as the group logic will apply similar logic - // however the error type might be less clear - throw error_disallowed(cp); - } - } - } - } - if (chars.length) { - ret.push(nf(chars)); - } - return ret; -} - -function filter_fe0f(cps) { - return cps.filter(cp => cp != FE0F); -} - -// given array of codepoints -// returns the longest valid emoji sequence (or undefined if no match) -// *MUTATES* the supplied array -// disallows interleaved ignored characters -// fills (optional) eaten array with matched codepoints -function consume_emoji_reversed(cps, eaten) { - let node = EMOJI_ROOT; - let emoji; - let pos = cps.length; - while (pos) { - node = node.get(cps[--pos]); - if (!node) break; - let {V} = node; - if (V) { // this is a valid emoji (so far) - emoji = V; - if (eaten) eaten.push(...cps.slice(pos).reverse()); // (optional) copy input, used for ens_tokenize() - cps.length = pos; // truncate - } - } - return emoji; -} - -// ************************************************************ -// tokenizer - -const TY_VALID = 'valid'; -const TY_MAPPED = 'mapped'; -const TY_IGNORED = 'ignored'; -const TY_DISALLOWED = 'disallowed'; -const TY_EMOJI = 'emoji'; -const TY_NFC = 'nfc'; -const TY_STOP = 'stop'; - -function ens_tokenize(name, { - nf = true, // collapse unnormalized runs into a single token -} = {}) { - init(); - let input = explode_cp(name).reverse(); - let eaten = []; - let tokens = []; - while (input.length) { - let emoji = consume_emoji_reversed(input, eaten); - if (emoji) { - tokens.push({ - type: TY_EMOJI, - emoji: emoji.slice(), // copy emoji - input: eaten, - cps: filter_fe0f(emoji) - }); - eaten = []; // reset buffer - } else { - let cp = input.pop(); - if (cp == STOP) { - tokens.push({type: TY_STOP, cp}); - } else if (VALID.has(cp)) { - tokens.push({type: TY_VALID, cps: [cp]}); - } else if (IGNORED.has(cp)) { - tokens.push({type: TY_IGNORED, cp}); - } else { - let cps = MAPPED.get(cp); - if (cps) { - tokens.push({type: TY_MAPPED, cp, cps: cps.slice()}); - } else { - tokens.push({type: TY_DISALLOWED, cp}); - } - } - } - } - if (nf) { - for (let i = 0, start = -1; i < tokens.length; i++) { - let token = tokens[i]; - if (is_valid_or_mapped(token.type)) { - if (requires_check(token.cps)) { // normalization might be needed - let end = i + 1; - for (let pos = end; pos < tokens.length; pos++) { // find adjacent text - let {type, cps} = tokens[pos]; - if (is_valid_or_mapped(type)) { - if (!requires_check(cps)) break; - end = pos + 1; - } else if (type !== TY_IGNORED) { // || type !== TY_DISALLOWED) { - break; - } - } - if (start < 0) start = i; - let slice = tokens.slice(start, end); - let cps0 = slice.flatMap(x => is_valid_or_mapped(x.type) ? x.cps : []); // strip junk tokens - let cps = nfc(cps0); - if (compare_arrays(cps, cps0)) { // bundle into an nfc token - tokens.splice(start, end - start, { - type: TY_NFC, - input: cps0, // there are 3 states: tokens0 ==(process)=> input ==(nfc)=> tokens/cps - cps, - tokens0: collapse_valid_tokens(slice), - tokens: ens_tokenize(str_from_cps(cps), {nf: false}) - }); - i = start; - } else { - i = end - 1; // skip to end of slice - } - start = -1; // reset - } else { - start = i; // remember last - } - } else if (token.type !== TY_IGNORED) { // 20221024: is this correct? - start = -1; // reset - } - } - } - return collapse_valid_tokens(tokens); -} - -function is_valid_or_mapped(type) { - return type == TY_VALID || type == TY_MAPPED; -} - -function requires_check(cps) { - return cps.some(cp => NFC_CHECK.has(cp)); -} - -function collapse_valid_tokens(tokens) { - for (let i = 0; i < tokens.length; i++) { - if (tokens[i].type == TY_VALID) { - let j = i + 1; - while (j < tokens.length && tokens[j].type == TY_VALID) j++; - tokens.splice(i, j - i, {type: TY_VALID, cps: tokens.slice(i, j).flatMap(x => x.cps)}); - } - } - return tokens; +/** + * Create an instance of Axios + * + * @param {Object} defaultConfig The default config for the instance + * + * @returns {Axios} A new instance of Axios + */ +function createInstance(defaultConfig) { + const context = new Axios$1(defaultConfig); + const instance = bind(Axios$1.prototype.request, context); + + // Copy axios.prototype to instance + utils$1.extend(instance, Axios$1.prototype, context, {allOwnKeys: true}); + + // Copy context to instance + utils$1.extend(instance, context, null, {allOwnKeys: true}); + + // Factory for creating new instances + instance.create = function create(instanceConfig) { + return createInstance(mergeConfig(defaultConfig, instanceConfig)); + }; + + return instance; } -exports.ens_beautify = ens_beautify; -exports.ens_emoji = ens_emoji; -exports.ens_normalize = ens_normalize; -exports.ens_normalize_fragment = ens_normalize_fragment; -exports.ens_split = ens_split; -exports.ens_tokenize = ens_tokenize; -exports.is_combining_mark = is_combining_mark; -exports.nfc = nfc; -exports.nfd = nfd; -exports.safe_str_from_cps = safe_str_from_cps; -exports.should_escape = should_escape; +// Create the default instance to be exported +const axios = createInstance(defaults$1); + +// Expose Axios class to allow class inheritance +axios.Axios = Axios$1; + +// Expose Cancel & CancelToken +axios.CanceledError = CanceledError; +axios.CancelToken = CancelToken$1; +axios.isCancel = isCancel; +axios.VERSION = VERSION; +axios.toFormData = toFormData; + +// Expose AxiosError class +axios.AxiosError = AxiosError; + +// alias for CanceledError for backward compatibility +axios.Cancel = axios.CanceledError; + +// Expose all/spread +axios.all = function all(promises) { + return Promise.all(promises); +}; + +axios.spread = spread; + +// Expose isAxiosError +axios.isAxiosError = isAxiosError; + +// Expose mergeConfig +axios.mergeConfig = mergeConfig; + +axios.AxiosHeaders = AxiosHeaders$1; + +axios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing); + +axios.getAdapter = adapters.getAdapter; + +axios.HttpStatusCode = HttpStatusCode$1; + +axios.default = axios; + +module.exports = axios; +//# sourceMappingURL=axios.cjs.map /***/ }), @@ -237137,17 +241662,6 @@ exports.wordlists = { /***/ }), -/***/ "./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/package.json": -/*!*****************************************************************************!*\ - !*** ./node_modules/@cosmjs/tendermint-rpc/node_modules/axios/package.json ***! - \*****************************************************************************/ -/***/ (function(module) { - -"use strict"; -module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"Promise based HTTP client for the browser and node.js","main":"index.js","scripts":{"test":"grunt test","start":"node ./sandbox/server.js","build":"NODE_ENV=production grunt build","preversion":"npm test","version":"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json","postversion":"git push && git push --tags","examples":"node ./examples/server.js","coveralls":"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","fix":"eslint --fix lib/**/*.js"},"repository":{"type":"git","url":"https://github.com/axios/axios.git"},"keywords":["xhr","http","ajax","promise","node"],"author":"Matt Zabriskie","license":"MIT","bugs":{"url":"https://github.com/axios/axios/issues"},"homepage":"https://axios-http.com","devDependencies":{"coveralls":"^3.0.0","es6-promise":"^4.2.4","grunt":"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1","karma":"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2","minimist":"^1.2.0","mocha":"^8.2.1","sinon":"^4.5.0","terser-webpack-plugin":"^4.2.3","typescript":"^4.0.5","url-search-params":"^0.10.0","webpack":"^4.44.2","webpack-dev-server":"^3.11.0"},"browser":{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},"jsdelivr":"dist/axios.min.js","unpkg":"dist/axios.min.js","typings":"./index.d.ts","dependencies":{"follow-redirects":"^1.14.0"},"bundlesize":[{"path":"./dist/axios.min.js","threshold":"5kB"}]}'); - -/***/ }), - /***/ "./node_modules/browserify-aes/modes/list.json": /*!*****************************************************!*\ !*** ./node_modules/browserify-aes/modes/list.json ***!